diff --git a/package-lock.json b/package-lock.json index 3f3f483..534f3ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,10 @@ "name": "vue3_template", "version": "0.0.0", "dependencies": { - "@element-plus/icons-vue": "^2.1.0", + "@element-plus/icons-vue": "^2.3.1", "@icon-park/vue-next": "^1.4.2", "@vueuse/core": "^9.13.0", - "@vueuse/integrations": "^10.7.0", + "@vueuse/integrations": "^10.7.1", "animate.css": "^4.1.1", "axios": "^1.6.3", "dayjs": "^1.11.10", @@ -20,40 +20,41 @@ "mitt": "^3.0.1", "normalize.css": "^8.0.1", "pinia": "^2.1.7", - "pinia-plugin-persistedstate": "^3.2.0", + "pinia-plugin-persistedstate": "^3.2.1", "qrcode": "^1.5.3", "qs": "^6.11.2", "throttle-debounce": "^5.0.0", "v-viewer": "^3.0.11", - "vue": "^3.3.13", + "vue": "^3.4.3", "vue-router": "^4.2.5", + "vue3-pdfjs": "^0.1.6", "vue3-print-nb": "^0.1.4", - "vue3-puzzle-vcode": "^1.0.16" + "vue3-puzzle-vcode": "^1.1.5" }, "devDependencies": { "@our-patches/postcss-px-to-viewport": "^1.2.0", - "@types/node": "^18.18.4", - "@vitejs/plugin-basic-ssl": "^1.0.1", - "@vitejs/plugin-vue": "^4.4.0", + "@types/node": "^18.19.4", + "@vitejs/plugin-basic-ssl": "^1.0.2", + "@vitejs/plugin-vue": "^4.6.2", "@vue/eslint-config-prettier": "^7.1.0", "autoprefixer": "^10.4.16", - "eslint": "^8.51.0", + "eslint": "^8.56.0", "eslint-config-prettier": "^8.10.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-vue": "^9.17.0", + "eslint-plugin-vue": "^9.19.2", "prettier": "^2.8.8", "sass": "^1.69.0", "unplugin-auto-import": "^0.12.2", "unplugin-vue-components": "^0.22.12", - "vite": "^4.4.11", + "vite": "^4.5.1", "vite-plugin-enhance-log": "^0.5.2", "vite-plugin-eslint": "^1.8.1", - "vite-plugin-remove-console": "^2.1.1", - "vue-eslint-parser": "^9.3.1" + "vite-plugin-remove-console": "^2.2.0", + "vue-eslint-parser": "^9.3.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -2323,6 +2324,12 @@ "node": ">=6.0.0" } }, + "node_modules/dommatrix": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dommatrix/-/dommatrix-1.0.3.tgz", + "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==", + "deprecated": "dommatrix is no longer maintained. Please use @thednp/dommatrix." + }, "node_modules/electron-to-chromium": { "version": "1.4.617", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.617.tgz", @@ -4326,6 +4333,23 @@ "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", "dev": true }, + "node_modules/pdfjs-dist": { + "version": "2.16.105", + "resolved": "https://registry.npmmirror.com/pdfjs-dist/-/pdfjs-dist-2.16.105.tgz", + "integrity": "sha512-J4dn41spsAwUxCpEoVf6GVoz908IAA3mYiLmNxg8J9kfRXc2jxpbUepcP0ocp0alVNLFthTAM8DZ1RaHh8sU0A==", + "dependencies": { + "dommatrix": "^1.0.3", + "web-streams-polyfill": "^3.2.1" + }, + "peerDependencies": { + "worker-loader": "^3.0.8" + }, + "peerDependenciesMeta": { + "worker-loader": { + "optional": true + } + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -5546,6 +5570,18 @@ "vue": "^3.2.0" } }, + "node_modules/vue3-pdfjs": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/vue3-pdfjs/-/vue3-pdfjs-0.1.6.tgz", + "integrity": "sha512-7UaWbsp8wNqB0y/rRlyo5yRb0S+XOkkSpmdUuS267Dhi07Pt4RFEetQ8inrpf/aTFJwGnW0Uc/UE4p376s+Zmw==", + "dependencies": { + "pdfjs-dist": "^2.10.377", + "vue": "^3.2.19" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/vue3-print-nb": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz", @@ -5559,6 +5595,14 @@ "resolved": "https://registry.npmjs.org/vue3-puzzle-vcode/-/vue3-puzzle-vcode-1.1.5.tgz", "integrity": "sha512-JesxfEucupQYDHXcywVx5BGQ1Wjybtlj4dAeNw2tC1jfHt1FXoG0bpBSlLUS4TPyS+pHp++4zmTfBQZLf9ldXw==" }, + "node_modules/web-streams-polyfill": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", diff --git a/package.json b/package.json index 0d617c2..2ed6a93 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "v-viewer": "^3.0.11", "vue": "^3.4.3", "vue-router": "^4.2.5", + "vue3-pdfjs": "^0.1.6", "vue3-print-nb": "^0.1.4", "vue3-puzzle-vcode": "^1.1.5" }, diff --git a/src/assets/js/asyncRouter.js b/src/assets/js/asyncRouter.js index 4355554..266e965 100644 --- a/src/assets/js/asyncRouter.js +++ b/src/assets/js/asyncRouter.js @@ -73,6 +73,11 @@ export default [ }, ], }, + { + path: "/enterprise_management/department", + meta: { title: "组织机构", isSubMenu: false }, + component: "enterprise_management/department/index", + }, ], }, { diff --git a/src/assets/js/data_dictionary.js b/src/assets/js/data_dictionary.js index 08974eb..1691e6c 100644 --- a/src/assets/js/data_dictionary.js +++ b/src/assets/js/data_dictionary.js @@ -3,6 +3,7 @@ import { getLevels, getLevelsAndChildrenNumber, getRegulatoryType, + getDepartmentTree, } from "@/request/data_dictionary.js"; import { ref } from "vue"; @@ -67,6 +68,11 @@ export const layoutFnGetRiskLevel = async () => { }); return ref(resData.list); }; +// 部门树 +export const layoutFnGetDepartmentTree = async () => { + const resData = await getDepartmentTree(); + return ref(JSON.parse(resData.zTreeNodes)); +}; // 无法确定DICTIONARIES_ID的数据字典 export const layoutFnGetLevels = async (DICTIONARIES_ID) => { const resData = await getLevels({ DICTIONARIES_ID }); diff --git a/src/components/department/index.vue b/src/components/department/index.vue new file mode 100644 index 0000000..0ad91a5 --- /dev/null +++ b/src/components/department/index.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/pdf/index.vue b/src/components/pdf/index.vue new file mode 100644 index 0000000..f90b76f --- /dev/null +++ b/src/components/pdf/index.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/components/txt/index.vue b/src/components/txt/index.vue new file mode 100644 index 0000000..ba1e9b5 --- /dev/null +++ b/src/components/txt/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/request/data_dictionary.js b/src/request/data_dictionary.js index 030427d..5e86a7c 100644 --- a/src/request/data_dictionary.js +++ b/src/request/data_dictionary.js @@ -30,3 +30,9 @@ export const getUserListAllByCorp = (params) => loading: false, ...params, }); +// 部门树 +export const getDepartmentTree = (params) => + post("/department/listTree", { + loading: false, + ...params, + }); diff --git a/src/request/department.js b/src/request/department.js new file mode 100644 index 0000000..e6a7632 --- /dev/null +++ b/src/request/department.js @@ -0,0 +1,5 @@ +import { post } from "@/request/axios.js"; + +export const getDepartmentList = (params) => post("/department/list", params); // 组织机构列表 +export const setDepartmentDelete = (params) => + post("/department/delete", params); // 组织机构删除 diff --git a/src/views/blind_plate_plugging/job_data/index.vue b/src/views/blind_plate_plugging/job_data/index.vue index 2b4b332..4543be9 100644 --- a/src/views/blind_plate_plugging/job_data/index.vue +++ b/src/views/blind_plate_plugging/job_data/index.vue @@ -148,10 +148,10 @@ const stateList = [ { ID: "-6", NAME: "待验收打回" }, ]; const router = useRouter(); -const listData = useListData(getBlindPlatePluggingList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getBlindPlatePluggingList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/confined_space/job_data/index.vue b/src/views/confined_space/job_data/index.vue index b697311..8f50465 100644 --- a/src/views/confined_space/job_data/index.vue +++ b/src/views/confined_space/job_data/index.vue @@ -129,10 +129,10 @@ const stateList = [ { ID: "-98", NAME: "已作废(未进行气体检测)" }, ]; const router = useRouter(); -const listData = useListData(getConfinedSpaceList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getConfinedSpaceList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/enterprise_management/department/index.vue b/src/views/enterprise_management/department/index.vue new file mode 100644 index 0000000..0e9397a --- /dev/null +++ b/src/views/enterprise_management/department/index.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/src/views/enterprise_management/industry_qualifications/index.vue b/src/views/enterprise_management/industry_qualifications/index.vue index 1f9df33..37f9db7 100644 --- a/src/views/enterprise_management/industry_qualifications/index.vue +++ b/src/views/enterprise_management/industry_qualifications/index.vue @@ -141,16 +141,16 @@ import useListData from "@/assets/js/useListData.js"; const FILE_URL = import.meta.env.VITE_FILE_URL; const router = useRouter(); -const listData = useListData(getIndustryQualificationsList); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; -const fnGetDataTransfer = async () => { - await fnGetData({ +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getIndustryQualificationsList); +const fnGetDataTransfer = () => { + fnGetData({ STARTTIME: searchForm.value.dates?.[0], ENDTIME: searchForm.value.dates?.[1], }); }; -const fnResetPaginationTransfer = async () => { - await fnResetPagination({ +const fnResetPaginationTransfer = () => { + fnResetPagination({ STARTTIME: searchForm.value.dates?.[0], ENDTIME: searchForm.value.dates?.[1], }); diff --git a/src/views/groundbreaking/job_data/index.vue b/src/views/groundbreaking/job_data/index.vue index 866959f..866d034 100644 --- a/src/views/groundbreaking/job_data/index.vue +++ b/src/views/groundbreaking/job_data/index.vue @@ -154,10 +154,10 @@ const stateList = [ { ID: "-6", NAME: "验收打回" }, ]; const router = useRouter(); -const listData = useListData(getGroundbreakingList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getGroundbreakingList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/high/job_data/index.vue b/src/views/high/job_data/index.vue index d50f8a1..96d5cdc 100644 --- a/src/views/high/job_data/index.vue +++ b/src/views/high/job_data/index.vue @@ -152,10 +152,10 @@ const stateList = [ { ID: "-6", NAME: "验收打回" }, ]; const router = useRouter(); -const listData = useListData(getHighList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getHighList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/hoisting/job_data/index.vue b/src/views/hoisting/job_data/index.vue index 3f46f99..fecf3d1 100644 --- a/src/views/hoisting/job_data/index.vue +++ b/src/views/hoisting/job_data/index.vue @@ -152,10 +152,10 @@ const stateList = [ { ID: "-6", NAME: "验收打回" }, ]; const router = useRouter(); -const listData = useListData(getHoistingList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getHoistingList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/hot_work/job_data/index.vue b/src/views/hot_work/job_data/index.vue index b1111ae..a68ba3e 100644 --- a/src/views/hot_work/job_data/index.vue +++ b/src/views/hot_work/job_data/index.vue @@ -151,10 +151,10 @@ const stateList = [ { ID: "-98", NAME: "已作废(未进行气体检测)" }, ]; const router = useRouter(); -const listData = useListData(getHotWorkList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "8" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getHotWorkList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "8" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/open_circuit/job_data/index.vue b/src/views/open_circuit/job_data/index.vue index 9294d76..9aa5bd0 100644 --- a/src/views/open_circuit/job_data/index.vue +++ b/src/views/open_circuit/job_data/index.vue @@ -156,10 +156,10 @@ const stateList = [ { ID: "-6", NAME: "验收打回" }, ]; const router = useRouter(); -const listData = useListData(getOpenCircuitList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getOpenCircuitList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false, diff --git a/src/views/temporary_electricity_usage/job_data/index.vue b/src/views/temporary_electricity_usage/job_data/index.vue index 1c8c89e..129cadc 100644 --- a/src/views/temporary_electricity_usage/job_data/index.vue +++ b/src/views/temporary_electricity_usage/job_data/index.vue @@ -131,10 +131,10 @@ const stateList = [ { ID: "-99", NAME: "已作废" }, ]; const router = useRouter(); -const listData = useListData(getTemporaryElectricityUsageList, { - otherParams: props.entrance === "archive" ? { APPLY_STATUS: "5" } : {}, -}); -const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData; +const { list, pagination, searchForm, fnGetData, fnResetPagination } = + useListData(getTemporaryElectricityUsageList, { + otherParams: props.entrance === "archive" ? { APPLY_STATUS: "5" } : {}, + }); const data = reactive({ flowChartDialog: { visible: false,