diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/src/views/business/board/depComprehensive/list.vue b/src/views/business/board/depComprehensive/list.vue
new file mode 100644
index 0000000..1bcad63
--- /dev/null
+++ b/src/views/business/board/depComprehensive/list.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/src/views/business/board/depComprehensive/list.vue b/src/views/business/board/depComprehensive/list.vue
new file mode 100644
index 0000000..1bcad63
--- /dev/null
+++ b/src/views/business/board/depComprehensive/list.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/depOutputAnalysis/list.vue b/src/views/business/board/depOutputAnalysis/list.vue
index 1b15465..5747072 100644
--- a/src/views/business/board/depOutputAnalysis/list.vue
+++ b/src/views/business/board/depOutputAnalysis/list.vue
@@ -59,7 +59,8 @@
}
})
outPutTotal.value = (response.data.outPutTotal / 100).toFixed(2)
- title.value = `产值总计: ${outPutTotal.value}元 (${titleStartTime.value} ~ ${titleEndTime.value})`
+ title.value = listQuery.value.startTime && listQuery.value.endTime ? `产值总计: ${outPutTotal.value}元 (${listQuery.value.startTime} ~ ${listQuery.value.endTime})` : `产值总计: ${outPutTotal.value}元`
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
loadingTable.value = false
})
}
@@ -72,19 +73,22 @@
startTime: '', // 开始时间
endTime: '', // 结束时间
}
- timeRange.value = ['', '']
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
fetchData()
}
// 搜索
const searchList = () => {
- listQuery.value.startTime = timeRange.value[0] as string || ''
- listQuery.value.endTime = timeRange.value[1] as string || ''
- if (listQuery.value.startTime && listQuery.value.endTime) {
- titleStartTime.value = listQuery.value.startTime
- titleEndTime.value = listQuery.value.endTime
+ if (timeRange.value) {
+ listQuery.value.startTime = timeRange.value[0] as string || ''
+ listQuery.value.endTime = timeRange.value[1] as string || ''
+ }
+ else {
+ listQuery.value.startTime = ''
+ listQuery.value.endTime = ''
+ timeRange.value = ['', '']
}
fetchData()
}
@@ -191,14 +195,15 @@
// 部门值发生变化
const deptChange = (deptId: string) => {
+ listQuery.value.staffId = ''
fetchUserList(deptId)
}
onMounted(() => {
fetchUsersDept() // 获取部门信息
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
fetchData() // 获取表格数据
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
})
@@ -245,8 +250,8 @@
v-model="timeRange"
type="datetimerange"
range-separator="到"
- format="YYYY-MM-DD hh:mm:ss"
- value-format="YYYY-MM-DD hh:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
@@ -255,7 +260,7 @@
-
+
= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/src/views/business/board/depComprehensive/list.vue b/src/views/business/board/depComprehensive/list.vue
new file mode 100644
index 0000000..1bcad63
--- /dev/null
+++ b/src/views/business/board/depComprehensive/list.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/depOutputAnalysis/list.vue b/src/views/business/board/depOutputAnalysis/list.vue
index 1b15465..5747072 100644
--- a/src/views/business/board/depOutputAnalysis/list.vue
+++ b/src/views/business/board/depOutputAnalysis/list.vue
@@ -59,7 +59,8 @@
}
})
outPutTotal.value = (response.data.outPutTotal / 100).toFixed(2)
- title.value = `产值总计: ${outPutTotal.value}元 (${titleStartTime.value} ~ ${titleEndTime.value})`
+ title.value = listQuery.value.startTime && listQuery.value.endTime ? `产值总计: ${outPutTotal.value}元 (${listQuery.value.startTime} ~ ${listQuery.value.endTime})` : `产值总计: ${outPutTotal.value}元`
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
loadingTable.value = false
})
}
@@ -72,19 +73,22 @@
startTime: '', // 开始时间
endTime: '', // 结束时间
}
- timeRange.value = ['', '']
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
fetchData()
}
// 搜索
const searchList = () => {
- listQuery.value.startTime = timeRange.value[0] as string || ''
- listQuery.value.endTime = timeRange.value[1] as string || ''
- if (listQuery.value.startTime && listQuery.value.endTime) {
- titleStartTime.value = listQuery.value.startTime
- titleEndTime.value = listQuery.value.endTime
+ if (timeRange.value) {
+ listQuery.value.startTime = timeRange.value[0] as string || ''
+ listQuery.value.endTime = timeRange.value[1] as string || ''
+ }
+ else {
+ listQuery.value.startTime = ''
+ listQuery.value.endTime = ''
+ timeRange.value = ['', '']
}
fetchData()
}
@@ -191,14 +195,15 @@
// 部门值发生变化
const deptChange = (deptId: string) => {
+ listQuery.value.staffId = ''
fetchUserList(deptId)
}
onMounted(() => {
fetchUsersDept() // 获取部门信息
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
fetchData() // 获取表格数据
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
})
@@ -245,8 +250,8 @@
v-model="timeRange"
type="datetimerange"
range-separator="到"
- format="YYYY-MM-DD hh:mm:ss"
- value-format="YYYY-MM-DD hh:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
@@ -255,7 +260,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/src/views/business/board/depComprehensive/list.vue b/src/views/business/board/depComprehensive/list.vue
new file mode 100644
index 0000000..1bcad63
--- /dev/null
+++ b/src/views/business/board/depComprehensive/list.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/depOutputAnalysis/list.vue b/src/views/business/board/depOutputAnalysis/list.vue
index 1b15465..5747072 100644
--- a/src/views/business/board/depOutputAnalysis/list.vue
+++ b/src/views/business/board/depOutputAnalysis/list.vue
@@ -59,7 +59,8 @@
}
})
outPutTotal.value = (response.data.outPutTotal / 100).toFixed(2)
- title.value = `产值总计: ${outPutTotal.value}元 (${titleStartTime.value} ~ ${titleEndTime.value})`
+ title.value = listQuery.value.startTime && listQuery.value.endTime ? `产值总计: ${outPutTotal.value}元 (${listQuery.value.startTime} ~ ${listQuery.value.endTime})` : `产值总计: ${outPutTotal.value}元`
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
loadingTable.value = false
})
}
@@ -72,19 +73,22 @@
startTime: '', // 开始时间
endTime: '', // 结束时间
}
- timeRange.value = ['', '']
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
fetchData()
}
// 搜索
const searchList = () => {
- listQuery.value.startTime = timeRange.value[0] as string || ''
- listQuery.value.endTime = timeRange.value[1] as string || ''
- if (listQuery.value.startTime && listQuery.value.endTime) {
- titleStartTime.value = listQuery.value.startTime
- titleEndTime.value = listQuery.value.endTime
+ if (timeRange.value) {
+ listQuery.value.startTime = timeRange.value[0] as string || ''
+ listQuery.value.endTime = timeRange.value[1] as string || ''
+ }
+ else {
+ listQuery.value.startTime = ''
+ listQuery.value.endTime = ''
+ timeRange.value = ['', '']
}
fetchData()
}
@@ -191,14 +195,15 @@
// 部门值发生变化
const deptChange = (deptId: string) => {
+ listQuery.value.staffId = ''
fetchUserList(deptId)
}
onMounted(() => {
fetchUsersDept() // 获取部门信息
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
fetchData() // 获取表格数据
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
})
@@ -245,8 +250,8 @@
v-model="timeRange"
type="datetimerange"
range-separator="到"
- format="YYYY-MM-DD hh:mm:ss"
- value-format="YYYY-MM-DD hh:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
@@ -255,7 +260,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts b/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts
new file mode 100644
index 0000000..9b70579
--- /dev/null
+++ b/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts
@@ -0,0 +1,18 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ staffId: string // 人员id
+ month: string // 月份
+ year: string // 年份
+ date: string // 日期
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ compareLastMonth: string // 较上月工作量分析
+}
diff --git a/package.json b/package.json
index 8aabc3d..ce67ec6 100644
--- a/package.json
+++ b/package.json
@@ -38,12 +38,14 @@
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.1",
+ "pdfjs-dist": "2.0.943",
"pinia": "^2.0.23",
"print-js": "^1.6.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"tinymce": "^6.2.0",
"vue": "^3.2.44",
+ "vue-pdf-embed": "^1.1.5",
"vue-router": "^4.1.6",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 64aa9b4..3cbb615 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,6 +39,7 @@
nprogress: ^0.2.0
path-browserify: ^1.0.1
path-to-regexp: ^6.2.1
+ pdfjs-dist: 2.0.943
pinia: ^2.0.23
plop: ^3.1.1
postcss-html: ^1.5.0
@@ -68,6 +69,7 @@
vite-plugin-vue-layouts: ^0.6.0
vite-plugin-vue-setup-extend: ^0.4.0
vue: ^3.2.44
+ vue-pdf-embed: ^1.1.5
vue-router: ^4.1.6
vue-tsc: ^1.0.9
vue3-print-nb: ^0.1.4
@@ -95,12 +97,14 @@
nprogress: 0.2.0
path-browserify: 1.0.1
path-to-regexp: 6.2.1
+ pdfjs-dist: 2.0.943
pinia: 2.0.23_d45o5shxrtvj6wh4y524t7cqnm
print-js: registry.npmmirror.com/print-js/1.6.0
qrcode: registry.npmmirror.com/qrcode/1.5.1
qs: 6.11.0
tinymce: 6.2.0
vue: 3.2.44
+ vue-pdf-embed: 1.1.5_vue@3.2.44
vue-router: 4.1.6_vue@3.2.44
vue3-print-nb: 0.1.4
vuedraggable: registry.npmmirror.com/vuedraggable/4.1.0_vue@3.2.44
@@ -1641,6 +1645,14 @@
indent-string: 4.0.0
dev: true
+ /ajv-keywords/3.5.2_ajv@6.12.6:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: false
+
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -1648,7 +1660,6 @@
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ajv/8.11.0:
resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
@@ -1896,7 +1907,6 @@
/big.js/5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
- dev: true
/bin-pack/1.0.2:
resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==}
@@ -2866,7 +2876,6 @@
/emojis-list/3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
- dev: true
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@@ -3721,7 +3730,6 @@
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
@@ -3736,7 +3744,6 @@
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -4985,7 +4992,6 @@
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-schema-traverse/1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -5008,7 +5014,6 @@
hasBin: true
dependencies:
minimist: 1.2.7
- dev: true
/json5/2.2.1:
resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
@@ -5183,7 +5188,6 @@
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.1
- dev: true
/local-pkg/0.4.2:
resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
@@ -5504,7 +5508,6 @@
/minimist/1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
- dev: true
/mitt/3.0.0:
resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
@@ -5646,6 +5649,10 @@
engines: {node: '>=v0.6.5'}
dev: true
+ /node-ensure/0.0.0:
+ resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==}
+ dev: false
+
/node-html-parser/5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
dependencies:
@@ -6110,6 +6117,15 @@
resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
dev: true
+ /pdfjs-dist/2.0.943:
+ resolution: {integrity: sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ node-ensure: 0.0.0
+ worker-loader: 2.0.0
+ dev: false
+
/performance-now/2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
dev: true
@@ -6368,7 +6384,6 @@
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
@@ -6733,6 +6748,14 @@
through: 2.3.8
dev: true
+ /schema-utils/0.4.7:
+ resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2_ajv@6.12.6
+ dev: false
+
/scroll-into-view-if-needed/2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
@@ -7845,7 +7868,6 @@
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/urix/0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -8130,6 +8152,14 @@
- supports-color
dev: true
+ /vue-pdf-embed/1.1.5_vue@3.2.44:
+ resolution: {integrity: sha512-aOUKlPFML9abOmFJgCuDujzcXmjN1Ck3X3vt0h2N/EGZYASS9TRXu96s+NzwZDr13iTZ8LGskLOzzXvf7FIpwQ==}
+ peerDependencies:
+ vue: ^2.x || ^3.x
+ dependencies:
+ vue: 3.2.44
+ dev: false
+
/vue-router/4.1.6_vue@3.2.44:
resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
peerDependencies:
@@ -8262,6 +8292,16 @@
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
+ /worker-loader/2.0.0:
+ resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==}
+ engines: {node: '>= 6.9.0 || >= 8.9.0'}
+ peerDependencies:
+ webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0
+ dependencies:
+ loader-utils: 1.4.0
+ schema-utils: 0.4.7
+ dev: false
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
diff --git a/src/api/business/board/depComprehensive.ts b/src/api/business/board/depComprehensive.ts
new file mode 100644
index 0000000..ab754ab
--- /dev/null
+++ b/src/api/business/board/depComprehensive.ts
@@ -0,0 +1,23 @@
+// 部门综合分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/depComprehensive/depComprehensive-interface'
+
+// 部门产值分析列表
+export function getDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportDepComprehensiveList(data: IListQuery) {
+ return request({
+ url: '/business/board/deptComprehensive/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/api/business/board/workloadAnalysis.ts b/src/api/business/board/workloadAnalysis.ts
new file mode 100644
index 0000000..63a2021
--- /dev/null
+++ b/src/api/business/board/workloadAnalysis.ts
@@ -0,0 +1,23 @@
+// 业务工作量分析
+import request from '../../index'
+import type { IListQuery } from '@/views/business/board/workloadAnalysis/workloadAnalysis-interface'
+
+// 部门产值分析列表
+export function getWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload',
+ method: 'post',
+ data,
+ })
+}
+
+// 部门产值分析导出
+export function exportWorkloadAnalysisList(data: IListQuery) {
+ return request({
+ url: '/business/board/workload/export',
+ method: 'post',
+ responseType: 'blob',
+ data,
+ })
+}
+
diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts
index 6536feb..7ac0233 100644
--- a/src/router/modules/business.ts
+++ b/src/router/modules/business.ts
@@ -113,6 +113,26 @@
auth: '/business/board/departmentalOutputAnalysis',
},
},
+ {
+ path: 'workloadAnalysis',
+ name: 'WorkloadAnalysis',
+ component: () => import('@/views/business/board/workloadAnalysis/list.vue'),
+ meta: {
+ title: '业务工作量分析',
+ icon: 'ep:key',
+ auth: '/business/board/businessWorkloadAnalysis',
+ },
+ },
+ {
+ path: 'depComprehensive',
+ name: 'DepComprehensive',
+ component: () => import('@/views/business/board/depComprehensive/list.vue'),
+ meta: {
+ title: '部门综合分析',
+ icon: 'ep:key',
+ auth: '/business/board/departmentalComprehensiveAnalysis',
+ },
+ },
],
},
{
diff --git a/src/views/business/board/depComprehensive/depComprehensive-interface.ts b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
new file mode 100644
index 0000000..1b16917
--- /dev/null
+++ b/src/views/business/board/depComprehensive/depComprehensive-interface.ts
@@ -0,0 +1,16 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ startTime: string // 开始时间
+ endTime: string // 结束时间
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ outPut: string // 产值统计(单位分)
+}
diff --git a/src/views/business/board/depComprehensive/list.vue b/src/views/business/board/depComprehensive/list.vue
new file mode 100644
index 0000000..1bcad63
--- /dev/null
+++ b/src/views/business/board/depComprehensive/list.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/depOutputAnalysis/list.vue b/src/views/business/board/depOutputAnalysis/list.vue
index 1b15465..5747072 100644
--- a/src/views/business/board/depOutputAnalysis/list.vue
+++ b/src/views/business/board/depOutputAnalysis/list.vue
@@ -59,7 +59,8 @@
}
})
outPutTotal.value = (response.data.outPutTotal / 100).toFixed(2)
- title.value = `产值总计: ${outPutTotal.value}元 (${titleStartTime.value} ~ ${titleEndTime.value})`
+ title.value = listQuery.value.startTime && listQuery.value.endTime ? `产值总计: ${outPutTotal.value}元 (${listQuery.value.startTime} ~ ${listQuery.value.endTime})` : `产值总计: ${outPutTotal.value}元`
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
loadingTable.value = false
})
}
@@ -72,19 +73,22 @@
startTime: '', // 开始时间
endTime: '', // 结束时间
}
- timeRange.value = ['', '']
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ timeRange.value = [listQuery.value.startTime, listQuery.value.endTime]
fetchData()
}
// 搜索
const searchList = () => {
- listQuery.value.startTime = timeRange.value[0] as string || ''
- listQuery.value.endTime = timeRange.value[1] as string || ''
- if (listQuery.value.startTime && listQuery.value.endTime) {
- titleStartTime.value = listQuery.value.startTime
- titleEndTime.value = listQuery.value.endTime
+ if (timeRange.value) {
+ listQuery.value.startTime = timeRange.value[0] as string || ''
+ listQuery.value.endTime = timeRange.value[1] as string || ''
+ }
+ else {
+ listQuery.value.startTime = ''
+ listQuery.value.endTime = ''
+ timeRange.value = ['', '']
}
fetchData()
}
@@ -191,14 +195,15 @@
// 部门值发生变化
const deptChange = (deptId: string) => {
+ listQuery.value.staffId = ''
fetchUserList(deptId)
}
onMounted(() => {
fetchUsersDept() // 获取部门信息
+ listQuery.value.startTime = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+ listQuery.value.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
fetchData() // 获取表格数据
- titleStartTime.value = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
- titleEndTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
})
@@ -245,8 +250,8 @@
v-model="timeRange"
type="datetimerange"
range-separator="到"
- format="YYYY-MM-DD hh:mm:ss"
- value-format="YYYY-MM-DD hh:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
@@ -255,7 +260,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts b/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts
new file mode 100644
index 0000000..9b70579
--- /dev/null
+++ b/src/views/business/board/workloadAnalysis/workloadAnalysis-interface.ts
@@ -0,0 +1,18 @@
+// 筛选数据
+export interface IListQuery {
+ deptId: string // 部门id
+ staffId: string // 人员id
+ month: string // 月份
+ year: string // 年份
+ date: string // 日期
+}
+
+// 表格
+export interface IList {
+ id: string // 主键
+ deptName: string // 部门
+ staffName: string // 人员
+ samples: string // 检完样品数量
+ certificates: string // 出具证书数量
+ compareLastMonth: string // 较上月工作量分析
+}
diff --git a/src/views/business/schedule/certPrint/certList.vue b/src/views/business/schedule/certPrint/certList.vue
index a084cc7..9dee20f 100644
--- a/src/views/business/schedule/certPrint/certList.vue
+++ b/src/views/business/schedule/certPrint/certList.vue
@@ -3,6 +3,8 @@
import { getCurrentInstance, ref } from 'vue'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
// import { Row } from 'element-plus/es/components/table-v2/src/components'
+import VuePdfEmbed from 'vue-pdf-embed'
+import * as pdfjsLib from 'pdfjs-dist'
import type { ICerPrintList, ICertPrintSearch } from './cert-interface'
import ApprovalDialogPart from './components/ApprovalDialogPart.vue'
import type { TableColumn } from '@/components/NormalTable/table_interface'
@@ -18,6 +20,7 @@
import { download } from '@/utils/download'
const { proxy } = getCurrentInstance() as any
const $router = useRouter()
+const pdfUrl = ref('')
// 右上角按钮
const menu = ref([]) // 右上角审批状态按钮组合
const active = ref('') // 选中的按钮
@@ -250,7 +253,12 @@
).then(() => {
getPhotoUrl(row.printFileName as string).then((res) => {
const url = res.data
- download(url, row.printFileName as string)
+ console.log(url)
+
+ pdfUrl.value = res.data
+ // pdfjsLib.GlobalWorkerOptions.workerSrc = '/pdf.worker.js'
+ proxy.$refs.pdf.print()
+ // download(url, row.printFileName as string)
})
})
}
@@ -369,6 +377,7 @@
+
+ //pdf预览
+