Explorar o código

bug-64 角色保存存储半选状态的节点

cc12458 hai 10 meses
pai
achega
05683bbc88
Modificáronse 4 ficheiros con 182 adicións e 30 borrados
  1. 1 1
      package.json
  2. 173 28
      pnpm-lock.yaml
  3. 5 1
      src/components/RoleEdit.vue
  4. 3 0
      src/model/system.model.ts

+ 1 - 1
package.json

@@ -33,7 +33,7 @@
     "vue-router": "^4.3.3",
     "vue-router": "^4.3.3",
     "vue-virtual-scroller": "2.0.0-beta.8",
     "vue-virtual-scroller": "2.0.0-beta.8",
     "vue3-slider": "^1.10.1",
     "vue3-slider": "^1.10.1",
-    "vxe-pc-ui": "^4.0.91",
+    "vxe-pc-ui": "^4.6.42",
     "vxe-table": "^4.7.62"
     "vxe-table": "^4.7.62"
   },
   },
   "devDependencies": {
   "devDependencies": {

+ 173 - 28
pnpm-lock.yaml

@@ -35,6 +35,9 @@ importers:
       echarts:
       echarts:
         specifier: ^5.5.1
         specifier: ^5.5.1
         version: 5.6.0
         version: 5.6.0
+      element-plus:
+        specifier: ^2.9.10
+        version: 2.10.2(vue@3.5.13(typescript@5.4.5))
       pinia:
       pinia:
         specifier: ^2.1.7
         specifier: ^2.1.7
         version: 2.3.1(typescript@5.4.5)(vue@3.5.13(typescript@5.4.5))
         version: 2.3.1(typescript@5.4.5)(vue@3.5.13(typescript@5.4.5))
@@ -53,15 +56,21 @@ importers:
       vue-echarts:
       vue-echarts:
         specifier: ^7.0.2
         specifier: ^7.0.2
         version: 7.0.3(@vue/runtime-core@3.5.13)(echarts@5.6.0)(vue@3.5.13(typescript@5.4.5))
         version: 7.0.3(@vue/runtime-core@3.5.13)(echarts@5.6.0)(vue@3.5.13(typescript@5.4.5))
+      vue-range-component:
+        specifier: ^1.0.3
+        version: 1.0.3
       vue-router:
       vue-router:
         specifier: ^4.3.3
         specifier: ^4.3.3
         version: 4.5.0(vue@3.5.13(typescript@5.4.5))
         version: 4.5.0(vue@3.5.13(typescript@5.4.5))
       vue-virtual-scroller:
       vue-virtual-scroller:
         specifier: 2.0.0-beta.8
         specifier: 2.0.0-beta.8
         version: 2.0.0-beta.8(vue@3.5.13(typescript@5.4.5))
         version: 2.0.0-beta.8(vue@3.5.13(typescript@5.4.5))
+      vue3-slider:
+        specifier: ^1.10.1
+        version: 1.10.1(vue@3.5.13(typescript@5.4.5))
       vxe-pc-ui:
       vxe-pc-ui:
-        specifier: ^4.0.91
-        version: 4.5.10(vue@3.5.13(typescript@5.4.5))
+        specifier: ^4.6.42
+        version: 4.6.42(vue@3.5.13(typescript@5.4.5))
       vxe-table:
       vxe-table:
         specifier: ^4.7.62
         specifier: ^4.7.62
         version: 4.12.5(vue@3.5.13(typescript@5.4.5))
         version: 4.12.5(vue@3.5.13(typescript@5.4.5))
@@ -341,6 +350,11 @@ packages:
     resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
     resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
 
 
+  '@element-plus/icons-vue@2.3.1':
+    resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==}
+    peerDependencies:
+      vue: ^3.2.0
+
   '@emotion/hash@0.9.2':
   '@emotion/hash@0.9.2':
     resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
     resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
 
 
@@ -797,6 +811,15 @@ packages:
     resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
     resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 
 
+  '@floating-ui/core@1.7.2':
+    resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==}
+
+  '@floating-ui/dom@1.7.2':
+    resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==}
+
+  '@floating-ui/utils@0.2.10':
+    resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+
   '@humanwhocodes/config-array@0.13.0':
   '@humanwhocodes/config-array@0.13.0':
     resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
     resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
     engines: {node: '>=10.10.0'}
     engines: {node: '>=10.10.0'}
@@ -878,42 +901,36 @@ packages:
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [arm]
     cpu: [arm]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@parcel/watcher-linux-arm-musl@2.5.1':
   '@parcel/watcher-linux-arm-musl@2.5.1':
     resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
     resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [arm]
     cpu: [arm]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@parcel/watcher-linux-arm64-glibc@2.5.1':
   '@parcel/watcher-linux-arm64-glibc@2.5.1':
     resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
     resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [arm64]
     cpu: [arm64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@parcel/watcher-linux-arm64-musl@2.5.1':
   '@parcel/watcher-linux-arm64-musl@2.5.1':
     resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
     resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [arm64]
     cpu: [arm64]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@parcel/watcher-linux-x64-glibc@2.5.1':
   '@parcel/watcher-linux-x64-glibc@2.5.1':
     resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
     resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [x64]
     cpu: [x64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@parcel/watcher-linux-x64-musl@2.5.1':
   '@parcel/watcher-linux-x64-musl@2.5.1':
     resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
     resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
     engines: {node: '>= 10.0.0'}
     engines: {node: '>= 10.0.0'}
     cpu: [x64]
     cpu: [x64]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@parcel/watcher-win32-arm64@2.5.1':
   '@parcel/watcher-win32-arm64@2.5.1':
     resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
     resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
@@ -987,67 +1004,56 @@ packages:
     resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==}
     resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==}
     cpu: [arm]
     cpu: [arm]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-arm-musleabihf@4.38.0':
   '@rollup/rollup-linux-arm-musleabihf@4.38.0':
     resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==}
     resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==}
     cpu: [arm]
     cpu: [arm]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@rollup/rollup-linux-arm64-gnu@4.38.0':
   '@rollup/rollup-linux-arm64-gnu@4.38.0':
     resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==}
     resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==}
     cpu: [arm64]
     cpu: [arm64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-arm64-musl@4.38.0':
   '@rollup/rollup-linux-arm64-musl@4.38.0':
     resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==}
     resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==}
     cpu: [arm64]
     cpu: [arm64]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@rollup/rollup-linux-loongarch64-gnu@4.38.0':
   '@rollup/rollup-linux-loongarch64-gnu@4.38.0':
     resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==}
     resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==}
     cpu: [loong64]
     cpu: [loong64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-powerpc64le-gnu@4.38.0':
   '@rollup/rollup-linux-powerpc64le-gnu@4.38.0':
     resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==}
     resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==}
     cpu: [ppc64]
     cpu: [ppc64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-riscv64-gnu@4.38.0':
   '@rollup/rollup-linux-riscv64-gnu@4.38.0':
     resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==}
     resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==}
     cpu: [riscv64]
     cpu: [riscv64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-riscv64-musl@4.38.0':
   '@rollup/rollup-linux-riscv64-musl@4.38.0':
     resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==}
     resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==}
     cpu: [riscv64]
     cpu: [riscv64]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@rollup/rollup-linux-s390x-gnu@4.38.0':
   '@rollup/rollup-linux-s390x-gnu@4.38.0':
     resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==}
     resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==}
     cpu: [s390x]
     cpu: [s390x]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-x64-gnu@4.38.0':
   '@rollup/rollup-linux-x64-gnu@4.38.0':
     resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==}
     resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==}
     cpu: [x64]
     cpu: [x64]
     os: [linux]
     os: [linux]
-    libc: [glibc]
 
 
   '@rollup/rollup-linux-x64-musl@4.38.0':
   '@rollup/rollup-linux-x64-musl@4.38.0':
     resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==}
     resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==}
     cpu: [x64]
     cpu: [x64]
     os: [linux]
     os: [linux]
-    libc: [musl]
 
 
   '@rollup/rollup-win32-arm64-msvc@4.38.0':
   '@rollup/rollup-win32-arm64-msvc@4.38.0':
     resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==}
     resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==}
@@ -1077,18 +1083,30 @@ packages:
     resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
     resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
     engines: {node: '>=18'}
     engines: {node: '>=18'}
 
 
+  '@sxzz/popperjs-es@2.11.7':
+    resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+
   '@tsconfig/node20@20.1.5':
   '@tsconfig/node20@20.1.5':
     resolution: {integrity: sha512-Vm8e3WxDTqMGPU4GATF9keQAIy1Drd7bPwlgzKJnZtoOsTm1tduUTbDjg0W5qERvGuxPI2h9RbMufH0YdfBylA==}
     resolution: {integrity: sha512-Vm8e3WxDTqMGPU4GATF9keQAIy1Drd7bPwlgzKJnZtoOsTm1tduUTbDjg0W5qERvGuxPI2h9RbMufH0YdfBylA==}
 
 
   '@types/estree@1.0.7':
   '@types/estree@1.0.7':
     resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
     resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
 
 
+  '@types/lodash-es@4.17.12':
+    resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
+
+  '@types/lodash@4.17.20':
+    resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+
   '@types/mockjs@1.0.10':
   '@types/mockjs@1.0.10':
     resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==}
     resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==}
 
 
   '@types/node@20.17.29':
   '@types/node@20.17.29':
     resolution: {integrity: sha512-6rbekrnsa5WWCo5UnPYEKfNuoF2yqAmigUKXM8wBzfEbZc+E/CITqjCrHqiq+6QBifsw0ZDaA5VdTFONOtG7+A==}
     resolution: {integrity: sha512-6rbekrnsa5WWCo5UnPYEKfNuoF2yqAmigUKXM8wBzfEbZc+E/CITqjCrHqiq+6QBifsw0ZDaA5VdTFONOtG7+A==}
 
 
+  '@types/web-bluetooth@0.0.16':
+    resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+
   '@types/web-bluetooth@0.0.20':
   '@types/web-bluetooth@0.0.20':
     resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
     resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
 
 
@@ -1367,9 +1385,15 @@ packages:
   '@vueuse/core@10.11.1':
   '@vueuse/core@10.11.1':
     resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
     resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
 
 
+  '@vueuse/core@9.13.0':
+    resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
+
   '@vueuse/metadata@10.11.1':
   '@vueuse/metadata@10.11.1':
     resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
     resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
 
 
+  '@vueuse/metadata@9.13.0':
+    resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+
   '@vueuse/router@10.11.1':
   '@vueuse/router@10.11.1':
     resolution: {integrity: sha512-tXtDofDwgmADrnLY2mK2LtHKV9CBehaNfT2ar00HZTJ00QxmCOjYp626WdGtQsUi4E64vTScV/s+yKTXhZfl1w==}
     resolution: {integrity: sha512-tXtDofDwgmADrnLY2mK2LtHKV9CBehaNfT2ar00HZTJ00QxmCOjYp626WdGtQsUi4E64vTScV/s+yKTXhZfl1w==}
     peerDependencies:
     peerDependencies:
@@ -1378,8 +1402,11 @@ packages:
   '@vueuse/shared@10.11.1':
   '@vueuse/shared@10.11.1':
     resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
     resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
 
 
-  '@vxe-ui/core@4.0.38':
-    resolution: {integrity: sha512-zQHcYUUsMUiDNi5buxP9AIz9Ru2BK5JXkKmtGZ5gjdr/nF8Nm/jcMcAdZXDmYAryn1BLka+ZTq83G++HkfWdBg==}
+  '@vueuse/shared@9.13.0':
+    resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
+
+  '@vxe-ui/core@4.1.5':
+    resolution: {integrity: sha512-IgRwVueejOGC5t+bVmBAUkoUplvp1R77pfYX6bb4fcLEPUdBGOdm4I0LCKTDWQ24Mj3Bki7wNpt3sdtEZEzdoA==}
     peerDependencies:
     peerDependencies:
       vue: ^3.2.0
       vue: ^3.2.0
 
 
@@ -1633,6 +1660,11 @@ packages:
   electron-to-chromium@1.5.129:
   electron-to-chromium@1.5.129:
     resolution: {integrity: sha512-JlXUemX4s0+9f8mLqib/bHH8gOHf5elKS6KeWG3sk3xozb/JTq/RLXIv8OKUWiK4Ah00Wm88EFj5PYkFr4RUPA==}
     resolution: {integrity: sha512-JlXUemX4s0+9f8mLqib/bHH8gOHf5elKS6KeWG3sk3xozb/JTq/RLXIv8OKUWiK4Ah00Wm88EFj5PYkFr4RUPA==}
 
 
+  element-plus@2.10.2:
+    resolution: {integrity: sha512-p2KiAa0jEGXrzdlTAfpiS7HQFAhla4gvx6H7RuDf+OO0uC3DGpolxvdHjFR8gt7+vaWyxQNcHa1sAdBkmjqlgA==}
+    peerDependencies:
+      vue: ^3.2.0
+
   entities@4.5.0:
   entities@4.5.0:
     resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
     resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
     engines: {node: '>=0.12'}
     engines: {node: '>=0.12'}
@@ -1662,6 +1694,9 @@ packages:
     resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     engines: {node: '>=6'}
     engines: {node: '>=6'}
 
 
+  escape-html@1.0.3:
+    resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
   escape-string-regexp@4.0.0:
   escape-string-regexp@4.0.0:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
@@ -2016,6 +2051,13 @@ packages:
   lodash-es@4.17.21:
   lodash-es@4.17.21:
     resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
     resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
 
 
+  lodash-unified@1.0.3:
+    resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+    peerDependencies:
+      '@types/lodash-es': '*'
+      lodash: '*'
+      lodash-es: '*'
+
   lodash.merge@4.6.2:
   lodash.merge@4.6.2:
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
 
 
@@ -2039,6 +2081,9 @@ packages:
   mdn-data@2.0.30:
   mdn-data@2.0.30:
     resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
     resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
 
 
+  memoize-one@6.0.0:
+    resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+
   memorystream@0.3.1:
   memorystream@0.3.1:
     resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
     resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
     engines: {node: '>= 0.10.0'}
     engines: {node: '>= 0.10.0'}
@@ -2110,6 +2155,9 @@ packages:
     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
 
 
+  normalize-wheel-es@1.2.0:
+    resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+
   npm-normalize-package-bin@3.0.1:
   npm-normalize-package-bin@3.0.1:
     resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
     resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
     engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -2659,6 +2707,9 @@ packages:
     peerDependencies:
     peerDependencies:
       vue: ^3.0.0
       vue: ^3.0.0
 
 
+  vue-range-component@1.0.3:
+    resolution: {integrity: sha512-J/rE7KJa61XsLXREvSw0Ia+dSTaLoP5Ou7NfOy5pm/1FMgYn7E14iQj7baA8H4ZxoIuKuCfrhjWglPHtWUPGmg==}
+
   vue-resize@2.0.0-alpha.1:
   vue-resize@2.0.0-alpha.1:
     resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
     resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
     peerDependencies:
     peerDependencies:
@@ -2686,6 +2737,12 @@ packages:
     peerDependencies:
     peerDependencies:
       vue: ^3.2.0
       vue: ^3.2.0
 
 
+  vue3-slider@1.10.1:
+    resolution: {integrity: sha512-2nGoHbjh+lgXQErdrUs6yIN99EKU4St+dAZUcFe2s5Gn9V8+QFMmV6rwpb3prQn0Yz1wrVDLTZLbwmEpiEY7xg==}
+    engines: {node: '>=10'}
+    peerDependencies:
+      vue: ^3.0.0
+
   vue@3.5.13:
   vue@3.5.13:
     resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
     resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
     peerDependencies:
     peerDependencies:
@@ -2694,8 +2751,8 @@ packages:
       typescript:
       typescript:
         optional: true
         optional: true
 
 
-  vxe-pc-ui@4.5.10:
-    resolution: {integrity: sha512-6IuizgUZVitcyzGMgqwWpreeVbAQCwODHX7NoMJZrYWbaRzVSGvw9GId2u54X9L3bEgh9lMyL92mkEcofbPvMg==}
+  vxe-pc-ui@4.6.42:
+    resolution: {integrity: sha512-grBaVbagoc5rbTq2jj1P/cWYP+sBo+VSXFRpNGYOe9Ka4EG9JP+LIa7h0lKfojDE5fGlPUYTkkYNe0fsQVDQ0g==}
 
 
   vxe-table@4.12.5:
   vxe-table@4.12.5:
     resolution: {integrity: sha512-VeCEmDbXeNKSvEXXfmKnB0QxUSW0FG9y7CzXhWFxnXR6Aqj4u7qauDipHV4sxcTHspcjiskPJ1MA9BkypkFtBA==}
     resolution: {integrity: sha512-VeCEmDbXeNKSvEXXfmKnB0QxUSW0FG9y7CzXhWFxnXR6Aqj4u7qauDipHV4sxcTHspcjiskPJ1MA9BkypkFtBA==}
@@ -2726,6 +2783,9 @@ packages:
   xe-utils@3.7.4:
   xe-utils@3.7.4:
     resolution: {integrity: sha512-9yuCHLOU+og4OEkPWWtzrYk1Zt1hgN66U/NCJ0+vYJSx1MplBtoQRz8aEA+2RmCr3leLru98vQxNpw/vJsu/sg==}
     resolution: {integrity: sha512-9yuCHLOU+og4OEkPWWtzrYk1Zt1hgN66U/NCJ0+vYJSx1MplBtoQRz8aEA+2RmCr3leLru98vQxNpw/vJsu/sg==}
 
 
+  xe-utils@3.7.5:
+    resolution: {integrity: sha512-wDjqnXw02EQxf2jqlE1nhvT9HP3PDVcyrol5whDJN/NOvnMyXIzcwEiPB/H2T3aq07f2QQXsSs4Z8g5L3BVH5A==}
+
   xml-name-validator@4.0.0:
   xml-name-validator@4.0.0:
     resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
     resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
     engines: {node: '>=12'}
     engines: {node: '>=12'}
@@ -2998,6 +3058,10 @@ snapshots:
 
 
   '@ctrl/tinycolor@3.6.1': {}
   '@ctrl/tinycolor@3.6.1': {}
 
 
+  '@element-plus/icons-vue@2.3.1(vue@3.5.13(typescript@5.4.5))':
+    dependencies:
+      vue: 3.5.13(typescript@5.4.5)
+
   '@emotion/hash@0.9.2': {}
   '@emotion/hash@0.9.2': {}
 
 
   '@emotion/unitless@0.8.1': {}
   '@emotion/unitless@0.8.1': {}
@@ -3241,6 +3305,17 @@ snapshots:
 
 
   '@eslint/js@8.57.1': {}
   '@eslint/js@8.57.1': {}
 
 
+  '@floating-ui/core@1.7.2':
+    dependencies:
+      '@floating-ui/utils': 0.2.10
+
+  '@floating-ui/dom@1.7.2':
+    dependencies:
+      '@floating-ui/core': 1.7.2
+      '@floating-ui/utils': 0.2.10
+
+  '@floating-ui/utils@0.2.10': {}
+
   '@humanwhocodes/config-array@0.13.0':
   '@humanwhocodes/config-array@0.13.0':
     dependencies:
     dependencies:
       '@humanwhocodes/object-schema': 2.0.3
       '@humanwhocodes/object-schema': 2.0.3
@@ -3446,16 +3521,26 @@ snapshots:
 
 
   '@sindresorhus/merge-streams@4.0.0': {}
   '@sindresorhus/merge-streams@4.0.0': {}
 
 
+  '@sxzz/popperjs-es@2.11.7': {}
+
   '@tsconfig/node20@20.1.5': {}
   '@tsconfig/node20@20.1.5': {}
 
 
   '@types/estree@1.0.7': {}
   '@types/estree@1.0.7': {}
 
 
+  '@types/lodash-es@4.17.12':
+    dependencies:
+      '@types/lodash': 4.17.20
+
+  '@types/lodash@4.17.20': {}
+
   '@types/mockjs@1.0.10': {}
   '@types/mockjs@1.0.10': {}
 
 
   '@types/node@20.17.29':
   '@types/node@20.17.29':
     dependencies:
     dependencies:
       undici-types: 6.19.8
       undici-types: 6.19.8
 
 
+  '@types/web-bluetooth@0.0.16': {}
+
   '@types/web-bluetooth@0.0.20': {}
   '@types/web-bluetooth@0.0.20': {}
 
 
   '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5)':
   '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5)':
@@ -3910,8 +3995,20 @@ snapshots:
       - '@vue/composition-api'
       - '@vue/composition-api'
       - vue
       - vue
 
 
+  '@vueuse/core@9.13.0(vue@3.5.13(typescript@5.4.5))':
+    dependencies:
+      '@types/web-bluetooth': 0.0.16
+      '@vueuse/metadata': 9.13.0
+      '@vueuse/shared': 9.13.0(vue@3.5.13(typescript@5.4.5))
+      vue-demi: 0.14.10(vue@3.5.13(typescript@5.4.5))
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+
   '@vueuse/metadata@10.11.1': {}
   '@vueuse/metadata@10.11.1': {}
 
 
+  '@vueuse/metadata@9.13.0': {}
+
   '@vueuse/router@10.11.1(vue-router@4.5.0(vue@3.5.13(typescript@5.4.5)))(vue@3.5.13(typescript@5.4.5))':
   '@vueuse/router@10.11.1(vue-router@4.5.0(vue@3.5.13(typescript@5.4.5)))(vue@3.5.13(typescript@5.4.5))':
     dependencies:
     dependencies:
       '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.4.5))
       '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.4.5))
@@ -3928,11 +4025,18 @@ snapshots:
       - '@vue/composition-api'
       - '@vue/composition-api'
       - vue
       - vue
 
 
-  '@vxe-ui/core@4.0.38(vue@3.5.13(typescript@5.4.5))':
+  '@vueuse/shared@9.13.0(vue@3.5.13(typescript@5.4.5))':
+    dependencies:
+      vue-demi: 0.14.10(vue@3.5.13(typescript@5.4.5))
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+
+  '@vxe-ui/core@4.1.5(vue@3.5.13(typescript@5.4.5))':
     dependencies:
     dependencies:
       dom-zindex: 1.0.6
       dom-zindex: 1.0.6
       vue: 3.5.13(typescript@5.4.5)
       vue: 3.5.13(typescript@5.4.5)
-      xe-utils: 3.7.4
+      xe-utils: 3.7.5
 
 
   acorn-jsx@5.3.2(acorn@8.14.1):
   acorn-jsx@5.3.2(acorn@8.14.1):
     dependencies:
     dependencies:
@@ -4171,6 +4275,27 @@ snapshots:
 
 
   electron-to-chromium@1.5.129: {}
   electron-to-chromium@1.5.129: {}
 
 
+  element-plus@2.10.2(vue@3.5.13(typescript@5.4.5)):
+    dependencies:
+      '@ctrl/tinycolor': 3.6.1
+      '@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.4.5))
+      '@floating-ui/dom': 1.7.2
+      '@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.13(typescript@5.4.5))
+      async-validator: 4.2.5
+      dayjs: 1.11.13
+      escape-html: 1.0.3
+      lodash: 4.17.21
+      lodash-es: 4.17.21
+      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.13(typescript@5.4.5)
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+
   entities@4.5.0: {}
   entities@4.5.0: {}
 
 
   error-stack-parser-es@0.1.5: {}
   error-stack-parser-es@0.1.5: {}
@@ -4260,6 +4385,8 @@ snapshots:
 
 
   escalade@3.2.0: {}
   escalade@3.2.0: {}
 
 
+  escape-html@1.0.3: {}
+
   escape-string-regexp@4.0.0: {}
   escape-string-regexp@4.0.0: {}
 
 
   escape-string-regexp@5.0.0: {}
   escape-string-regexp@5.0.0: {}
@@ -4625,6 +4752,12 @@ snapshots:
 
 
   lodash-es@4.17.21: {}
   lodash-es@4.17.21: {}
 
 
+  lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
+    dependencies:
+      '@types/lodash-es': 4.17.12
+      lodash: 4.17.21
+      lodash-es: 4.17.21
+
   lodash.merge@4.6.2: {}
   lodash.merge@4.6.2: {}
 
 
   lodash@4.17.21: {}
   lodash@4.17.21: {}
@@ -4647,6 +4780,8 @@ snapshots:
 
 
   mdn-data@2.0.30: {}
   mdn-data@2.0.30: {}
 
 
+  memoize-one@6.0.0: {}
+
   memorystream@0.3.1: {}
   memorystream@0.3.1: {}
 
 
   merge2@1.4.1: {}
   merge2@1.4.1: {}
@@ -4702,6 +4837,8 @@ snapshots:
 
 
   normalize-path@3.0.0: {}
   normalize-path@3.0.0: {}
 
 
+  normalize-wheel-es@1.2.0: {}
+
   npm-normalize-package-bin@3.0.1: {}
   npm-normalize-package-bin@3.0.1: {}
 
 
   npm-run-all2@6.2.6:
   npm-run-all2@6.2.6:
@@ -5283,6 +5420,8 @@ snapshots:
     dependencies:
     dependencies:
       vue: 3.5.13(typescript@5.4.5)
       vue: 3.5.13(typescript@5.4.5)
 
 
+  vue-range-component@1.0.3: {}
+
   vue-resize@2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5)):
   vue-resize@2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5)):
     dependencies:
     dependencies:
       vue: 3.5.13(typescript@5.4.5)
       vue: 3.5.13(typescript@5.4.5)
@@ -5310,6 +5449,10 @@ snapshots:
       vue-observe-visibility: 2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5))
       vue-observe-visibility: 2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5))
       vue-resize: 2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5))
       vue-resize: 2.0.0-alpha.1(vue@3.5.13(typescript@5.4.5))
 
 
+  vue3-slider@1.10.1(vue@3.5.13(typescript@5.4.5)):
+    dependencies:
+      vue: 3.5.13(typescript@5.4.5)
+
   vue@3.5.13(typescript@5.4.5):
   vue@3.5.13(typescript@5.4.5):
     dependencies:
     dependencies:
       '@vue/compiler-dom': 3.5.13
       '@vue/compiler-dom': 3.5.13
@@ -5320,15 +5463,15 @@ snapshots:
     optionalDependencies:
     optionalDependencies:
       typescript: 5.4.5
       typescript: 5.4.5
 
 
-  vxe-pc-ui@4.5.10(vue@3.5.13(typescript@5.4.5)):
+  vxe-pc-ui@4.6.42(vue@3.5.13(typescript@5.4.5)):
     dependencies:
     dependencies:
-      '@vxe-ui/core': 4.0.38(vue@3.5.13(typescript@5.4.5))
+      '@vxe-ui/core': 4.1.5(vue@3.5.13(typescript@5.4.5))
     transitivePeerDependencies:
     transitivePeerDependencies:
       - vue
       - vue
 
 
   vxe-table@4.12.5(vue@3.5.13(typescript@5.4.5)):
   vxe-table@4.12.5(vue@3.5.13(typescript@5.4.5)):
     dependencies:
     dependencies:
-      vxe-pc-ui: 4.5.10(vue@3.5.13(typescript@5.4.5))
+      vxe-pc-ui: 4.6.42(vue@3.5.13(typescript@5.4.5))
     transitivePeerDependencies:
     transitivePeerDependencies:
       - vue
       - vue
 
 
@@ -5352,6 +5495,8 @@ snapshots:
 
 
   xe-utils@3.7.4: {}
   xe-utils@3.7.4: {}
 
 
+  xe-utils@3.7.5: {}
+
   xml-name-validator@4.0.0: {}
   xml-name-validator@4.0.0: {}
 
 
   yallist@3.1.1: {}
   yallist@3.1.1: {}

+ 5 - 1
src/components/RoleEdit.vue

@@ -60,7 +60,11 @@ const formProps = reactive<VxeFormProps<FormModel>>({
   },
   },
 });
 });
 const formEmits: VxeFormListeners<FormModel> = {
 const formEmits: VxeFormListeners<FormModel> = {
-  submit({ data }) { submit({ roleSort: 0, status: 0, ...data, menuIds: selected.value }); },
+  submit({ data }) {
+    const indeterminate = menusRef.value?.getCheckboxIndeterminateNodes()?.map(item => item.id) ?? [];
+    const values = new Set([...indeterminate, ...selected.value])
+    submit({ roleSort: 0, status: '0', ...data, menuIds: [...values] });
+  },
   reset() { formProps.data = { ...props.data }; },
   reset() { formProps.data = { ...props.data }; },
 };
 };
 
 

+ 3 - 0
src/model/system.model.ts

@@ -12,6 +12,9 @@ export interface RoleModel {
   createBy: string;
   createBy: string;
   updateTime: string;
   updateTime: string;
   updateBy: string;
   updateBy: string;
+
+  roleSort?: number;
+  menuIds?: string[];
 }
 }
 
 
 export interface UserModel {
 export interface UserModel {