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 @@
+
+
+
+
+
+
+
+
+
+ 结构图
+
+
+
+ {{ serialNumber(pagination, $index) }}
+
+
+
+
+
+ {{ row.NAME }}
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
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,