Compare commits
No commits in common. "9c4f408256ae22c048e5f4d9b8d2f657a5f6c749" and "16cf0e8b69b321c43360485b741a0908423e24aa" have entirely different histories.
9c4f408256
...
16cf0e8b69
|
|
@ -14,7 +14,7 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.personList"
|
v-for="item in data.personList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.u_name"
|
:label="item.name"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
|
||||||
|
|
@ -218,8 +218,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -240,7 +240,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
||||||
<el-select v-model="form.WORKSHOP_USER_ID" filterable multiple>
|
<el-select v-model="form.WORKSHOP_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.workshopUserList"
|
v-for="item in data.workshopUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID">
|
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID">
|
||||||
<el-select v-model="form.LEADER_USER_ID" filterable multiple>
|
<el-select v-model="form.LEADER_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.leaderUserList"
|
v-for="item in data.leaderUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -61,7 +61,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="煤气防护站负责人" prop="APPROVE_USER_ID">
|
<el-form-item label="煤气防护站负责人" prop="APPROVE_USER_ID">
|
||||||
<el-select v-model="form.APPROVE_USER_ID" filterable multiple>
|
<el-select v-model="form.APPROVE_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.approveUserList"
|
v-for="item in data.approveUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总调度室负责人" prop="PROJECT_MANAGER_USER_ID">
|
<el-form-item label="总调度室负责人" prop="PROJECT_MANAGER_USER_ID">
|
||||||
<el-select v-model="form.PROJECT_MANAGER_USER_ID" filterable multiple>
|
<el-select v-model="form.PROJECT_MANAGER_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.projectUserList"
|
v-for="item in data.projectUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -151,18 +151,23 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async () => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
|
if (value) {
|
||||||
const resData = await getBlindBoardVerifyConfigurationUser({
|
const resData = await getBlindBoardVerifyConfigurationUser({
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位已存在");
|
callback(new Error("该申请部门已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
APPLY_DEPARTMENT_ID: [
|
APPLY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
LEADER_DEPARTMENT_ID: [
|
LEADER_DEPARTMENT_ID: [
|
||||||
{
|
{
|
||||||
|
|
@ -217,24 +222,24 @@ const data = reactive({
|
||||||
|
|
||||||
const fnLeaderDepartmentChange = () => {
|
const fnLeaderDepartmentChange = () => {
|
||||||
data.leaderUserList = [];
|
data.leaderUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnApproveDepartmentChange = () => {
|
const fnApproveDepartmentChange = () => {
|
||||||
data.approveUserList = [];
|
data.approveUserList = [];
|
||||||
form.value.APPROVE_USER_ID = [];
|
form.value.APPROVE_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnWorkshopDepartmentChange = () => {
|
const fnWorkshopDepartmentChange = () => {
|
||||||
data.workshopUserList = [];
|
data.workshopUserList = [];
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
form.value.WORKSHOP_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnProjectDepartmentChange = () => {
|
const fnProjectDepartmentChange = () => {
|
||||||
data.projectUserList = [];
|
data.projectUserList = [];
|
||||||
form.value.PROJECT_MANAGER_USER_ID = [];
|
form.value.PROJECT_MANAGER_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -247,39 +252,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
await useFormValidate(formRef);
|
|
||||||
const WORKSHOP_USER_ID = form.WORKSHOP_USER_ID
|
|
||||||
? form.WORKSHOP_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID
|
|
||||||
? form.LEADER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID
|
|
||||||
? form.APPROVE_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const PROJECT_MANAGER_USER_ID = form.PROJECT_MANAGER_USER_ID
|
|
||||||
? form.PROJECT_MANAGER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
WORKSHOP_USER_ID,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
PROJECT_MANAGER_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel();
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setBlindBoardConfigurationUserAdd(form);
|
||||||
await setBlindBoardConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setBlindBoardConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setBlindBoardConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -328,7 +305,6 @@ watchEffect(() => {
|
||||||
if (form.value.PROJECT_MANAGER_DEPARTMENT_ID)
|
if (form.value.PROJECT_MANAGER_DEPARTMENT_ID)
|
||||||
fnGetProjectUser(form.value.PROJECT_MANAGER_DEPARTMENT_ID);
|
fnGetProjectUser(form.value.PROJECT_MANAGER_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -169,16 +169,16 @@ const data = reactive({
|
||||||
CONFIGURATION_ID: "",
|
CONFIGURATION_ID: "",
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
WORK_LEVEL: "",
|
WORK_LEVEL: "",
|
||||||
WORKSHOP_DEPARTMENT_ID: "",
|
|
||||||
WORKSHOP_USER_ID: [],
|
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
|
MONITOR_DEPARTMENT_ID: "",
|
||||||
|
MONITOR_USER_ID: "",
|
||||||
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
||||||
PROJECT_MANAGER_USER_ID: [],
|
PROJECT_MANAGER_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -228,13 +228,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getBlindBoardConfigurationUserView({
|
const resData = await getBlindBoardConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.LEADER_USER_ID = resData.pd.LEADER_USER_ID.toString().split(",");
|
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.APPROVE_USER_ID = resData.pd.APPROVE_USER_ID.toString().split(",");
|
|
||||||
resData.pd.WORKSHOP_USER_ID =
|
|
||||||
resData.pd.WORKSHOP_USER_ID.toString().split(",");
|
|
||||||
resData.pd.PROJECT_MANAGER_USER_ID =
|
|
||||||
resData.pd.PROJECT_MANAGER_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,8 +224,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -246,7 +246,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
||||||
<el-select v-model="form.WORKSHOP_USER_ID" filterable multiple>
|
<el-select v-model="form.WORKSHOP_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.workshopUserList"
|
v-for="item in data.workshopUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID">
|
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID">
|
||||||
<el-select v-model="form.LEADER_USER_ID" filterable multiple>
|
<el-select v-model="form.LEADER_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.leaderUserList"
|
v-for="item in data.leaderUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -61,7 +61,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="煤气防护站负责人" prop="APPROVE_USER_ID">
|
<el-form-item label="煤气防护站负责人" prop="APPROVE_USER_ID">
|
||||||
<el-select v-model="form.APPROVE_USER_ID" filterable multiple>
|
<el-select v-model="form.APPROVE_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.approveUserList"
|
v-for="item in data.approveUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="生产部负责人" prop="SAFETY_USER_ID">
|
<el-form-item label="生产部负责人" prop="SAFETY_USER_ID">
|
||||||
<el-select v-model="form.SAFETY_USER_ID" filterable multiple>
|
<el-select v-model="form.SAFETY_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="公司领导" prop="PROJECT_MANAGER_USER_ID">
|
<el-form-item label="公司领导" prop="PROJECT_MANAGER_USER_ID">
|
||||||
<el-select v-model="form.PROJECT_MANAGER_USER_ID" filterable multiple>
|
<el-select v-model="form.PROJECT_MANAGER_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.projectUserList"
|
v-for="item in data.projectUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -167,18 +167,24 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async () => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
|
if (value) {
|
||||||
const resData = await getConfinedspaceVerifyConfigurationUser({
|
const resData = await getConfinedspaceVerifyConfigurationUser({
|
||||||
|
WORK_LEVEL: value,
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位已存在");
|
callback(new Error("该申请部门已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
APPLY_DEPARTMENT_ID: [
|
APPLY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
LEADER_DEPARTMENT_ID: [
|
LEADER_DEPARTMENT_ID: [
|
||||||
{
|
{
|
||||||
|
|
@ -207,10 +213,10 @@ const rules = {
|
||||||
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_DEPARTMENT_ID: [
|
SAFETY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择生产部", trigger: "change" },
|
{ required: true, message: "请选择安全部", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_USER_ID: [
|
SAFETY_USER_ID: [
|
||||||
{ required: true, message: "请选择生产部负责人", trigger: "change" },
|
{ required: true, message: "请选择安全部负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
WORKSHOP_DEPARTMENT_ID: [
|
WORKSHOP_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择工段部门", trigger: "change" },
|
{ required: true, message: "请选择工段部门", trigger: "change" },
|
||||||
|
|
@ -240,28 +246,28 @@ const data = reactive({
|
||||||
|
|
||||||
const fnLeaderDepartmentChange = () => {
|
const fnLeaderDepartmentChange = () => {
|
||||||
data.leaderUserList = [];
|
data.leaderUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnApproveDepartmentChange = () => {
|
const fnApproveDepartmentChange = () => {
|
||||||
data.approveUserList = [];
|
data.approveUserList = [];
|
||||||
form.value.APPROVE_USER_ID = [];
|
form.value.APPROVE_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.SAFETY_USER_ID = [];
|
form.value.SAFETY_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnWorkshopDepartmentChange = () => {
|
const fnWorkshopDepartmentChange = () => {
|
||||||
data.workshopUserList = [];
|
data.workshopUserList = [];
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
form.value.WORKSHOP_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnProjectDepartmentChange = () => {
|
const fnProjectDepartmentChange = () => {
|
||||||
data.projectUserList = [];
|
data.projectUserList = [];
|
||||||
form.value.PROJECT_MANAGER_USER_ID = [];
|
form.value.PROJECT_MANAGER_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -274,43 +280,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
await useFormValidate(formRef);
|
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID
|
|
||||||
? form.LEADER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID
|
|
||||||
? form.APPROVE_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const WORKSHOP_USER_ID = form.WORKSHOP_USER_ID
|
|
||||||
? form.WORKSHOP_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const SAFETY_USER_ID = form.SAFETY_USER_ID
|
|
||||||
? form.SAFETY_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const PROJECT_MANAGER_USER_ID = form.PROJECT_MANAGER_USER_ID
|
|
||||||
? form.PROJECT_MANAGER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
WORKSHOP_USER_ID,
|
|
||||||
SAFETY_USER_ID,
|
|
||||||
PROJECT_MANAGER_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel();
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setConfinedspaceConfigurationUserAdd(form);
|
||||||
await setConfinedspaceConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setConfinedspaceConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setConfinedspaceConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -365,7 +339,6 @@ watchEffect(() => {
|
||||||
if (form.value.SAFETY_DEPARTMENT_ID)
|
if (form.value.SAFETY_DEPARTMENT_ID)
|
||||||
fnGetSafetyUser(form.value.SAFETY_DEPARTMENT_ID);
|
fnGetSafetyUser(form.value.SAFETY_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -179,17 +179,15 @@ const data = reactive({
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
WORK_LEVEL: "",
|
WORK_LEVEL: "",
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
WORKSHOP_DEPARTMENT_ID: "",
|
MONITOR_DEPARTMENT_ID: "",
|
||||||
WORKSHOP_USER_ID: [],
|
MONITOR_USER_ID: "",
|
||||||
SAFETY_DEPARTMENT_ID: "",
|
|
||||||
SAFETY_USER_ID: [],
|
|
||||||
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
||||||
PROJECT_MANAGER_USER_ID: [],
|
PROJECT_MANAGER_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -239,14 +237,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getConfinedspaceConfigurationUserView({
|
const resData = await getConfinedspaceConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.LEADER_USER_ID = resData.pd.LEADER_USER_ID.toString().split(",");
|
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.APPROVE_USER_ID = resData.pd.APPROVE_USER_ID.toString().split(",");
|
|
||||||
resData.pd.WORKSHOP_USER_ID =
|
|
||||||
resData.pd.WORKSHOP_USER_ID.toString().split(",");
|
|
||||||
resData.pd.SAFETY_USER_ID = resData.pd.SAFETY_USER_ID.toString().split(",");
|
|
||||||
resData.pd.PROJECT_MANAGER_USER_ID =
|
|
||||||
resData.pd.PROJECT_MANAGER_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ import { ref } from "vue";
|
||||||
import { debounce } from "throttle-debounce";
|
import { debounce } from "throttle-debounce";
|
||||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
import { layoutFnGetInventoryLevel } from "@/assets/js/data_dictionary.js";
|
import { layoutFnGetInventoryLevel } from "@/assets/js/data_dictionary.js";
|
||||||
import LayoutDepartment from "./department.vue";
|
import LayoutDepartment from "@/components/department/index.vue";
|
||||||
import { useUserStore } from "@/pinia/user.js";
|
import { useUserStore } from "@/pinia/user.js";
|
||||||
import {
|
import {
|
||||||
setDepartmentAdd,
|
setDepartmentAdd,
|
||||||
|
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
<template>
|
|
||||||
<el-tree-select
|
|
||||||
ref="treeSelectRef"
|
|
||||||
v-model="modelValue"
|
|
||||||
:data="departmentTree"
|
|
||||||
:disabled="disabled"
|
|
||||||
node-key="id"
|
|
||||||
:props="{
|
|
||||||
children: 'nodes',
|
|
||||||
label: 'name',
|
|
||||||
}"
|
|
||||||
:render-after-expand="false"
|
|
||||||
accordion
|
|
||||||
:check-strictly="checkStrictly"
|
|
||||||
:clearable="clearable"
|
|
||||||
:show-checkbox="showCheckbox"
|
|
||||||
:multiple="multiple"
|
|
||||||
:collapse-tags="collapseTags"
|
|
||||||
@check="fnCheck"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { layoutFnGetDepartmentzTree } from "@/assets/js/data_dictionary";
|
|
||||||
import { useVModel } from "@vueuse/core";
|
|
||||||
import { ref, watch } from "vue";
|
|
||||||
|
|
||||||
const treeSelectRef = ref(null);
|
|
||||||
defineOptions({
|
|
||||||
name: "LayoutDepartment",
|
|
||||||
});
|
|
||||||
const props = defineProps({
|
|
||||||
modelValue: {
|
|
||||||
type: [String, Array],
|
|
||||||
required: true,
|
|
||||||
default: "",
|
|
||||||
},
|
|
||||||
checkStrictly: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
showCheckbox: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
disabled: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
multiple: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
collapseTags: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
clearable: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
rootDisabled: {
|
|
||||||
type: String,
|
|
||||||
default: "N",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const emits = defineEmits(["update:modelValue"]);
|
|
||||||
const modelValue = useVModel(props, "modelValue", emits);
|
|
||||||
// if (props.multiple) {
|
|
||||||
// modelValue.value = [];
|
|
||||||
// }
|
|
||||||
const departmentTree = await layoutFnGetDepartmentzTree({
|
|
||||||
rootDisabled: props.rootDisabled,
|
|
||||||
});
|
|
||||||
|
|
||||||
// 监听 modelValue 变化,确保树加载后设置选中项
|
|
||||||
watch(
|
|
||||||
() => modelValue.value,
|
|
||||||
(newVal) => {
|
|
||||||
if (treeSelectRef.value && newVal && Array.isArray(newVal)) {
|
|
||||||
// 设置树的选中项
|
|
||||||
treeSelectRef.value.setCheckedKeys(newVal);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ immediate: true } // 立即执行一次,用于初始化
|
|
||||||
);
|
|
||||||
|
|
||||||
const fnCheck = () => {
|
|
||||||
if (props.showCheckbox && !props.checkStrictly) {
|
|
||||||
modelValue.value = treeSelectRef.value.getCheckedKeys();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
||||||
|
|
@ -1,200 +0,0 @@
|
||||||
<template>
|
|
||||||
<el-dialog v-model="visible" title="告警预览" width="50%" @close="fnClose">
|
|
||||||
<el-scrollbar style="height: 600px">
|
|
||||||
<div
|
|
||||||
v-if="list.length > 0"
|
|
||||||
style="display: flex; flex-wrap: wrap; gap: 20px; margin-top: 10px"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-for="item in list"
|
|
||||||
:id="'_dialog' + item.PLC_ID"
|
|
||||||
:key="item.PLC_ID"
|
|
||||||
style="width: calc(20% - 20px); height: 190px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-else
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
height: 600px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
暂无报警设备
|
|
||||||
</div>
|
|
||||||
</el-scrollbar>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { useVModel } from "@vueuse/core";
|
|
||||||
import * as echarts from "echarts";
|
|
||||||
import { nextTick, onMounted, watch } from "vue";
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
visible: {
|
|
||||||
type: Boolean,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
list: {
|
|
||||||
type: Array,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const emits = defineEmits(["update:visible"]);
|
|
||||||
const visible = useVModel(props, "visible", emits);
|
|
||||||
let myChartMap = {};
|
|
||||||
const fnInitEcharts = (data) => {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
// const normalColor = "rgb(255,255,255)";
|
|
||||||
// const alarmColor = "rgb(0,255,0)";
|
|
||||||
// const alarmColors = "rgb(0,0,255)";
|
|
||||||
// const normalColors = "rgb(255, 255, 0)";
|
|
||||||
// const assistantColors = "rgb(255,0,0)";
|
|
||||||
const assistantColor = "rgb(0,191,255)";
|
|
||||||
let myChart;
|
|
||||||
if (!myChartMap[`_dialog${data.PLC_ID}`]) {
|
|
||||||
myChart = echarts.init(document.querySelector(`#_dialog${data.PLC_ID}`));
|
|
||||||
} else {
|
|
||||||
myChart = myChartMap[`_dialog${data.PLC_ID}`];
|
|
||||||
}
|
|
||||||
const option = {
|
|
||||||
title: {
|
|
||||||
text: data.TARGET_PLACE.replace(/(.{20})/g, "$1\n"),
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 12,
|
|
||||||
fontWeight: 400,
|
|
||||||
color: assistantColor,
|
|
||||||
lineHeight: 16,
|
|
||||||
},
|
|
||||||
left: "center",
|
|
||||||
top: "0",
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: "gauge",
|
|
||||||
name: "外层辅助",
|
|
||||||
radius: "86%",
|
|
||||||
center: ["50%", "62%"],
|
|
||||||
startAngle: "225",
|
|
||||||
endAngle: "-45",
|
|
||||||
splitNumber: "120",
|
|
||||||
pointer: { show: false },
|
|
||||||
detail: { show: false },
|
|
||||||
data: [{ value: 1 }],
|
|
||||||
title: { show: false },
|
|
||||||
axisLine: {
|
|
||||||
show: true,
|
|
||||||
lineStyle: { color: [[1, assistantColor]], width: 3 },
|
|
||||||
},
|
|
||||||
axisTick: { show: false },
|
|
||||||
splitLine: { show: false },
|
|
||||||
axisLabel: { show: false },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "内层数据刻度",
|
|
||||||
type: "gauge",
|
|
||||||
radius: "75%",
|
|
||||||
center: ["50%", "62%"],
|
|
||||||
axisLine: {
|
|
||||||
lineStyle: {
|
|
||||||
width: 10,
|
|
||||||
color: [
|
|
||||||
[23 / 200, "#FFFFFF"],
|
|
||||||
[50 / 200, "#00FF00"],
|
|
||||||
[100 / 200, "#0000FF"],
|
|
||||||
[160 / 200, "#FFFF00"],
|
|
||||||
[1, "#FF0000"],
|
|
||||||
// [23/200, normalColor],
|
|
||||||
// [0.50, alarmColor],
|
|
||||||
// [1.0, alarmColors],
|
|
||||||
// [1.60, normalColors],
|
|
||||||
// [2.00, assistantColors],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
max: 200,
|
|
||||||
splitLine: { show: false },
|
|
||||||
axisTick: { show: false },
|
|
||||||
axisLabel: { show: false },
|
|
||||||
detail: {
|
|
||||||
show: true,
|
|
||||||
offsetCenter: ["0", "80%"],
|
|
||||||
fontSize: 20,
|
|
||||||
color: getColorByValue(data.CURRENT_VALUE),
|
|
||||||
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
|
||||||
},
|
|
||||||
itemStyle: {
|
|
||||||
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
|
||||||
color: getColorByValue(data.CURRENT_VALUE),
|
|
||||||
},
|
|
||||||
pointer: { width: 3, length: "95%" },
|
|
||||||
data: [{ value: data.CURRENT_VALUE }],
|
|
||||||
silent: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "最内层线",
|
|
||||||
type: "gauge",
|
|
||||||
radius: "50%",
|
|
||||||
center: ["50%", "62%"],
|
|
||||||
startAngle: 360,
|
|
||||||
endAngle: 0,
|
|
||||||
axisLine: { show: false, lineStyle: { opacity: 0 } },
|
|
||||||
splitLine: { show: false, lineStyle: { opacity: 0 } },
|
|
||||||
axisLabel: { show: false },
|
|
||||||
axisTick: {
|
|
||||||
length: 2,
|
|
||||||
splitNumber: 3,
|
|
||||||
lineStyle: { color: assistantColor, width: 2, type: "dashed" },
|
|
||||||
},
|
|
||||||
detail: { show: false },
|
|
||||||
pointer: { show: false },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
myChart.setOption(option);
|
|
||||||
if (!myChartMap[`_dialog${data.PLC_ID}`]) {
|
|
||||||
myChartMap[`_dialog${data.PLC_ID}`] = myChart;
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
onMounted(() => {
|
|
||||||
watch(
|
|
||||||
() => [props.list, visible.value],
|
|
||||||
async (value) => {
|
|
||||||
if (value[1]) {
|
|
||||||
await nextTick();
|
|
||||||
fnDisposeEcharts();
|
|
||||||
for (const item of value[0]) {
|
|
||||||
await fnInitEcharts(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
const fnDisposeEcharts = () => {
|
|
||||||
for (const myChartListKey in myChartMap) {
|
|
||||||
myChartMap[myChartListKey].dispose();
|
|
||||||
}
|
|
||||||
myChartMap = {};
|
|
||||||
};
|
|
||||||
const fnClose = () => {
|
|
||||||
fnDisposeEcharts();
|
|
||||||
visible.value = false;
|
|
||||||
};
|
|
||||||
const getColorByValue = (value) => {
|
|
||||||
return value < 24
|
|
||||||
? "rgb(255, 255, 255)" // 白色
|
|
||||||
: value <= 50
|
|
||||||
? "rgb(0, 255, 0)" // 绿色
|
|
||||||
: value <= 100
|
|
||||||
? "rgb(0, 0, 255)" // 蓝色
|
|
||||||
: value <= 160
|
|
||||||
? "rgb(255, 255, 0)" // 黄色
|
|
||||||
: "rgb(255, 0, 0)"; // 红色
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
|
||||||
|
|
@ -1,73 +1,26 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div style="width: 300px">
|
<div style="width: 300px">
|
||||||
<div>
|
|
||||||
<el-button
|
|
||||||
size="small"
|
|
||||||
style="
|
|
||||||
margin-right: 10px;
|
|
||||||
background-color: transparent;
|
|
||||||
border: 0;
|
|
||||||
color: white;
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 8px 12px;
|
|
||||||
height: 36px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
"
|
|
||||||
@click="goBack"
|
|
||||||
>
|
|
||||||
<el-icon><arrow-left /></el-icon>
|
|
||||||
返回
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; align-items: center; margin-bottom: 10px">
|
|
||||||
<span
|
|
||||||
style="
|
|
||||||
display: inline-block;
|
|
||||||
padding: 8px 12px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
color: white;
|
|
||||||
font-size: 14px;
|
|
||||||
"
|
|
||||||
>安装地点</span
|
|
||||||
>
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchTextWait"
|
v-model="searchTextWait"
|
||||||
class="mb-10"
|
class="mb-10"
|
||||||
placeholder="输入搜索安装地点"
|
placeholder="输入搜索内容"
|
||||||
style="flex: 1"
|
|
||||||
>
|
>
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button :icon="Search" @click="fnSetSearch" />
|
<el-button :icon="Search" @click="fnSetSearch" />
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<el-tree
|
<el-tree
|
||||||
ref="treeRef"
|
ref="treeRef"
|
||||||
node-key="label"
|
node-key="label"
|
||||||
accordion
|
accordion
|
||||||
:data="treeData"
|
:data="treeData"
|
||||||
:filter-node-method="fnFilterNode"
|
:filter-node-method="fnFilterNode"
|
||||||
:default-expanded-keys="defaultExpandedKeys"
|
:default-expanded-keys="[treeData.length > 0 ? treeData[0].label : '']"
|
||||||
@node-click="fnNodeClick"
|
@node-click="fnNodeClick"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div style="flex: 1; display: flex; flex-wrap: wrap; gap: 20px">
|
||||||
<div style="flex: 1">
|
|
||||||
<div style="margin-bottom: 20px; padding: 0 20px">
|
|
||||||
<el-breadcrumb separator="/" style="margin-top: 10px">
|
|
||||||
<!-- 动态面包屑项 -->
|
|
||||||
<el-breadcrumb-item
|
|
||||||
v-for="(item, index) in breadcrumbItems"
|
|
||||||
:key="index"
|
|
||||||
style="padding: 0"
|
|
||||||
>
|
|
||||||
{{ item }}
|
|
||||||
</el-breadcrumb-item>
|
|
||||||
</el-breadcrumb>
|
|
||||||
</div>
|
|
||||||
<div style="display: flex; flex-wrap: wrap; gap: 20px; margin-top: 10px">
|
|
||||||
<div
|
<div
|
||||||
v-for="item in list"
|
v-for="item in list"
|
||||||
:id="'_' + item.PLC_ID"
|
:id="'_' + item.PLC_ID"
|
||||||
|
|
@ -77,14 +30,12 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<view-info
|
<view-info
|
||||||
v-for="item in dialog"
|
v-for="item in dialog"
|
||||||
:key="item.PLC_ID"
|
:key="item.PLC_ID"
|
||||||
v-model:visible="item.visible"
|
v-model:visible="item.visible"
|
||||||
:item="item"
|
:item="item"
|
||||||
/>
|
/>
|
||||||
<waring v-model:visible="waringDialog" :list="waringList" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
@ -94,10 +45,7 @@ import ViewInfo from "./components/view_info.vue";
|
||||||
import { getEquipmentInfo, getEquipmentTree } from "@/request/gas_alarm.js";
|
import { getEquipmentInfo, getEquipmentTree } from "@/request/gas_alarm.js";
|
||||||
import { useUserStore } from "@/pinia/user.js";
|
import { useUserStore } from "@/pinia/user.js";
|
||||||
import { useIntervalFn } from "@vueuse/core";
|
import { useIntervalFn } from "@vueuse/core";
|
||||||
import { Search, ArrowLeft } from "@element-plus/icons-vue";
|
import { Search } from "@element-plus/icons-vue";
|
||||||
import Waring from "./components/waring.vue";
|
|
||||||
import { ElNotification, ElBreadcrumb, ElBreadcrumbItem } from "element-plus";
|
|
||||||
|
|
||||||
const { pause, resume } = useIntervalFn(
|
const { pause, resume } = useIntervalFn(
|
||||||
() => {
|
() => {
|
||||||
fnGetData();
|
fnGetData();
|
||||||
|
|
@ -110,9 +58,6 @@ const treeRef = ref(null);
|
||||||
const treeData = ref([]);
|
const treeData = ref([]);
|
||||||
const searchText = ref("");
|
const searchText = ref("");
|
||||||
const searchTextWait = ref("");
|
const searchTextWait = ref("");
|
||||||
const breadcrumbItems = ref([]);
|
|
||||||
const defaultExpandedKeys = ref([]); // 新增响应式变量来控制展开节点
|
|
||||||
let isFirstLoad = true; // 标志位,标识是否为首次加载
|
|
||||||
const fnFilterNode = (value, data) => {
|
const fnFilterNode = (value, data) => {
|
||||||
if (!value) return true;
|
if (!value) return true;
|
||||||
return data.label.includes(value);
|
return data.label.includes(value);
|
||||||
|
|
@ -120,24 +65,6 @@ const fnFilterNode = (value, data) => {
|
||||||
const fnNodeClick = (_data, { data, parent }) => {
|
const fnNodeClick = (_data, { data, parent }) => {
|
||||||
searchTextWait.value = "";
|
searchTextWait.value = "";
|
||||||
searchText.value = "";
|
searchText.value = "";
|
||||||
|
|
||||||
// 构建面包屑路径
|
|
||||||
const path = [];
|
|
||||||
const current = data;
|
|
||||||
|
|
||||||
// 添加当前节点
|
|
||||||
path.unshift(current.label);
|
|
||||||
|
|
||||||
// 如果有父节点,添加父节点
|
|
||||||
if (parent && parent.data) {
|
|
||||||
if (!parent.data.length) {
|
|
||||||
path.unshift(parent.data.label);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置面包屑数据
|
|
||||||
breadcrumbItems.value = path;
|
|
||||||
|
|
||||||
if (parent.parent) {
|
if (parent.parent) {
|
||||||
equipmentInfoParams = {
|
equipmentInfoParams = {
|
||||||
ORG: parent.data.label,
|
ORG: parent.data.label,
|
||||||
|
|
@ -152,16 +79,9 @@ const fnNodeClick = (_data, { data, parent }) => {
|
||||||
fnDisposeEcharts();
|
fnDisposeEcharts();
|
||||||
pause();
|
pause();
|
||||||
resume();
|
resume();
|
||||||
|
|
||||||
// 首次加载后设置标志位为false
|
|
||||||
if (isFirstLoad) {
|
|
||||||
isFirstLoad = false;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const list = ref([]);
|
const list = ref([]);
|
||||||
const waringList = ref([]);
|
|
||||||
const waringDialog = ref(false);
|
|
||||||
const dialog = ref([]);
|
const dialog = ref([]);
|
||||||
let equipmentInfoParams = {};
|
let equipmentInfoParams = {};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
@ -180,71 +100,15 @@ const fnConversionTree = (data) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const fnGetTreeData = async () => {
|
const fnGetTreeData = async () => {
|
||||||
const { root, npd } = await getEquipmentTree({
|
const { root } = await getEquipmentTree({
|
||||||
DEVICE_TYPE: "gdsyyhtbjq01",
|
DEVICE_TYPE: "gdsyyhtbjq01",
|
||||||
CORPINFO_ID: userStore.getUserInfo.CORPINFO_ID,
|
CORPINFO_ID: userStore.getUserInfo.CORPINFO_ID,
|
||||||
});
|
});
|
||||||
|
|
||||||
treeData.value = fnConversionTree(root.children);
|
treeData.value = fnConversionTree(root.children);
|
||||||
|
|
||||||
// 处理 npd.ALLDEPTNAME 值
|
|
||||||
if (npd && npd.ALLDEPTNAME) {
|
|
||||||
// 获取需要展开的节点
|
|
||||||
defaultExpandedKeys.value = [];
|
|
||||||
|
|
||||||
// 遍历树数据,找到包含这些部门名称的一级节点
|
|
||||||
treeData.value.forEach((node) => {
|
|
||||||
if (npd.ALLDEPTNAME.includes(node.label)) {
|
|
||||||
defaultExpandedKeys.value.push(node.label);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 只在首次加载时设置默认展开节点
|
|
||||||
if (isFirstLoad && treeData.value.length > 0) {
|
|
||||||
// 如果 defaultExpandedKeys 有值,使用它
|
|
||||||
if (defaultExpandedKeys.value.length > 0) {
|
|
||||||
// 找到对应的节点
|
|
||||||
const targetNode = treeData.value.find(
|
|
||||||
(node) => node.label === defaultExpandedKeys.value[0]
|
|
||||||
);
|
|
||||||
|
|
||||||
// 设置默认展开的节点
|
|
||||||
equipmentInfoParams = {
|
|
||||||
ORG: defaultExpandedKeys.value[0],
|
|
||||||
DEPARTMENT:
|
|
||||||
targetNode && targetNode.children && targetNode.children.length > 0
|
|
||||||
? targetNode.children[0].label
|
|
||||||
: "",
|
|
||||||
};
|
|
||||||
|
|
||||||
breadcrumbItems.value = [
|
|
||||||
defaultExpandedKeys.value[0],
|
|
||||||
targetNode.children[0].label,
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
defaultExpandedKeys.value = [treeData.value[0].label];
|
|
||||||
// 如果没有设置,默认使用第一个节点
|
|
||||||
equipmentInfoParams = {
|
equipmentInfoParams = {
|
||||||
ORG: treeData.value[0].label,
|
ORG: treeData.value[0].label,
|
||||||
DEPARTMENT: treeData.value[0].children[0].label,
|
DEPARTMENT: treeData.value[0].children[0].label,
|
||||||
};
|
};
|
||||||
breadcrumbItems.value = [
|
|
||||||
treeData.value[0].label,
|
|
||||||
treeData.value[0].children[0].label,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
equipmentInfoParams = {
|
|
||||||
ORG: treeData.value[0].label,
|
|
||||||
DEPARTMENT: treeData.value[0].children[0].label,
|
|
||||||
};
|
|
||||||
breadcrumbItems.value = [
|
|
||||||
treeData.value[0].label,
|
|
||||||
treeData.value[0].children[0].label,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
resume();
|
resume();
|
||||||
};
|
};
|
||||||
let isPending = false;
|
let isPending = false;
|
||||||
|
|
@ -259,24 +123,11 @@ const fnGetData = async () => {
|
||||||
loading: false,
|
loading: false,
|
||||||
});
|
});
|
||||||
list.value = varList;
|
list.value = varList;
|
||||||
waringList.value = varList.filter((item) => item.CURRENT_VALUE >= 24);
|
|
||||||
if (waringList.value.length > 0) {
|
|
||||||
ElNotification({
|
|
||||||
title: "警告",
|
|
||||||
message: `<div style="color:#606266">当前有${waringList.value.length}个设备处于报警状态</div>`,
|
|
||||||
type: "warning",
|
|
||||||
dangerouslyUseHTMLString: true,
|
|
||||||
duration: 5000,
|
|
||||||
onClick: () => {
|
|
||||||
waringDialog.value = true;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
isPending = false;
|
isPending = false;
|
||||||
await nextTick();
|
await nextTick();
|
||||||
for (const item of list.value) {
|
list.value.forEach(async (item) => {
|
||||||
await fnInitEcharts(item);
|
await fnInitEcharts(item);
|
||||||
}
|
});
|
||||||
};
|
};
|
||||||
let myChartMap = {};
|
let myChartMap = {};
|
||||||
const fnInitEcharts = (data) => {
|
const fnInitEcharts = (data) => {
|
||||||
|
|
@ -335,11 +186,11 @@ const fnInitEcharts = (data) => {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
width: 10,
|
width: 10,
|
||||||
color: [
|
color: [
|
||||||
[23 / 200, "#FFFFFF"],
|
[23/200, '#FFFFFF'],
|
||||||
[50 / 200, "#00FF00"],
|
[50/200, '#00FF00'],
|
||||||
[100 / 200, "#0000FF"],
|
[100/200, '#0000FF'],
|
||||||
[160 / 200, "#FFFF00"],
|
[160/200, '#FFFF00'],
|
||||||
[1, "#FF0000"],
|
[1, '#FF0000']
|
||||||
// [23/200, normalColor],
|
// [23/200, normalColor],
|
||||||
// [0.50, alarmColor],
|
// [0.50, alarmColor],
|
||||||
// [1.0, alarmColors],
|
// [1.0, alarmColors],
|
||||||
|
|
@ -356,12 +207,12 @@ const fnInitEcharts = (data) => {
|
||||||
show: true,
|
show: true,
|
||||||
offsetCenter: ["0", "80%"],
|
offsetCenter: ["0", "80%"],
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
color: getColorByValue(data.CURRENT_VALUE),
|
color: getColorByValue(data.CURRENT_VALUE)
|
||||||
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
||||||
},
|
},
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
// color: data.CURRENT_VALUE >= 24 ? alarmColor : normalColor,
|
||||||
color: getColorByValue(data.CURRENT_VALUE),
|
color: getColorByValue(data.CURRENT_VALUE)
|
||||||
},
|
},
|
||||||
pointer: { width: 3, length: "95%" },
|
pointer: { width: 3, length: "95%" },
|
||||||
data: [{ value: data.CURRENT_VALUE }],
|
data: [{ value: data.CURRENT_VALUE }],
|
||||||
|
|
@ -416,21 +267,12 @@ const fnDisposeEcharts = () => {
|
||||||
myChartMap = {};
|
myChartMap = {};
|
||||||
};
|
};
|
||||||
const getColorByValue = (value) => {
|
const getColorByValue = (value) => {
|
||||||
return value < 24
|
return value < 24 ? 'rgb(255, 255, 255)' : // 白色
|
||||||
? "rgb(255, 255, 255)" // 白色
|
value <= 50 ? 'rgb(0, 255, 0)' : // 绿色
|
||||||
: value <= 50
|
value <= 100 ? 'rgb(0, 0, 255)' : // 蓝色
|
||||||
? "rgb(0, 255, 0)" // 绿色
|
value <= 160 ? 'rgb(255, 255, 0)' : // 黄色
|
||||||
: value <= 100
|
'rgb(255, 0, 0)'; // 红色
|
||||||
? "rgb(0, 0, 255)" // 蓝色
|
|
||||||
: value <= 160
|
|
||||||
? "rgb(255, 255, 0)" // 黄色
|
|
||||||
: "rgb(255, 0, 0)"; // 红色
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const goBack = () => {
|
|
||||||
window.history.back();
|
|
||||||
};
|
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
fnDisposeEcharts();
|
fnDisposeEcharts();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -201,8 +201,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -223,7 +223,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
@ -248,8 +248,7 @@ import {
|
||||||
getGroundbreakingList,
|
getGroundbreakingList,
|
||||||
getTaskSetps,
|
getTaskSetps,
|
||||||
getGroundbreakingFlow,
|
getGroundbreakingFlow,
|
||||||
setEightWorkInvalid,
|
setEightWorkInvalid, getApplyDept
|
||||||
getApplyDept,
|
|
||||||
} from "@/request/eight_work.js";
|
} from "@/request/eight_work.js";
|
||||||
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
||||||
import ShowPoints from "@/views/map_settings/assignment_ticket_area_settings/components/show_points.vue";
|
import ShowPoints from "@/views/map_settings/assignment_ticket_area_settings/components/show_points.vue";
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,22 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="分厂部门" prop="AUDIT_DEPARTMENT_ID">
|
||||||
|
<layout-department
|
||||||
|
v-model="form.AUDIT_DEPARTMENT_ID"
|
||||||
|
@update:model-value="fnAuditDepartmentChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
||||||
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="item in data.auditUserList"
|
||||||
|
:key="item.USER_ID"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.USER_ID"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
||||||
label="所在单位"
|
label="所在单位"
|
||||||
|
|
@ -37,7 +53,7 @@
|
||||||
label="所在单位负责人"
|
label="所在单位负责人"
|
||||||
prop="SAFETY_USER_ID"
|
prop="SAFETY_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.SAFETY_USER_ID" filterable multiple>
|
<el-select v-model="form.SAFETY_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -46,22 +62,6 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂部门" prop="AUDIT_DEPARTMENT_ID">
|
|
||||||
<layout-department
|
|
||||||
v-model="form.AUDIT_DEPARTMENT_ID"
|
|
||||||
@update:model-value="fnAuditDepartmentChange"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
|
||||||
<el-option
|
|
||||||
v-for="item in data.auditUserList"
|
|
||||||
:key="item.USER_ID"
|
|
||||||
:label="item.NAME"
|
|
||||||
:value="item.USER_ID"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="fnClose">取 消</el-button>
|
<el-button @click="fnClose">取 消</el-button>
|
||||||
|
|
@ -110,18 +110,23 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async () => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
|
if (value) {
|
||||||
const resData = await getBreakGroundVerifyConfigurationUser({
|
const resData = await getBreakGroundVerifyConfigurationUser({
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位已存在");
|
callback(new Error("该申请部门已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
APPLY_DEPARTMENT_ID: [
|
APPLY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
|
|
||||||
AUDIT_DEPARTMENT_ID: [
|
AUDIT_DEPARTMENT_ID: [
|
||||||
|
|
@ -158,12 +163,12 @@ const data = reactive({
|
||||||
|
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.SAFETY_USER_ID = [];
|
form.value.SAFETY_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -176,28 +181,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
|
|
||||||
await useFormValidate(formRef);
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const SAFETY_USER_ID = form.SAFETY_USER_ID
|
|
||||||
? form.SAFETY_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
SAFETY_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel();
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setBreakGroundConfigurationUserAdd(form);
|
||||||
await setBreakGroundConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setBreakGroundConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setBreakGroundConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -227,8 +215,8 @@ watchEffect(() => {
|
||||||
fnGetAuditUser(form.value.AUDIT_DEPARTMENT_ID);
|
fnGetAuditUser(form.value.AUDIT_DEPARTMENT_ID);
|
||||||
if (form.value.SAFETY_DEPARTMENT_ID)
|
if (form.value.SAFETY_DEPARTMENT_ID)
|
||||||
fnGetSafetyUser(form.value.SAFETY_DEPARTMENT_ID);
|
fnGetSafetyUser(form.value.SAFETY_DEPARTMENT_ID);
|
||||||
|
|
||||||
});
|
});
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -48,16 +48,6 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="APPLY_DEPARTMENT_NAME" label="申请单位" />
|
<el-table-column prop="APPLY_DEPARTMENT_NAME" label="申请单位" />
|
||||||
<el-table-column
|
|
||||||
prop="SAFETY_DEPARTMENT_NAME"
|
|
||||||
label="水、电、汽、工艺、设备、消防、 安全管理等动土所在单位"
|
|
||||||
width="350"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="SAFETY_USER_NAME"
|
|
||||||
label="水、电、汽、工艺、设备、消防、 安全管理等动土所在单位负责人"
|
|
||||||
width="390"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AUDIT_DEPARTMENT_NAME"
|
prop="AUDIT_DEPARTMENT_NAME"
|
||||||
label="分厂部门"
|
label="分厂部门"
|
||||||
|
|
@ -68,6 +58,16 @@
|
||||||
label="分厂部门负责人"
|
label="分厂部门负责人"
|
||||||
width="150"
|
width="150"
|
||||||
/>
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="SAFETY_DEPARTMENT_NAME"
|
||||||
|
label="水、电、汽、工艺、设备、消防、 安全管理等动土所在单位"
|
||||||
|
width="350"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="SAFETY_USER_NAME"
|
||||||
|
label="水、电、汽、工艺、设备、消防、 安全管理等动土所在单位负责人"
|
||||||
|
width="390"
|
||||||
|
/>
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" width="240">
|
<el-table-column label="操作" align="center" width="240">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
|
@ -138,9 +138,9 @@ const data = reactive({
|
||||||
CONFIGURATION_ID: "",
|
CONFIGURATION_ID: "",
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
SAFETY_DEPARTMENT_ID: "",
|
SAFETY_DEPARTMENT_ID: "",
|
||||||
SAFETY_USER_ID: [],
|
SAFETY_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -192,8 +192,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getBreakGroundConfigurationUserView({
|
const resData = await getBreakGroundConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.SAFETY_USER_ID = resData.pd.SAFETY_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,6 @@ const fnSubmit = debounce(
|
||||||
...params,
|
...params,
|
||||||
// 来源 2风险清单 隐患清单
|
// 来源 2风险清单 隐患清单
|
||||||
SOURCE: "2",
|
SOURCE: "2",
|
||||||
HAVESCHEME: 0,
|
|
||||||
RISK_UNIT: props.info.RISKUNITNAME,
|
RISK_UNIT: props.info.RISKUNITNAME,
|
||||||
IDENTIFICATION: props.info.PARTSNAME,
|
IDENTIFICATION: props.info.PARTSNAME,
|
||||||
RISK_DESCR: props.info.RISK_DESCR,
|
RISK_DESCR: props.info.RISK_DESCR,
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,6 @@ const fnSubmit = debounce(
|
||||||
...form.value,
|
...form.value,
|
||||||
STATE: "16",
|
STATE: "16",
|
||||||
HAVESCHEME: 0,
|
HAVESCHEME: 0,
|
||||||
IS_REBUILD: 0,
|
|
||||||
HIDDENTYPE1: form.value.HIDDENTYPE[0],
|
HIDDENTYPE1: form.value.HIDDENTYPE[0],
|
||||||
HIDDENTYPE2: form.value.HIDDENTYPE[1],
|
HIDDENTYPE2: form.value.HIDDENTYPE[1],
|
||||||
HIDDENTYPE3: form.value.HIDDENTYPE[2],
|
HIDDENTYPE3: form.value.HIDDENTYPE[2],
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,6 @@
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-checkbox-group v-model="checkOptions" @change="fnCheckedChange">
|
<el-checkbox-group v-model="checkOptions" @change="fnCheckedChange">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col v-for="(item, index) in defaultOptions" :key="index" :span="4">
|
|
||||||
<el-checkbox :label="item" :value="item" />
|
|
||||||
</el-col>
|
|
||||||
<el-col v-for="(item, index) in options" :key="index" :span="4">
|
<el-col v-for="(item, index) in options" :key="index" :span="4">
|
||||||
<el-checkbox :label="item" :value="item" />
|
<el-checkbox :label="item" :value="item" />
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -74,6 +71,7 @@ const options = [
|
||||||
"检查内容",
|
"检查内容",
|
||||||
"隐患级别",
|
"隐患级别",
|
||||||
"隐患状态",
|
"隐患状态",
|
||||||
|
"隐患部位",
|
||||||
"隐患发现部门",
|
"隐患发现部门",
|
||||||
"发现人",
|
"发现人",
|
||||||
"隐患确认部门",
|
"隐患确认部门",
|
||||||
|
|
@ -100,13 +98,12 @@ const options = [
|
||||||
"验收时间",
|
"验收时间",
|
||||||
"验收图片",
|
"验收图片",
|
||||||
];
|
];
|
||||||
const checkAll = ref(false);
|
const checkAll = ref(true);
|
||||||
const isIndeterminate = ref(false);
|
const isIndeterminate = ref(false);
|
||||||
const checkOptions = ref(defaultOptions);
|
const checkOptions = ref(options);
|
||||||
const havePicture = ref(false);
|
const havePicture = ref(false);
|
||||||
const fnCheckAllChange = (val) => {
|
const fnCheckAllChange = (val) => {
|
||||||
// 把defaultOptions+options赋给checkOptions
|
checkOptions.value = val ? options : [];
|
||||||
checkOptions.value = val ? [...defaultOptions, ...options] : [];
|
|
||||||
isIndeterminate.value = false;
|
isIndeterminate.value = false;
|
||||||
};
|
};
|
||||||
const fnCheckedChange = (value) => {
|
const fnCheckedChange = (value) => {
|
||||||
|
|
@ -116,15 +113,16 @@ const fnCheckedChange = (value) => {
|
||||||
};
|
};
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
checkOptions.value = defaultOptions;
|
checkOptions.value = options;
|
||||||
isIndeterminate.value = false;
|
isIndeterminate.value = false;
|
||||||
checkAll.value = false;
|
checkAll.value = true;
|
||||||
havePicture.value = false;
|
havePicture.value = false;
|
||||||
};
|
};
|
||||||
const fnSubmit = debounce(
|
const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
() => {
|
() => {
|
||||||
checkOptions.value = [...checkOptions.value];
|
checkOptions.value = [...defaultOptions, ...checkOptions.value];
|
||||||
|
console.log(checkOptions.value);
|
||||||
let data = {
|
let data = {
|
||||||
havePicture: 1,
|
havePicture: 1,
|
||||||
ids: props.ids.join(","),
|
ids: props.ids.join(","),
|
||||||
|
|
|
||||||
|
|
@ -7,18 +7,6 @@
|
||||||
@submit.prevent="fnResetPaginationTransfer"
|
@submit.prevent="fnResetPaginationTransfer"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="隐患区域" prop="checkedIds">
|
|
||||||
<layout-department
|
|
||||||
v-model="searchForm.checkedIds"
|
|
||||||
show-checkbox
|
|
||||||
multiple
|
|
||||||
collapse-tags
|
|
||||||
:check-strictly="false"
|
|
||||||
root-disabled="Y"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="隐患描述" prop="KEYWORDS">
|
<el-form-item label="隐患描述" prop="KEYWORDS">
|
||||||
<el-input v-model="searchForm.KEYWORDS" />
|
<el-input v-model="searchForm.KEYWORDS" />
|
||||||
|
|
@ -125,15 +113,19 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="6">
|
||||||
<el-form-item label-width="10px" class="end">
|
<el-form-item label-width="10px">
|
||||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
<el-button native-type="reset" @click="fnResetPaginationTransfer">
|
<el-button native-type="reset" @click="fnResetPaginationTransfer">
|
||||||
重置
|
重置
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!-- <el-button type="success" @click="fnReport"> 上报</el-button>-->
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label-width="10px" class="end">
|
||||||
<el-button @click="fnPrint">打印</el-button>
|
<el-button @click="fnPrint">打印</el-button>
|
||||||
<el-button @click="fnExport">导出</el-button>
|
<el-button @click="fnExport">导出</el-button>
|
||||||
<!-- <el-button type="success" @click="fnReport"> 上报</el-button>-->
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -211,9 +203,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column label="是否合格" width="100">
|
<el-table-column label="是否合格" width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span v-if="row.CHECK_STATUS === '1' || row.STATE === '4'">
|
<span v-if="row.CHECK_STATUS === '1'"> 是 </span>
|
||||||
是
|
|
||||||
</span>
|
|
||||||
<span v-else> 否 </span>
|
<span v-else> 否 </span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -365,7 +355,6 @@ const fnGetDataTransfer = () => {
|
||||||
ENDTIME: searchForm.value.dates?.[1],
|
ENDTIME: searchForm.value.dates?.[1],
|
||||||
HIDDEN_RECTIFICATION_DEPT_IDS:
|
HIDDEN_RECTIFICATION_DEPT_IDS:
|
||||||
searchForm.value.HIDDEN_RECTIFICATION_DEPT_IDS?.join(","),
|
searchForm.value.HIDDEN_RECTIFICATION_DEPT_IDS?.join(","),
|
||||||
checkedIds: searchForm.value.checkedIds?.join(","),
|
|
||||||
HIDDEN_FIND_DEPT_IDS: searchForm.value.HIDDEN_FIND_DEPT_IDS?.join(","),
|
HIDDEN_FIND_DEPT_IDS: searchForm.value.HIDDEN_FIND_DEPT_IDS?.join(","),
|
||||||
HIDDEN_CONFIRM_DEPT_IDS:
|
HIDDEN_CONFIRM_DEPT_IDS:
|
||||||
searchForm.value.HIDDEN_CONFIRM_DEPT_IDS?.join(","),
|
searchForm.value.HIDDEN_CONFIRM_DEPT_IDS?.join(","),
|
||||||
|
|
@ -377,7 +366,6 @@ const fnResetPaginationTransfer = () => {
|
||||||
ENDTIME: searchForm.value.dates?.[1],
|
ENDTIME: searchForm.value.dates?.[1],
|
||||||
HIDDEN_RECTIFICATION_DEPT_IDS:
|
HIDDEN_RECTIFICATION_DEPT_IDS:
|
||||||
searchForm.value.HIDDEN_RECTIFICATION_DEPT_IDS?.join(","),
|
searchForm.value.HIDDEN_RECTIFICATION_DEPT_IDS?.join(","),
|
||||||
checkedIds: searchForm.value.checkedIds?.join(","),
|
|
||||||
HIDDEN_FIND_DEPT_IDS: searchForm.value.HIDDEN_FIND_DEPT_IDS?.join(","),
|
HIDDEN_FIND_DEPT_IDS: searchForm.value.HIDDEN_FIND_DEPT_IDS?.join(","),
|
||||||
HIDDEN_CONFIRM_DEPT_IDS:
|
HIDDEN_CONFIRM_DEPT_IDS:
|
||||||
searchForm.value.HIDDEN_CONFIRM_DEPT_IDS?.join(","),
|
searchForm.value.HIDDEN_CONFIRM_DEPT_IDS?.join(","),
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -208,8 +208,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -230,7 +230,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,7 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">作业申请单位</td>
|
<td class="title">作业申请单位</td>
|
||||||
<td>
|
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}-{{data.info.APPLY_WORKSHOP_DEPARTMENT_NAME}}</td>
|
||||||
{{ data.info.APPLY_DEPARTMENT_NAME }}-{{
|
|
||||||
data.info.APPLY_WORKSHOP_DEPARTMENT_NAME
|
|
||||||
}}
|
|
||||||
</td>
|
|
||||||
<td class="title">申请人</td>
|
<td class="title">申请人</td>
|
||||||
<td>{{ data.info.APPLY_USER_NAME }}</td>
|
<td>{{ data.info.APPLY_USER_NAME }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -291,7 +287,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="data.signs.SAFETY">
|
<tr v-if="data.signs.SAFETY">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>生产部意见:{{ data.signs.SAFETY?.[0].DESCR }}</div>
|
<div>安全部意见:{{ data.signs.SAFETY?.[0].DESCR }}</div>
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in data.signs.SAFETY?.[0].SIGN_TIME"
|
v-for="(item, index) in data.signs.SAFETY?.[0].SIGN_TIME"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="高处作业级别" prop="WORK_LEVEL">
|
<el-form-item label="高处作业级别" prop="WORK_LEVEL">
|
||||||
<el-select
|
<el-select v-model="form.WORK_LEVEL" placeholder="请选择高处作业级别" :disabled="props.type === 'edit'">
|
||||||
v-model="form.WORK_LEVEL"
|
|
||||||
placeholder="请选择高处作业级别"
|
|
||||||
:disabled="props.type === 'edit'"
|
|
||||||
@change="fnWorkLevelChange"
|
|
||||||
>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.levelList"
|
v-for="item in data.levelList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -44,7 +39,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID">
|
||||||
<el-select v-model="form.WORKSHOP_USER_ID" filterable multiple>
|
<el-select v-model="form.WORKSHOP_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.workshopUserList"
|
v-for="item in data.workshopUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -59,13 +54,8 @@
|
||||||
@update:model-value="fnLeaderDepartmentChange"
|
@update:model-value="fnLeaderDepartmentChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID" filterable>
|
||||||
label="分厂贯标中心负责人"
|
<el-select v-model="form.LEADER_USER_ID">
|
||||||
prop="LEADER_USER_ID"
|
|
||||||
filterable
|
|
||||||
multiple
|
|
||||||
>
|
|
||||||
<el-select v-model="form.LEADER_USER_ID" filterable multiple>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.leaderUserList"
|
v-for="item in data.leaderUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -99,7 +89,7 @@
|
||||||
label="分厂负责人"
|
label="分厂负责人"
|
||||||
prop="AUDIT_USER_ID"
|
prop="AUDIT_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -128,7 +118,7 @@
|
||||||
label="安全处负责人"
|
label="安全处负责人"
|
||||||
prop="APPROVE_USER_ID"
|
prop="APPROVE_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.APPROVE_USER_ID" filterable multiple>
|
<el-select v-model="form.APPROVE_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.approveUserList"
|
v-for="item in data.approveUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -139,7 +129,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
||||||
label="生产部"
|
label="安全部"
|
||||||
prop="SAFETY_DEPARTMENT_ID"
|
prop="SAFETY_DEPARTMENT_ID"
|
||||||
>
|
>
|
||||||
<layout-department
|
<layout-department
|
||||||
|
|
@ -149,10 +139,10 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
v-if="form.WORK_LEVEL === '4' || !form.WORK_LEVEL"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
prop="SAFETY_USER_ID"
|
prop="SAFETY_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.SAFETY_USER_ID" filterable multiple>
|
<el-select v-model="form.SAFETY_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -209,15 +199,17 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async (value) => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
const resData = await getHighVerifyConfigurationUser({
|
const resData = await getHighVerifyConfigurationUser({
|
||||||
WORK_LEVEL: value,
|
WORK_LEVEL: value,
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位和高处作业等级已存在");
|
callback(new Error("该申请单位和高处作业等级已存在"));
|
||||||
// callback(new Error("该申请单位和高处作业等级已存在"));
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -226,8 +218,8 @@ const rules = {
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
],
|
],
|
||||||
WORK_LEVEL: [
|
WORK_LEVEL: [
|
||||||
{ required: true, message: "请选择高处作业等级", trigger: "blur" },
|
{ required: true, message: "请选择动火等级", trigger: "blur" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
LEADER_DEPARTMENT_ID: [
|
LEADER_DEPARTMENT_ID: [
|
||||||
{
|
{
|
||||||
|
|
@ -256,10 +248,10 @@ const rules = {
|
||||||
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_DEPARTMENT_ID: [
|
SAFETY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择生产部", trigger: "change" },
|
{ required: true, message: "请选择安全部", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_USER_ID: [
|
SAFETY_USER_ID: [
|
||||||
{ required: true, message: "请选择生产部负责人", trigger: "change" },
|
{ required: true, message: "请选择安全部负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
WORKSHOP_DEPARTMENT_ID: [
|
WORKSHOP_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择工段部门", trigger: "change" },
|
{ required: true, message: "请选择工段部门", trigger: "change" },
|
||||||
|
|
@ -300,23 +292,23 @@ const data = reactive({
|
||||||
|
|
||||||
const fnLeaderDepartmentChange = () => {
|
const fnLeaderDepartmentChange = () => {
|
||||||
data.leaderUserList = [];
|
data.leaderUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnApproveDepartmentChange = () => {
|
const fnApproveDepartmentChange = () => {
|
||||||
data.approveUserList = [];
|
data.approveUserList = [];
|
||||||
form.value.APPROVE_USER_ID = [];
|
form.value.APPROVE_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.SAFETY_USER_ID = [];
|
form.value.SAFETY_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnWorkshopDepartmentChange = () => {
|
const fnWorkshopDepartmentChange = () => {
|
||||||
data.workshopUserList = [];
|
data.workshopUserList = [];
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
form.value.WORKSHOP_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -329,32 +321,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
// if (props.type === "add") {
|
|
||||||
// await fnHasLevel(form.WORK_LEVEL);
|
|
||||||
// }
|
|
||||||
await useFormValidate(formRef);
|
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID.join(",");
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID.join(",");
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID.join(",");
|
|
||||||
const SAFETY_USER_ID = form.SAFETY_USER_ID.join(",");
|
|
||||||
const WORKSHOP_USER_ID = form.WORKSHOP_USER_ID.join(",");
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
SAFETY_USER_ID,
|
|
||||||
WORKSHOP_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel(form.WORK_LEVEL);
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setHighConfigurationUserAdd(form);
|
||||||
await setHighConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setHighConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setHighConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -403,25 +374,6 @@ watchEffect(() => {
|
||||||
if (form.value.WORKSHOP_DEPARTMENT_ID)
|
if (form.value.WORKSHOP_DEPARTMENT_ID)
|
||||||
fnGetWorkshopUser(form.value.WORKSHOP_DEPARTMENT_ID);
|
fnGetWorkshopUser(form.value.WORKSHOP_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
|
|
||||||
const fnWorkLevelChange = () => {
|
|
||||||
data.leaderUserList = [];
|
|
||||||
form.value.LEADER_DEPARTMENT_ID = "";
|
|
||||||
form.value.LEADER_USER_ID = [];
|
|
||||||
data.auditUserList = [];
|
|
||||||
form.value.AUDIT_DEPARTMENT_ID = "";
|
|
||||||
form.value.AUDIT_USER_ID = [];
|
|
||||||
data.approveUserList = [];
|
|
||||||
form.value.APPROVE_DEPARTMENT_ID = "";
|
|
||||||
form.value.APPROVE_USER_ID = [];
|
|
||||||
data.safetyUserList = [];
|
|
||||||
form.value.SAFETY_DEPARTMENT_ID = "";
|
|
||||||
form.value.SAFETY_USER_ID = [];
|
|
||||||
data.workshopUserList = [];
|
|
||||||
form.value.WORKSHOP_DEPARTMENT_ID = "";
|
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
|
||||||
};
|
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -99,12 +99,12 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_DEPARTMENT_NAME"
|
prop="SAFETY_DEPARTMENT_NAME"
|
||||||
label="生产部"
|
label="安全部"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
@ -178,15 +178,15 @@ const data = reactive({
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
WORK_LEVEL: "",
|
WORK_LEVEL: "",
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
SAFETY_DEPARTMENT_ID: "",
|
SAFETY_DEPARTMENT_ID: "",
|
||||||
SAFETY_USER_ID: [],
|
SAFETY_USER_ID: "",
|
||||||
WORKSHOP_DEPARTMENT_ID: "",
|
WORKSHOP_DEPARTMENT_ID: "",
|
||||||
WORKSHOP_USER_ID: [],
|
WORKSHOP_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -236,12 +236,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getHighConfigurationUserView({
|
const resData = await getHighConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.WORKSHOP_USER_ID =
|
|
||||||
resData.pd.WORKSHOP_USER_ID.toString().split(",");
|
|
||||||
resData.pd.LEADER_USER_ID = resData.pd.LEADER_USER_ID.toString().split(",");
|
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.APPROVE_USER_ID = resData.pd.APPROVE_USER_ID.toString().split(",");
|
|
||||||
resData.pd.SAFETY_USER_ID = resData.pd.SAFETY_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
||||||
|
|
@ -123,7 +123,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
||||||
|
|
@ -207,8 +207,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -229,7 +229,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
@ -254,8 +254,7 @@ import {
|
||||||
getHoistingList,
|
getHoistingList,
|
||||||
getTaskSetps,
|
getTaskSetps,
|
||||||
getHoistingFlow,
|
getHoistingFlow,
|
||||||
setEightWorkInvalid,
|
setEightWorkInvalid, getApplyDept
|
||||||
getApplyDept,
|
|
||||||
} from "@/request/eight_work.js";
|
} from "@/request/eight_work.js";
|
||||||
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
||||||
import ShowPoints from "@/views/map_settings/assignment_ticket_area_settings/components/show_points.vue";
|
import ShowPoints from "@/views/map_settings/assignment_ticket_area_settings/components/show_points.vue";
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,7 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">作业申请单位</td>
|
<td class="title">作业申请单位</td>
|
||||||
<td>
|
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}-{{data.info.APPLY_WORKSHOP_DEPARTMENT_NAME}}</td>
|
||||||
{{ data.info.APPLY_DEPARTMENT_NAME }}-{{
|
|
||||||
data.info.APPLY_WORKSHOP_DEPARTMENT_NAME
|
|
||||||
}}
|
|
||||||
</td>
|
|
||||||
<td class="title">作业单位</td>
|
<td class="title">作业单位</td>
|
||||||
<td>{{ data.info.LEADER_DEPARTMENT_NAME }}</td>
|
<td>{{ data.info.LEADER_DEPARTMENT_NAME }}</td>
|
||||||
<td class="title">作业申请时间</td>
|
<td class="title">作业申请时间</td>
|
||||||
|
|
@ -319,7 +315,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="data.signs.SAFETY">
|
<tr v-if="data.signs.SAFETY">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>生产部意见:{{ data.signs.SAFETY?.[0].DESCR }}</div>
|
<div>安全部意见:{{ data.signs.SAFETY?.[0].DESCR }}</div>
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in data.signs.SAFETY?.[0].SIGN_TIME"
|
v-for="(item, index) in data.signs.SAFETY?.[0].SIGN_TIME"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="作业级别" prop="WORK_LEVEL">
|
<el-form-item label="作业级别" prop="WORK_LEVEL">
|
||||||
<el-select
|
<el-select v-model="form.WORK_LEVEL" placeholder="请选择作业级别" :disabled="props.type === 'edit'">
|
||||||
v-model="form.WORK_LEVEL"
|
|
||||||
placeholder="请选择作业级别"
|
|
||||||
:disabled="props.type === 'edit'"
|
|
||||||
@change="fnWorkLevelChange"
|
|
||||||
>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.levelList"
|
v-for="item in data.levelList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -43,13 +38,8 @@
|
||||||
@update:model-value="fnWorkshopDepartmentChange"
|
@update:model-value="fnWorkshopDepartmentChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item label="工段负责人" prop="WORKSHOP_USER_ID" filterable>
|
||||||
label="工段负责人"
|
<el-select v-model="form.WORKSHOP_USER_ID">
|
||||||
prop="WORKSHOP_USER_ID"
|
|
||||||
filterable
|
|
||||||
multiple
|
|
||||||
>
|
|
||||||
<el-select v-model="form.WORKSHOP_USER_ID" filterable multiple>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.workshopUserList"
|
v-for="item in data.workshopUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -64,13 +54,8 @@
|
||||||
@update:model-value="fnLeaderDepartmentChange"
|
@update:model-value="fnLeaderDepartmentChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item label="分厂贯标中心负责人" prop="LEADER_USER_ID" filterable>
|
||||||
label="分厂贯标中心负责人"
|
<el-select v-model="form.LEADER_USER_ID">
|
||||||
prop="LEADER_USER_ID"
|
|
||||||
filterable
|
|
||||||
multiple
|
|
||||||
>
|
|
||||||
<el-select v-model="form.LEADER_USER_ID" filterable multiple>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.leaderUserList"
|
v-for="item in data.leaderUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -85,8 +70,8 @@
|
||||||
@update:model-value="fnAuditDepartmentChange"
|
@update:model-value="fnAuditDepartmentChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID" filterable>
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -111,7 +96,7 @@
|
||||||
label="安全处负责人"
|
label="安全处负责人"
|
||||||
prop="APPROVE_USER_ID"
|
prop="APPROVE_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.APPROVE_USER_ID" filterable multiple>
|
<el-select v-model="form.APPROVE_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.approveUserList"
|
v-for="item in data.approveUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -122,7 +107,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.WORK_LEVEL === '1' || !form.WORK_LEVEL"
|
v-if="form.WORK_LEVEL === '1' || !form.WORK_LEVEL"
|
||||||
label="生产部"
|
label="安全部"
|
||||||
prop="SAFETY_DEPARTMENT_ID"
|
prop="SAFETY_DEPARTMENT_ID"
|
||||||
>
|
>
|
||||||
<layout-department
|
<layout-department
|
||||||
|
|
@ -132,10 +117,10 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.WORK_LEVEL === '1' || !form.WORK_LEVEL"
|
v-if="form.WORK_LEVEL === '1' || !form.WORK_LEVEL"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
prop="SAFETY_USER_ID"
|
prop="SAFETY_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.SAFETY_USER_ID" filterable multiple>
|
<el-select v-model="form.SAFETY_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -192,14 +177,17 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async (value) => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
const resData = await getHoistingVerifyConfigurationUser({
|
const resData = await getHoistingVerifyConfigurationUser({
|
||||||
WORK_LEVEL: value,
|
WORK_LEVEL: value,
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位和吊装作业等级已存在");
|
callback(new Error("该申请单位和作业等级已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -209,7 +197,7 @@ const rules = {
|
||||||
],
|
],
|
||||||
WORK_LEVEL: [
|
WORK_LEVEL: [
|
||||||
{ required: true, message: "请选择作业等级", trigger: "blur" },
|
{ required: true, message: "请选择作业等级", trigger: "blur" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
LEADER_DEPARTMENT_ID: [
|
LEADER_DEPARTMENT_ID: [
|
||||||
{
|
{
|
||||||
|
|
@ -238,10 +226,10 @@ const rules = {
|
||||||
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
{ required: true, message: "请选择安全处负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_DEPARTMENT_ID: [
|
SAFETY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择生产部", trigger: "change" },
|
{ required: true, message: "请选择安全部", trigger: "change" },
|
||||||
],
|
],
|
||||||
SAFETY_USER_ID: [
|
SAFETY_USER_ID: [
|
||||||
{ required: true, message: "请选择生产部负责人", trigger: "change" },
|
{ required: true, message: "请选择安全部负责人", trigger: "change" },
|
||||||
],
|
],
|
||||||
WORKSHOP_DEPARTMENT_ID: [
|
WORKSHOP_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择工段部门", trigger: "change" },
|
{ required: true, message: "请选择工段部门", trigger: "change" },
|
||||||
|
|
@ -278,41 +266,23 @@ const data = reactive({
|
||||||
|
|
||||||
const fnLeaderDepartmentChange = () => {
|
const fnLeaderDepartmentChange = () => {
|
||||||
data.leaderUserList = [];
|
data.leaderUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnApproveDepartmentChange = () => {
|
const fnApproveDepartmentChange = () => {
|
||||||
data.approveUserList = [];
|
data.approveUserList = [];
|
||||||
form.value.APPROVE_USER_ID = [];
|
form.value.APPROVE_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.SAFETY_USER_ID = [];
|
form.value.SAFETY_USER_ID = "";
|
||||||
};
|
};
|
||||||
const fnWorkshopDepartmentChange = () => {
|
const fnWorkshopDepartmentChange = () => {
|
||||||
data.workshopUserList = [];
|
data.workshopUserList = [];
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
form.value.WORKSHOP_USER_ID = "";
|
||||||
};
|
|
||||||
|
|
||||||
const fnWorkLevelChange = () => {
|
|
||||||
data.leaderUserList = [];
|
|
||||||
form.value.LEADER_DEPARTMENT_ID = "";
|
|
||||||
form.value.LEADER_USER_ID = [];
|
|
||||||
data.auditUserList = [];
|
|
||||||
form.value.AUDIT_DEPARTMENT_ID = "";
|
|
||||||
form.value.AUDIT_USER_ID = [];
|
|
||||||
data.approveUserList = [];
|
|
||||||
form.value.APPROVE_DEPARTMENT_ID = "";
|
|
||||||
form.value.APPROVE_USER_ID = [];
|
|
||||||
data.safetyUserList = [];
|
|
||||||
form.value.SAFETY_DEPARTMENT_ID = "";
|
|
||||||
form.value.SAFETY_USER_ID = [];
|
|
||||||
data.workshopUserList = [];
|
|
||||||
form.value.WORKSHOP_DEPARTMENT_ID = "";
|
|
||||||
form.value.WORKSHOP_USER_ID = [];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -325,29 +295,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
await useFormValidate(formRef);
|
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID.join(",");
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID.join(",");
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID.join(",");
|
|
||||||
const SAFETY_USER_ID = form.SAFETY_USER_ID.join(",");
|
|
||||||
const WORKSHOP_USER_ID = form.WORKSHOP_USER_ID.join(",");
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
SAFETY_USER_ID,
|
|
||||||
WORKSHOP_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel(form.WORK_LEVEL);
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setHoistingConfigurationUserAdd(form);
|
||||||
await setHoistingConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setHoistingConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setHoistingConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
|
||||||
|
|
@ -98,12 +98,12 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_DEPARTMENT_NAME"
|
prop="SAFETY_DEPARTMENT_NAME"
|
||||||
label="生产部"
|
label="安全部"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SAFETY_USER_NAME"
|
prop="SAFETY_USER_NAME"
|
||||||
label="生产部负责人"
|
label="安全部负责人"
|
||||||
width="100"
|
width="100"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
@ -162,7 +162,7 @@ import {
|
||||||
getHoistingConfigurationUserView,
|
getHoistingConfigurationUserView,
|
||||||
setHoistingConfigurationUserDelete,
|
setHoistingConfigurationUserDelete,
|
||||||
setHoistingConfigurationUserDeleteAll,
|
setHoistingConfigurationUserDeleteAll,
|
||||||
setHoistingConfigurationUserList,
|
setHoistingConfigurationUserList
|
||||||
} from "@/request/eight_work.js";
|
} from "@/request/eight_work.js";
|
||||||
|
|
||||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||||
|
|
@ -177,15 +177,15 @@ const data = reactive({
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
WORK_LEVEL: "",
|
WORK_LEVEL: "",
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
SAFETY_DEPARTMENT_ID: "",
|
SAFETY_DEPARTMENT_ID: "",
|
||||||
SAFETY_USER_ID: [],
|
SAFETY_USER_ID: "",
|
||||||
WORKSHOP_DEPARTMENT_ID: "",
|
WORKSHOP_DEPARTMENT_ID: "",
|
||||||
WORKSHOP_USER_ID: [],
|
WORKSHOP_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -235,12 +235,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getHoistingConfigurationUserView({
|
const resData = await getHoistingConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.WORKSHOP_USER_ID =
|
|
||||||
resData.pd.WORKSHOP_USER_ID.toString().split(",");
|
|
||||||
resData.pd.LEADER_USER_ID = resData.pd.LEADER_USER_ID.toString().split(",");
|
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.APPROVE_USER_ID = resData.pd.APPROVE_USER_ID.toString().split(",");
|
|
||||||
resData.pd.SAFETY_USER_ID = resData.pd.SAFETY_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -217,8 +217,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -244,7 +244,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<show-points
|
<show-points
|
||||||
:id="data.showPointsDialog.id"
|
:id="data.showPointsDialog.id"
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@
|
||||||
v-model="form.WORK_LEVEL"
|
v-model="form.WORK_LEVEL"
|
||||||
placeholder="请选择动火等级"
|
placeholder="请选择动火等级"
|
||||||
:disabled="props.type === 'edit'"
|
:disabled="props.type === 'edit'"
|
||||||
@change="fnWorkLevelChange"
|
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.levelList"
|
v-for="item in data.levelList"
|
||||||
|
|
@ -205,18 +204,17 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async (value) => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
const resData = await getHotVerifyConfigurationUser({
|
const resData = await getHotVerifyConfigurationUser({
|
||||||
WORK_LEVEL: value,
|
WORK_LEVEL: value,
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID) {
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
ElMessage.error("该申请单位和动火等级已存在");
|
callback(new Error("该申请单位和动火等级已存在"));
|
||||||
return true;
|
else callback();
|
||||||
} else {
|
} else {
|
||||||
return false;
|
callback();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -226,7 +224,7 @@ const rules = {
|
||||||
],
|
],
|
||||||
WORK_LEVEL: [
|
WORK_LEVEL: [
|
||||||
{ required: true, message: "请选择动火等级", trigger: "blur" },
|
{ required: true, message: "请选择动火等级", trigger: "blur" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
LEADER_DEPARTMENT_ID: [
|
LEADER_DEPARTMENT_ID: [
|
||||||
{
|
{
|
||||||
|
|
@ -293,29 +291,10 @@ const data = reactive({
|
||||||
projectUserList: [],
|
projectUserList: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const fnWorkLevelChange = () => {
|
|
||||||
data.leaderUserList = [];
|
|
||||||
form.value.LEADER_DEPARTMENT_ID = "";
|
|
||||||
form.value.LEADER_USER_ID = [];
|
|
||||||
data.auditUserList = [];
|
|
||||||
form.value.AUDIT_DEPARTMENT_ID = "";
|
|
||||||
form.value.AUDIT_USER_ID = [];
|
|
||||||
data.approveUserList = [];
|
|
||||||
form.value.APPROVE_DEPARTMENT_ID = "";
|
|
||||||
form.value.APPROVE_USER_ID = [];
|
|
||||||
data.monitorUserList = [];
|
|
||||||
form.value.MONITOR_DEPARTMENT_ID = "";
|
|
||||||
form.value.MONITOR_USER_ID = [];
|
|
||||||
data.projectUserList = [];
|
|
||||||
form.value.PROJECT_MANAGER_DEPARTMENT_ID = "";
|
|
||||||
form.value.PROJECT_MANAGER_USER_ID = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
const fnLeaderDepartmentChange = () => {
|
const fnLeaderDepartmentChange = () => {
|
||||||
data.leaderUserList = [];
|
data.leaderUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = [];
|
||||||
|
|
@ -343,44 +322,17 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
await useFormValidate(formRef);
|
form.LEADER_USER_ID = form.LEADER_USER_ID.join(",");
|
||||||
// if (props.type === "add") {
|
form.AUDIT_USER_ID = form.AUDIT_USER_ID.join(",");
|
||||||
// fnHasLevel(form.WORK_LEVEL);
|
form.APPROVE_USER_ID = form.APPROVE_USER_ID.join(",");
|
||||||
// }
|
form.MONITOR_USER_ID = form.MONITOR_USER_ID.join(",");
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID
|
form.PROJECT_MANAGER_USER_ID = form.PROJECT_MANAGER_USER_ID.join(",");
|
||||||
? form.LEADER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID
|
|
||||||
? form.APPROVE_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const MONITOR_USER_ID = form.MONITOR_USER_ID
|
|
||||||
? form.MONITOR_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const PROJECT_MANAGER_USER_ID = form.PROJECT_MANAGER_USER_ID
|
|
||||||
? form.PROJECT_MANAGER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
MONITOR_USER_ID,
|
|
||||||
PROJECT_MANAGER_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel(form.WORK_LEVEL);
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setHotConfigurationUserAdd(form);
|
||||||
await setHotConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setHotConfigurationUserEdit(form);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
await setHotConfigurationUserEdit(params);
|
|
||||||
}
|
|
||||||
|
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
emits("get-data");
|
emits("get-data");
|
||||||
|
|
@ -428,8 +380,6 @@ watchEffect(() => {
|
||||||
if (form.value.PROJECT_MANAGER_DEPARTMENT_ID)
|
if (form.value.PROJECT_MANAGER_DEPARTMENT_ID)
|
||||||
fnGetProjectUser(form.value.PROJECT_MANAGER_DEPARTMENT_ID);
|
fnGetProjectUser(form.value.PROJECT_MANAGER_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
|
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -171,15 +171,15 @@ const data = reactive({
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
WORK_LEVEL: "",
|
WORK_LEVEL: "",
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
MONITOR_DEPARTMENT_ID: "",
|
MONITOR_DEPARTMENT_ID: "",
|
||||||
MONITOR_USER_ID: [],
|
MONITOR_USER_ID: "",
|
||||||
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
PROJECT_MANAGER_DEPARTMENT_ID: "",
|
||||||
PROJECT_MANAGER_USER_ID: [],
|
PROJECT_MANAGER_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -34,28 +34,24 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label-width="10px">
|
<el-form-item label-width="10px">
|
||||||
<el-button type="primary" @click="fnGetDataTransfer"
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
>搜索</el-button
|
<el-button native-type="reset" @click="fnGetDataTransfer">
|
||||||
>
|
重置
|
||||||
<el-button @click="reset"> 重置 </el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<layout-table
|
<layout-table :data="list" :show-pagination="false">
|
||||||
:data="list"
|
|
||||||
:show-pagination="false"
|
|
||||||
show-summary
|
|
||||||
:summary-method="fnGetSummaries"
|
|
||||||
>
|
|
||||||
<el-table-column label="序号" width="70">
|
<el-table-column label="序号" width="70">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="NAME" label="部门" />
|
<el-table-column prop="NAME" label="部门" />
|
||||||
|
|
||||||
<el-table-column prop="LOGIN_RATE" label="登录率" />
|
<el-table-column prop="LOGIN_RATE" label="登录率" />
|
||||||
</layout-table>
|
</layout-table>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
|
|
@ -66,10 +62,10 @@
|
||||||
import LayoutDepartment from "@/components/department/index.vue";
|
import LayoutDepartment from "@/components/department/index.vue";
|
||||||
import { serialNumber } from "@/assets/js/utils.js";
|
import { serialNumber } from "@/assets/js/utils.js";
|
||||||
import useListData from "@/assets/js/useListData.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
import { getFhlogStatsList } from "@/request/statistical_analysis.js";
|
import {
|
||||||
import { sumBy } from "lodash-es";
|
getFhlogStatsList,
|
||||||
import dayjs from "dayjs";
|
getDetectionSituationListTime,
|
||||||
import { onMounted } from "vue";
|
} from "@/request/statistical_analysis.js";
|
||||||
|
|
||||||
const handleExtraData = (dataList) => {
|
const handleExtraData = (dataList) => {
|
||||||
dataList.forEach((item) => {
|
dataList.forEach((item) => {
|
||||||
|
|
@ -85,11 +81,6 @@ const { list, searchForm, pagination, fnGetData } = useListData(
|
||||||
usePagination: false,
|
usePagination: false,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
reset();
|
|
||||||
});
|
|
||||||
|
|
||||||
const fnGetDataTransfer = () => {
|
const fnGetDataTransfer = () => {
|
||||||
fnGetData({
|
fnGetData({
|
||||||
START_TIME: searchForm.value.dates?.[0],
|
START_TIME: searchForm.value.dates?.[0],
|
||||||
|
|
@ -97,48 +88,13 @@ const fnGetDataTransfer = () => {
|
||||||
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
|
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const fnInit = async () => {
|
||||||
const reset = () => {
|
const resData = await getDetectionSituationListTime();
|
||||||
searchForm.value.dates = [
|
searchForm.value.dates = [resData.pd.MINTIME, resData.pd.MAXTIME];
|
||||||
dayjs().startOf("year").format("YYYY-MM-DD"),
|
|
||||||
dayjs().format("YYYY-MM-DD"),
|
|
||||||
];
|
|
||||||
searchForm.value.DEPTIDS = [];
|
|
||||||
fnGetDataTransfer();
|
fnGetDataTransfer();
|
||||||
};
|
};
|
||||||
const fnGetSummaries = ({ columns, data }) => {
|
|
||||||
const sums = [];
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 0) {
|
|
||||||
sums[index] = "合计";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const property = column.property;
|
fnInit();
|
||||||
if (property === "NAME") {
|
|
||||||
sums[index] = "--"; // 不显示合计
|
|
||||||
} else {
|
|
||||||
// 特殊处理“排查率”
|
|
||||||
const totalReal = sumBy(data, (item) => {
|
|
||||||
const val = item.LOGIN_COUNTS;
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
const totalNeed = sumBy(data, (item) => {
|
|
||||||
const val = item.WORKER_COUNTS;
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (totalNeed > 0) {
|
|
||||||
const rate = (totalReal / totalNeed) * 100;
|
|
||||||
sums[index] = `${rate.toFixed(2)}%`;
|
|
||||||
} else {
|
|
||||||
sums[index] = "0.00%";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return sums;
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -209,8 +209,8 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
userStore.getUserInfo.ISMAIN === '1' &&
|
||||||
row.STEP_ID !== -1 &&
|
entrance === 'archive' &&
|
||||||
row.STEP_ID !== 0
|
row.STEP_ID !== -1
|
||||||
"
|
"
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
|
|
@ -231,7 +231,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
label="断路所在单位消防、安全管理部门负责人"
|
label="断路所在单位消防、安全管理部门负责人"
|
||||||
prop="LEADER_USER_ID"
|
prop="LEADER_USER_ID"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.LEADER_USER_ID" filterable multiple>
|
<el-select v-model="form.LEADER_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
<el-form-item label="分厂负责人" prop="AUDIT_USER_ID">
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -108,18 +108,23 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async () => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
|
if (value) {
|
||||||
const resData = await getCutRoadVerifyConfigurationUser({
|
const resData = await getCutRoadVerifyConfigurationUser({
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请单位已存在");
|
callback(new Error("该申请部门已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
APPLY_DEPARTMENT_ID: [
|
APPLY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
|
|
||||||
AUDIT_DEPARTMENT_ID: [
|
AUDIT_DEPARTMENT_ID: [
|
||||||
|
|
@ -155,12 +160,12 @@ const data = reactive({
|
||||||
|
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.LEADER_USER_ID = [];
|
form.value.LEADER_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -173,28 +178,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
|
|
||||||
await useFormValidate(formRef);
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const LEADER_USER_ID = form.LEADER_USER_ID
|
|
||||||
? form.LEADER_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
LEADER_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel();
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setCutRoadConfigurationUserAdd(form);
|
||||||
await setCutRoadConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setCutRoadConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setCutRoadConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -225,7 +213,6 @@ watchEffect(() => {
|
||||||
if (form.value.LEADER_DEPARTMENT_ID)
|
if (form.value.LEADER_DEPARTMENT_ID)
|
||||||
fnGetSafetyUser(form.value.LEADER_DEPARTMENT_ID);
|
fnGetSafetyUser(form.value.LEADER_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ import {
|
||||||
getCutRoadConfigurationUserView,
|
getCutRoadConfigurationUserView,
|
||||||
setCutRoadConfigurationUserDelete,
|
setCutRoadConfigurationUserDelete,
|
||||||
setCutRoadConfigurationUserDeleteAll,
|
setCutRoadConfigurationUserDeleteAll,
|
||||||
setCutRoadConfigurationUserList,
|
setCutRoadConfigurationUserList
|
||||||
} from "@/request/eight_work.js";
|
} from "@/request/eight_work.js";
|
||||||
|
|
||||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||||
|
|
@ -137,13 +137,15 @@ const data = reactive({
|
||||||
CONFIGURATION_ID: "",
|
CONFIGURATION_ID: "",
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
LEADER_DEPARTMENT_ID: "",
|
LEADER_DEPARTMENT_ID: "",
|
||||||
LEADER_USER_ID: [],
|
LEADER_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const handleDelete = async (CONFIGURATION_ID) => {
|
const handleDelete = async (CONFIGURATION_ID) => {
|
||||||
await ElMessageBox.confirm("确定要删除吗?", {
|
await ElMessageBox.confirm("确定要删除吗?", {
|
||||||
type: "warning",
|
type: "warning",
|
||||||
|
|
@ -190,8 +192,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getCutRoadConfigurationUserView({
|
const resData = await getCutRoadConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.LEADER_USER_ID = resData.pd.LEADER_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
type="date"
|
type="date"
|
||||||
@change="judgeExamineTime"
|
@change="judgeExamineTime()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
type="date"
|
type="date"
|
||||||
@change="judgeExamineTime"
|
@change="judgeExamineTime()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -172,11 +172,6 @@ const fnDisabledDate = (time) => {
|
||||||
};
|
};
|
||||||
const personnelManagementJobTypeList =
|
const personnelManagementJobTypeList =
|
||||||
await layoutFnGetPersonnelManagementJobType();
|
await layoutFnGetPersonnelManagementJobType();
|
||||||
|
|
||||||
// 保存原始的复审时间值
|
|
||||||
const originalReviewTime1 = ref("");
|
|
||||||
const originalReviewTime2 = ref("");
|
|
||||||
|
|
||||||
// 特种作业证书编号 去除唯一校验
|
// 特种作业证书编号 去除唯一校验
|
||||||
// const fnHasCertificate = async (rule, value, callback) => {
|
// const fnHasCertificate = async (rule, value, callback) => {
|
||||||
// if (value) {
|
// if (value) {
|
||||||
|
|
@ -281,9 +276,6 @@ const fnGetData = async () => {
|
||||||
});
|
});
|
||||||
await fnGetAllUserList(resData.pd.DEPARTMENT_ID);
|
await fnGetAllUserList(resData.pd.DEPARTMENT_ID);
|
||||||
form.value = resData.pd;
|
form.value = resData.pd;
|
||||||
// 保存原始值
|
|
||||||
originalReviewTime1.value = resData.pd.REVIEWTIME1 || "";
|
|
||||||
originalReviewTime2.value = resData.pd.REVIEWTIME2 || "";
|
|
||||||
await fnGetUserDetail();
|
await fnGetUserDetail();
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
|
|
@ -297,17 +289,6 @@ const fnSubmit = debounce(
|
||||||
form.value.PTYPE === "公司员工" ? CORPINFO_ID : form.value.UNITS_ID,
|
form.value.PTYPE === "公司员工" ? CORPINFO_ID : form.value.UNITS_ID,
|
||||||
VALID_ETIME: form.value.VALID_ETIME,
|
VALID_ETIME: form.value.VALID_ETIME,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 检查复审时间是否有变化,如果有变化则添加额外参数
|
|
||||||
if (SPECIALOPERATIONS_ID) {
|
|
||||||
if (form.value.REVIEWTIME1 !== originalReviewTime1.value) {
|
|
||||||
params.REVIEWTIME1_CHANGED = "1";
|
|
||||||
}
|
|
||||||
if (form.value.REVIEWTIME2 !== originalReviewTime2.value) {
|
|
||||||
params.REVIEWTIME2_CHANGED = "1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
!SPECIALOPERATIONS_ID
|
!SPECIALOPERATIONS_ID
|
||||||
? await setPersonnelManagementAdd(params)
|
? await setPersonnelManagementAdd(params)
|
||||||
: await setPersonnelManagementEdit(params);
|
: await setPersonnelManagementEdit(params);
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="visible" :title="title" :before-close="fnClose">
|
<el-dialog v-model="visible" :title="title" :before-close="fnClose">
|
||||||
<el-form label-width="110px">
|
<el-form label-width="110px">
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="总实际取证人数">
|
|
||||||
<el-input v-model="dataList.total.TOTAL" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="总应取证人数">
|
|
||||||
<el-input
|
|
||||||
v-model.number="dataList.total.fnumber"
|
|
||||||
placeholder="请输入总应取证人数"
|
|
||||||
@blur="handleBlurTotal(dataList.total)"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="总取证率">
|
|
||||||
<el-input :value="calculateRateTotal(dataList.total)" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row v-for="(item, index) in dataList.varList" :key="index">
|
<el-row v-for="(item, index) in dataList.varList" :key="index">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="证书类型">
|
<el-form-item label="证书类型">
|
||||||
|
|
@ -87,14 +66,6 @@ const calculateRate = (item) => {
|
||||||
return ((fnumber / numbers) * 100).toFixed(2) + "%";
|
return ((fnumber / numbers) * 100).toFixed(2) + "%";
|
||||||
};
|
};
|
||||||
|
|
||||||
const calculateRateTotal = (item) => {
|
|
||||||
const fnumber = Number(item.fnumber) || 0;
|
|
||||||
const numbers = Number(item.TOTAL) || 0;
|
|
||||||
|
|
||||||
if (fnumber === 0) return "0.00%";
|
|
||||||
return ((fnumber / numbers) * 100).toFixed(2) + "%";
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleBlur = (item) => {
|
const handleBlur = (item) => {
|
||||||
// 确保输入值不为空且为数字
|
// 确保输入值不为空且为数字
|
||||||
const value = Number(item.fnumber) || 0;
|
const value = Number(item.fnumber) || 0;
|
||||||
|
|
@ -107,18 +78,6 @@ const handleBlur = (item) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleBlurTotal = (item) => {
|
|
||||||
// 确保输入值不为空且为数字
|
|
||||||
const value = Number(item.fnumber) || 0;
|
|
||||||
const maxValue = Number(item.TOTAL) || 0;
|
|
||||||
|
|
||||||
if (value > maxValue) {
|
|
||||||
// 超过最大值时自动修正
|
|
||||||
item.fnumber = maxValue;
|
|
||||||
ElMessage.warning(`输入值不能超过 ${maxValue}`);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
// 清空 dataList 中的 fnumber 字段
|
// 清空 dataList 中的 fnumber 字段
|
||||||
if (dataList.value && dataList.value.varList) {
|
if (dataList.value && dataList.value.varList) {
|
||||||
|
|
|
||||||
|
|
@ -209,15 +209,14 @@ const fnExportTemplates = async () => {
|
||||||
}/specialoperations/excelAll`;
|
}/specialoperations/excelAll`;
|
||||||
};
|
};
|
||||||
// 使用 ref 包装数据使其具有响应性
|
// 使用 ref 包装数据使其具有响应性
|
||||||
const dataList = ref({ varList: [], total: 0 });
|
const dataList = ref({ varList: [] });
|
||||||
|
|
||||||
getForeNsicStatisticsList().then((data) => {
|
getForeNsicStatisticsList().then((data) => {
|
||||||
if (data && data.varList) {
|
if (data && data.varList) {
|
||||||
data.varList.forEach((item) => {
|
data.varList.forEach((item) => {
|
||||||
item.fnumber = 0;
|
item.fnumber = 0;
|
||||||
});
|
});
|
||||||
dataList.value.varList = data.varList;
|
dataList.value = data;
|
||||||
dataList.value.total = data.total;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const fnSubmitImport = async (formData) => {
|
const fnSubmitImport = async (formData) => {
|
||||||
|
|
|
||||||
|
|
@ -34,20 +34,17 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label-width="10px">
|
<el-form-item label-width="10px">
|
||||||
<el-button type="primary" @click="search">搜索</el-button>
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
<el-button @click="fnGetDataTransfer"> 重置 </el-button>
|
<el-button native-type="reset" @click="fnGetDataTransfer">
|
||||||
|
重置
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<layout-table
|
<layout-table :data="list" :show-pagination="false">
|
||||||
:data="list"
|
|
||||||
:show-pagination="false"
|
|
||||||
show-summary
|
|
||||||
:summary-method="fnGetSummaries"
|
|
||||||
>
|
|
||||||
<el-table-column label="序号" width="70">
|
<el-table-column label="序号" width="70">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
|
|
@ -55,13 +52,9 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="DEPARTMENT_NAME" label="部门" />
|
<el-table-column prop="DEPARTMENT_NAME" label="部门" />
|
||||||
<el-table-column prop="TOTAL_COUNT" label="清单数量" />
|
<el-table-column prop="TOTAL_COUNT" label="清单数量" />
|
||||||
<el-table-column prop="NEED_COUNT" label="应排查次数" />
|
<el-table-column prop="TOTAL_CODE_num" label="待排查清单数量" />
|
||||||
<el-table-column prop="REAL_COUNT" label="已排查次数" />
|
<el-table-column prop="ALREADY_CHECK_COUNT" label="己排查清单数量" />
|
||||||
<el-table-column prop="CHECK_RATE" label="排查率">
|
<el-table-column prop="CHECK_RATE" label="排查率" />
|
||||||
<template #default="{ row }">
|
|
||||||
{{ row.CHECK_RATE + "%" }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</layout-table>
|
</layout-table>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -75,19 +68,11 @@ import {
|
||||||
getListmanagerDeptList,
|
getListmanagerDeptList,
|
||||||
getDetectionSituationListTime,
|
getDetectionSituationListTime,
|
||||||
} from "@/request/statistical_analysis.js";
|
} from "@/request/statistical_analysis.js";
|
||||||
import dayjs from "dayjs";
|
|
||||||
import { sumBy } from "lodash-es";
|
|
||||||
|
|
||||||
const handleExtraData = (dataList) => {
|
const handleExtraData = (dataList) => {
|
||||||
dataList.forEach((item) => {
|
dataList.forEach((item) => {
|
||||||
if (item.NEED_COUNT && item.REAL_COUNT) {
|
item.TOTAL_CODE_num = item.TOTAL_COUNT - item.ALREADY_CHECK_COUNT;
|
||||||
item.CHECK_RATE = (
|
item.CHECK_RATE = item.CHECK_RATE.toFixed(2) + "%";
|
||||||
(Number(item.REAL_COUNT) / Number(item.NEED_COUNT)) *
|
|
||||||
100
|
|
||||||
).toFixed(2);
|
|
||||||
} else {
|
|
||||||
item.CHECK_RATE = "0.00";
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -99,78 +84,13 @@ const { list, searchForm, pagination, fnGetData } = useListData(
|
||||||
usePagination: false,
|
usePagination: false,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
const fnGetDataTransfer = () => {
|
const fnGetDataTransfer = () => {
|
||||||
searchForm.value.dates = [
|
|
||||||
dayjs().startOf("year").format("YYYY-MM-DD"),
|
|
||||||
dayjs().format("YYYY-MM-DD"),
|
|
||||||
];
|
|
||||||
searchForm.value.DEPTIDS = [];
|
|
||||||
fnGetData({
|
fnGetData({
|
||||||
START_TIME: searchForm.value.dates?.[0],
|
START_TIME: searchForm.value.dates?.[0],
|
||||||
END_TIME: searchForm.value.dates?.[1],
|
END_TIME: searchForm.value.dates?.[1],
|
||||||
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
|
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnGetSummaries = ({ columns, data }) => {
|
|
||||||
const sums = [];
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 0) {
|
|
||||||
sums[index] = "合计";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const property = column.property;
|
|
||||||
|
|
||||||
// 对于需要求和的字段(数值型)
|
|
||||||
if (
|
|
||||||
property === "REAL_COUNT" ||
|
|
||||||
property === "NEED_COUNT" ||
|
|
||||||
property === "TOTAL_COUNT"
|
|
||||||
) {
|
|
||||||
const total = sumBy(data, (item) => {
|
|
||||||
const val = item[property];
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 显示 0 或 --(仅当所有值都为 NaN 时才显示 --)
|
|
||||||
sums[index] = total === 0 ? "0" : total.toString();
|
|
||||||
}
|
|
||||||
// 对于“排查率”列,单独处理
|
|
||||||
else if (property === "DEPARTMENT_NAME") {
|
|
||||||
sums[index] = "--"; // 不显示合计
|
|
||||||
} else {
|
|
||||||
// 特殊处理“排查率”
|
|
||||||
const totalReal = sumBy(data, (item) => {
|
|
||||||
const val = item.REAL_COUNT;
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
const totalNeed = sumBy(data, (item) => {
|
|
||||||
const val = item.NEED_COUNT;
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (totalNeed > 0) {
|
|
||||||
const rate = (totalReal / totalNeed) * 100;
|
|
||||||
sums[index] = `${rate.toFixed(2)}%`;
|
|
||||||
} else {
|
|
||||||
sums[index] = "0.00%";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return sums;
|
|
||||||
};
|
|
||||||
|
|
||||||
const search = () => {
|
|
||||||
fnGetData({
|
|
||||||
START_TIME: searchForm.value.dates?.[0],
|
|
||||||
END_TIME: searchForm.value.dates?.[1],
|
|
||||||
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const fnInit = async () => {
|
const fnInit = async () => {
|
||||||
const resData = await getDetectionSituationListTime();
|
const resData = await getDetectionSituationListTime();
|
||||||
searchForm.value.dates = [resData.pd.MINTIME, resData.pd.MAXTIME];
|
searchForm.value.dates = [resData.pd.MINTIME, resData.pd.MAXTIME];
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,10 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label-width="10px">
|
<el-form-item label-width="10px">
|
||||||
<el-button type="primary" @click="fnGetDataTransfer"
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
>搜索</el-button
|
<el-button native-type="reset" @click="findList = []">
|
||||||
>
|
重置
|
||||||
<el-button @click="reset"> 重置 </el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
@click="
|
@click="
|
||||||
router.push({
|
router.push({
|
||||||
|
|
@ -121,9 +121,7 @@
|
||||||
>安全隐患。
|
>安全隐患。
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
截止{{ searchForm.dates[1] }}到期整改完成(验收合格)率<span
|
截止{{ searchForm.dates[1] }}到期整改完成率<span class="text-red">
|
||||||
class="text-red"
|
|
||||||
>
|
|
||||||
{{
|
{{
|
||||||
(
|
(
|
||||||
(rectifyCountSummary.yzgCount /
|
(rectifyCountSummary.yzgCount /
|
||||||
|
|
@ -265,42 +263,35 @@ const fnGetPercent = ({ columns, data }) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 第13列:整改率
|
// 第八列(索引为 7):第五列(索引为 4) / 第四列(索引为 3)
|
||||||
if (index === 13) {
|
if (index === 7) {
|
||||||
// 获取第4列(隐患数量)的总和
|
const sum4 = sumBy(data, (item) => {
|
||||||
const totalHiddenCount = sumBy(data, (item) => {
|
const val = item[columns[4]?.property];
|
||||||
|
return isNaN(val) ? 0 : Number(val);
|
||||||
|
});
|
||||||
|
const sum3 = sumBy(data, (item) => {
|
||||||
const val = item[columns[3]?.property];
|
const val = item[columns[3]?.property];
|
||||||
return isNaN(val) ? 0 : Number(val);
|
return isNaN(val) ? 0 : Number(val);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 只计算“已验收数量”
|
if (sum3 === 0) {
|
||||||
const totalYysCount = sumBy(data, (item) => {
|
|
||||||
const yys = item[columns[6]?.property]; // 已验收数量
|
|
||||||
return isNaN(yys) ? 0 : Number(yys);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (totalHiddenCount === 0) {
|
|
||||||
sums[index] = "0%";
|
sums[index] = "0%";
|
||||||
} else {
|
} else {
|
||||||
const rate = (totalYysCount / totalHiddenCount) * 100;
|
sums[index] = ((sum4 / sum3) * 100).toFixed(2) + "%";
|
||||||
sums[index] = `${rate.toFixed(2)}%`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他列:常规求和
|
// 其他列:常规求和逻辑
|
||||||
const allNaN = data.every((value) => isNaN(value[column.property]));
|
if (!data.every((value) => isNaN(value[column.property]))) {
|
||||||
if (allNaN) {
|
sums[index] =
|
||||||
|
sumBy(data, (item) => {
|
||||||
|
return item[column.property];
|
||||||
|
}) || "--";
|
||||||
|
} else {
|
||||||
sums[index] = "--";
|
sums[index] = "--";
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const total = sumBy(data, (item) => {
|
|
||||||
const val = item[column.property];
|
|
||||||
return isNaN(val) ? 0 : Number(val);
|
|
||||||
});
|
|
||||||
|
|
||||||
sums[index] = total === 0 ? "0" : total.toString();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return sums;
|
return sums;
|
||||||
|
|
@ -343,45 +334,21 @@ const resultListCorrect = ref([
|
||||||
dataItem: "totalCount",
|
dataItem: "totalCount",
|
||||||
dataName: "隐患数量",
|
dataName: "隐患数量",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataItem: "wzgCount",
|
|
||||||
dataName: "未整改数量",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
dataItem: "yzgCount",
|
dataItem: "yzgCount",
|
||||||
dataName: "已整改数量",
|
dataName: "整改数量",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataItem: "yysCount",
|
dataItem: "wzgCount",
|
||||||
dataName: "已验收数量",
|
dataName: "未完成整改隐患数量",
|
||||||
},
|
|
||||||
{
|
|
||||||
dataItem: "ygqCount",
|
|
||||||
dataName: "已过期数量",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataItem: "dqrCount",
|
|
||||||
dataName: "待确认数量",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataItem: "qrdhCount",
|
|
||||||
dataName: "确认时打回数量",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataItem: "zgdhCount",
|
|
||||||
dataName: "整改时打回数量",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataItem: "yqCount",
|
dataItem: "yqCount",
|
||||||
dataName: "已延期整改数量",
|
dataName: "已延期整改数量",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataItem: "wzczgCount",
|
|
||||||
dataName: "未完成整改情况数量",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
dataItem: "rectificationRate",
|
dataItem: "rectificationRate",
|
||||||
dataName: "整改率(验收合格)",
|
dataName: "整改率",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
const resultListAccept = ref([
|
const resultListAccept = ref([
|
||||||
|
|
@ -468,27 +435,12 @@ onMounted(() => {
|
||||||
fnGetDataTransfer();
|
fnGetDataTransfer();
|
||||||
});
|
});
|
||||||
|
|
||||||
const reset = () => {
|
|
||||||
const endDate = new Date();
|
|
||||||
const startDate = new Date();
|
|
||||||
startDate.setDate(endDate.getDate() - 7);
|
|
||||||
|
|
||||||
searchForm.value.dates = [
|
|
||||||
startDate.toISOString().split("T")[0],
|
|
||||||
endDate.toISOString().split("T")[0],
|
|
||||||
];
|
|
||||||
searchForm.value.HIDDEN_CLASSIFICATION = [];
|
|
||||||
searchForm.value.checkedIds = [];
|
|
||||||
// 调用数据获取方法
|
|
||||||
fnGetDataTransfer();
|
|
||||||
};
|
|
||||||
|
|
||||||
const fnGetDataTransfer = () => {
|
const fnGetDataTransfer = () => {
|
||||||
fnGetData({
|
fnGetData({
|
||||||
STARTTIME: searchForm.value.dates[0],
|
STARTTIME: searchForm.value.dates[0],
|
||||||
ENDTIME: searchForm.value.dates[1],
|
ENDTIME: searchForm.value.dates[1],
|
||||||
HIDDEN_CLASSIFICATION: searchForm.value.HIDDEN_CLASSIFICATION?.join(","),
|
HIDDEN_CLASSIFICATION: searchForm.value.HIDDEN_CLASSIFICATION.join(","),
|
||||||
checkedIds: searchForm.value.checkedIds?.join(","),
|
checkedIds: searchForm.value.checkedIds.join(","),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -192,11 +192,7 @@
|
||||||
审批表详情
|
审批表详情
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="
|
v-if="userStore.getUserInfo.ISMAIN === '1'"
|
||||||
userStore.getUserInfo.ISMAIN === '1' &&
|
|
||||||
row.STEP_ID !== -1 &&
|
|
||||||
row.STEP_ID !== 0
|
|
||||||
"
|
|
||||||
type="danger"
|
type="danger"
|
||||||
text
|
text
|
||||||
link
|
link
|
||||||
|
|
@ -216,7 +212,7 @@
|
||||||
<check-list
|
<check-list
|
||||||
v-if="data.checkListDialog.visible"
|
v-if="data.checkListDialog.visible"
|
||||||
v-model:visible="data.checkListDialog.visible"
|
v-model:visible="data.checkListDialog.visible"
|
||||||
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY"
|
v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
|
||||||
/>
|
/>
|
||||||
<layout-video
|
<layout-video
|
||||||
v-model:visible="data.videoDialog.visible"
|
v-model:visible="data.videoDialog.visible"
|
||||||
|
|
@ -240,8 +236,7 @@ import {
|
||||||
getTemporaryElectricityUsageFlow,
|
getTemporaryElectricityUsageFlow,
|
||||||
getTaskSetps,
|
getTaskSetps,
|
||||||
getTemporaryElectricityUsageList,
|
getTemporaryElectricityUsageList,
|
||||||
setEightWorkInvalid,
|
setEightWorkInvalid, getApplyDept
|
||||||
getApplyDept,
|
|
||||||
} from "@/request/eight_work.js";
|
} from "@/request/eight_work.js";
|
||||||
import LayoutVideo from "@/components/video/index.vue";
|
import LayoutVideo from "@/components/video/index.vue";
|
||||||
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
import CheckList from "@/components/safety_briefing_checklist/index.vue";
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用电单位负责人" prop="AUDIT_USER_ID">
|
<el-form-item label="用电单位负责人" prop="AUDIT_USER_ID">
|
||||||
<el-select v-model="form.AUDIT_USER_ID" filterable multiple>
|
<el-select v-model="form.AUDIT_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.auditUserList"
|
v-for="item in data.auditUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="配送电单位负责人" prop="APPROVE_USER_ID">
|
<el-form-item label="配送电单位负责人" prop="APPROVE_USER_ID">
|
||||||
<el-select v-model="form.APPROVE_USER_ID" filterable multiple>
|
<el-select v-model="form.APPROVE_USER_ID" filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in data.safetyUserList"
|
v-for="item in data.safetyUserList"
|
||||||
:key="item.USER_ID"
|
:key="item.USER_ID"
|
||||||
|
|
@ -102,18 +102,23 @@ const props = defineProps({
|
||||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
const { visible, form } = useVModels(props, emits);
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
|
||||||
const fnHasLevel = async () => {
|
const fnHasLevel = async (rule, value, callback) => {
|
||||||
|
if (value) {
|
||||||
const resData = await getElectricityVerifyConfigurationUser({
|
const resData = await getElectricityVerifyConfigurationUser({
|
||||||
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
|
||||||
});
|
});
|
||||||
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
if (resData?.pd?.APPLY_DEPARTMENT_ID)
|
||||||
return ElMessage.error("该申请部门已存在");
|
callback(new Error("该申请部门已存在"));
|
||||||
|
else callback();
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
APPLY_DEPARTMENT_ID: [
|
APPLY_DEPARTMENT_ID: [
|
||||||
{ required: true, message: "请选择申请部门", trigger: "change" },
|
{ required: true, message: "请选择申请部门", trigger: "change" },
|
||||||
// { validator: fnHasLevel, trigger: "blur" },
|
{ validator: fnHasLevel, trigger: "blur" },
|
||||||
],
|
],
|
||||||
|
|
||||||
AUDIT_DEPARTMENT_ID: [
|
AUDIT_DEPARTMENT_ID: [
|
||||||
|
|
@ -149,12 +154,12 @@ const data = reactive({
|
||||||
|
|
||||||
const fnAuditDepartmentChange = () => {
|
const fnAuditDepartmentChange = () => {
|
||||||
data.auditUserList = [];
|
data.auditUserList = [];
|
||||||
form.value.AUDIT_USER_ID = [];
|
form.value.AUDIT_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnSafetyDepartmentChange = () => {
|
const fnSafetyDepartmentChange = () => {
|
||||||
data.safetyUserList = [];
|
data.safetyUserList = [];
|
||||||
form.value.APPROVE_USER_ID = [];
|
form.value.APPROVE_USER_ID = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnClose = () => {
|
const fnClose = () => {
|
||||||
|
|
@ -167,27 +172,11 @@ const fnSubmit = debounce(
|
||||||
1000,
|
1000,
|
||||||
async () => {
|
async () => {
|
||||||
const form = props.form;
|
const form = props.form;
|
||||||
await useFormValidate(formRef);
|
|
||||||
const AUDIT_USER_ID = form.AUDIT_USER_ID
|
|
||||||
? form.AUDIT_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const APPROVE_USER_ID = form.APPROVE_USER_ID
|
|
||||||
? form.APPROVE_USER_ID.join(",")
|
|
||||||
: "";
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
AUDIT_USER_ID,
|
|
||||||
APPROVE_USER_ID,
|
|
||||||
};
|
|
||||||
if (props.type === "add") {
|
if (props.type === "add") {
|
||||||
const isCon = await fnHasLevel();
|
await useFormValidate(formRef);
|
||||||
if (!isCon) {
|
await setElectricityConfigurationUserAdd(form);
|
||||||
await setElectricityConfigurationUserAdd(params);
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
await setElectricityConfigurationUserEdit(form);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await setElectricityConfigurationUserEdit(params);
|
|
||||||
}
|
}
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
fnClose();
|
fnClose();
|
||||||
|
|
@ -218,7 +207,6 @@ watchEffect(() => {
|
||||||
if (form.value.APPROVE_DEPARTMENT_ID)
|
if (form.value.APPROVE_DEPARTMENT_ID)
|
||||||
fnGetSafetyUser(form.value.APPROVE_DEPARTMENT_ID);
|
fnGetSafetyUser(form.value.APPROVE_DEPARTMENT_ID);
|
||||||
});
|
});
|
||||||
watchEffect(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|
|
||||||
|
|
@ -138,9 +138,9 @@ const data = reactive({
|
||||||
CONFIGURATION_ID: "",
|
CONFIGURATION_ID: "",
|
||||||
APPLY_DEPARTMENT_ID: "",
|
APPLY_DEPARTMENT_ID: "",
|
||||||
AUDIT_DEPARTMENT_ID: "",
|
AUDIT_DEPARTMENT_ID: "",
|
||||||
AUDIT_USER_ID: [],
|
AUDIT_USER_ID: "",
|
||||||
APPROVE_DEPARTMENT_ID: "",
|
APPROVE_DEPARTMENT_ID: "",
|
||||||
APPROVE_USER_ID: [],
|
APPROVE_USER_ID: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -190,8 +190,6 @@ const fnGoEdit = async (id) => {
|
||||||
const resData = await getElectricityConfigurationUserView({
|
const resData = await getElectricityConfigurationUserView({
|
||||||
CONFIGURATION_ID: id,
|
CONFIGURATION_ID: id,
|
||||||
});
|
});
|
||||||
resData.pd.AUDIT_USER_ID = resData.pd.AUDIT_USER_ID.toString().split(",");
|
|
||||||
resData.pd.APPROVE_USER_ID = resData.pd.APPROVE_USER_ID.toString().split(",");
|
|
||||||
data.editDialog.form = resData.pd;
|
data.editDialog.form = resData.pd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -209,16 +209,6 @@ const fnPreviewVideo = async (row) => {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
ElMessage.error("启动转码失败: " + (error.message || "未知错误"));
|
ElMessage.error("启动转码失败: " + (error.message || "未知错误"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// try {
|
|
||||||
// // 直接打开播放器弹窗,使用大华SDK的预览接口
|
|
||||||
// data.transcodeVideoDialog.visible = true;
|
|
||||||
// // 构造大华SDK预览URL,通道号从row.PLS_ID获取
|
|
||||||
// data.transcodeVideoDialog.src = `/api/video/start-preview?channel=${row.PLS_ID || 0}`;
|
|
||||||
// data.transcodeVideoDialog.id = row.PLS_ID;
|
|
||||||
// } catch (error) {
|
|
||||||
// ElMessage.error("播放视频失败: " + (error.message || "未知错误"));
|
|
||||||
// }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const fnDeleteVideo = async (row) => {
|
const fnDeleteVideo = async (row) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue