diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.eslintrc.cjs" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.eslintrc.cjs" new file mode 100644 index 0000000000000000000000000000000000000000..b64731a0fe8c67d765f3a3cce1e401fe57d9d2a0 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.eslintrc.cjs" @@ -0,0 +1,14 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + 'extends': [ + 'plugin:vue/vue3-essential', + 'eslint:recommended', + '@vue/eslint-config-prettier/skip-formatting' + ], + parserOptions: { + ecmaVersion: 'latest' + } +} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.gitignore" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..8ee54e8d343e466a213c8c30aa04be77126b170d --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.gitignore" @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.prettierrc.json" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.prettierrc.json" new file mode 100644 index 0000000000000000000000000000000000000000..66e23359c3dabfe3929b4e2fa049c41037afb15f --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.prettierrc.json" @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "tabWidth": 2, + "singleQuote": true, + "printWidth": 100, + "trailingComma": "none" +} \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.vscode/extensions.json" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.vscode/extensions.json" new file mode 100644 index 0000000000000000000000000000000000000000..93ea3e7838b1b661bb7052023576ffa6deb2e7a1 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/.vscode/extensions.json" @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "Vue.volar", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode" + ] +} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/README.md" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..701db54c1db1caf647a180a37057b909d0f58476 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/README.md" @@ -0,0 +1,6 @@ +# JDDJ + +京东到家项目 + +1、utils/cart.js bug修复 添加新数据时,会添加两条数据,导致数据不准确。 +修复状态 : false ==> true \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/index.html" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..99f583aa2b835f6885f2c233a0e1f6d395fa42af --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/index.html" @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/jsconfig.json" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/jsconfig.json" new file mode 100644 index 0000000000000000000000000000000000000000..5a1f2d222a302a174e710614c6d76531b7bda926 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/jsconfig.json" @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/package.json" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..4de6a238d217655b3d5319c43f40b46553bf1332 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/package.json" @@ -0,0 +1,30 @@ +{ + "name": "jddj", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.1", + "scss": "^0.2.4", + "vue": "^3.4.21", + "vue-router": "^4.3.0" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.8.0", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/eslint-config-prettier": "^9.0.0", + "eslint": "^8.57.0", + "eslint-plugin-vue": "^9.23.0", + "prettier": "^3.2.5", + "sass": "^1.77.1", + "vite": "^5.2.8" + } +} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/pnpm-lock.yaml" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/pnpm-lock.yaml" new file mode 100644 index 0000000000000000000000000000000000000000..6648125dbda2532c14be048652bce3e2c9a37001 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/pnpm-lock.yaml" @@ -0,0 +1,1823 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + pinia: + specifier: ^2.1.7 + version: 2.1.7(vue@3.4.27) + pinia-plugin-persistedstate: + specifier: ^3.2.1 + version: 3.2.1(pinia@2.1.7(vue@3.4.27)) + scss: + specifier: ^0.2.4 + version: 0.2.4 + vue: + specifier: ^3.4.21 + version: 3.4.27 + vue-router: + specifier: ^4.3.0 + version: 4.3.2(vue@3.4.27) + devDependencies: + '@rushstack/eslint-patch': + specifier: ^1.8.0 + version: 1.10.2 + '@vitejs/plugin-vue': + specifier: ^5.0.4 + version: 5.0.4(vite@5.2.11(sass@1.77.1))(vue@3.4.27) + '@vue/eslint-config-prettier': + specifier: ^9.0.0 + version: 9.0.0(eslint@8.57.0)(prettier@3.2.5) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + eslint-plugin-vue: + specifier: ^9.23.0 + version: 9.26.0(eslint@8.57.0) + prettier: + specifier: ^3.2.5 + version: 3.2.5 + sass: + specifier: ^1.77.1 + version: 1.77.1 + vite: + specifier: ^5.2.8 + version: 5.2.11(sass@1.77.1) + +packages: + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.24.5': + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + engines: {node: '>=6.9.0'} + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@rollup/rollup-android-arm-eabi@4.17.2': + resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.17.2': + resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.17.2': + resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.17.2': + resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': + resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.17.2': + resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.17.2': + resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.17.2': + resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': + resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.17.2': + resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-s390x-gnu@4.17.2': + resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.17.2': + resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.17.2': + resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.17.2': + resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.17.2': + resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.17.2': + resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} + cpu: [x64] + os: [win32] + + '@rushstack/eslint-patch@1.10.2': + resolution: {integrity: sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vitejs/plugin-vue@5.0.4': + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + + '@vue/devtools-api@6.6.1': + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} + + '@vue/eslint-config-prettier@9.0.0': + resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==} + peerDependencies: + eslint: '>= 8.0.0' + prettier: '>= 3.0.0' + + '@vue/reactivity@3.4.27': + resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} + + '@vue/runtime-core@3.4.27': + resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} + + '@vue/runtime-dom@3.4.27': + resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} + + '@vue/server-renderer@3.4.27': + resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} + peerDependencies: + vue: 3.4.27 + + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.1.3: + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-vue@9.26.0: + resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + ometa@0.2.2: + resolution: {integrity: sha512-LZuoK/yjU3FvrxPjUXUlZ1bavCfBPqauA7fsNdwi+AVhRdyk2IzgP3JRnevvjzQ6fKHdUw8YISshf53FmpHrng==} + engines: {node: '>= 0.2.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pinia-plugin-persistedstate@3.2.1: + resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==} + peerDependencies: + pinia: ^2.0.0 + + pinia@2.1.7: + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup@4.17.2: + resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sass@1.77.1: + resolution: {integrity: sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==} + engines: {node: '>=14.0.0'} + hasBin: true + + scss@0.2.4: + resolution: {integrity: sha512-4u8V87F+Q/upVhUmhPnB4C1R11xojkRkWjExL2v0CX2EXTg18VrKd+9JWoeyCp2VEMdSpJsyAvVU+rVjogh51A==} + engines: {node: '>= 0.2.0'} + + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-demi@0.14.7: + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-eslint-parser@9.4.2: + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-router@4.3.2: + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} + peerDependencies: + vue: ^3.2.0 + + vue@3.4.27: + resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.24.5': {} + + '@babel/parser@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/types@7.24.5': + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgr/core@0.1.1': {} + + '@rollup/rollup-android-arm-eabi@4.17.2': + optional: true + + '@rollup/rollup-android-arm64@4.17.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.17.2': + optional: true + + '@rollup/rollup-darwin-x64@4.17.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.17.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.17.2': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.17.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.17.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.17.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.17.2': + optional: true + + '@rushstack/eslint-patch@1.10.2': {} + + '@types/estree@1.0.5': {} + + '@ungap/structured-clone@1.2.0': {} + + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(sass@1.77.1))(vue@3.4.27)': + dependencies: + vite: 5.2.11(sass@1.77.1) + vue: 3.4.27 + + '@vue/compiler-core@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/shared': 3.4.27 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.27': + dependencies: + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/compiler-sfc@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.27': + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/devtools-api@6.6.1': {} + + '@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.2.5)': + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) + prettier: 3.2.5 + transitivePeerDependencies: + - '@types/eslint' + + '@vue/reactivity@3.4.27': + dependencies: + '@vue/shared': 3.4.27 + + '@vue/runtime-core@3.4.27': + dependencies: + '@vue/reactivity': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/runtime-dom@3.4.27': + dependencies: + '@vue/runtime-core': 3.4.27 + '@vue/shared': 3.4.27 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.27(vue@3.4.27)': + dependencies: + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + vue: 3.4.27 + + '@vue/shared@3.4.27': {} + + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn@8.11.3: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + callsites@3.1.0: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + deep-is@0.1.4: {} + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + entities@4.5.0: {} + + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@9.1.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): + dependencies: + eslint: 8.57.0 + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@8.57.0) + + eslint-plugin-vue@9.26.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.16 + semver: 7.6.2 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + + esquery@1.5.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + ignore@5.3.1: {} + + immutable@4.3.5: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + isexe@2.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + ms@2.1.2: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + ometa@0.2.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + picocolors@1.0.0: {} + + picomatch@2.3.1: {} + + pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(vue@3.4.27)): + dependencies: + pinia: 2.1.7(vue@3.4.27) + + pinia@2.1.7(vue@3.4.27): + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.27 + vue-demi: 0.14.7(vue@3.4.27) + + postcss-selector-parser@6.0.16: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.2.5: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve-from@4.0.0: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.17.2: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.17.2 + '@rollup/rollup-android-arm64': 4.17.2 + '@rollup/rollup-darwin-arm64': 4.17.2 + '@rollup/rollup-darwin-x64': 4.17.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 + '@rollup/rollup-linux-arm-musleabihf': 4.17.2 + '@rollup/rollup-linux-arm64-gnu': 4.17.2 + '@rollup/rollup-linux-arm64-musl': 4.17.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 + '@rollup/rollup-linux-riscv64-gnu': 4.17.2 + '@rollup/rollup-linux-s390x-gnu': 4.17.2 + '@rollup/rollup-linux-x64-gnu': 4.17.2 + '@rollup/rollup-linux-x64-musl': 4.17.2 + '@rollup/rollup-win32-arm64-msvc': 4.17.2 + '@rollup/rollup-win32-ia32-msvc': 4.17.2 + '@rollup/rollup-win32-x64-msvc': 4.17.2 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sass@1.77.1: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.2.0 + + scss@0.2.4: + dependencies: + ometa: 0.2.2 + + semver@7.6.2: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + source-map-js@1.2.0: {} + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + synckit@0.8.8: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + + text-table@0.2.0: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tslib@2.6.2: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite@5.2.11(sass@1.77.1): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.17.2 + optionalDependencies: + fsevents: 2.3.3 + sass: 1.77.1 + + vue-demi@0.14.7(vue@3.4.27): + dependencies: + vue: 3.4.27 + + vue-eslint-parser@9.4.2(eslint@8.57.0): + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + + vue-router@4.3.2(vue@3.4.27): + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.27 + + vue@3.4.27: + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-sfc': 3.4.27 + '@vue/runtime-dom': 3.4.27 + '@vue/server-renderer': 3.4.27(vue@3.4.27) + '@vue/shared': 3.4.27 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrappy@1.0.2: {} + + xml-name-validator@4.0.0: {} + + yocto-queue@0.1.0: {} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/public/favicon.ico" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/public/favicon.ico" new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 Binary files /dev/null and "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/public/favicon.ico" differ diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/App.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/App.vue" new file mode 100644 index 0000000000000000000000000000000000000000..1ceb4b8ac00251138319b67d5d2cbf0d5918bea4 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/App.vue" @@ -0,0 +1,9 @@ + + + + + diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/AddressCard.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/AddressCard.vue" new file mode 100644 index 0000000000000000000000000000000000000000..613a5143a3b0dfeaa9cdffb9c411cf91eedb4aa6 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/AddressCard.vue" @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/CartCard.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/CartCard.vue" new file mode 100644 index 0000000000000000000000000000000000000000..c61ee8affbd0ddf2d08cfc70cfc33e5639165f83 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/CartCard.vue" @@ -0,0 +1,68 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/OrderCard.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/OrderCard.vue" new file mode 100644 index 0000000000000000000000000000000000000000..a4dd034d04e82661dd6b94d1aef342eeb4c0a1cb --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/OrderCard.vue" @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Product.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Product.vue" new file mode 100644 index 0000000000000000000000000000000000000000..7e19a8b10c38cdad7db124ff2d1f26b690593249 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Product.vue" @@ -0,0 +1,170 @@ + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/ShopInfo.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/ShopInfo.vue" new file mode 100644 index 0000000000000000000000000000000000000000..d58a14b199056c352fc963b9a272b344c5168baf --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/ShopInfo.vue" @@ -0,0 +1,68 @@ + + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Tabbar.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Tabbar.vue" new file mode 100644 index 0000000000000000000000000000000000000000..b0ad0101500950c1e4d2173f45ee722212f32129 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/components/Tabbar.vue" @@ -0,0 +1,100 @@ + + + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/main.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/main.js" new file mode 100644 index 0000000000000000000000000000000000000000..559f201a08c0eeffc84a6c7d0019f9da06ecc690 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/main.js" @@ -0,0 +1,18 @@ +// import './assets/main.css' +import './style/base.scss' +import './style/iconfont.css' + + +import { createApp } from 'vue' +import pinia from "@/stores"; + + +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(pinia) +app.use(router) + +app.mount('#app') diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/router/index.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/router/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..0eb0fa3c483e79e616ef6ee48b4fe175b261645b --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/router/index.js" @@ -0,0 +1,56 @@ +import { createRouter, createWebHistory } from 'vue-router' + +const routes = [ + { + path: '/', + name: 'LayoutView', + redirect: '/home', // 默认跳转到首页 + component: () => import('@/views/Layout/LayoutView.vue'), + children: [ + { + path: '/my', + name: 'MyView', + component: () => import('@/views/my/MyView.vue') + }, + { + path: '/home', + name: 'HomeView', + component: () => import('@/views/home/HomeView.vue') + }, { + path: '/cart', + name: 'CartView', + component: () => import('@/views/cart/CartView.vue') + }, { + path: "/order", + name: "OrderView", + component: () => import('@/views/order/OrderView.vue') + } + ] + }, + { + path: '/shop/:id', + name: 'ShopDetail', + component: () => import('@/views/shop/ShopView.vue') + }, + { + path: '/orderConfirmation', + name: 'OrderConfirmation', + component: () => import('@/views/orderConfirmation/OrderConfirmationView.vue') + }, + { + path: '/createAddress', + name: 'CreateAddress', + component: () => import('@/views/my/CreateAddressView.vue') + }, + { + path: "/address", + name: "AddressView", + component: () => import('@/views/my/AddressView.vue') + }, +] +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}) + +export default router diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/index.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b0d5abb7a6cc001b719462c1e9b99b9d6320204c --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/index.js" @@ -0,0 +1,12 @@ +import { createPinia } from 'pinia' +import ppps from 'pinia-plugin-persistedstate' + +const pinia = createPinia() +pinia.use(ppps)// 注册插件 + +export default pinia +export * from './modules/user' +export * from './modules/cart' +export * from './modules/order' +export * from './modules/counter' +export * from './modules/shop' \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/cart.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/cart.js" new file mode 100644 index 0000000000000000000000000000000000000000..d8195eb04d8d587d17bdd5a10056f0c31bf0bfd5 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/cart.js" @@ -0,0 +1,89 @@ +import { reactive, watch } from 'vue' +import { defineStore } from 'pinia' +import MapJSON from "@/utils/MapToJSON.js"; +// import { parse, stringify } from 'zipson' + + +export const useCartStore = defineStore('cart', () => { + + const cartListName = 'cartList' + //第一层是店铺id,第二层是商品id,第三层是商品信息 + const initValue = localStorage.getItem(cartListName) + // console.log(initValue); + const cartList = reactive((initValue && MapJSON.JSONToMap(initValue)) || new Map([[0, new Map([[0, { name: '商品1', price: 100, number: 1 }]])]])) + console.log(cartList); + //持久化 cartList + watch(() => cartList, (newVal) => { + console.log("==========watch=========="); + console.log(cartList); + localStorage.setItem(cartListName, MapJSON.MapToJSON(newVal)) + }, { + immediate: true, + deep: true + }) + + //获取指定商品id的购物车信息 + const getCartList = (shopId, goodsId) => cartList.get(shopId)?.get(goodsId) || null + + //获取指定店铺的购物车信息 + const getShopCartList = (shopId) => { + const cartValue = cartList.get(shopId) + return cartValue ? Array.from(cartValue.values()) : [] + } + //清空指定id店铺的购物车信息 + //将指定id店铺的购物车里的所有商品的number置为0 + const clearCart = (shopId) => { + // cartList.set(shopId,cartList.get(shopId)) + cartList.get(shopId).forEach((value) => { + value.number = 0 + }) + } + + //修改添加商品、商品数量 + const updateCartList = (shopId, goodsId, num) => { + // // 获取指定商品的引用 + console.log("==========updateCartList============"); + console.log(num); + const cart = cartList.get(shopId)?.get(goodsId) + if (!cart) { + return false + } + cartList.get(shopId).get(goodsId).number += num + return true + + } + //创建购物车 + const setCartList = (shopId, goodsId, product) => { + console.log("==========setCartList=========="); + console.log("创建购物车" + shopId + ":" + goodsId); + console.log(product); + // cartList.set(shopId, new Map([[goodsId, product]])) + const shopInfo = cartList.get(shopId) + console.log(shopInfo); + if (!shopInfo) { + cartList.set(shopId, new Map([[goodsId, product]])) + } else { + shopInfo.set(goodsId, { ...product }) + } + console.log(cartList.get(shopId).get(goodsId)); + console.log(cartList); + } + + return { cartList, clearCart, getCartList, getShopCartList, updateCartList, setCartList } + +}, + { + persist: { + enabled: false, + } + } + // { + // persist: { + // enabled: true, + // serialize: { + // deserialize: (value) => MapJSON.JSONToMap(value), // 反序列化成Map类型 + // serialize: (value) => MapJSON.MapToJSON(value), // 序列化成JSON字符串 + // } + // }, + // } +) diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/counter.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/counter.js" new file mode 100644 index 0000000000000000000000000000000000000000..b6757ba5723c5b89b35d011b9558d025bbcde402 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/counter.js" @@ -0,0 +1,12 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/order.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/order.js" new file mode 100644 index 0000000000000000000000000000000000000000..4a632fa46ffbc82157aa1e7eff621f15856b1038 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/order.js" @@ -0,0 +1,10 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useOrderStore = defineStore('order', () => { + const orderList = ref([]) + + return { orderList } +}, { + persist: true, +}) diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/shop.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/shop.js" new file mode 100644 index 0000000000000000000000000000000000000000..72695cb8d7fcf7b39175defb3d38a4295a0a521f --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/shop.js" @@ -0,0 +1,183 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export const useShopInfoStore = defineStore('shopinfo', () => { + const nearbyList = ref([ + { + id: 1, + name: "沃尔码", + imgUrl: "http://www.dell-lee.com/imgs/vue3/near.png", + sales: 10000, + expressLimit: 0, + expressPrice: 5, + slogan: "VIP尊享满89元减4元运费券", + category: [ + { + id: 11, + name: "新鲜水果", + list: [ + { + id: 111, + title: "番茄 250g / 份", + imgName: "tomato", + checked: true, + sales: 10, + number: 0, + price: 3.6, + oldPrice: 5.6 + }, + { + id: 112, + title: "车厘子 500g / 份", + imgName: "cherry", + checked: true, + sales: 10, + number: 0, + price: 33.9, + oldPrice: 39.9 + }, + { + id: 113, + title: "橙子 500g / 份", + imgName: "orange", + checked: true, + sales: 110, + number: 0, + price: 12.9, + oldPrice: 22.9 + } + ] + }, + { + id: 12, + name: "海鲜水产", + list: [ + { + id: 121, + title: "帝王蟹 250g / 份", + imgName: "crab", + checked: true, + sales: 10, + number: 0, + price: 99.9, + oldPrice: 199.9 + } + ] + } + ], + cartList: [] + }, + { + id: 2, + name: "山姆会员商店", + imgUrl: "http://www.dell-lee.com/imgs/vue3/near.png", + sales: 2000, + expressLimit: 0, + expressPrice: 5, + slogan: "联合利华洗护满10减5", + category: [ + { + id: 21, + name: "新鲜水果", + list: [ + { + id: 211, + title: "番茄 250g / 份", + imgName: "tomato", + checked: true, + sales: 10, + number: 0, + price: 3.6, + oldPrice: 5.6 + }, + { + id: 212, + title: "桃子 500g / 份", + imgName: "tomato", + checked: true, + sales: 10, + number: 0, + price: 33.9, + oldPrice: 39.9 + }, + { + id: 213, + title: "橙子 500g / 份", + imgName: "orange", + checked: true, + sales: 110, + number: 0, + price: 12.9, + oldPrice: 22.9 + } + ] + }, + { + id: 22, + name: "海鲜水产", + list: [ + { + id: 221, + title: "帝王蟹 250g / 份", + imgName: "crab", + checked: true, + sales: 9, + number: 0, + price: 99.9, + oldPrice: 199.9 + }, + { + id: 222, + title: "虾 250g / 份", + imgName: "tomato", + checked: true, + sales: 19, + number: 0, + price: 39.9, + oldPrice: 59.9 + } + ] + }, + { + id: 23, + name: "零食小吃", + list: [ + { + id: 231, + title: "薯片 250g / 份", + imgName: "tomato", + checked: true, + sales: 20, + number: 0, + price: 9.9, + oldPrice: 19.9 + }, + { + id: 232, + title: "饼干 250g / 份", + imgName: "tomato", + checked: true, + sales: 10, + number: 0, + price: 3.9, + oldPrice: 5.9 + } + ] + } + ], + cartList: [] + } + ]) + + //axios.get() + + const findById = (id) => { + // console.log(id) + id = parseInt(id) + return nearbyList.value.find(item => item.id === id) || null + } + + return { nearbyList, findById } +}, { + persist: true, +}) \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/user.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/user.js" new file mode 100644 index 0000000000000000000000000000000000000000..1953e50324b86e896ad0e97cf6b33f4299d5f7f1 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/stores/modules/user.js" @@ -0,0 +1,57 @@ +import { ref, } from 'vue' +import { defineStore } from 'pinia' + +export const useUserStore = defineStore('user', () => { + // const list = reactive({ + // l: [] + // }) + // 用户列表 + const userList = ref([ + { + name: 'zhangsan', + password: '123', + id: '000001', + imgUrl: 'http://www.dell-lee.com/imgs/vue3/orange.png', + list: [ + { title: '红包', content: 218 }, + { title: '优惠劵', content: '12张' }, + { title: '红豆', content: 88 }, + { title: '白条', content: 1000 } + ], + addressList: [ + { + name: '小慕', + phone: 18611111111, + address_text: '北京 海淀区西三环北路2号院北京理工大学国防科技园2号楼10号' + }, + { + name: '小可', + phone: 18622222222, + address_text: '北京 朝阳区北京工业大学3号楼303' + } + ], + currentAddress: null + }, + { + name: 'admin', + password: '123', + id: '000002', + imgUrl: 'http://www.dell-lee.com/imgs/vue3/orange.png', + list: [ + { title: '红包', content: 22 }, + { title: '优惠劵', content: '7张' }, + { title: '红豆', content: 120 }, + { title: '白条', content: 2000 } + ], + addressList: [], + currrentAddress: null + } + ]) + + //当前登录用户 + const currentUserInfo = userList.value[0] + + return { userList, currentUserInfo } +}, { + // persist: true, +}) diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.css" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.css" new file mode 100644 index 0000000000000000000000000000000000000000..a93cbac809d1fbf545a62aa912d6ca94db738692 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.css" @@ -0,0 +1,17 @@ +html { + font-size: 100px; +} + +body { + font-size: .12rem; + margin: 0; + padding: 0; + background-color: #eee; +} + +a { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-user-select: none; + -moz-user-focus: none; + -moz-user-select: none; +} diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.scss" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.scss" new file mode 100644 index 0000000000000000000000000000000000000000..2f14c58aa6387b5537c14347db6a04f9f4fe8576 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/base.scss" @@ -0,0 +1,18 @@ +html { + font-size: 100px; +} + +body { + font-size: .12rem; + margin: 0; + padding: 0; + background-color: #eee; +} + +a { + //去掉a标签点击背景颜色 + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-user-select: none; + -moz-user-focus: none; + -moz-user-select: none; +} \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/iconfont.css" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/iconfont.css" new file mode 100644 index 0000000000000000000000000000000000000000..4fa1b8f9486c2ef1d9569d61d9ebcd31c6a3d2c5 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/iconfont.css" @@ -0,0 +1,43 @@ +/* CDN 服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */ +@font-face { + font-family: 'iconfont'; /* Project id 3759887 */ + src: url('//at.alicdn.com/t/c/font_3759887_yn0hf157sy.woff2?t=1669254870518') format('woff2'), + url('//at.alicdn.com/t/c/font_3759887_yn0hf157sy.woff?t=1669254870518') format('woff'), + url('//at.alicdn.com/t/c/font_3759887_yn0hf157sy.ttf?t=1669254870518') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-position:before { + content: "\e619"; +} + +.icon-bell:before { + content: "\e7e5"; +} + +.icon-wodedingdan:before { + content: "\e655"; +} + +.icon-dingdan:before { + content: "\e645"; +} + +.icon-home:before { + content: "\e651"; +} + +.icon-gouwuche:before { + content: "\e690"; +} + +.icon-wode:before { + content: "\e60b"; +} \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/mixins.scss" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/mixins.scss" new file mode 100644 index 0000000000000000000000000000000000000000..714dab7edd07d8f484c7a72b3a54ea64a4894e95 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/mixins.scss" @@ -0,0 +1,12 @@ +@mixin ellipse { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +@mixin scrollStyle() { + overflow-y: scroll; + &::-webkit-scrollbar { + width: 0px; + height: 0px; + } + } \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/viriables.scss" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/viriables.scss" new file mode 100644 index 0000000000000000000000000000000000000000..92b796945b3eb7fe6c4e9ed8042c71e430dfa471 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/style/viriables.scss" @@ -0,0 +1,12 @@ +$content-fontcolor: #333; +$medium-fontColor: #666; +$light-fontColor: #999; +$content-notice-fontcolor: #777; +$content-bgColor: #F1F1F1; +$search-bgColor: #F5F5F5; +$search-fontColor: #B7B7B7; +$hightlight-fontColor: #E93B3B; +$btn-bgColor: #0091FF; +$bgColor: #FFF; +$dark-fontColor: #000; +$dark-bgColor: #F8F8F8; \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/utils/MapToJSON.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/utils/MapToJSON.js" new file mode 100644 index 0000000000000000000000000000000000000000..bdc3f631a70808c61ea81707d30975a2740fcd2f --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/utils/MapToJSON.js" @@ -0,0 +1,38 @@ +//用于将多层Map结构数据转换成JSON字符串、以及解析JSON字符串为Map结构数据。 + +function MapToJSON(map) { + // console.log(map); + let obj = {}; + for (let [key, value] of map) { + if (value instanceof Map) { + obj[key] = MapToJSON(value); + } else { + obj[key] = value; + } + } + return JSON.stringify(obj); +} + +function JSONToMap(json) { + let obj = JSON.parse(json); + // console.log(obj); + + function parseValue(value) { + if (typeof value === 'string' && value.startsWith('{') && value.endsWith('}')) { + return JSONToMap(value); // 递归调用JSONToMap处理嵌套对象 + } else { + return value; + } + } + + let map = new Map(); + for (let key in obj) { + if (obj[key] instanceof Object) { + map.set(key, obj[key]); + } else { + map.set(key, parseValue(obj[key])); + } + } + return map; +} +export default { JSONToMap, MapToJSON } \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/Layout/LayoutView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/Layout/LayoutView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..cb66a704e93ada2d5d4f8898cd7b069c2e261947 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/Layout/LayoutView.vue" @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/LayoutView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/LayoutView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..257cc732d0931acfd82260f0c51df7384a6209aa --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/LayoutView.vue" @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/cart/CartView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/cart/CartView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..a1e936c6e2c1b11241a48cbb0b46f5b69082112e --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/cart/CartView.vue" @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/HomeView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/HomeView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..684c7a7c605b4429146a62ef1f1a99147010196d --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/HomeView.vue" @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/NearByView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/NearByView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..f6a9815a2dafa7674bf3c5737f9afaf6bcfea330 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/NearByView.vue" @@ -0,0 +1,44 @@ + + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/StaticPartView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/StaticPartView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..bd95f851d19734df9e10587af9f95366e1f917bb --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/home/StaticPartView.vue" @@ -0,0 +1,127 @@ + + + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/AddressView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/AddressView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..48cbcf2bf3ea360a89fb1867e2f61894dc0705f3 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/AddressView.vue" @@ -0,0 +1,85 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/CreateAddressView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/CreateAddressView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..be5bca43b6e1f645d68f17acd9c5e67aadc2bea6 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/CreateAddressView.vue" @@ -0,0 +1,131 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/MyView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/MyView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..f84adb90834ec3748f8d2ac76e499440b8ca0293 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/my/MyView.vue" @@ -0,0 +1,190 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/CreateAddressView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/CreateAddressView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..22175c2ffd96268c9a935e31f5e08b7bceadeaf6 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/CreateAddressView.vue" @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/OrderView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/OrderView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..40cfdf825423c465badcad0b0e85658321abd36f --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/order/OrderView.vue" @@ -0,0 +1,123 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/orderConfirmation/OrderConfirmationView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/orderConfirmation/OrderConfirmationView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..54dacfd4a6aceb3eb9bb0429dfd8daef00430254 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/orderConfirmation/OrderConfirmationView.vue" @@ -0,0 +1,286 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/CartView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/CartView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..e7a45f5ba65e3222f55851c6347614c84869967e --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/CartView.vue" @@ -0,0 +1,241 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/ShopView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/ShopView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..7d2796b0d9536714bc17bd505a0d276b9413d3c2 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/shop/ShopView.vue" @@ -0,0 +1,120 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/startView.vue" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/startView.vue" new file mode 100644 index 0000000000000000000000000000000000000000..257cc732d0931acfd82260f0c51df7384a6209aa --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/src/views/startView.vue" @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git "a/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/vite.config.js" "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/vite.config.js" new file mode 100644 index 0000000000000000000000000000000000000000..5c45e1d9b4e65e3a35bb0435436935a3090b5591 --- /dev/null +++ "b/\351\202\261\344\275\220\350\205\276/\344\272\254\344\270\234\345\210\260\345\256\266/vite.config.js" @@ -0,0 +1,16 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +})