Sfoglia il codice sorgente

修改一些bug和更新一些功能

aamin 1 anno fa
parent
commit
8556dd6f99

+ 5 - 4
houtai/src/pages/A1Rule/index.tsx

@@ -126,11 +126,12 @@ function A1Rule() {
   };
 
   function getFirstDayOfMonth() {
-    var now = new Date(); // 获取当前时间
-    var year = now.getFullYear(); // 获取当前年份
-    var month = now.getMonth(); // 获取当前月份(注意:月份从0开始,0表示一月)
+    var date = new Date();
+    var year = date.getFullYear();
+    var month = ("0" + (date.getMonth() + 1)).slice(-2);
+    var day = ("0" + date.getDate()).slice(-2);
 
-    return `${year}-${month + 1}-1 00:00:01`; // 返回时间戳
+    return `${year}-${month}-${day} 00:00:01`; // 返回时间戳
   }
 
   const [form] = Form.useForm();

+ 2 - 2
scene/public/static/css/css/oldVer/main0.css

@@ -151,8 +151,8 @@ iframe{
 }
 @media screen and  (max-width:667px){
 	#closepop{
-		width: 36px;
-		height: 36px;
+		width: 40px;
+		height: 40px;
 		top: 0px;
 		right: 0px;
 	}

+ 2 - 2
scene/src/assets/style/myBase.css

@@ -85,8 +85,8 @@
   }
 
   #closepop {
-    top: 4px;
-    right: 4px;
+    top: 10px;
+    right: 10px;
   }
 
   #gui .pinBottom.right {

+ 1 - 1
scene/src/components/info/index.vue

@@ -116,7 +116,7 @@ export default {
     .disc-box {
       width: 100%;
       max-width: 90vw;
-      max-height: 80vh;
+      max-height: 60vh;
       overflow: auto;
     }
   }

+ 476 - 74
zhengquan/package-lock.json

@@ -11,10 +11,12 @@
         "@types/node": "^20.5.0",
         "axios": "^1.6.2",
         "easyscroller": "^1.0.1",
+        "element-plus": "^2.5.5",
         "js-base64": "^3.7.5",
         "pinia": "^2.1.7",
         "swiper": "^10.3.1",
-        "vant": "^4.6.4",
+        "v-viewer": "^3.0.11",
+        "vant": "^4.8.4",
         "vue": "^3.3.11",
         "vue-router": "^4.2.5"
       },
@@ -32,7 +34,7 @@
         "npm-run-all2": "^6.1.1",
         "prettier": "^3.0.3",
         "typescript": "~5.3.0",
-        "unplugin-auto-import": "^0.17.2",
+        "unplugin-auto-import": "^0.17.5",
         "unplugin-vue-components": "^0.26.0",
         "vite": "^5.0.10",
         "vue-tsc": "^1.8.25"
@@ -242,6 +244,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/android-arm": {
       "version": "0.19.9",
       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz",
@@ -647,6 +665,28 @@
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
     },
+    "node_modules/@floating-ui/core": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.0.tgz",
+      "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==",
+      "dependencies": {
+        "@floating-ui/utils": "^0.2.1"
+      }
+    },
+    "node_modules/@floating-ui/dom": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.1.tgz",
+      "integrity": "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==",
+      "dependencies": {
+        "@floating-ui/core": "^1.6.0",
+        "@floating-ui/utils": "^0.2.1"
+      }
+    },
+    "node_modules/@floating-ui/utils": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.1.tgz",
+      "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
+    },
     "node_modules/@humanwhocodes/config-array": {
       "version": "0.11.13",
       "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
@@ -733,6 +773,12 @@
         "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
       }
     },
+    "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/@rollup/pluginutils": {
       "version": "5.1.0",
       "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@@ -948,6 +994,19 @@
       "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
       "dev": true
     },
+    "node_modules/@types/lodash": {
+      "version": "4.14.202",
+      "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz",
+      "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ=="
+    },
+    "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/node": {
       "version": "18.19.3",
       "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.3.tgz",
@@ -969,6 +1028,11 @@
       "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
       "dev": true
     },
+    "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/@typescript-eslint/eslint-plugin": {
       "version": "6.14.0",
       "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz",
@@ -1383,10 +1447,78 @@
       "integrity": "sha512-vRNRhhZfoJganWuqWuePo7ol2MaG9XkQD3jVJy2WuZOWWa5LAjJqnBSBsTGKvCrcrVMe5nPM9Intp7o3ekRjUw==",
       "dev": true
     },
+    "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/acorn": {
-      "version": "8.11.2",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz",
-      "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+      "version": "8.11.3",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
       "dev": true,
       "bin": {
         "acorn": "bin/acorn"
@@ -1465,6 +1597,11 @@
         "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",
@@ -1692,6 +1829,11 @@
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
       "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
     },
+    "node_modules/dayjs": {
+      "version": "1.11.10",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
+      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+    },
     "node_modules/de-indent": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
@@ -1795,6 +1937,31 @@
       "resolved": "https://registry.npmmirror.com/easyscroller/-/easyscroller-1.0.1.tgz",
       "integrity": "sha512-B+HKdH5EhPxFWmnr5sp97eGNjOU7bgGCzStw3W3HZ7Yt/cmzN9J3MPt2ctBvB/E4cmoFKQx/xW3z88dQ8M7EeA=="
     },
+    "node_modules/element-plus": {
+      "version": "2.5.5",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.5.5.tgz",
+      "integrity": "sha512-yGU/MruLOWI0ImQPFCyFM4cXtHtILJNAi0hhLImcxjRukjgQLYNkvcvbwqNgBUt808KSeKF9MyxENFyBQLTg+Q==",
+      "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/errno": {
       "version": "0.1.8",
       "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
@@ -1854,6 +2021,11 @@
         "@esbuild/win32-x64": "0.19.9"
       }
     },
+    "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/escape-string-regexp": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2640,9 +2812,9 @@
       "dev": true
     },
     "node_modules/jsonc-parser": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
-      "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
       "dev": true
     },
     "node_modules/keyv": {
@@ -2730,8 +2902,22 @@
     "node_modules/lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "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/lodash.merge": {
       "version": "4.6.2",
@@ -2783,6 +2969,11 @@
         "semver": "bin/semver"
       }
     },
+    "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/memorystream": {
       "version": "0.3.1",
       "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz",
@@ -2874,15 +3065,15 @@
       }
     },
     "node_modules/mlly": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz",
-      "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.5.0.tgz",
+      "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==",
       "dev": true,
       "dependencies": {
-        "acorn": "^8.10.0",
-        "pathe": "^1.1.1",
+        "acorn": "^8.11.3",
+        "pathe": "^1.1.2",
         "pkg-types": "^1.0.3",
-        "ufo": "^1.3.0"
+        "ufo": "^1.3.2"
       }
     },
     "node_modules/ms": {
@@ -2955,6 +3146,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/npm-run-all2": {
       "version": "6.1.1",
       "resolved": "https://registry.npmmirror.com/npm-run-all2/-/npm-run-all2-6.1.1.tgz",
@@ -3212,9 +3408,9 @@
       }
     },
     "node_modules/pathe": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz",
-      "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+      "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
       "dev": true
     },
     "node_modules/picocolors": {
@@ -3620,9 +3816,9 @@
       "optional": true
     },
     "node_modules/scule": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz",
-      "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz",
+      "integrity": "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==",
       "dev": true
     },
     "node_modules/semver": {
@@ -3917,13 +4113,15 @@
       "dev": true
     },
     "node_modules/unimport": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.6.1.tgz",
-      "integrity": "sha512-zKzbp8AQ+l8QK3XrONtUBdgBbMI8TkGh8hBYF77ZkVqMLLIAHwGSwJRFolPQMBx/5pezeRKvmu2gzlqnxRZeqQ==",
+      "version": "3.7.1",
+      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.1.tgz",
+      "integrity": "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==",
       "dev": true,
       "dependencies": {
         "@rollup/pluginutils": "^5.1.0",
+        "acorn": "^8.11.2",
         "escape-string-regexp": "^5.0.0",
+        "estree-walker": "^3.0.3",
         "fast-glob": "^3.3.2",
         "local-pkg": "^0.5.0",
         "magic-string": "^0.30.5",
@@ -3944,32 +4142,41 @@
         "node": ">=12"
       }
     },
+    "node_modules/unimport/node_modules/estree-walker": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+      "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+      "dev": true,
+      "dependencies": {
+        "@types/estree": "^1.0.0"
+      }
+    },
     "node_modules/unplugin": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.1.tgz",
-      "integrity": "sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz",
+      "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
       "dev": true,
       "dependencies": {
         "acorn": "^8.11.2",
         "chokidar": "^3.5.3",
         "webpack-sources": "^3.2.3",
-        "webpack-virtual-modules": "^0.6.0"
+        "webpack-virtual-modules": "^0.6.1"
       }
     },
     "node_modules/unplugin-auto-import": {
-      "version": "0.17.2",
-      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.2.tgz",
-      "integrity": "sha512-Eu/xWI6SH4jTWXvzOfXQWAxRtiz/gMObm7wXtgMj7wBjHQKLgHTmHd4R4oha87KYGah1aKMqiqDeAxiPmfSoTg==",
+      "version": "0.17.5",
+      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz",
+      "integrity": "sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w==",
       "dev": true,
       "dependencies": {
-        "@antfu/utils": "^0.7.6",
+        "@antfu/utils": "^0.7.7",
         "@rollup/pluginutils": "^5.1.0",
         "fast-glob": "^3.3.2",
         "local-pkg": "^0.5.0",
         "magic-string": "^0.30.5",
         "minimatch": "^9.0.3",
-        "unimport": "^3.6.0",
-        "unplugin": "^1.5.1"
+        "unimport": "^3.7.1",
+        "unplugin": "^1.6.0"
       },
       "engines": {
         "node": ">=14"
@@ -4096,6 +4303,18 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
       "dev": true
     },
+    "node_modules/v-viewer": {
+      "version": "3.0.11",
+      "resolved": "https://registry.npmmirror.com/v-viewer/-/v-viewer-3.0.11.tgz",
+      "integrity": "sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==",
+      "dependencies": {
+        "lodash": "^4.17.21",
+        "viewerjs": "^1.9.0"
+      },
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
     "node_modules/validate-npm-package-license": {
       "version": "3.0.4",
       "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -4107,9 +4326,9 @@
       }
     },
     "node_modules/vant": {
-      "version": "4.8.1",
-      "resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.1.tgz",
-      "integrity": "sha512-SkFZM3Z3Bwi5do+iQNfRgDi7b+Ka29rUUNzck06W2KoFie3CLTqSifLa5TuZCEoXPSkqR+fRH/VE5G57mmL8sg==",
+      "version": "4.8.4",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.4.tgz",
+      "integrity": "sha512-2ompmogS76pFWUDrQGYNXAENWxisJXqv0+eIqt7mGo1TJJXcUikQ5sfRjX8W3HTkTe1FxV7lzuI3QrW01i043g==",
       "dependencies": {
         "@vant/popperjs": "^1.3.0",
         "@vant/use": "^1.6.0",
@@ -4119,6 +4338,11 @@
         "vue": "^3.0.0"
       }
     },
+    "node_modules/viewerjs": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz",
+      "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw=="
+    },
     "node_modules/vite": {
       "version": "5.0.10",
       "resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.10.tgz",
@@ -4472,6 +4696,17 @@
       "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz",
       "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ=="
     },
+    "@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=="
+    },
+    "@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==",
+      "requires": {}
+    },
     "@esbuild/android-arm": {
       "version": "0.19.9",
       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz",
@@ -4664,6 +4899,28 @@
       "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
       "dev": true
     },
+    "@floating-ui/core": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.0.tgz",
+      "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==",
+      "requires": {
+        "@floating-ui/utils": "^0.2.1"
+      }
+    },
+    "@floating-ui/dom": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.1.tgz",
+      "integrity": "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==",
+      "requires": {
+        "@floating-ui/core": "^1.6.0",
+        "@floating-ui/utils": "^0.2.1"
+      }
+    },
+    "@floating-ui/utils": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.1.tgz",
+      "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
+    },
     "@humanwhocodes/config-array": {
       "version": "0.11.13",
       "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
@@ -4732,6 +4989,11 @@
         "tslib": "^2.6.0"
       }
     },
+    "@popperjs/core": {
+      "version": "npm:@sxzz/popperjs-es@2.11.7",
+      "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+    },
     "@rollup/pluginutils": {
       "version": "5.1.0",
       "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@@ -4858,6 +5120,19 @@
       "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
       "dev": true
     },
+    "@types/lodash": {
+      "version": "4.14.202",
+      "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz",
+      "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ=="
+    },
+    "@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==",
+      "requires": {
+        "@types/lodash": "*"
+      }
+    },
     "@types/node": {
       "version": "18.19.3",
       "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.3.tgz",
@@ -4879,6 +5154,11 @@
       "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
       "dev": true
     },
+    "@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=="
+    },
     "@typescript-eslint/eslint-plugin": {
       "version": "6.14.0",
       "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz",
@@ -5199,10 +5479,50 @@
       "integrity": "sha512-vRNRhhZfoJganWuqWuePo7ol2MaG9XkQD3jVJy2WuZOWWa5LAjJqnBSBsTGKvCrcrVMe5nPM9Intp7o3ekRjUw==",
       "dev": true
     },
+    "@vueuse/core": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
+      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+      "requires": {
+        "@types/web-bluetooth": "^0.0.16",
+        "@vueuse/metadata": "9.13.0",
+        "@vueuse/shared": "9.13.0",
+        "vue-demi": "*"
+      },
+      "dependencies": {
+        "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==",
+          "requires": {}
+        }
+      }
+    },
+    "@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=="
+    },
+    "@vueuse/shared": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
+      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+      "requires": {
+        "vue-demi": "*"
+      },
+      "dependencies": {
+        "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==",
+          "requires": {}
+        }
+      }
+    },
     "acorn": {
-      "version": "8.11.2",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz",
-      "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+      "version": "8.11.3",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
       "dev": true
     },
     "acorn-jsx": {
@@ -5261,6 +5581,11 @@
       "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
       "dev": true
     },
+    "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=="
+    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
@@ -5446,6 +5771,11 @@
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
       "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
     },
+    "dayjs": {
+      "version": "1.11.10",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
+      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+    },
     "de-indent": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
@@ -5523,6 +5853,28 @@
       "resolved": "https://registry.npmmirror.com/easyscroller/-/easyscroller-1.0.1.tgz",
       "integrity": "sha512-B+HKdH5EhPxFWmnr5sp97eGNjOU7bgGCzStw3W3HZ7Yt/cmzN9J3MPt2ctBvB/E4cmoFKQx/xW3z88dQ8M7EeA=="
     },
+    "element-plus": {
+      "version": "2.5.5",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.5.5.tgz",
+      "integrity": "sha512-yGU/MruLOWI0ImQPFCyFM4cXtHtILJNAi0hhLImcxjRukjgQLYNkvcvbwqNgBUt808KSeKF9MyxENFyBQLTg+Q==",
+      "requires": {
+        "@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"
+      }
+    },
     "errno": {
       "version": "0.1.8",
       "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
@@ -5572,6 +5924,11 @@
         "@esbuild/win32-x64": "0.19.9"
       }
     },
+    "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=="
+    },
     "escape-string-regexp": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -6173,9 +6530,9 @@
       "dev": true
     },
     "jsonc-parser": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
-      "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
       "dev": true
     },
     "keyv": {
@@ -6243,8 +6600,18 @@
     "lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "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=="
+    },
+    "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==",
+      "requires": {}
     },
     "lodash.merge": {
       "version": "4.6.2",
@@ -6286,6 +6653,11 @@
         }
       }
     },
+    "memoize-one": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
+      "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+    },
     "memorystream": {
       "version": "0.3.1",
       "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz",
@@ -6350,15 +6722,15 @@
       }
     },
     "mlly": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz",
-      "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.5.0.tgz",
+      "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==",
       "dev": true,
       "requires": {
-        "acorn": "^8.10.0",
-        "pathe": "^1.1.1",
+        "acorn": "^8.11.3",
+        "pathe": "^1.1.2",
         "pkg-types": "^1.0.3",
-        "ufo": "^1.3.0"
+        "ufo": "^1.3.2"
       }
     },
     "ms": {
@@ -6413,6 +6785,11 @@
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
       "dev": true
     },
+    "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=="
+    },
     "npm-run-all2": {
       "version": "6.1.1",
       "resolved": "https://registry.npmmirror.com/npm-run-all2/-/npm-run-all2-6.1.1.tgz",
@@ -6615,9 +6992,9 @@
       "dev": true
     },
     "pathe": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz",
-      "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+      "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
       "dev": true
     },
     "picocolors": {
@@ -6914,9 +7291,9 @@
       "optional": true
     },
     "scule": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz",
-      "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz",
+      "integrity": "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==",
       "dev": true
     },
     "semver": {
@@ -7144,13 +7521,15 @@
       "dev": true
     },
     "unimport": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.6.1.tgz",
-      "integrity": "sha512-zKzbp8AQ+l8QK3XrONtUBdgBbMI8TkGh8hBYF77ZkVqMLLIAHwGSwJRFolPQMBx/5pezeRKvmu2gzlqnxRZeqQ==",
+      "version": "3.7.1",
+      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.1.tgz",
+      "integrity": "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==",
       "dev": true,
       "requires": {
         "@rollup/pluginutils": "^5.1.0",
+        "acorn": "^8.11.2",
         "escape-string-regexp": "^5.0.0",
+        "estree-walker": "^3.0.3",
         "fast-glob": "^3.3.2",
         "local-pkg": "^0.5.0",
         "magic-string": "^0.30.5",
@@ -7167,35 +7546,44 @@
           "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
           "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
           "dev": true
+        },
+        "estree-walker": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+          "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+          "dev": true,
+          "requires": {
+            "@types/estree": "^1.0.0"
+          }
         }
       }
     },
     "unplugin": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.1.tgz",
-      "integrity": "sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz",
+      "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
       "dev": true,
       "requires": {
         "acorn": "^8.11.2",
         "chokidar": "^3.5.3",
         "webpack-sources": "^3.2.3",
-        "webpack-virtual-modules": "^0.6.0"
+        "webpack-virtual-modules": "^0.6.1"
       }
     },
     "unplugin-auto-import": {
-      "version": "0.17.2",
-      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.2.tgz",
-      "integrity": "sha512-Eu/xWI6SH4jTWXvzOfXQWAxRtiz/gMObm7wXtgMj7wBjHQKLgHTmHd4R4oha87KYGah1aKMqiqDeAxiPmfSoTg==",
+      "version": "0.17.5",
+      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz",
+      "integrity": "sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w==",
       "dev": true,
       "requires": {
-        "@antfu/utils": "^0.7.6",
+        "@antfu/utils": "^0.7.7",
         "@rollup/pluginutils": "^5.1.0",
         "fast-glob": "^3.3.2",
         "local-pkg": "^0.5.0",
         "magic-string": "^0.30.5",
         "minimatch": "^9.0.3",
-        "unimport": "^3.6.0",
-        "unplugin": "^1.5.1"
+        "unimport": "^3.7.1",
+        "unplugin": "^1.6.0"
       },
       "dependencies": {
         "brace-expansion": {
@@ -7283,6 +7671,15 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
       "dev": true
     },
+    "v-viewer": {
+      "version": "3.0.11",
+      "resolved": "https://registry.npmmirror.com/v-viewer/-/v-viewer-3.0.11.tgz",
+      "integrity": "sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==",
+      "requires": {
+        "lodash": "^4.17.21",
+        "viewerjs": "^1.9.0"
+      }
+    },
     "validate-npm-package-license": {
       "version": "3.0.4",
       "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -7294,15 +7691,20 @@
       }
     },
     "vant": {
-      "version": "4.8.1",
-      "resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.1.tgz",
-      "integrity": "sha512-SkFZM3Z3Bwi5do+iQNfRgDi7b+Ka29rUUNzck06W2KoFie3CLTqSifLa5TuZCEoXPSkqR+fRH/VE5G57mmL8sg==",
+      "version": "4.8.4",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.4.tgz",
+      "integrity": "sha512-2ompmogS76pFWUDrQGYNXAENWxisJXqv0+eIqt7mGo1TJJXcUikQ5sfRjX8W3HTkTe1FxV7lzuI3QrW01i043g==",
       "requires": {
         "@vant/popperjs": "^1.3.0",
         "@vant/use": "^1.6.0",
         "@vue/shared": "^3.0.0"
       }
     },
+    "viewerjs": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz",
+      "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw=="
+    },
     "vite": {
       "version": "5.0.10",
       "resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.10.tgz",

+ 4 - 2
zhengquan/package.json

@@ -16,10 +16,12 @@
     "@types/node": "^20.5.0",
     "axios": "^1.6.2",
     "easyscroller": "^1.0.1",
+    "element-plus": "^2.5.5",
     "js-base64": "^3.7.5",
     "pinia": "^2.1.7",
     "swiper": "^10.3.1",
-    "vant": "^4.6.4",
+    "v-viewer": "^3.0.11",
+    "vant": "^4.8.4",
     "vue": "^3.3.11",
     "vue-router": "^4.2.5"
   },
@@ -37,7 +39,7 @@
     "npm-run-all2": "^6.1.1",
     "prettier": "^3.0.3",
     "typescript": "~5.3.0",
-    "unplugin-auto-import": "^0.17.2",
+    "unplugin-auto-import": "^0.17.5",
     "unplugin-vue-components": "^0.26.0",
     "vite": "^5.0.10",
     "vue-tsc": "^1.8.25"

File diff suppressed because it is too large
+ 940 - 660
zhengquan/public/staticData/data.js


BIN
zhengquan/public/staticData/logo/海通证券股份有限公司 1.png


BIN
zhengquan/public/staticData/logo/海通证券股份有限公司.png


BIN
zhengquan/src/assets/images/home/down.png


BIN
zhengquan/src/assets/images/home/project-bg.png


BIN
zhengquan/src/assets/images/home/up.png


+ 3 - 0
zhengquan/src/main.ts

@@ -6,11 +6,14 @@ import { createPinia } from 'pinia'
 import App from './App.vue'
 import router from './router'
 import { Toast } from 'vant';
+import "viewerjs/dist/viewer.css";
+import Viewer from "v-viewer";
 
 const app = createApp(App)
 
 app.use(createPinia())
 app.use(router)
 app.use(Toast)
+app.use(Viewer)
 
 app.mount('#app')

+ 247 - 9
zhengquan/src/views/Home/components/unitList.vue

@@ -4,6 +4,9 @@ import { useStore } from '@/stores';
 import baseResourceUrl from '@/utils/https';
 import Swiper from 'swiper'
 import 'swiper/swiper-bundle.css'
+import IconDown from '@/assets/images/home/down.png'
+import IconUp from '@/assets/images/home/up.png'
+
 
 const store = useStore()
 
@@ -126,6 +129,15 @@ onMounted(() => {
 })
 
 
+const isOpenProject = ref(true)
+
+const curProject = ref('')
+
+const isShowProject = ref(false)
+
+watch(curProject, (newValue: string) => {
+  console.log(newValue)
+})
 
 </script>
 
@@ -140,23 +152,51 @@ onMounted(() => {
           <div class="bottom-left">
             <h2>{{ curUnit ? curUnit.title : '' }}</h2>
             <div class="left-disc">{{ curUnit ? curUnit.disc : '' }}</div>
-            <!-- 项目列表 -->
-            <!-- <div class="project-list" >
-              项目案例
-              <img src="" alt="">
-            </div> -->
+            <!-- 项目案例 -->
+            <div class="project-list">
+              <div class="selected-box" v-show="curUnit.projects && curUnit.projects.length > 0"
+                @click="isOpenProject = !isOpenProject">项目案例
+                <img :src="isOpenProject ? IconUp : IconDown" alt="">
+              </div>
+              <div class="option-list" v-show="isOpenProject">
+                <div class="list-item" v-for="(item, index) in curUnit.projects" :key="index"
+                  @click="() => { curProject = item.split('&')[1]; isShowProject = true }">{{ item.split("&")[0] }} <img
+                    src="@/assets/images/home/icon-right.png" alt=""></div>
+              </div>
+            </div>
           </div>
         </div>
       </div>
     </div>
+    <!-- 项目详情显示 -->
+    <div class="project-box" v-if="curProject && isShowProject">
+      <img class="close-icon" src="@/assets/images/close-icon.png" @click="isShowProject = false" />
+      <video v-show="curProject.includes('.mp4')" :src="curProject" controls autoplay></video>
+      <!-- 查看图片 -->
+      <viewer class="viewerCla" ref="viewer">
+        <img v-show="curProject.includes('.jpg') || curProject.includes('.png')" :src="curProject" alt="">
+      </viewer>
+
+    </div>
     <!-- 信息展示移动端 -->
     <div class="info-box-mo" v-show="isShowInfoBox && browser.mobile">
       <!-- 返回按钮 -->
       <img class="back-icon" src="@/assets/images/scene/back.png" @click="isShowInfoBox = false" alt="">
       <div class="content-info">
         <h4>{{ curUnit ? curUnit.title : '' }}</h4>
-        <div>{{ curUnit ? curUnit.disc : '' }}</div>
+        <div class="info-disc">{{ curUnit ? curUnit.disc : '' }}</div>
+
+        <!-- 项目案例 -->
+        <div class="selected" @click="isOpenProject = !isOpenProject"
+          v-show="curUnit.projects && curUnit.projects.length > 0">项目案例 <img :src="isOpenProject ? IconUp : IconDown"
+            alt=""></div>
+        <div class="option-list" v-show="isOpenProject">
+          <div class="list-item" v-for="(item, index) in curUnit.projects" :key="index"
+            @click="() => { curProject = item.split('&')[1]; isShowProject = true }">{{ item.split("&")[0] }} <img
+              src="@/assets/images/home/icon-right.png" alt=""></div>
+        </div>
       </div>
+
     </div>
     <div class="content" v-if="!browser.mobile">
       <!-- 左箭头 -->
@@ -226,6 +266,36 @@ onMounted(() => {
   z-index: 2;
   overflow: hidden;
 
+  .project-box {
+    width: 100%;
+    height: 100%;
+    position: fixed;
+    top: 0;
+    left: 0;
+    z-index: 99;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background: rgba(0, 0, 0, 0.478);
+
+    video {
+      height: 100%;
+    }
+
+    img {
+      height: 100%;
+    }
+
+    .close-icon {
+      width: 40px;
+      height: 40px;
+      position: absolute;
+      top: 3%;
+      right: 1%;
+      cursor: pointer;
+    }
+  }
+
   .info-shade {
     width: 100%;
     height: 100%;
@@ -267,14 +337,17 @@ onMounted(() => {
 
       &-bottom {
         width: 100%;
-        height: 70%;
+        min-height: 70%;
+        // max-height: 90%;
         background: url(@/assets/images/home/info-bottom.png);
         background-size: 110% 110%;
+        // background-size: auto;
         background-position: center center;
         padding: 30px 20px;
         box-sizing: border-box;
         display: flex;
         justify-content: space-around;
+        overflow-y: auto;
 
         .bottom-left {
           width: 90%;
@@ -292,6 +365,66 @@ onMounted(() => {
               width: 0;
             }
           }
+
+          .project-list {
+            margin-top: 10px;
+            width: auto;
+            position: relative;
+
+            .selected-box {
+              min-width: 80%;
+              max-width: 100%;
+              background: #BC121A;
+              padding: 10px;
+              color: white;
+              display: flex;
+              justify-content: space-between;
+              box-sizing: border-box;
+
+              img {
+                height: 20px;
+              }
+
+            }
+
+            .option-list {
+              min-width: 80%;
+              max-width: 100%;
+              max-height: 150px;
+              overflow-y: auto;
+              // position: absolute;
+              top: 100%;
+              background: rgba(0, 0, 0, 0.342);
+
+              &::-webkit-scrollbar {
+                width: 0px;
+              }
+
+              .list-item {
+                padding: 3px 10px;
+                cursor: pointer;
+                color: white;
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+
+                img {
+                  opacity: 0;
+                  width: 13px;
+                }
+              }
+
+              .list-item:hover {
+                background-color: #bc121bb0;
+
+                img {
+                  opacity: 1;
+                }
+              }
+            }
+          }
+
+
         }
 
         .bottom-right {
@@ -461,6 +594,38 @@ onMounted(() => {
     height: 100%;
     // position: relative;
 
+    .project-box {
+      width: 100%;
+      height: 100%;
+      position: fixed;
+      top: 0;
+      left: 0;
+      z-index: 99;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      background: rgba(0, 0, 0, 0.788);
+
+      video {
+        width: 100%;
+        height: auto;
+      }
+
+      img {
+        width: 100%;
+        height: auto;
+      }
+
+      .close-icon {
+        width: 40px;
+        height: 40px;
+        position: absolute;
+        top: 3%;
+        right: 1%;
+        cursor: pointer;
+      }
+    }
+
     .info-box-mo {
       width: 100%;
       height: 100%;
@@ -481,15 +646,86 @@ onMounted(() => {
         max-height: 80%;
         overflow: auto;
 
-        div {
+        .info-disc {
           margin-top: 10px;
           font-size: 14px;
           letter-spacing: .3em;
           line-height: 24px;
+        }
 
+        .selected {
+          // width: 100%;
+          background: #BC121A;
+          color: white;
+          padding: 10px;
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+
+          img {
+            width: 10px;
+          }
+
+          .option-list {
+            width: 100%;
+            top: 100%;
+            background: rgba(0, 0, 0, 0.342);
+
+            .list-item {
+              padding: 5px 10px;
+              cursor: pointer;
+              color: white;
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+
+              img {
+                opacity: 0;
+                width: 13px;
+              }
+            }
+
+            .list-item:hover {
+              background-color: #bc121bb0;
+
+              img {
+                opacity: 1;
+              }
+            }
+          }
+        }
+
+        .option-list {
+          width: 100%;
+          top: 100%;
+          background: rgba(0, 0, 0, 0.342);
+
+          .list-item {
+            padding: 5px 10px;
+            cursor: pointer;
+            color: white;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+
+            img {
+              opacity: 0;
+              width: 13px;
+            }
+          }
+
+          .list-item:hover {
+            background-color: #bc121bb0;
+
+            img {
+              opacity: 1;
+            }
+          }
         }
       }
 
+
+
       .swiper-vertical {
         touch-action: none !important;
       }
@@ -574,7 +810,9 @@ onMounted(() => {
       color: white;
       flex-direction: column;
       font-family: 'SourceHanSansCN-Medium';
-      position: relative;
+      position: absolute;
+      bottom: 0;
+      right: 0;
       overflow: inherit;
 
       .icon-down {

+ 19 - 9
zhengquan/src/views/Scene/ScenePage.vue

@@ -82,6 +82,7 @@ const sortHotspots = (hotspots: any) => {
       })
     }
   })
+
   return newShowHotspots.sort((a: any, b: any) => {
     return Number(a.sort) - Number(b.sort)
   })
@@ -129,6 +130,7 @@ const getAllHotspot = () => {
   }, 500)
 }
 watch(hotspots.value, (newVal: any) => {
+
   if (newVal.length == store.dataAll.sceneList.length) {
     store.hotspots = hotspots.value
     currentUnit.value = hotspots.value.filter((item: any) => {
@@ -186,9 +188,9 @@ const translateXNumber = computed(() => {
   return browser.mobile ? `${-100 * animalZhenShuNumber.value}px` : `${-200 * animalZhenShuNumber.value}px`
 })
 
-const translateXNumberChange = computed(() => {
-  return `${-200 * animalZhenShuNumber.value}px`
-})
+// const translateXNumberChange = computed(() => {
+//   return `${-200 * animalZhenShuNumber.value}px`
+// })
 const duration = ref(`3s`)
 const xingxiangListShow = ref(false)
 const isShowFigure = ref(true)
@@ -1512,6 +1514,7 @@ const changePassFu = () => {
         transition-property: bottom;
         transition-duration: 0.4s;
         cursor: pointer;
+        will-change: transform, background-position-x;
       }
 
       @keyframes mouse-in {
@@ -1537,9 +1540,9 @@ const changePassFu = () => {
         animation-timing-function: v-bind('animalZhenShu');
         animation-iteration-count: infinite;
         transition-property: bottom;
-        transition-duration: 0.4s;
+        // transition-duration: 0.4s;
         cursor: pointer;
-
+        will-change: transform, background-position-x;
       }
 
       @keyframes xuliezhen-animation {
@@ -1548,7 +1551,8 @@ const changePassFu = () => {
         }
 
         100% {
-          background-position-x: v-bind('translateXNumber');
+          // background-position-x: v-bind('translateXNumber');
+          background-position-x: calc(100% - 100px);
         }
       }
 
@@ -1565,8 +1569,10 @@ const changePassFu = () => {
         animation-timing-function: v-bind('animalZhenShu');
         animation-iteration-count: infinite;
         transition-property: bottom;
-        transition-duration: 0.4s;
+        // transition-duration: 0.4s;
         cursor: pointer;
+        will-change: transform, background-position-x;
+
       }
 
 
@@ -1576,7 +1582,9 @@ const changePassFu = () => {
         }
 
         100% {
-          background-position-x: v-bind('translateXNumber');
+          // background-position-x: v-bind('translateXNumber');
+          background-position-x: calc(100% - 100px);
+
         }
       }
 
@@ -1631,7 +1639,9 @@ const changePassFu = () => {
           }
 
           100% {
-            background-position-x: v-bind('translateXNumberChange');
+            // background-position-x: v-bind('translateXNumberChange');
+            background-position-x: calc(100% - 200px);
+
           }
         }
       }

+ 21 - 19
zhengquan/vite.config.ts

@@ -1,11 +1,12 @@
-import { defineConfig } from "vite";
-import vue from "@vitejs/plugin-vue";
-import Components from "unplugin-vue-components/vite";
-import { VantResolver } from "unplugin-vue-components/resolvers";
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import Components from 'unplugin-vue-components/vite'
+import { VantResolver } from 'unplugin-vue-components/resolvers'
 // 自动按需导入
-import AutoImport from "unplugin-auto-import/vite";
+import AutoImport from 'unplugin-auto-import/vite'
+import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
 
-import { resolve } from "path";
+import { resolve } from 'path'
 
 // https://vitejs.dev/config/
 export default defineConfig({
@@ -13,30 +14,31 @@ export default defineConfig({
   plugins: [
     vue(),
     Components({
-      resolvers: [VantResolver()],
+      resolvers: [VantResolver(), ElementPlusResolver()]
     }),
     AutoImport({
       //安装两行后你会发现在组件中不用再导入ref,reactive等
-      imports: ["vue", "vue-router"],
+      imports: ['vue', 'vue-router'],
       //存放的位置
-      dts: "src/auto-import.d.ts",
-    }),
+      dts: 'src/auto-import.d.ts',
+      resolvers: [ElementPlusResolver()]
+    })
   ],
   resolve: {
     // ↓路径别名
     alias: {
-      "@": resolve(__dirname, "./src"),
-    },
+      '@': resolve(__dirname, './src')
+    }
   },
   build: {
-    outDir: "dist",
-    assetsDir: "assets",
+    outDir: 'dist',
+    assetsDir: 'assets',
     sourcemap: false,
     terserOptions: {
       compress: {
         drop_console: true,
-        drop_debugger: true,
-      },
-    },
-  },
-});
+        drop_debugger: true
+      }
+    }
+  }
+})

+ 201 - 44
zhengquan/yarn.lock

@@ -7,7 +7,7 @@
   "resolved" "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz"
   "version" "1.2.6"
 
-"@antfu/utils@^0.7.6":
+"@antfu/utils@^0.7.6", "@antfu/utils@^0.7.7":
   "integrity" "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg=="
   "resolved" "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz"
   "version" "0.7.7"
@@ -39,6 +39,16 @@
   "resolved" "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz"
   "version" "7.23.6"
 
+"@ctrl/tinycolor@^3.4.1":
+  "integrity" "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
+  "resolved" "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz"
+  "version" "3.6.1"
+
+"@element-plus/icons-vue@^2.3.1":
+  "integrity" "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg=="
+  "resolved" "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz"
+  "version" "2.3.1"
+
 "@esbuild/win32-x64@0.19.9":
   "integrity" "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ=="
   "resolved" "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz"
@@ -76,6 +86,26 @@
   "resolved" "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz"
   "version" "8.56.0"
 
+"@floating-ui/core@^1.6.0":
+  "integrity" "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g=="
+  "resolved" "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.0.tgz"
+  "version" "1.6.0"
+  dependencies:
+    "@floating-ui/utils" "^0.2.1"
+
+"@floating-ui/dom@^1.0.1":
+  "integrity" "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ=="
+  "resolved" "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.1.tgz"
+  "version" "1.6.1"
+  dependencies:
+    "@floating-ui/core" "^1.6.0"
+    "@floating-ui/utils" "^0.2.1"
+
+"@floating-ui/utils@^0.2.1":
+  "integrity" "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
+  "resolved" "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.1.tgz"
+  "version" "0.2.1"
+
 "@humanwhocodes/config-array@^0.11.13":
   "integrity" "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ=="
   "resolved" "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz"
@@ -133,6 +163,11 @@
     "picocolors" "^1.0.0"
     "tslib" "^2.6.0"
 
+"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
+  "integrity" "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+  "resolved" "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
+  "version" "2.11.7"
+
 "@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0":
   "integrity" "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g=="
   "resolved" "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz"
@@ -167,6 +202,18 @@
   "resolved" "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz"
   "version" "7.0.15"
 
+"@types/lodash-es@*", "@types/lodash-es@^4.17.6":
+  "integrity" "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="
+  "resolved" "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz"
+  "version" "4.17.12"
+  dependencies:
+    "@types/lodash" "*"
+
+"@types/lodash@*", "@types/lodash@^4.14.182":
+  "integrity" "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ=="
+  "resolved" "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz"
+  "version" "4.14.202"
+
 "@types/node@^18.0.0 || >=20.0.0", "@types/node@^18.19.3":
   "integrity" "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg=="
   "resolved" "https://registry.npmmirror.com/@types/node/-/node-18.19.3.tgz"
@@ -184,6 +231,11 @@
   "resolved" "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz"
   "version" "7.5.6"
 
+"@types/web-bluetooth@^0.0.16":
+  "integrity" "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+  "resolved" "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
+  "version" "0.0.16"
+
 "@typescript-eslint/eslint-plugin@^6.7.0":
   "integrity" "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw=="
   "resolved" "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz"
@@ -443,15 +495,37 @@
   "resolved" "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.5.0.tgz"
   "version" "0.5.0"
 
+"@vueuse/core@*", "@vueuse/core@^9.1.0":
+  "integrity" "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw=="
+  "resolved" "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz"
+  "version" "9.13.0"
+  dependencies:
+    "@types/web-bluetooth" "^0.0.16"
+    "@vueuse/metadata" "9.13.0"
+    "@vueuse/shared" "9.13.0"
+    "vue-demi" "*"
+
+"@vueuse/metadata@9.13.0":
+  "integrity" "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+  "resolved" "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz"
+  "version" "9.13.0"
+
+"@vueuse/shared@9.13.0":
+  "integrity" "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw=="
+  "resolved" "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz"
+  "version" "9.13.0"
+  dependencies:
+    "vue-demi" "*"
+
 "acorn-jsx@^5.3.2":
   "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
   "resolved" "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
   "version" "5.3.2"
 
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.10.0", "acorn@^8.11.2", "acorn@^8.9.0":
-  "integrity" "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w=="
-  "resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz"
-  "version" "8.11.2"
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.10.0", "acorn@^8.11.2", "acorn@^8.11.3", "acorn@^8.9.0":
+  "integrity" "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
+  "resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz"
+  "version" "8.11.3"
 
 "ajv@^6.12.4":
   "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
@@ -505,6 +579,11 @@
   "resolved" "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz"
   "version" "2.1.0"
 
+"async-validator@^4.2.5":
+  "integrity" "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+  "resolved" "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
+  "version" "4.2.5"
+
 "asynckit@^0.4.0":
   "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
   "resolved" "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
@@ -679,6 +758,11 @@
   "resolved" "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz"
   "version" "3.1.3"
 
+"dayjs@^1.11.3":
+  "integrity" "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+  "resolved" "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz"
+  "version" "1.11.10"
+
 "de-indent@^1.0.2":
   "integrity" "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
   "resolved" "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz"
@@ -743,6 +827,27 @@
   "resolved" "https://registry.npmmirror.com/easyscroller/-/easyscroller-1.0.1.tgz"
   "version" "1.0.1"
 
+"element-plus@^2.5.5":
+  "integrity" "sha512-yGU/MruLOWI0ImQPFCyFM4cXtHtILJNAi0hhLImcxjRukjgQLYNkvcvbwqNgBUt808KSeKF9MyxENFyBQLTg+Q=="
+  "resolved" "https://registry.npmmirror.com/element-plus/-/element-plus-2.5.5.tgz"
+  "version" "2.5.5"
+  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"
+
 "errno@^0.1.1":
   "integrity" "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A=="
   "resolved" "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz"
@@ -785,6 +890,11 @@
     "@esbuild/win32-ia32" "0.19.9"
     "@esbuild/win32-x64" "0.19.9"
 
+"escape-html@^1.0.3":
+  "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+  "resolved" "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
+  "version" "1.0.3"
+
 "escape-string-regexp@^1.0.5":
   "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
   "resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
@@ -916,6 +1026,13 @@
   "resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
   "version" "2.0.2"
 
+"estree-walker@^3.0.3":
+  "integrity" "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="
+  "resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz"
+  "version" "3.0.3"
+  dependencies:
+    "@types/estree" "^1.0.0"
+
 "esutils@^2.0.2":
   "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
   "resolved" "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz"
@@ -1321,9 +1438,9 @@
   "version" "1.0.1"
 
 "jsonc-parser@^3.2.0":
-  "integrity" "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
-  "resolved" "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz"
-  "version" "3.2.0"
+  "integrity" "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
+  "resolved" "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz"
+  "version" "3.2.1"
 
 "keyv@^4.5.3":
   "integrity" "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="
@@ -1382,12 +1499,22 @@
   dependencies:
     "p-locate" "^5.0.0"
 
+"lodash-es@*", "lodash-es@^4.17.21":
+  "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+  "resolved" "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
+  "version" "4.17.21"
+
+"lodash-unified@^1.0.2":
+  "integrity" "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ=="
+  "resolved" "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz"
+  "version" "1.0.3"
+
 "lodash.merge@^4.6.2":
   "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
   "resolved" "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz"
   "version" "4.6.2"
 
-"lodash@^4.17.21":
+"lodash@*", "lodash@^4.17.21":
   "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
   "resolved" "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
   "version" "4.17.21"
@@ -1419,6 +1546,11 @@
     "pify" "^4.0.1"
     "semver" "^5.6.0"
 
+"memoize-one@^6.0.0":
+  "integrity" "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+  "resolved" "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz"
+  "version" "6.0.0"
+
 "memorystream@^0.3.1":
   "integrity" "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="
   "resolved" "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz"
@@ -1491,14 +1623,14 @@
     "brace-expansion" "^2.0.1"
 
 "mlly@^1.2.0", "mlly@^1.4.2":
-  "integrity" "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg=="
-  "resolved" "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz"
-  "version" "1.4.2"
+  "integrity" "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ=="
+  "resolved" "https://registry.npmmirror.com/mlly/-/mlly-1.5.0.tgz"
+  "version" "1.5.0"
   dependencies:
-    "acorn" "^8.10.0"
-    "pathe" "^1.1.1"
+    "acorn" "^8.11.3"
+    "pathe" "^1.1.2"
     "pkg-types" "^1.0.3"
-    "ufo" "^1.3.0"
+    "ufo" "^1.3.2"
 
 "ms@2.1.2":
   "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
@@ -1543,6 +1675,11 @@
   "resolved" "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz"
   "version" "3.0.0"
 
+"normalize-wheel-es@^1.2.0":
+  "integrity" "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+  "resolved" "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz"
+  "version" "1.2.0"
+
 "npm-run-all2@^6.1.1":
   "integrity" "sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA=="
   "resolved" "https://registry.npmmirror.com/npm-run-all2/-/npm-run-all2-6.1.1.tgz"
@@ -1692,10 +1829,10 @@
   "resolved" "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz"
   "version" "4.0.0"
 
-"pathe@^1.1.0", "pathe@^1.1.1":
-  "integrity" "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
-  "resolved" "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz"
-  "version" "1.1.1"
+"pathe@^1.1.0", "pathe@^1.1.1", "pathe@^1.1.2":
+  "integrity" "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
+  "resolved" "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz"
+  "version" "1.1.2"
 
 "picocolors@^1.0.0":
   "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
@@ -1876,9 +2013,9 @@
   "version" "1.3.0"
 
 "scule@^1.1.1":
-  "integrity" "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ=="
-  "resolved" "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz"
-  "version" "1.1.1"
+  "integrity" "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw=="
+  "resolved" "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz"
+  "version" "1.2.0"
 
 "semver@^5.6.0":
   "integrity" "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
@@ -2070,7 +2207,7 @@
   "resolved" "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz"
   "version" "5.3.3"
 
-"ufo@^1.3.0":
+"ufo@^1.3.2":
   "integrity" "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA=="
   "resolved" "https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz"
   "version" "1.3.2"
@@ -2080,13 +2217,15 @@
   "resolved" "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz"
   "version" "5.26.5"
 
-"unimport@^3.6.0":
-  "integrity" "sha512-zKzbp8AQ+l8QK3XrONtUBdgBbMI8TkGh8hBYF77ZkVqMLLIAHwGSwJRFolPQMBx/5pezeRKvmu2gzlqnxRZeqQ=="
-  "resolved" "https://registry.npmmirror.com/unimport/-/unimport-3.6.1.tgz"
-  "version" "3.6.1"
+"unimport@^3.7.1":
+  "integrity" "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ=="
+  "resolved" "https://registry.npmmirror.com/unimport/-/unimport-3.7.1.tgz"
+  "version" "3.7.1"
   dependencies:
     "@rollup/pluginutils" "^5.1.0"
+    "acorn" "^8.11.2"
     "escape-string-regexp" "^5.0.0"
+    "estree-walker" "^3.0.3"
     "fast-glob" "^3.3.2"
     "local-pkg" "^0.5.0"
     "magic-string" "^0.30.5"
@@ -2097,19 +2236,19 @@
     "strip-literal" "^1.3.0"
     "unplugin" "^1.5.1"
 
-"unplugin-auto-import@^0.17.2":
-  "integrity" "sha512-Eu/xWI6SH4jTWXvzOfXQWAxRtiz/gMObm7wXtgMj7wBjHQKLgHTmHd4R4oha87KYGah1aKMqiqDeAxiPmfSoTg=="
-  "resolved" "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.2.tgz"
-  "version" "0.17.2"
+"unplugin-auto-import@^0.17.5":
+  "integrity" "sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w=="
+  "resolved" "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz"
+  "version" "0.17.5"
   dependencies:
-    "@antfu/utils" "^0.7.6"
+    "@antfu/utils" "^0.7.7"
     "@rollup/pluginutils" "^5.1.0"
     "fast-glob" "^3.3.2"
     "local-pkg" "^0.5.0"
     "magic-string" "^0.30.5"
     "minimatch" "^9.0.3"
-    "unimport" "^3.6.0"
-    "unplugin" "^1.5.1"
+    "unimport" "^3.7.1"
+    "unplugin" "^1.6.0"
 
 "unplugin-vue-components@^0.26.0":
   "integrity" "sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ=="
@@ -2127,15 +2266,15 @@
     "resolve" "^1.22.4"
     "unplugin" "^1.4.0"
 
-"unplugin@^1.4.0", "unplugin@^1.5.1":
-  "integrity" "sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew=="
-  "resolved" "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.1.tgz"
-  "version" "1.5.1"
+"unplugin@^1.4.0", "unplugin@^1.5.1", "unplugin@^1.6.0":
+  "integrity" "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ=="
+  "resolved" "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz"
+  "version" "1.6.0"
   dependencies:
     "acorn" "^8.11.2"
     "chokidar" "^3.5.3"
     "webpack-sources" "^3.2.3"
-    "webpack-virtual-modules" "^0.6.0"
+    "webpack-virtual-modules" "^0.6.1"
 
 "untildify@^4.0.0":
   "integrity" "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
@@ -2154,6 +2293,14 @@
   "resolved" "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz"
   "version" "1.0.2"
 
+"v-viewer@^3.0.11":
+  "integrity" "sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw=="
+  "resolved" "https://registry.npmmirror.com/v-viewer/-/v-viewer-3.0.11.tgz"
+  "version" "3.0.11"
+  dependencies:
+    "lodash" "^4.17.21"
+    "viewerjs" "^1.9.0"
+
 "validate-npm-package-license@^3.0.4":
   "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="
   "resolved" "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
@@ -2162,15 +2309,20 @@
     "spdx-correct" "^3.0.0"
     "spdx-expression-parse" "^3.0.0"
 
-"vant@^4.6.4":
-  "integrity" "sha512-SkFZM3Z3Bwi5do+iQNfRgDi7b+Ka29rUUNzck06W2KoFie3CLTqSifLa5TuZCEoXPSkqR+fRH/VE5G57mmL8sg=="
-  "resolved" "https://registry.npmmirror.com/vant/-/vant-4.8.1.tgz"
-  "version" "4.8.1"
+"vant@^4.8.4":
+  "integrity" "sha512-2ompmogS76pFWUDrQGYNXAENWxisJXqv0+eIqt7mGo1TJJXcUikQ5sfRjX8W3HTkTe1FxV7lzuI3QrW01i043g=="
+  "resolved" "https://registry.npmmirror.com/vant/-/vant-4.8.4.tgz"
+  "version" "4.8.4"
   dependencies:
     "@vant/popperjs" "^1.3.0"
     "@vant/use" "^1.6.0"
     "@vue/shared" "^3.0.0"
 
+"viewerjs@^1.9.0":
+  "integrity" "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw=="
+  "resolved" "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz"
+  "version" "1.11.6"
+
 "vite@^4.0.0 || ^5.0.0", "vite@^5.0.10":
   "integrity" "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw=="
   "resolved" "https://registry.npmmirror.com/vite/-/vite-5.0.10.tgz"
@@ -2182,6 +2334,11 @@
   optionalDependencies:
     "fsevents" "~2.3.3"
 
+"vue-demi@*":
+  "integrity" "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA=="
+  "resolved" "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz"
+  "version" "0.14.7"
+
 "vue-demi@>=0.14.5":
   "integrity" "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w=="
   "resolved" "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz"
@@ -2240,7 +2397,7 @@
   "resolved" "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz"
   "version" "3.2.3"
 
-"webpack-virtual-modules@^0.6.0":
+"webpack-virtual-modules@^0.6.1":
   "integrity" "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg=="
   "resolved" "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz"
   "version" "0.6.1"