Browse Source

feat: 维度开发

Satsiki 2 years ago
parent
commit
33a2c3951f

+ 1 - 0
package.json

@@ -11,6 +11,7 @@
   "dependencies": {
     "@antv/f2": "^3.8.7",
     "dayjs": "^1.10.8",
+    "echarts": "5.1.2",
     "lib-flexible": "^0.3.2",
     "pinia": "^2.x.x",
     "uninstall": "^0.0.0",

+ 47 - 22
pnpm-lock.yaml

@@ -9,6 +9,7 @@ specifiers:
   '@vue/eslint-config-typescript': ^10.0.0
   axios: ^0.26.0
   dayjs: ^1.10.8
+  echarts: 5.1.2
   eslint: ^8.10.0
   eslint-plugin-vue: ^8.5.0
   lib-flexible: ^0.3.2
@@ -29,6 +30,7 @@ specifiers:
 dependencies:
   '@antv/f2': registry.npmmirror.com/@antv/f2/3.8.7
   dayjs: registry.npmmirror.com/dayjs/1.10.8
+  echarts: registry.npmmirror.com/echarts/5.1.2
   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
@@ -56,6 +58,14 @@ devDependencies:
 
 packages:
 
+  registry.nlark.com/zrender/5.1.1:
+    resolution: {integrity: sha1-BRX0+MwPR0LwKmuIGVUKbRPWTFw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/zrender/download/zrender-5.1.1.tgz}
+    name: zrender
+    version: 5.1.1
+    dependencies:
+      tslib: registry.npmmirror.com/tslib/2.0.3
+    dev: false
+
   registry.npmmirror.com/@antfu/utils/0.5.0:
     resolution: {integrity: sha512-MrAQ/MrPSxbh1bBrmwJjORfJymw4IqSHFBXqvxaga3ZdDM+/zokYF8DjyJpSjY2QmpmgQrajDUBJOWrYeARfzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.0.tgz}
     name: '@antfu/utils'
@@ -1065,6 +1075,15 @@ packages:
       tslib: registry.npmmirror.com/tslib/2.3.1
     dev: true
 
+  registry.npmmirror.com/echarts/5.1.2:
+    resolution: {integrity: sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts/download/echarts-5.1.2.tgz}
+    name: echarts
+    version: 5.1.2
+    dependencies:
+      tslib: registry.npmmirror.com/tslib/2.0.3
+      zrender: registry.nlark.com/zrender/5.1.1
+    dev: false
+
   registry.npmmirror.com/emmet/2.3.6:
     resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emmet/-/emmet-2.3.6.tgz}
     name: emmet
@@ -1094,7 +1113,7 @@ packages:
     dev: true
 
   registry.npmmirror.com/esbuild-android-64/0.14.25:
-    resolution: {integrity: sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.25.tgz}
+    resolution: {integrity: sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.25.tgz}
     name: esbuild-android-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1105,7 +1124,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-android-arm64/0.14.25:
-    resolution: {integrity: sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.25.tgz}
+    resolution: {integrity: sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.25.tgz}
     name: esbuild-android-arm64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1116,7 +1135,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-darwin-64/0.14.25:
-    resolution: {integrity: sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.25.tgz}
+    resolution: {integrity: sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.25.tgz}
     name: esbuild-darwin-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1127,7 +1146,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-darwin-arm64/0.14.25:
-    resolution: {integrity: sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.25.tgz}
+    resolution: {integrity: sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.25.tgz}
     name: esbuild-darwin-arm64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1138,7 +1157,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-freebsd-64/0.14.25:
-    resolution: {integrity: sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.25.tgz}
+    resolution: {integrity: sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.25.tgz}
     name: esbuild-freebsd-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1149,7 +1168,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-freebsd-arm64/0.14.25:
-    resolution: {integrity: sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.25.tgz}
+    resolution: {integrity: sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.25.tgz}
     name: esbuild-freebsd-arm64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1160,7 +1179,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-32/0.14.25:
-    resolution: {integrity: sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.25.tgz}
+    resolution: {integrity: sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.25.tgz}
     name: esbuild-linux-32
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1171,7 +1190,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-64/0.14.25:
-    resolution: {integrity: sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.25.tgz}
+    resolution: {integrity: sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.25.tgz}
     name: esbuild-linux-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1182,7 +1201,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-arm/0.14.25:
-    resolution: {integrity: sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.25.tgz}
+    resolution: {integrity: sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.25.tgz}
     name: esbuild-linux-arm
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1193,7 +1212,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-arm64/0.14.25:
-    resolution: {integrity: sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.25.tgz}
+    resolution: {integrity: sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.25.tgz}
     name: esbuild-linux-arm64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1204,7 +1223,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-mips64le/0.14.25:
-    resolution: {integrity: sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.25.tgz}
+    resolution: {integrity: sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.25.tgz}
     name: esbuild-linux-mips64le
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1215,7 +1234,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-ppc64le/0.14.25:
-    resolution: {integrity: sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.25.tgz}
+    resolution: {integrity: sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.25.tgz}
     name: esbuild-linux-ppc64le
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1226,7 +1245,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-riscv64/0.14.25:
-    resolution: {integrity: sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.25.tgz}
+    resolution: {integrity: sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.25.tgz}
     name: esbuild-linux-riscv64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1237,7 +1256,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-linux-s390x/0.14.25:
-    resolution: {integrity: sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.25.tgz}
+    resolution: {integrity: sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.25.tgz}
     name: esbuild-linux-s390x
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1248,7 +1267,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-netbsd-64/0.14.25:
-    resolution: {integrity: sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.25.tgz}
+    resolution: {integrity: sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.25.tgz}
     name: esbuild-netbsd-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1259,7 +1278,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-openbsd-64/0.14.25:
-    resolution: {integrity: sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.25.tgz}
+    resolution: {integrity: sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.25.tgz}
     name: esbuild-openbsd-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1270,7 +1289,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-sunos-64/0.14.25:
-    resolution: {integrity: sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.25.tgz}
+    resolution: {integrity: sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.25.tgz}
     name: esbuild-sunos-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1281,7 +1300,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-windows-32/0.14.25:
-    resolution: {integrity: sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.25.tgz}
+    resolution: {integrity: sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.25.tgz}
     name: esbuild-windows-32
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1292,7 +1311,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-windows-64/0.14.25:
-    resolution: {integrity: sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.25.tgz}
+    resolution: {integrity: sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.25.tgz}
     name: esbuild-windows-64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1303,7 +1322,7 @@ packages:
     optional: true
 
   registry.npmmirror.com/esbuild-windows-arm64/0.14.25:
-    resolution: {integrity: sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.25.tgz}
+    resolution: {integrity: sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.25.tgz}
     name: esbuild-windows-arm64
     version: 0.14.25
     engines: {node: '>=12'}
@@ -1625,7 +1644,7 @@ packages:
     dev: true
 
   registry.npmmirror.com/fsevents/2.3.2:
-    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
+    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
     name: fsevents
     version: 2.3.2
     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -2594,8 +2613,14 @@ packages:
     version: 1.14.1
     dev: true
 
+  registry.npmmirror.com/tslib/2.0.3:
+    resolution: {integrity: sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.0.3.tgz}
+    name: tslib
+    version: 2.0.3
+    dev: false
+
   registry.npmmirror.com/tslib/2.3.1:
-    resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz}
+    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
 

+ 52 - 4
src/components/CommonList.vue

@@ -6,7 +6,8 @@
     <van-list v-model:loading="loading" :finished="finished" :immediate-check="false" finished-text="没有更多了" @load="onLoad">
       <div v-for="(item,index) in store.dataList" :key="index" class="card" @click="goDetail(item)">
         <div class="list-container">
-          <div v-for="obj in store.selectDemension.viewList" :key="obj.value" class="item" :class="store.selectDemension.viewList?.find(listItem => listItem.valueType === 'logo') ? 'has-logo' : ''">
+          <!-- <div v-for="obj in store.selectDemension.viewList" :key="obj.value" class="item" :class="store.selectDemension.viewList?.find(listItem => listItem.valueType === 'logo') || obj.valueType === 'avatar' ? 'has-logo' : ''"> -->
+          <div v-for="obj in store.selectDemension.viewList" :key="obj.value" class="item" :class="paddingItemCom(obj)">
 
 
             <!-- 标题 -->
@@ -14,7 +15,18 @@
 
 
             <div :class="obj.valueType === 'tag' ? 'tag' : ''">
-              <img v-if="obj.valueType === 'logo'" :src="obj.solt ? obj.solt(item) : item[obj.value]" alt="" class="logo">
+
+              <div v-if="obj.valueType === 'avatar' && obj.companyId" class="logo">
+                <Avatar :name="item[obj.value]" :companyId="item[obj.companyId]" />
+              </div>
+
+
+
+              <img v-else-if="obj.valueType === 'logo'" :src="obj.solt ? obj.solt(item) : item[obj.value]" alt="" class="logo">
+
+              <div v-else-if="obj.valueType === 'related'" class="related" @click="$goCompany(item[obj.companyName as string],item[obj.companyId as string])">
+                {{item[obj.companyId].length === 32 ? "投资" : "关联"}}{{ item[obj.value] }}家企业 >
+              </div>
 
               <div v-else-if="obj.solt" @click="obj.customClick!(item)" v-html="item[obj.value] ? obj.solt(item) : '-'"></div>
 
@@ -63,8 +75,9 @@
   import { useDemensionListStore } from '@/store/demensionList'
   import { $goCompany } from '@/utils/utils'
   import dayjs from 'dayjs'
-  import { ref, watch } from 'vue'
+  import { computed, ref, watch } from 'vue'
   import { useRouter } from 'vue-router'
+  import Avatar from './Global/Avatar.vue'
   const router = useRouter()
   const store = useDemensionListStore()
   const loading = ref(false)
@@ -91,6 +104,23 @@
     }
   }
 
+  const paddingItemCom = computed(() => {
+    return () => {
+      let className = ''
+      const hasLogoOrAvatar = store.selectDemension.viewList?.find(listItem => {
+        return listItem.valueType === 'logo' || listItem.valueType === 'avatar'
+      })
+      const hasRelated = store.selectDemension.viewList?.find(listItem => listItem.valueType === 'related')
+      if(hasLogoOrAvatar) {
+        className = className + 'has-logo '
+      }
+      if(hasRelated) {
+        className = className + 'has-related '
+      }
+      return className
+    }
+  })
+
   const goDetail = (item:{id:string,companyName:string}) => {
     if(store.selectDemension.detailList || store.selectDemension.detailCustomRender) {
       router.push({
@@ -125,11 +155,15 @@
   position: relative;
   .list-container{
     width: inherit;
+
+    .avatar{
+      position: absolute;
+    }
     .item{
       display: flex;
       .logo{
         width: 56px;
-        border: 1px solid #eee;
+        // border: 1px solid #eee;
       }
       .tag{
         color: #42a7ff;
@@ -148,6 +182,17 @@
           // height: 20px;
         }
       }
+
+      .related{
+        color: #ff722d;
+        position: absolute;
+        right: 15px;
+        top: 20px;
+        bottom: 0;
+        font-size: 13px;
+        // margin: auto 0;
+        height: fit-content;
+      }
       :deep().source-pdf{
         display: flex;
         align-items: center;
@@ -189,6 +234,9 @@
         left: 14px;
       }
     }
+    // .has-related{
+    //   width: 240px;
+    // }
     p,a,div{
       font-size: 15px;
     }

+ 583 - 0
src/components/DetailCustom/NianDuBaoGao.vue

@@ -0,0 +1,583 @@
+<template>
+  <div style="padding-bottom: 20px;">
+    <van-collapse v-model="activeNames">
+      <van-collapse-item title="基本信息" name="1">
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">注册号/统一社会信用代码</van-col>
+          <van-col class="right">{{basicInfoData.creditCode ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">经营状态</van-col>
+          <van-col class="right">{{basicInfoData.manageState ||'-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">从业人数</van-col>
+          <van-col class="right">{{basicInfoData.employeeNum ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">企业联系电话</van-col>
+          <van-col class="right">{{basicInfoData.phoneNumber ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">电子邮箱</van-col>
+          <van-col class="right">{{basicInfoData.email ||'-'}}</van-col>
+        </van-row>
+
+        <div>
+          <div class="blackColor paddingTop borderTop">
+            企业通讯地址(邮编:{{basicInfoData.postCode||'-'}})
+          </div>
+          <van-row
+            type="flex"
+            justify="space-between"
+            class="yhc-ghxixi-address"
+          >
+            <van-col class="yhc-item-left">
+              <!--                            <van-icon name="location-o" class="link"/>-->
+              <span>{{basicInfoData.postalAddress||'-'}}</span>
+            </van-col>
+            <!--                        <van-icon name="arrow"/>-->
+          </van-row>
+        </div>
+
+        <!-- <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+                    <van-col class="left">本年度是否发生股东股权转让</van-col>
+                    <van-col class="right">{{basicInfoData.isStockRightTransfer||'-'}}</van-col>
+                </van-row>
+                <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+                    <van-col class="left">企业是否有投资信息或购买其他企业股权</van-col>
+                    <van-col class="right">{{basicInfoData.hasNewStockOrByStock||'-'}}</van-col>
+                </van-row> -->
+
+
+      </van-collapse-item>
+      <van-collapse-item title="股东(发起人)及出资信息" name="2" :disabled="!partnerList.length" :value="partnerList.length||'无'">
+        <div v-for="(val,i) in partnerList" :key="i">
+          <div :class="{'compony-name' : true, 'borderTop': true,'link':true}">
+            {{val.investorName||'-'}}
+          </div>
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">认缴出资时间</div>
+              <div class="black"> {{val.subscribeTime||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">实缴出资时间</div>
+              <div class="black"> {{val.paidTime||'-'}}</div>
+            </van-col>
+          </van-row>
+
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">认缴出资额(万元)</div>
+              <div class="black"> {{val.subscribeAmount||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">实缴出资额</div>
+              <div class="black"> {{val.paidAmount||'-'}}</div>
+            </van-col>
+          </van-row>
+
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">认缴出资方式</div>
+              <div class="black"> {{val.subscribeType||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">实缴出资方式</div>
+              <div class="black"> {{val.paidType||'-'}}</div>
+            </van-col>
+          </van-row>
+        </div>
+
+
+      </van-collapse-item>
+      <van-collapse-item title="对外投资信息" name="4" :disabled="!investInfoList.length" :value="partnerList.length||'无'">
+        <van-row v-for="(val,i) in investInfoList" :key="i"
+                 type="flex" justify="space-between"
+                 class="yhc-ndbg-rowlist">
+          <van-col class="left">
+            <div>{{val.outInvestmentName||'-'}}</div>
+            <div class="grayFont">{{val.creditCode||'-'}}</div>
+          </van-col>
+        </van-row>
+      </van-collapse-item>
+
+      <van-collapse-item title="网站或网店信息" name="3" :disabled="!webSiteList.length" :value="webSiteList.length||'无'">
+        <van-row v-for="(val,i) in webSiteList" :key="i"
+                 type="flex"
+                 justify="space-between" class="yhc-ndbg-rowlist"
+                 @click="$goOuterUrl(val.website)">
+          <van-col class="left">
+            <div>{{val.name||'-'}}</div>
+            <div><a :href="val.website" class="link">{{val.website||'-'}}</a></div>
+          </van-col>
+        </van-row>
+      </van-collapse-item>
+
+
+
+      <van-collapse-item title="企业资产状况信息" name="5" value="1">
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">资产总额</van-col>
+          <van-col class="right">{{basicInfoData.totalAssets ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">所有者权益合计</van-col>
+          <van-col class="right">{{basicInfoData.totalEquity ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">营业总收入</van-col>
+          <van-col class="right">{{basicInfoData.totalSales ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">营业总收入中主营业务</van-col>
+          <van-col class="right">{{basicInfoData.primeBusProfit ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">利润总额</van-col>
+          <van-col class="right">{{basicInfoData.totalProfit ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">净利润</van-col>
+          <van-col class="right">{{basicInfoData.retainedProfit ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">纳税总额</van-col>
+          <van-col class="right">{{basicInfoData.totalTax ||'-'}}</van-col>
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">负债总额</van-col>
+          <van-col class="right">{{basicInfoData.totalLiability ||'-'}}</van-col>
+        </van-row>
+      </van-collapse-item>
+
+      <van-collapse-item title="股权变更信息" name="6" :disabled="!stockChangeList.length" :value="stockChangeList.length||'无'">
+        <van-steps direction="vertical" :active="0" active-color="#38f">
+          <van-step v-for="(val,i) in stockChangeList" :key="i">
+            <div class="yhc-biangen">
+              <div>
+                {{(val.changeTime) }}
+              </div>
+
+              <div class="name">
+                {{val.investorName||'-'}}
+              </div>
+              <van-row
+                type="flex"
+                justify="space-between"
+                class="yhc-gray-section gray-boild"
+              >
+                <van-col span="12" class="yhc-section-left">
+                  <div class="left-first">变更前</div>
+                  <div class="black">{{val.ratioBefore||'-'}}</div>
+                </van-col>
+
+                <van-col span="12" class="yhc-section-right">
+                  <div class="right-first">变更后</div>
+                  <div class="black">{{val.ratioAfter||'-'}}</div>
+                </van-col>
+              </van-row>
+            </div>
+          </van-step>
+
+
+          <van-step class="none"></van-step>
+        </van-steps>
+      </van-collapse-item>
+      <van-collapse-item title="修改记录" name="7" :disabled="!changeList.length" :value="changeList.length||'无'">
+        <van-steps direction="vertical" :active="0" active-color="#38f">
+
+          <van-step v-for="(val,i) in changeList" :key="i">
+            <div class="yhc-biangen">
+              <div class="link">
+                {{(val.changeTime)}}
+              </div>
+              <div class="name">
+                {{val.changeItem||'-'}}
+              </div>
+              <van-row
+                type="flex"
+                justify="space-between"
+                class="yhc-gray-section"
+              >
+                <van-col span="12" class="yhc-section-left">
+                  <div class="left-first">变更前</div>
+                  <div class="black"> {{val.contentBefore||'-'}}</div>
+                </van-col>
+
+                <van-col span="12" class="yhc-section-right">
+                  <div class="right-first">变更后</div>
+                  <div class="black"> {{val.contentAfter||'-'}}</div>
+                </van-col>
+              </van-row>
+            </div>
+          </van-step>
+
+          <van-step class="none"></van-step>
+        </van-steps>
+      </van-collapse-item>
+
+      <van-collapse-item title="对外提供保证担保信息" name="8" :disabled="!provideAssuranceList.length" :value="provideAssuranceList.length||'无'">
+        <div v-for="(val,i) in provideAssuranceList" :key="i">
+          <div>
+            <div class="blackColor paddingTop borderTop">
+              债权人
+            </div>
+            <van-row
+              type="flex"
+              justify="space-between"
+              class="yhc-ghxixi-address"
+            >
+              <van-col class="yhc-item-left">
+                <span>{{val.creditor||'-'}}</span>
+              </van-col>
+            </van-row>
+          </div>
+          <div>
+            <div class="blackColor paddingTop">
+              债务人
+            </div>
+            <van-row
+              type="flex"
+              justify="space-between"
+              class="yhc-ghxixi-address"
+            >
+              <van-col class="yhc-item-left">
+                <span>{{val.obligor||'-'}}</span>
+              </van-col>
+            </van-row>
+          </div>
+
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">主债权种类</div>
+              <div class="black"> {{val.creditoType||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">主债权数额</div>
+              <div class="black"> {{val.creditoAmount||'-'}}</div>
+            </van-col>
+          </van-row>
+
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">履行债务的期限</div>
+              <div class="black"> {{val.creditoTerm||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">保证的期间</div>
+              <div class="black"> {{val.guaranteeTerm||'-'}}</div>
+            </van-col>
+          </van-row>
+
+          <van-row type="flex" justify="space-between" class="yhc-item-row">
+            <van-col span="12" class="yhc-item-left">
+              <div class="left-first">保证的方式</div>
+              <div class="black"> {{val.guaranteeWay||'-'}}</div>
+            </van-col>
+            <van-col span="12" class="yhc-item-right">
+              <div class="right-first">保证担保的范围</div>
+              <div class="black"> {{val.guaranteeScope||'-'}}</div>
+            </van-col>
+          </van-row>
+        </div>
+      </van-collapse-item>
+      <van-collapse-item title="社保信息" name="10">
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">城镇职工基本养老保险</van-col>
+          <van-col class="right">{{socialSecurities.endowmentInsurance || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">职工基本医疗保险</van-col>
+          <van-col class="right">{{socialSecurities.medicalInsurance || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">生育保险</van-col>
+          <van-col class="right">{{socialSecurities.maternityInsurance || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">失业保险</van-col>
+          <van-col class="right">{{socialSecurities.unemploymentInsurance || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left">工伤保险</van-col>
+          <van-col class="right">{{socialSecurities.employmentInjuryInsurance || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-gray-list">
+          单位缴费基数
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >单位参加城镇职工基本养老保险缴费基数
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.endowmentInsuranceBase || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >单位参加职工基本医疗保险缴费基数
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.medicalInsuranceBase || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">单位参加生育保险缴费基数</van-col>
+          <van-col class="right" span="6">{{socialSecurities.maternityInsuranceBase || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">单位参加失业保险缴费基数</van-col>
+          <van-col class="right" span="6">{{socialSecurities.unemploymentInsuranceBase || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-gray-list">
+          本期实际缴费基数
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >参加城镇职工基本养老保险本期实际缴费金额
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.endowmentInsurancePayAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >参加职工基本医疗保险本期实际缴费金额
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.medicalInsurancePayAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">参加生育保险本期实际缴费金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.maternityInsurancePayAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">参加失业保险本期实际缴费金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.unemploymentInsurancePayAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">参加工商保险本期实际缴费金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.employmentInjuryInsurancePayAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-gray-list">
+          单位累计欠款金额
+        </van-row>
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >单位参加城镇职工基本养老保险累计欠款金额
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.endowmentInsuranceOweAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18"
+          >单位参加职工基本医疗保险累计欠款金额
+          </van-col
+          >
+          <van-col class="right" span="6">{{socialSecurities.medicalInsuranceOweAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">单位参加生育保险累计欠款金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.maternityInsuranceOweAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">单位参加失业保险累计欠款金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.unemploymentInsuranceOweAmount || '-'}}</van-col>
+        </van-row>
+
+        <van-row type="flex" justify="space-between" class="yhc-ndbg-rowlist">
+          <van-col class="left" span="18">单位参加工商保险累计欠款金额</van-col>
+          <van-col class="right" span="6">{{socialSecurities.employmentInjuryInsuranceOweAmount || '-'}}</van-col>
+        </van-row>
+      </van-collapse-item>
+    </van-collapse>
+  </div>
+</template>
+<script lang="ts" setup>
+  import { useDemensionDetailStore } from '@/store/demensionDetail'
+  import { $goOuterUrl } from '@/utils/utils'
+  import {ref} from 'vue'
+  const store = useDemensionDetailStore()
+  const activeNames = ref(['1'])
+  const basicInfoData = store.info.companyAnnualReport
+  const partnerList = store.info.companyAnnualReportHolders
+  const investInfoList = store.info.companyAnnualReportOutInvestments
+  const webSiteList = store.info.companyAnnualReportWebinfos
+  const stockChangeList = store.info.companyAnnualReportEquityChanges
+  const changeList =  store.info.companyAnnualReportChangeList
+  const provideAssuranceList = store.info.companyAnnualReportOutGuarantees
+  const socialSecurities = store.info.companyAnnualReportSocialSecurities && (store.info.companyAnnualReportSocialSecurities[0])
+</script>
+
+<style scoped lang="scss">
+
+    :deep() .van-collapse-item__content {
+        padding: 0 10px !important;
+        font-size: 15px !important;
+    }
+
+    :deep() .van-cell__title {
+        font-weight: bold;
+    }
+    :deep() .van-cell:not(:last-child)::after {
+        border: none !important;
+    }
+
+    :deep() .van-cell {
+        padding: 10px !important;
+        margin-bottom: 10px !important;
+    }
+
+    :deep() .van-collapse-item__wrapper {
+        margin-top: -10px !important;
+        margin-bottom: 10px !important;
+    }
+
+    :deep() .van-step--vertical .van-step__circle-container {
+        position: absolute;
+        top: 23px !important;
+    }
+
+    :deep() .van-step--vertical:not(:last-child)::after {
+        border-bottom-width: 0px !important;
+    }
+
+    :deep() .van-cell__title {
+        flex: 2;
+    }
+
+    .yhc-ndbg-rowlist {
+        padding: 12px 0px;
+        border-top: 0.7px solid $border;
+
+        .left {
+            color: $blackColor;
+        }
+
+        .right {
+            color: $grayFont;
+            text-align: right;
+        }
+    }
+
+    .yhc-ghxixi-address {
+        margin-top: 10px;
+        padding-bottom: 8px;
+
+        i {
+            font-size: 16px;
+            vertical-align: bottom;
+            margin-right: 3px;
+        }
+    }
+
+    .compony-name {
+        font-size: 14px;
+        padding-top: 12px;
+        padding-bottom: 3px;
+    }
+
+    .yhc-item-row {
+        padding-bottom: 8px;
+
+        .yhc-item-left {
+            color: $grayFont;
+
+            .left-first {
+                padding: 2px 0px;
+            }
+
+            .black {
+                color: $blackColor;
+                padding-top: 8px;
+                line-height: 16px;
+                padding-right: $padding;
+            }
+        }
+
+        .yhc-item-right {
+            color: $grayFont;
+
+            .right-first {
+                padding: 2px $padding;
+            }
+
+            .black {
+                padding-left: $padding;
+                color: $blackColor;
+                padding-top: 8px;
+            }
+        }
+    }
+
+    // 阴影部分
+
+    .yhc-biangen {
+        color: $blackColor;
+
+        .name {
+            margin-top: 8px;
+            margin-bottom: 8px;
+        }
+
+        .gray-boild {
+            border: 0.7px solid #dedcdc;
+            border-radius: 4px;
+        }
+
+        .yhc-gray-section {
+            padding: 10px;
+
+            border-radius: 4px;
+            background-color: #f1f2f4;
+
+            .yhc-section-left {
+                .left-first {
+                    padding: 2px 0px;
+                }
+
+                .black {
+                    padding-top: 8px;
+                }
+            }
+
+            .yhc-section-right {
+                border-left: 0.7px solid #dedcdc;
+
+                .right-first {
+                    padding: 2px $padding;
+                }
+
+                .black {
+                    padding-left: $padding;
+                    padding-top: 8px;
+                }
+            }
+        }
+    }
+
+    .yhc-gray-list {
+        padding: 12px 12px;
+        color: $blackColor;
+        background-color: #f1f2f4;
+        margin-left: -12px;
+        margin-right: -12px;
+    }
+</style>

+ 148 - 0
src/components/Global/Avatar.vue

@@ -0,0 +1,148 @@
+<template>
+  <div class="companyLogo" :class="[bg, size, num == '1' ? 'one' : '']">
+
+    <img v-if="!state.isError" :src="imgSrc" @error="state.isError = true" />
+    <p v-else>{{ text }}</p>
+    <!-- <Logo :humanId="humanId" :companyId="companyId" class="logoImg" /> -->
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import {reactive,ref,onMounted, computed} from 'vue'
+  import { useRoute, useRouter } from 'vue-router'
+  const router = useRouter()
+  const route = useRoute()
+  const state = reactive({
+    bg:'',
+    isError:false
+  })
+  const props = defineProps(['name','companyId'])
+
+  const text = computed(() => {
+    return props.name.substr(0, 1)
+  })
+
+  const imgSrc = computed(() => {
+    if(props.companyId.length === '32') {
+      return  `https://winhc.oss-cn-shanghai.aliyuncs.com/bigdata/companyLogo/${props.companyId}.jpg?x-oss-process=image/resize,m_pad,w_150,h_150,color_FFFFFF`
+    }else{
+      return `https://winhc.oss-cn-shanghai.aliyuncs.com/bigdata/humanLogo/${props.companyId}.jpg?x-oss-process=image/resize,m_fill,w_150,h_150,color_FFFFFF`
+    }
+  })
+  onMounted(() => {
+    state.bg = 'bg' + Math.floor(Math.random() * 3)
+  })
+
+
+</script>
+
+<style lang="scss" scoped>
+.companyLogo {
+  width: 50px;
+  height: 50px;
+  border-radius: 4px;
+  font-size: 24px;
+  color: #ffffff;
+  background: #7db3d9;
+  position: relative;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+:deep() .logoImg {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    border: 1px solid #ebeff8;
+    border-radius: 4px;
+    top: 0;
+    left: 0;
+  }
+  img{
+    border-radius: 4px;
+  }
+  &.bg1 {
+    background: #83caaf;
+  }
+  &.bg2 {
+    background: #8ca3cd;
+  }
+  &.small {
+    font-size: 12px;
+    line-height: 16px;
+    letter-spacing: 2px;
+    width: 40px;
+    height: 40px;
+    padding: 4px 0 0 2px;
+  }
+  &.one {
+    font-size: 16px;
+    color: #ffffff;
+    line-height: 40px;
+    padding: 0;
+    letter-spacing: 0px;
+  }
+  &.w60 {
+    font-size: 18px;
+    // letter-spacing: 2px;
+    width: 50px !important;
+    height: 50px !important;
+    line-height: 50px !important;
+    text-align: center;
+    // padding: 4px 0 0 2px;
+  }
+  &.w30 {
+    font-size: 14px;
+    // letter-spacing: 2px;
+    width: 30px !important;
+    height: 30px !important;
+    line-height: 30px !important;
+    text-align: center;
+    // padding: 4px 0 0 2px;
+  }
+
+  &.w36 {
+    font-size: 12px;
+    letter-spacing: 2px;
+    width: 36px;
+    height: 36px;
+    line-height: 36px;
+    // padding: 4px 0 0 2px;
+  }
+
+  &.w54 {
+    font-size: 20px;
+    line-height: 54px;
+    width: 54px;
+    height: 54px;
+    padding: 0;
+    letter-spacing: 0px;
+  }
+  &.w100 {
+    font-size: 40px;
+    line-height: 100px;
+    width: 100px;
+    height: 100px;
+    padding: 0;
+    letter-spacing: 0px;
+  }
+  &.wf100 {
+    font-size: 24px;
+    /*letter-spacing: 2px;*/
+    white-space: normal;
+    width: 100px;
+    height: 100px;
+    line-height: 40px;
+    padding: 10px 16px 0 16px;
+  }
+  &.one-w84 {
+    width: 84px;
+    height: 84px;
+    font-size: 24px;
+    color: #ffffff;
+    line-height: 84px;
+    padding: 0;
+    letter-spacing: 0px;
+  }
+}
+
+</style>

+ 405 - 0
src/components/ListCustom/CaiWuShuJu.vue

@@ -0,0 +1,405 @@
+<template>
+  <div id="CaiWuShuJu" class="yhc-tab-search">
+    <van-tabs
+      v-model="state.activeName"
+      color="#088BFE"
+      title-active-color="#088BFE"
+      swipeable
+      animated
+      line-width="30px"
+      :lazyRender="state.render"
+      sticky>
+      <van-tab :title="'财务数据'" name="act1" title-style="font-weight:bold">
+        <div class="conetnt-seroll">
+          <div v-if="state.dataList.length" class="caiwushuju">
+            <div class="c-left">
+              <div class="title">指标名称</div>
+
+              <div class="row-bold">
+                <div>利润表</div>
+              </div>
+              <div class="row-n">营业总收入</div>
+              <div class="row-n">营业总收入中主营业务收入</div>
+              <div class="row-n">利润总额</div>
+              <div class="row-n">净利润</div>
+
+              <div class="row-bold">
+                <div>纳税能力</div>
+              </div>
+              <div class="row-n">纳税总额</div>
+
+              <div class="row-bold">
+                <div>资产负债表</div>
+              </div>
+              <div class="row-n">资产总额</div>
+              <div class="row-n">负债总额</div>
+              <div class="row-n">净资产</div>
+
+            </div>
+            <div class="c-right">
+              <div class="scroll-right-list-box" @touchstart.stop="()=>{}" @touchmove.stop="()=>{}">
+
+                <div v-for="(item,i) in state.dataList" :key="i" class="scroll-right-list">
+                  <div class="r-title">{{ item.year }}年报</div>
+
+                  <div class="kong"></div>
+                  <div class="r-row-n">{{ item.vendinc!=null?item.vendinc+"万": "-" }}</div>
+                  <div class="r-row-n h">{{ item.maibusinc!=null?item.maibusinc+"万": "-" }}</div>
+                  <div class="r-row-n">{{ item.progro!=null?item.progro+"万": "-" }}</div>
+                  <div class="r-row-n">{{ item.netinc!=null?item.netinc+"万": "-" }}</div>
+
+                  <div class="kong"></div>
+                  <div class="r-row-n">{{ item.ratgro!=null?item.ratgro+"万": "-" }}</div>
+
+                  <div class="kong"></div>
+                  <div class="r-row-n">{{ item.assgro!=null?item.assgro+"万": "-" }}</div>
+                  <div class="r-row-n">{{ item.liagro!=null?item.liagro+"万": "-" }}</div>
+                  <div class="r-row-n">{{ item.totequ!=null?item.totequ+"万": "-" }}</div>
+                </div>
+
+
+              </div>
+
+
+            </div>
+
+
+          </div>
+          <van-empty v-show="state.dataList.length===0 " image="@/assets/img/custom-empty-image.png"
+                     class="custom-image"
+                     description="企业选择不公示" />
+        </div>
+      </van-tab>
+      <van-tab :title="'财务分析'" name="act2" title-style="font-weight:bold">
+
+        <div v-if="state.dataList.length" class="conetnt-seroll">
+          <!--   营业总收入    -->
+          <section class="c-section">
+            <div class="chartTitle">营业总收入(万)</div>
+            <!--              <div class="tipName">-->
+            <!--                <span>2013</span>年,该企业总营收:<span>960</span>亿-->
+            <!--              </div>-->
+
+            <div id="yingyezhongShouru" class="biao"></div>
+          </section>
+          <!--   净利润   -->
+          <section class="c-section">
+            <div class="chartTitle">净利润(万)</div>
+            <div id="jinlirun" class="biao"></div>
+          </section>
+          <!--   资产总e   -->
+          <section class="c-section">
+            <div class="chartTitle">资产总额(万)</div>
+            <div id="zhichanzonge" class="biao"></div>
+          </section>
+
+          <section class="c-section">
+            <div class="chartTitle">净资产(万)</div>
+            <div id="jingzichan" class="biao"></div>
+          </section>
+
+          <section class="c-section">
+            <div class="chartTitle">负债总额(万)</div>
+            <div id="fuzaizonge" class="biao"></div>
+          </section>
+          <van-empty v-show="state.dataList.length===0" image="@/assets/img/custom-empty-image.png"
+                     class="custom-image"
+                     description="企业选择不公示" />
+        </div>
+      </van-tab>
+    </van-tabs>
+    <!--        <yhc-footer></yhc-footer>-->
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, reactive } from 'vue'
+  import * as echarts from 'echarts'
+  const store = useDemensionListStore()
+
+
+
+  const state = reactive<any>({
+    dataList:[],
+    render:false,
+    activeName: 'act1'
+  })
+
+  onMounted(async () => {
+    getData()
+  })
+
+  const getData = async () => {
+    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})
+    setTimeout(() => {
+      chartInt(state.dataList, 'yingyezhongShouru')
+      chartInt(state.dataList, 'jinlirun')
+      chartInt(state.dataList, 'zhichanzonge')
+      chartInt(state.dataList, 'jingzichan')
+      chartInt(state.dataList, 'fuzaizonge')
+
+    }, 50)
+    state.dataList = res
+  }
+
+
+  const chartInt = (sourceData = [], type: string) => {
+    const myChart = echarts.init(document.getElementById(type))
+
+    const xDta: any[] = [], yData: any[] = []
+    sourceData.forEach((val) => {
+      xDta.push(val.year)
+      if (type == 'yingyezhongShouru') {
+        yData.push(val.vendinc)
+      } else if (type == 'jinlirun') {
+        yData.push(val.netinc)
+      } else if (type == 'zhichanzonge') {
+        yData.push(val.assgro)
+      } else if (type == 'jingzichan') {
+        yData.push(val.totequ)
+      } else if (type == 'fuzaizonge') {
+        yData.push(val.liagro)
+      }
+
+    })
+
+    var option = {
+      grid: {
+        x: 70,
+        y: 20,
+        x2: 50,
+        y2: 20
+      },
+      tooltip: {
+        trigger: 'axis',
+        formatter: (param: { value: string; }[]) => {
+          return param[0].value + '万元'
+          // console.log("param==",param)
+          // 自定义 弹窗里面的 内容
+          /*   let  str = `<div>
+                   <span> ${param[0].value} :万元</span>
+                </div>`
+
+               return str*/
+        }
+      },
+      //标题
+      title: {
+        text: ''
+      },
+      //工具箱
+      //保存图片
+      toolbox: {
+        show: false,
+        feature: {
+          saveAsImage: {
+            show: false
+          }
+        }
+      },
+      //图例-每一条数据的名字叫销量
+      legend: {
+        // data:['销量']
+      },
+      //x轴
+      xAxis: {
+        data: xDta
+      },
+      //y轴没有显式设置,根据值自动生成y轴
+      yAxis: {
+
+      },
+      //数据-data是最终要显示的数据
+      series: [{
+        type: 'line',
+        smooth: true,
+        data: yData
+      }]
+    }
+    //使用刚刚指定的配置项和数据项显示图表
+    myChart.setOption(option)
+
+
+  }
+</script>
+
+<style scoped lang='scss'>
+#CaiWuShuJu {
+  display: flex;
+  flex-direction: column;
+  overflow-x: hidden;
+
+  .content {
+    flex: 1;
+    overflow: auto;
+  }
+
+  .caiwushuju {
+    background-color: white;
+    border-radius: 0.24rem 0.24rem 0.24rem 0.24rem;
+    margin: 0.24rem;
+    display: flex;
+
+    .c-left {
+      width: 3rem;
+      box-shadow: 0.04rem 0rem 0.4rem 0rem #F2F3F4;
+
+      .title {
+        height: 0.92rem;
+        line-height: 0.92rem;
+        font-size: 0.26rem;
+        font-weight: bold;
+        color: #242A32;
+        padding-left: 0.32rem;
+      }
+
+      .row-bold {
+        border-top: 1px solid #F8FAFC;
+        font-size: 0.28rem;
+        font-weight: bold;
+        color: #242A32;
+        padding-top: 0.32rem;
+        padding-bottom: 0.28rem;
+
+        div {
+          border-left: 0.04rem solid #1775FF;
+          padding-left: 0.28rem;
+        }
+
+
+      }
+
+      .row-n {
+        font-size: 13px;
+        color: #64696E;
+        padding: 0 0.32rem;
+        padding-bottom: 0.28rem;
+        line-height: 1;
+      }
+
+
+    }
+
+    .c-right {
+      width: 4.80rem;
+      overflow-x: auto;
+      .scroll-right-list-box {
+        white-space: nowrap;
+        display: inline-flex;
+
+        .scroll-right-list {
+          float: left;
+
+          &:last-child {
+            .r-title {
+              border-right: none;
+            }
+
+            .kong {
+              border-right: none;
+            }
+
+            .r-row-n {
+              border-right: none;
+              line-height: 0.52rem;
+              font-size: 13px;;
+            }
+
+
+          }
+
+
+          .r-title {
+            min-width: 1.76rem;
+            text-align: center;
+            border-right: 1px solid #F8FAFC;
+            height: 1.3rem;
+            line-height: 1.3rem;
+          }
+
+          .kong {
+            min-width: 1.76rem;
+            height: 0.9rem;
+            border-top: 1px solid #F8FAFC;
+            border-right: 1px solid #F8FAFC;
+          }
+
+          .r-row-n {
+            text-align: center;
+            font-size: 0.26rem;
+            color: #64696E;
+            line-height: 0.26rem;
+            padding: 0 0.32rem;
+            padding-bottom: 0.28rem;
+            line-height: 1;
+            border-right: 1px solid #F8FAFC;
+
+            &.h {
+              height: 0.80rem;
+            }
+          }
+
+
+        }
+
+      }
+
+    }
+
+
+  }
+
+  // 表示表格数据
+  .c-section {
+    margin: 0.24rem;
+    width: 95%;
+    min-height: 5.72rem;
+    background: #FFFFFF;
+    border-radius: 0.24rem;
+
+    .chartTitle {
+      padding-top: 0.32rem;
+      font-size: 0.4rem;
+      font-weight: bold;
+      background-color: white;
+      padding-left: 0.30rem;
+      padding-bottom: 0.10rem;
+      border-radius: 0.24rem;
+
+    }
+
+    .tipName {
+      width: 6.54rem;
+      padding: 0.12rem;
+      margin: 0.12rem auto;
+
+
+      background: #F2F3F4;
+      border-radius: 0.08rem;
+      font-size: 0.24rem;
+
+      span {
+        color: #0265D9;
+      }
+
+    }
+
+    .biao {
+      width: 100%;
+      height: 4rem;
+      background-color: white;
+    }
+
+
+  }
+
+}
+</style>

+ 182 - 0
src/components/ListCustom/GuDongXinXi.vue

@@ -0,0 +1,182 @@
+<template>
+  <div id="GuDongXinXi">
+    <div class="caichan-tip">
+      已查询到该企业共有 <span class="red">{{state.allData.length||''}}</span> 条股东信息,可了解其股东结构及数量。具体信息如下:
+    </div>
+    <van-dropdown-menu active-color="#1989fa">
+      <van-dropdown-item v-model="state.type" :options="state.typeOpt" @change="checkData" />
+      <van-dropdown-item v-model="state.bili" :options="state.biliOpt" :title="state.biliTitle" @change="bilichange" />
+    </van-dropdown-menu>
+    <div class="content">
+      <van-empty
+        v-if="!dataList2.length"
+        :image="$emptyImg"
+        class="custom-image"
+        description="暂时没有找到相关数据"
+      />
+      <div v-for="item in state.dataList" :key="item.KeyNo" class="yhc-model">
+        <div class="yhc-icon-name">
+          <div class="name" style="padding: 0">
+            <div class="ocompany">
+              <span class="on">{{item.StockName}}</span>
+            </div>
+            <div v-for="tag in item.TagsList" :key="tag" class="tag dagudong">{{tag}}</div>
+          </div>
+        </div>
+        <div class="yhc-rowlist">
+          <div v-if="item.StockType" class="rowcol">
+            <div class="lable">投资人类型</div>
+            <div class="val">{{item.StockType}}</div>
+          </div>
+          <div v-if="item.StockPercent" class="rowcol">
+            <div class="lable">{{$nameByCompanyName(store.entityName,'持股比例')}}</div>
+            <div class="val">{{item.StockPercent}}</div>
+          </div>
+          <div v-if="item.ShouldCapi" class="rowcol">
+            <div class="lable">认缴出资额</div>
+            <div class="val">{{item.ShouldCapi}}</div>
+          </div>
+          <div v-if="item.RelatedProduct" class="rowcol">
+            <div class="lable">关联品牌产品</div>
+            <div class="val">
+              {{item.RelatedProduct&&item.RelatedProduct.name}}
+            </div>
+          </div>
+          <div v-if="item.ShoudDate" class="rowcol">
+            <div class="lable">认缴出资时间</div>
+            <div class="val">{{item.ShoudDate}}</div>
+          </div>
+          <div v-if="item.RealCapi" class="rowcol">
+            <div class="lable">实缴出资额</div>
+            <div class="val">{{item.RealCapi}}</div>
+          </div>
+          <div v-if="item.CapiDate" class="rowcol">
+            <div class="lable">出资额时间</div>
+            <div class="val">{{item.CapiDate}}</div>
+          </div>
+          <div v-if="item.InvestType" class="rowcol">
+            <div class="lable">认出资方式</div>
+            <div class="val">{{item.InvestType}}</div>
+          </div>
+          <div v-if="item.InvestName" class="rowcol">
+            <div class="lable">实出资方式</div>
+            <div class="val">{{item.InvestName}}</div>
+          </div>
+          <div v-if="item.FinalBenefitPercent" class="rowcol">
+            <div class="lable">最终收益股份</div>
+            <div class="val">{{item.FinalBenefitPercent}}</div>
+          </div>
+          <div v-if="item.RelatedOrg" class="rowcol">
+            <div class="lable">关联机构</div>
+            <div class="val">{{item.RelatedOrg&&item.RelatedOrg.name}}</div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+  import {$nameByCompanyName} from '@/utils/utils'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, reactive } from 'vue'
+  const store = useDemensionListStore()
+
+
+
+  const state = reactive<any>({
+    type: '',
+    bili: '',
+    biliTitle: '持股比例不限',
+    typeOpt: [
+      { text: '全部类型', value: '' },
+      { text: '自然人股东', value: '自然人股东' },
+      { text: '企业法人', value: '企业法人' }
+    ],
+    biliOpt: [
+      { text: '持股比例不限', value: '' },
+      { text: '5%以上', value: '5' },
+      { text: '25%以上(超过25%的为最终受益人)', value: '25' },
+      { text: '50%以上', value: '50' },
+      { text: '90%以上', value: '90' }
+    ],
+    showNoData:false,
+    dataList:[],
+    allData:[]
+  })
+
+  onMounted(async () => {
+    const params = {
+      companyName:store.entityName,
+      infoCode:store.selectDemension?.code
+    }
+    const res = await $axios.get('firefly-erp/eci/dimension/detail',{params}) as any
+    state.allData=res
+    state.showNoData=true
+    checkData()
+  })
+
+
+  const bilichange = (val: string | number) => {
+    state.biliTitle={
+      '':'持股比例不限',
+      '5':'5%以上',
+      '25':'25%以上',
+      '50':'50%以上',
+      '90':'90%以上'
+    }[val]
+    checkData()
+  }
+
+
+  const checkData = () => {
+    state.dataList=state.allData.filter((item: { StockType: any; StockPercent: { replace: (arg0: string, arg1: string) => number; }; }) => {
+      if(state.type&&item.StockType!=state.type) {
+        return false
+      }
+      if(state.bili&&item.StockPercent&&item.StockPercent.replace('%','')*1<state.bili*1) {
+        return false
+      }
+      return true
+    })
+  }
+</script>
+
+<style scoped lang='scss'>
+    :deep() .van-cell__value {
+        width: 15% !important;
+        flex: initial;
+    }
+    #GuDongXinXi{
+        display: flex;
+        flex-direction: column;
+        .content{
+            flex: 1;
+            overflow: auto;
+        }
+        .ocompany{
+            display: flex;
+            justify-content: space-between;
+            align-items: flex-start;
+            .on{
+                flex: 1;
+                margin-right: 15px;
+            }
+            .jg{
+                color: #fd8646;
+                width: 86px;
+                display: flex;
+                align-items: center;
+                // span{
+                //     font-size: 13px;
+                // }
+                img{
+                    width:18px;
+                    height: 18px;
+                    margin-left: 5px;
+                }
+            }
+        }
+    }
+</style>

+ 0 - 32
src/components/ListCustom/RongZiXinXi.vue

@@ -51,38 +51,6 @@
   onMounted(() => {
     getData()
   })
-  // import Axios from '../../axios'
-  // import Logo from '../../components/Logo'
-
-  // export default {
-  //   name: 'RongZhiXinXi',
-  //   components: {Logo},
-  //   data() {
-  //     return {
-  //       dataList: [],
-  //       loading: false,
-  //       pageNum: 1,
-  //       totalPage: 0,
-  //       totalNum:'',
-  //       companyName:'',
-  //       dataInfo:{}
-  //     }
-  //   },
-  //   mounted() {
-  //     document.querySelector('title').innerText = '融资信息'
-
-  //     if(this.$route.query.fromBusiness == 'dynamic') {
-  //       this.getDynamicData()
-  //     }else if(this.$route.query.fromBusiness == 'caichan') {
-  //       this.getCaiChanData()
-  //     }else{
-  //       this.getData()
-  //     }
-  //   },
-  //   methods: {
-
-  //   }
-  // }
 </script>
 
 <style scoped lang="scss">

+ 70 - 0
src/components/ListCustom/ZhuYaoRenYuan.vue

@@ -0,0 +1,70 @@
+<template>
+  <div>
+    <div class="caichan-tip">
+      已查询到该企业主要人员信息
+      <span class="red">{{ totalNum }}</span>
+      条,可了解该企业的人员结构及团队实力。具体信息如下:
+    </div>
+    <van-list @load="onLoad">
+      <div v-for="item in dataList" :key="item.staffName" class="yhc-model">
+        <div
+          class="yhc-icon-name"
+          @click="$goCompany(item.staffName, item.hid)"
+        >
+          <!-- <PersonLogo
+            :humanId="item.hid"
+            :name="item.staffName"
+            size="w60"
+            num="1"
+            class="avatar"
+          /> -->
+          <div class="name">
+            <div>{{ item.staffName || "-" }}</div>
+            <div style="color: #333">任职:{{ item.staffType || "-" }}</div>
+          </div>
+        </div>
+        <span
+          v-if="item.relateCompanyCount"
+          class="guanlian"
+          style="color: #ff722d !important"
+          @click="$companyOrPersonal(item.staffName, item.hid)"
+        >关联{{ item.relateCompanyCount }}家企业></span
+        >
+      </div>
+    </van-list>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { $goCompany } from '@/utils/utils'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, reactive } from 'vue'
+  import $axios from '@/api'
+  const store = useDemensionListStore()
+
+  onMounted(() => {
+    getData()
+  })
+  const getData = async () => {
+    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})
+    info.value = res
+  }
+</script>
+
+<style scoped lang="scss">
+.yhc-model {
+  margin-top: 0;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  .guanlian {
+    margin-right: 15px;
+  }
+}
+</style>

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

@@ -1,5 +1,8 @@
 import { DemensionPagesInter } from './../../types'
-import SheBaoRenShuVue from '../../../components/ListCustom/SheBaoRenShu.vue'
+import SheBaoRenShuVue from '@/components/ListCustom/SheBaoRenShu.vue'
+import NianDuBaoGao from '@/components/DetailCustom/NianDuBaoGao.vue'
+import CaiWuShuJu from '@/components/ListCustom/CaiWuShuJu.vue'
+import { shallowRef } from 'vue'
 export const JiBenXinXi: DemensionPagesInter = {
   projectName: '基本信息',
   list: [
@@ -8,6 +11,203 @@ export const JiBenXinXi: DemensionPagesInter = {
       routing: 'SheBaoRenShu',
       title: '社保人数',
       listCustomRender: SheBaoRenShuVue
+    },
+    {
+      routing: 'GuDongXinXiNew',
+      code: 'shareholder_info_v8',
+      title: '股东信息',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          companyId: 'holderId',
+          value: 'holderName',
+          valueType: 'avatar'
+        },
+        {
+          // name: '股东名称',
+          value: 'holderName',
+          valueType: 'title',
+          companyId: 'holderId'
+        },
+
+        {
+          value: 'relateCompanyCount',
+          companyId: 'holderId',
+          companyName: 'holderName',
+          valueType: 'related'
+        },
+        {
+          name: '持股比例',
+          value: 'percent',
+          solt: (item: { percent: number }) => item.percent && (item.percent * 100).toFixed(4) + '%'
+        },
+        {
+          name: '股东类型',
+          value: 'holderType',
+          solt: (item: { holderType: string }) => item.holderType == '1'
+            ? '自然人股东'
+            : item.holderType == '2'
+              ? '企业法人'
+              : '-'
+        },
+        {
+          name: '认缴出资额',
+          value: 'capital'
+        },
+        {
+          name: '认缴出资时间',
+          listVal: 'holderCapitals',
+          value: 'time'
+        },
+        {
+          name: '实缴出资额',
+          listVal: 'holderActualCapitals',
+          value: 'amomon'
+        },
+        {
+          name: '实缴出资时间',
+          listVal: 'holderActualCapitals',
+          value: 'time'
+        }
+      ]
+    },
+    {
+      routing: 'ZhuYaoRenYuanNew',
+      code: 'eci_employees_v8',
+      title: '主要人员',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          companyId: 'hid',
+          value: 'staffName',
+          valueType: 'avatar'
+        },
+        {
+          value: 'relateCompanyCount',
+          companyId: 'hid',
+          companyName: 'staffName',
+          valueType: 'related'
+        },
+        {
+          valueType: 'title',
+          value: 'staffName'
+        },
+        {
+          name: '任职',
+          value: 'staffType'
+        }
+      ]
+    },
+    {
+      routing: 'DuiWaiTouZi',
+      code: 'eci_invest',
+      title: '对外投资',
+      apiUrl: 'firefly-erp/eci/dimension/detail',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          value: 'name',
+          valueType: 'title'
+        },
+        {
+          name: '法定代表人',
+          value: 'legalPersonName'
+        },
+        {
+          name: '注册资本',
+          value: 'regCapital'
+        },
+        {
+          name: '投资比例',
+          value: 'percent'
+        },
+        {
+          name: '经营状态',
+          value: 'regStatus'
+        },
+        {
+          name: '成立日期',
+          value: 'estiblishTime',
+          valueType: 'date'
+        },
+        {
+          name: '统一社会信用代码',
+          value: 'creditCode'
+        }
+      ]
+    },
+    {
+      routing: 'FenZhiJiGou',
+      code: 'eci_branch',
+      title: '分支机构',
+      noDataList: true,
+      apiUrl: 'firefly-erp/eci/dimension/detail',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          value: 'name',
+          valueType: 'title'
+        },
+        {
+          name: '法定代表人',
+          value: 'legalPersonName'
+        },
+        {
+          name: '注册资本',
+          value: 'regCapital'
+        },
+        {
+          name: '经营状态',
+          value: 'regStatus'
+        }
+      ]
+    },
+    {
+      routing: 'LiShiBianGeng',
+      code: 'eci_changes',
+      title: '历史变更',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          name: '变更项',
+          value: 'changeItem'
+        },
+        {
+          name: '变更时间',
+          value: 'changeTime',
+          valueType: 'date'
+        },
+        {
+          name: '变更前',
+          value: 'contentBefore'
+        },
+        {
+          name: '变更后',
+          value: 'contentAfter'
+        }
+      ]
+    },
+    {
+      routing: 'QiYeNianBao',
+      code: 'annual_report',
+      title: '企业年报',
+      noDataList: true,
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      detailCustomRender: shallowRef(NianDuBaoGao),
+      viewList: [
+        {
+          valueType: 'title',
+          value: 'reportYear',
+          solt: (item: { reportYear: string }) => item.reportYear + '年度报告'
+        }
+      ]
+    },
+    {
+      routing: 'CaiWuShuJu',
+      code: 'financial_data',
+      title: '财务数据',
+      companyId: 'ab154ca9fbaeb0fe6ae3cfb17359855e',
+      listCustomRender: shallowRef(CaiWuShuJu)
     }
   ]
 }

+ 292 - 0
src/js-pages/company-detail/ZhiShiChanQuan/index.ts

@@ -1,4 +1,6 @@
 import { DemensionPagesInter } from './../../types'
+import webImg from '@/assets/img/web.png'
+import { $goOuterUrl } from '@/utils/utils'
 const shangBiaoSelectList = [
   { text: '全部分类', value: '' },
   { text: '化学原料', value: 1 },
@@ -61,6 +63,18 @@ const returnShangBiaoStatus = (stamp: string) => {
     '8': '商标其他情况'
   }[stamp]
 }
+
+const returnZhuanliStatus = (stamp: string) => {
+  return {
+    '10': '有效',
+    '20': '失效',
+    '21': '专利权届满的专利',
+    '30': '在审'
+  }[stamp] || '-'
+}
+
+
+
 export const ZhiShiChanQuan: DemensionPagesInter = {
   projectName: '知识产权',
   list: [
@@ -113,6 +127,284 @@ export const ZhiShiChanQuan: DemensionPagesInter = {
           valueType: 'date'
         }
       ]
+    },
+    {
+      //tab未完成
+      code: 'eci_patent',
+      routing: 'ZhuanLi',
+      title: '专利',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      viewList: [
+        {
+          value: 'title',
+          valueType: 'title'
+        },
+        {
+          name: '申请号',
+          value: 'appNumber'
+        },
+        {
+          name: '申请日期',
+          value: 'appDate',
+          valueType: 'date'
+        },
+        {
+          name: '公布日期',
+          value: 'pubDate',
+          valueType: 'date'
+        },
+        {
+          name: '授权公布号',
+          value: 'pubNumber'
+        },
+        {
+          name: '法律状态',
+          value: 'statusCode',
+          solt: (item: { statusCode: string }) => returnZhuanliStatus(item.statusCode)
+        }
+      ]
+    },
+    {
+      code: 'soft_copy_right',
+      routing: 'RuanJianZhuZuoQuan',
+      title: '软件著作权',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      detailList: [
+        {
+          value: 'fullName',
+          valueType: 'title'
+        },
+        {
+          name: '软件著作权人',
+          listVal: 'authorNationalityInfo',
+          value: 'name',
+          companyId: 'keyno'
+        },
+        {
+          name: '软件简称',
+          value: 'simpleName'
+        },
+        {
+          name: '登记号',
+          value: 'regNum'
+        },
+        {
+          name: '分类号',
+          value: 'catNum'
+        },
+        {
+          name: '发布日期',
+          value: 'publishTime',
+          valueType: 'date'
+        },
+        {
+          name: '登记批准日期',
+          value: 'regTime',
+          valueType: 'date'
+        },
+        {
+          name: '版本号',
+          value: 'version'
+        }
+      ],
+      viewList: [
+        {
+          value: 'fullName',
+          valueType: 'title'
+        },
+        {
+          name: '软件简称',
+          value: 'simpleName'
+        },
+        {
+          name: '登记号',
+          value: 'regNum'
+        },
+        {
+          name: '分类号',
+          value: 'catNum'
+        },
+        {
+          name: '发布日期',
+          value: 'publishTime',
+          valueType: 'date'
+        },
+        {
+          name: '登记批准日期',
+          value: 'regTime',
+          valueType: 'date'
+        },
+        {
+          name: '版本号',
+          value: 'version'
+        }
+      ]
+    },
+    {
+      code: 'copy_right',
+      routing: 'ZuoPinZhuZuoQuan',
+      title: '作品著作权',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      detailList: [
+        {
+          value: 'name',
+          valueType: 'title'
+        },
+        {
+          name: '作品著作权人',
+          listVal: 'authorInfo',
+          value: 'name',
+          companyId: 'keyno'
+        },
+        {
+          name: '类别',
+          value: 'type'
+        },
+        {
+          name: '登记号',
+          value: 'regNum'
+        },
+        {
+          name: '登记日期',
+          value: 'regTime',
+          valueType: 'date'
+        },
+        {
+          name: '首次发表日期',
+          value: 'firstPublishTime',
+          valueType: 'date'
+        },
+        {
+          name: '创作完成日期',
+          value: 'finishTime',
+          valueType: 'date'
+        },
+        {
+          name: '发布日期',
+          value: 'publishTime',
+          valueType: 'date'
+        },
+        {
+          name: '地区',
+          value: 'province',
+          solt: (item: { province: string; city: string; country: string }) => `${item.province} ${item.city} ${item.country}`
+        }
+      ],
+      viewList: [
+        {
+          value: 'name',
+          valueType: 'title'
+        },
+        {
+          name: '类型',
+          value: 'type'
+        },
+        {
+          name: '登记号',
+          value: 'regNum'
+        },
+        {
+          name: '登记日期',
+          value: 'regTime',
+          valueType: 'date'
+        }
+      ]
+    },
+    {
+      code: 'web_site',
+      routing: 'ZhuCeWangZhan',
+      title: '网站域名',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      detailList: [
+        {
+          name: '网址',
+          value: 'webSite',
+          solt: (item: { webSite: string }) => `
+          <span class="link">${item.webSite}</span>`,
+          customClick: (item: { webSite: string }) => {
+            $goOuterUrl('http://' + item.webSite)
+          }
+        },
+        {
+          name: '网站首页地址',
+          value: 'siteUrl',
+          solt: (item: { siteUrl: string }) => `
+          <span class="link">${item.siteUrl}</span>`,
+          customClick: (item: { siteUrl: string }) => {
+            $goOuterUrl('http://' + item.siteUrl)
+          }
+        },
+        {
+          name: '域名',
+          value: 'domain'
+        },
+        {
+          name: '公司名',
+          value: 'companyName'
+        },
+        {
+          name: '地区',
+          value: 'province',
+          solt: (item: { province: string; city: string; country: string }) => `${item.province} ${item.city} ${item.country}`
+        },
+        {
+          name: '审核日期',
+          value: 'reviewTime',
+          valueType: 'date'
+        },
+        {
+          name: '网站名称',
+          value: 'webName'
+        },
+        {
+          name: '公司类型',
+          value: 'companyType'
+        },
+        {
+          name: '单位性质',
+          value: 'companyType'
+        },
+        {
+          name: '备案号',
+          value: 'liscense'
+        },
+        {
+          name: '创建时间',
+          value: 'createTime',
+          valueType: 'date'
+        }
+      ],
+      viewList: [
+        {
+          value: 'siteUrl',
+          valueType: 'title',
+          solt: (item: { siteUrl: string }) => `
+          <div class="flex" style="padding-bottom:6px">
+          <img src="${webImg}" style="width:20px;height:20px"/>
+          <span class="link" style="padding-left:4px">${item.siteUrl}</span>
+          </div>`,
+          customClick: (item: { siteUrl: string }) => {
+            $goOuterUrl('http://' + item.siteUrl)
+          }
+        },
+        {
+          name: '网站名称',
+          value: 'webName'
+        },
+        {
+          name: '备案号',
+          value: 'liscense'
+        },
+        {
+          name: '域名',
+          value: 'domain'
+        },
+        {
+          name: '审核时间',
+          value: 'reviewTime',
+          valueType: 'date'
+        }
+      ]
     }
   ]
 }

+ 4 - 3
src/js-pages/types.ts

@@ -1,3 +1,4 @@
+import { ShallowRef } from 'vue'
 
 export interface TotalDemensionInter {
   companyName: string,
@@ -56,15 +57,15 @@ export interface DemensionPagesListInter {
 export interface ViewListInter {
   name?: string,
   value: string,
-  //类型 时间、标题、万元、富文本、标题右边的tag,左边的logo
-  valueType?: 'date' | 'title' | 'w' | 'richText' | 'tag' | 'logo',
+  //类型 时间、标题、万元、富文本、标题右边的tag,左边的logo,右边的关联企业,头像
+  valueType?: 'date' | 'title' | 'w' | 'richText' | 'tag' | 'logo' | 'related' | 'avatar',
   //数组字段名
   listVal?: string,
   //需要跳转企业详情的ID和Name
   companyId?: string,
   companyName?: string,
   //自定义HTML元素
-  solt?: Function,
+  solt?: Function | ShallowRef,
   customClick?: Function,
 
   /**

+ 4 - 1
src/plugins/vant.ts

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

+ 16 - 0
src/utils/utils.ts

@@ -5,6 +5,22 @@ import dayjs from 'dayjs'
 
 
 
+
+export const $nameByCompanyName = function (company: string | string[], type: string) {
+  let name = type
+  if (company && company.indexOf('有限合伙') != -1) {
+    if (type == '法定代表人') {
+      name = '执行事务合伙人'
+    } else if (type == '股东信息') {
+      name = '合伙人信息'
+    } else if (type == '持股比例') {
+      name = '出资比例'
+    }
+  }
+  return name
+}
+
+
 //打开图片
 export const $openImg = (img: string) => {
   console.log(img)