Satsiki 2 rokov pred
rodič
commit
4b3d45f0c6

+ 110 - 0
package-lock.json

@@ -10,6 +10,88 @@
       "integrity": "sha512-MrAQ/MrPSxbh1bBrmwJjORfJymw4IqSHFBXqvxaga3ZdDM+/zokYF8DjyJpSjY2QmpmgQrajDUBJOWrYeARfzA==",
       "dev": true
     },
+    "@antv/adjust": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmmirror.com/@antv/adjust/-/adjust-0.1.1.tgz",
+      "integrity": "sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q==",
+      "requires": {
+        "@antv/util": "~1.3.1"
+      },
+      "dependencies": {
+        "@antv/util": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmmirror.com/@antv/util/-/util-1.3.1.tgz",
+          "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==",
+          "requires": {
+            "@antv/gl-matrix": "^2.7.1"
+          }
+        }
+      }
+    },
+    "@antv/f2": {
+      "version": "3.8.7",
+      "resolved": "https://registry.npmmirror.com/@antv/f2/-/f2-3.8.7.tgz",
+      "integrity": "sha512-VT7C31Zv86Njrd436XSWa0p4cc6tFVS3s4oStO+XYjBXJGy7Nic+am1zfVMDtq87FeaLcSYA7Mx+W8lC3loS2Q==",
+      "requires": {
+        "@antv/adjust": "~0.1.1",
+        "@antv/scale": "~0.3.3",
+        "@antv/util": "~2.0.6",
+        "@babel/runtime": "^7.7.7",
+        "@types/hammerjs": "^2.0.36",
+        "hammerjs": "^2.0.8",
+        "type-fest": "^0.15.1"
+      },
+      "dependencies": {
+        "type-fest": {
+          "version": "0.15.1",
+          "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.15.1.tgz",
+          "integrity": "sha512-n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A=="
+        }
+      }
+    },
+    "@antv/gl-matrix": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz",
+      "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q=="
+    },
+    "@antv/scale": {
+      "version": "0.3.16",
+      "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.3.16.tgz",
+      "integrity": "sha512-8rBo9VPob1z6M/Fcszx1waNwD7kwglc5G1HmF/rjYJRb4ASKVAAx4o4Nzxsp7AZK/a2lHPOQWRekx/9/BxID+A==",
+      "requires": {
+        "@antv/util": "~2.0.3",
+        "fecha": "~4.2.0",
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+          "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+        }
+      }
+    },
+    "@antv/util": {
+      "version": "2.0.17",
+      "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz",
+      "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
+      "requires": {
+        "csstype": "^3.0.8",
+        "tslib": "^2.0.3"
+      },
+      "dependencies": {
+        "csstype": {
+          "version": "3.0.11",
+          "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz",
+          "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
+        },
+        "tslib": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+          "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+        }
+      }
+    },
     "@babel/helper-validator-identifier": {
       "version": "7.16.7",
       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
@@ -21,6 +103,14 @@
       "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.3.tgz",
       "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA=="
     },
+    "@babel/runtime": {
+      "version": "7.17.9",
+      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.9.tgz",
+      "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
+      "requires": {
+        "regenerator-runtime": "^0.13.4"
+      }
+    },
     "@babel/types": {
       "version": "7.17.0",
       "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz",
@@ -130,6 +220,11 @@
         "picomatch": "^2.2.2"
       }
     },
+    "@types/hammerjs": {
+      "version": "2.0.41",
+      "resolved": "https://registry.npmmirror.com/@types/hammerjs/-/hammerjs-2.0.41.tgz",
+      "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA=="
+    },
     "@types/json-schema": {
       "version": "7.0.9",
       "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.9.tgz",
@@ -1329,6 +1424,11 @@
         "reusify": "^1.0.4"
       }
     },
+    "fecha": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.1.tgz",
+      "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
+    },
     "file-entry-cache": {
       "version": "6.0.1",
       "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -1468,6 +1568,11 @@
       "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
       "dev": true
     },
+    "hammerjs": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmmirror.com/hammerjs/-/hammerjs-2.0.8.tgz",
+      "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ=="
+    },
     "has": {
       "version": "1.0.3",
       "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
@@ -2147,6 +2252,11 @@
         "picomatch": "^2.2.1"
       }
     },
+    "regenerator-runtime": {
+      "version": "0.13.9",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+    },
     "regexpp": {
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz",

+ 2 - 0
package.json

@@ -9,9 +9,11 @@
     "preview": "vite preview"
   },
   "dependencies": {
+    "@antv/f2": "^3.8.7",
     "dayjs": "^1.10.8",
     "lib-flexible": "^0.3.2",
     "pinia": "^2.x.x",
+    "uninstall": "^0.0.0",
     "vant": "^3.4.5",
     "vue": "^3.2.25",
     "vue-router": "^4.0.13"

+ 112 - 1
pnpm-lock.yaml

@@ -1,6 +1,7 @@
 lockfileVersion: 5.3
 
 specifiers:
+  '@antv/f2': 3.8.7
   '@types/node': ^17.0.21
   '@typescript-eslint/eslint-plugin': ^5.14.0
   '@typescript-eslint/parser': ^5.14.0
@@ -15,6 +16,7 @@ specifiers:
   postcss-pxtorem: ^6.0.0
   sass: ^1.49.9
   typescript: ^4.5.4
+  uninstall: ^0.0.0
   vant: ^3.4.5
   vite: ^2.8.0
   vite-plugin-style-import: ^1.4.1
@@ -25,9 +27,11 @@ specifiers:
   windicss: ^3.5.1
 
 dependencies:
+  '@antv/f2': registry.npmmirror.com/@antv/f2/3.8.7
   dayjs: registry.npmmirror.com/dayjs/1.10.8
   lib-flexible: registry.npmmirror.com/lib-flexible/0.3.2
   pinia: registry.npmmirror.com/pinia/2.0.11_typescript@4.6.2+vue@3.2.31
+  uninstall: registry.npmmirror.com/uninstall/0.0.0
   vant: registry.npmmirror.com/vant/3.4.5_vue@3.2.31
   vue: registry.npmmirror.com/vue/3.2.31
   vue-router: registry.npmmirror.com/vue-router/4.0.13_vue@3.2.31
@@ -58,6 +62,61 @@ packages:
     version: 0.5.0
     dev: true
 
+  registry.npmmirror.com/@antv/adjust/0.1.1:
+    resolution: {integrity: sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/adjust/-/adjust-0.1.1.tgz}
+    name: '@antv/adjust'
+    version: 0.1.1
+    dependencies:
+      '@antv/util': registry.npmmirror.com/@antv/util/1.3.1
+    dev: false
+
+  registry.npmmirror.com/@antv/f2/3.8.7:
+    resolution: {integrity: sha512-VT7C31Zv86Njrd436XSWa0p4cc6tFVS3s4oStO+XYjBXJGy7Nic+am1zfVMDtq87FeaLcSYA7Mx+W8lC3loS2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/f2/-/f2-3.8.7.tgz}
+    name: '@antv/f2'
+    version: 3.8.7
+    dependencies:
+      '@antv/adjust': registry.npmmirror.com/@antv/adjust/0.1.1
+      '@antv/scale': registry.npmmirror.com/@antv/scale/0.3.16
+      '@antv/util': registry.npmmirror.com/@antv/util/2.0.17
+      '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.17.9
+      '@types/hammerjs': registry.npmmirror.com/@types/hammerjs/2.0.41
+      hammerjs: registry.npmmirror.com/hammerjs/2.0.8
+      type-fest: registry.npmmirror.com/type-fest/0.15.1
+    dev: false
+
+  registry.npmmirror.com/@antv/gl-matrix/2.7.1:
+    resolution: {integrity: sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz}
+    name: '@antv/gl-matrix'
+    version: 2.7.1
+    dev: false
+
+  registry.npmmirror.com/@antv/scale/0.3.16:
+    resolution: {integrity: sha512-8rBo9VPob1z6M/Fcszx1waNwD7kwglc5G1HmF/rjYJRb4ASKVAAx4o4Nzxsp7AZK/a2lHPOQWRekx/9/BxID+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/scale/-/scale-0.3.16.tgz}
+    name: '@antv/scale'
+    version: 0.3.16
+    dependencies:
+      '@antv/util': registry.npmmirror.com/@antv/util/2.0.17
+      fecha: registry.npmmirror.com/fecha/4.2.1
+      tslib: registry.npmmirror.com/tslib/2.3.1
+    dev: false
+
+  registry.npmmirror.com/@antv/util/1.3.1:
+    resolution: {integrity: sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/util/-/util-1.3.1.tgz}
+    name: '@antv/util'
+    version: 1.3.1
+    dependencies:
+      '@antv/gl-matrix': registry.npmmirror.com/@antv/gl-matrix/2.7.1
+    dev: false
+
+  registry.npmmirror.com/@antv/util/2.0.17:
+    resolution: {integrity: sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz}
+    name: '@antv/util'
+    version: 2.0.17
+    dependencies:
+      csstype: registry.npmmirror.com/csstype/3.0.11
+      tslib: registry.npmmirror.com/tslib/2.3.1
+    dev: false
+
   registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7:
     resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz}
     name: '@babel/helper-validator-identifier'
@@ -72,6 +131,15 @@ packages:
     engines: {node: '>=6.0.0'}
     hasBin: true
 
+  registry.npmmirror.com/@babel/runtime/7.17.9:
+    resolution: {integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.9.tgz}
+    name: '@babel/runtime'
+    version: 7.17.9
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.9
+    dev: false
+
   registry.npmmirror.com/@babel/types/7.17.0:
     resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz}
     name: '@babel/types'
@@ -185,6 +253,12 @@ packages:
       picomatch: registry.npmmirror.com/picomatch/2.3.1
     dev: true
 
+  registry.npmmirror.com/@types/hammerjs/2.0.41:
+    resolution: {integrity: sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hammerjs/-/hammerjs-2.0.41.tgz}
+    name: '@types/hammerjs'
+    version: 2.0.41
+    dev: false
+
   registry.npmmirror.com/@types/json-schema/7.0.9:
     resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.9.tgz}
     name: '@types/json-schema'
@@ -891,6 +965,12 @@ packages:
     version: 2.6.20
     dev: false
 
+  registry.npmmirror.com/csstype/3.0.11:
+    resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz}
+    name: csstype
+    version: 3.0.11
+    dev: false
+
   registry.npmmirror.com/dayjs/1.10.8:
     resolution: {integrity: sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.10.8.tgz}
     name: dayjs
@@ -1475,6 +1555,12 @@ packages:
       reusify: registry.npmmirror.com/reusify/1.0.4
     dev: true
 
+  registry.npmmirror.com/fecha/4.2.1:
+    resolution: {integrity: sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fecha/-/fecha-4.2.1.tgz}
+    name: fecha
+    version: 4.2.1
+    dev: false
+
   registry.npmmirror.com/file-entry-cache/6.0.1:
     resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz}
     name: file-entry-cache
@@ -1630,6 +1716,13 @@ packages:
     version: 4.2.9
     dev: true
 
+  registry.npmmirror.com/hammerjs/2.0.8:
+    resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hammerjs/-/hammerjs-2.0.8.tgz}
+    name: hammerjs
+    version: 2.0.8
+    engines: {node: '>=0.8.0'}
+    dev: false
+
   registry.npmmirror.com/has-flag/4.0.0:
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz}
     name: has-flag
@@ -2283,6 +2376,12 @@ packages:
       picomatch: registry.npmmirror.com/picomatch/2.3.1
     dev: true
 
+  registry.npmmirror.com/regenerator-runtime/0.13.9:
+    resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz}
+    name: regenerator-runtime
+    version: 0.13.9
+    dev: false
+
   registry.npmmirror.com/regexpp/3.2.0:
     resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz}
     name: regexpp
@@ -2499,7 +2598,6 @@ packages:
     resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz}
     name: tslib
     version: 2.3.1
-    dev: true
 
   registry.npmmirror.com/tsutils/3.21.0_typescript@4.6.2:
     resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz}
@@ -2523,6 +2621,13 @@ packages:
       prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1
     dev: true
 
+  registry.npmmirror.com/type-fest/0.15.1:
+    resolution: {integrity: sha512-n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.15.1.tgz}
+    name: type-fest
+    version: 0.15.1
+    engines: {node: '>=10'}
+    dev: false
+
   registry.npmmirror.com/type-fest/0.20.2:
     resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz}
     name: type-fest
@@ -2538,6 +2643,12 @@ packages:
     hasBin: true
     dev: true
 
+  registry.npmmirror.com/uninstall/0.0.0:
+    resolution: {integrity: sha512-pjP/0+A4gsbDVa8XH/S2GZdT9NPJW8NFMy3GI7HnsWG+NAmFSSj3QidNosXBI9cPtxxNExEDdhKFO6sli8K3mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uninstall/-/uninstall-0.0.0.tgz}
+    name: uninstall
+    version: 0.0.0
+    dev: false
+
   registry.npmmirror.com/universalify/2.0.0:
     resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz}
     name: universalify

+ 12 - 4
src/components/CommonList.vue

@@ -30,7 +30,7 @@
                      class="block"
                      style="width: fit-content;"
                      :class="obj.companyId && listItem[obj.companyId] ? 'company' : ''"
-                     @click.stop="$goCompany(obj,listItem)">
+                     @click.stop="goCompany(obj,listItem)">
                     {{listItem[obj.value || '-']}}
                   </p>
                 </div>
@@ -38,8 +38,8 @@
                 <p v-else>-</p>
               </div>
 
-              <p v-else :class="[obj.valueType === 'title' ? 'title' : '',obj.companyId ? 'company' : '']"
-                 @click="$goCompany(obj,item)">
+              <p v-else :class="[obj.valueType === 'title' ? 'title' : '', obj.companyId && item[obj.companyId] ? 'company' : '']"
+                 @click="goCompany(obj,item)">
                 {{item[obj.value] || '-'}}{{ item[obj.value] && obj.valueType === 'w' ? '万元' : ''}}
               </p>
             </div>
@@ -55,6 +55,7 @@
 </template>
 
 <script lang="ts" setup>
+  import { ViewListInter } from '@/js-pages/types'
   import { useDemensionListStore } from '@/store/demensionList'
   import { $goCompany } from '@/utils/utils'
   import dayjs from 'dayjs'
@@ -80,13 +81,20 @@
     }
   }
 
+  const goCompany = (item: ViewListInter, dataItem: any) => {
+    if (item.companyId && dataItem[item.value] && dataItem[item.companyId]) {
+      $goCompany( dataItem[item.value],dataItem[item.companyId])
+    }
+  }
+
   const goDetail = (item:{id:string,companyName:string}) => {
     if(store.selectDemension.detailList) {
       router.push({
         path: store.selectDemension.routing + 'Det',
         query:{
           id:item.id,
-          companyName:item.companyName
+          companyName:item.companyName,
+          detailType:store.selectDemension.detailType || undefined
         }
       })
       console.log(`跳转详情:${item.id}`)

+ 223 - 0
src/components/detailComponent/GlSiFaCase.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="glSiFaCase">
+    <van-row class="sifa-yhc-case-info">
+      <van-collapse v-model="activeNames" @change="colChange">
+        <van-collapse-item name="1"  :value='valueCol'>
+          <template #title>
+            <div class="sfTitle"><span>所属司法案件</span> <img src="@/assets/img/vip.png" alt=""></div>
+          </template>
+          <van-row class="four-info-item">
+            <van-row class="case-item-title"><span v-if="siFaCaseData.caseEnd == 1" class="ja">[疑似结案]</span>{{siFaCaseData.title}}</van-row>
+            <div class="case-lables">
+              <span v-for="(item,index) in siFaCaseData.caseType" v-if="siFaCaseData.caseType && siFaCaseData.caseType.length > 0" :key="index + 100" class="itm">{{item}}</span>
+              <span v-for="(item,index) in siFaCaseData.lable" v-if="siFaCaseData.lable && siFaCaseData.lable.length > 0" :key="index" class="itm oth">{{item}}</span>
+            </div>
+            <van-row class="case-info-block">
+              <van-row class="case-info-block-left">
+                <van-row class="left-item">
+                  <span>案件类型:</span>
+                  <span class="left-item-value">{{siFaCaseData.caseType && siFaCaseData.caseType.join(',')}}</span>
+                </van-row>
+                <van-row v-for="item in siFaCaseData.showPresonList" :key="item.title" class="left-item">
+                  <span class="ybgTitle">{{item.title}}:</span>
+                  <div style="display:flex;flex-direction:column;flex:1">
+                    <span v-for="(e,index) in item.list" :key="index" :class="$isCompanyClass(e.litigant_id)" @click.stop='goFilterNewUnknowCompony(e)'>{{e.name}}</span>
+                  </div>
+                </van-row>
+                <van-row class="left-item">
+                  <span>案由:</span>
+                  <span class="left-item-value">{{siFaCaseData.caseReason || '-'}}</span>
+                </van-row>
+                <van-row class="left-item">
+                  <span>当前审理阶段:</span>
+                  <span class="left-item-value">{{siFaCaseData.caseStage}}</span>
+                </van-row>
+                <van-row class="left-item">
+                  <span>最新审理日期:</span>
+                  <span class="left-item-value">{{siFaCaseData.lastDate && siFaCaseData.lastDate.substring(0,11)}}</span>
+                </van-row>
+              </van-row>
+              <van-icon name="arrow" color="#BDBFC1" />
+            </van-row>
+          </van-row>
+        </van-collapse-item>
+      </van-collapse>
+    </van-row>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+import { $goCompany,$isCompanyClass } from '@/utils/utils';
+  import { onMounted, reactive, ref } from 'vue'
+  import { useRoute } from 'vue-router'
+  const route = useRoute()
+  const props = defineProps(['rowKey','caseNo'])
+
+  const activeNames = ref(['1'])
+  const siFaCaseData = <any>ref({})
+  const valueCol = ref('收起')
+
+  onMounted(() => {
+    getInfo()
+  })
+
+  const colChange = (e: string[])=> {
+      if(e[0] == '1'){
+          valueCol.value = '收起'
+      }else{
+          valueCol.value = '展开'
+      }
+  }
+
+  const getInfo  = async () => {
+    const params = {
+      rowkey:props.rowKey || undefined,
+      caseNo:props.rowKey ? undefined : props.caseNo,
+      type:route.query.detailType
+    }
+    const res = await $axios.get('winhc-justice-service/justice/judicial/v8/info', { params }) as any
+
+      let ybList = [...(res.ygName || []),...(res.bgName || [])];
+       let showPresonList:any = [];
+       ybList.forEach((item)=>{
+           let showTitle = item.partyTitle;
+           let hasIndex = 'none';
+           showPresonList.forEach((pre: { title: any; },i: string)=>{
+               if(pre.title === showTitle){
+                   hasIndex = i
+               }
+           })
+           let obj={
+               litigant_id:item.litigantId,
+               name: item.name,
+           }
+           if(hasIndex==='none'){
+               showPresonList.push({
+                   title:showTitle,
+                   list:[obj]
+               })
+           } else {
+               showPresonList[hasIndex].list.push(obj)
+           }
+       })
+        res.showPresonList = showPresonList;
+     if(res.caseType){
+         res.caseType = res.caseType.split(',')
+     }
+    siFaCaseData.value = res
+
+
+    console.log(res)
+
+  }
+
+
+  const goFilterNewUnknowCompony = (val: { name: string; litigant_id: string; })=>{
+    $goCompany(val.name,val.litigant_id)
+  }
+
+</script>
+
+<style lang='scss' scoped>
+    .sfTitle{
+        font-weight: bold;
+       position: relative;
+        line-height: 24px;
+        height: 24px;
+        display: flex;
+        img{
+            width: 24px;
+            height: 12px;
+            margin-left: 2px;
+        }
+    }
+    .sifa-yhc-case-info {
+  background: #fff;
+  margin: 0.24rem 0rem;
+  padding: 0 0.32rem;
+  color: #919498;
+  border-radius: 0;
+}
+
+.sifa-yhc-case-info :deep() .van-collapse-item__content {
+  padding: 0;
+}
+
+.sifa-yhc-case-info :deep() .van-cell {
+  padding: 10px 0px;
+  font-weight: bold;
+}
+.sifa-yhc-case-info :deep() .van-collapse {
+  width: 100%;
+}
+
+.sifa-yhc-case-info :deep() .van-cell:not(:last-child)::after {
+  left: 0;
+}
+
+.sifa-yhc-case-info .four-info-item .case-item-title {
+  color: #242A32;
+  font-weight: bold;
+  padding: 0.32rem 0 0.24rem;
+  line-height: 0.4rem;
+}
+
+.sifa-yhc-case-info .four-info-item .case-item-title .ja {
+  color: #2AAA00;
+}
+
+.sifa-yhc-case-info .four-info-item .case-lables {
+  font-size: 0.2rem;
+  font-weight: normal;
+  margin-bottom: 0.2rem;
+  margin-top: -0.16rem;
+}
+
+.sifa-yhc-case-info .four-info-item .case-lables .itm {
+  color: #EC7D15;
+  background: rgba(236, 125, 21, 0.1);
+  display: inline-block;
+  padding: 0.04rem 0.1rem;
+  line-height: 0.28rem;
+  margin-right: 0.2rem;
+  font-size: 0.2rem;
+  margin-top: 0.06rem;
+}
+
+.sifa-yhc-case-info .four-info-item .case-lables .itm.oth {
+  color: #ED4033;
+  background: rgba(237, 64, 51, 0.1);
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left {
+  flex: 1;
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item {
+  padding-bottom: 0.24rem;
+  display: flex;
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .ybgTitle {
+  max-width: 2.8rem;
+  padding-right: 4px;
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .left-item-name {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+
+.sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .left-item-name .left-item-value {
+  flex: 1;
+  width: fit-content;
+}
+</style>

+ 67 - 0
src/components/listCustomComponent.vue

@@ -0,0 +1,67 @@
+<template>
+  <div>
+
+
+    <div v-if="store.selectDemension.title === '终本案件'">
+      <div v-if="store.dataExtra[0]" class="topInfo">
+        <div class="item">
+          <div class="amt">{{store.dataExtra[0].keyValueBOS[0].value}}元</div>
+          <div class="tt">执行标的总金额</div>
+        </div>
+        <div v-if="store.dataExtra[1]" class="item">
+          <div class="amt">{{store.dataExtra[1].keyValueBOS[0].value}}元</div>
+          <div class="tt">未履行总金额</div>
+        </div>
+        <div v-if="store.dataExtra[1]" class="item">
+          <div class="amt">{{(store.dataExtra[1].keyValueBOS[0].value / store.dataExtra[0].keyValueBOS[0].value * 100).toFixed(2)}}%</div>
+          <div class="tt" @click="showTips">未履行比例<img src="@/assets/img/ts.png" alt="提示"></div>
+        </div>
+      </div>
+    </div>
+
+
+
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { Toast } from 'vant'
+  const store = useDemensionListStore()
+
+
+  const showTips = () => {
+    Toast('未履行比例=未履行总金额/执行标的总金额')
+  }
+</script>
+
+<style lang="scss" scoped>
+.topInfo{
+    margin-bottom: 10px;
+    background: #fff;
+    color: #969696;
+    display: flex;
+    text-align: center;
+    padding: 15px 5px;
+    .item{
+        flex: 1;
+        .amt{
+            color: #e84d4d;
+            font-size: 15px;
+        }
+        .tt{
+            font-size: 12px;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            img{
+                width: 14px;
+                height: 14px;
+                margin-left: 5px;
+            }
+        }
+    }
+}
+
+</style>
+

+ 156 - 0
src/js-pages/company-detail/FaLvFengXian/index.ts

@@ -7,6 +7,7 @@ export const FaLvFengXian: DemensionPagesInter = {
       routing: 'KaiTingGongGao',
       title: '开庭公告',
       tabs: 'deleted',
+      detailType: '1',
       menuList: [
         {
           paramsValue: 'identity',
@@ -38,6 +39,62 @@ export const FaLvFengXian: DemensionPagesInter = {
           ]
         }
       ],
+      detailList: [
+        {
+          name: '案由',
+          value: 'caseReason'
+        },
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '开庭时间',
+          value: 'startDate',
+          valueType: 'date'
+        },
+        {
+          name: '地区',
+          value: 'area'
+        },
+        {
+          name: '排期日期',
+          value: 'planDate',
+          valueType: 'date'
+        },
+        {
+          name: '承办部门',
+          value: 'department'
+        },
+        {
+          name: '审判长/主审人',
+          value: 'judge'
+        },
+        {
+          name: '原告/上诉人/申请人/公诉人',
+          listVal: 'plaintiffInfo',
+          value: 'name',
+          companyId: 'litigant_id'
+        },
+        {
+          name: '被告人/被告/被上诉人/被申请人',
+          listVal: 'defendantInfo',
+          value: 'name',
+          companyId: 'litigant_id'
+        },
+        {
+          name: '法院',
+          value: 'court'
+        },
+        {
+          name: '法庭',
+          value: 'courtRoom'
+        },
+        {
+          name: '公告内容',
+          value: 'content'
+        }
+      ],
       viewList: [
         {
           value: 'caseReason',
@@ -104,6 +161,67 @@ export const FaLvFengXian: DemensionPagesInter = {
           ]
         }
       ],
+      detailList: [
+        {
+          name: '失信人名称',
+          value: 'name',
+          isProperty: true
+        },
+        {
+          name: '身份证号码/组织机构代码',
+          value: 'cardNum'
+        },
+        {
+          name: '生效法律文书确定的义务',
+          value: 'duty'
+        },
+        {
+          name: '被执行人的履行情况',
+          value: 'performance'
+        },
+        {
+          name: '失信被执行人行为具体情形',
+          value: 'actionContent'
+        },
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '立案时间',
+          value: 'regTime',
+          valueType: 'date'
+        },
+        {
+          name: '执行法院',
+          value: 'court'
+        },
+        {
+          name: '做出执行依据单位',
+          value: 'gistUnit'
+        },
+        {
+          name: '发布时间',
+          value: 'pubDate',
+          valueType: 'date'
+        },
+        {
+          name: '省份',
+          value: 'area'
+        },
+        {
+          name: '执行依据文号',
+          value: 'gistDd'
+        },
+        {
+          name: '已履行',
+          value: 'performedPart'
+        },
+        {
+          name: '未履行',
+          value: 'unperformPart'
+        }
+      ],
       viewList: [
         {
           name: '案号',
@@ -412,6 +530,44 @@ export const FaLvFengXian: DemensionPagesInter = {
       routing: 'ZhongBenAnJian',
       title: '终本案件',
       tabs: 'deleted',
+      detailList: [
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '身份证号/组织机构代码',
+          value: 'identityNum'
+        },
+        {
+          name: '执行法院',
+          value: 'courtName'
+        },
+        {
+          name: '被执行人姓名/名称',
+          value: 'name',
+          companyId: 'keyno',
+          isProperty: true
+        },
+        {
+          name: '立案日期',
+          value: 'caseCreateTime',
+          valueType: 'date'
+        },
+        {
+          name: '终本日期',
+          value: 'caseFinalTime',
+          valueType: 'date'
+        },
+        {
+          name: '执行标的',
+          value: 'execAmount'
+        },
+        {
+          name: '未履行金额',
+          value: 'noExecAmount'
+        }
+      ],
       viewList: [
         {
           name: '案号',

+ 139 - 16
src/js-pages/company-detail/JiBenXinXi/SheBaoRenShu.vue

@@ -1,26 +1,149 @@
-<!--
- * @Author: 文帅
- * @Date: 2022-03-10 09:35:39
- * @LastEditTime: 2022-03-31 15:19:10
- * @LastEditors: 文帅
- * @Description:
--->
 <template>
-  <div>
-    社保人数
+  <div id="SheBaoRenShu">
+    <div class="content">
+      <div class="caichan-tip" style="padding-bottom: 0">
+        已查询到该企业最新参保人数为
+        <span class="text-red-500">{{state.totalNum || ''}}</span>
+        人,可了解该企业的人员规模及企业实力。具体信息如下:
+      </div>
+      <div class="graph">
+        <canvas id="chart" style="width: 100%;" height="200"></canvas>
+      </div>
+    </div>
+    <!--        <yhc-footer></yhc-footer>-->
   </div>
 </template>
 
 <script lang="ts" setup>
-  import {reactive,ref,onMounted} from 'vue'
-  import { useRoute, useRouter } from 'vue-router'
-  const router = useRouter()
-  const route = useRoute()
+// import Footer from '../components/Footer';
+  import F2 from '@antv/f2'
+  import $axios from '@/api'
+  import { useDemensionListStore } from '@/store/demensionList'
+
+  import { onMounted, reactive } from 'vue'
+
   const state = reactive({
+    dataList: [],
+    loading: false,
+    totalNum: '', // 总条数
+    companyName: ''
   })
+
+  const getData = async () => {
+    state.loading=true
+    const params = {
+      dimensionCode: useDemensionListStore().selectDemension?.code,
+      entityId: useDemensionListStore().entityId,
+      entityName: useDemensionListStore().entityName,
+      entityType: useDemensionListStore().entityType
+    }
+    const res:any = await $axios.get('lawyer-workbench/risk/dimension/page',{params})
+    state.totalNum = res[0].so110
+    const list = res.reverse()
+    const tempList:any = []
+    list.forEach((item) => {
+      tempList.push({time:item.year,num:item.so110*1})
+    })
+    graph(tempList)
+    state.loading=false
+  }
+  const graph = (list) => {
+    const data = list
+    const chart = new F2.Chart({
+      id: 'chart',
+      pixelRatio: window.devicePixelRatio
+    })
+    chart.source(data, {
+      time: {
+        range: [0, 1]
+      },
+      num: {
+        // tickCount: 10,
+        min: 0
+      }
+    })
+
+    chart.axis('time', {
+      label: function label(text, index, total) {
+        const textCfg:any = {}
+        if (index === 0) {
+          textCfg.textAlign = 'left'
+        } else if (index === total - 1) {
+          textCfg.textAlign = 'right'
+        }
+        return textCfg
+      }
+    })
+    var margin = 1 / data.length
+    chart.scale('time', {
+      range: [margin / 2, 1 - margin / 2]
+    })
+    chart.tooltip({
+      showCrosshairs: true
+    })
+
+    chart
+      .area()
+      .position('time*num')
+      .color('l(90) 0:#1890FF 1:#f7f7f7')
+      .shape('smooth')
+    chart
+      .line()
+      .position('time*num')
+      .color('l(90) 0:#1890FF 1:#f7f7f7')
+      .shape('smooth')
+
+    // chart.point().position('time*num').style('time', {
+    //     stroke: '#1890ff',
+    //     lineWidth: 1,
+    //     fill: '#FFF',
+    //     r: function r(val) {
+    //         return 2;
+    //     }
+    // });
+    data.forEach(function(obj) {
+      chart.guide().point({
+        position: [ obj.time, obj.num ],
+        style: {
+          fill: '#1890ff',
+          r: 2
+        }
+      })
+      chart.guide().text({
+        position: [ obj.time, obj.num ],
+        content: obj.num,
+        style: {
+          fill: '#222',
+          textAlign: 'center'
+        },
+        offsetY: -15,
+        offsetX: 0
+      })
+    })
+    chart.render()
+  }
   onMounted(() => {
+    getData()
   })
 </script>
-<!--
-<style lang="scss" scoped>
-</style> -->
+
+<style scoped lang='scss'>
+#SheBaoRenShu {
+  display: flex;
+  flex-direction: column;
+
+  .content {
+    flex: 1;
+    overflow: auto;
+    .graph {
+      background: #fff;
+      text-align: center;
+      padding: 20px 0;
+      margin-top: 20px;
+      background-image: url("@/assets/img/sybg.png");
+      background-size: 35%;
+      background-repeat: repeat;
+    }
+  }
+}
+</style>

+ 7 - 7
src/js-pages/company-detail/JiBenXinXi/index.ts

@@ -1,13 +1,13 @@
 import { DemensionPagesInter } from './../../types'
-// import SheBaoRenShuVue from './SheBaoRenShu.vue'
+import SheBaoRenShuVue from './SheBaoRenShu.vue'
 export const JiBenXinXi: DemensionPagesInter = {
   projectName: '基本信息',
   list: [
-    // {
-    //   code: 'open_announcement',
-    //   routing: 'SheBaoRenShu',
-    //   title: '社保人数',
-    //   customRender: SheBaoRenShuVue
-    // }
+    {
+      code: 'empum',
+      routing: 'SheBaoRenShu',
+      title: '社保人数',
+      customRender: SheBaoRenShuVue
+    }
   ]
 }

+ 1 - 0
src/js-pages/index.ts

@@ -1,5 +1,6 @@
 import { TotalDemensionInter } from './types'
 import companyDetail from './company-detail'
+// import F2 from '@antv/f2'
 
 const pagesArr: TotalDemensionInter[] = []
 

+ 13 - 1
src/js-pages/types.ts

@@ -17,9 +17,17 @@ export interface DemensionPagesListInter {
   hasDetail?: boolean
   detailList?: ViewListInter[],
   viewList?: ViewListInter[],
+  /**
+  * 中间展示的内容列表
+  */
+  contentList?: MenuListInter[],
   menuList?: MenuListInter[],  //tab下面的下拉菜单列表
   tabs?: 'deleted' | [],  //是否有tabs,历史列表deleted,普通tab传数组
   /**
+  * 详情页所属司法案件所传的type
+  */
+  detailType?: string
+  /**
 * 自定义数组数据处理方法
 */
   listFliter?: Function,
@@ -40,7 +48,11 @@ export interface ViewListInter {
   companyName?: string,
   //自定义HTML元素
   solt?: string,
-  customClick?: Function
+  customClick?: Function,
+  /**
+* 是否有财产线索
+*/
+  isProperty?: boolean
 }
 
 export interface MenuListInter {

+ 0 - 0
src/plugins/F2.ts


+ 3 - 1
src/plugins/vant.ts

@@ -1,4 +1,4 @@
-import { Button, Row, Tab, Tabs, List, Icon, DropdownMenu, DropdownItem } from 'vant'
+import { Button, Row, Tab, Tabs, List, Icon, DropdownMenu, DropdownItem, Collapse, CollapseItem } from 'vant'
 import { App } from 'vue'
 
 export const useVant = (app: App<Element>) => {
@@ -10,4 +10,6 @@ export const useVant = (app: App<Element>) => {
   app.use(Icon)
   app.use(DropdownMenu)
   app.use(DropdownItem)
+  app.use(Collapse)
+  app.use(CollapseItem)
 }

+ 7 - 3
src/store/demensionList.ts

@@ -18,6 +18,7 @@ export const useDemensionListStore = defineStore({
       totalPage: 0,
       selectDemension: {},
       dataList: [],
+      dataExtra: [],
       tabInfo: {
         totalNumList: [0, 0]
       }
@@ -50,7 +51,11 @@ export const useDemensionListStore = defineStore({
         return
       }
 
-      this.getList()
+      if (!demensionInfo.selectDemension.customRender) {
+        this.getList()
+      }
+
+
     },
 
     //有历史tab页的请求,自定义请求获取额外数据
@@ -165,8 +170,7 @@ export const useDemensionListStore = defineStore({
       }
 
       this.dataList.push(...dataList)
-
-
+      this.dataExtra = res.dataExtra
       if (!Object.keys(extraParams).length) {
         this.getMenuList(res.dataExtra!)
       }

+ 7 - 0
src/style/global.scss

@@ -1,3 +1,10 @@
 p,span{
   font-size: 15px;
+}
+.link {
+  color: #088BFE !important;
+}
+.caichan-tip {
+  padding: 15px 15px;
+  line-height: 20px;
 }

+ 2 - 1
src/types/store.ts

@@ -12,7 +12,8 @@ export interface DemensionStoreInter {
   dataList: [];
   tabInfo: {
     totalNumList: number[]
-  }
+  };
+  dataExtra: any
 }
 export interface DemensionDetailStoreInter {
   selectDemension: DemensionPagesListInter;

+ 13 - 4
src/utils/utils.ts

@@ -5,12 +5,21 @@ import pagesArr from '@/js-pages'
 
 
 //跳转企业
-export const $goCompany = (item: ViewListInter, dataItem: any) => {
-  // console.log(item.companyId, dataItem[item.value])
+export const $goCompany = (companyName: string, companyId: string) => {
+  console.log(companyName, companyId)
+}
+
+//跳APP内部页面
+export const $goInnerPage = (page: string, comopanyName = '', monitorId = '0') => {
+  console.log(page, comopanyName, monitorId)
+}
 
-  if (item.companyId && dataItem[item.value] && dataItem[item.companyId]) {
-    console.log(dataItem[item.companyId], dataItem[item.value])
+//是否是企业
+export const $isCompanyClass = (companyId: string) => {
+  if (companyId) {
+    return 'link'
   }
+  return ''
 }
 
 //选择匹配的企业维度

+ 35 - 3
src/views/demension/detail.vue

@@ -18,7 +18,7 @@
                     :key="listIndex" href="javascript:"
                     class="block"
                     :class="item.companyId && listItem[item.companyId] ? 'company' : ''"
-                    @click.stop="$goCompany(item,listItem)">
+                    @click.stop="goCompany(item,listItem)">
                 {{listItem[item.value] || '-'}}
               </span>
             </div>
@@ -27,30 +27,44 @@
               <span>-</span>
             </div>
           </div>
-          <span v-else>
+          <span v-else :class="[item.companyId && store.info[item.companyId] ? 'company' : '']">
             {{store.info[item.value] || '-'}}{{ store.info[item.value] && item.valueType === 'w' ? '万元' : ''}}
           </span>
 
+          <div v-if="item.isProperty" class="yhc_ccbq" @click="$goInnerPage('ZhaoCaiChan',store.info.name)">
+            查看财产线索
+            <img src="@/assets/img/xsjt.png" alt="">
+          </div>
+
 
         </div>
       </div>
     </van-row>
+    <GlSiFaCase v-if="store.info.caseNo" :caseNo="store.info.caseNo" :rowKey="store.info.rowKey"></GlSiFaCase>
   </div>
 </template>
 
 <script lang="ts" setup>
+  import GlSiFaCase from '@/components/detailComponent/GlSiFaCase.vue'
   import {computed, onMounted} from 'vue'
   import { useRoute } from 'vue-router'
-  import { $goCompany } from '@/utils/utils'
+  import { $goCompany,$goInnerPage } from '@/utils/utils'
   import dayjs from 'dayjs'
   import {useDemensionDetailStore} from '@/store/demensionDetail'
   import { ViewListInter } from '@/js-pages/types'
 
+
   const route = useRoute()
   const store = useDemensionDetailStore()
   store.getDemension(route.params.routerName[0])
 
 
+  const goCompany = (item: ViewListInter, dataItem: any) => {
+    if (item.companyId && dataItem[item.value] && dataItem[item.companyId]) {
+      $goCompany( dataItem[item.value],dataItem[item.companyId])
+    }
+  }
+
   const isArrayCom = computed(() => {
     return (item:ViewListInter) => {
       if(item.listVal && store.info[item.listVal]) {
@@ -88,5 +102,23 @@
         color: #088BFE;
       }
 }
+.yhc_ccbq {
+  background: #fff4e0;
+  font-size: 10px;
+  color: #BF8B40;
+  display: inline-block;
+  padding: 5px 12px;
+  border-radius: 4px;
+  margin-top: 5px;
+  display: flex;
+  align-items: center;
+  width: fit-content;
+}
+
+.yhc_ccbq img {
+  width: 6px;
+  height: 6px;
+  margin-left: 4px;
+}
 
 </style>

+ 9 - 3
src/views/demension/list.vue

@@ -1,9 +1,14 @@
 <template>
   <div class="page">
     <!-- <List /> -->
-    <CommonTab v-if="store.selectDemension.tabs"></CommonTab>
-    <CommonMenu v-if="store.selectDemension.menuList && store.selectDemension.menuList.length"></CommonMenu>
-    <CommonList></CommonList>
+    <div v-if="!store.selectDemension.customRender">
+      <CommonTab v-if="store.selectDemension.tabs"></CommonTab>
+      <CommonMenu v-if="store.selectDemension.menuList && store.selectDemension.menuList.length"></CommonMenu>
+      <listCustomComponent v-if="store.selectDemension" />
+      <CommonList></CommonList>
+    </div>
+
+    <component :is="store.selectDemension.customRender" v-if="store.selectDemension.customRender"></component>
   </div>
 </template>
 
@@ -12,6 +17,7 @@
   import CommonTab from '@/components/vant/CommonTab.vue'
   import { useDemensionListStore } from '@/store/demensionList'
   import { onMounted } from 'vue'
+  import listCustomComponent from '@/components/listCustomComponent.vue'
   import CommonMenu from '@/components/vant/CommonMenu.vue'
   const store = useDemensionListStore()
   store.getDemension()

+ 3 - 3
vite.config.ts

@@ -24,14 +24,14 @@ export default defineConfig({
     // },
   },
   base: './', // 设置打包路径
-  build:{
-    outDir: 'newMobile',
+  build: {
+    outDir: 'newMobile'
   },
   plugins: [
     vue(),
     WindiCSS(),
     styleImport({
-      // resolves: [VantResolve()],
+      // resolves: [VantResolve()]
       libs: [
         {
           libraryName: 'vant',