From f8b71eccbf4f44782b2bde00c995789f56ac5b9c Mon Sep 17 00:00:00 2001 From: z Date: Tue, 9 Jan 2024 16:20:28 +0800 Subject: [PATCH] init --- src/assets/css/element.scss | 4 +- src/assets/js/asyncRouter.js | 57 +++ src/assets/js/data_dictionary.js | 36 +- src/assets/js/useListData.js | 9 +- src/components/tooltip_img/index.vue | 35 ++ src/request/api.js | 3 +- src/request/data_dictionary.js | 12 +- src/request/risk_control.js | 52 +++ .../industry_qualifications/index.vue | 20 +- .../enterprise_management/post/index.vue | 20 +- src/views/enterprise_management/user/add.vue | 3 - .../user/components/scheduling.vue | 3 - .../enterprise_management/user/index.vue | 17 + .../identifying_parts/components/add.vue | 114 ++++++ .../identifying_parts/components/add_risk.vue | 288 +++++++++++++ .../identifying_parts/components/print.vue | 51 +++ .../risk_control/identifying_parts/index.vue | 257 ++++++++++++ .../identifying_parts/resources_risk.vue | 211 ++++++++++ src/views/risk_control/ledger/allocation.vue | 50 +++ .../risk_control/ledger/components/add.vue | 384 ++++++++++++++++++ .../ledger/components/allocation_edit.vue | 64 +++ src/views/risk_control/ledger/index.vue | 311 ++++++++++++++ .../risk_point/components/print.vue | 42 +- src/views/risk_control/risk_point/index.vue | 34 +- src/views/risk_control/risk_point/view.vue | 8 +- 25 files changed, 1996 insertions(+), 89 deletions(-) create mode 100644 src/components/tooltip_img/index.vue create mode 100644 src/views/risk_control/identifying_parts/components/add.vue create mode 100644 src/views/risk_control/identifying_parts/components/add_risk.vue create mode 100644 src/views/risk_control/identifying_parts/components/print.vue create mode 100644 src/views/risk_control/identifying_parts/index.vue create mode 100644 src/views/risk_control/identifying_parts/resources_risk.vue create mode 100644 src/views/risk_control/ledger/allocation.vue create mode 100644 src/views/risk_control/ledger/components/add.vue create mode 100644 src/views/risk_control/ledger/components/allocation_edit.vue create mode 100644 src/views/risk_control/ledger/index.vue diff --git a/src/assets/css/element.scss b/src/assets/css/element.scss index ccfd9b9..fa1f984 100644 --- a/src/assets/css/element.scss +++ b/src/assets/css/element.scss @@ -118,7 +118,7 @@ } } -.el-select, .el-cascader, .el-date-editor.el-input, .el-date-editor.el-input__wrapper, .el-input__wrapper, .el-input-number { +.el-select, .el-cascader, .el-date-editor.el-input, .el-date-editor.el-input__wrapper, .el-input__wrapper, .el-input-number, .el-select-v2 { width: 100% !important; } @@ -380,7 +380,7 @@ color: var(--el-text-color-regular) !important; } -.el-step__title { +.el-step__title, .el-select-dropdown__option-item { font-size: 14px !important; } diff --git a/src/assets/js/asyncRouter.js b/src/assets/js/asyncRouter.js index 4fa26dd..ead626f 100644 --- a/src/assets/js/asyncRouter.js +++ b/src/assets/js/asyncRouter.js @@ -147,6 +147,63 @@ export default [ }, ], }, + { + path: "/risk_control/identifying_parts", + meta: { title: "辨识部位", isSubMenu: false }, + component: "children", + children: [ + { + path: "", + component: "risk_control/identifying_parts/index", + }, + { + path: "/risk_control/identifying_parts/resources_risk", + meta: { + title: "匹配资源存在风险", + activeMenu: "/risk_control/identifying_parts", + }, + component: "risk_control/identifying_parts/resources_risk", + }, + ], + }, + { + path: "/risk_control/ledger", + meta: { title: "风险管控台账", isSubMenu: false }, + component: "children", + children: [ + { + path: "", + component: "risk_control/ledger/index", + }, + { + path: "/risk_control/ledger/allocation", + meta: { + title: "配置", + activeMenu: "/risk_control/ledger", + }, + component: "risk_control/ledger/allocation", + }, + ], + }, + ], + }, + { + path: "/hazard_investigation", + redirect: "/hazard_investigation/inventory_management", + meta: { title: "隐患排查", model: MODEL["1"] }, + component: "children", + children: [ + { + path: "/hazard_investigation/inventory_management", + meta: { title: "清单管理", isSubMenu: false }, + component: "children", + children: [ + { + path: "", + component: "hazard_investigation/inventory_management/index", + }, + ], + }, ], }, { diff --git a/src/assets/js/data_dictionary.js b/src/assets/js/data_dictionary.js index 62687b1..efe03d2 100644 --- a/src/assets/js/data_dictionary.js +++ b/src/assets/js/data_dictionary.js @@ -1,5 +1,5 @@ import { - getLearningTrainType, + getLevelsByParentId, getLevels, getLevelsAndChildrenNumber, getRegulatoryType, @@ -36,25 +36,39 @@ export const layoutFnGetEnterpriseScale = async () => { }; // 培训行业类型 export const layoutFnGetTrainingIndustryType = async () => { - const resData = await getLearningTrainType({ + const resData = await getLevelsByParentId({ parentId: "052369aa22d242118236cde52d0c67ea", }); return ref(JSON.parse(resData.zTreeNodes)); }; // 培训岗位类型 export const layoutFnGetTrainingPostType = async () => { - const resData = await getLearningTrainType({ + const resData = await getLevelsByParentId({ parentId: "f6a7c4f5602f46e291d06b1390a3f820", }); return ref(JSON.parse(resData.zTreeNodes)); }; // 培训板块类型 export const layoutFnGetTrainingPlateType = async () => { - const resData = await getLearningTrainType({ + const resData = await getLevelsByParentId({ parentId: "d538d11e4eec409ab428f5d2f3c67c24", }); return ref(JSON.parse(resData.zTreeNodes)); }; +// 管控措施分类1 +export const layoutFnGetControlMeasures1 = async () => { + const resData = await getLevelsByParentId({ + parentId: "c61ff12d2e6e4040ad0dfd58d75275ae", + }); + return ref(JSON.parse(resData.zTreeNodes)); +}; +// 管控措施分类2 +export const layoutFnGetControlMeasures2 = async () => { + const resData = await getLevelsByParentId({ + parentId: "1ca0ce441f8342cca57fd09079ad59b0", + }); + return ref(JSON.parse(resData.zTreeNodes)); +}; // 受限空间类型 export const layoutFnGetTypeOfConfinedSpace = async () => { const resData = await getLevels({ @@ -139,6 +153,20 @@ export const layoutFnGetEmploymentSituation = async () => { }); return ref(resData.list); }; +// 事故类型 +export const layoutFnGetAccidentType = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "cee1190ea96a4ca9b7bca81e11f0d0f8", + }); + return ref(resData.list); +}; +// 风险分级 +export const layoutFnGetRiskClassification = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "5a81e63ec0e94d919b3138bc01dbef6b", + }); + return ref(resData.list); +}; // 部门树 export const layoutFnGetDepartmentTree = async (params) => { const resData = await getDepartmentTree(params); diff --git a/src/assets/js/useListData.js b/src/assets/js/useListData.js index 28a9c91..a04f3e1 100644 --- a/src/assets/js/useListData.js +++ b/src/assets/js/useListData.js @@ -4,12 +4,12 @@ import { getDataType } from "@/assets/js/utils.js"; /** * @param api {Function} 接口函数 * @param options {Object?: {callbackFn, otherParams, immediate, usePagination, key}} 配置项 - * @param options.callbackFn {Function?} 回调函数(返回值为后台返回的所有数据) + * @param options.callbackFn {Function?} 回调函数(返回值【第一个参数表格数据,第二个参数后台返回的所有数据】) * @param options.otherParams {Object?} 其它接口参数 * @param options.immediate {Boolean?} 是否立即执行接口函数(默认是) * @param options.usePagination {Boolean?} 是否使用分页(默认是) * @param options.key {String?} 返回的存放数组的key(默认varList) - * @return {Object} 返回对象包含以下属性:list 表格数据,pagination 分页数据,searchForm 搜索表单数据,tableRef 表格实例,fnGetData 获取数据函数,fnResetPagination 重置分页函数 + * @return {Object} 返回对象包含以下属性:list 表格数据,pagination 分页数据,searchForm 搜索表单数据,tableRef 表格实例,responseData 后台所有返回值,fnGetData 获取数据函数,fnResetPagination 重置分页函数 */ export default function useListData(api, options = {}) { @@ -35,6 +35,7 @@ export default function useListData(api, options = {}) { throw new Error("options.otherParams必须是一个对象"); if (options.callbackFn && getDataType(options.callbackFn) !== "Function") throw new Error("options.callbackFn必须是一个函数"); + const responseData = ref({}); const list = ref([]); const pagination = ref({ currentPage: 1, @@ -57,7 +58,8 @@ export default function useListData(api, options = {}) { }); list.value = resData[key]; pagination.value.total = resData.page.totalResult; - options.callbackFn && options.callbackFn(resData); + responseData.value = resData; + options.callbackFn && options.callbackFn(list.value, resData); }; immediate && fnGetData().then(); const fnResetPagination = async (otherParams) => { @@ -76,6 +78,7 @@ export default function useListData(api, options = {}) { pagination, searchForm, tableRef, + responseData, fnGetData: async (otherParams) => await fnGetData(otherParams), fnResetPagination: async (otherParams) => await fnResetPagination(otherParams), diff --git a/src/components/tooltip_img/index.vue b/src/components/tooltip_img/index.vue new file mode 100644 index 0000000..c5d13eb --- /dev/null +++ b/src/components/tooltip_img/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/request/api.js b/src/request/api.js index eaa0ee9..8fa3a2c 100644 --- a/src/request/api.js +++ b/src/request/api.js @@ -3,7 +3,8 @@ import { post, upload } from "./axios"; export const Login = (params) => post("/admin/check", params); // 登录 export const logout = (params) => post("/main/logout", params); // 退出登录 export const getAsyncRouter = (params) => post("/main/index", params); // 获取动态路由 -export const getHasMenu = (params) => post("/head/hasMenu", params); // 获取有没有权限访问路由 +export const getHasMenu = (params) => + post("/head/hasMenu", { loading: false, ...params }); // 获取有没有权限访问路由 export const getUserInfo = (params) => post("/user/goEditMyInfo", params); // 获取用户信息 export const setUserInfo = (params) => post("/user/editUserOwn", params); // 修改用户信息 export const getVerifyDuplicateEmail = (params) => diff --git a/src/request/data_dictionary.js b/src/request/data_dictionary.js index 76b130c..12a5afd 100644 --- a/src/request/data_dictionary.js +++ b/src/request/data_dictionary.js @@ -12,6 +12,12 @@ export const getLevelsCorp = (params) => loading: false, ...params, }); +// 获取数据字典 +export const getLevelsByParentId = (params) => + post("/dictionaries/listDictToParId", { + loading: false, + ...params, + }); // 获取数据字典包括子级数量 export const getLevelsAndChildrenNumber = (params) => post("/dictionaries/getLevelsAndSCount", { @@ -24,12 +30,6 @@ export const getRegulatoryType = (params) => loading: false, ...params, }); -// 获取在线学习培训类型 -export const getLearningTrainType = (params) => - post("/dictionaries/listDictToParId", { - loading: false, - ...params, - }); // 获取用户 export const getUserListAllByCorp = (params) => post("/user/listUserByCorp", { diff --git a/src/request/risk_control.js b/src/request/risk_control.js index e56827d..ffc9656 100644 --- a/src/request/risk_control.js +++ b/src/request/risk_control.js @@ -11,3 +11,55 @@ export const setRiskPointAdd = (params) => post("/riskunit/add", params); // 风 export const setRiskPointEdit = (params) => post("/riskunit/edit", params); // 风险点单元修改 export const getRiskPointInspectList = (params) => post("/riskunit/getRisByUnitId", params); // 风险点单元检查内容 +export const getIdentifyingPartsList = (params) => + post("/identificationparts/list", params); // 辨识部位列表 +export const getIdentifyingPartsView = (params) => + post("/identificationparts/goEdit", params); // 辨识部位查看 +export const setIdentifyingPartsDelete = (params) => + post("/identificationparts/delete", params); // 辨识部位删除 +export const setIdentifyingPartsBatchDelete = (params) => + post("/identificationparts/deleteAll", params); // 辨识部位批量删除 +export const setIdentifyingPartsImport = (params) => + upload("/identificationparts/readExcel", params); // 辨识部位导入 +export const getRiskPointListAll = (params) => + post("/identificationparts/getSelect", params); // 风险点单元列表所有 +export const setIdentifyingPartsAdd = (params) => + upload("/identificationparts/add", params); // 辨识部位添加 +export const setIdentifyingPartsEdit = (params) => + upload("/identificationparts/edit", params); // 辨识部位修改 +export const getIdentifyingPartsResourcesRisk = (params) => + post("/identificationparts/goEditRes", params); // 辨识部位匹配资源存在风险 +export const getIdentifyingPartsRiskView1 = (params) => + post("/riskpointTemporary/goRiskEdit", params); // 辨识部位风险查看 +export const getIdentifyingPartsRiskView2 = (params) => + post("/riskpointTemporary/goEdit", params); // 辨识部位风险查看 +export const getIdentifyingPartsRiskView3 = (params) => + post("/riskpointTemporary/goResEdit", params); // 辨识部位风险查看 +export const setIdentifyingPartsRiskAdd = (params) => + post("/riskpointTemporary/add", params); // 辨识部位风险添加 +export const setIdentifyingPartsRiskEdit = (params) => + post("/riskpointTemporary/edit", params); // 辨识部位风险修改 +export const setIdentifyingPartsResourcesRiskSave = (params) => + post("/identificationparts/resourceConfig", params); // 辨识部位匹配资源存在风险保存 +export const getRiskControlLedgerList = (params) => + post("/riskpoint/list", params); // 风险管控台账列表 +export const setRiskControlLedgerDelete = (params) => + post("/riskpoint/delete", params); // 风险管控台账删除 +export const setRiskControlLedgerBatchDelete = (params) => + post("/riskpoint/deleteAll", params); // 风险管控台账删除 +export const setRiskControlLedgerImport = (params) => + upload("/riskpoint/readExcel2", params); // 风险管控台账导入 +export const getRiskControlLedgerView = (params) => + post("/riskpoint/goEdit", params); // 风险管控台账查看 +export const getRiskPointListAllById = (params) => + post("/riskpoint/getPointSelect", params); // 风险点单元列表所有按部门查询 +export const getIdentifyingPartsListAll = (params) => + post("/identificationparts/listAll", params); // 辨识部位列表所有 +export const setRiskControlLedgerAdd = (params) => + post("/riskpoint/add", params); // 辨识部位添加 +export const setRiskControlLedgerEdit = (params) => + post("/riskpoint/edit", params); // 辨识部位修改 +export const getRiskControlLedgerAllocationList = (params) => + post("/riskcheckitem/list", params); // 辨识部位配置列表 +export const setRiskControlLedgerAllocationEdit = (params) => + post("/riskcheckitem/edit", params); // 辨识部位配置修改 diff --git a/src/views/enterprise_management/industry_qualifications/index.vue b/src/views/enterprise_management/industry_qualifications/index.vue index 229b5e7..a972467 100644 --- a/src/views/enterprise_management/industry_qualifications/index.vue +++ b/src/views/enterprise_management/industry_qualifications/index.vue @@ -55,23 +55,7 @@ @@ -139,8 +123,8 @@ import { } from "@/request/enterprise_management.js"; import { useRouter } from "vue-router"; import useListData from "@/assets/js/useListData.js"; +import LayoutTooltipImg from "@/components/tooltip_img/index.vue"; -const VITE_FILE_URL = import.meta.env.VITE_FILE_URL; const router = useRouter(); const { list, pagination, searchForm, fnGetData, fnResetPagination } = useListData(getIndustryQualificationsList); diff --git a/src/views/enterprise_management/post/index.vue b/src/views/enterprise_management/post/index.vue index 6c72592..cb59101 100644 --- a/src/views/enterprise_management/post/index.vue +++ b/src/views/enterprise_management/post/index.vue @@ -37,23 +37,7 @@ @@ -118,8 +102,8 @@ import { onBeforeRouteUpdate, useRoute, useRouter } from "vue-router"; import { debounce } from "throttle-debounce"; import { ElMessage, ElMessageBox } from "element-plus"; import Add from "./components/add.vue"; +import LayoutTooltipImg from "@/components/tooltip_img/index.vue"; -const VITE_FILE_URL = import.meta.env.VITE_FILE_URL; const userStore = useUserStore(); const router = useRouter(); const route = useRoute(); diff --git a/src/views/enterprise_management/user/add.vue b/src/views/enterprise_management/user/add.vue index 3829575..5e0527b 100644 --- a/src/views/enterprise_management/user/add.vue +++ b/src/views/enterprise_management/user/add.vue @@ -721,9 +721,6 @@ const stop = watch( fnGetLevels(); stop && stop(); } - }, - { - immediate: true, } ); const fnSubmit = debounce( diff --git a/src/views/enterprise_management/user/components/scheduling.vue b/src/views/enterprise_management/user/components/scheduling.vue index 4bd567a..37d6695 100644 --- a/src/views/enterprise_management/user/components/scheduling.vue +++ b/src/views/enterprise_management/user/components/scheduling.vue @@ -83,9 +83,6 @@ watch( () => props.visible, (val) => { if (val) fnGetWorkDate(); - }, - { - immediate: true, } ); diff --git a/src/views/enterprise_management/user/index.vue b/src/views/enterprise_management/user/index.vue index cab6ddf..c3a3d38 100644 --- a/src/views/enterprise_management/user/index.vue +++ b/src/views/enterprise_management/user/index.vue @@ -130,6 +130,7 @@ type="primary" text link + @click="fnSchedule(row)" > 排班表 @@ -184,6 +185,11 @@ title="在线学习人员导入" @submit="fnSubmitLearnersImport" /> + @@ -205,6 +211,7 @@ import { onBeforeRouteUpdate, useRoute, useRouter } from "vue-router"; import { debounce } from "throttle-debounce"; import { ElMessage, ElMessageBox } from "element-plus"; import LayoutImportFile from "@/components/import_file/index.vue"; +import Scheduling from "./components/scheduling.vue"; const router = useRouter(); const route = useRoute(); @@ -223,6 +230,11 @@ const data = reactive({ schedulingList1: [], importDialogVisible: false, importLearnersDialogVisible: false, + scheduleDialog: { + visible: false, + info: {}, + id: "", + }, }); const fnGetUserScheduling = async (PARENTID, list) => { const resData = await getUserScheduling({ PARENTID }); @@ -286,6 +298,11 @@ const fnSubmitLearnersImport = async (formData) => { fnImportLearnersDialogChangeShow(); fnResetPaginationTransfer(); }; +const fnSchedule = (row) => { + data.scheduleDialog.visible = true; + data.scheduleDialog.info = row; + data.scheduleDialog.id = row.SHIFTDUTYTWO; +}; diff --git a/src/views/risk_control/identifying_parts/components/add.vue b/src/views/risk_control/identifying_parts/components/add.vue new file mode 100644 index 0000000..f61ab30 --- /dev/null +++ b/src/views/risk_control/identifying_parts/components/add.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/risk_control/identifying_parts/components/add_risk.vue b/src/views/risk_control/identifying_parts/components/add_risk.vue new file mode 100644 index 0000000..a82f22e --- /dev/null +++ b/src/views/risk_control/identifying_parts/components/add_risk.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/src/views/risk_control/identifying_parts/components/print.vue b/src/views/risk_control/identifying_parts/components/print.vue new file mode 100644 index 0000000..965b17c --- /dev/null +++ b/src/views/risk_control/identifying_parts/components/print.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/risk_control/identifying_parts/index.vue b/src/views/risk_control/identifying_parts/index.vue new file mode 100644 index 0000000..4087971 --- /dev/null +++ b/src/views/risk_control/identifying_parts/index.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/risk_control/identifying_parts/resources_risk.vue b/src/views/risk_control/identifying_parts/resources_risk.vue new file mode 100644 index 0000000..f5251f8 --- /dev/null +++ b/src/views/risk_control/identifying_parts/resources_risk.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/risk_control/ledger/allocation.vue b/src/views/risk_control/ledger/allocation.vue new file mode 100644 index 0000000..b8d9894 --- /dev/null +++ b/src/views/risk_control/ledger/allocation.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/views/risk_control/ledger/components/add.vue b/src/views/risk_control/ledger/components/add.vue new file mode 100644 index 0000000..64044d7 --- /dev/null +++ b/src/views/risk_control/ledger/components/add.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/src/views/risk_control/ledger/components/allocation_edit.vue b/src/views/risk_control/ledger/components/allocation_edit.vue new file mode 100644 index 0000000..966b173 --- /dev/null +++ b/src/views/risk_control/ledger/components/allocation_edit.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/views/risk_control/ledger/index.vue b/src/views/risk_control/ledger/index.vue new file mode 100644 index 0000000..7fbd1f0 --- /dev/null +++ b/src/views/risk_control/ledger/index.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/views/risk_control/risk_point/components/print.vue b/src/views/risk_control/risk_point/components/print.vue index 131cae7..45ebafe 100644 --- a/src/views/risk_control/risk_point/components/print.vue +++ b/src/views/risk_control/risk_point/components/print.vue @@ -1,22 +1,24 @@