|
- 安全部意见:{{ data.signs.SAFETY?.[0].DESCR }}
+ 生产部意见:{{ data.signs.SAFETY?.[0].DESCR }}
-
+
-
+
-
-
+
+
-
+
-
+
-
+
{
+const fnHasLevel = async (value) => {
if (value) {
const resData = await getHighVerifyConfigurationUser({
WORK_LEVEL: value,
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
});
if (resData?.pd?.APPLY_DEPARTMENT_ID)
- callback(new Error("该申请单位和高处作业等级已存在"));
- else callback();
- } else {
- callback();
+ return ElMessage.error("该申请单位和高处作业等级已存在");
+ // callback(new Error("该申请单位和高处作业等级已存在"));
}
};
@@ -218,8 +226,8 @@ const rules = {
{ required: true, message: "请选择申请部门", trigger: "change" },
],
WORK_LEVEL: [
- { required: true, message: "请选择动火等级", trigger: "blur" },
- { validator: fnHasLevel, trigger: "blur" },
+ { required: true, message: "请选择高处作业等级", trigger: "blur" },
+ // { validator: fnHasLevel, trigger: "blur" },
],
LEADER_DEPARTMENT_ID: [
{
@@ -248,10 +256,10 @@ const rules = {
{ required: true, message: "请选择安全处负责人", trigger: "change" },
],
SAFETY_DEPARTMENT_ID: [
- { required: true, message: "请选择安全部", trigger: "change" },
+ { required: true, message: "请选择生产部", trigger: "change" },
],
SAFETY_USER_ID: [
- { required: true, message: "请选择安全部负责人", trigger: "change" },
+ { required: true, message: "请选择生产部负责人", trigger: "change" },
],
WORKSHOP_DEPARTMENT_ID: [
{ required: true, message: "请选择工段部门", trigger: "change" },
@@ -292,23 +300,23 @@ const data = reactive({
const fnLeaderDepartmentChange = () => {
data.leaderUserList = [];
- form.value.LEADER_USER_ID = "";
+ form.value.LEADER_USER_ID = [];
};
const fnAuditDepartmentChange = () => {
data.auditUserList = [];
- form.value.AUDIT_USER_ID = "";
+ form.value.AUDIT_USER_ID = [];
};
const fnApproveDepartmentChange = () => {
data.approveUserList = [];
- form.value.APPROVE_USER_ID = "";
+ form.value.APPROVE_USER_ID = [];
};
const fnSafetyDepartmentChange = () => {
data.safetyUserList = [];
- form.value.SAFETY_USER_ID = "";
+ form.value.SAFETY_USER_ID = [];
};
const fnWorkshopDepartmentChange = () => {
data.workshopUserList = [];
- form.value.WORKSHOP_USER_ID = "";
+ form.value.WORKSHOP_USER_ID = [];
};
const fnClose = () => {
@@ -321,11 +329,32 @@ const fnSubmit = debounce(
1000,
async () => {
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") {
- await useFormValidate(formRef);
- await setHighConfigurationUserAdd(form);
+ const isCon = await fnHasLevel(form.WORK_LEVEL);
+ if (!isCon) {
+ await setHighConfigurationUserAdd(params);
+ } else {
+ return false;
+ }
} else {
- await setHighConfigurationUserEdit(form);
+ await setHighConfigurationUserEdit(params);
}
ElMessage.success("提交成功");
fnClose();
@@ -374,6 +403,25 @@ watchEffect(() => {
if (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(() => {});
diff --git a/src/views/high/user_configuration/index.vue b/src/views/high/user_configuration/index.vue
index 2c3107d..e041829 100644
--- a/src/views/high/user_configuration/index.vue
+++ b/src/views/high/user_configuration/index.vue
@@ -99,12 +99,12 @@
/>
@@ -178,15 +178,15 @@ const data = reactive({
APPLY_DEPARTMENT_ID: "",
WORK_LEVEL: "",
LEADER_DEPARTMENT_ID: "",
- LEADER_USER_ID: "",
+ LEADER_USER_ID: [],
AUDIT_DEPARTMENT_ID: "",
- AUDIT_USER_ID: "",
+ AUDIT_USER_ID: [],
APPROVE_DEPARTMENT_ID: "",
- APPROVE_USER_ID: "",
+ APPROVE_USER_ID: [],
SAFETY_DEPARTMENT_ID: "",
- SAFETY_USER_ID: "",
+ SAFETY_USER_ID: [],
WORKSHOP_DEPARTMENT_ID: "",
- WORKSHOP_USER_ID: "",
+ WORKSHOP_USER_ID: [],
},
},
});
@@ -236,6 +236,12 @@ const fnGoEdit = async (id) => {
const resData = await getHighConfigurationUserView({
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;
};
diff --git a/src/views/hoisting/invalid/index.vue b/src/views/hoisting/invalid/index.vue
index 2de024a..db9a015 100644
--- a/src/views/hoisting/invalid/index.vue
+++ b/src/views/hoisting/invalid/index.vue
@@ -60,7 +60,7 @@
/>
@@ -123,7 +123,7 @@
diff --git a/src/views/hoisting/job_data/index.vue b/src/views/hoisting/job_data/index.vue
index 784f12e..aa4cc3f 100644
--- a/src/views/hoisting/job_data/index.vue
+++ b/src/views/hoisting/job_data/index.vue
@@ -112,7 +112,7 @@
/>
@@ -207,8 +207,8 @@
| 作业申请单位 |
- {{ data.info.APPLY_DEPARTMENT_NAME }}-{{data.info.APPLY_WORKSHOP_DEPARTMENT_NAME}} |
+
+ {{ data.info.APPLY_DEPARTMENT_NAME }}-{{
+ data.info.APPLY_WORKSHOP_DEPARTMENT_NAME
+ }}
+ |
作业单位 |
{{ data.info.LEADER_DEPARTMENT_NAME }} |
作业申请时间 |
@@ -315,7 +319,7 @@
|
- 安全部意见:{{ data.signs.SAFETY?.[0].DESCR }}
+ 生产部意见:{{ data.signs.SAFETY?.[0].DESCR }}
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
{
+const fnHasLevel = async (value) => {
if (value) {
const resData = await getHoistingVerifyConfigurationUser({
WORK_LEVEL: value,
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
});
if (resData?.pd?.APPLY_DEPARTMENT_ID)
- callback(new Error("该申请单位和作业等级已存在"));
- else callback();
- } else {
- callback();
+ return ElMessage.error("该申请单位和吊装作业等级已存在");
}
};
@@ -197,7 +209,7 @@ const rules = {
],
WORK_LEVEL: [
{ required: true, message: "请选择作业等级", trigger: "blur" },
- { validator: fnHasLevel, trigger: "blur" },
+ // { validator: fnHasLevel, trigger: "blur" },
],
LEADER_DEPARTMENT_ID: [
{
@@ -226,10 +238,10 @@ const rules = {
{ required: true, message: "请选择安全处负责人", trigger: "change" },
],
SAFETY_DEPARTMENT_ID: [
- { required: true, message: "请选择安全部", trigger: "change" },
+ { required: true, message: "请选择生产部", trigger: "change" },
],
SAFETY_USER_ID: [
- { required: true, message: "请选择安全部负责人", trigger: "change" },
+ { required: true, message: "请选择生产部负责人", trigger: "change" },
],
WORKSHOP_DEPARTMENT_ID: [
{ required: true, message: "请选择工段部门", trigger: "change" },
@@ -266,23 +278,41 @@ const data = reactive({
const fnLeaderDepartmentChange = () => {
data.leaderUserList = [];
- form.value.LEADER_USER_ID = "";
+ form.value.LEADER_USER_ID = [];
};
const fnAuditDepartmentChange = () => {
data.auditUserList = [];
- form.value.AUDIT_USER_ID = "";
+ form.value.AUDIT_USER_ID = [];
};
const fnApproveDepartmentChange = () => {
data.approveUserList = [];
- form.value.APPROVE_USER_ID = "";
+ form.value.APPROVE_USER_ID = [];
};
const fnSafetyDepartmentChange = () => {
data.safetyUserList = [];
- form.value.SAFETY_USER_ID = "";
+ form.value.SAFETY_USER_ID = [];
};
const fnWorkshopDepartmentChange = () => {
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 = () => {
@@ -295,11 +325,29 @@ const fnSubmit = debounce(
1000,
async () => {
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") {
- await useFormValidate(formRef);
- await setHoistingConfigurationUserAdd(form);
+ const isCon = await fnHasLevel(form.WORK_LEVEL);
+ if (!isCon) {
+ await setHoistingConfigurationUserAdd(params);
+ } else {
+ return false;
+ }
} else {
- await setHoistingConfigurationUserEdit(form);
+ await setHoistingConfigurationUserEdit(params);
}
ElMessage.success("提交成功");
fnClose();
diff --git a/src/views/hoisting/user_configuration/index.vue b/src/views/hoisting/user_configuration/index.vue
index 2da275a..d3bdda2 100644
--- a/src/views/hoisting/user_configuration/index.vue
+++ b/src/views/hoisting/user_configuration/index.vue
@@ -98,12 +98,12 @@
/>
@@ -162,7 +162,7 @@ import {
getHoistingConfigurationUserView,
setHoistingConfigurationUserDelete,
setHoistingConfigurationUserDeleteAll,
- setHoistingConfigurationUserList
+ setHoistingConfigurationUserList,
} from "@/request/eight_work.js";
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
@@ -177,15 +177,15 @@ const data = reactive({
APPLY_DEPARTMENT_ID: "",
WORK_LEVEL: "",
LEADER_DEPARTMENT_ID: "",
- LEADER_USER_ID: "",
+ LEADER_USER_ID: [],
AUDIT_DEPARTMENT_ID: "",
- AUDIT_USER_ID: "",
+ AUDIT_USER_ID: [],
APPROVE_DEPARTMENT_ID: "",
- APPROVE_USER_ID: "",
+ APPROVE_USER_ID: [],
SAFETY_DEPARTMENT_ID: "",
- SAFETY_USER_ID: "",
+ SAFETY_USER_ID: [],
WORKSHOP_DEPARTMENT_ID: "",
- WORKSHOP_USER_ID: "",
+ WORKSHOP_USER_ID: [],
},
},
});
@@ -235,6 +235,12 @@ const fnGoEdit = async (id) => {
const resData = await getHoistingConfigurationUserView({
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;
};
diff --git a/src/views/hot_work/job_data/index.vue b/src/views/hot_work/job_data/index.vue
index 25effeb..6adff17 100644
--- a/src/views/hot_work/job_data/index.vue
+++ b/src/views/hot_work/job_data/index.vue
@@ -217,8 +217,8 @@
{
+const fnHasLevel = async (value) => {
if (value) {
const resData = await getHotVerifyConfigurationUser({
WORK_LEVEL: value,
APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
});
- if (resData?.pd?.APPLY_DEPARTMENT_ID)
- callback(new Error("该申请单位和动火等级已存在"));
- else callback();
- } else {
- callback();
+ if (resData?.pd?.APPLY_DEPARTMENT_ID) {
+ ElMessage.error("该申请单位和动火等级已存在");
+ return true;
+ } else {
+ return false;
+ }
}
};
@@ -224,7 +226,7 @@ const rules = {
],
WORK_LEVEL: [
{ required: true, message: "请选择动火等级", trigger: "blur" },
- { validator: fnHasLevel, trigger: "blur" },
+ // { validator: fnHasLevel, trigger: "blur" },
],
LEADER_DEPARTMENT_ID: [
{
@@ -291,10 +293,29 @@ const data = reactive({
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 = () => {
data.leaderUserList = [];
form.value.LEADER_USER_ID = [];
};
+
const fnAuditDepartmentChange = () => {
data.auditUserList = [];
form.value.AUDIT_USER_ID = [];
@@ -322,17 +343,44 @@ const fnSubmit = debounce(
1000,
async () => {
const form = props.form;
- form.LEADER_USER_ID = form.LEADER_USER_ID.join(",");
- form.AUDIT_USER_ID = form.AUDIT_USER_ID.join(",");
- form.APPROVE_USER_ID = form.APPROVE_USER_ID.join(",");
- form.MONITOR_USER_ID = form.MONITOR_USER_ID.join(",");
- form.PROJECT_MANAGER_USER_ID = form.PROJECT_MANAGER_USER_ID.join(",");
+ await useFormValidate(formRef);
+ // if (props.type === "add") {
+ // fnHasLevel(form.WORK_LEVEL);
+ // }
+ 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 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") {
- await useFormValidate(formRef);
- await setHotConfigurationUserAdd(form);
+ const isCon = await fnHasLevel(form.WORK_LEVEL);
+ if (!isCon) {
+ await setHotConfigurationUserAdd(params);
+ } else {
+ return false;
+ }
} else {
- await setHotConfigurationUserEdit(form);
+ await setHotConfigurationUserEdit(params);
}
+
ElMessage.success("提交成功");
fnClose();
emits("get-data");
@@ -380,6 +428,8 @@ watchEffect(() => {
if (form.value.PROJECT_MANAGER_DEPARTMENT_ID)
fnGetProjectUser(form.value.PROJECT_MANAGER_DEPARTMENT_ID);
});
+
+watchEffect(() => {});
diff --git a/src/views/hot_work/user_configuration/index.vue b/src/views/hot_work/user_configuration/index.vue
index f781b02..eb42dd6 100644
--- a/src/views/hot_work/user_configuration/index.vue
+++ b/src/views/hot_work/user_configuration/index.vue
@@ -171,15 +171,15 @@ const data = reactive({
APPLY_DEPARTMENT_ID: "",
WORK_LEVEL: "",
LEADER_DEPARTMENT_ID: "",
- LEADER_USER_ID: "",
+ LEADER_USER_ID: [],
AUDIT_DEPARTMENT_ID: "",
- AUDIT_USER_ID: "",
+ AUDIT_USER_ID: [],
APPROVE_DEPARTMENT_ID: "",
- APPROVE_USER_ID: "",
+ APPROVE_USER_ID: [],
MONITOR_DEPARTMENT_ID: "",
- MONITOR_USER_ID: "",
+ MONITOR_USER_ID: [],
PROJECT_MANAGER_DEPARTMENT_ID: "",
- PROJECT_MANAGER_USER_ID: "",
+ PROJECT_MANAGER_USER_ID: [],
},
},
});
diff --git a/src/views/off_department_management/login_record/index.vue b/src/views/off_department_management/login_record/index.vue
index a9c7eb4..5e0ef60 100644
--- a/src/views/off_department_management/login_record/index.vue
+++ b/src/views/off_department_management/login_record/index.vue
@@ -34,24 +34,28 @@
- 搜索
-
- 重置
-
+ 搜索
+ 重置
-
+
{{ serialNumber(pagination, $index) }}
-
@@ -62,10 +66,10 @@
import LayoutDepartment from "@/components/department/index.vue";
import { serialNumber } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js";
-import {
- getFhlogStatsList,
- getDetectionSituationListTime,
-} from "@/request/statistical_analysis.js";
+import { getFhlogStatsList } from "@/request/statistical_analysis.js";
+import { sumBy } from "lodash-es";
+import dayjs from "dayjs";
+import { onMounted } from "vue";
const handleExtraData = (dataList) => {
dataList.forEach((item) => {
@@ -81,6 +85,11 @@ const { list, searchForm, pagination, fnGetData } = useListData(
usePagination: false,
}
);
+
+onMounted(() => {
+ reset();
+});
+
const fnGetDataTransfer = () => {
fnGetData({
START_TIME: searchForm.value.dates?.[0],
@@ -88,13 +97,48 @@ const fnGetDataTransfer = () => {
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
});
};
-const fnInit = async () => {
- const resData = await getDetectionSituationListTime();
- searchForm.value.dates = [resData.pd.MINTIME, resData.pd.MAXTIME];
+
+const reset = () => {
+ searchForm.value.dates = [
+ dayjs().startOf("year").format("YYYY-MM-DD"),
+ dayjs().format("YYYY-MM-DD"),
+ ];
+ searchForm.value.DEPTIDS = [];
fnGetDataTransfer();
};
+const fnGetSummaries = ({ columns, data }) => {
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = "合计";
+ return;
+ }
-fnInit();
+ const property = column.property;
+ 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;
+};
diff --git a/src/views/open_circuit/job_data/index.vue b/src/views/open_circuit/job_data/index.vue
index 02c2828..1e10491 100644
--- a/src/views/open_circuit/job_data/index.vue
+++ b/src/views/open_circuit/job_data/index.vue
@@ -209,8 +209,8 @@
-
+
-
+
{
- if (value) {
- const resData = await getCutRoadVerifyConfigurationUser({
- APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
- });
- if (resData?.pd?.APPLY_DEPARTMENT_ID)
- callback(new Error("该申请部门已存在"));
- else callback();
- } else {
- callback();
- }
+const fnHasLevel = async () => {
+ const resData = await getCutRoadVerifyConfigurationUser({
+ APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
+ });
+ if (resData?.pd?.APPLY_DEPARTMENT_ID)
+ return ElMessage.error("该申请单位已存在");
};
const rules = {
APPLY_DEPARTMENT_ID: [
{ required: true, message: "请选择申请部门", trigger: "change" },
- { validator: fnHasLevel, trigger: "blur" },
+ // { validator: fnHasLevel, trigger: "blur" },
],
AUDIT_DEPARTMENT_ID: [
@@ -160,12 +155,12 @@ const data = reactive({
const fnAuditDepartmentChange = () => {
data.auditUserList = [];
- form.value.AUDIT_USER_ID = "";
+ form.value.AUDIT_USER_ID = [];
};
const fnSafetyDepartmentChange = () => {
data.safetyUserList = [];
- form.value.LEADER_USER_ID = "";
+ form.value.LEADER_USER_ID = [];
};
const fnClose = () => {
@@ -178,11 +173,28 @@ const fnSubmit = debounce(
1000,
async () => {
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") {
- await useFormValidate(formRef);
- await setCutRoadConfigurationUserAdd(form);
+ const isCon = await fnHasLevel();
+ if (!isCon) {
+ await setCutRoadConfigurationUserAdd(params);
+ } else {
+ return false;
+ }
} else {
- await setCutRoadConfigurationUserEdit(form);
+ await setCutRoadConfigurationUserEdit(params);
}
ElMessage.success("提交成功");
fnClose();
@@ -213,6 +225,7 @@ watchEffect(() => {
if (form.value.LEADER_DEPARTMENT_ID)
fnGetSafetyUser(form.value.LEADER_DEPARTMENT_ID);
});
+watchEffect(() => {});
diff --git a/src/views/open_circuit/user_configuration/index.vue b/src/views/open_circuit/user_configuration/index.vue
index 608827a..95b36e8 100644
--- a/src/views/open_circuit/user_configuration/index.vue
+++ b/src/views/open_circuit/user_configuration/index.vue
@@ -123,7 +123,7 @@ import {
getCutRoadConfigurationUserView,
setCutRoadConfigurationUserDelete,
setCutRoadConfigurationUserDeleteAll,
- setCutRoadConfigurationUserList
+ setCutRoadConfigurationUserList,
} from "@/request/eight_work.js";
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
@@ -137,15 +137,13 @@ const data = reactive({
CONFIGURATION_ID: "",
APPLY_DEPARTMENT_ID: "",
AUDIT_DEPARTMENT_ID: "",
- AUDIT_USER_ID: "",
+ AUDIT_USER_ID: [],
LEADER_DEPARTMENT_ID: "",
- LEADER_USER_ID: "",
+ LEADER_USER_ID: [],
},
},
});
-
-
const handleDelete = async (CONFIGURATION_ID) => {
await ElMessageBox.confirm("确定要删除吗?", {
type: "warning",
@@ -192,6 +190,8 @@ const fnGoEdit = async (id) => {
const resData = await getCutRoadConfigurationUserView({
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;
};
diff --git a/src/views/special_operations/personnel_management/add.vue b/src/views/special_operations/personnel_management/add.vue
index 50f39b4..9c9d2bb 100644
--- a/src/views/special_operations/personnel_management/add.vue
+++ b/src/views/special_operations/personnel_management/add.vue
@@ -66,7 +66,7 @@
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
- @change="judgeExamineTime()"
+ @change="judgeExamineTime"
/>
@@ -96,7 +96,7 @@
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
- @change="judgeExamineTime()"
+ @change="judgeExamineTime"
/>
@@ -172,6 +172,11 @@ const fnDisabledDate = (time) => {
};
const personnelManagementJobTypeList =
await layoutFnGetPersonnelManagementJobType();
+
+// 保存原始的复审时间值
+const originalReviewTime1 = ref("");
+const originalReviewTime2 = ref("");
+
// 特种作业证书编号 去除唯一校验
// const fnHasCertificate = async (rule, value, callback) => {
// if (value) {
@@ -276,6 +281,9 @@ const fnGetData = async () => {
});
await fnGetAllUserList(resData.pd.DEPARTMENT_ID);
form.value = resData.pd;
+ // 保存原始值
+ originalReviewTime1.value = resData.pd.REVIEWTIME1 || "";
+ originalReviewTime2.value = resData.pd.REVIEWTIME2 || "";
await fnGetUserDetail();
};
fnGetData();
@@ -289,6 +297,17 @@ const fnSubmit = debounce(
form.value.PTYPE === "公司员工" ? CORPINFO_ID : form.value.UNITS_ID,
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
? await setPersonnelManagementAdd(params)
: await setPersonnelManagementEdit(params);
diff --git a/src/views/special_operations/personnel_management/forensicStatistics.vue b/src/views/special_operations/personnel_management/forensicStatistics.vue
index 2b69cb2..fc4a10f 100644
--- a/src/views/special_operations/personnel_management/forensicStatistics.vue
+++ b/src/views/special_operations/personnel_management/forensicStatistics.vue
@@ -1,6 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -66,6 +87,14 @@ const calculateRate = (item) => {
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 value = Number(item.fnumber) || 0;
@@ -78,6 +107,18 @@ 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 = () => {
// 清空 dataList 中的 fnumber 字段
if (dataList.value && dataList.value.varList) {
diff --git a/src/views/special_operations/personnel_management/index.vue b/src/views/special_operations/personnel_management/index.vue
index 1f84e37..ab36148 100644
--- a/src/views/special_operations/personnel_management/index.vue
+++ b/src/views/special_operations/personnel_management/index.vue
@@ -209,14 +209,15 @@ const fnExportTemplates = async () => {
}/specialoperations/excelAll`;
};
// 使用 ref 包装数据使其具有响应性
-const dataList = ref({ varList: [] });
+const dataList = ref({ varList: [], total: 0 });
getForeNsicStatisticsList().then((data) => {
if (data && data.varList) {
data.varList.forEach((item) => {
item.fnumber = 0;
});
- dataList.value = data;
+ dataList.value.varList = data.varList;
+ dataList.value.total = data.total;
}
});
const fnSubmitImport = async (formData) => {
diff --git a/src/views/statistical_analysis/hazard_department_statistics/index.vue b/src/views/statistical_analysis/hazard_department_statistics/index.vue
index 2c61902..92af4c3 100644
--- a/src/views/statistical_analysis/hazard_department_statistics/index.vue
+++ b/src/views/statistical_analysis/hazard_department_statistics/index.vue
@@ -34,17 +34,20 @@
- 搜索
-
- 重置
-
+ 搜索
+ 重置
-
+
{{ serialNumber(pagination, $index) }}
@@ -52,9 +55,13 @@
-
-
-
+
+
+
+
+ {{ row.CHECK_RATE + "%" }}
+
+
@@ -68,11 +75,19 @@ import {
getListmanagerDeptList,
getDetectionSituationListTime,
} from "@/request/statistical_analysis.js";
+import dayjs from "dayjs";
+import { sumBy } from "lodash-es";
const handleExtraData = (dataList) => {
dataList.forEach((item) => {
- item.TOTAL_CODE_num = item.TOTAL_COUNT - item.ALREADY_CHECK_COUNT;
- item.CHECK_RATE = item.CHECK_RATE.toFixed(2) + "%";
+ if (item.NEED_COUNT && item.REAL_COUNT) {
+ item.CHECK_RATE = (
+ (Number(item.REAL_COUNT) / Number(item.NEED_COUNT)) *
+ 100
+ ).toFixed(2);
+ } else {
+ item.CHECK_RATE = "0.00";
+ }
});
};
@@ -84,13 +99,78 @@ const { list, searchForm, pagination, fnGetData } = useListData(
usePagination: false,
}
);
+
const fnGetDataTransfer = () => {
+ searchForm.value.dates = [
+ dayjs().startOf("year").format("YYYY-MM-DD"),
+ dayjs().format("YYYY-MM-DD"),
+ ];
+ searchForm.value.DEPTIDS = [];
fnGetData({
START_TIME: searchForm.value.dates?.[0],
END_TIME: searchForm.value.dates?.[1],
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 resData = await getDetectionSituationListTime();
searchForm.value.dates = [resData.pd.MINTIME, resData.pd.MAXTIME];
diff --git a/src/views/statistical_analysis/hazard_week_statistics/index.vue b/src/views/statistical_analysis/hazard_week_statistics/index.vue
index 6b16322..e666642 100644
--- a/src/views/statistical_analysis/hazard_week_statistics/index.vue
+++ b/src/views/statistical_analysis/hazard_week_statistics/index.vue
@@ -44,10 +44,10 @@
- 搜索
-
- 重置
-
+ 搜索
+ 重置
安全隐患。
- 截止{{ searchForm.dates[1] }}到期整改完成率
+ 截止{{ searchForm.dates[1] }}到期整改完成(验收合格)率
{{
(
(rectifyCountSummary.yzgCount /
@@ -263,35 +265,42 @@ const fnGetPercent = ({ columns, data }) => {
return;
}
- // 第八列(索引为 7):第五列(索引为 4) / 第四列(索引为 3)
- if (index === 7) {
- const sum4 = sumBy(data, (item) => {
- const val = item[columns[4]?.property];
- return isNaN(val) ? 0 : Number(val);
- });
- const sum3 = sumBy(data, (item) => {
+ // 第13列:整改率
+ if (index === 13) {
+ // 获取第4列(隐患数量)的总和
+ const totalHiddenCount = sumBy(data, (item) => {
const val = item[columns[3]?.property];
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%";
} else {
- sums[index] = ((sum4 / sum3) * 100).toFixed(2) + "%";
+ const rate = (totalYysCount / totalHiddenCount) * 100;
+ sums[index] = `${rate.toFixed(2)}%`;
}
-
return;
}
- // 其他列:常规求和逻辑
- if (!data.every((value) => isNaN(value[column.property]))) {
- sums[index] =
- sumBy(data, (item) => {
- return item[column.property];
- }) || "--";
- } else {
+ // 其他列:常规求和
+ const allNaN = data.every((value) => isNaN(value[column.property]));
+ if (allNaN) {
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;
@@ -335,20 +344,44 @@ const resultListCorrect = ref([
dataName: "隐患数量",
},
{
- dataItem: "yzgCount",
- dataName: "整改数量",
+ dataItem: "wzgCount",
+ dataName: "未整改数量",
},
{
- dataItem: "wzgCount",
- dataName: "未完成整改隐患数量",
+ dataItem: "yzgCount",
+ dataName: "已整改数量",
+ },
+ {
+ dataItem: "yysCount",
+ dataName: "已验收数量",
+ },
+ {
+ dataItem: "ygqCount",
+ dataName: "已过期数量",
+ },
+ {
+ dataItem: "dqrCount",
+ dataName: "待确认数量",
+ },
+ {
+ dataItem: "qrdhCount",
+ dataName: "确认时打回数量",
+ },
+ {
+ dataItem: "zgdhCount",
+ dataName: "整改时打回数量",
},
{
dataItem: "yqCount",
dataName: "已延期整改数量",
},
+ {
+ dataItem: "wzczgCount",
+ dataName: "未完成整改情况数量",
+ },
{
dataItem: "rectificationRate",
- dataName: "整改率",
+ dataName: "整改率(验收合格)",
},
]);
const resultListAccept = ref([
@@ -435,12 +468,27 @@ onMounted(() => {
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 = () => {
fnGetData({
STARTTIME: searchForm.value.dates[0],
ENDTIME: searchForm.value.dates[1],
- HIDDEN_CLASSIFICATION: searchForm.value.HIDDEN_CLASSIFICATION.join(","),
- checkedIds: searchForm.value.checkedIds.join(","),
+ HIDDEN_CLASSIFICATION: searchForm.value.HIDDEN_CLASSIFICATION?.join(","),
+ checkedIds: searchForm.value.checkedIds?.join(","),
});
};
diff --git a/src/views/temporary_electricity_usage/job_data/index.vue b/src/views/temporary_electricity_usage/job_data/index.vue
index b32dfdf..10c9634 100644
--- a/src/views/temporary_electricity_usage/job_data/index.vue
+++ b/src/views/temporary_electricity_usage/job_data/index.vue
@@ -192,7 +192,11 @@
审批表详情
-
+
-
+
{
- if (value) {
- const resData = await getElectricityVerifyConfigurationUser({
- APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
- });
- if (resData?.pd?.APPLY_DEPARTMENT_ID)
- callback(new Error("该申请部门已存在"));
- else callback();
- } else {
- callback();
- }
+const fnHasLevel = async () => {
+ const resData = await getElectricityVerifyConfigurationUser({
+ APPLY_DEPARTMENT_ID: form.value.APPLY_DEPARTMENT_ID,
+ });
+ if (resData?.pd?.APPLY_DEPARTMENT_ID)
+ return ElMessage.error("该申请部门已存在");
};
const rules = {
APPLY_DEPARTMENT_ID: [
{ required: true, message: "请选择申请部门", trigger: "change" },
- { validator: fnHasLevel, trigger: "blur" },
+ // { validator: fnHasLevel, trigger: "blur" },
],
AUDIT_DEPARTMENT_ID: [
@@ -154,12 +149,12 @@ const data = reactive({
const fnAuditDepartmentChange = () => {
data.auditUserList = [];
- form.value.AUDIT_USER_ID = "";
+ form.value.AUDIT_USER_ID = [];
};
const fnSafetyDepartmentChange = () => {
data.safetyUserList = [];
- form.value.APPROVE_USER_ID = "";
+ form.value.APPROVE_USER_ID = [];
};
const fnClose = () => {
@@ -172,11 +167,27 @@ const fnSubmit = debounce(
1000,
async () => {
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") {
- await useFormValidate(formRef);
- await setElectricityConfigurationUserAdd(form);
+ const isCon = await fnHasLevel();
+ if (!isCon) {
+ await setElectricityConfigurationUserAdd(params);
+ } else {
+ return false;
+ }
} else {
- await setElectricityConfigurationUserEdit(form);
+ await setElectricityConfigurationUserEdit(params);
}
ElMessage.success("提交成功");
fnClose();
@@ -207,6 +218,7 @@ watchEffect(() => {
if (form.value.APPROVE_DEPARTMENT_ID)
fnGetSafetyUser(form.value.APPROVE_DEPARTMENT_ID);
});
+watchEffect(() => {});
diff --git a/src/views/temporary_electricity_usage/user_configuration/index.vue b/src/views/temporary_electricity_usage/user_configuration/index.vue
index 4a32cf3..8bd5f7f 100644
--- a/src/views/temporary_electricity_usage/user_configuration/index.vue
+++ b/src/views/temporary_electricity_usage/user_configuration/index.vue
@@ -138,9 +138,9 @@ const data = reactive({
CONFIGURATION_ID: "",
APPLY_DEPARTMENT_ID: "",
AUDIT_DEPARTMENT_ID: "",
- AUDIT_USER_ID: "",
+ AUDIT_USER_ID: [],
APPROVE_DEPARTMENT_ID: "",
- APPROVE_USER_ID: "",
+ APPROVE_USER_ID: [],
},
},
});
@@ -190,6 +190,8 @@ const fnGoEdit = async (id) => {
const resData = await getElectricityConfigurationUserView({
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;
};
| |