Compare commits

..

No commits in common. "bf493c49d0e9e07d5cad92b5c4b3ca13038d8bfb" and "5cd1b0d887445e352eff2e621c21a1612e7871dd" have entirely different histories.

11 changed files with 168 additions and 508 deletions

View File

@ -36,7 +36,7 @@
"select2": "^4.1.0-rc.0",
"socket.io-client": "^4.8.1",
"sortablejs": "^1.14.0",
"vue": "3.5.23",
"vue": "3.4.0",
"vue-cropper": "1.1.1",
"vue-plugin-hiprint": "^0.0.60",
"vue-router": "4.2.5",

273
pnpm-lock.yaml generated
View File

@ -10,16 +10,16 @@ importers:
dependencies:
'@element-plus/icons-vue':
specifier: 2.3.1
version: 2.3.1(vue@3.5.23(typescript@5.9.3))
version: 2.3.1(vue@3.4.0(typescript@5.9.3))
'@fingerprintjs/fingerprintjs':
specifier: ^4.6.2
version: 4.6.2
'@vueup/vue-quill':
specifier: 1.2.0
version: 1.2.0(vue@3.5.23(typescript@5.9.3))
version: 1.2.0(vue@3.4.0(typescript@5.9.3))
'@vueuse/core':
specifier: 10.6.1
version: 10.6.1(vue@3.5.23(typescript@5.9.3))
version: 10.6.1(vue@3.4.0(typescript@5.9.3))
axios:
specifier: 0.27.2
version: 0.27.2
@ -34,7 +34,7 @@ importers:
version: 5.4.3
element-plus:
specifier: ^2.11.2
version: 2.11.5(vue@3.5.23(typescript@5.9.3))
version: 2.11.5(vue@3.4.0(typescript@5.9.3))
file-saver:
specifier: 2.0.5
version: 2.0.5
@ -64,7 +64,7 @@ importers:
version: 0.2.0
pinia:
specifier: 2.1.7
version: 2.1.7(typescript@5.9.3)(vue@3.5.23(typescript@5.9.3))
version: 2.1.7(typescript@5.9.3)(vue@3.4.0(typescript@5.9.3))
pinyin-pro:
specifier: ^3.26.0
version: 3.27.0
@ -78,8 +78,8 @@ importers:
specifier: ^1.14.0
version: 1.14.0
vue:
specifier: 3.5.23
version: 3.5.23(typescript@5.9.3)
specifier: 3.4.0
version: 3.4.0(typescript@5.9.3)
vue-cropper:
specifier: 1.1.1
version: 1.1.1
@ -88,7 +88,7 @@ importers:
version: 0.0.60
vue-router:
specifier: 4.2.5
version: 4.2.5(vue@3.5.23(typescript@5.9.3))
version: 4.2.5(vue@3.4.0(typescript@5.9.3))
vue3-print-nb:
specifier: ^0.1.4
version: 0.1.4(typescript@5.9.3)
@ -97,13 +97,13 @@ importers:
version: 0.1.7
vuedraggable:
specifier: ^4.1.0
version: 4.1.0(vue@3.5.23(typescript@5.9.3))
version: 4.1.0(vue@3.4.0(typescript@5.9.3))
vxe-pc-ui:
specifier: ^4.3.2
version: 4.10.3(vue@3.5.23(typescript@5.9.3))
version: 4.10.3(vue@3.4.0(typescript@5.9.3))
vxe-table:
specifier: ^4.9.4
version: 4.17.0(vue@3.5.23(typescript@5.9.3))
version: 4.17.0(vue@3.4.0(typescript@5.9.3))
devDependencies:
'@eslint/js':
specifier: ^9.27.0
@ -119,7 +119,7 @@ importers:
version: 8.46.2(eslint@9.27.0)(typescript@5.9.3)
'@vitejs/plugin-vue':
specifier: 5.0.1
version: 5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.5.23(typescript@5.9.3))
version: 5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0(typescript@5.9.3))
'@vue/compiler-sfc':
specifier: 3.4.0
version: 3.4.0
@ -143,7 +143,7 @@ importers:
version: 5.9.3
unplugin-auto-import:
specifier: 0.17.1
version: 0.17.1(@vueuse/core@10.6.1(vue@3.5.23(typescript@5.9.3)))(rollup@4.34.9)
version: 0.17.1(@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3)))(rollup@4.34.9)
unplugin-vue-setup-extend-plus:
specifier: 1.0.0
version: 1.0.0
@ -166,28 +166,15 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/parser@7.26.9':
resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/parser@7.28.5':
resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/runtime@7.28.3':
resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==}
engines: {node: '>=6.9.0'}
@ -196,10 +183,6 @@ packages:
resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
engines: {node: '>=6.9.0'}
'@babel/types@7.28.5':
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
'@claviska/jquery-minicolors@2.3.6':
resolution: {integrity: sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==}
peerDependencies:
@ -438,9 +421,6 @@ packages:
'@jridgewell/sourcemap-codec@1.5.0':
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@ -690,50 +670,35 @@ packages:
'@vue/compiler-core@3.4.0':
resolution: {integrity: sha512-cw4S15PkNGTKkP9OFFl4wnQoJJk+HqaYBafgrpDnSukiQGpcYJeRpzmqnCVCIkl6V6Eqsv58E0OAdl6b592vuA==}
'@vue/compiler-core@3.5.23':
resolution: {integrity: sha512-nW7THWj5HOp085ROk65LwaoxuzDsjIxr485F4iu63BoxsXoSqKqmsUUoP4A7Gl67DgIgi0zJ8JFgHfvny/74MA==}
'@vue/compiler-dom@3.4.0':
resolution: {integrity: sha512-E957uOhpoE48YjZGWeAoLmNYd3UeU4oIP8kJi8Rcsb9l2tV8Z48Jn07Zgq1aW0v3vuhlmydEKkKKbhLpADHXEA==}
'@vue/compiler-dom@3.5.23':
resolution: {integrity: sha512-AT8RMw0vEzzzO0JU5gY0F6iCzaWUIh/aaRVordzMBKXRpoTllTT4kocHDssByPsvodNCfump/Lkdow2mT/O5KQ==}
'@vue/compiler-sfc@3.4.0':
resolution: {integrity: sha512-PWE0mE2yW7bJS7PmaCrVDEG6KPaDJo0pb4AKnCxJ5lRRDO4IwL/fswBGhCpov+v/c+N/e+hQHpXNwvqU9BtUXg==}
'@vue/compiler-sfc@3.5.23':
resolution: {integrity: sha512-3QTEUo4qg7FtQwaDJa8ou1CUikx5WTtZlY61rRRDu3lK2ZKrGoAGG8mvDgOpDsQ4A1bez9s+WtBB6DS2KuFCPw==}
'@vue/compiler-ssr@3.4.0':
resolution: {integrity: sha512-+oXKy105g9DIYQKDi3Gwung0xqQX5gJHr0GR+Vf7yK/WkNDM6q61ummcKmKAB85EIst8y3vj2PA9z9YU5Oc4DQ==}
'@vue/compiler-ssr@3.5.23':
resolution: {integrity: sha512-Hld2xphbMjXs9Q9WKxPf2EqmE+Rq/FEDnK/wUBtmYq74HCV4XDdSCheAaB823OQXIIFGq9ig/RbAZkF9s4U0Ow==}
'@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
'@vue/reactivity@3.5.23':
resolution: {integrity: sha512-ji5w0qvrPyBmBx5Ldv4QGNsw0phgRreEvjt0iUf1lei2Sm8//9ZAi78uM2ZjsT5gk0YZilLuoRCIMvtuZlHMJw==}
'@vue/reactivity@3.4.0':
resolution: {integrity: sha512-X6BvQjNcgKKHWPQzlRJjZvIu72Kkn8xJSv6VNptqWh8dToMknD0Hch1l4N7llKgVt6Diq4lMeUnErbZFvuGlAA==}
'@vue/runtime-core@3.5.23':
resolution: {integrity: sha512-LMB0S6/G7mFJcpQeQaZrbsthFbWrIX8FVTzu5x9U3Ec8YW5MY1CGAnBBHNj+TPOBu3pIbtPpjrXtcaN04X+aBw==}
'@vue/runtime-core@3.4.0':
resolution: {integrity: sha512-NYrj/JgMMqnSWcIud8lLzDQrBLu+EVEeQ56QE9DYJeKG2eFrnQy8o/h57R9nCprafHs0uImKL3xsdXjHseYVxw==}
'@vue/runtime-dom@3.5.23':
resolution: {integrity: sha512-r/PYc8W9THzEL0UExpTkV+d31zO+Jid/RMZIDG6aS/NekOEUHuCJkJgftySWZw7JTJO/+q9Kxkg8p+i7Q7Q+ew==}
'@vue/runtime-dom@3.4.0':
resolution: {integrity: sha512-1ZoHEsA5l77qbx2F+SWo/hQdBksPuOmww1t/jznidDG+xMB/iidafEFvo2ZTtZii0JfTIrlDhjshfYUvQC17wQ==}
'@vue/server-renderer@3.5.23':
resolution: {integrity: sha512-NiWZsNCsXA20/VufcrW5u+Trt/PyFlpMmxaB2KERYM8eZgUoKUjXxJQb9ypq+LZ0Sp3XHJGNBR8DkhRnkKAMUw==}
'@vue/server-renderer@3.4.0':
resolution: {integrity: sha512-GuOVCyLDlWPu8nKo5AUxb8B+iB/Ik4I1WwqAlBqf5+y48z6D6rvKshp7KR3cJea+pte1tdTsb0+Ja82KizMZOw==}
peerDependencies:
vue: 3.5.23
vue: 3.4.0
'@vue/shared@3.4.0':
resolution: {integrity: sha512-Nhh3ed3G1R6HDAWiG6YYFt0Zmq/To6u5vjzwa9TIquGheCXPY6nEdIAO8ZdlwXsWqC2yNLj700FOvShpYt5CEA==}
'@vue/shared@3.5.23':
resolution: {integrity: sha512-0YZ1DYuC5o/YJPf6pFdt2KYxVGDxkDbH/1NYJnVJWUkzr8ituBEmFVQRNX2gCaAsFEjEDnLkWpgqlZA7htgS/g==}
'@vueup/vue-quill@1.2.0':
resolution: {integrity: sha512-kd5QPSHMDpycklojPXno2Kw2JSiKMYduKYQckTm1RJoVDA557MnyUXgcuuDpry4HY/Rny9nGNcK+m3AHk94wag==}
peerDependencies:
@ -1896,9 +1861,6 @@ packages:
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
map-cache@0.2.2:
resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
engines: {node: '>=0.10.0'}
@ -1984,11 +1946,6 @@ packages:
resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
engines: {node: '>=10'}
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@ -2162,10 +2119,6 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.6:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
posthtml-parser@0.2.1:
resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==}
@ -2714,8 +2667,8 @@ packages:
vue3-select2-component@0.1.7:
resolution: {integrity: sha512-8UPZmFl02I47XwW+j8ICmHyAND8wfbavlvMrqh10wwdSVER1aF2kI9XCmfIrNlVQvxSbvc0mJjWQAHHSCW9dkw==}
vue@3.5.23:
resolution: {integrity: sha512-CfvZv/vI52xUhumUvHtD6iFIS78nGWfX4IJnHfBGhpqMI0CwDq2YEngXOeaBFMRmiArcqczuVrLxurvesTYT9w==}
vue@3.4.0:
resolution: {integrity: sha512-iTE9Ve/7DO/H39+gXHrNkRdnh1jDwPe/fap4brbPKkp1APMkS03OiZ+UY0dwpqtRX0iPWQTkh8Fu3hKgLtaxfA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@ -2805,20 +2758,12 @@ snapshots:
'@babel/helper-string-parser@7.25.9': {}
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-validator-identifier@7.25.9': {}
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/parser@7.26.9':
dependencies:
'@babel/types': 7.26.9
'@babel/parser@7.28.5':
dependencies:
'@babel/types': 7.28.5
'@babel/runtime@7.28.3': {}
'@babel/types@7.26.9':
@ -2826,11 +2771,6 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/types@7.28.5':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
'@claviska/jquery-minicolors@2.3.6(jquery@3.7.1)':
dependencies:
jquery: 3.7.1
@ -2842,13 +2782,13 @@ snapshots:
is-absolute: 1.0.0
is-negated-glob: 1.0.0
'@element-plus/icons-vue@2.3.1(vue@3.5.23(typescript@5.9.3))':
'@element-plus/icons-vue@2.3.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
'@element-plus/icons-vue@2.3.2(vue@3.5.23(typescript@5.9.3))':
'@element-plus/icons-vue@2.3.2(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
'@esbuild/aix-ppc64@0.19.12':
optional: true
@ -3002,8 +2942,6 @@ snapshots:
'@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/sourcemap-codec@1.5.5': {}
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@ -3125,7 +3063,7 @@ snapshots:
'@types/vue@2.0.0(typescript@5.9.3)':
dependencies:
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- typescript
@ -3226,10 +3164,10 @@ snapshots:
'@typescript-eslint/types': 8.46.2
eslint-visitor-keys: 4.2.1
'@vitejs/plugin-vue@5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.5.23(typescript@5.9.3))':
'@vitejs/plugin-vue@5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0(typescript@5.9.3))':
dependencies:
vite: 5.0.4(@types/node@22.13.9)(sass@1.69.5)
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
'@vue/compiler-core@3.4.0':
dependencies:
@ -3239,24 +3177,11 @@ snapshots:
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-core@3.5.23':
dependencies:
'@babel/parser': 7.28.5
'@vue/shared': 3.5.23
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-dom@3.4.0':
dependencies:
'@vue/compiler-core': 3.4.0
'@vue/shared': 3.4.0
'@vue/compiler-dom@3.5.23':
dependencies:
'@vue/compiler-core': 3.5.23
'@vue/shared': 3.5.23
'@vue/compiler-sfc@3.4.0':
dependencies:
'@babel/parser': 7.26.9
@ -3269,78 +3194,58 @@ snapshots:
postcss: 8.5.3
source-map-js: 1.2.1
'@vue/compiler-sfc@3.5.23':
dependencies:
'@babel/parser': 7.28.5
'@vue/compiler-core': 3.5.23
'@vue/compiler-dom': 3.5.23
'@vue/compiler-ssr': 3.5.23
'@vue/shared': 3.5.23
estree-walker: 2.0.2
magic-string: 0.30.21
postcss: 8.5.6
source-map-js: 1.2.1
'@vue/compiler-ssr@3.4.0':
dependencies:
'@vue/compiler-dom': 3.4.0
'@vue/shared': 3.4.0
'@vue/compiler-ssr@3.5.23':
dependencies:
'@vue/compiler-dom': 3.5.23
'@vue/shared': 3.5.23
'@vue/devtools-api@6.6.4': {}
'@vue/reactivity@3.5.23':
'@vue/reactivity@3.4.0':
dependencies:
'@vue/shared': 3.5.23
'@vue/shared': 3.4.0
'@vue/runtime-core@3.5.23':
'@vue/runtime-core@3.4.0':
dependencies:
'@vue/reactivity': 3.5.23
'@vue/shared': 3.5.23
'@vue/reactivity': 3.4.0
'@vue/shared': 3.4.0
'@vue/runtime-dom@3.5.23':
'@vue/runtime-dom@3.4.0':
dependencies:
'@vue/reactivity': 3.5.23
'@vue/runtime-core': 3.5.23
'@vue/shared': 3.5.23
'@vue/runtime-core': 3.4.0
'@vue/shared': 3.4.0
csstype: 3.1.3
'@vue/server-renderer@3.5.23(vue@3.5.23(typescript@5.9.3))':
'@vue/server-renderer@3.4.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@vue/compiler-ssr': 3.5.23
'@vue/shared': 3.5.23
vue: 3.5.23(typescript@5.9.3)
'@vue/compiler-ssr': 3.4.0
'@vue/shared': 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@vue/shared@3.4.0': {}
'@vue/shared@3.5.23': {}
'@vueup/vue-quill@1.2.0(vue@3.5.23(typescript@5.9.3))':
'@vueup/vue-quill@1.2.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
quill: 1.3.7
quill-delta: 4.2.2
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
'@vueuse/core@10.6.1(vue@3.5.23(typescript@5.9.3))':
'@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.6.1
'@vueuse/shared': 10.6.1(vue@3.5.23(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.5.23(typescript@5.9.3))
'@vueuse/shared': 10.6.1(vue@3.4.0(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/core@9.13.0(vue@3.5.23(typescript@5.9.3))':
'@vueuse/core@9.13.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
'@vueuse/shared': 9.13.0(vue@3.5.23(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.5.23(typescript@5.9.3))
'@vueuse/shared': 9.13.0(vue@3.4.0(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@ -3349,24 +3254,24 @@ snapshots:
'@vueuse/metadata@9.13.0': {}
'@vueuse/shared@10.6.1(vue@3.5.23(typescript@5.9.3))':
'@vueuse/shared@10.6.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue-demi: 0.14.10(vue@3.5.23(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/shared@9.13.0(vue@3.5.23(typescript@5.9.3))':
'@vueuse/shared@9.13.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue-demi: 0.14.10(vue@3.5.23(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vxe-ui/core@4.2.12(vue@3.5.23(typescript@5.9.3))':
'@vxe-ui/core@4.2.12(vue@3.4.0(typescript@5.9.3))':
dependencies:
dom-zindex: 1.0.6
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
xe-utils: 3.7.9
'@wtto00/html2canvas@1.4.3':
@ -3805,15 +3710,15 @@ snapshots:
minimatch: 9.0.1
semver: 7.7.1
element-plus@2.11.5(vue@3.5.23(typescript@5.9.3)):
element-plus@2.11.5(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@ctrl/tinycolor': 3.6.1
'@element-plus/icons-vue': 2.3.2(vue@3.5.23(typescript@5.9.3))
'@element-plus/icons-vue': 2.3.2(vue@3.4.0(typescript@5.9.3))
'@floating-ui/dom': 1.6.13
'@popperjs/core': '@sxzz/popperjs-es@2.11.7'
'@types/lodash': 4.17.20
'@types/lodash-es': 4.17.12
'@vueuse/core': 9.13.0(vue@3.5.23(typescript@5.9.3))
'@vueuse/core': 9.13.0(vue@3.4.0(typescript@5.9.3))
async-validator: 4.2.5
dayjs: 1.11.18
lodash: 4.17.21
@ -3821,7 +3726,7 @@ snapshots:
lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21)
memoize-one: 6.0.0
normalize-wheel-es: 1.2.0
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- '@vue/composition-api'
@ -4646,10 +4551,6 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
map-cache@0.2.2: {}
map-visit@1.0.0:
@ -4741,8 +4642,6 @@ snapshots:
arrify: 2.0.1
minimatch: 3.1.2
nanoid@3.3.11: {}
nanoid@3.3.8: {}
nanomatch@1.2.13:
@ -4867,11 +4766,11 @@ snapshots:
picomatch@4.0.2: {}
pinia@2.1.7(typescript@5.9.3)(vue@3.5.23(typescript@5.9.3)):
pinia@2.1.7(typescript@5.9.3)(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.23(typescript@5.9.3)
vue-demi: 0.14.10(vue@3.5.23(typescript@5.9.3))
vue: 3.4.0(typescript@5.9.3)
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
optionalDependencies:
typescript: 5.9.3
@ -4915,12 +4814,6 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
postcss@8.5.6:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
posthtml-parser@0.2.1:
dependencies:
htmlparser2: 3.10.1
@ -5484,7 +5377,7 @@ snapshots:
universalify@2.0.1: {}
unplugin-auto-import@0.17.1(@vueuse/core@10.6.1(vue@3.5.23(typescript@5.9.3)))(rollup@4.34.9):
unplugin-auto-import@0.17.1(@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3)))(rollup@4.34.9):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.4(rollup@4.34.9)
@ -5495,7 +5388,7 @@ snapshots:
unimport: 3.14.6(rollup@4.34.9)
unplugin: 1.16.1
optionalDependencies:
'@vueuse/core': 10.6.1(vue@3.5.23(typescript@5.9.3))
'@vueuse/core': 10.6.1(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- rollup
@ -5566,9 +5459,9 @@ snapshots:
vue-cropper@1.1.1: {}
vue-demi@0.14.10(vue@3.5.23(typescript@5.9.3)):
vue-demi@0.14.10(vue@3.4.0(typescript@5.9.3)):
dependencies:
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
vue-eslint-parser@10.1.3(eslint@9.27.0):
dependencies:
@ -5600,14 +5493,14 @@ snapshots:
- supports-color
- utf-8-validate
vue-router@4.2.5(vue@3.5.23(typescript@5.9.3)):
vue-router@4.2.5(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
vue3-print-nb@0.1.4(typescript@5.9.3):
dependencies:
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- typescript
@ -5616,30 +5509,30 @@ snapshots:
jquery: 3.7.1
select2: 4.0.13
vue@3.5.23(typescript@5.9.3):
vue@3.4.0(typescript@5.9.3):
dependencies:
'@vue/compiler-dom': 3.5.23
'@vue/compiler-sfc': 3.5.23
'@vue/runtime-dom': 3.5.23
'@vue/server-renderer': 3.5.23(vue@3.5.23(typescript@5.9.3))
'@vue/shared': 3.5.23
'@vue/compiler-dom': 3.4.0
'@vue/compiler-sfc': 3.4.0
'@vue/runtime-dom': 3.4.0
'@vue/server-renderer': 3.4.0(vue@3.4.0(typescript@5.9.3))
'@vue/shared': 3.4.0
optionalDependencies:
typescript: 5.9.3
vuedraggable@4.1.0(vue@3.5.23(typescript@5.9.3)):
vuedraggable@4.1.0(vue@3.4.0(typescript@5.9.3)):
dependencies:
sortablejs: 1.14.0
vue: 3.5.23(typescript@5.9.3)
vue: 3.4.0(typescript@5.9.3)
vxe-pc-ui@4.10.3(vue@3.5.23(typescript@5.9.3)):
vxe-pc-ui@4.10.3(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vxe-ui/core': 4.2.12(vue@3.5.23(typescript@5.9.3))
'@vxe-ui/core': 4.2.12(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- vue
vxe-table@4.17.0(vue@3.5.23(typescript@5.9.3)):
vxe-table@4.17.0(vue@3.4.0(typescript@5.9.3)):
dependencies:
vxe-pc-ui: 4.10.3(vue@3.5.23(typescript@5.9.3))
vxe-pc-ui: 4.10.3(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- vue

View File

@ -34,34 +34,3 @@ export function queryXmInfoNew(xmgl: any){
}
})
}
//获取危急值特定判断条件数据
export function queryXmAlarmdetailNew(xmid:number){
return request({
url: '/xminfo/queryXmAlarmdetailNew',
method: 'get',
params: {xmid}
})
}
//新增危急值特定判断条件数据
export function addXmAlarmdetailNew(query:any){
return request({
url: '/xminfo/addXmAlarmdetailNew',
method: 'post',
data: query
})
}
//新增危急值特定判断条件数据
export function delXmAlarmdetailNew(xmid:number,seq:number){
return request({
url: '/xminfo/delXmAlarmdetailNew',
method: 'get',
params: {
xmid,
seq
}
})
}

View File

@ -24,7 +24,6 @@ export const getDictData = async (...args: string[]) => {
if(dictRefs.XMGL != undefined) dictData.value.XMGL = toRaw(dictRefs.XMGL.value) || []
if(dictRefs.ITEMCLASS != undefined) dictData.value.ITEMCLASS = toRaw(dictRefs.ITEMCLASS.value) || []
if(dictRefs.YQDL != undefined) dictData.value.YQDL = toRaw(dictRefs.YQDL.value) || []
if(dictRefs.VA != undefined) dictData.value.VA = toRaw(dictRefs.VA.value) || []
}
//字典数据格式化方法

19
src/types/Object.d.ts vendored
View File

@ -78,14 +78,6 @@ export class XmInfoNew {
redosx?: string;
}
export class XmAlarmdetailNew {
xmid: number;
seq: number;
samplecondition: string;
resultcondition: string;
}
// 定义菜单项的类型
export interface ContextMenuItem {
// 菜单项类型:普通项或分隔线
@ -103,14 +95,3 @@ export interface ContextMenuItem {
// 菜单项的子级菜单项
props?: Record<string, any>;
}
export class XmValNew {
xmid: number;
xmdh?: string;
qz: string;
srm?: string;
xh?: number;
jgbz?: string;
}

View File

@ -75,7 +75,7 @@
<el-col :span="10" :xs="24">
<tabView :tabList="tabList" v-model:activeTab="activeTab" />
<KeepAlive>
<component class="tabDiv" :is="activeTabN" :dataList="tabDataList"></component>
<component :is="activeTabN" :dataList="tabDataList"></component>
</KeepAlive>
</el-col>
</el-row>

View File

@ -125,7 +125,7 @@
<el-form-item label="危急值">
<el-input placeholder="上限极值" v-model="formData.hlimt"></el-input>
<el-input placeholder="下限极值" v-model="formData.llimit"></el-input>
<el-button type="primary" @click="conditionClick">特定条件</el-button>
<el-button type="primary">特定条件</el-button>
</el-form-item>
<el-form-item label="复查">
<el-input placeholder="上限极值" v-model="formData.redoxx"></el-input>
@ -151,8 +151,7 @@
</el-form>
<MultiRef :refData="formData.dyckz" v-model:dialog-table-visible="mulitDialogTableVisible" @closeWithReturn="closeWithReturnMultiRef" />
<CalcGuilde v-model="calcDialogTableVisible" :form-data="formData" :text="formData.jsgs" @confirm="handleDialogConfirm"/>
<Condition v-model="conditionTabVisible" :form-data="formData"/>
<CalcGuilde v-model="calcDialogTableVisible" :xmgl="formData.xmgl" :form-data="formData" @confirm="handleDialogConfirm"/>
</div>
</template>
@ -162,7 +161,6 @@ import { formatDict,getDictData ,dictData} from '@/hooks';
import MultiRef from './child/MultiRef.vue';
import CalcGuilde from './child/CalcGuilde.vue';
import SelectTable from '@/components/SelectTable/index.vue'
import Condition from './child/Condition.vue';
const props = defineProps({
dataList: {
@ -171,12 +169,10 @@ const props = defineProps({
}
});
const formRef = ref();
const formData = ref<any>({});
const mulitDialogTableVisible = ref(false)
const calcDialogTableVisible = ref(false)
const conditionTabVisible = ref(false)
const xmglFields = ref([
{ prop: 'value', label: '代号', width: 80, enablePinyinSearch: true },
{ prop: 'label', label: '名称', enablePinyinSearch: true },
@ -249,17 +245,15 @@ const ygxbCheck = computed({
watch(
() => props.dataList,
(newVal:any) => {
(newVal) => {
formData.value = newVal;
}
);
//多行参考值
const multiRefClick = () => {
if(formData.value.dyckz){
mulitDialogTableVisible.value = true
}
}
const closeWithReturnMultiRef = (val: string) => {
formData.value.dyckz = val;
@ -271,21 +265,10 @@ const handleDialogConfirm = (val:string) => {
calcDialogTableVisible.value = false
}
//计算向导
const calcGuildeClick = () => {
if(formData.value.jsxm){
calcDialogTableVisible.value = true
}
}
//危急值特定条件
const conditionClick = () => {
if(formData.value.xmid){
conditionTabVisible.value = true
}
}
onMounted(() => {
getDictData('XMGL');
})

View File

@ -1,9 +1,8 @@
<template>
<!-- 计算项目表达式生成向导 -->
<el-dialog :model-value="visible" @update:model-value="handleVisibleChange" title="计算项目表达式生成向导" width="600px"
@close="onClose" @open="onOpen">
<el-dialog :model-value="visible" @update:model-value="handleVisibleChange" title="计算项目表达式生成向导" width="600px" @close="onClose">
<el-row class="input-text">
<el-input type="textarea" v-model="inputText"></el-input>
<el-input type="textarea" v-model="formData.jsgs"></el-input>
</el-row>
<el-row>
<el-col :span="12">
@ -41,14 +40,18 @@ import CustomTable from '@/components/elTable/index.vue'
import { queryXmInfoNew } from '@/api/liswork/labItem/labItemApi'
const props = defineProps({
xmgl:{
type: String,
},
text: {
type: String,
},
formData:{
type: Object,
default: {}
}
})
let visible = ref<boolean>()
const tableData = ref()
const inputText = ref('')
@ -69,17 +72,6 @@ const tableConfig = ref(
}
)
//向外暴露数据
defineExpose({inputText})
watch(
() => props.formData.jsgs, // 监听的目标:formData.jsgs
(newVal:any) => {
inputText.value = newVal // 当新值变化时,更新 inputText
},
{ immediate: true } // 立即执行一次(确保初始化时也能同步)
)
const handleColumnDragEnd = (newColumns: any) => {
columns.value = newColumns.columns
}
@ -142,12 +134,16 @@ const bClickAge = () => {
inputText.value += '[AGE]'
}
const onOpen = async () => {
const res = await queryXmInfoNew(props.formData.xmgl);
const init = async () => {
const res = await queryXmInfoNew(props.xmgl);
tableData.value = res.data
//inputText.value = props.text
}
onMounted(()=>{
init();
})
</script>
<style scoped lang="scss">

View File

@ -1,35 +1,24 @@
<template>
<!-- 危急值特定判断条件 -->
<el-dialog title="危急值特定判断条件" width="700px" v-model="visible" @open="onOpen">
<el-row class="row-up">
<div class="top-button">
<el-button type="primary" @click="bClickAdd">增加</el-button>
<el-button type="primary" @click="bClickDel">删除</el-button>
<el-button type="primary" @click="bClickSave">保存</el-button>
</div>
<CustomTable ref="tableRefs" :data="tableDataUp" :columns="columnsUp" :config="tableConfigUp"
<!-- 特定审核条件 -->
<el-row>
<el-button type="" @click="">增加</el-button>
<el-button type="" @click="">删除</el-button>
<CustomTable ref="tableRefs" :data="tableDataUp" :columns="columnsUp" :config="tableConfig"
@row-click="rowHandleUp" :enableColumnDrag="true"
@column-drag-end="handleColumnDragEnd">
<template #samplecondition="{ row }">
<el-input v-model="row.samplecondition" class="full-width-input"></el-input>
</template>
<template #resultcondition="{ row }">
<el-input v-model="row.resultcondition" class="full-width-input"></el-input>
</template>
</CustomTable>
@column-drag-end="handleColumnDragEnd"/>
</el-row>
<el-row class="row-down">
<el-row>
<el-col :span="12">
<CustomTable ref="tableRefs" :data="tableDataDown" :columns="columnsDown" :config="tableConfigDown"
<CustomTable ref="tableRefs" :data="tableDataDown" :columns="columnsDown" :config="tableConfig"
@row-click="rowHandleDown" :enableColumnDrag="true"
@column-drag-end="handleColumnDragEnd"/>
</el-col>
<el-col :span="12" class="rigth-col">
<el-button type="primary" @click="bClickDept" size="small">科室</el-button>
<el-button type="primary" @click="bClickDiag" size="small">诊断</el-button>
<el-button type="primary" @click="bClickPre" size="small">初报</el-button>
<el-button type="primary" @click="bClickResult" size="small">结果</el-button>
<el-button type="primary" @click="bClickSample" size="small">样本状态</el-button>
<el-col :span="12">
<el-button type="" @click="">科室</el-button>
<el-button type="" @click="">诊断</el-button>
<el-button type="" @click="">初报</el-button>
<el-button type="" @click="">结果</el-button>
<el-button type="" @click="">样本状态</el-button>
<h4>1公式举例:科室诊断条件:[科室] = '血液科' or [诊断] ='白血病' 当前结果判断条件:[结果] &gt; 20 or [结果] &lt;2 or [结果] ='阳性'</h4>
<h4>2公式举例:科室诊断条件(其他项目代号如):[WBC] = '阳性' or [WBC] &gt; 20 or [WBC] &lt;20 当前结果判断条件: [结果] &gt; 20 or [结果] &lt;2</h4>
<h4>3公式举例:只发一次危急值病人条件:[初报] = 'brdh' and [初报] = 'brxm' 当前结果判断条件:[结果] &gt; 20 or [结果] &lt;2 or [结果] ='阳性'</h4>
@ -37,168 +26,51 @@
<h4>注意科室用中文,结果如果是字符型用单引号引起来</h4>
</el-col>
</el-row>
</el-dialog>
</template>
<script setup lang="ts">
import CustomTable from '@/components/elTable/index.vue'
import { queryXmInfoNew,queryXmAlarmdetailNew,addXmAlarmdetailNew,delXmAlarmdetailNew } from '@/api/liswork/labItem/labItemApi'
import {XmAlarmdetailNew} from '@/types'
import { ElMessageBox,ElMessage } from 'element-plus'
const columnsUp = ref([
{ prop: 'seq', label: '序号', align: 'center', visible: true, width: 50 },
{ prop: 'samplecondition', label: '科室或诊断条件', align: 'center', visible: true, slot: 'samplecondition', width: 300 },
{ prop: 'resultcondition', label: '结果判断条件', align: 'center', visible: true, slot: 'resultcondition', width: 300 }
{ prop: 'xmdh', label: '项目代号', align: 'center', visible: true, width: 100 },
{ prop: 'xmmc', label: '项目名称', align: 'center', visible: true, width: 100 }
])
const columnsDown = ref([
{ prop: 'xmdh', label: '项目代号', align: 'center', visible: true, width: 100 },
{ prop: 'xmmc', label: '项目名称', align: 'center', visible: true, width: 220 }
{ prop: 'xmmc', label: '项目名称', align: 'center', visible: true, width: 100 }
])
const tableDataUp = ref<Array<XmAlarmdetailNew>>([])
const tableDataUp = ref()
const tableDataDown = ref()
const selectRowUp = ref<XmAlarmdetailNew>()
const visible = defineModel()
const props = defineProps({
formData:{
type: Object,
default: {}
}
})
// 表格配置
const tableConfigUp = ref(
const tableConfig = ref(
{
// stripe: true, // 斑马纹
border: true, // 边框
height: '200', // 高度
height: '', // 高度
highlightCurrentRow: true, // 高亮当前行
fit: true
}
)
const tableConfigDown = ref(
{
// stripe: true, // 斑马纹
border: true, // 边框
height: '400', // 高度
highlightCurrentRow: true, // 高亮当前行
fit: true
}
)
//序号最大值
const maxXh = computed(() => {
return tableDataUp.value.length > 0 ? Math.max(...tableDataUp.value.map((item: { seq: number }) => item.seq)) : 0;
});
const handleColumnDragEnd = (newColumns: any) => {
columnsUp.value = newColumns.columns
columnsDown.value = newColumns.columns
}
const rowHandleUp = (row:any) => {
selectRowUp.value = row
}
const rowHandleDown = (row:any) => {
if (selectRowUp.value) {
selectRowUp.value.samplecondition += `[${row.xmdh}]`
}
}
const onOpen = async () => {
let res = await queryXmInfoNew(props.formData.xmgl);
tableDataDown.value = res.data;
res = await queryXmAlarmdetailNew(props.formData.xmid);
tableDataUp.value = res.data;
}
const bClickAdd = () => {
const newData: XmAlarmdetailNew = {
xmid: props.formData.xmid,
seq: maxXh.value + 1,
samplecondition: '',
resultcondition: ''
}
tableDataUp.value.push(newData);
}
const bClickDel = async () => {
if(selectRowUp.value){
await ElMessageBox.confirm('是否要删除选中的数据?','Warning',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
const xmid = selectRowUp.value.xmid
const seq = selectRowUp.value.seq
await delXmAlarmdetailNew(xmid,seq)
await queryXmAlarmdetailNew(props.formData.xmid);
ElMessage.success('删除成功!')
const rowHandleUp = () => {
}
}
const bClickSave = async() => {
await addXmAlarmdetailNew(tableDataUp.value);
await queryXmAlarmdetailNew(props.formData.xmid);
ElMessage.success('保存成功!')
}
const bClickDept = () => {
if(selectRowUp.value){
selectRowUp.value.samplecondition += '[科室]'
}
}
const bClickDiag = () => {
if(selectRowUp.value){
selectRowUp.value.samplecondition += '[诊断]'
}
}
const bClickPre = () => {
if(selectRowUp.value){
selectRowUp.value.samplecondition += '[初报]'
}
}
//结果
const bClickResult = () => {
if(selectRowUp.value){
selectRowUp.value.resultcondition += '[结果]'
}
const rowHandleDown = () => {
}
const bClickSample = () => {
if(selectRowUp.value){
selectRowUp.value.samplecondition += '[样本状态]'
}
}
</script>
<style scoped lang="scss">
.row-up {
margin-bottom: 5px;
}
.top-button {
margin-bottom: 5px;
}
.row-down {
.rigth-col {
padding-left: 10px;
}
}
</style>

View File

@ -2,41 +2,31 @@
<template>
<div>
<div class="modifyClass">
<el-button type="primary" @click="bClickAdd">增加</el-button>
<el-button type="primary" @click="bClickDel">删除</el-button>
<el-button type="primary" @click="">增加</el-button>
<el-button type="primary" @click="">删除</el-button>
</div>
<CustomTable ref="tableRef" :data="dataList" :columns="columns" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd"
:config="tableConfig">
<template #qz>
<el-select v-model="selectValue" clearable>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</CustomTable>
:config="tableConfig"/>
</div>
</template>
<script setup lang="ts">
import CustomTable from '@/components/elTable/index.vue'
import { dictData,getDictData } from '@/hooks';
import { XmValNew } from '@/types';
import { ref } from 'vue';
const props = defineProps({
formData: {
type: Object,
default: {}
}
// 是否显示
// visible: {
// type: Boolean,
// required: true,
// default: false
// }
});
const tableRef = ref<any>(null);
const dataList = ref();
const columns = ref([
{ prop: 'qz', label: '取值', visible: true, align: 'center', slot:'qz', width: 200 },
{ prop: 'qz', label: '取值', visible: true, align: 'center', width: 200 },
{ prop: 'srm', label: '快速输入码', visible: true, align: 'center', width: 100 },
{ prop: 'jgbz', label: '结果标志', visible: true, align: 'center', width: 100 }
]);
@ -46,8 +36,7 @@ const tableConfig = ref({
highlightCurrentRow: true, // 高亮当前行
// cellStyle: cellStyleHd
})
const options = ref()
const selectValue = ref()
//退拽属性
const handleColumnDragEnd = (data: any) => {
@ -55,28 +44,6 @@ const handleColumnDragEnd = (data: any) => {
columns.value = data.columns;
}
const init = () => {
options.value = {...dictData.value}
}
const bClickAdd = () => {
const newData: XmValNew = {
xmid: props.formData.xmid,
qz: ''
}
dataList.value.push(newData);
}
const bClickDel = () => {
}
onMounted(()=>{
//默认取值
getDictData('VA')
init()
})
</script>

View File

@ -4,8 +4,8 @@
<div>
<span>筛选:</span><input v-model="yq" style="width: 240px;" @change="handInputChange">
</div>
<!-- <CustomTable ref="tableRef" :data="yqList" :columns="columns" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd"
:config="tableConfig"/> -->
<CustomTable ref="tableRef" :data="yqList" :columns="columns" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd"
:config="tableConfig"/>
</div>
</template>
@ -13,7 +13,7 @@
<script setup lang="ts">
import CustomTable from '@/components/elTable/index.vue'
import { LabInstr } from '@/types';
import { ref } from 'vue'
import { ref } from 'vue';
const props = defineProps({
// 是否显示
@ -43,18 +43,18 @@ const tableConfig = ref({
//退拽属性
// const handleColumnDragEnd = (data: any) => {
// // 更新列配置
// columns.value = data.columns;
// }
const handleColumnDragEnd = (data: any) => {
// 更新列配置
columns.value = data.columns;
}
const handInputChange = () => {
// yqList.value = yqList.value.filter(item => {
// return item.yq.includes(yq.value) || item.yqmc.includes(yq.value);
// });
// if (yq.value === '') {
// yqList.value = props.dataList;
// }
yqList.value = yqList.value.filter(item => {
return item.yq.includes(yq.value) || item.yqmc.includes(yq.value);
});
if (yq.value === '') {
yqList.value = props.dataList;
}
}
onMounted(() =>{