Merge branch 'main' of git.zdool.com:xs/ggfwjsc

This commit is contained in:
duanxiaohai 2024-05-11 14:37:00 +08:00
commit 57453e7e79
64 changed files with 2764 additions and 897 deletions

286
package-lock.json generated
View File

@ -8,9 +8,11 @@
"name": "web",
"version": "0.0.0",
"dependencies": {
"axios": "^1.6.8",
"echarts": "^5.4.2",
"echarts-gl": "^2.0.9",
"echarts-liquidfill": "^3.1.0",
"element-plus": "^2.7.0",
"sass": "^1.60.0",
"vue": "^3.2.47",
"vue-router": "^4.1.6"
@ -32,6 +34,22 @@
"node": ">=6.0.0"
}
},
"node_modules/@ctrl/tinycolor": {
"version": "3.6.1",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
"integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
"engines": {
"node": ">=10"
}
},
"node_modules/@element-plus/icons-vue": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
"integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.17.14",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz",
@ -49,6 +67,52 @@
"node": ">=12"
}
},
"node_modules/@floating-ui/core": {
"version": "1.6.1",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.1.tgz",
"integrity": "sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==",
"dependencies": {
"@floating-ui/utils": "^0.2.0"
}
},
"node_modules/@floating-ui/dom": {
"version": "1.6.5",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.5.tgz",
"integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==",
"dependencies": {
"@floating-ui/core": "^1.0.0",
"@floating-ui/utils": "^0.2.0"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.2.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.2.tgz",
"integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw=="
},
"node_modules/@popperjs/core": {
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"node_modules/@types/lodash": {
"version": "4.17.1",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.1.tgz",
"integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q=="
},
"node_modules/@types/lodash-es": {
"version": "4.17.12",
"resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz",
"integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
"dependencies": {
"@types/lodash": "*"
}
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"node_modules/@vitejs/plugin-vue": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
@ -181,6 +245,74 @@
"integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==",
"license": "MIT"
},
"node_modules/@vueuse/core": {
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
"dependencies": {
"@types/web-bluetooth": "^0.0.16",
"@vueuse/metadata": "9.13.0",
"@vueuse/shared": "9.13.0",
"vue-demi": "*"
}
},
"node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@vueuse/metadata": {
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
},
"node_modules/@vueuse/shared": {
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
"dependencies": {
"vue-demi": "*"
}
},
"node_modules/@vueuse/shared/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
@ -193,6 +325,26 @@
"node": ">= 8"
}
},
"node_modules/async-validator": {
"version": "4.2.5",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
"integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "1.6.8",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz",
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
@ -237,12 +389,36 @@
"resolved": "https://registry.npmmirror.com/claygl/-/claygl-1.3.0.tgz",
"integrity": "sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/csstype": {
"version": "2.6.21",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
"license": "MIT"
},
"node_modules/dayjs": {
"version": "1.11.11",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz",
"integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/echarts": {
"version": "5.4.2",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.2.tgz",
@ -272,6 +448,31 @@
"echarts": "^5.0.1"
}
},
"node_modules/element-plus": {
"version": "2.7.2",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.7.2.tgz",
"integrity": "sha512-AdEzBU/A68iUleio0MkQ46JeU5SeQvFFd915GJFScJmUEo5AmYg3OQ4pVjcu+p3b3Nupg9MC5Wa4xjAiC51kUg==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.3.1",
"@floating-ui/dom": "^1.0.1",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^9.1.0",
"async-validator": "^4.2.5",
"dayjs": "^1.11.3",
"escape-html": "^1.0.3",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/esbuild": {
"version": "0.17.14",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.14.tgz",
@ -310,6 +511,11 @@
"@esbuild/win32-x64": "0.17.14"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
@ -327,6 +533,32 @@
"node": ">=8"
}
},
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
@ -427,6 +659,26 @@
"node": ">=0.12.0"
}
},
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"node_modules/lodash-unified": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
"integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
"peerDependencies": {
"@types/lodash-es": "*",
"lodash": "*",
"lodash-es": "*"
}
},
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
@ -436,6 +688,30 @@
"sourcemap-codec": "^1.4.8"
}
},
"node_modules/memoize-one": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
@ -462,6 +738,11 @@
"node": ">=0.10.0"
}
},
"node_modules/normalize-wheel-es": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@ -507,6 +788,11 @@
"node": "^10 || ^12 || >=14"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",

View File

@ -9,6 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
"axios": "^1.6.8",
"echarts": "^5.4.2",
"echarts-gl": "^2.0.9",
"echarts-liquidfill": "^3.1.0",

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
src/assets/images/sy/bq.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -14,32 +14,32 @@ const router = createRouter({
component: () => import('../view/home.vue'),
children: [
{
name:'首页',
name: '首页',
path: '/home/index',
component: () => import('../view/sy.vue'),
},
{
name:'养老',
name: '养老',
path: '/home/yl',
component: () => import('../view/yl.vue'),
},
{
name:'卫生',
name: '卫生',
path: '/home/hygiene',
component: () => import('../view/hygiene.vue'),
},
{
name:'教育',
name: '教育',
path: '/home/education',
component: () => import('../view/education.vue'),
},
{
name:'就业补助',
name: '就业补助',
path: '/home/work',
component: () => import('../view/work.vue'),
},
{
name:'智能分析',
name: '智能分析',
path: '/home/analyze',
component: () => import('../view/analyze.vue'),
},
@ -48,4 +48,26 @@ const router = createRouter({
]
})
function getCookie(cname) {
var name = cname + '='
var ca = document.cookie.split(';')
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim()
if (c.indexOf(name) == 0)
return c.substring(name.length, c.length)
}
return ''
}
// router.beforeEach((to, form, next) => {
// var token = getCookie('lytoken')
// if (token == '') {
// window.location.href =
// 'http://220.191.238.50:996/api/login?returnURL=' +
// window.location.href
// }else {
// next();
// }
// })
export default router

129
src/utils/request.js Normal file
View File

@ -0,0 +1,129 @@
import axios from 'axios';
import { ElMessage } from 'element-plus'
import tools from '@/utils/tools'
import router from '../router';
// axios.defaults.baseURL = '/api'
axios.defaults.timeout = 120000
// HTTP request 拦截器
axios.interceptors.request.use(
(config) => {
let token = tools.data.get('token');
if (token) {
config.headers['X-USER-TOKEN'] = token.token
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
// HTTP response 拦截器
axios.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response) {
if (error.response.status == 401) {
ElMessage.error("请重新登录!");
window.location.href = '/#/login?return_url=' + window.location.href
} else if (error.response.status == 404) {
ElMessage.error("Status:404正在请求不存在的服务器记录");
} else if (error.response.status == 500) {
ElMessage.error({
title: '请求错误',
message: "Status:500服务器发生错误"
});
} else {
ElMessage.error(`Status:${error.response.status},未知错误!`);
}
} else {
ElMessage.error("请求服务器无响应!");
}
return Promise.reject(error.response);
}
);
var http = {
/** get
* @param {接口地址} url
* @param {请求参数} params
*/
get: function (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then((response) => {
if(response.data.code == 400 && response.data.msg){
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
/** post
* @param {接口地址} url
* @param {请求参数} params
*/
post: function (url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then((response) => {
if(response.data.code == 400 && response.data.msg){
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
put: function (url, params) {
return new Promise((resolve, reject) => {
axios.put(url, params)
.then((response) => {
if(response.data.code == 400 && response.data.msg){
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
delete: function (url, params) {
return new Promise((resolve, reject) => {
axios.delete(url, params)
.then((response) => {
if(response.data.code == 400 && response.data.msg){
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
download: function (url) {
let user = tools.data.get('user');
let token = "x-token=" + user.token;
url = url + (url.indexOf("?") > 0 ? "&" : "?") + token;
window.open(url);
}
}
export default http;

36
src/utils/tools.js Normal file
View File

@ -0,0 +1,36 @@
var tool = {}
/* localStorage */
tool.data = {
set(table, settings) {
var _set = JSON.stringify(settings)
return localStorage.setItem(table, _set);
},
get(table) {
var data = localStorage.getItem(table);
try {
data = JSON.parse(data)
} catch (err) {
return null
}
return data;
},
remove(table) {
return localStorage.removeItem(table);
},
clear() {
return localStorage.clear();
}
}
tool.url = function (url, params) {
var hasParams = url.indexOf("?") > 0;
for (var key in params) {
url = url + (hasParams ? '&' : '?') + key + '=' + params[key];
hasParams = true;
}
return url;
}
export default tool

View File

@ -1,5 +1,5 @@
<template>
<div ref="chart" style="width: 100%; height: 300px"></div>
<div ref="chart" style="width: 100%; height: 250px"></div>
</template>
<script setup>

View File

@ -1,5 +1,5 @@
<template>
<div ref="chart" style="width: 100%; height:350px;"></div>
<div ref="chart" style="width: 100%; height:300px;"></div>
</template>
<script setup>

View File

@ -105,7 +105,7 @@ let option = {
label: {
show: true,
position: "right", //
color: "#ccc",
color: "#ffffff",
fontSize: 12,
distance: 10, //
// formatter: '{c}%' //

View File

@ -86,7 +86,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -18,8 +18,8 @@ let option = {
//
{
type: "pie",
center: ["60%", "55%"],
radius: ["50%", "82%"],
center: ["55%", "55%"],
radius: ["70%", "90%"],
hoverAnimation: false,
clockWise: false,
itemStyle: {
@ -58,7 +58,7 @@ let option = {
},
radius: ['50%', '70%'],
hoverAnimation: false,
center: ['60%', '55%'],
center: ['55%', '55%'],
data: [
{
value: datas.value,

View File

@ -0,0 +1,144 @@
<template>
<div ref="chart" style="width: 100%; height:100%;"></div>
</template>
<script setup>
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const datas = {
value: 62.16,
}
let option = {
series: [
//
{
type: "pie",
center: ["55%", "55%"],
radius: ["70%", "90%"],
hoverAnimation: false,
clockWise: false,
itemStyle: {
normal: {
borderWidth: 1,
borderColor: "rgba(193, 229, 255, .1)",
color: new echarts.graphic.LinearGradient(1, 1, 1, 0, [
{
offset: 1,
color: "rgba(127, 242, 255, .2)",
},
{
offset: 0,
color: "rgba(109, 195, 255, 0)",
},
]),
},
},
tooltip: {
show: false,
},
label: {
show: false,
},
data: [100],
},
/*内心原型图,展示整体数据概览*/
{
name: 'pie',
type: 'pie',
roundCap: true,
clockWise: true,
startAngle: 180,
labelLine: {
show: false
},
radius: ['50%', '70%'],
hoverAnimation: false,
center: ['55%', '55%'],
data: [
{
value: datas.value,
label: {
normal: {
position: 'center',
show: true,
textStyle: {
fontSize: '24',
fontWeight: 'normal',
color: '#fff',
lineHeight: 30,
rich: {
cell: {
fontSize: '24',
fontWeight: 'normal',
color: '#fff',
},
text: {
fontSize: 16,
fontFamily: 'FZLanTingHeiS-L-GB',
color: '#fff',
}
}
}
}
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
offset: 0,
color: 'rgba(255, 224, 0, 0.29)'
}, {
offset: 1,
color: 'rgba(255, 224, 0, 1)'
}]),
shadowColor: 'rgba(1,1,1,0.5)',
shadowBlur: 1
}
}
},
{
value: 100 - datas.value,
name: '',
itemStyle: {
normal: {
color: 'rgba(255, 224, 0, 0.1)', //
label: {
show: false
},
labelLine: {
show: false
}
},
emphasis: {
color: 'rgba(255, 224, 0, 0.1)' //
}
}
}]
}
]
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped></style>

View File

@ -102,7 +102,7 @@ let option = {
{
name: "体检人数",
type: "bar",
data: [120, 49, 70, 23.2, 25.6],
data: [120, 49, 70, 232, 25.6],
barWidth: 20,
itemStyle: {
normal: {

View File

@ -38,7 +38,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -54,7 +54,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -19,7 +19,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -36,7 +36,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
data: ["2019", "2020", "2021", "2022", "2023"],
@ -64,7 +64,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -21,7 +21,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -39,7 +39,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -55,7 +55,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -38,7 +38,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -54,7 +54,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -1,150 +0,0 @@
<template>
<div ref="chart" style="width:100%;height:300px;"></div>
</template>
<script setup >
import {onMounted, reactive, ref} from "vue";
// echarts
import * as echarts from 'echarts'
const chart =ref(); // DOM
var plantCap = [{
name: '中国工程院 \n\n 院士'
}, {
name: '计算机应用 \n\n 专家'
}, {
name: '浙江大学计算机 \n\n 科学与技术学院 \n\n 教授'
}, {
name: '国家数码喷印工程 \n\n 技术研究中心 \n\n 首席科学家'
}, {
name: '浙江大学信息 \n\n 学部主任'
}, {
name: '博士生导师'
}];
var datalist = [{
offset: [10, 73],
symbolSize: 90,
opacity: .95,
color: '#C58F5A'
}, {
offset: [40, 63],
symbolSize: 90,
opacity: .88,
color: '#076097'
}, {
offset: [80, 73],
symbolSize: 130,
opacity: .84,
color: '#BF74CF'
}, {
offset: [20, 23],
symbolSize: 140,
opacity: .84,
color: '#2D90ED'
}, {
offset: [60, 23],
symbolSize: 95,
opacity: .84,
color: '#079773'
}, {
offset: [90, 33],
symbolSize: 80,
opacity: .84,
color: '#C89D4A'
}];
var datas = [];
for (var i = 0; i < plantCap.length; i++) {
var item = plantCap[i];
var itemToStyle = datalist[i];
datas.push({
name: item.name,
value: itemToStyle.offset,
symbolSize: itemToStyle.symbolSize,
label: {
normal: {
textStyle: {
fontSize: 12
}
}
},
itemStyle: {
normal: {
color: itemToStyle.color,
opacity: itemToStyle.opacity
}
},
})
}
let option = {
grid: {
show: false,
top: 10,
bottom: 10
},
xAxis: [{
gridIndex: 0,
type: 'value',
show: false,
min: 0,
max: 100,
nameLocation: 'middle',
nameGap: 5
}],
yAxis: [{
gridIndex: 0,
min: 0,
show: false,
max: 100,
nameLocation: 'middle',
nameGap: 30
}],
series: [{
type: 'scatter',
symbol: 'circle',
symbolSize: 120,
label: {
normal: {
show: true,
formatter: '{b}',
color: '#fff',
textStyle: {
fontSize: '20'
}
},
},
itemStyle: {
normal: {
color: '#00acea'
}
},
data: datas
}]
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value)
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
window.addEventListener('resize',()=>{
myChart.resize()
})
})
</script>
<style scoped>
</style>

218
src/view/echarts_sy/pie.vue Normal file
View File

@ -0,0 +1,218 @@
<template>
<div ref="chart" style="width: 100%; height: 250px"></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
//
const optionData = [];
//
const colorList = [
{ color1: "rgba(76,167,163,0.9)", color2: "rgba(90,255,223,1)" },
{ color1: "rgba(65,149,99,0.9)", color2: "rgba(115,255,145,1)" },
{ color1: "rgba(98,167,131,0.9)", color2: "rgba(153,255,179,1)" },
{ color1: "rgba(127,177,108,0.9)", color2: "rgba(193,255,138,1)" },
{ color1: "rgba(190,164,75,0.9)", color2: "rgba(255,207,74,1)" },
{ color1: "rgba(165,123,98,0.9)", color2: "rgba(254,178,128,1)" },
{ color1: "rgba(105,123,186,0.9)", color2: "rgba(151,176,255,1)" },
{ color1: "rgba(106,102,173,0.9)", color2: "rgba(164,151,255,1)" },
{ color1: "rgba(106,76,178,0.9)", color2: "rgba(159,110,254,1)" },
{ color1: "rgba(134,109,188,0.9)", color2: "rgba(180,143,241,1)" },
{ color1: "rgba(54,122,194,0.9)", color2: "rgba(76,174,254,1)" },
];
//
const resultData = [
{
name: "1-10岁",
value: 95,
},
{
name: "11-20岁",
value: 120,
},
{
name: "21-30岁",
value: 98,
},
{
name: "31-40岁",
value: 90,
},
{
name: "41-50岁",
value: 100,
},
{
name: "51-60岁",
value: 97,
},
{
name: "61-70岁",
value: 100,
},
{
name: "71-80岁",
value: 100,
},
{
name: "81-90岁",
value: 100,
},
{
name: "91-100岁",
value: 100,
},
{
name: "100岁以上",
value: 100,
},
];
let sum = 0;
resultData.forEach((item) => {
sum += item.value;
});
resultData.forEach((item) => {
optionData.push({ value: item.value, name: item.name });
optionData.push({
name: "",
value: sum / 100,
itemStyle: { color: "transparent" },
});
});
let option = {
//
legend: [
{
orient: "vertical",
right: "10%",
top: "10%",
itemWidth: 25, //
itemHeight: 10, //
itemGap: 20,
itemStyle: {
borderColor: "rgba(255,255,255,0.2)", //
borderWidth: 8, //
borderRadius:20,
},
textStyle: {
color: "#ccc",
fontSize: 12,
rich: {
name: {
width: 80,
fontSize: 16,
},
},
},
data: resultData,
formatter: (name) => {
if (resultData.length) {
const item = resultData.filter((item) => item.name === name)[0];
return `{name|${name}}`;
}
},
},
],
tooltip: {
trigger: "item",
formatter(params) {
let res = "";
const { marker, name, value } = params;
if (name !== "") {
res += `${marker}${name}:${value}`;
}
return res;
},
},
series: [
{
type: "pie",
roseType: "radius",
radius: ["20%", "85%"],
center: ["25%", "53%"],
label: {
position: "inside",
formatter(item) {
if (item.name === "") {
return "";
}
return "";
},
textStyle: {
fontSize: 16,
color: "#ffffff",
},
},
labelLine: {
show: false,
},
labelLine: {
show: true,
lineStyle: {
width: 3,
},
normal: {
length: 30, // 线
length2: 30
},
},
itemStyle: {
normal: {
color(params) {
return colorList[parseInt(params.dataIndex / 2)].color1;
},
},
},
z: 3,
data: optionData,
},
{
type: "pie",
roseType: "radius",
radius: ["20%", "87%"],
center: ["25%", "53%"],
label: {
show: false,
},
labelLine: {
show: false,
},
itemStyle: {
normal: {
color(params) {
return colorList[parseInt(params.dataIndex / 2)].color2;
},
},
},
z: 2,
data: optionData,
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,239 @@
<template>
<div ref="chart" style="width: 100%; height: 120px"></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const data = [[140], [260], [330], [270]];
const total = ref(0);
const totalMax=ref(0);
const lb=ref(0)
data.forEach((item) => {
console.log(item[0]);
total.value += item[0];
});
totalMax.value=total.value*1.06;
lb.value=Math.trunc(total.value*0.03);
const option = {
legend: {
show: true,
itemHeight: 12,
itemWidth: 30,
textStyle: {
fontSize: 16,
color: "#fff",
},
top: 70,
left: 30,
itemGap: 20, //
y: "top", // Y
data: ["17岁以下", "18-34岁", "35-69岁", "60岁以上"],
},
grid: { left: "2%", right: "2%", top: "10%" },
xAxis: [
{ type: "value", show: false, max: totalMax.value },
{ type: "value", show: false, max: totalMax.value },
],
yAxis: [
{
type: "category",
show: false,
axisTick: {
show: false,
},
},
{
type: "category",
show: false,
axisTick: {
show: false,
},
},
],
series: [
{
type: "bar",
data: [lb.value],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: "rgba(255,255,255,0)",
},
},
},
{
type: "bar",
name: "17岁以下",
data: data[0],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: "#62CDFF",
},
{
offset: 1,
color: "#9BE8FF",
},
]),
barBorderRadius: [100, 0, 0, 100],
},
},
label: {
normal: {
show: true,
position: ["25%", "-60%"],
formatter: `${Math.trunc(data[0][0]*100/total.value)}%`,
color: "#fff",
fontSize: 22,
fontWeight: 600,
},
},
},
{
type: "bar",
name: "18-34岁",
data: data[1],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: "#2355EA",
},
{
offset: 1,
color: "#3873DD",
},
]),
barBorderRadius: [0, 0, 0, 0],
},
},
label: {
normal: {
show: true,
position: ["35%", "-60%"],
formatter: `${Math.trunc(data[1][0]*100/total.value)}%`,
color: "#fff",
fontSize: 22,
fontWeight: 600,
},
},
},
{
type: "bar",
name: "35-69岁",
data: data[2],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: "#42D6B2",
},
{
offset: 1,
color: "#9BFFD3",
},
]),
barBorderRadius: [0, 0, 0, 0],
},
},
label: {
normal: {
show: true,
position: ["35%", "-60%"],
formatter: `${Math.trunc(data[2][0]*100/total.value)}%`,
color: "#fff",
fontSize: 22,
fontWeight: 600,
},
},
},
{
type: "bar",
name: "60岁以上",
data: data[3],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: "#FFAA62",
},
{
offset: 1,
color: "#FFE89B",
},
]),
barBorderRadius: [0, 100, 100, 0],
},
},
label: {
normal: {
show: true,
position: ["35%", "-60%"],
formatter: `${Math.trunc(data[3][0]*100/total.value)}%`,
color: "#fff",
fontSize: 22,
fontWeight: 600,
},
},
},
{
type: "bar",
data: [lb.value],
stack: "income",
barWidth: 18,
itemStyle: {
normal: {
color: "rgba(255,255,255,0)",
},
},
},
{
type: "bar",
xAxisIndex: 1,
yAxisIndex: 1,
itemStyle: {
color: "rgba(255,255,255,0.1)",
barBorderRadius: [100, 100, 100, 100],
},
data: ["2019"].map(() => totalMax.value),
barWidth: 50,
},
],
};
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -10,44 +10,15 @@ import * as echarts from "echarts";
const chart = ref(); // DOM
const data = [120, 200, 50, 80, 70];
const lineData = [150, 230, 24, 218, 135];
const lineData = [1500, 2300, 204, 2018, 1305];
const max = data
.concat(lineData)
.reduce((pre, cur) => (pre > cur ? pre : cur), 0); //
//
const color = [
{
type: "linear",
x: 0,
x2: 0,
y: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgba(142, 187, 255, 1)",
},
{
offset: 0.5,
color: "rgba(142, 187, 255, 0.5)",
},
{
offset: 1,
color: "rgba(142, 187, 255, 0.20)",
},
],
},
];
const option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br/> {a0}:{c0}<br/>{a1}:{c1}",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#3F82F7", //
},
},
},
legend: {
data: ["救助金额", "救助人数"],
@ -65,7 +36,7 @@ const option = {
color: "#ffffff",
},
calculable: true,
color,
xAxis: [
{
type: "category",
@ -92,7 +63,7 @@ const option = {
type: "value",
scale: true,
name: "救助人数",
max: max,
splitLine: {
//线
show: false,
@ -121,7 +92,7 @@ const option = {
type: "value",
scale: true,
min: 0,
max: max,
name: "救助金额/万",
splitLine: {
show: false,
@ -146,9 +117,35 @@ const option = {
},
},
},
{
type: "value",
min: 0,
max: 100,
splitLine: {
show: false,
lineStyle: {
type: "solid",
color: "rgb(221, 242, 255,0.1)",
},
},
axisLine: {
show: false,
lineStyle: {
type: "dotted",
},
},
axisLabel: {
show: false,
fontSize: 14,
fontFamily: "MicrosoftYaHei",
color: "#DEF1FF",
lineHeight: 19,
},
},
],
series: [
{
yAxisIndex: 1,
name: "救助金额",
data: lineData,
type: "line", //线
@ -162,6 +159,7 @@ const option = {
},
},
{
yAxisIndex: 0,
name: "救助人数",
data: data,
barWidth: 20,
@ -179,14 +177,11 @@ const option = {
]),
},
},
{
{
type: "bar",
xAxisIndex: 1,
itemStyle: {
color: "rgba(180, 180, 180, 0.2)", //
},
data: data.map(() => max),
barWidth: 40, //
emphasis: {
yAxisIndex: 2,
emphasis: {
itemStyle: {
color: {
type: "linear",
@ -207,7 +202,11 @@ const option = {
},
},
},
type: "bar",
itemStyle: {
color: "rgba(221, 242, 255, 0.1)",
},
data: ["2019", "2020", "2021", "2022", "2023"].map(() => 100),
barWidth: 50,
},
],
};

View File

@ -44,12 +44,7 @@ const option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br/> {a0}:{c0}<br/>{a1}:{c1}",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#3F82F7", //
},
},
},
legend: {
data: ["救助金额", "救助人数"],

View File

@ -36,13 +36,8 @@ const color = [
const option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br/> {a0}:{c0}<br/>{a1}:{c1}",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#3F82F7", //
},
},
formatter: "{b0}<br/> {a0}:{c0}<br/>{a1}:{c1}<br/>{a2}:{c2}<br/>{a3}:{c3}<br/>{a4}:{c4}",
},
legend: [
{
@ -153,6 +148,7 @@ const option = {
},
},
},
],
series: [
{

View File

@ -30,12 +30,7 @@ const option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br/> {a0}:{c0}<br/>{a1}:{c1}",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#3F82F7", //
},
},
},
legend: {

View File

@ -21,7 +21,7 @@ let option = {
right: "15%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -46,7 +46,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -62,7 +62,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -21,7 +21,7 @@ let option = {
right: "15%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -46,7 +46,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -62,7 +62,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -21,7 +21,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -38,7 +38,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -54,7 +54,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -19,7 +19,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -35,7 +35,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
data: ["2019", "2020", "2021", "2022", "2023"],
@ -64,7 +64,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -19,7 +19,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -35,7 +35,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
data: ["2019", "2020", "2021", "2022", "2023"],
@ -63,7 +63,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -21,7 +21,7 @@ let option = {
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
color: "#ffffff",
},
},
grid: {
@ -38,7 +38,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},
@ -54,7 +54,7 @@ let option = {
axisLabel: {
//
textStyle: {
color: "#ccc",
color: "#ffffff",
},
},
},

View File

@ -1,5 +1,5 @@
<template>
<div ref="chart" style="width:100%;height:calc(100% - 200px);min-height:200px;"></div>
<div ref="chart" style="width:100%;height:250px;"></div>
</template>
<script setup>

View File

@ -60,7 +60,7 @@ const option = {
grid: {
left: "6%",
right: "9%",
bottom: "0%",
bottom: "2%",
containLabel: true,
color: "#ffffff",
},

View File

@ -6,10 +6,12 @@
<eP1></eP1>
<div class="t_1"></div>
<div class="t_2">
<div class="t_3" v-for="(item,index) in fl" :key="index">
<div class="top">{{item.value}}%</div>
<div :class='item.cls'></div>
<div class="right">{{item.name}}</div>
<div class="t_2_1" v-for="(item, index) in fl" :key="index">
<div class="top">{{ item.value }}%</div>
<div class="t_3">
<div :class="item.cls"></div>
<div class="right">{{ item.name }}</div>
</div>
</div>
</div>
</div>
@ -1198,80 +1200,83 @@ onBeforeMount(() => {
background-size: 100% 100%;
}
.t_2 {
margin-top: 35px;
margin-top: 5px;
padding: 0 10px;
display: flex;
justify-content: space-around;
.t_3 {
width: 135px;
height: 90px;
background-image: url(@/assets/images/education/fk.png);
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;
.t_2_1 {
display: flex;
flex-direction: column;
align-items: center;
.top {
position: absolute;
left: 38px;
top: -25px;
font-size: 26px;
color: #ffffff;
line-height: 30px;
}
.left1 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/lset.png);
.t_3 {
width: 135px;
height: 90px;
background-image: url(@/assets/images/education/fk.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left2 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dszn.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left3 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dqjt.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left4 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/xsdb.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right {
position: absolute;
left: 65px;
top: 35px;
width: 38px;
height: 40px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 15px;
color: #ffffff;
line-height: 20px;
letter-spacing: 4px;
text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.65);
text-align: center;
font-style: normal;
position: relative;
.left1 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/lset.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left2 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dszn.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left3 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dqjt.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left4 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/xsdb.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right {
position: absolute;
left: 65px;
top: 35px;
width: 38px;
height: 40px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 15px;
color: #ffffff;
line-height: 20px;
letter-spacing: 4px;
text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.65);
text-align: center;
font-style: normal;
}
}
}
}

View File

@ -79,14 +79,14 @@
<div class="leftImg"><eP4></eP4></div>
<div class="left_me">
<div>建档率</div>
<div style="margin-top: 5px">92.96%</div>
<div class="bo">92.96%</div>
</div>
</div>
<div class="right">
<div class="rightImg"></div>
<div class="rightImg"><eP4_1></eP4_1></div>
<div class="right_me">
<div>家庭医生</div>
<div style="margin-top: 5px">2000</div>
<div>家庭医生签约率</div>
<div class="bo">62.16%</div>
</div>
</div>
</div>
@ -141,6 +141,7 @@ import eP7 from "./echarts_hygiene/eP7.vue";
import eP6 from "./echarts_hygiene/eP6.vue";
import eP5 from "./echarts_hygiene/eP5.vue";
import eP4 from "./echarts_hygiene/eP4.vue";
import eP4_1 from "./echarts_hygiene/eP4_1.vue";
import tnb from "./echarts_hygiene/tnb.vue";
import gxy from "./echarts_hygiene/gxy.vue";
import { ref, onMounted, onBeforeMount } from "vue";
@ -209,6 +210,7 @@ const change = (name, index) => {
}
.familyPlanning {
width: 96%;
background-image: url(@/assets/images/hygiene/center_title_2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
@ -311,11 +313,13 @@ const change = (name, index) => {
}
.center_1 {
width: 96%;
background-image: url(@/assets/images/hygiene/center_title_1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.center_2 {
width: 96%;
background-image: url(@/assets/images/hygiene/new_center.png);
background-repeat: no-repeat;
background-size: 100% 100%;
@ -384,7 +388,7 @@ const change = (name, index) => {
.right_bg {
width: 642px;
box-sizing: border-box;
padding-left: 10px;
padding-left: 20px;
margin-right: 28px;
background-image: url(@/assets/images/right_bg.png);
background-repeat: no-repeat;
@ -545,48 +549,7 @@ const change = (name, index) => {
border-bottom: 13px solid rgba(57, 59, 109, 1);
}
}
.history2 {
font-size: 26px;
color: #ffffff;
line-height: 30px;
letter-spacing: 1px;
text-align: center;
font-style: normal;
font-family: PangMenZhengDao;
display: flex;
flex-direction: column;
align-items: center;
.va {
margin-top: 27px;
margin-bottom: 20px;
font-family: DINAlternate, DINAlternate;
font-size: 26px;
color: #ffffff;
line-height: 30px;
letter-spacing: 1px;
text-shadow: 0px 2px 4px rgba(255, 255, 255, 0.5);
text-align: right;
font-style: normal;
}
img {
width: 113px;
height: 121px;
}
.historyimg {
margin-top: 10px;
padding: 0 25px;
background-image: url(@/assets/images/hygiene/xtgl_1.png);
background-size: 100% 100%;
background-repeat: no-repeat;
font-size: 15px;
color: #ffffff;
line-height: 21px;
letter-spacing: 2px;
}
}
.concernLabel {
display: flex;
align-items: center;
@ -705,11 +668,54 @@ const change = (name, index) => {
height: 250px;
display: flex;
align-items: center;
justify-content: space-around;
}
.history2 {
font-size: 26px;
color: #ffffff;
line-height: 30px;
letter-spacing: 1px;
text-align: center;
font-style: normal;
font-family: PangMenZhengDao;
display: flex;
flex-direction: column;
align-items: center;
.va {
margin-top: 27px;
margin-bottom: 20px;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 20px;
color: #ffffff;
line-height: 24px;
letter-spacing: 1px;
text-shadow: 0px 0px 23px rgba(0, 252, 255, 0.5);
text-align: center;
font-style: normal;
}
img {
width: 113px;
height: 121px;
}
.historyimg {
margin-top: 10px;
padding: 0 25px;
background-image: url(@/assets/images/hygiene/xtgl_1.png);
background-size: 100% 100%;
background-repeat: no-repeat;
font-size: 15px;
color: #ffffff;
line-height: 21px;
letter-spacing: 2px;
}
}
.minTopPart2 {
width: 368px;
height: 145px;
margin-left: 5px;
width: 420px;
height: 136px;
background-image: url(@/assets/images/hygiene/xia_1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
@ -717,50 +723,69 @@ const change = (name, index) => {
position: relative;
display: flex;
margin-top: 35px;
padding: 0 5px;
box-sizing: border-box;
.left {
display: flex;
align-items: center;
justify-content: center;
margin-left: 10px;
margin-top: -10px;
margin-left: 13px;
.leftImg {
width: 100px;
height: 100px;
width: 90px;
height: 90px;
}
.left_me {
margin-left: 10px;
display: flex;
flex-direction: column;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
font-size: 14px;
color: #ffffff;
line-height: 22px;
line-height: 20px;
letter-spacing: 2px;
text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.65);
.bo {
margin-top: 5px;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 18px;
color: #00fffc;
line-height: 21px;
text-shadow: 0px 0px 13px rgba(0, 252, 255, 0.5);
}
}
}
.right {
display: flex;
align-items: center;
// justify-content: center;
margin-left: 10px;
.rightImg {
width: 78px;
height: 78px;
background-image: url(@/assets/images/hygiene/xia_right.png);
background-repeat: no-repeat;
background-size: 100% 100%;
width: 90px;
height: 90px;
}
.right_me {
margin-left: 10px;
display: flex;
flex-direction: column;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
font-size: 14px;
color: #ffffff;
line-height: 22px;
line-height: 20px;
letter-spacing: 2px;
text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.65);
.bo {
margin-top: 5px;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 18px;
color: #ffe92c;
line-height: 21px;
text-shadow: 0px 0px 13px rgba(0, 252, 255, 0.5);
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4,31 +4,11 @@
<div class="flex1">
<div class="yd_title left_1">
<span class="text">
<img
v-if="leftchoose.first == '1'"
src="@/assets/images/ylbx_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/ylbx_1_1.png"
class="c"
@click="change('first', '1')"
/>
<img
v-if="leftchoose.first == '2'"
src="@/assets/images/ylbx_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/ylbx_2_1.png"
class="c"
@click="change('first', '2')"
style="height:35px;width:120px;margin-right:10px;"
/>
<img v-if="leftchoose.first == '1'" src="@/assets/images/ylbx_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/ylbx_1_1.png" class="c" @click="change('first', '1')" />
<img v-if="leftchoose.first == '2'" src="@/assets/images/ylbx_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/ylbx_2_1.png" class="c" @click="change('first', '2')"
style="height:35px;width:120px;margin-right:10px;" />
</span>
</div>
<ePie v-if="leftchoose.first == '1'"></ePie>
@ -37,30 +17,10 @@
<div class="flex1" style="margin-top: 10px">
<div class="yd_title left_2">
<span class="text">
<img
v-if="leftchoose.second == '1'"
src="@/assets/images/gllrbt_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/gllrbt_1_1.png"
class="c"
@click="change('second', '1')"
/>
<img
v-if="leftchoose.second == '2'"
src="@/assets/images/gllrbt_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/gllrbt_2_1.png"
class="c"
@click="change('second', '2')"
/>
<img v-if="leftchoose.second == '1'" src="@/assets/images/gllrbt_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/gllrbt_1_1.png" class="c" @click="change('second', '1')" />
<img v-if="leftchoose.second == '2'" src="@/assets/images/gllrbt_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/gllrbt_2_1.png" class="c" @click="change('second', '2')" />
</span>
</div>
<eP2 v-if="leftchoose.second == '1'"></eP2>
@ -69,30 +29,10 @@
<div class="flex1" style="margin-top: 10px">
<div class="yd_title left_3">
<span class="text">
<img
v-if="leftchoose.third == '1'"
src="@/assets/images/tkjz_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/tkjz_1_1.png"
class="c"
@click="change('third', '1')"
/>
<img
v-if="leftchoose.third == '2'"
src="@/assets/images/tkjz_1.png"
class="c"
style="width: 160px"
/>
<img
v-else
src="@/assets/images/tkjz_2_1.png"
class="c"
@click="change('third', '2')"
/>
<img v-if="leftchoose.third == '1'" src="@/assets/images/tkjz_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/tkjz_1_1.png" class="c" @click="change('third', '1')" />
<img v-if="leftchoose.third == '2'" src="@/assets/images/tkjz_1.png" class="c" style="width: 160px" />
<img v-else src="@/assets/images/tkjz_2_1.png" class="c" @click="change('third', '2')" />
</span>
</div>
<eP3 v-if="leftchoose.third == '1'"></eP3>
@ -163,11 +103,7 @@
</div>
<div class="flex1">
<div class="mealAssistance">
<img
class="mealAssistanceimg"
src="@/assets/YLimg/ylimg7.png"
alt=""
/>
<img class="mealAssistanceimg" src="@/assets/YLimg/ylimg7.png" alt="" />
</div>
<ylXZZC></ylXZZC>
</div>
@ -188,6 +124,7 @@ import ylJHSY from "./echarts_yl/ylJHSY.vue";
import ylSMFW from "./echarts_yl/ylSMFW.vue";
import ylXZZC from "./echarts_yl/ylXZZC.vue";
import { ref, onMounted, onBeforeMount } from "vue";
import http from "@/utils/request.js";
const leftchoose = ref({
first: "1",
second: "1",
@ -196,6 +133,16 @@ const leftchoose = ref({
const change = (name, index) => {
leftchoose.value[name] = index;
};
onMounted(() => {
getPie1();
});
const getPie1 = () => {
http.get("/api/ggfwyth/yl").then((res) => {
if (res.code == 200) {
console.log(res.data);
}
});
};
</script>
<style lang="scss" scoped>
@ -246,6 +193,7 @@ const change = (name, index) => {
top: 1px;
align-items: center;
}
.c {
width: 130px;
height: 42px;
@ -286,11 +234,13 @@ const change = (name, index) => {
justify-content: space-between;
padding: 10px 36px 0px 20px;
box-sizing: border-box;
.visit {
display: flex;
flex-direction: column;
align-items: center;
}
.medicalService {
display: flex;
flex-direction: column;
@ -303,6 +253,7 @@ const change = (name, index) => {
.medicalServiceTop {
position: relative;
span {
position: absolute;
left: 45px;
@ -320,6 +271,7 @@ const change = (name, index) => {
}
}
}
.mealAssistance {
display: flex;
flex-direction: column;
@ -366,6 +318,7 @@ const change = (name, index) => {
background-repeat: no-repeat;
background-size: 100% 100%;
}
.center_bg {
width: 582px;
// height: 100%;
@ -376,15 +329,17 @@ const change = (name, index) => {
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right_bg {
width: 642px;
box-sizing: border-box;
padding-left: 10px;
padding-left: 20px;
margin-right: 28px;
background-image: url(@/assets/images/right_bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.basicInformation {
display: flex;
flex-direction: row;
@ -484,6 +439,7 @@ const change = (name, index) => {
display: flex;
justify-content: space-around;
align-items: center;
.history1 {
font-size: 26px;
color: #ffffff;
@ -650,6 +606,7 @@ const change = (name, index) => {
background-repeat: no-repeat;
background-size: 100% 100%;
margin: 4px auto;
margin-top: 10px;
position: relative;
.mtpImg1 {
@ -673,6 +630,7 @@ const change = (name, index) => {
top: 49px;
right: 23px;
}
.mtpImg3 {
width: 125px;
height: 36px;
@ -696,6 +654,7 @@ const change = (name, index) => {
font-size: 26px;
color: #ffffff;
}
.mtpText2 {
width: 140px;
height: 30px;

View File

@ -11,15 +11,15 @@ export default defineConfig({
open: true,
base: "./ ", //生产环境路径
// hmr: true,
// proxy: {
// // 第一个代理
// "/app": {
// // 匹配到啥来进行方向代理
// target: "https://mall.btdit.cn/", //周源
// changeOrigin: true, //是否支持跨域
// //rewrite: (path) => path.replace(/^\/api/, '') // 如果不需要api 直接把路径上的api 替换成空,这个
// },
// },
proxy: {
// 第一个代理
"/api": {
// 匹配到啥来进行方向代理
target: "http://192.168.2.42:8095/", //周源
changeOrigin: true, //是否支持跨域
//rewrite: (path) => path.replace(/^\/api/, '') // 如果不需要api 直接把路径上的api 替换成空,这个
},
},
},
define: {
"process.env": {
@ -37,6 +37,7 @@ export default defineConfig({
build: {
chunkSizeWarningLimit: 1500,
assetsDir: 'assets2', // 指定生成静态文件目录
assetsDir: 'assets', // 指定生成静态文件目录
},
base: './'
});

129
yarn.lock
View File

@ -9,12 +9,12 @@
"@ctrl/tinycolor@^3.4.1":
version "3.6.1"
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31"
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz"
integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
"@element-plus/icons-vue@^2.3.1":
version "2.3.1"
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz#1f635ad5fdd5c85ed936481525570e82b5a8307a"
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz"
integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==
"@esbuild/android-arm64@0.17.14":
@ -128,45 +128,45 @@
integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==
"@floating-ui/core@^1.0.0":
version "1.6.0"
resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1"
integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==
version "1.6.1"
resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.1.tgz"
integrity sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==
dependencies:
"@floating-ui/utils" "^0.2.1"
"@floating-ui/utils" "^0.2.0"
"@floating-ui/dom@^1.0.1":
version "1.6.3"
resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.3.tgz#954e46c1dd3ad48e49db9ada7218b0985cee75ef"
integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==
version "1.6.5"
resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.5.tgz"
integrity sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==
dependencies:
"@floating-ui/core" "^1.0.0"
"@floating-ui/utils" "^0.2.0"
"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1":
version "0.2.1"
resolved "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
"@floating-ui/utils@^0.2.0":
version "0.2.2"
resolved "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.2.tgz"
integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
version "2.11.7"
resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
"@types/lodash-es@^4.17.6":
version "4.17.12"
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz"
integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
dependencies:
"@types/lodash" "*"
"@types/lodash@*", "@types/lodash@^4.14.182":
version "4.17.0"
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.0.tgz#d774355e41f372d5350a4d0714abb48194a489c3"
integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==
version "4.17.1"
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.1.tgz"
integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==
"@types/web-bluetooth@^0.0.16":
version "0.0.16"
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8"
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
"@vitejs/plugin-vue@^4.1.0":
@ -271,7 +271,7 @@
"@vueuse/core@^9.1.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz"
integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==
dependencies:
"@types/web-bluetooth" "^0.0.16"
@ -281,12 +281,12 @@
"@vueuse/metadata@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff"
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz"
integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==
"@vueuse/shared@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9"
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz"
integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==
dependencies:
vue-demi "*"
@ -301,9 +301,23 @@ anymatch@~3.1.2:
async-validator@^4.2.5:
version "4.2.5"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.6.8:
version "1.6.8"
resolved "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz"
integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz"
@ -336,15 +350,27 @@ claygl@^1.2.1:
resolved "https://registry.npmmirror.com/claygl/-/claygl-1.3.0.tgz"
integrity sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
csstype@^2.6.8:
version "2.6.21"
resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz"
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
dayjs@^1.11.3:
version "1.11.10"
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
version "1.11.11"
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz"
integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
echarts-gl@^2.0.9:
version "2.0.9"
@ -368,9 +394,9 @@ echarts@^5.4.2:
zrender "5.4.3"
element-plus@^2.7.0:
version "2.7.0"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.7.0.tgz#1d72b06946c46a6f18e5315610b7f0147b8efb24"
integrity sha512-WAiaFLavuWFxof9qwkC27jvkh9nRcNnB506g1vvJSiVaVqjCBWUFCIyJKeN11M1qcv2cS5VV5PfSLjTIkrw87A==
version "2.7.2"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.7.2.tgz"
integrity sha512-AdEzBU/A68iUleio0MkQ46JeU5SeQvFFd915GJFScJmUEo5AmYg3OQ4pVjcu+p3b3Nupg9MC5Wa4xjAiC51kUg==
dependencies:
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^2.3.1"
@ -418,7 +444,7 @@ esbuild@^0.17.5:
escape-html@^1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
estree-walker@^2.0.2:
@ -433,6 +459,20 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
follow-redirects@^1.15.6:
version "1.15.6"
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@ -495,17 +535,17 @@ is-number@^7.0.0:
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash-unified@^1.0.2:
version "1.0.3"
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz"
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
magic-string@^0.25.7:
@ -517,9 +557,21 @@ magic-string@^0.25.7:
memoize-one@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz"
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12:
version "2.1.35"
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
nanoid@^3.3.4:
version "3.3.6"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
@ -532,7 +584,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
normalize-wheel-es@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz#0fa2593d619f7245a541652619105ab076acf09e"
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz"
integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
path-parse@^1.0.7:
@ -559,6 +611,11 @@ postcss@^8.1.10, postcss@^8.4.21:
picocolors "^1.0.0"
source-map-js "^1.0.2"
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz"
@ -637,7 +694,7 @@ vite@^4.2.0:
vue-demi@*:
version "0.14.7"
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2"
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz"
integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==
vue-router@^4.1.6: