Kaynağa Gözat

fix: 修改bug

wuguojie 1 yıl önce
ebeveyn
işleme
cc3d60c41e

+ 337 - 0
pnpm-lock.yaml

@@ -14,6 +14,12 @@ importers:
       '@imengyu/vue3-context-menu':
         specifier: ^1.4.4
         version: 1.4.4
+      '@vue-office/docx':
+        specifier: ^1.6.3
+        version: 1.6.3(vue-demi@0.14.10(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))
+      '@vue/component-compiler-utils':
+        specifier: ^3.3.0
+        version: 3.3.0(handlebars@4.7.8)(lodash@4.17.21)
       '@vueuse/components':
         specifier: ^12.0.0
         version: 12.0.0(typescript@5.6.3)
@@ -47,6 +53,9 @@ importers:
       hotkeys-js:
         specifier: ^3.13.7
         version: 3.13.7
+      js-pinyin:
+        specifier: ^0.2.7
+        version: 0.2.7
       lodash-es:
         specifier: ^4.17.21
         version: 4.17.21
@@ -86,6 +95,9 @@ importers:
       vue:
         specifier: ^3.5.13
         version: 3.5.13(typescript@5.6.3)
+      vue-cropper:
+        specifier: ^1.1.4
+        version: 1.1.4
       vue-m-message:
         specifier: ^4.0.2
         version: 4.0.2
@@ -1862,6 +1874,16 @@ packages:
   '@volar/typescript@2.4.10':
     resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==}
 
+  '@vue-office/docx@1.6.3':
+    resolution: {integrity: sha512-Cs+3CAaRBOWOiW4XAhTwwxJ0dy8cPIf6DqfNvYcD3YACiLwO4kuawLF2IAXxyijhbuOeoFsfvoVbOc16A/4bZA==}
+    peerDependencies:
+      '@vue/composition-api': ^1.7.1
+      vue: ^2.0.0 || >=3.0.0
+      vue-demi: ^0.14.6
+    peerDependenciesMeta:
+      '@vue/composition-api':
+        optional: true
+
   '@vue/babel-helper-vue-transform-on@1.2.5':
     resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==}
 
@@ -1893,6 +1915,9 @@ packages:
   '@vue/compiler-vue2@2.7.16':
     resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
 
+  '@vue/component-compiler-utils@3.3.0':
+    resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==}
+
   '@vue/devtools-api@6.6.4':
     resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
 
@@ -2471,6 +2496,172 @@ packages:
     resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
     engines: {node: ^14.18.0 || >=16.10.0}
 
+  consolidate@0.15.1:
+    resolution: {integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==}
+    engines: {node: '>= 0.10.0'}
+    deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
+    peerDependencies:
+      arc-templates: ^0.5.3
+      atpl: '>=0.7.6'
+      babel-core: ^6.26.3
+      bracket-template: ^1.1.5
+      coffee-script: ^1.12.7
+      dot: ^1.1.3
+      dust: ^0.3.0
+      dustjs-helpers: ^1.7.4
+      dustjs-linkedin: ^2.7.5
+      eco: ^1.1.0-rc-3
+      ect: ^0.5.9
+      ejs: ^3.1.5
+      haml-coffee: ^1.14.1
+      hamlet: ^0.3.3
+      hamljs: ^0.6.2
+      handlebars: ^4.7.6
+      hogan.js: ^3.0.2
+      htmling: ^0.0.8
+      jade: ^1.11.0
+      jazz: ^0.0.18
+      jqtpl: ~1.1.0
+      just: ^0.1.8
+      liquid-node: ^3.0.1
+      liquor: ^0.0.5
+      lodash: ^4.17.20
+      marko: ^3.14.4
+      mote: ^0.2.0
+      mustache: ^3.0.0
+      nunjucks: ^3.2.2
+      plates: ~0.4.11
+      pug: ^3.0.0
+      qejs: ^3.0.5
+      ractive: ^1.3.12
+      razor-tmpl: ^1.3.1
+      react: ^16.13.1
+      react-dom: ^16.13.1
+      slm: ^2.0.0
+      squirrelly: ^5.1.0
+      swig: ^1.4.2
+      swig-templates: ^2.0.3
+      teacup: ^2.0.0
+      templayed: '>=0.2.3'
+      then-jade: '*'
+      then-pug: '*'
+      tinyliquid: ^0.2.34
+      toffee: ^0.3.6
+      twig: ^1.15.2
+      twing: ^5.0.2
+      underscore: ^1.11.0
+      vash: ^0.13.0
+      velocityjs: ^2.0.1
+      walrus: ^0.10.1
+      whiskers: ^0.4.0
+    peerDependenciesMeta:
+      arc-templates:
+        optional: true
+      atpl:
+        optional: true
+      babel-core:
+        optional: true
+      bracket-template:
+        optional: true
+      coffee-script:
+        optional: true
+      dot:
+        optional: true
+      dust:
+        optional: true
+      dustjs-helpers:
+        optional: true
+      dustjs-linkedin:
+        optional: true
+      eco:
+        optional: true
+      ect:
+        optional: true
+      ejs:
+        optional: true
+      haml-coffee:
+        optional: true
+      hamlet:
+        optional: true
+      hamljs:
+        optional: true
+      handlebars:
+        optional: true
+      hogan.js:
+        optional: true
+      htmling:
+        optional: true
+      jade:
+        optional: true
+      jazz:
+        optional: true
+      jqtpl:
+        optional: true
+      just:
+        optional: true
+      liquid-node:
+        optional: true
+      liquor:
+        optional: true
+      lodash:
+        optional: true
+      marko:
+        optional: true
+      mote:
+        optional: true
+      mustache:
+        optional: true
+      nunjucks:
+        optional: true
+      plates:
+        optional: true
+      pug:
+        optional: true
+      qejs:
+        optional: true
+      ractive:
+        optional: true
+      razor-tmpl:
+        optional: true
+      react:
+        optional: true
+      react-dom:
+        optional: true
+      slm:
+        optional: true
+      squirrelly:
+        optional: true
+      swig:
+        optional: true
+      swig-templates:
+        optional: true
+      teacup:
+        optional: true
+      templayed:
+        optional: true
+      then-jade:
+        optional: true
+      then-pug:
+        optional: true
+      tinyliquid:
+        optional: true
+      toffee:
+        optional: true
+      twig:
+        optional: true
+      twing:
+        optional: true
+      underscore:
+        optional: true
+      vash:
+        optional: true
+      velocityjs:
+        optional: true
+      walrus:
+        optional: true
+      whiskers:
+        optional: true
+
   constant-case@3.0.4:
     resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
 
@@ -3444,6 +3635,9 @@ packages:
     resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
     engines: {node: '>=0.10.0'}
 
+  hash-sum@1.0.2:
+    resolution: {integrity: sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==}
+
   hasown@2.0.0:
     resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
     engines: {node: '>= 0.4'}
@@ -3800,6 +3994,9 @@ packages:
   js-base64@2.6.4:
     resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
 
+  js-pinyin@0.2.7:
+    resolution: {integrity: sha512-Dbm7qJDwlC2MRHRXQo7GrVrL5w975tEOX6sfc0M8Z3oL9VhR4uUqgkwaETMqh4bAJ14w4zVs3tXsi9pDxWUmNg==}
+
   js-tokens@4.0.0:
     resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
 
@@ -3988,6 +4185,9 @@ packages:
     resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
     engines: {node: 14 || >=16.14}
 
+  lru-cache@4.1.5:
+    resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
+
   lru-cache@5.1.1:
     resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
 
@@ -4079,6 +4279,9 @@ packages:
     resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==}
     engines: {node: '>=4'}
 
+  merge-source-map@1.1.0:
+    resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==}
+
   merge-stream@2.0.0:
     resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
 
@@ -4592,6 +4795,9 @@ packages:
   perfect-debounce@1.0.0:
     resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
 
+  picocolors@0.2.1:
+    resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==}
+
   picocolors@1.1.1:
     resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
 
@@ -4700,6 +4906,10 @@ packages:
     resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
     engines: {node: '>=0.12'}
 
+  postcss@7.0.39:
+    resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==}
+    engines: {node: '>=6.0.0'}
+
   postcss@8.4.49:
     resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
     engines: {node: ^10 || ^12 || >=14}
@@ -4725,6 +4935,11 @@ packages:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     engines: {node: '>= 0.8.0'}
 
+  prettier@2.8.8:
+    resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+    engines: {node: '>=10.13.0'}
+    hasBin: true
+
   pretty-ms@9.2.0:
     resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
     engines: {node: '>=18'}
@@ -4743,6 +4958,9 @@ packages:
   proxy-from-env@1.1.0:
     resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
 
+  pseudomap@1.0.2:
+    resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
+
   punycode@2.3.1:
     resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
     engines: {node: '>=6'}
@@ -5907,6 +6125,9 @@ packages:
   vscode-uri@3.0.8:
     resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
 
+  vue-cropper@1.1.4:
+    resolution: {integrity: sha512-5m98vBsCEI9rbS4JxELxXidtAui3qNyTHLHg67Qbn7g8cg+E6LcnC+hh3SM/p94x6mFh6KRxT1ttnta+wCYqWA==}
+
   vue-demi@0.14.10:
     resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
     engines: {node: '>=12'}
@@ -5942,6 +6163,9 @@ packages:
     peerDependencies:
       vue: ^3.2.0
 
+  vue-template-es2015-compiler@1.9.1:
+    resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==}
+
   vue-tsc@2.1.10:
     resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==}
     hasBin: true
@@ -6022,6 +6246,9 @@ packages:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     engines: {node: '>=10'}
 
+  yallist@2.1.2:
+    resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
+
   yallist@3.1.1:
     resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
 
@@ -7789,6 +8016,11 @@ snapshots:
       path-browserify: 1.0.1
       vscode-uri: 3.0.8
 
+  '@vue-office/docx@1.6.3(vue-demi@0.14.10(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))':
+    dependencies:
+      vue: 3.5.13(typescript@5.6.3)
+      vue-demi: 0.14.10(vue@3.5.13(typescript@5.6.3))
+
   '@vue/babel-helper-vue-transform-on@1.2.5': {}
 
   '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.0)':
@@ -7854,6 +8086,73 @@ snapshots:
       de-indent: 1.0.2
       he: 1.2.0
 
+  '@vue/component-compiler-utils@3.3.0(handlebars@4.7.8)(lodash@4.17.21)':
+    dependencies:
+      consolidate: 0.15.1(handlebars@4.7.8)(lodash@4.17.21)
+      hash-sum: 1.0.2
+      lru-cache: 4.1.5
+      merge-source-map: 1.1.0
+      postcss: 7.0.39
+      postcss-selector-parser: 6.1.2
+      source-map: 0.6.1
+      vue-template-es2015-compiler: 1.9.1
+    optionalDependencies:
+      prettier: 2.8.8
+    transitivePeerDependencies:
+      - arc-templates
+      - atpl
+      - babel-core
+      - bracket-template
+      - coffee-script
+      - dot
+      - dust
+      - dustjs-helpers
+      - dustjs-linkedin
+      - eco
+      - ect
+      - ejs
+      - haml-coffee
+      - hamlet
+      - hamljs
+      - handlebars
+      - hogan.js
+      - htmling
+      - jade
+      - jazz
+      - jqtpl
+      - just
+      - liquid-node
+      - liquor
+      - lodash
+      - marko
+      - mote
+      - mustache
+      - nunjucks
+      - plates
+      - pug
+      - qejs
+      - ractive
+      - razor-tmpl
+      - react
+      - react-dom
+      - slm
+      - squirrelly
+      - swig
+      - swig-templates
+      - teacup
+      - templayed
+      - then-jade
+      - then-pug
+      - tinyliquid
+      - toffee
+      - twig
+      - twing
+      - underscore
+      - vash
+      - velocityjs
+      - walrus
+      - whiskers
+
   '@vue/devtools-api@6.6.4': {}
 
   '@vue/devtools-core@7.6.7(vite@6.0.3(@types/node@22.5.5)(jiti@2.4.1)(sass-embedded@1.82.0)(sass@1.79.2)(terser@5.33.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3))':
@@ -8498,6 +8797,13 @@ snapshots:
 
   consola@3.2.3: {}
 
+  consolidate@0.15.1(handlebars@4.7.8)(lodash@4.17.21):
+    dependencies:
+      bluebird: 3.7.2
+    optionalDependencies:
+      handlebars: 4.7.8
+      lodash: 4.17.21
+
   constant-case@3.0.4:
     dependencies:
       no-case: 3.0.4
@@ -9632,6 +9938,8 @@ snapshots:
       is-number: 3.0.0
       kind-of: 4.0.0
 
+  hash-sum@1.0.2: {}
+
   hasown@2.0.0:
     dependencies:
       function-bind: 1.1.2
@@ -9961,6 +10269,8 @@ snapshots:
 
   js-base64@2.6.4: {}
 
+  js-pinyin@0.2.7: {}
+
   js-tokens@4.0.0: {}
 
   js-tokens@9.0.1: {}
@@ -10148,6 +10458,11 @@ snapshots:
 
   lru-cache@10.2.0: {}
 
+  lru-cache@4.1.5:
+    dependencies:
+      pseudomap: 1.0.2
+      yallist: 2.1.2
+
   lru-cache@5.1.1:
     dependencies:
       yallist: 3.1.1
@@ -10296,6 +10611,10 @@ snapshots:
     dependencies:
       is-plain-obj: 1.1.0
 
+  merge-source-map@1.1.0:
+    dependencies:
+      source-map: 0.6.1
+
   merge-stream@2.0.0: {}
 
   merge2@1.4.1: {}
@@ -10922,6 +11241,8 @@ snapshots:
 
   perfect-debounce@1.0.0: {}
 
+  picocolors@0.2.1: {}
+
   picocolors@1.1.1: {}
 
   picomatch@2.3.1: {}
@@ -11029,6 +11350,11 @@ snapshots:
       source-map: 0.5.7
       supports-color: 3.2.3
 
+  postcss@7.0.39:
+    dependencies:
+      picocolors: 0.2.1
+      source-map: 0.6.1
+
   postcss@8.4.49:
     dependencies:
       nanoid: 3.3.8
@@ -11060,6 +11386,9 @@ snapshots:
 
   prelude-ls@1.2.1: {}
 
+  prettier@2.8.8:
+    optional: true
+
   pretty-ms@9.2.0:
     dependencies:
       parse-ms: 4.0.0
@@ -11075,6 +11404,8 @@ snapshots:
 
   proxy-from-env@1.1.0: {}
 
+  pseudomap@1.0.2: {}
+
   punycode@2.3.1: {}
 
   qs@6.13.1:
@@ -12340,6 +12671,8 @@ snapshots:
 
   vscode-uri@3.0.8: {}
 
+  vue-cropper@1.1.4: {}
+
   vue-demi@0.14.10(vue@3.5.13(typescript@5.6.3)):
     dependencies:
       vue: 3.5.13(typescript@5.6.3)
@@ -12372,6 +12705,8 @@ snapshots:
       '@vue/devtools-api': 6.6.4
       vue: 3.5.13(typescript@5.6.3)
 
+  vue-template-es2015-compiler@1.9.1: {}
+
   vue-tsc@2.1.10(typescript@5.6.3):
     dependencies:
       '@volar/typescript': 2.4.10
@@ -12454,6 +12789,8 @@ snapshots:
 
   y18n@5.0.8: {}
 
+  yallist@2.1.2: {}
+
   yallist@3.1.1: {}
 
   yallist@4.0.0: {}

+ 5 - 3
src/layouts/components/DrivingType/index.vue

@@ -24,7 +24,7 @@
             show-checkbox
             node-key="id"
             @check="handleCheckChange"
-            :check-strictly="true"
+            :check-strictly="false"
             :default-expand-all="true"
             :default-checked-keys="selectedKeys"
             :filter-node-method="handleSearchName"
@@ -86,6 +86,8 @@ const defaultProps = {
   label: 'productName',
 }
 const handleCheckChange = (data, row) => {
+  console.log(11111, data)
+  console.log(22222, row)
   if(row.checkedNodes.length > 0) {
     let list1 = row.checkedNodes.filter(a => a.parentId == '0')
     let list2 = row.checkedNodes.filter(a => a.parentId != '0')
@@ -95,7 +97,7 @@ const handleCheckChange = (data, row) => {
     } else {
       selectedList.value = list2
     }
-    selectedList.value .forEach(item => {
+    selectedList.value.forEach(item => {
       item.drivingIntentionId = item.id
     })
   }
@@ -157,7 +159,7 @@ const initEditData = (data, index, id) => {
   // })
   // let list = [...JYXList.value]
   api.projectApi.jyxList({
-    company: id?id:'1738811735599380291'
+    company: '1738811735599380291'
   }).then(res => {
     if(res.code == 200) {
       if(res.data && res.data.length > 0) {

+ 3 - 6
src/store/modules/user.ts

@@ -46,15 +46,12 @@ const useUserStore = defineStore(
     }
     //获取运营交付菜单
     async function getMenu(codeItem) {
-        const res = await api.menuApi.getTenantConfig({...codeItem})
-
-
-
-       if(res.code===200){
+      const res = await api.menuApi.getTenantConfig({...codeItem})
+      if(res.code===200){
         // staticRouter.value=JSON.parse(res.data.sysConfig)
         localStorage.setItem("menu",res.data.sysConfig)
         // routeStore.routesRaw=JSON.parse(res.data.sysConfig)
-       }
+      }
     }
     // 登出
     async function logout(redirect = router.currentRoute.value.fullPath) {

+ 30 - 2
src/views/externalAgreement/agreement/agreementAdd.vue

@@ -84,6 +84,13 @@
               }}</el-input>
             </el-form-item>
           </ElCol>
+          <ElCol :md="24" :lg="6">
+            <el-form-item label="api类型" prop="apiType">
+              <el-select v-model="agreementFrom.apiType">
+                <el-option v-for="item in apiOptions" :label="item.label" :value="item.value" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </ElCol>
         </el-form>
       </ElRow>
 
@@ -156,7 +163,7 @@ const agreementFrom: AgreementForm = reactive({
   companyId: "",//保险公司id
   agreementType: "",//协议类型
   custodianId: "",//管理人id
-
+  apiType: ''
 })
 const validatepassword = (_rule: any, value: any, callback: any) => {
   // 定义正则表达式,例如:只允许字母、数字,长度在4到10个字符之间
@@ -218,7 +225,9 @@ const agreementFromRules = ref<FormRules>({
   attributionId: [
     { required: true, trigger: 'change', message: '请选择出单账号' },
   ],
-
+  apiType: [
+    { required: true, trigger: 'change', message: '请选择api类型' },
+  ]
 });
 onBeforeMount(async () => {
   await loadDicts(['agreement_type', 'with_tax']);//获取多个字典
@@ -241,7 +250,9 @@ const detailsInfo = () => {
           agreementFrom[key as keyof AgreementForm] = res.data.agreement[key] as AgreementForm[keyof AgreementForm];
         }
       });
+      managerName.value = res.data.agreement.managerName + ' - ' + res.data.agreement.deptName;
     } else {
+
     }
   });
 }
@@ -356,9 +367,26 @@ const managerModalsave = (id: string, name: string, deptName: string) => {
   agreementFrom.custodianId = id;
   managerName.value = name + ' - ' + deptName;
   managerModalVisible.value = false;
+}
 
+let apiOptions = ref([])
+const getApi = () => {
+  api.commonApi.personInfo('api_type').then(res => {
+    if(res.code == 200) {
+      apiOptions.value = res.data
+    } else {
+      ElMessage({
+        message: res.msg,
+        type: 'warning'
+      })
+    }
+  })
 }
 
+onMounted(() => {
+  getApi()
+})
+
 </script>
 <style lang="scss" scoped>
 .disabled :deep(.el-upload--picture-card) {

+ 4 - 4
src/views/externalAgreement/agreement/components/managerModal.vue

@@ -14,9 +14,9 @@
         <div class="area">
           <el-radio-group v-model="userId">
             <div class="flex f-c">
-              <el-radio :value="item.id" v-for="(item,index) in managerlist" @change="radioChange" :key="index" class="m-btn-20">
+              <el-radio :value="item.userId" v-for="(item,index) in managerlist" @change="radioChange" :key="index" class="m-btn-20">
                 <div>{{ item.name }}</div>
-                <div>{{ item.id }}</div>
+                <div>{{ item.userId }}</div>
               </el-radio>
             </div>
           </el-radio-group>
@@ -86,8 +86,8 @@ const searchValueclick=()=>{
   emits('query',searchValue.value)
 }
 const radioChange=(value:any)=>{
-  let name=props.managerlist.find(val=>val.id==value)?.name;
-  let deptname=props.managerlist.find(val=>val.id==value)?.deptName;
+  let name=props.managerlist.find(val=>val.userId==value)?.name;
+  let deptname=props.managerlist.find(val=>val.userId==value)?.deptName;
   username.value=name;
   deptName.value=deptname;
 }

+ 6 - 4
src/views/insurancePolicy/index.vue

@@ -351,7 +351,7 @@
               </span>
             </span>
           </template>
-          <el-row :gutter="20" class="formItem formBlock">
+          <el-row :gutter="20" class="formItem formBlock" v-if="!btns.owner1Show">
             <el-col :span="6">
               <el-form-item label="车主姓名" prop="name2">
                 <el-input v-model="insurancePolicyForm.name2" placeholder="输入车主姓名"></el-input>
@@ -496,7 +496,7 @@
               </span>
             </span>
           </template>
-          <el-row :gutter="20" class="formItem formBlock">
+          <el-row :gutter="20" class="formItem formBlock" v-if="!btns.owner2Show">
             <el-col :span="6">
               <el-form-item label="车主姓名" prop="name3">
                 <el-input v-model="insurancePolicyForm.name3" placeholder="输入车主姓名"></el-input>
@@ -1588,13 +1588,15 @@ const handleChange = (item, type) => {
       item.checked = !item.checked
       let list1 = btns.value.owner1.filter(a => a.text != item.text)
       list1.forEach(a => a.checked = false)
-      btns.value.owner1Show = btns.value.owner1.some(a => a.checked)
+      btns.value.owner1Show = btns.value.owner1.some(a => a.checked && a.text != '其他人')
+
       break;
     case 'owner2':
       item.checked = !item.checked
       let list2 = btns.value.owner2.filter(a => a.text != item.text)
       list2.forEach(a => a.checked = false)
-      btns.value.owner2show = btns.value.owner2.some(a => a.checked)
+      btns.value.owner2show = btns.value.owner2.some(a => a.checked && a.text != '其他人')
+
       break;
     case 'owner3':
       item.checked = true

+ 8 - 7
src/views/personnel/institutionManage.vue

@@ -231,13 +231,14 @@ const columns = [
     prop: "comAttribute",
     label: "展业范围",
     formatter: (row: any, column: any, cellValue: any) => {
+      let newArr = []
       let comType = "";
-      exhibitionScopeTypeList.value.map((ele) => {
-        if (ele.value == row.exhibitionScope) {
-          comType = ele.label;
-        }
-      });
-
+      newArr = exhibitionScopeTypeList.value.filter(item => row.exhibitionScope.some(sub => sub !=item.value))
+      if(newArr.length > 0) {
+        newArr.forEach(item => {
+          comType+=`${item.label} `
+        })
+      }
       return () => h("div", {}, comType);
     },
   },
@@ -512,7 +513,7 @@ onMounted(() => {
   getInstitutionList(); //机构列表
   // getAreaList(); //省市区级联数据
   getSystemList(); //机构类型字典
-  // getExhibitionScopeSystemList(); //展业范围字段
+  getExhibitionScopeSystemList(); //展业范围字段
   getAllMemberList();//成员列表
 });
 </script>

+ 32 - 2
src/views/quoteConfig/agreement/agreementAdd.vue

@@ -98,7 +98,14 @@
           <ElCol :md="24" :lg="6">
             <el-form-item label="出单账号" prop="attributionId">
               <el-input v-model="attributionName" placeholder="请选择" type="textarea"
-                @click="orderAccountVisible = true" />
+                        @click="orderAccountVisible = true" />
+            </el-form-item>
+          </ElCol>
+          <ElCol :md="24" :lg="6">
+            <el-form-item label="api类型" prop="apiType">
+              <el-select v-model="agreementFrom.apiType">
+                <el-option v-for="item in apiOptions" :label="item.label" :value="item.value" :key="item.value"></el-option>
+              </el-select>
             </el-form-item>
           </ElCol>
           <ElCol :md="24" :lg="12">
@@ -228,6 +235,7 @@ const agreementFrom: AgreementForm = reactive({
   dockingPhone: "",//对接人手机号
   attributionId: "",//出单账号id
   fileId: '',//文件
+  apiType: ''
 })
 const validatepassword = (_rule: any, value: any, callback: any) => {
   // 定义正则表达式,例如:只允许字母、数字,长度在4到10个字符之间
@@ -289,7 +297,9 @@ const agreementFromRules = ref<FormRules>({
   attributionId: [
     { required: true, trigger: 'change', message: '请选择出单账号' },
   ],
-
+  apiType: [
+    { required: true, trigger: 'change', message: '请选择api类型' },
+  ]
 });
 onBeforeMount(async () => {
   await loadDicts(['agreement_type', 'with_tax']);//获取多个字典
@@ -462,6 +472,26 @@ const orderAccountSave = (id: string, name: string, userAbbr: string) => {
   attributionUserAbbr.value = userAbbr;
   orderAccountVisible.value = false;
 }
+
+let apiOptions = ref([])
+const getApi = () => {
+  api.commonApi.personInfo('api_type').then(res => {
+    console.log(123123213123, res.data)
+    if(res.code == 200) {
+      apiOptions.value = res.data
+    } else {
+      ElMessage({
+        message: res.msg,
+        type: 'warning'
+      })
+    }
+  })
+}
+
+onMounted(() => {
+  getApi()
+})
+
 </script>
 <style lang="scss" scoped>
 .disabled :deep(.el-upload--picture-card) {

+ 7 - 3
src/views/quoteConfig/project/index.vue

@@ -50,7 +50,7 @@
           <el-table-column label="方案描述" prop="description"></el-table-column>
           <el-table-column label="方案类型" prop="schemeType">
             <template #default="scope">
-              {{ scope.row.schemeType == '1'?'基础方案':scope.row.schemeType == '1'?'自选方案':'' }}
+              {{ scope.row.schemeType == '1'?'基础方案':scope.row.schemeType == '2'?'自选方案':'' }}
             </template>
           </el-table-column>
           <el-table-column label="险种" prop="productName"></el-table-column>
@@ -127,7 +127,10 @@ const companyChose = (item, index) => {
 
 const addProject = () => {
   myRouter.push({
-    path: '/quoteConfig/agreement/project/projectAdd'
+    path: '/quoteConfig/agreement/project/projectAdd',
+    query: {
+      companyId: companyId.value
+    }
   })
 }
 
@@ -185,7 +188,8 @@ const handleEdit = (row) => {
     myRouter.push({
       path: '/quoteConfig/agreement/project/projectAdd',
       query: {
-        id: row.id
+        id: row.id,
+        companyId: companyId.value
       }
     })
 }

+ 17 - 7
src/views/quoteConfig/project/modules/projectAdd.vue

@@ -36,7 +36,7 @@
             <div style="width: 60%">
               <rule-condition-container :rulesAttrList="rulesAttrList" @Del="handleDel"></rule-condition-container>
             </div>
-            <rule-condition :ruleConditionVisible="rulesShow" :attrIdList="rulesAttrList" @save="saveRule"></rule-condition>
+            <rule-condition :ruleConditionVisible="rulesShow" :attrIdList="rulesAttrList" @save="saveRule" @cancel="cancelRule"></rule-condition>
           </div>
           <el-button style="margin: 10px 10%" plain type="primary" icon="plus" @click="addRules">添加条件</el-button>
           <el-descriptions>
@@ -109,10 +109,10 @@
                     </el-table-column>
                     <el-table-column label="保额" prop="optionId">
                       <template #default="scope">
-                        <el-select :disabled="projectAddFrom.productId == '0330' || projectAddFrom.productId == '0330034002' || projectAddFrom.productId == '0330034001'" v-if="projectAddFrom.schemeType === 2" v-model="scope.row.moneyId" style="width: 150px" multiple>
+                        <el-select :disabled="scope.row.insuranceId == '19'" v-if="projectAddFrom.schemeType === 2" v-model="scope.row.moneyId" style="width: 150px" multiple>
                           <el-option v-for="m in scope.row.options" :label="m.label" :key="m.id" :value="m.id"></el-option>
                         </el-select>
-                        <el-select :disabled="projectAddFrom.productId == '0330' || projectAddFrom.productId == '0330034002' || projectAddFrom.productId == '0330034001'" v-else v-model="scope.row.moneyId" style="width: 150px" @change="">
+                        <el-select :disabled="scope.row.insuranceId == '19'" v-else v-model="scope.row.moneyId" style="width: 150px" @change="">
                           <el-option v-for="m in scope.row.options" :label="m.label" :key="m.id" :value="m.id"></el-option>
                         </el-select>
                       </template>
@@ -222,7 +222,6 @@ const numberChange = (e, row) => {
 
 // 新增的时候初始化已有的方案
 const initProduct = (e) => {
-  console.log(123, e)
   if(e == '034002') {
     let obj = insuranceTypeList.value.find(item => item.id == '2')
     obj.insuranceId = obj.id
@@ -235,6 +234,9 @@ const initProduct = (e) => {
     if(obj) {
       obj.forEach(item => {
         item.insuranceId = item.id
+        if(item.id == '19') {
+          item.moneyId = item.options[0].id
+        }
       })
       projectAddFrom.value.schemeList.forEach(item => {
         item.drivingList = []
@@ -372,8 +374,15 @@ const saveRule = (data) => {
   }
   rulesShow.value = false
 }
+const cancelRule = (data) => {
+  rulesShow.value = false
+}
 const handleDel = (index) => {
-  rulesAttrList.value.splice(index, 1)
+  if(rulesAttrList.value[index].attrName === '能源类型' || rulesAttrList.value[index].attrName === '使用性质' || rulesAttrList.value[index].attrName === '车辆种类') {
+    return
+  } else {
+    rulesAttrList.value.splice(index, 1)
+  }
 }
 
 // 险种类型
@@ -431,7 +440,7 @@ let drivingShow = ref(false)
 const handleDriving = (item, index) => {
   drivingShow.value = true
   nextTick(() => {
-    DrivingTypeRef.value.initEditData(item.drivingList, index)
+    DrivingTypeRef.value.initEditData(item.drivingList, index, myRoute.query.companyId)
   })
 }
 const handleDrivingClose = ( obj ) => {
@@ -462,7 +471,7 @@ const handlePopover = (item, index) => {
 const initAttr = () => {
   api.agreementApi.ruleAttrGroup({ attrName: '' }).then(res => {
     if(res.code == 200) {
-      let list = res.data?.VehicleInformation?.filter(e => e.attrName === '能源类型' || e.attrName === '使用性质' || e.attrName === '车辆类')
+      let list = res.data?.VehicleInformation?.filter(e => e.attrName === '能源类型' || e.attrName === '使用性质' || e.attrName === '车辆类')
       rulesAttrList.value = [...list]
       defaultAttrList.value = [...list]
     } else {
@@ -577,6 +586,7 @@ onMounted(() => {
   // initAttr()
   if(myRoute.query.id) {
     isEdit.value = true
+    projectAddFrom.value.id = myRoute.query.id
     initEdit()
   } else {
     isEdit.value = false