61c64f38 by xukangle

Merge branch 'dev_20241202_xukangle' into develop

2 parents 56798cde 23cc819c
......@@ -53,6 +53,10 @@ VITE_API_DATA_SYNC = ms-swzl-data-sync-service
#消息接口
VITE_API_MESSAGE = ms-swzl-message-notification-service
#新门户接口
VITE_API_NEW_PORTAL = ms-daop-zcgl-asset-dam-service
# 是否在打包时生成 sourcemap
VITE_BUILD_SOURCEMAP = false
# 是否在打包时开启压缩,支持 gzip 和 brotli
......
......@@ -55,6 +55,7 @@
"@iconify-json/ep": "^1.1.10",
"@iconify/vue": "^4.1.1",
"@types/md5": "^2.3.2",
"@types/moment": "^2.13.0",
"@types/nprogress": "^0.2.0",
"@types/path-browserify": "^1.0.0",
"@types/qs": "^6.9.7",
......
......@@ -13,22 +13,22 @@ importers:
version: 4.8.24
'@antv/s2':
specifier: ^1.48.0
version: 1.56.0(@antv/g-base@0.4.7)
version: 1.56.0(@antv/g-base@0.5.16)
'@antv/s2-vue':
specifier: ^1.5.0
version: 1.7.1(@antv/s2@1.56.0)(ant-design-vue@3.2.20)(vue@3.5.13)
version: 1.7.1(@antv/s2@1.56.0(@antv/g-base@0.5.16))(ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))
'@vueuse/core':
specifier: ^10.1.0
version: 10.11.1(vue@3.5.13)
version: 10.11.1(vue@3.5.13(typescript@5.7.2))
'@vueuse/integrations':
specifier: ^10.1.0
version: 10.11.1(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.4)(vue@3.5.13)
version: 10.11.1(async-validator@4.2.5)(axios@1.7.7)(change-case@4.1.2)(nprogress@0.2.0)(sortablejs@1.15.4)(vue@3.5.13(typescript@5.7.2))
'@wangeditor/editor':
specifier: ^5.1.23
version: 5.1.23
'@wangeditor/editor-for-vue':
specifier: ^5.1.12
version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13)
version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13(typescript@5.7.2))
axios:
specifier: ^1.4.0
version: 1.7.7
......@@ -43,7 +43,7 @@ importers:
version: 5.5.1
element-plus:
specifier: ^2.5.2
version: 2.8.8(vue@3.5.13)
version: 2.8.8(vue@3.5.13(typescript@5.7.2))
eruda:
specifier: ^3.0.0
version: 3.4.1
......@@ -82,10 +82,10 @@ importers:
version: 6.3.0
pinia:
specifier: ^2.0.35
version: 2.2.6(typescript@5.7.2)(vue@3.5.13)
version: 2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
pinia-plugin-persistedstate:
specifier: ^2.2.0
version: 2.4.0(pinia@2.2.6)
version: 2.4.0(pinia@2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)))
pinyin-pro:
specifier: ^3.24.2
version: 3.26.0
......@@ -97,13 +97,13 @@ importers:
version: 1.15.4
vant:
specifier: ^4.9.8
version: 4.9.9(vue@3.5.13)
version: 4.9.9(vue@3.5.13(typescript@5.7.2))
vue:
specifier: ^3.2.47
version: 3.5.13(typescript@5.7.2)
vue-router:
specifier: ^4.1.6
version: 4.4.5(vue@3.5.13)
version: 4.4.5(vue@3.5.13(typescript@5.7.2))
xlsx:
specifier: ^0.18.5
version: 0.18.5
......@@ -119,10 +119,13 @@ importers:
version: 1.2.1
'@iconify/vue':
specifier: ^4.1.1
version: 4.1.2(vue@3.5.13)
version: 4.1.2(vue@3.5.13(typescript@5.7.2))
'@types/md5':
specifier: ^2.3.2
version: 2.3.5
'@types/moment':
specifier: ^2.13.0
version: 2.13.0
'@types/nprogress':
specifier: ^0.2.0
version: 0.2.3
......@@ -137,13 +140,13 @@ importers:
version: 1.2.1
'@vitejs/plugin-vue':
specifier: ^4.2.1
version: 4.6.2(vite@4.5.5)(vue@3.5.13)
version: 4.6.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue@3.5.13(typescript@5.7.2))
'@vitejs/plugin-vue-jsx':
specifier: ^3.0.1
version: 3.1.0(vite@4.5.5)(vue@3.5.13)
version: 3.1.0(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue@3.5.13(typescript@5.7.2))
autoprefixer:
specifier: ^10.4.14
version: 10.4.20(postcss@8.4.49)
version: 10.4.20(postcss@5.2.18)
eslint:
specifier: ^8.39.0
version: 8.57.1
......@@ -182,19 +185,19 @@ importers:
version: 15.11.0(typescript@5.7.2)
stylelint-config-standard:
specifier: ^33.0.0
version: 33.0.0(stylelint@15.11.0)
version: 33.0.0(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-standard-scss:
specifier: ^9.0.0
version: 9.0.0(postcss@8.4.49)(stylelint@15.11.0)
version: 9.0.0(postcss@5.2.18)(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-standard-vue:
specifier: ^1.0.0
version: 1.0.0(postcss-html@1.7.0)(stylelint@15.11.0)
version: 1.0.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2))
stylelint-scss:
specifier: ^5.0.0
version: 5.3.2(stylelint@15.11.0)
version: 5.3.2(stylelint@15.11.0(typescript@5.7.2))
stylelint-stylistic:
specifier: ^0.4.0
version: 0.4.5(stylelint@15.11.0)
version: 0.4.5(stylelint@15.11.0(typescript@5.7.2))
svgo:
specifier: ^3.0.2
version: 3.3.2
......@@ -206,40 +209,40 @@ importers:
version: 5.7.2
unplugin-auto-import:
specifier: ^0.15.3
version: 0.15.3(@vueuse/core@10.11.1)
version: 0.15.3(@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.2)))(rollup@3.29.5)
unplugin-vue-components:
specifier: ^0.24.1
version: 0.24.1(vue@3.5.13)
version: 0.24.1(@babel/parser@7.26.2)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))
unplugin-vue-setup-extend-plus:
specifier: ^1.0.0
version: 1.0.1
vite:
specifier: ^4.3.3
version: 4.5.5(sass@1.81.0)(terser@5.36.0)
version: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
vite-plugin-banner:
specifier: ^0.7.0
version: 0.7.1
vite-plugin-compression:
specifier: ^0.5.1
version: 0.5.1(vite@4.5.5)
version: 0.5.1(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))
vite-plugin-mock:
specifier: ^2.9.8
version: 2.9.8(mockjs@1.1.0)(vite@4.5.5)
version: 2.9.8(mockjs@1.1.0)(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))
vite-plugin-pages:
specifier: ^0.29.0
version: 0.29.1(vite@4.5.5)
version: 0.29.1(@vue/compiler-sfc@3.5.13)(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))
vite-plugin-spritesmith:
specifier: ^0.1.1
version: 0.1.1
vite-plugin-svg-icons:
specifier: ^2.0.1
version: 2.0.1(vite@4.5.5)
version: 2.0.1(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))
vite-plugin-vue-inspector:
specifier: ^3.4.1
version: 3.7.2(vite@4.5.5)
version: 3.7.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))
vite-plugin-vue-meta-layouts:
specifier: ^0.2.2
version: 0.2.2(vite@4.5.5)(vue-router@4.4.5)
version: 0.2.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.13(typescript@5.7.2)))
vue-tsc:
specifier: ^1.6.2
version: 1.8.27(typescript@5.7.2)
......@@ -297,9 +300,6 @@ packages:
'@antv/event-emitter@0.1.3':
resolution: {integrity: sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==}
'@antv/g-base@0.4.7':
resolution: {integrity: sha512-wKSpS3/M1slU92iOgi2QV4MCd82J1d2PyPcQArqSFRUZU0KnVMIl95v79dG0Be4YvFaZ3bVrT6Ns1Czr8oplhA==}
'@antv/g-base@0.5.16':
resolution: {integrity: sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==}
......@@ -898,9 +898,6 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@types/d3-timer@1.0.12':
resolution: {integrity: sha512-Tv9tkA4y3UvGQnrHyYAQhf5x/297FuYwotS4UW2TpwLblvRahbyL8r9HFYTJLPfPRqS63hwlqRItjKGmKtJxNg==}
'@types/d3-timer@2.0.3':
resolution: {integrity: sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==}
......@@ -946,6 +943,10 @@ packages:
'@types/mockjs@1.0.10':
resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==}
'@types/moment@2.13.0':
resolution: {integrity: sha512-DyuyYGpV6r+4Z1bUznLi/Y7HpGn4iQ4IVcGn8zrr1P4KotKLdH0sbK1TFR6RGyX6B+G8u83wCzL+bpawKU/hdQ==}
deprecated: This is a stub types definition for Moment (https://github.com/moment/moment). Moment provides its own type definitions, so you don't need @types/moment installed!
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
......@@ -5487,26 +5488,26 @@ snapshots:
'@ant-design/icons-svg@4.4.2': {}
'@ant-design/icons-vue@6.1.0(vue@3.5.13)':
'@ant-design/icons-vue@6.1.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-svg': 4.4.2
vue: 3.5.13(typescript@5.7.2)
'@antfu/eslint-config-basic@0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)':
'@antfu/eslint-config-basic@0.38.6(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
eslint: 8.57.1
eslint-plugin-antfu: 0.38.6(eslint@8.57.1)(typescript@5.7.2)
eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1)
eslint-plugin-html: 7.1.0
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)
eslint-plugin-jsonc: 2.18.2(eslint@8.57.1)
eslint-plugin-markdown: 3.0.1(eslint@8.57.1)
eslint-plugin-n: 15.7.0(eslint@8.57.1)
eslint-plugin-no-only-tests: 3.3.0
eslint-plugin-promise: 6.6.0(eslint@8.57.1)
eslint-plugin-unicorn: 46.0.1(eslint@8.57.1)
eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.1)
eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)
eslint-plugin-yml: 1.15.0(eslint@8.57.1)
jsonc-eslint-parser: 2.4.0
yaml-eslint-parser: 1.2.3
......@@ -5521,11 +5522,11 @@ snapshots:
'@antfu/eslint-config-ts@0.38.6(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
typescript: 5.7.2
transitivePeerDependencies:
- '@eslint/json'
......@@ -5534,9 +5535,9 @@ snapshots:
- jest
- supports-color
'@antfu/eslint-config-vue@0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)':
'@antfu/eslint-config-vue@0.38.6(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@antfu/eslint-config-ts': 0.38.6(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
eslint-plugin-vue: 9.31.0(eslint@8.57.1)
......@@ -5553,13 +5554,13 @@ snapshots:
'@antfu/eslint-config@0.38.6(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@antfu/eslint-config-vue': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@antfu/eslint-config-vue': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1)
eslint-plugin-html: 7.1.0
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)
eslint-plugin-jsonc: 2.18.2(eslint@8.57.1)
eslint-plugin-n: 15.7.0(eslint@8.57.1)
eslint-plugin-promise: 6.6.0(eslint@8.57.1)
......@@ -5589,19 +5590,6 @@ snapshots:
'@antv/event-emitter@0.1.3': {}
'@antv/g-base@0.4.7':
dependencies:
'@antv/event-emitter': 0.1.3
'@antv/g-math': 0.1.9
'@antv/matrix-util': 3.1.0-beta.3
'@antv/path-util': 2.0.15
'@antv/util': 2.0.17
'@types/d3-timer': 1.0.12
d3-ease: 1.0.7
d3-interpolate: 1.4.0
d3-timer: 1.0.10
detect-browser: 5.3.0
'@antv/g-base@0.5.16':
dependencies:
'@antv/event-emitter': 0.1.3
......@@ -5626,10 +5614,10 @@ snapshots:
gl-matrix: 3.4.3
tslib: 2.8.1
'@antv/g-gesture@1.0.1(@antv/g-base@0.4.7)':
'@antv/g-gesture@1.0.1(@antv/g-base@0.5.16)':
dependencies:
'@antv/event-emitter': 0.1.3
'@antv/g-base': 0.4.7
'@antv/g-base': 0.5.16
d3-ease: 1.0.7
'@antv/g-math@0.1.9':
......@@ -5768,21 +5756,21 @@ snapshots:
'@antv/util': 2.0.17
tslib: 2.8.1
'@antv/s2-vue@1.7.1(@antv/s2@1.56.0)(ant-design-vue@3.2.20)(vue@3.5.13)':
'@antv/s2-vue@1.7.1(@antv/s2@1.56.0(@antv/g-base@0.5.16))(ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@antv/s2': 1.56.0(@antv/g-base@0.4.7)
'@vueuse/core': 10.11.1(vue@3.5.13)
ant-design-vue: 3.2.20(vue@3.5.13)
'@antv/s2': 1.56.0(@antv/g-base@0.5.16)
'@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.2))
ant-design-vue: 3.2.20(vue@3.5.13(typescript@5.7.2))
lodash: 4.17.21
vue: 3.5.13(typescript@5.7.2)
transitivePeerDependencies:
- '@vue/composition-api'
'@antv/s2@1.56.0(@antv/g-base@0.4.7)':
'@antv/s2@1.56.0(@antv/g-base@0.5.16)':
dependencies:
'@antv/event-emitter': 0.1.3
'@antv/g-canvas': 0.5.17
'@antv/g-gesture': 1.0.1(@antv/g-base@0.4.7)
'@antv/g-gesture': 1.0.1(@antv/g-base@0.5.16)
d3-interpolate: 1.4.0
d3-timer: 1.0.10
decimal.js: 10.4.3
......@@ -6006,7 +5994,7 @@ snapshots:
'@csstools/css-tokenizer@2.4.1': {}
'@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1)(@csstools/css-tokenizer@2.4.1)':
'@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
dependencies:
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
'@csstools/css-tokenizer': 2.4.1
......@@ -6017,7 +6005,7 @@ snapshots:
'@ctrl/tinycolor@3.6.1': {}
'@element-plus/icons-vue@2.3.1(vue@3.5.13)':
'@element-plus/icons-vue@2.3.1(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue: 3.5.13(typescript@5.7.2)
......@@ -6142,7 +6130,7 @@ snapshots:
'@iconify/types@2.0.0': {}
'@iconify/vue@4.1.2(vue@3.5.13)':
'@iconify/vue@4.1.2(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@iconify/types': 2.0.0
vue: 3.5.13(typescript@5.7.2)
......@@ -6255,11 +6243,13 @@ snapshots:
dependencies:
'@babel/runtime': 7.26.0
'@rollup/pluginutils@5.1.3':
'@rollup/pluginutils@5.1.3(rollup@3.29.5)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
rollup: 3.29.5
'@rtsao/scc@1.1.0': {}
......@@ -6274,8 +6264,6 @@ snapshots:
'@trysound/sax@0.2.0': {}
'@types/d3-timer@1.0.12': {}
'@types/d3-timer@2.0.3': {}
'@types/debug@4.1.12':
......@@ -6318,6 +6306,10 @@ snapshots:
'@types/mockjs@1.0.10': {}
'@types/moment@2.13.0':
dependencies:
moment: 2.30.1
'@types/ms@0.7.34': {}
'@types/node@22.9.3':
......@@ -6348,7 +6340,7 @@ snapshots:
'@types/web-bluetooth@0.0.20': {}
'@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)':
'@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
......@@ -6362,6 +6354,7 @@ snapshots:
natural-compare-lite: 1.4.0
semver: 7.6.3
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
......@@ -6373,6 +6366,7 @@ snapshots:
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2)
debug: 4.3.7
eslint: 8.57.1
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
......@@ -6389,6 +6383,7 @@ snapshots:
debug: 4.3.7
eslint: 8.57.1
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
......@@ -6404,6 +6399,7 @@ snapshots:
is-glob: 4.0.3
semver: 7.6.3
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
......@@ -6463,23 +6459,23 @@ snapshots:
'@vant/popperjs@1.3.0': {}
'@vant/use@1.6.0(vue@3.5.13)':
'@vant/use@1.6.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue: 3.5.13(typescript@5.7.2)
'@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5)(vue@3.5.13)':
'@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0)
'@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0)
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
vue: 3.5.13(typescript@5.7.2)
transitivePeerDependencies:
- supports-color
'@vitejs/plugin-vue@4.6.2(vite@4.5.5)(vue@3.5.13)':
'@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue@3.5.13(typescript@5.7.2))':
dependencies:
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
vue: 3.5.13(typescript@5.7.2)
'@volar/language-core@1.11.1':
......@@ -6499,7 +6495,6 @@ snapshots:
'@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.0)':
dependencies:
'@babel/core': 7.26.0
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
......@@ -6510,6 +6505,8 @@ snapshots:
'@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.26.0)
html-tags: 3.3.1
svg-tags: 1.0.0
optionalDependencies:
'@babel/core': 7.26.0
transitivePeerDependencies:
- supports-color
......@@ -6566,8 +6563,9 @@ snapshots:
minimatch: 9.0.5
muggle-string: 0.3.1
path-browserify: 1.0.1
typescript: 5.7.2
vue-template-compiler: 2.7.16
optionalDependencies:
typescript: 5.7.2
'@vue/reactivity@3.5.13':
dependencies:
......@@ -6585,7 +6583,7 @@ snapshots:
'@vue/shared': 3.5.13
csstype: 3.1.3
'@vue/server-renderer@3.5.13(vue@3.5.13)':
'@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
......@@ -6593,34 +6591,37 @@ snapshots:
'@vue/shared@3.5.13': {}
'@vueuse/core@10.11.1(vue@3.5.13)':
'@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.11.1
'@vueuse/shared': 10.11.1(vue@3.5.13)
vue-demi: 0.14.10(vue@3.5.13)
'@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.2))
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/core@9.13.0(vue@3.5.13)':
'@vueuse/core@9.13.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
'@vueuse/shared': 9.13.0(vue@3.5.13)
vue-demi: 0.14.10(vue@3.5.13)
'@vueuse/shared': 9.13.0(vue@3.5.13(typescript@5.7.2))
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/integrations@10.11.1(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.4)(vue@3.5.13)':
'@vueuse/integrations@10.11.1(async-validator@4.2.5)(axios@1.7.7)(change-case@4.1.2)(nprogress@0.2.0)(sortablejs@1.15.4)(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@vueuse/core': 10.11.1(vue@3.5.13)
'@vueuse/shared': 10.11.1(vue@3.5.13)
'@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.2))
'@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.2))
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
optionalDependencies:
async-validator: 4.2.5
axios: 1.7.7
change-case: 4.1.2
nprogress: 0.2.0
sortablejs: 1.15.4
vue-demi: 0.14.10(vue@3.5.13)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
......@@ -6629,23 +6630,23 @@ snapshots:
'@vueuse/metadata@9.13.0': {}
'@vueuse/shared@10.11.1(vue@3.5.13)':
'@vueuse/shared@10.11.1(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue-demi: 0.14.10(vue@3.5.13)
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/shared@9.13.0(vue@3.5.13)':
'@vueuse/shared@9.13.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue-demi: 0.14.10(vue@3.5.13)
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
is-url: 1.2.4
lodash.throttle: 4.1.1
......@@ -6653,15 +6654,15 @@ snapshots:
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
prismjs: 1.29.0
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@types/event-emitter': 0.3.5
'@uppy/core': 2.3.4
......@@ -6684,7 +6685,7 @@ snapshots:
slate-history: 0.66.0(slate@0.72.8)
snabbdom: 3.6.2
'@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13)':
'@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@wangeditor/editor': 5.1.23
vue: 3.5.13(typescript@5.7.2)
......@@ -6693,13 +6694,13 @@ snapshots:
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
is-hotkey: 0.2.0
lodash.camelcase: 4.3.0
......@@ -6713,16 +6714,16 @@ snapshots:
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
lodash.isequal: 4.5.0
lodash.throttle: 4.1.1
......@@ -6730,22 +6731,22 @@ snapshots:
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
lodash.foreach: 4.5.0
slate: 0.72.8
snabbdom: 3.6.2
'@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
'@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)':
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
nanoid: 3.3.7
slate: 0.72.8
......@@ -6809,10 +6810,10 @@ snapshots:
ansi-styles@6.2.1: {}
ant-design-vue@3.2.20(vue@3.5.13):
ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 6.1.0(vue@3.5.13)
'@ant-design/icons-vue': 6.1.0(vue@3.5.13(typescript@5.7.2))
'@babel/runtime': 7.26.0
'@ctrl/tinycolor': 3.6.1
'@simonwep/pickr': 1.8.2
......@@ -6827,7 +6828,7 @@ snapshots:
scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1
vue: 3.5.13(typescript@5.7.2)
vue-types: 3.0.2(vue@3.5.13)
vue-types: 3.0.2(vue@3.5.13(typescript@5.7.2))
warning: 4.0.3
anymatch@3.1.3:
......@@ -6925,14 +6926,14 @@ snapshots:
atob@2.1.2: {}
autoprefixer@10.4.20(postcss@8.4.49):
autoprefixer@10.4.20(postcss@5.2.18):
dependencies:
browserslist: 4.24.2
caniuse-lite: 1.0.30001684
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
postcss: 8.4.49
postcss: 5.2.18
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
......@@ -7315,6 +7316,7 @@ snapshots:
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
optionalDependencies:
typescript: 5.7.2
crc-32@1.2.2: {}
......@@ -7654,15 +7656,15 @@ snapshots:
electron-to-chromium@1.5.64: {}
element-plus@2.8.8(vue@3.5.13):
element-plus@2.8.8(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@ctrl/tinycolor': 3.6.1
'@element-plus/icons-vue': 2.3.1(vue@3.5.13)
'@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.7.2))
'@floating-ui/dom': 1.6.12
'@popperjs/core': '@sxzz/popperjs-es@2.11.7'
'@types/lodash': 4.17.13
'@types/lodash-es': 4.17.12
'@vueuse/core': 9.13.0(vue@3.5.13)
'@vueuse/core': 9.13.0(vue@3.5.13(typescript@5.7.2))
async-validator: 4.2.5
dayjs: 1.11.13
escape-html: 1.0.3
......@@ -7943,10 +7945,11 @@ snapshots:
esquery: 1.6.0
jsonc-eslint-parser: 2.4.0
eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
......@@ -7976,10 +7979,9 @@ snapshots:
dependencies:
htmlparser2: 8.0.2
eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1):
eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
array.prototype.flat: 1.3.2
......@@ -7988,7 +7990,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3
......@@ -7999,16 +8001,19 @@ snapshots:
semver: 6.3.1
string.prototype.trimend: 1.0.8
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.1)(typescript@5.7.2):
eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2):
dependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
optionalDependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
transitivePeerDependencies:
- supports-color
- typescript
......@@ -8072,11 +8077,12 @@ snapshots:
semver: 7.6.3
strip-indent: 3.0.0
eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.1):
eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1):
dependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.1)(typescript@5.7.2)
eslint: 8.57.1
eslint-rule-composer: 0.3.0
optionalDependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
eslint-plugin-vue@9.31.0(eslint@8.57.1):
dependencies:
......@@ -9853,16 +9859,17 @@ snapshots:
pify@3.0.0: {}
pinia-plugin-persistedstate@2.4.0(pinia@2.2.6):
dependencies:
pinia: 2.2.6(typescript@5.7.2)(vue@3.5.13)
pinia-plugin-persistedstate@2.4.0(pinia@2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))):
optionalDependencies:
pinia: 2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
pinia@2.2.6(typescript@5.7.2)(vue@3.5.13):
pinia@2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@vue/devtools-api': 6.6.4
typescript: 5.7.2
vue: 3.5.13(typescript@5.7.2)
vue-demi: 0.14.10(vue@3.5.13)
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
optionalDependencies:
typescript: 5.7.2
pinyin-pro@3.26.0: {}
......@@ -9931,9 +9938,9 @@ snapshots:
dependencies:
postcss: 8.4.49
postcss-scss@4.0.9(postcss@8.4.49):
postcss-scss@4.0.9(postcss@5.2.18):
dependencies:
postcss: 8.4.49
postcss: 5.2.18
postcss-selector-parser@6.1.2:
dependencies:
......@@ -10594,56 +10601,58 @@ snapshots:
style-search@0.1.0: {}
stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@15.11.0):
stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss-html: 1.7.0
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-recommended-scss@11.0.0(postcss@8.4.49)(stylelint@15.11.0):
stylelint-config-recommended-scss@11.0.0(postcss@5.2.18)(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss: 8.4.49
postcss-scss: 4.0.9(postcss@8.4.49)
postcss-scss: 4.0.9(postcss@5.2.18)
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-recommended: 12.0.0(stylelint@15.11.0)
stylelint-scss: 4.7.0(stylelint@15.11.0)
stylelint-config-recommended: 12.0.0(stylelint@15.11.0(typescript@5.7.2))
stylelint-scss: 4.7.0(stylelint@15.11.0(typescript@5.7.2))
optionalDependencies:
postcss: 5.2.18
stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@15.11.0):
stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss-html: 1.7.0
semver: 7.6.3
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0)
stylelint-config-recommended: 14.0.1(stylelint@15.11.0)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-recommended: 14.0.1(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-recommended@12.0.0(stylelint@15.11.0):
stylelint-config-recommended@12.0.0(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-recommended@14.0.1(stylelint@15.11.0):
stylelint-config-recommended@14.0.1(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-standard-scss@9.0.0(postcss@8.4.49)(stylelint@15.11.0):
stylelint-config-standard-scss@9.0.0(postcss@5.2.18)(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss: 8.4.49
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-recommended-scss: 11.0.0(postcss@8.4.49)(stylelint@15.11.0)
stylelint-config-standard: 33.0.0(stylelint@15.11.0)
stylelint-config-recommended-scss: 11.0.0(postcss@5.2.18)(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-standard: 33.0.0(stylelint@15.11.0(typescript@5.7.2))
optionalDependencies:
postcss: 5.2.18
stylelint-config-standard-vue@1.0.0(postcss-html@1.7.0)(stylelint@15.11.0):
stylelint-config-standard-vue@1.0.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss-html: 1.7.0
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0)
stylelint-config-recommended-vue: 1.5.0(postcss-html@1.7.0)(stylelint@15.11.0)
stylelint-config-standard: 33.0.0(stylelint@15.11.0)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-recommended-vue: 1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-standard: 33.0.0(stylelint@15.11.0(typescript@5.7.2))
stylelint-config-standard@33.0.0(stylelint@15.11.0):
stylelint-config-standard@33.0.0(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
stylelint: 15.11.0(typescript@5.7.2)
stylelint-config-recommended: 12.0.0(stylelint@15.11.0)
stylelint-config-recommended: 12.0.0(stylelint@15.11.0(typescript@5.7.2))
stylelint-scss@4.7.0(stylelint@15.11.0):
stylelint-scss@4.7.0(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
postcss-media-query-parser: 0.2.3
postcss-resolve-nested-selector: 0.1.6
......@@ -10651,7 +10660,7 @@ snapshots:
postcss-value-parser: 4.2.0
stylelint: 15.11.0(typescript@5.7.2)
stylelint-scss@5.3.2(stylelint@15.11.0):
stylelint-scss@5.3.2(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
known-css-properties: 0.29.0
postcss-media-query-parser: 0.2.3
......@@ -10660,7 +10669,7 @@ snapshots:
postcss-value-parser: 4.2.0
stylelint: 15.11.0(typescript@5.7.2)
stylelint-stylistic@0.4.5(stylelint@15.11.0):
stylelint-stylistic@0.4.5(stylelint@15.11.0(typescript@5.7.2)):
dependencies:
is-plain-object: 5.0.0
postcss: 8.4.49
......@@ -10673,7 +10682,7 @@ snapshots:
dependencies:
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
'@csstools/css-tokenizer': 2.4.1
'@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1)(@csstools/css-tokenizer@2.4.1)
'@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
balanced-match: 2.0.0
colord: 2.9.3
......@@ -10970,9 +10979,9 @@ snapshots:
undici-types@6.19.8: {}
unimport@3.13.3:
unimport@3.13.3(rollup@3.29.5):
dependencies:
'@rollup/pluginutils': 5.1.3
'@rollup/pluginutils': 5.1.3(rollup@3.29.5)
acorn: 8.14.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
......@@ -11009,23 +11018,24 @@ snapshots:
unpipe@1.0.0: {}
unplugin-auto-import@0.15.3(@vueuse/core@10.11.1):
unplugin-auto-import@0.15.3(@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.2)))(rollup@3.29.5):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3
'@vueuse/core': 10.11.1(vue@3.5.13)
'@rollup/pluginutils': 5.1.3(rollup@3.29.5)
local-pkg: 0.4.3
magic-string: 0.30.13
minimatch: 9.0.5
unimport: 3.13.3
unimport: 3.13.3(rollup@3.29.5)
unplugin: 1.16.0
optionalDependencies:
'@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- rollup
unplugin-vue-components@0.24.1(vue@3.5.13):
unplugin-vue-components@0.24.1(@babel/parser@7.26.2)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3
'@rollup/pluginutils': 5.1.3(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.3.7
fast-glob: 3.3.2
......@@ -11035,6 +11045,8 @@ snapshots:
resolve: 1.22.8
unplugin: 1.16.0
vue: 3.5.13(typescript@5.7.2)
optionalDependencies:
'@babel/parser': 7.26.2
transitivePeerDependencies:
- rollup
- supports-color
......@@ -11096,10 +11108,10 @@ snapshots:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
vant@4.9.9(vue@3.5.13):
vant@4.9.9(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@vant/popperjs': 1.3.0
'@vant/use': 1.6.0(vue@3.5.13)
'@vant/use': 1.6.0(vue@3.5.13(typescript@5.7.2))
'@vue/shared': 3.5.13
vue: 3.5.13(typescript@5.7.2)
......@@ -11126,16 +11138,16 @@ snapshots:
vite-plugin-banner@0.7.1: {}
vite-plugin-compression@0.5.1(vite@4.5.5):
vite-plugin-compression@0.5.1(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)):
dependencies:
chalk: 4.1.2
debug: 4.3.7
fs-extra: 10.1.0
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.5):
vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)):
dependencies:
'@types/mockjs': 1.0.10
chalk: 4.1.2
......@@ -11146,11 +11158,11 @@ snapshots:
fast-glob: 3.3.2
mockjs: 1.1.0
path-to-regexp: 6.3.0
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
vite-plugin-pages@0.29.1(vite@4.5.5):
vite-plugin-pages@0.29.1(@vue/compiler-sfc@3.5.13)(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)):
dependencies:
'@types/debug': 4.1.12
debug: 4.3.7
......@@ -11160,8 +11172,10 @@ snapshots:
json5: 2.2.3
local-pkg: 0.4.3
picocolors: 1.1.1
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
yaml: 2.6.1
optionalDependencies:
'@vue/compiler-sfc': 3.5.13
transitivePeerDependencies:
- supports-color
......@@ -11174,7 +11188,7 @@ snapshots:
spritesheet-templates: 10.5.2
spritesmith: 3.5.1
vite-plugin-svg-icons@2.0.1(vite@4.5.5):
vite-plugin-svg-icons@2.0.1(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)):
dependencies:
'@types/svgo': 2.6.4
cors: 2.8.5
......@@ -11184,11 +11198,11 @@ snapshots:
pathe: 0.2.0
svg-baker: 1.7.0
svgo: 2.8.0
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
vite-plugin-vue-inspector@3.7.2(vite@4.5.5):
vite-plugin-vue-inspector@3.7.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)):
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0)
......@@ -11199,27 +11213,28 @@ snapshots:
'@vue/compiler-dom': 3.5.13
kolorist: 1.8.0
magic-string: 0.30.13
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
vite-plugin-vue-meta-layouts@0.2.2(vite@4.5.5)(vue-router@4.4.5):
vite-plugin-vue-meta-layouts@0.2.2(vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.13(typescript@5.7.2))):
dependencies:
local-pkg: 0.4.3
vite: 4.5.5(sass@1.81.0)(terser@5.36.0)
vue-router: 4.4.5(vue@3.5.13)
vite: 4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0)
vue-router: 4.4.5(vue@3.5.13(typescript@5.7.2))
vite@4.5.5(sass@1.81.0)(terser@5.36.0):
vite@4.5.5(@types/node@22.9.3)(sass@1.81.0)(terser@5.36.0):
dependencies:
esbuild: 0.18.20
postcss: 8.4.49
rollup: 3.29.5
sass: 1.81.0
terser: 5.36.0
optionalDependencies:
'@types/node': 22.9.3
fsevents: 2.3.3
sass: 1.81.0
terser: 5.36.0
vue-demi@0.14.10(vue@3.5.13):
vue-demi@0.14.10(vue@3.5.13(typescript@5.7.2)):
dependencies:
vue: 3.5.13(typescript@5.7.2)
......@@ -11236,7 +11251,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
vue-router@4.4.5(vue@3.5.13):
vue-router@4.4.5(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13(typescript@5.7.2)
......@@ -11253,7 +11268,7 @@ snapshots:
semver: 7.6.3
typescript: 5.7.2
vue-types@3.0.2(vue@3.5.13):
vue-types@3.0.2(vue@3.5.13(typescript@5.7.2)):
dependencies:
is-plain-object: 3.0.1
vue: 3.5.13(typescript@5.7.2)
......@@ -11263,8 +11278,9 @@ snapshots:
'@vue/compiler-dom': 3.5.13
'@vue/compiler-sfc': 3.5.13
'@vue/runtime-dom': 3.5.13
'@vue/server-renderer': 3.5.13(vue@3.5.13)
'@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.2))
'@vue/shared': 3.5.13
optionalDependencies:
typescript: 5.7.2
warning@4.0.3:
......
......@@ -2,81 +2,81 @@ import request from "@/utils/request";
/** 获取首页组织机构信息 */
export const getHomeServiceInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/company/service-info`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/company/service-info`,
method: 'get',
})
/** 获取首页资产统计信息 */
export const getStatisticsInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/company/statistics-info`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/company/statistics-info`,
method: 'get',
})
/** 获取首页资产登记情况 */
export const getRegisterInfo = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/company/register-info`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/company/register-info`,
method: 'post',
data: params
})
/** 获取首页资产质量情况 */
export const getQualityInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/company/quality-info`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/company/quality-info`,
method: 'get',
})
/** 获取首页资产交易情况 */
export const getDaTradeInfo = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-trade/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-trade/page-list`,
method: 'post',
data: params
})
/** 获取资产融资情况 */
export const getFinanceInfo = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-financing/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-financing/page-list`,
method: 'post',
data: params
})
/** 获取资产证件照url */
export const getRegisterUrl = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/company/list-doc-url`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/company/list-doc-url`,
method: 'get',
})
/** 获取资产行业类型分布 */
export const getIndustryInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/industry-statistics`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/industry-statistics`,
method: 'get',
})
/** 获取平台授信主体金额分布 */
export const getCreditMoneyInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/credit-money-statistics`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/credit-money-statistics`,
method: 'get',
})
/** 获取平台资产统计信息 */
export const getPlatformStatisticsInfo = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/statistics-info`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/statistics-info`,
method: 'get',
})
/** 获取平台服务企业地区分布 */
export const getPlatformService = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/service-statistics`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/service-statistics`,
method: 'get',
})
/** 获取平台服务企业地区分布-按省 */
export const getPlatformProvinceService = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/service-statistics-province`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/service-statistics-province`,
method: 'get',
})
/** 获取平台数据资产登记趋势 */
export const getPlatformMonth = () => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/home/platform/register-month-statistics`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/home/platform/register-month-statistics`,
method: 'get',
})
......
......@@ -175,10 +175,14 @@ const rowClassName = (rowObj) => {
return "edit_row";
}
const row = rowObj.row;
let className = "";
if (row.ROWID && row.STATUS === "edit" && row.STATE === "Running") {
className = "edit_row";
}
if (row.guid === currentRowKey.value) {
className += "current-row";
}
return className;
};
......@@ -232,10 +236,11 @@ onMounted(() => {
:show-header="props.tableInfo.showHeader ?? true" stripe :border="props.tableInfo.border
?? true" :height="props.tableInfo.height === null ? null : (props.tableInfo.height ?? '100%')"
:max-height="maxHeight" :row-key="rowKey" :current-row-key="currentRowKey" :row-class-name="rowClassName"
v-loading="tableDataLoading" @row-click="rowClick" @row-dblclick="rowDblClick" @selection-change="selectionChange"
@select="tableCheckboxSelectChange" @select-all="tableCheckboxAllSelectChange"
style="width: 100%; display: inline-block" :style="{ 'min-height': props.tableInfo.minHeight ?? '200px' }"
tooltip-effect="light" :tooltip-options="{ placement: 'top', popperClass: 'table_cell_tooltip' }"
:expand-row-keys="props.tableInfo.expandRowKeys" v-loading="tableDataLoading" @row-click="rowClick"
@row-dblclick="rowDblClick" @selection-change="selectionChange" @select="tableCheckboxSelectChange"
@select-all="tableCheckboxAllSelectChange" style="width: 100%; display: inline-block"
:style="{ 'min-height': props.tableInfo.minHeight ?? '200px' }" tooltip-effect="light"
:tooltip-options="{ placement: 'top', popperClass: 'table_cell_tooltip' }"
:show-summary="props.tableInfo.showSummary ?? false">
<el-table-column type="selection" :width="32" align="center" v-if="multiple" :selectable="rowSelectable"
:fixed="fixedSelection" />
......
......@@ -19,33 +19,33 @@ watch(
const combPath = pathArr[1] || 'app-scenes'
const toPath = pathArr[2]
const routerLength = pathArr.length
const jionPath = pathArr.slice(0,3).join("/")
const jionPath = pathArr.slice(0, 3).join("/")
let list: any = userStore.tabbar;
let pathIndex = ref(-1)
const isExist = list.filter((tab: any,index) => {
if(tab.fullPath.includes(jionPath)) {
const isExist = list.filter((tab: any, index) => {
if (tab.fullPath.includes(jionPath)) {
pathIndex.value = index
}
return tab.fullPath === newRouter.fullPath
});
if(isExist.length == 0) {
if( pathIndex.value!=-1 && routerLength > 3 ) {
list.splice(pathIndex.value+1,0,newRouter)
});
if (isExist.length == 0) {
if (pathIndex.value != -1 && routerLength > 3) {
list.splice(pathIndex.value + 1, 0, newRouter)
} else {
let pathIndex = -1
const option = list.find((item,index)=>{
const option = list.find((item, index) => {
pathIndex = index
return item.path===newRouter.path
return item.path === newRouter.path
})
if(option){
list.splice(pathIndex,1,newRouter);
if (option) {
list.splice(pathIndex, 1, newRouter);
} else {
list.push(newRouter)
}
}
}
// isExist.length == 0 && list.push(newRouter);
// isExist.length == 0 && list.push(newRouter);
list.map(item => {
if (combPath == 'app-scenes') {
item.visible = item.fullPath == '/'
......@@ -90,7 +90,7 @@ const removeTab = (targetName) => {
visibleTabs.value.splice(tabIndex, 1);
if (activeTab && router.currentRoute.value.fullPath != targetName) {
keepAliveStore.remove(activeTab.meta.reuse ? activeTab.fullPath : activeTab.matched.at(-1)?.components?.default?.name)
}
}
}
nextTick(() => {
nextTab.name && router.push({ name: nextTab.name, query: nextTab.query });
......@@ -166,13 +166,13 @@ onMounted(() => {
<svg-icon name="bar-home" />
</el-icon>
<ellipsis-tooltip :content="item.meta?.title" class-name="w100f"
:refName="'tooltipOver' + item.meta?.title"></ellipsis-tooltip>
:refName="'tooltipOver' + item.meta?.title"></ellipsis-tooltip>
</span>
</template>
<template #label v-else>
<span class="custom-tabs-label">
<ellipsis-tooltip :content="item.meta?.title" class-name="w100f"
:refName="'tooltipOver' + item.meta?.title"></ellipsis-tooltip>
:refName="'tooltipOver' + item.meta?.title"></ellipsis-tooltip>
</span>
</template>
</el-tab-pane>
......@@ -226,6 +226,7 @@ onMounted(() => {
.custom-tabs-label {
max-width: 280px;
.el-icon {
color: #999;
......@@ -252,9 +253,10 @@ onMounted(() => {
background: #fff;
border-radius: 4px 4px 0 0;
color: var(--el-color-primary);
.custom-tabs-label {
max-width: 280px;
.el-icon {
color: var(--el-color-primary);
}
......
import type { RouteRecordRaw } from 'vue-router'
function Layout() {
return import('@/layouts/index.vue')
}
const routes: RouteRecordRaw[] = [
{
path: '/data-asset-index',
component: Layout,
meta: {
title: '首页',
icon: 'sidebar-videos',
},
children: [{
path: '',
name: 'assetIndex',
component: () => import('@/views/indexNewBigScreen.vue'),
meta: {
title: '首页',
sidebar: false,
breadcrumb: false,
cache: true
},
}]
},
]
export default routes
......@@ -3,25 +3,25 @@ function Layout() {
return import('@/layouts/index.vue')
}
const routes: RouteRecordRaw[] = [
{
path: '/data-asset/register-guide',
component: Layout,
meta: {
title: '登记服务指南',
icon: 'sidebar-videos',
},
children: [{
path: '',
name: 'registerGuide',
component: () => import('@/views/data_asset/registerGuide.vue'),
meta: {
title: '登记服务指南',
sidebar: false,
breadcrumb: false,
cache: true
},
}]
},
// {
// path: '/data-asset/register-guide',
// component: Layout,
// meta: {
// title: '登记服务指南',
// icon: 'sidebar-videos',
// },
// children: [{
// path: '',
// name: 'registerGuide',
// component: () => import('@/views/data_asset/registerGuide.vue'),
// meta: {
// title: '登记服务指南',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// }]
// },
{
path: '/data-asset/register-catalog',
component: Layout,
......@@ -132,315 +132,6 @@ const routes: RouteRecordRaw[] = [
]
},
{
path: '/data-asset/register-managemant',
component: Layout,
meta: {
title: '数据登记管理',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'registerManagemant',
component: () => import('@/views/data_asset/registerManagemant.vue'),
meta: {
title: '数据登记管理',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-start',
name: 'registerStart',
component: () => import('@/views/data_asset/registerStart.vue'),
meta: {
title: '新建资产登记',
sidebar: false,
breadcrumb: false,
cache: true,
editPage: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.type) {
to.meta.title = `详情-`;
return;
}
if (to.query.guid) {
to.meta.title = `编辑-`;
to.meta.editPage = true;
}
}
},
{
path: 'register-detail',
name: 'registerInfoDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset/quality-evaluate',
component: Layout,
meta: {
title: '资产质量评价管理',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'qualityEvaluate',
component: () => import('@/views/data_asset/qualityEvaluate.vue'),
meta: {
title: '资产质量评价管理',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-detail',
name: 'registerDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset/quality-assess',
component: Layout,
meta: {
title: '质量评估模型',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'damQualityAssess',
component: () => import('@/views/data_asset/damQualityAssess.vue'),
meta: {
title: '质量评估模型',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'dam-quality-plan',
name: 'damQualityPlan',
component: () => import('@/views/data_asset/damQualityPlan.vue'),
meta: {
title: '新建质量评估',
sidebar: false,
breadcrumb: false,
cache: true,
editPage: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.guid) {
to.meta.title = `编辑-${to.query.damName}`;
to.meta.editPage = true;
}
}
},
{
path: 'dam-assess-log',
name: 'damQualityAssessLog',
component: () => import('@/views/data_asset/damQualityAssessLog.vue'),
meta: {
title: '执行日志',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.guid) {
to.meta.title = `日志-${to.query.name}`;
}
}
},
{
path: 'dam-assess-detail',
name: 'damAssessDetail',
component: () => import('@/views/data_asset/damAssessDetail.vue'),
meta: {
title: '查看结果',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.name) {
to.meta.title = `查看结果-${to.query.name}`;
}
}
},
{
path: 'dam-analysis-report',
name: 'damAnalysisReport',
component: () => import('@/views/data_asset/damAnalysisReport.vue'),
meta: {
title: '分析报告',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.name) {
to.meta.title = `分析报告-${to.query.name}`;
}
}
},
],
},
{
path: '/data-asset/value-evaluate',
component: Layout,
meta: {
title: '资产价值评估管理',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'valueEvaluate',
component: () => import('@/views/data_asset/valueEvaluate.vue'),
meta: {
title: '资产价值评估管理',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-detail',
name: 'registerValueDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset/certificate-management',
component: Layout,
meta: {
title: '资产证件管理',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'certificateManagement',
component: () => import('@/views/data_asset/certificateManagement.vue'),
meta: {
title: '资产证件管理',
sidebar: false,
cache: true,
breadcrumb: false,
},
},
{
path: 'register-detail',
name: 'certificateDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset/objection-handle',
component: Layout,
meta: {
title: '公示异议处理',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'damObjectionHandle',
component: () => import('@/views/data_asset/damObjectionHandle.vue'),
meta: {
title: '公示异议处理',
sidebar: false,
cache: true,
breadcrumb: false,
},
},
]
},
{
path: '/data-entry/entry-consult',
component: Layout,
meta: {
title: '入表咨询',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'entryConsult',
component: () => import('@/views/data_entry/index.vue'),
meta: {
title: '入表咨询',
sidebar: false,
breadcrumb: false,
cache: true
},
},
],
},
{
path: '/data-entry/entry-management',
component: Layout,
meta: {
title: '入表管理',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'entryManagement',
component: () => import('@/views/data_transaction/entryManagement.vue'),
meta: {
title: '入表管理',
sidebar: false,
breadcrumb: false,
cache: true
},
},
],
},
{
path: '/data-product/product-listing',
component: Layout,
meta: {
......@@ -483,128 +174,480 @@ const routes: RouteRecordRaw[] = [
},
],
},
{
path: '/data-product/listing-check',
component: Layout,
meta: {
title: '数据产品审核',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'productListingCheck',
component: () => import('@/views/data_product/productListingCheck.vue'),
meta: {
title: '数据产品审核',
sidebar: false,
breadcrumb: false,
cache: true,
},
},
{
path: 'listing-detail',
name: 'productListingCheckDetail',
component: () => import('@/views/data_product/productListingDetail.vue'),
meta: {
title: '产品审核详情',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true,
},
beforeEnter: (to, from) => {
if (to.query.type == 'check') {
to.meta.editPage = true;
to.meta.title = `详情-${to.query.name}`;
return;
}
}
},
],
},
{
path: '/data-product/demands-publish',
component: Layout,
meta: {
title: '数据需求发布',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'productDemandsPublish',
component: () => import('@/views/data_product/productDemandsPublish.vue'),
meta: {
title: '数据需求发布',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'demands-detail',
name: 'productDemandsDetail',
component: () => import('@/views/data_product/productDemandsDetail.vue'),
meta: {
title: '新建数据需求',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true,
},
beforeEnter: (to, from) => {
if(to.query.type){
if (to.query.type == 'detail') {
to.meta.title = `详情-${to.query.name}`;
} else {
to.meta.editPage = true;
to.meta.title = to.query.type=='add'? `新建数据需求${to.query.interfaceType == '2' ? '(算法竞赛)' : (to.query.interfaceType == '3' ? '(要素市场)' : '')}`: to.query.type=='edit'? `编辑-${to.query.name}`: `详情-${to.query.name}`;
}
}
}
},
],
},
{
path: '/data-product/demands-check',
component: Layout,
meta: {
title: '数据需求审核',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'productDemandsCheck',
component: () => import('@/views/data_product/productDemandsCheck.vue'),
meta: {
title: '数据需求审核',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'demands-detail',
name: 'productDemandsCheckDetail',
component: () => import('@/views/data_product/productDemandsDetail.vue'),
meta: {
title: '需求审核详情',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true,
},
beforeEnter: (to, from) => {
if (to.query.type == 'check') {
to.meta.editPage = true;
to.meta.title = `详情-${to.query.name}`;
}
}
},
],
},
// {
// path: '/data-asset/register-managemant',
// component: Layout,
// meta: {
// title: '数据登记管理',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'registerManagemant',
// component: () => import('@/views/data_asset/registerManagemant.vue'),
// meta: {
// title: '数据登记管理',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'register-start',
// name: 'registerStart',
// component: () => import('@/views/data_asset/registerStart.vue'),
// meta: {
// title: '新建资产登记',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// editPage: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.type) {
// to.meta.title = `详情-`;
// return;
// }
// if (to.query.guid) {
// to.meta.title = `编辑-`;
// to.meta.editPage = true;
// }
// }
// },
// {
// path: 'register-detail',
// name: 'registerInfoDetail',
// component: () => import('@/views/data_asset/registerDetail.vue'),
// meta: {
// title: '详情-',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// }
// }
// ],
// },
// {
// path: '/data-asset/quality-evaluate',
// component: Layout,
// meta: {
// title: '资产质量评价管理',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'qualityEvaluate',
// component: () => import('@/views/data_asset/qualityEvaluate.vue'),
// meta: {
// title: '资产质量评价管理',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'register-detail',
// name: 'registerDetail',
// component: () => import('@/views/data_asset/registerDetail.vue'),
// meta: {
// title: '详情-',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// }
// }
// ],
// },
// {
// path: '/data-asset/quality-assess',
// component: Layout,
// meta: {
// title: '质量评估模型',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'damQualityAssess',
// component: () => import('@/views/data_asset/damQualityAssess.vue'),
// meta: {
// title: '质量评估模型',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'dam-quality-plan',
// name: 'damQualityPlan',
// component: () => import('@/views/data_asset/damQualityPlan.vue'),
// meta: {
// title: '新建质量评估',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// editPage: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.guid) {
// to.meta.title = `编辑-${to.query.damName}`;
// to.meta.editPage = true;
// }
// }
// },
// {
// path: 'dam-assess-log',
// name: 'damQualityAssessLog',
// component: () => import('@/views/data_asset/damQualityAssessLog.vue'),
// meta: {
// title: '执行日志',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.guid) {
// to.meta.title = `日志-${to.query.name}`;
// }
// }
// },
// {
// path: 'dam-assess-detail',
// name: 'damAssessDetail',
// component: () => import('@/views/data_asset/damAssessDetail.vue'),
// meta: {
// title: '查看结果',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.name) {
// to.meta.title = `查看结果-${to.query.name}`;
// }
// }
// },
// {
// path: 'dam-analysis-report',
// name: 'damAnalysisReport',
// component: () => import('@/views/data_asset/damAnalysisReport.vue'),
// meta: {
// title: '分析报告',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.name) {
// to.meta.title = `分析报告-${to.query.name}`;
// }
// }
// },
// ],
// },
// {
// path: '/data-asset/value-evaluate',
// component: Layout,
// meta: {
// title: '资产价值评估管理',
// icon: 'ep:grid',
// },
// children: [
// {
// path: '',
// name: 'valueEvaluate',
// component: () => import('@/views/data_asset/valueEvaluate.vue'),
// meta: {
// title: '资产价值评估管理',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'register-detail',
// name: 'registerValueDetail',
// component: () => import('@/views/data_asset/registerDetail.vue'),
// meta: {
// title: '详情-',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// }
// }
// ],
// },
// {
// path: '/data-asset/certificate-management',
// component: Layout,
// meta: {
// title: '资产证件管理',
// icon: 'ep:grid',
// },
// children: [
// {
// path: '',
// name: 'certificateManagement',
// component: () => import('@/views/data_asset/certificateManagement.vue'),
// meta: {
// title: '资产证件管理',
// sidebar: false,
// cache: true,
// breadcrumb: false,
// },
// },
// {
// path: 'register-detail',
// name: 'certificateDetail',
// component: () => import('@/views/data_asset/registerDetail.vue'),
// meta: {
// title: '详情-',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true
// }
// }
// ],
// },
// {
// path: '/data-asset/objection-handle',
// component: Layout,
// meta: {
// title: '公示异议处理',
// icon: 'ep:grid',
// },
// children: [
// {
// path: '',
// name: 'damObjectionHandle',
// component: () => import('@/views/data_asset/damObjectionHandle.vue'),
// meta: {
// title: '公示异议处理',
// sidebar: false,
// cache: true,
// breadcrumb: false,
// },
// },
// ]
// },
// {
// path: '/data-entry/entry-consult',
// component: Layout,
// meta: {
// title: '入表咨询',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'entryConsult',
// component: () => import('@/views/data_entry/index.vue'),
// meta: {
// title: '入表咨询',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// ],
// },
// {
// path: '/data-entry/entry-management',
// component: Layout,
// meta: {
// title: '入表管理',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'entryManagement',
// component: () => import('@/views/data_transaction/entryManagement.vue'),
// meta: {
// title: '入表管理',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// ],
// },
// {
// path: '/data-product/product-listing',
// component: Layout,
// meta: {
// title: '数据产品上架',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'productListing',
// component: () => import('@/views/data_product/productListing.vue'),
// meta: {
// title: '数据产品上架',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'listing-detail',
// name: 'productListingDetail',
// component: () => import('@/views/data_product/productListingDetail.vue'),
// meta: {
// title: '新建数据产品',
// sidebar: false,
// reuse: true,
// breadcrumb: false,
// cache: true
// },
// beforeEnter: (to, from) => {
// if(to.query.type){
// if (to.query.type == 'detail') {
// to.meta.title = `详情-${to.query.name}`;
// } else {
// to.meta.editPage = true;
// to.meta.title = to.query.type=='add'? '新建数据产品': to.query.type=='edit'? `编辑-${to.query.name}`: `详情-${to.query.name}`;
// }
// }
// }
// },
// ],
// },
// {
// path: '/data-product/listing-check',
// component: Layout,
// meta: {
// title: '数据产品审核',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'productListingCheck',
// component: () => import('@/views/data_product/productListingCheck.vue'),
// meta: {
// title: '数据产品审核',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// },
// },
// {
// path: 'listing-detail',
// name: 'productListingCheckDetail',
// component: () => import('@/views/data_product/productListingDetail.vue'),
// meta: {
// title: '产品审核详情',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true,
// },
// beforeEnter: (to, from) => {
// if (to.query.type == 'check') {
// to.meta.editPage = true;
// to.meta.title = `详情-${to.query.name}`;
// return;
// }
// }
// },
// ],
// },
// {
// path: '/data-product/demands-publish',
// component: Layout,
// meta: {
// title: '数据需求发布',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'productDemandsPublish',
// component: () => import('@/views/data_product/productDemandsPublish.vue'),
// meta: {
// title: '数据需求发布',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'demands-detail',
// name: 'productDemandsDetail',
// component: () => import('@/views/data_product/productDemandsDetail.vue'),
// meta: {
// title: '新建数据需求',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true,
// },
// beforeEnter: (to, from) => {
// if(to.query.type){
// if (to.query.type == 'detail') {
// to.meta.title = `详情-${to.query.name}`;
// } else {
// to.meta.editPage = true;
// to.meta.title = to.query.type=='add'? `新建数据需求${to.query.interfaceType == '2' ? '(算法竞赛)' : (to.query.interfaceType == '3' ? '(要素市场)' : '')}`: to.query.type=='edit'? `编辑-${to.query.name}`: `详情-${to.query.name}`;
// }
// }
// }
// },
// ],
// },
// {
// path: '/data-product/demands-check',
// component: Layout,
// meta: {
// title: '数据需求审核',
// icon: 'sidebar-videos',
// },
// children: [
// {
// path: '',
// name: 'productDemandsCheck',
// component: () => import('@/views/data_product/productDemandsCheck.vue'),
// meta: {
// title: '数据需求审核',
// sidebar: false,
// breadcrumb: false,
// cache: true
// },
// },
// {
// path: 'demands-detail',
// name: 'productDemandsCheckDetail',
// component: () => import('@/views/data_product/productDemandsDetail.vue'),
// meta: {
// title: '需求审核详情',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// reuse: true,
// },
// beforeEnter: (to, from) => {
// if (to.query.type == 'check') {
// to.meta.editPage = true;
// to.meta.title = `详情-${to.query.name}`;
// }
// }
// },
// ],
// },
// {
// path: '/data-guide/transaction-finance',
// component: Layout,
......
......@@ -5,6 +5,7 @@ import DataAssess from './modules/dataAsset';
import DataMeta from './modules/dataMeta';
import DataQuality from './modules/dataQuality';
import DataInventory from './modules/dataInventory';
import AssetIndex from './modules/assetIndex';
import type { Route } from '#/global'
import useSettingsStore from '@/store/modules/settings'
......@@ -105,6 +106,7 @@ const asyncRoutes: Route.recordMainRaw[] = [
title: '首页',
},
children: [
...AssetIndex,
],
},
{
......
......@@ -77,7 +77,7 @@ const levelMap = {
}
const currTableInfo = ref<any>({});
const drawerRef = ref<any>('');
const currentRowKey = ref<any>(null);
const heightlightRow = ref<any>('');
const scopeRow = ref<any>(null);
const tableInfo = ref({
id: "data-class-standard-table",
......@@ -110,6 +110,7 @@ const tableInfo = ref({
data: [],
rowKey: 'guid',
currentRowKey: '',
expandedKeys: [] as any,
showPage: false,
actionInfo: {
label: "操作",
......@@ -118,6 +119,8 @@ const tableInfo = ref({
btns: [
{
label: "编辑", value: "edit", click: (scope) => {
tableInfo.value.currentRowKey = scope.row.guid;
heightlightRow.value = scope.row.guid;
scopeRow.value = scope.row;
currentEditingGuid.value = scope.row.guid;
selectParentEdit(scope.row.guid);
......@@ -308,6 +311,8 @@ const drawerBtnClick = async (btn, info) => {
const res: any = await saveClassify(params);
if (res.code == proxy.$passCode) {
proxy.$ElMessage.success('添加规则成功!');
tableInfo.value.currentRowKey = res.data;
heightlightRow.value = res.data;
drawerInfo.value.visible = false;
getTreeListData();
drawerInfo.value.footer.btns.map((item: any) => delete item.disabled);
......@@ -332,6 +337,7 @@ const drawerBtnClick = async (btn, info) => {
drawerInfo.value.footer.btns.map((item: any) => delete item.disabled);
getTreeListData();
// 清空当前编辑的guid
tableInfo.value.currentRowKey = heightlightRow.value
currentEditingGuid.value = '';
nextTick(() => {
console.log('tableRef进来了吗', scopeRow.value.guid);
......@@ -813,6 +819,17 @@ onActivated(() => {
}
});
const handleTableRowClick = (row, id) => {
tableInfo.value.currentRowKey = row.guid;
}
const drawerSelectChange = (val, row, info) => {
const tree = tableRef.value.tableRef;
console.log(val, row, info, tree);
tableInfo.value.expandedKeys.push(val);
console.log(tableInfo.value.expandedKeys);
}
</script>
<template>
......@@ -830,7 +847,8 @@ onActivated(() => {
<!-- <el-button class="show-change-btn" @click="changeShowMethod">{{ '图形展示' }}</el-button> -->
</div>
<div class="table_panel">
<Table v-show="dataShowMethod == 'table'" :tableInfo="tableInfo" ref="tableRef" />
<Table v-show="dataShowMethod == 'table'" :tableInfo="tableInfo" ref="tableRef"
@tableRowClick="handleTableRowClick" />
</div>
<div ref="shapeMain" class="shape-main" v-show="dataShowMethod != 'table'"></div>
<div v-if="showNodeDetails" class="node-details-popup"
......@@ -857,7 +875,8 @@ onActivated(() => {
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="saveUpdate" :loading="saveLoading">保存修改</el-button>
</div>
<Drawer :drawerInfo="drawerInfo" @drawerBtnClick="drawerBtnClick" ref="drawerRef" />
<Drawer :drawerInfo="drawerInfo" @drawerBtnClick="drawerBtnClick" ref="drawerRef"
@drawerSelectChange='drawerSelectChange' />
</div>
</template>
......
......@@ -336,7 +336,11 @@ const tableInfo = ref({
{ label: "序号", type: "index", width: 56, align: "center" },
{ label: "字段名", field: "fieldName", width: 140 },
{ label: "字段中文名", field: "fieldChName", width: 180 },
{ label: "分类", field: "classifyDetailName", width: 120 },
{
label: "分类", field: "classifyDetailNameRoutes", width: 120, getName: (scope) => {
return scope.row.classifyDetailNameRoutes.join('/');
}
},
{ label: "分级", field: "gradeDetailName", width: 80 },
{ label: "标签", field: "label", width: 140 },
{ label: "规则", field: "ruleDetail", width: 180 },
......@@ -416,7 +420,7 @@ const dataBaseTreeInfo = ref<any>({
editTreeItem: false,
queryValue: "",
className: 'tree-list',
queryPlaceholder: "输入标准集名称搜索",
queryPlaceholder: "输入名称搜索",
props: {
label: "name",
value: "guid",
......@@ -913,14 +917,23 @@ const dataBaseTablePageChange = (info) => {
}
// 字段信息分页
const dataFieldTablePageChange = (info) => {
dataFieldPage.value.curr = Number(info.curr);
dataFieldPage.value.limit = Number(info.limit);
getDataBaseFieldData({
pageIndex: info.curr,
pageSize: info.limit
});
}
// 获取字段信息getDbDirFieldPageList
const tableFieldsLoading = ref(false);
const tableFieldsData = ref([]);
const getDataBaseFieldData = async (params = {}) => {
tableFieldsDataInfo.value.loading = true;
const dataBaseParams = {
pageIndex: 1,
pageSize: -1,
pageIndex: dataFieldPage.value.curr,
pageSize: dataFieldPage.value.limit,
tableGuid: "",
execGuid: execGuidInfo.value.execGuid,
databaseGuid: "",
......@@ -932,12 +945,28 @@ const getDataBaseFieldData = async (params = {}) => {
if (res.code == proxy.$passCode) {
tableFieldsData.value = res.data.records;
tableFieldsDataInfo.value.data = res.data.records;
tableFieldsDataInfo.value.page.rows = res.data.totalRows;
tableFieldsDataInfo.value.page.limit = res.data.pageSize
tableFieldsDataInfo.value.page.curr = res.data.pageIndex
} else {
proxy.$ElMessage.error(res.msg);
}
tableFieldsDataInfo.value.loading = false;
};
const dataFieldPage = ref({
limit: 50,
curr: 1,
sizes: [
{ label: "10", value: 10 },
{ label: "50", value: 50 },
{ label: "100", value: 100 },
{ label: "150", value: 150 },
{ label: "200", value: 200 },
],
});
const tableFieldsDataInfo = ref({
id: "data-field-table",
multiple: false,
......@@ -955,11 +984,10 @@ const tableFieldsDataInfo = ref({
{ label: "标签", field: "label", width: 120, align: 'center' },
],
data: [],
showPage: false,
page: {
// type: "normal",
// rows: 0,
// ...dataBasePage.value,
type: "normal",
rows: 0,
...dataFieldPage.value,
},
actionInfo: {
......@@ -1392,13 +1420,13 @@ onActivated(async () => {
</div>
</div>
<div class="table_panel_wrap_database" v-if="!tableGuid && activeTab === 'table'"
:style="{ height: `calc(100% - ${tipHeight1}px)`, minHeight: '210px' }">
:style="{ height: '483px', minHeight: '210px' }">
<Table :tableInfo="dataBaseTableInfo" @tablePageChange="dataBaseTablePageChange"
@tableSwitchBeforeChange="tableSwitchBeforeChange" />
</div>
<div class="table_field" v-if="tableGuid || activeTab === 'word'"
:style="{ height: `calc(100% - ${tipHeight}px)`, minHeight: '210px' }">
<Table :tableInfo="tableFieldsDataInfo" />
:style="{ height: '523px', minHeight: '210px' }">
<Table :tableInfo="tableFieldsDataInfo" @tablePageChange="dataFieldTablePageChange" />
</div>
</div>
<Drawer :drawerInfo="drawerInfo" @drawerBtnClick="drawerBtnClick" class="v-drawer" />
......@@ -1470,6 +1498,7 @@ onActivated(async () => {
.main_wrap {
padding: 11px 16px 0 16px;
height: 100%;
.top-tool-tip {
display: flex;
......@@ -1534,7 +1563,7 @@ onActivated(async () => {
.table_panel_wrap {
width: 100%;
height: calc(100% - 117px);
height: 520px;
min-height: 210px;
overflow: visible;
}
......
......@@ -78,20 +78,12 @@ const labelPageList = ref<any>()
const getLabelPageData = async () => {
refCount.value++;
tableInfo.value.loading = true;
let params = {}
if (guids.value.length == 0) {
params = {
pageIndex: page.value.curr,
pageSize: page.value.limit,
classifyGuid: classifyGuid.value,
detailGuid: classifyDetailGuid.value
}
} else {
params = {
pageIndex: page.value.curr,
pageSize: page.value.limit,
guids: guids.value
}
const params = {
pageIndex: page.value.curr,
pageSize: page.value.limit,
classifyGuid: classifyGuid.value,
detailGuid: classifyDetailGuid.value,
guids: guids.value
}
const res: any = await getLabelPageList(params);
......@@ -743,13 +735,13 @@ const searchClass = async (val: any, clear: boolean = false) => {
}
if (val?.labelName?.length !== 0 || refCount.value >= 1) {
tableInfo.value.loading = true;
classifyGuid.value = '';
classifyDetailGuid.value = '';
treeInfo.value.expandedKey = [];
treeInfo.value.currentNodeKey = '';
const params = {
pageIndex: 1,
pageSize: 50,
classifyGuid: classifyGuid.value,
detailGuid: classifyDetailGuid.value,
guids: guids.value,
}
const res: any = await getLabelPageList(params);
......
<route lang="yaml">
name: indexNewBigScreen
</route>
<script lang="ts" setup name="indexNewBigScreen">
import { ref } from "vue";
import {
getStatisticsInfo,
getRegisterInfo,
getDaTradeInfo,
getQualityInfo,
getFinanceInfo,
getRegisterUrl,
} from "@/api/modules/dataAssetIndex";
import { getImageContent } from "@/api/modules/queryService";
import { ElMessage } from "element-plus";
import { changeNum } from "@/utils/common";
import useUserStore from "@/store/modules/user";
import Moment from "moment";
import platformIndexNewBigScreen from "./platformIndexNewBigScreen.vue";
// import platformIndex from "./data_asset/platformIndex.vue";
const router = useRouter();
const userStore = useUserStore();
const userData = JSON.parse(userStore.userData);
const { proxy } = getCurrentInstance() as any;
/** 资产登记数 */
const registerNum = ref(0);
const registerNumUrl = new URL(
"@/assets/images/registerNumNew.png",
import.meta.url
).href;
/** 质量评估数 */
const qualityAssessNum = ref(0);
const qualityAssessNumUrl = new URL(
"@/assets/images/qualityAssessNumNew.png",
import.meta.url
).href;
/** 价值评估数 */
const costAssessNum = ref(0);
const costAssessNumUrl = new URL(
"@/assets/images/costAssessNew.png",
import.meta.url
).href;
/** 证书url */
const docUrl: any = ref([]);
const docData: any = ref([]);
const docUrlList: any = ref([]);
const cardList = ref([
{
name: "assessmentMoney",
value: 0,
label: "资产估值",
unit: "万元",
},
{
name: "tableNum",
value: 0,
label: "表数量",
unit: "",
},
{
name: "fieldNum",
value: 0,
label: "字段数量",
unit: "",
},
{
name: "intableNum",
value: 0,
label: "入表资产数",
unit: "",
},
{
name: "noIntableNum",
value: 0,
label: "未入表资产数",
unit: "",
},
{
name: "lastIntableTime",
value: "--",
label: "最近入表时间",
unit: "",
},
{
name: "dataCategoryNum",
value: 0,
label: "数据分类",
unit: "",
},
{
name: "dataGradeNum",
value: 0,
label: "数据分级",
unit: "",
},
]);
const checkImage = () => {
let a: any = document.querySelector(".el-image-viewer__actions__inner");
let lenBtn = a.getElementsByClassName("el-icon");
if (lenBtn.length == 6) {
return;
}
let ff = document.createElement("i");
ff.classList.add("el-icon");
ff.addEventListener("click", () => {
let imgsrc = (<HTMLImageElement>(
document.querySelector(".el-image-viewer__img")
))?.src;
let image = new Image();
// 解决跨域 Canvas 污染问题
image.setAttribute("crossOrigin", "anonymous");
image.onload = function () {
let canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
let context: any = canvas.getContext("2d");
context.drawImage(image, 0, 0, image.width, image.height);
let url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
let a = document.createElement("a"); // 生成一个a元素
let event = new MouseEvent("click"); // 创建一个单击事件
a.download = "资产登记证书"; // 设置图片名称
a.href = url; // 将生成的URL设置为a.href属性
a.dispatchEvent(event); // 触发a的单击事件
};
image.src = imgsrc;
});
ff.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" data-v-ea893728=""><path fill="currentColor" d="M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"></path></svg>`;
a.appendChild(ff);
};
const assetTableInfo = ref({
id: "asset-table",
multiple: false,
showHeader: false,
border: false,
minPanelHeight: '60px',
minHeight: '60px',
fields: [
// { label: "序号", type: "index", width: 56, align: "center" },
{
label: "资产名称",
field: "daName",
width: 200,
// type: "text_btn",
// columClass: 'text_btn',
// value: "detail",
},
{
label: "登记日期",
field: "registerTime",
width: 120,
getName: (scope) => {
if (!scope.row.registerTime) {
return "--";
}
return Moment(scope.row.registerTime).format("YYYY-MM-DD");
},
},
{ label: "交易所", field: "exchangeName", width: 250 },
{
label: "资产登记",
field: "register",
width: 100,
getSvg: (scope) => {
return scope.row.register == "已登记" ? "icon-success" : "icon-audit";
},
},
{
label: "质量评价",
field: "quality",
width: 100,
getSvg: (scope) => {
return scope.row.quality == "已评价" ? "icon-success" : "icon-audit";
},
},
{
label: "价值评估",
field: "cost",
width: 100,
getSvg: (scope) => {
return scope.row.cost == "已评估" ? "icon-success" : "icon-audit";
},
},
{
label: "入表",
field: "intable",
width: 100,
getSvg: (scope) => {
return scope.row.intable == "已入表" ? "icon-success" : "icon-audit";
},
},
{
label: "交易",
field: "trade",
width: 100,
getSvg: (scope) => {
return scope.row.trade == "已交易" ? "icon-success" : "icon-audit";
},
},
{
label: "融资",
field: "financing",
minWidth: 100,
getSvg: (scope) => {
return scope.row.financing == "已融资" ? "icon-success" : "icon-audit";
},
},
],
data: [],
showPage: false,
actionInfo: {
show: false,
},
loading1: false,
});
const getAssetTableData = () => {
assetTableInfo.value.loading1 = true;
getRegisterInfo({
pageSize: 200,
pageIndex: 1,
}).then((res: any) => {
assetTableInfo.value.loading1 = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
assetTableInfo.value.data = data.records || [];
} else {
ElMessage.error(res.msg);
}
});
};
const tableBtnClick = (scope, btn) => {
const type = btn.value;
let row = scope.row;
if (type == "detail") {
router.push({
name: "registerInfoDetail",
query: {
guid: row.registerGuid,
type: "asset",
daTenantGuid: userData.tenantGuid,
},
});
}
};
const qualityPieData: any = ref([]);
const tradeTableInfo = ref({
id: "trade-table",
multiple: false,
showHeader: false,
border: false,
heightlightRow: false,
minPanelHeight: '60px',
minHeight: '60px',
fields: [
// { label: "序号", type: "index", width: 56, align: "center" },
{
label: "资产名称",
field: "daName",
width: 140,
// type: "text_btn",
// columClass: 'text_btn',
// value: "detail",
},
{ label: "交易日期", field: "tradeTime", width: 120 },
{ label: "交易对象", field: "tradeObject", minWidth: 250 },
],
data: [],
showPage: false,
actionInfo: {
show: false,
},
loading1: false,
});
const getTradeTableData = () => {
tradeTableInfo.value.loading1 = true;
getDaTradeInfo({
pageSize: 200,
pageIndex: 1,
}).then((res: any) => {
tradeTableInfo.value.loading1 = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
tradeTableInfo.value.data = data.records || [];
} else {
ElMessage.error(res.msg);
}
});
};
const tradeTableBtnClick = (scope, btn) => {
const type = btn.value;
let row = scope.row;
if (type == "detail") {
router.push({
name: "registerInfoDetail",
query: {
guid: row.registerGuid,
type: "asset",
daTenantGuid: userData.tenantGuid,
},
});
}
};
const financingTableInfo = ref({
id: "financing-table",
multiple: false,
showHeader: false,
border: false,
heightlightRow: false,
minPanelHeight: '60px',
minHeight: '60px',
fields: [
{
label: "资产名称",
field: "daName",
width: 140,
// type: "text_btn",
// columClass: 'text_btn',
// value: "detail",
},
// { label: "授信日期", field: "creditGrantingTime", width: 110 },
{
label: "授信金额(万元)",
field: "creditGrantingMoney",
width: 140,
align: "right",
getName: (scope) => {
return changeNum(scope.row.creditGrantingMoney ?? 0, 2, true) + '万元';
},
},
{
label: "授信期限(月)",
field: "creditGrantingTerm",
width: 90,
align: "right",
getName: (scope) => {
return changeNum(scope.row.creditGrantingTerm ?? 0) + '月';
},
},
{ label: "授信主体", field: "creditGrantingGenerality", minWidth: 100 },
],
data: [],
showPage: false,
actionInfo: {
show: false,
},
loading1: false,
});
const getFinancingTableData = () => {
financingTableInfo.value.loading1 = true;
getFinanceInfo({
pageSize: 200,
pageIndex: 1,
}).then((res: any) => {
financingTableInfo.value.loading1 = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
financingTableInfo.value.data = data.records || [];
} else {
ElMessage.error(res.msg);
}
});
};
const financingTableBtnClick = (scope, btn) => {
const type = btn.value;
let row = scope.row;
if (type == "detail") {
router.push({
name: "registerInfoDetail",
query: {
guid: row.registerGuid,
type: "asset",
daTenantGuid: userData.tenantGuid,
},
});
}
};
/** 统计数量加载状态。 */
const statisticsInfoLoading = ref(false);
/** 饼图数据质量加载状态。 */
const qualityPieLoading = ref(false);
/** 证书图片加载 */
const docUrlLoading = ref(false);
const assetTableRef = ref();
const rolltimer = ref();
onBeforeMount(() => {
if (userData.tenantType != 1) {
getAssetTableData();
statisticsInfoLoading.value = true;
getStatisticsInfo().then((res: any) => {
statisticsInfoLoading.value = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
registerNum.value = changeNum(data.registerNum ?? 0);
costAssessNum.value = changeNum(data.costAssessNum ?? 0);
qualityAssessNum.value = changeNum(data.qualityAssessNum ?? 0);
cardList.value.forEach((card) => {
if (card.name == 'assessmentMoney') {
card.value = changeNum((data[card.name] ?? 0) / 10000, 2, true);
} else if (card.name == "lastIntableTime") {
card.value = data[card.name] ?? "--";
} else if (card.name == "dataScale") {
card.value = changeNum(data[card.name] ?? 0, 2, true);
} else {
card.value = changeNum(data[card.name] ?? 0);
}
});
} else {
ElMessage.error(res.msg);
}
});
qualityPieLoading.value = true;
getQualityInfo().then((res: any) => {
qualityPieLoading.value = false;
// qualityPieChart = echarts.init(document.getElementById("pie-quality"));
if (res.code == proxy.$passCode) {
qualityPieData.value = res.data || [];
let sum = qualityPieData.value
.map((d) => d.value)
.reduce(function (prev, curr, idx, arr) {
return prev + curr;
});
qualityPieData.value.forEach(v => {
v.percent = changeNum((v.value / sum) * 100, 2, true) + '%';
});
} else {
ElMessage.error(res.msg);
}
});
getTradeTableData();
getFinancingTableData();
docUrlLoading.value = true;
getRegisterUrl().then((res: any) => {
if (res.code == proxy.$passCode) {
let data = docData.value = res.data || [];
if (data.length) {
let ps: any = [];
for (const d of data) {
d.documentTypeDesc = d.documentType == 1 ? 'A证' : (d.documentType == 2 ? 'B证' : 'C证');
ps.push(
getImageContent(d.documentFile[0]).then((res: any) => {
if (res) {
return URL.createObjectURL(res);
}
})
);
}
Promise.all(ps).then((res: any[]) => {
console.log(res);
docUrl.value = res;
docUrlList.value = res.flatMap((value, index, array) => {
return [
array.slice(index, index + 1).map((a) => {
return { url: a };
}),
];
});
docUrlLoading.value = false;
nextTick(() => {
processImgDesc();
});
});
} else {
docUrl.value = [];
docData.value = [];
docUrlList.value = [];
docUrlLoading.value = false;
}
} else {
docUrlLoading.value = false;
ElMessage.error(res.msg);
}
});
}
});
const processImgDesc = () => {
let domImg = document.getElementById('register-img');
if (!domImg) {
return;
}
let domImgs = domImg.getElementsByClassName('top-img');
if (!domImgs.length) {
return;
}
let height = domImgs[0].clientHeight;
let rowLen = Math.floor((height - 58) / 21);
let domDesc = domImg.getElementsByClassName('desc');
console.log(rowLen);
Array.prototype.forEach.call(domDesc, function (element) {
element.style.WebkitLineClamp = rowLen;
if (!rowLen) {
element.style.display = 'none';
} else {
element.style.display = '';
}
});
}
onMounted(() => {
nextTick(() => {
autoRoll();
})
window.addEventListener("resize", () => {
processImgDesc();
});
})
const autoRoll = (stop = false) => {
if (!assetTableRef.value?.tableRef) {
return;
}
if (stop) {
clearInterval(rolltimer.value)
return
}
// 拿到表格挂载后的真实DOM
const table = assetTableRef.value.tableRef;
// 拿到表格中承载数据的div元素
const divData = table?.$el.querySelector('.el-table__body');
if (!divData) {
return;
}
// 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果
rolltimer.value = setInterval(() => {
// 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
let domScroll = divData.parentElement.parentElement;
if (domScroll.clientHeight + domScroll.scrollTop >= domScroll.scrollHeight) {
// 重置table距离顶部距离
table?.setScrollTop(0)
} else {
// 元素自增距离顶部像素
table?.setScrollTop(domScroll.scrollTop + 36)
}
}, 4000)
}
/** 快捷筛选项 */
const filterDate = ref('today'); //默认选中今天
/** 日期时间范围值 */
const daterange = ref([Moment(new Date()).format("YYYY-MM-DD 00:00:00"), Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")]);
/** 日期面板的默认显示时分秒 */
const defaultTime1 = [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]; // '12:00:00'
const filterDateClickTimestamp = ref(Date.now()); // 记录点击时间
const handleFilterClick = (type) => {
filterDate.value = type; // 更新按钮状态
filterDateClickTimestamp.value = Date.now(); // 更新时间标记
};
watch(
() => filterDateClickTimestamp.value,
() => {
let date = new Date();
if (filterDate.value === 'today') {
daterange.value = [
Moment(new Date()).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
} else if (filterDate.value === 'week') {
const dayOfWeek = date.getDay();
const diff = date.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1);
const startOfWeek = new Date(date.setDate(diff));
startOfWeek.setHours(0, 0, 0, 0);
daterange.value = [
Moment(startOfWeek).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
} else if (filterDate.value === 'month') {
const firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
firstDayOfMonth.setHours(0, 0, 0, 0);
daterange.value = [
Moment(firstDayOfMonth).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
}
handleChangeTime(daterange.value);
},
);
const handleChangeTime = (val) => {
console.log(val)
}
</script>
<template>
<div style="width: 100%;height: 100%">
<div class="right-filter-main" v-if="userData.tenantType != 1">
<div class="right-filter">
<div class="filter-btns">
<div class="btn" :class="{ 'is-active': filterDate == 'today' }" @click="handleFilterClick('today')">今日</div>
<div class="btn" :class="{ 'is-active': filterDate == 'week' }" style="border-left: none;"
@click="handleFilterClick('week')">本周</div>
<div class="btn" :class="{ 'is-active': filterDate == 'month' }" style="border-left: none;"
@click="handleFilterClick('month')">本月</div>
</div>
<el-date-picker v-model="daterange" type="datetimerange" range-separator="至" start-placeholder="开始时间"
:clearable="false" end-placeholder="截止时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
ref="datePickerRef" />
</div>
</div>
<div v-if="userData.tenantType != 1" class="main-content">
<div class="one-row">
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据服务资产情况</div>
</div>
<div class="num-content">
<div class="icon-sum num-sum" v-if="!statisticsInfoLoading" v-for="item in cardList">
<div class="tags_item">
<div class="tag_text">{{ item.label }}</div>
<div class="tag_num">
<span>{{ item.value }}</span>
<span class="unit">{{ item.unit }}</span>
</div>
</div>
</div>
<el-skeleton v-else :rows="5" animated />
</div>
</div>
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据资产登记情况</div>
</div>
<div class="dam-content">
<template v-if="!statisticsInfoLoading">
<div class="img_tags_card">
<img :src="registerNumUrl" alt="" />
<div class="tag_text" style="color: #3F6ED0;">资产登记数</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #76A6F1, #2C5AC5);-webkit-background-clip: text;background-clip: text">
{{ registerNum }}</div>
</div>
<div class="img_tags_card">
<img :src="qualityAssessNumUrl" alt="" />
<div class="tag_text" style="color: #008E3F">质量评估数</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #72D26E, #3C8F28);-webkit-background-clip: text;background-clip: text">
{{ qualityAssessNum }}</div>
</div>
<div class="img_tags_card">
<img :src="costAssessNumUrl" alt="" />
<div class="tag_text" style="color: #E17A3A;">价值评估数</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #F29A70, #C88938);-webkit-background-clip: text;background-clip: text">
{{ costAssessNum }}</div>
</div>
</template>
<el-skeleton v-else :rows="5" animated />
</div>
</div>
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据资产质量情况</div>
</div>
<div class="dam-content">
<template v-if="!qualityPieLoading">
<div class="score_img_tag_card">
<div class="img-bg">
<img src="@/assets/images/qualityAssessScore90.png" alt="" />
<div class="tag_text" style="color: #00A29E;">{{ qualityPieData?.[0]?.name || '90分以上' }}</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #16A199, #168D8B);-webkit-background-clip: text;background-clip: text">
{{ qualityPieData?.[0]?.percent || '0%' }}</div>
</div>
</div>
<div class="score_img_tag_card">
<div class="img-bg">
<img src="@/assets/images/qualityAssessScore80.png" alt="" />
<div class="tag_text" style="color:#F1A730">{{ qualityPieData?.[1]?.name || '80~90分' }}</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #FFC178, #EC981F);-webkit-background-clip: text;background-clip: text">
{{ qualityPieData?.[1]?.percent || '0%' }}</div>
</div>
</div>
<div class="score_img_tag_card">
<div class="img-bg">
<img src="@/assets/images/qualityAssessScore70.png" alt="" />
<div class="tag_text" style="color:#E21F1F">{{ qualityPieData?.[2]?.name || '80分以下' }}</div>
<div class="tag_num"
style="-webkit-text-fill-color: transparent;background: linear-gradient(180deg, #F65959, #C01E0B);-webkit-background-clip: text;background-clip: text">
{{ qualityPieData?.[2]?.percent || '0%' }}</div>
</div>
</div>
</template>
<el-skeleton v-else :rows="5" animated />
</div>
</div>
</div>
<div class="one-row">
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">资产交易情况</div>
</div>
<div style="height: calc(100% - 40px);">
<Table class="drak-table" v-if="!tradeTableInfo.loading1" :tableInfo="tradeTableInfo"
@tableBtnClick="tradeTableBtnClick" />
<el-skeleton v-else :rows="5" animated />
</div>
</div>
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">资产登记证书情况</div>
</div>
<div style="height: calc(100% - 40px);">
<template v-if="!docUrlLoading">
<el-carousel id="register-img" v-show="docUrlList.length" :interval="2000" :autoplay="true">
<el-carousel-item class="img-card" v-for="(imgData, i) in docUrlList" :key="i" @click="checkImage">
<template v-for="(img, index) in imgData" :key="index">
<el-image class="top-img" :src="img.url" :zoom-rate="1.2" :max-scale="10" :min-scale="0.2"
:preview-src-list="docUrl" :initial-index="i" :preview-teleported="true" />
<div class="right-content">
<div class="title">{{ docData[i].damName }}</div>
<div class="desc">{{ docData[i].applicationScenarios || '--' }}</div>
<div class="desc1">{{ docData[i].issuingEntity || '--' }}</div>
<!-- <el-tag class="dam-tag">{{ docData[i].documentTypeDesc }}</el-tag> -->
</div>
</template>
</el-carousel-item>
</el-carousel>
<div class="carousel-placeholder" v-show="!docUrlList.length">暂无数据</div>
</template>
<el-skeleton v-show="docUrlLoading" :rows="5" animated />
</div>
</div>
<div class="row-per">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">资产授信情况</div>
</div>
<div style="height: calc(100% - 40px);">
<Table class="drak-table" v-if="!financingTableInfo.loading1" :tableInfo="financingTableInfo"
@tableBtnClick="financingTableBtnClick" />
<el-skeleton v-else :rows="5" animated />
</div>
</div>
</div>
<div class="one-row">
<div class="row-sum">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据服务资产情况</div>
</div>
<div style="height: calc(100% - 40px);">
<Table class="drak-table" ref="assetTableRef" v-show="!assetTableInfo.loading1" :tableInfo="assetTableInfo"
@tableBtnClick="tableBtnClick" />
<el-skeleton v-show="assetTableInfo.loading1" :rows="6" animated />
</div>
</div>
</div>
</div>
<!-- <platformIndex v-else-if="userData.tenantType != 1" /> -->
<platformIndexNewBigScreen v-else-if="userData.tenantType == 1" />
<div v-else class="main-placeholder">
<img width="210" height="100" src="../../public/swzl_logo.png" />
</div>
</div>
</template>
<style lang="scss" scoped>
.right-filter-main {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 6px 11px 0 11px;
.right-filter {
display: flex;
width: 50%;
align-items: center;
:deep(.el-date-editor--datetimerange) {
width: 120px;
}
.filter-btns {
display: flex;
margin: 0px 8px;
.btn {
height: 28px;
width: 52px;
border: 1px solid #4FA1A4;
color: #4FA1A4;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
&.is-active {
background: #4FA1A4;
color: #fff;
}
}
}
}
}
.main-placeholder {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.main-content {
background-image: linear-gradient(180deg, #F8FAFA 0%, #F4F8F9 100%);
display: flex;
flex-direction: column;
height: 100%;
justify-content: space-evenly;
}
.one-row {
height: 32%;
display: inline-flex;
width: 100%;
justify-content: space-evenly;
.row-sum {
width: 98%;
}
.row-per {
width: 32%;
}
.icon-sum {
display: inline-flex;
width: 100%;
justify-content: space-between;
&.num-sum {
width: 33.3%;
padding-left: 12px;
display: flex;
align-items: center;
}
.tags_item {
height: 50px;
display: flex;
flex-direction: column;
justify-content: flex-start;
overflow: hidden;
.tag_text {
font-family: TRENDS;
font-size: 14px;
color: #292929;
font-weight: 400;
margin: 0;
line-height: 21px;
}
.tag_num {
font-family: DINAlternate-Bold;
font-weight: 700;
font-size: 20px;
color: #2CAEB3;
.unit {
font-size: 16px;
}
}
}
}
.dam-content {
display: flex;
height: calc(100% - 40px);
width: 100%;
// 资产登记张数
.img_tags_card {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
justify-content: center;
white-space: nowrap;
img {
width: 88px;
height: 88px;
}
.tag_text {
font-family: TRENDS;
font-size: 14px;
font-weight: 400;
}
.tag_num {
font-family: DINAlternate-Bold;
font-size: 36px;
line-height: 46px;
color: #fff;
font-weight: 700;
}
}
// 分数区间
.score_img_tag_card {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
justify-content: center;
.img-bg {
position: relative;
max-width: 132px;
max-height: 144px;
display: flex;
justify-content: center;
white-space: nowrap;
}
img {
width: 100%;
height: 100%;
}
.tag_text {
font-family: PingFangSC-Medium;
position: absolute;
font-size: 16px;
font-weight: 500;
top: 29px;
}
.tag_num {
position: absolute;
font-family: DINAlternate-Bold;
font-size: 30px;
color: #FFFFFF;
line-height: 47px;
font-weight: 700;
bottom: 33px;
}
}
}
}
.header {
height: 40px;
border-bottom: 1px solid #e5e5e566;
display: flex;
align-items: center;
.left-pd {
width: 12px;
height: 100%;
opacity: 0.5;
background-image: linear-gradient(90deg, #ACD9D9 0%, rgba(255, 255, 255, 0.00) 100%);
}
.header-title {
width: calc(100% - 12px);
background-image: linear-gradient(90deg, rgba(142, 210, 211, 0.5) 0%, rgba(213, 254, 254, 0.17 * 0.5) 95%, rgba(255, 255, 255, 0.00 * 0.5) 100%);
font-family: TRENDS;
font-size: 18px;
color: #292929;
height: 100%;
display: flex;
align-items: center;
line-height: 21px;
font-weight: 400;
padding-left: 12px;
}
}
.num-content {
height: calc(100% - 40px);
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
}
:deep(.el-carousel) {
height: 100%;
.el-carousel__arrow--left {
left: 0px;
}
.el-carousel__arrow--right {
right: 0px;
}
.el-carousel__arrow {
width: 20px;
height: 48px;
opacity: 0.5;
background: #000000;
border-radius: 4px 0px 0px 4px;
}
.el-carousel__indicators--horizontal {
display: flex;
flex-wrap: wrap;
justify-content: center;
width: 100%;
.el-carousel__indicator--horizontal {
padding: 8px 4px;
display: flex;
&.is-active {
.el-carousel__button {
background: #4FA1A4;
border-radius: 2px;
}
}
.el-carousel__button {
width: 8px;
height: 4px;
background: #D6E8E9;
border-radius: 2px;
}
}
}
.el-carousel__container {
height: 100%;
.img-card {
width: 100%;
display: flex;
padding: 20px 12px;
align-items: center;
.top-img {
width: 33%;
margin-right: 15px;
cursor: pointer;
max-height: 155px;
height: 100%;
img {
background-size: 100% 100%;
background-position: center right;
background-repeat: no-repeat;
}
}
.right-content {
width: calc(77% - 15px);
white-space: nowrap;
max-height: 155px;
height: 100%;
.title {
font-family: PingFangSC-Semibold;
font-size: 18px;
color: #212121;
font-weight: 400;
margin-bottom: 4px;
}
.desc {
opacity: 0.8;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #292929;
letter-spacing: 0;
line-height: 21px;
font-weight: 400;
max-height: calc(100% - 58px);
overflow: hidden;
white-space: pre-wrap;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
line-clamp: 3;
-webkit-box-orient: vertical;
}
.desc1 {
opacity: 0.8;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #292929;
letter-spacing: 0;
line-height: 21px;
font-weight: 400;
margin-top: 8px;
}
// .dam-tag {
// border: none;
// background: #006466;
// border-radius: 2px;
// font-family: PingFangSC-Regular;
// font-size: 12px;
// color: #FFFFFF;
// letter-spacing: 0;
// text-align: center;
// line-height: 18px;
// font-weight: 400;
// padding: 1px 8px;
// margin-top: 8px;
// }
}
}
}
}
:deep(.el-skeleton) {
height: 100%;
padding: 12px;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
//&.is-animated .el-skeleton__item {
// background: #ffffff1a;
//}
}
.carousel-placeholder {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
color: #999;
font-size: 18px;
font-family: PingFangSC-Regular;
}
</style>
<route lang="yaml">
name: platformIndexNewBigScreen
</route>
<script lang="ts" setup name="platformIndexNewBigScreen">
import { ref } from "vue";
import * as echarts from "echarts";
import {
getFinanceInfo,
getIndustryInfo,
getCreditMoneyInfo,
getPlatformStatisticsInfo,
getPlatformMonth,
getPlatformService,
getPlatformProvinceService
} from "@/api/modules/dataAssetIndex";
import { ElMessage } from "element-plus";
import { changeNum } from "@/utils/common";
import Moment from 'moment';
import EchartsMap from '@/components/EchartsMap/index.vue';
const { proxy } = getCurrentInstance() as any;
const cardList = ref([
{
name: "assessmentMoney",
value: 0,
label: "资产估值",
unit: " 万元",
},
{
name: "tableNum",
value: 0,
label: "表数量",
unit: "",
},
{
name: "fieldNum",
value: 0,
label: "字段数量",
unit: "",
},
{
name: "intableNum",
value: 0,
label: "入表资产数",
unit: "",
},
{
name: "tradeNum",
value: 0,
label: "交易资产数",
unit: " 个",
},
{
name: "financingNum",
value: 0,
label: "融资资产数",
unit: " 个",
},
{
name: "daNum",
value: "0",
label: "数据资产数",
unit: " 个",
},
{
name: "registerNum",
value: 0,
label: "资产登记数",
unit: " 张",
},
{
name: "cooperationOrNum",
value: 0,
label: "合作机构数",
unit: " 个",
},
]);
const financingTableInfo = ref({
id: "financing-table",
multiple: false,
showHeader: false,
border: false,
heightlightRow: false,
minPanelHeight: "60px",
minHeight: "60px",
fields: [
// { label: "序号", type: "index", width: 56, align: "center" },
{
label: "企业名称",
field: "companyName",
width: 240,
},
{
label: "资产名称",
field: "daName",
width: 140,
// type: "text_btn",
// columClass: 'text_btn',
// value: "detail",
},
{ label: "授信日期", field: "creditGrantingTime", width: 120 },
{ label: "授信主体", field: "creditGrantingGenerality", minWidth: 140 },
{
label: "授信金额(万元)",
field: "creditGrantingMoney",
minWidth: 130,
align: "right",
getName: (scope) => {
return changeNum(scope.row.creditGrantingMoney ?? 0, 2, true) + "万元";
},
},
{
label: "授信期限(月)",
field: "creditGrantingTerm",
minWidth: 90,
align: "right",
getName: (scope) => {
return changeNum(scope.row.creditGrantingTerm ?? 0) + "月";
},
},
],
data: [],
showPage: false,
actionInfo: {
show: false,
},
loading1: false,
});
const getFinancingTableData = () => {
financingTableInfo.value.loading1 = true;
getFinanceInfo({
pageSize: 500,
pageIndex: 1,
}).then((res: any) => {
financingTableInfo.value.loading1 = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
financingTableInfo.value.data = data.records || [];
} else {
ElMessage.error(res.msg);
}
});
};
const statisticsInfoLoading = ref(false);
onBeforeMount(() => {
getFinancingTableData();
statisticsInfoLoading.value = true;
getPlatformStatisticsInfo().then((res: any) => {
statisticsInfoLoading.value = false;
if (res.code == proxy.$passCode) {
let data = res.data || {};
cardList.value.forEach((card) => {
if (card.name == 'assessmentMoney') {
card.value = changeNum((data[card.name] ?? 0) / 10000, 2, true);
} else if (card.name == "dataScale") {
card.value = changeNum(data[card.name] ?? 0, 2);
} else {
card.value = changeNum(data[card.name] ?? 0);
}
});
} else {
ElMessage.error(res.msg);
}
});
});
/** 行业类型分布的饼图。 */
const industryPieLoading = ref(false);
let industryPieChart: any = null;
const industryPieData: any = ref([]);
const industryPieDataTotal: any = ref(0); /** 服务总家数 */
/** 授信主体金额加载 */
const creditMoneyPieLoading = ref(false);
let creditMoneyPieChart: any = null;
const creditMoneyPieData: any = ref([]);
/** 设置行业类型饼图分布 */
const setPieChartOption = () => {
return new Promise((resolve, reject) => {
if (!industryPieData.value.length) {
let option1 = {
title: [
{
text: "",
// left: "30px",
// top: "30px",
},
{
text: "暂无数据",
left: "center",
top: "center",
textStyle: {
fontFamily: "PingFangSC-Regular",
fontStyle: "normal",
fontWeight: "400",
fontSize: 18,
color: '#999'
},
},
],
};
industryPieChart.setOption(option1, true);
window.addEventListener("resize", () => {
industryPieChart.resize();
});
return;
}
let sum = industryPieData.value
.map((d) => d.value)
.reduce(function (prev, curr, idx, arr) {
return prev + curr;
});
let option = {
textStyle: {
fontFamily: "PingFangSC-Regular",
},
color: ["#3DBCBE", "#6b67d1", "#7BBCE0", "#2B8EF3", "#51dca2", "#E19D46"],
legend: {
orient: "vertical",
top: "middle",
x: "55%",
y: "cenetr",
itemGap: 20,
icon: "roundRect",
itemHeight: 12,
itemWidth: 12,
align: "left",
formatter: function (name) { // 添加
let target
for (let i = 0; i < industryPieData.value.length; i++) {
if (industryPieData.value[i].name === name) {
target = industryPieData.value[i].value;
break;
}
}
var arr = [
'{a|' + name + '}',
'{b|' + `${((target / sum) * 100).toFixed(2)}%` + '}',
'{c|' + changeNum(target, 0) + '家}',
]
return arr.join(' ')
},
textStyle: { // 添加
fontSize: 14,
overflow: "break",
rich: {
a: {
fontSize: 12,
color: '#292929'
},
b: {
fontSize: 14,
color: '#292929'
},
c: {
fontSize: 12,
color: '#292929'
}
}
}
},
series: [
{
name: "industry",
type: "pie",
center: ["25%", "50%"],
radius: ["60%", "80%"],
avoidLabelOverlap: false,
itemStyle: {
borderWidth: 0,
},
label: {
show: false,
position: "center",
},
emphasis: {
// focus: "self",
label: {
show: true,
formatter: (params) => {
return [
`{a|${params.data.originName}}`,
`{b|${params.percent}%}`,
].join("\n");
},
fontSize: 24,
fontWeight: "bold",
rich: {
a: {
fontSize: 16,
color: "#292929",
fontWeight: 600,
lineHeight: 27,
},
b: {
fontSize: 22,
color: "#292929",
lineHeight: 42,
fontWeight: 600,
},
},
},
},
labelLine: {
show: false,
},
data: industryPieData.value.map((d, index) => {
return {
selected: index == 0,
value: d.value,
name: d.name,
originName: d.name,
};
}),
},
],
};
option && industryPieChart.setOption(option, true);
industryPieChart.on("finished", () => {
resolve(true)
});
});
};
/** 设置授信主体金额饼图分布 */
const setCreditPieChartOption = () => {
return new Promise((resolve, reject) => {
if (!creditMoneyPieData.value.length) {
let option1 = {
title: [
{
text: "",
// left: "30px",
// top: "30px",
},
{
text: "暂无数据",
left: "center",
top: "center",
textStyle: {
fontStyle: "normal",
fontWeight: "400",
fontSize: 18,
color: '#999',
fontFamily: 'PingFangSC-Regular'
},
},
],
};
creditMoneyPieChart.setOption(option1, true);
window.addEventListener("resize", () => {
creditMoneyPieChart.resize();
});
return;
}
let sum = creditMoneyPieData.value
.map((d) => d.value)
.reduce(function (prev, curr, idx, arr) {
return prev + curr;
});
let option = {
textStyle: {
fontFamily: "PingFangSC-Regular",
},
color: ["#3DBCBE", "#6b67d1", "#7BBCE0", "#2B8EF3", "#51dca2", "#E19D46"],
legend: {
orient: "vertical",
top: "middle",
x: "45%",
y: "cenetr",
itemGap: 20,
icon: "roundRect",
itemHeight: 12,
itemWidth: 12,
align: "left",
formatter: function (name) { // 添加
let target
for (let i = 0; i < creditMoneyPieData.value.length; i++) {
if (creditMoneyPieData.value[i].name === name) {
target = creditMoneyPieData.value[i].value;
break;
}
}
var arr = [
'{a|' + name + '}',
'{b|' + `${((target / sum) * 100).toFixed(2)}%` + '}',
'{c|' + changeNum(target, 2, true) + '万元}',
]
return arr.join(' ')
},
textStyle: { // 添加
fontSize: 14,
overflow: "break",
rich: {
a: {
fontSize: 12,
color: '#292929'
},
b: {
fontSize: 14,
color: '#292929'
},
c: {
fontSize: 12,
color: '#292929'
}
}
}
},
series: [
{
name: "creditMoney",
type: "pie",
center: ["25%", "50%"],
radius: ["60%", "80%"],
avoidLabelOverlap: false,
itemStyle: {
borderWidth: 0,
},
label: {
show: false,
position: "center",
},
emphasis: {
// focus: "self",
label: {
show: true,
formatter: (params) => {
return [
`{a|${params.data.originName}}`,
`{b|${params.percent}%}`,
].join("\n");
},
fontSize: 24,
fontWeight: "bold",
rich: {
a: {
fontSize: 16,
color: "#292929",
fontWeight: 600,
lineHeight: 27,
},
b: {
fontSize: 22,
color: "#292929",
lineHeight: 42,
fontWeight: 600,
},
},
},
},
labelLine: {
show: false,
},
data: creditMoneyPieData.value.map((d) => {
return {
value: d.value,
name: d.name,
originName: d.name,
};
}),
},
],
};
creditMoneyPieChart.setOption(option, true);
creditMoneyPieChart.on("finished", () => {
resolve(true)
});
});
};
/** 行业类型地区分布的柱形图。 */
const serviceAreaBarLoading = ref(false);
let serviceAreaBarChart: any = null;
const serviceAreaBarData: any = ref([]);
const serviceAreaMapData: any = ref([]);
/** 资产登记月趋势分布的柱形图。 */
const platformMonthBarLoading = ref(false);
let platformMonthBarChart: any = null;
const platformMonthBarData: any = ref([]);
/** 设置服务企业地区类型分布-柱形图 */
const setBarChartOption = (data, barChart) => {
if (!data.length) {
let option1 = {
title: [
{
text: "",
// left: "30px",
// top: "30px",
},
{
text: "暂无数据",
left: "center",
top: "center",
textStyle: {
fontStyle: "normal",
fontWeight: "400",
fontSize: 18,
color: '#999',
fontFamily: 'PingFangSC-Regular'
},
},
],
};
barChart.setOption(option1, true);
window.addEventListener("resize", () => {
barChart.resize();
});
return;
}
let categoryData = data.map((s) => s.name).reverse();
let valueDatas = data.map(s => s.value).reverse();
let max = Math.max(...valueDatas);
let maxValue = (max + Math.ceil(max * 0.3));
const axisStyle = {
axisLabel: {
show: true,
textStyle: {
color: '#fff'
},
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
}
let option = {
textStyle: {
fontFamily: "PingFangSC-Regular",
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "cross",
crossStyle: {
color: "#999",
},
},
textStyle: {
align: "left",
},
position: function (point, params, dom, rect, size) {
dom.style.transform = "translateZ(0)";
},
formatter: function (params) {
return (
params[1].name +
":" +
changeNum(params[1]?.value) +
"<br>"
);
},
},
legend: {
show: false,
},
grid: {
left: "5%",
top: "5%",
right: "5%",
bottom: '0%',
},
yAxis: [
{
type: 'category',
show: false,
data: categoryData
},
{
type: 'category',
show: false,
...axisStyle,
position: 'right',
axisLabel: {
show: true,
},
data: categoryData
},
],
xAxis: [
{
show: false,
type: 'value',
...axisStyle,
min: 0,
max: maxValue, //盖着y label就设置最大值
}
],
series: [{
z: 0,
name: '值为1',
type: 'bar',
seriesIndex: 0,
backgroundStyle: {
color: '#dfe1e1'
},
emphasis: {
disabled: true
},
itemStyle: {
borderWidth: 0
},
label: {
position: ['100%', '-2'],
show: true,
align: 'right',
color: '#292929',
fontSize: 14,
verticalAlign: "bottom",
fontWeight: 400,
formatter: (param) => {
return valueDatas[param.dataIndex] ? changeNum(valueDatas[param.dataIndex]) : 0;
},
},
barWidth: 10,
showBackground: true,
data: valueDatas.map(v => {
return maxValue;
}),
},
{
z: 1,
seriesIndex: 1,
data: valueDatas,
type: 'bar',
barGap: -1,
barWidth: 10,
showBackground: true,
backgroundStyle: {
color: '#dfe1e1'
},
itemStyle: {
borderWidth: 0,
color: {
type: 'linear',
x: 1,
y: 0,
x2: 0,
y2: 0,
colorStops: [
{
offset: 0, color: '#84E1C3' // 0%
},
{
offset: 1, color: '#4BB3D2' // 100%
}
],
global: false // 缺省为 false
}
},
label: {
show: true,
color: '#292929',
fontSize: 13,
align: 'left',
fontWeight: 400,
position: [0, '-2'],
verticalAlign: "bottom",
formatter: (param) => {
return `No.${data.findIndex(c => c.name == param.name) + 1} ${param.name}`
},
}
}
],
};
barChart.setOption(option, true);
window.addEventListener("resize", () => {
barChart.resize();
});
};
/** 设置数据资产登记趋势面积图 */
const setAreaChartOption = (data, barChart) => {
if (!data.length) {
let option1 = {
title: [
{
text: "",
// left: "30px",
// top: "30px",
},
{
text: "暂无数据",
left: "center",
top: "center",
textStyle: {
fontStyle: "normal",
fontWeight: "400",
fontSize: 18,
color: '#999',
fontFamily: 'PingFangSC-Regular'
},
},
],
};
barChart.setOption(option1, true);
window.addEventListener("resize", () => {
barChart.resize();
});
return;
}
let xAxisData = data.map((s) => s.name);
let xAxisDataLen = xAxisData.length;
let option = {
textStyle: {
fontFamily: "PingFangSC-Regular",
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "cross",
crossStyle: {
color: "#999",
},
label: {
backgroundColor: '#6c727b'
}
},
textStyle: {
align: "left",
},
position: function (point, params, dom, rect, size) {
dom.style.transform = "translateZ(0)";
},
formatter: function (params) {
return (
params[0].name +
":" +
changeNum(params[0].data?.value) +
"<br>"
);
},
},
legend: {
show: false,
},
grid: {
left: "8%",
top: "8%",
right: "5%",
bottom: xAxisData.length <= 10 ? "10%" : "20%",
},
xAxis: {
type: "category",
nameTextStyle: {
color: "nameTextStyle",
},
axisLabel: {
textStyle: {
color: "#292929",
},
},
axisLine: {
lineStyle: {
color: '#81A1A0'
}
},
axisTick: {
show: false,
},
data: xAxisData || [],
},
yAxis: {
type: "value",
nameTextStyle: {
color: "#292929",
},
axisLabel: {
textStyle: {
color: "#292929",
},
},
axisTick: {
show: false,
},
splitLine: {
show: false
},
axisLine: {
//y轴
show: false,
},
},
dataZoom: [
{
type: "inside",
filterMode: "filter", // 设定为 'filter' 从而 X 的窗口变化会影响 Y 的范围。
zoomLock: xAxisDataLen <= 12 ? true : false,
start: xAxisDataLen <= 12 ? 0 : 80,
end: 100,
},
{
type: "slider",
show: xAxisDataLen <= 12 ? false : true,
height: 25,
bottom: 0,
start: xAxisDataLen <= 12 ? 0 : 80,
end: 100,
},
],
series: {
type: "line",
data: data,
itemStyle: {
color: '#41E4BB',
borderColor: '#41E4BB'
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0.05, color: 'rgba(78,190,162,0.40)' // 5%
},
{
offset: 1, color: 'rgba(65,228,187,0.00)' // 100%
}
],
global: false // 缺省为 false
}
}
},
};
barChart.setOption(option, true);
window.addEventListener("resize", () => {
barChart.resize();
});
};
/** 饼图默认高亮选中第一个图 */
const bindPieAction = (chart, data) => {
// 默认展示第一条数据的提示框
chart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: 0
});
// 默认高亮展示第一条数据
chart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: 0
});
chart.on("mouseover", (v) => {
if (v.dataIndex != 0) {
chart.dispatchAction({
type: "hideTip",
seriesIndex: 0,
dataIndex: 0,
});
// 当检测到鼠标悬停事件,取消所有选中高亮
chart.dispatchAction({
type: "downplay",
seriesIndex: 0,
dataIndex: 0,
});
}
});
chart.on("highlight", (v) => {
if (v.name) {//点击的图例。
if (v.name != data[0].name) {
chart.dispatchAction({
type: "hideTip",
seriesIndex: 0,
dataIndex: 0,
});
// 当检测到鼠标悬停事件,取消所有选中高亮
chart.dispatchAction({
type: "downplay",
seriesIndex: 0,
dataIndex: 0,
});
} else {
chart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: 0
});
// 默认高亮展示第一条数据
chart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: 0
});
}
}
})
chart.on('downplay', (v) => {
if (v.name) {//图例取消选中之后,默认显示第一个。
chart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: 0
});
// 默认高亮展示第一条数据
chart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: 0
});
}
})
// 检测鼠标移出后显示之前默认高亮的那块
chart.on("mouseout", (v) => {
chart.dispatchAction({
type: "showTip",
seriesIndex: 0,
dataIndex: 0,
});
chart.dispatchAction({
type: "highlight",
seriesIndex: 0,
dataIndex: 0,
});
});
chart.on('legendselectchanged', function (params) {
chart.setOption({
legend: { selected: { [params.name]: true } }
})
});
window.addEventListener("resize", () => {
chart.resize();
});
}
onMounted(() => {
industryPieChart = echarts.init(document.getElementById("pie-industry"));
industryPieLoading.value = true;
getIndustryInfo().then((res: any) => {
industryPieLoading.value = false;
if (res.code == proxy.$passCode) {
industryPieData.value = res.data?.homeGraphStatistics || [];
industryPieDataTotal.value = res.data?.totalCompanyNum ?? 0;
setPieChartOption().then(() => {
bindPieAction(industryPieChart, industryPieData.value);
});
} else {
ElMessage.error(res.msg);
}
});
creditMoneyPieLoading.value = true;
creditMoneyPieChart = echarts.init(
document.getElementById("pie-creditMoney")
);
getCreditMoneyInfo().then((res: any) => {
creditMoneyPieLoading.value = false;
if (res.code == proxy.$passCode) {
creditMoneyPieData.value = res.data || [];
setCreditPieChartOption().then(() => {
bindPieAction(creditMoneyPieChart, creditMoneyPieData.value);
});
} else {
ElMessage.error(res.msg);
}
});
serviceAreaBarLoading.value = true;
serviceAreaBarChart = echarts.init(document.getElementById("bar-area"));
getPlatformService().then((res: any) => {
serviceAreaBarLoading.value = false;
if (res.code == proxy.$passCode) {
serviceAreaBarData.value = res.data || [];
setBarChartOption(serviceAreaBarData.value.slice(0, 5), serviceAreaBarChart);
} else {
ElMessage.error(res.msg);
}
});
getPlatformProvinceService().then((res: any) => {
if (res.code == proxy.$passCode) {
serviceAreaMapData.value = res.data || [];
} else {
ElMessage.error(res.msg);
}
});
platformMonthBarLoading.value = true;
platformMonthBarChart = echarts.init(document.getElementById("bar-month"));
getPlatformMonth().then((res: any) => {
platformMonthBarLoading.value = false;
if (res.code == proxy.$passCode) {
platformMonthBarData.value = res.data || [];
setAreaChartOption(platformMonthBarData.value, platformMonthBarChart);
} else {
ElMessage.error(res.msg);
}
});
});
/** 快捷筛选项 */
const filterDate = ref('today'); //默认选中今天
/** 日期时间范围值 */
const daterange = ref([Moment(new Date()).format("YYYY-MM-DD 00:00:00"), Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")]);
/** 日期面板的默认显示时分秒 */
const defaultTime1 = [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]; // '12:00:00'
const filterDateClickTimestamp = ref(Date.now()); // 记录点击时间
const handleFilterClick = (type) => {
filterDate.value = type; // 更新按钮状态
filterDateClickTimestamp.value = Date.now(); // 更新时间标记
};
watch(
() => filterDateClickTimestamp.value,
() => {
let date = new Date();
if (filterDate.value === 'today') {
daterange.value = [
Moment(new Date()).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
} else if (filterDate.value === 'week') {
const dayOfWeek = date.getDay();
const diff = date.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1);
const startOfWeek = new Date(date.setDate(diff));
startOfWeek.setHours(0, 0, 0, 0);
daterange.value = [
Moment(startOfWeek).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
} else if (filterDate.value === 'month') {
const firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
firstDayOfMonth.setHours(0, 0, 0, 0);
daterange.value = [
Moment(firstDayOfMonth).format("YYYY-MM-DD 00:00:00"),
Moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
];
}
handleChangeTime(daterange.value);
},
);
const handleChangeTime = (val) => {
console.log(val)
}
</script>
<template>
<div class="right-filter-main">
<div class="right-filter">
<div class="filter-btns">
<div class="btn" :class="{ 'is-active': filterDate == 'today' }" @click="handleFilterClick('today')">今日</div>
<div class="btn" :class="{ 'is-active': filterDate == 'week' }" style="border-left: none;"
@click="handleFilterClick('week')">本周</div>
<div class="btn" :class="{ 'is-active': filterDate == 'month' }" style="border-left: none;"
@click="handleFilterClick('month')">本月</div>
</div>
<el-date-picker v-model="daterange" type="datetimerange" range-separator="至" start-placeholder="开始时间"
:clearable="false" end-placeholder="截止时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
ref="datePickerRef" @change="handleChangeTime" />
</div>
</div>
<div class="platform-main-content">
<div class="map-content">
<!-- 地图组件TODO -->
<div class="map-bg">
<EchartsMap :serviceAreaMapData="serviceAreaMapData"></EchartsMap>
</div>
<!-- 左侧第一个图形块 -->
<div class="row-left-per-one">
<div class="header" style="width: 90%;">
<div class="left-pd"></div>
<div class="header-title">数据服务资产情况</div>
</div>
<div class="num-content">
<div class="icon-sum num-sum" v-if="!statisticsInfoLoading" v-for="item in cardList">
<div class="tags_item">
<div class="tag_text">{{ item.label }}</div>
<div class="tag_num">
<span>{{ item.value }}</span>
<span class="unit">{{ item.unit }}</span>
</div>
</div>
</div>
<el-skeleton v-else :rows="5" animated />
</div>
</div>
<!-- 左侧第二个图形块 -->
<div class="row-left-per-two">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">服务企业公司类型分布</div>
</div>
<div class="content-chart-pie">
<el-skeleton v-if="industryPieLoading" :rows="6" animated />
<div id="pie-industry" class="pie"></div>
</div>
</div>
<!-- 右侧第一个图形块 -->
<div class="row-right-per-one">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">服务企业数地区排行</div>
</div>
<div class="content-chart-pie">
<el-skeleton v-if="serviceAreaBarLoading" :rows="6" animated />
<div id="bar-area" class="pie"></div>
</div>
</div>
<!-- 右侧第二个图形块 -->
<div class="row-right-per-two">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据资产登记趋势</div>
</div>
<div class="content-chart-pie">
<el-skeleton v-if="platformMonthBarLoading" :rows="6" animated />
<div id="bar-month" class="pie"></div>
</div>
</div>
</div>
<div class="bottom-row">
<div class="row-left">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">数据资产授信情况</div>
</div>
<div style="height: calc(100% - 40px)">
<Table class="drak-table" ref="assetTableRef" v-show="!financingTableInfo.loading1"
:tableInfo="financingTableInfo" />
<el-skeleton v-show="financingTableInfo.loading1" :rows="6" animated />
</div>
</div>
<div class="row-right">
<div class="header">
<div class="left-pd"></div>
<div class="header-title">授信主体金额分布</div>
</div>
<div class="content-chart-pie">
<el-skeleton v-if="creditMoneyPieLoading" :rows="6" animated />
<div id="pie-creditMoney" class="pie"></div>
</div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.platform-main-content {
background-color: #121a2f;
height: 100%;
padding: 1%;
background-image: url("@/assets/images/platform-screen-blue-bg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
display: flex;
flex-direction: column;
}
.right-filter-main {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 6px 11px 6px 11px;
.right-filter {
display: flex;
width: 50%;
align-items: center;
:deep(.el-date-editor--datetimerange) {
width: 120px;
}
.filter-btns {
display: flex;
margin: 0px 8px;
.btn {
height: 28px;
width: 52px;
border: 1px solid #4FA1A4;
color: #4FA1A4;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
&.is-active {
background: #4FA1A4;
color: #fff;
}
}
}
}
}
.header {
height: 40px;
border-bottom: 1px solid #e5e5e566;
display: flex;
align-items: center;
.left-pd {
width: 12px;
height: 100%;
opacity: 0.5;
background-image: linear-gradient(90deg, #ACD9D9 0%, rgba(255, 255, 255, 0.00) 100%);
}
.header-title {
width: calc(100% - 12px);
background-image: linear-gradient(90deg, rgba(142, 210, 211, 0.5) 0%, rgba(213, 254, 254, 0.17 * 0.5) 95%, rgba(255, 255, 255, 0.00 * 0.5) 100%);
font-family: TRENDS;
font-size: 18px;
color: #292929;
height: 100%;
display: flex;
align-items: center;
line-height: 21px;
font-weight: 400;
padding-left: 12px;
}
}
.map-content {
height: 70%;
width: 100%;
position: relative;
.map-bg {
margin-left: 25%;
width: 45%;
// margin-top: 10px;
height: calc(100% - 10px);
// background-image: url("@/assets/images/map-dark-bg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
}
.row-left-per-one {
position: absolute;
width: 32%;
top: 0;
height: 50%;
.num-content {
height: calc(100% - 40px);
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
.icon-sum {
display: inline-flex;
width: 100%;
justify-content: space-between;
&.num-sum {
width: 33.3%;
padding-left: 12px;
display: flex;
align-items: center;
}
.tags_item {
height: 50px;
display: flex;
flex-direction: column;
justify-content: flex-start;
overflow: hidden;
.tag_text {
font-family: TRENDS;
font-size: 14px;
color: #292929;
font-weight: 400;
margin: 0;
line-height: 21px;
}
.tag_num {
font-family: DINAlternate-Bold;
font-weight: 700;
font-size: 20px;
color: #2CAEB3;
.unit {
font-size: 16px;
}
}
}
}
}
}
.row-left-per-two {
position: absolute;
width: 26%;
top: 50%;
height: 50%;
}
.row-right-per-one {
position: absolute;
width: 32%;
top: 0;
right: 0;
height: 50%;
}
.row-right-per-two {
position: absolute;
width: 32%;
top: 50%;
right: 0;
height: 50%;
}
}
.bottom-row {
height: 30%;
display: inline-flex;
width: 100%;
justify-content: space-between;
.row-left {
width: 66%;
}
.row-right {
width: 32%;
}
}
/** 饼图 */
.content-chart-pie {
width: 100%;
height: calc(100% - 40px);
position: relative;
.pie {
height: 100%;
width: 100%;
}
}
:deep(.el-skeleton) {
height: 100%;
padding: 12px;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
}
</style>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!