wyling007 3 年之前
父節點
當前提交
c908d5016a

+ 1 - 1
.gitignore

@@ -1,3 +1,3 @@
 node_modules
 dist
-package-lock.json
+package-lock

+ 13 - 0
.prettierrc.js

@@ -0,0 +1,13 @@
+module.exports = {
+	semi: true, // 使用分号, 默认true
+	singleQuote: true, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)
+	bracketSpacing: true, // 对象中的空格 默认true
+	tabWidth: 2, // tab缩进大小,默认为2
+	useTabs: true, // 使用tab缩进,默认false
+	arrowParens: 'always', // 箭头函数参数括号 默认avoid 可选 avoid(能省略括号的时候就省略 例如x => x )| always (总是有括号)
+	jsxBracketSameLine: false, // JSX标签闭合位置 默认false
+	TrailingCooma: 'all', // 行尾逗号,默认none,可选 none|es5|all
+	printWidth: 600, //一行最大长度
+	bracketSameLine: true, //将多行 HTML(HTML、JSX、Vue、Angular)元素的>放在同一行
+	vueIndentScriptAndStyle: true, //是否缩进Vue 文件中的代码<script>和<style>标签。
+};

+ 12 - 16
README.md

@@ -1,27 +1,23 @@
-# Vue 3 + Typescript + Vite
+# 语言 HTML5+CSS3+TypeScript
 
-This template should help get you started developing with Vue 3 and Typescript in Vite.
+# 框架 VUE3
 
-## Recommended IDE Setup
+# 构建工具 vite
 
-[VSCode](https://code.visualstudio.com/) + [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur). Make sure to enable `vetur.experimental.templateInterpolationService` in settings!
+# UI 库 vant
 
-### If Using `<script setup>`
+# css 解释器 SCSS
 
-[`<script setup>`](https://github.com/vuejs/rfcs/pull/227) is a feature that is currently in RFC stage. To get proper IDE support for the syntax, use [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) instead of Vetur (and disable Vetur).
+# 移动端调试器 vconsole
 
-## Type Support For `.vue` Imports in TS
+# http 请求库 axios
 
-Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can use the following:
+# 路由管理 vue-router
 
-### If Using Volar
+# 状态管理 vuex
 
-Run `Volar: Switch TS Plugin on/off` from VSCode command palette.
+    ## 持久化管理工具 vuex-persistedstate
 
-### If Using Vetur
+# 时间日期工具库 dayjs
 
-1. Install and add `@vuedx/typescript-plugin-vue` to the [plugins section](https://www.typescriptlang.org/tsconfig#plugins) in `tsconfig.json`
-2. Delete `src/shims-vue.d.ts` as it is no longer needed to provide module info to Typescript
-3. Open `src/main.ts` in VSCode
-4. Open the VSCode command palette
-5. Search and run "Select TypeScript version" -> "Use workspace version"
+# 音频播放器 howler

+ 1608 - 1608
package-lock.json

@@ -1,1610 +1,1610 @@
 {
-  "name": "vue3-ts",
-  "version": "0.0.0",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@babel/helper-validator-identifier": {
-      "version": "7.14.9",
-      "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz?cache=0&sync_timestamp=1627804430461&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.9.tgz",
-      "integrity": "sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg="
-    },
-    "@babel/parser": {
-      "version": "7.15.0",
-      "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.0.tgz",
-      "integrity": "sha1-ttbikFjKNpEnsO7KKhxLV5Txtrk="
-    },
-    "@babel/types": {
-      "version": "7.15.0",
-      "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.0.tgz?cache=0&sync_timestamp=1628111608723&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.0.tgz",
-      "integrity": "sha1-Ya8R8ihsTpxpyo3rX0N1pzxy3L0=",
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.14.9",
-        "to-fast-properties": "^2.0.0"
-      }
-    },
-    "@emmetio/abbreviation": {
-      "version": "2.2.2",
-      "resolved": "https://registry.nlark.com/@emmetio/abbreviation/download/@emmetio/abbreviation-2.2.2.tgz",
-      "integrity": "sha1-dGdi/Z56jC6mBPWAxi48/iUOaYk=",
-      "dev": true,
-      "requires": {
-        "@emmetio/scanner": "^1.0.0"
-      }
-    },
-    "@emmetio/css-abbreviation": {
-      "version": "2.1.4",
-      "resolved": "https://registry.nlark.com/@emmetio/css-abbreviation/download/@emmetio/css-abbreviation-2.1.4.tgz",
-      "integrity": "sha1-kDYuihEizjt29sMVeQfTAYL1P1Q=",
-      "dev": true,
-      "requires": {
-        "@emmetio/scanner": "^1.0.0"
-      }
-    },
-    "@emmetio/scanner": {
-      "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/@emmetio/scanner/download/@emmetio/scanner-1.0.0.tgz",
-      "integrity": "sha1-Blsq9iM/50dNRII+PeuJckr0K18=",
-      "dev": true
-    },
-    "@fortawesome/fontawesome-common-types": {
-      "version": "0.2.36",
-      "resolved": "https://registry.nlark.com/@fortawesome/fontawesome-common-types/download/@fortawesome/fontawesome-common-types-0.2.36.tgz",
-      "integrity": "sha1-tE5S2ztrIFI+DFfvjELTFVMsuQM="
-    },
-    "@fortawesome/free-solid-svg-icons": {
-      "version": "5.15.4",
-      "resolved": "https://registry.nlark.com/@fortawesome/free-solid-svg-icons/download/@fortawesome/free-solid-svg-icons-5.15.4.tgz",
-      "integrity": "sha1-Kmjz/D3doS5SZFZUFCueTo+7bMU=",
-      "requires": {
-        "@fortawesome/fontawesome-common-types": "^0.2.36"
-      }
-    },
-    "@popperjs/core": {
-      "version": "2.9.3",
-      "resolved": "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.9.3.tgz?cache=0&sync_timestamp=1628004507787&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.9.3.tgz",
-      "integrity": "sha1-i2jaHr1/xgOZnPbr7jSkiZoUuI4="
-    },
-    "@types/createjs-lib": {
-      "version": "0.0.29",
-      "resolved": "https://registry.nlark.com/@types/createjs-lib/download/@types/createjs-lib-0.0.29.tgz",
-      "integrity": "sha1-+uguO6hgZmOxkOeJzsfZxyj8Qdc=",
-      "dev": true
-    },
-    "@types/estree": {
-      "version": "0.0.48",
-      "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.48.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.48.tgz",
-      "integrity": "sha1-GNyAkbKF35DbLyWqfZBs/DlLf3Q=",
-      "dev": true
-    },
-    "@types/howler": {
-      "version": "2.2.4",
-      "resolved": "https://registry.nlark.com/@types/howler/download/@types/howler-2.2.4.tgz",
-      "integrity": "sha1-+30CvDNdIMwUGYfxbBlbGvd9dWo=",
-      "dev": true
-    },
-    "@types/marked": {
-      "version": "3.0.1",
-      "resolved": "https://registry.nlark.com/@types/marked/download/@types/marked-3.0.1.tgz?cache=0&sync_timestamp=1631543903416&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fmarked%2Fdownload%2F%40types%2Fmarked-3.0.1.tgz",
-      "integrity": "sha1-dIZF7N4w2M94YcPhw2DG9pQXL5I=",
-      "dev": true
-    },
-    "@types/mockjs": {
-      "version": "1.0.4",
-      "resolved": "https://registry.nlark.com/@types/mockjs/download/@types/mockjs-1.0.4.tgz",
-      "integrity": "sha1-5waVHV4ztPCku3Ox+LEk4m8IHeA=",
-      "dev": true
-    },
-    "@types/node": {
-      "version": "16.11.6",
-      "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.6.tgz?cache=0&sync_timestamp=1635213425908&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.11.6.tgz",
-      "integrity": "sha1-a+96KgrWhM9ukPz+Mc7KvZzgo64=",
-      "dev": true
-    },
-    "@types/preloadjs": {
-      "version": "0.6.32",
-      "resolved": "https://registry.nlark.com/@types/preloadjs/download/@types/preloadjs-0.6.32.tgz",
-      "integrity": "sha1-Es/3x/kuODingNQ4zknIzsmBgw0=",
-      "dev": true,
-      "requires": {
-        "@types/createjs-lib": "*"
-      }
-    },
-    "@types/soundjs": {
-      "version": "0.6.28",
-      "resolved": "https://registry.nlark.com/@types/soundjs/download/@types/soundjs-0.6.28.tgz",
-      "integrity": "sha1-z3SOkN149mw/VPq0FTb2CkLIwAI=",
-      "dev": true,
-      "requires": {
-        "@types/createjs-lib": "*",
-        "@types/preloadjs": "*"
-      }
-    },
-    "@vant/icons": {
-      "version": "1.7.0",
-      "resolved": "https://registry.nlark.com/@vant/icons/download/@vant/icons-1.7.0.tgz?cache=0&sync_timestamp=1626958553251&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vant%2Ficons%2Fdownload%2F%40vant%2Ficons-1.7.0.tgz",
-      "integrity": "sha1-AtQnUyqBQsNdsVnanDZP5okMOsk="
-    },
-    "@vant/lazyload": {
-      "version": "1.2.0",
-      "resolved": "https://registry.nlark.com/@vant/lazyload/download/@vant/lazyload-1.2.0.tgz",
-      "integrity": "sha1-Yul3m9eEStj3HCyiv4UuYUfHqG0="
-    },
-    "@vant/popperjs": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/@vant/popperjs/download/@vant/popperjs-1.1.0.tgz",
-      "integrity": "sha1-tO3uW7+m+xhwWYbjE9T9XxeUKg8=",
-      "requires": {
-        "@popperjs/core": "^2.9.2"
-      }
-    },
-    "@vant/use": {
-      "version": "1.2.2",
-      "resolved": "https://registry.nlark.com/@vant/use/download/@vant/use-1.2.2.tgz",
-      "integrity": "sha1-ABzRZbgxya+bBSKS7Q2cuK9OBoI="
-    },
-    "@vitejs/plugin-vue": {
-      "version": "1.3.0",
-      "resolved": "https://registry.nlark.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-1.3.0.tgz?cache=0&sync_timestamp=1627380102462&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vitejs%2Fplugin-vue%2Fdownload%2F%40vitejs%2Fplugin-vue-1.3.0.tgz",
-      "integrity": "sha1-/ImmybWlFXkWr+zk7cj7Vb8bvEI=",
-      "dev": true
-    },
-    "@volar/code-gen": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/@volar/code-gen/download/@volar/code-gen-0.26.11.tgz",
-      "integrity": "sha1-Q6qzVqMGW+zvScBxyy7HwusOQa8=",
-      "dev": true,
-      "requires": {
-        "@volar/shared": "^0.26.11",
-        "@volar/source-map": "^0.26.11"
-      }
-    },
-    "@volar/html2pug": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/@volar/html2pug/download/@volar/html2pug-0.26.11.tgz",
-      "integrity": "sha1-NAVmh2gqOreCHPFQqvpmyDkujp0=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^2.2.0",
-        "domhandler": "^4.2.0",
-        "htmlparser2": "^6.1.0",
-        "pug": "^3.0.2"
-      }
-    },
-    "@volar/shared": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/@volar/shared/download/@volar/shared-0.26.11.tgz",
-      "integrity": "sha1-puVzRPAVEtjPK1rZ6W0k1D4DpEc=",
-      "dev": true,
-      "requires": {
-        "upath": "^2.0.1",
-        "vscode-jsonrpc": "^8.0.0-next.1"
-      }
-    },
-    "@volar/source-map": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/@volar/source-map/download/@volar/source-map-0.26.11.tgz",
-      "integrity": "sha1-zncl6Xvy93Q6tndbcDH0KYkZmAo=",
-      "dev": true,
-      "requires": {
-        "@volar/shared": "^0.26.11"
-      }
-    },
-    "@volar/transforms": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/@volar/transforms/download/@volar/transforms-0.26.11.tgz",
-      "integrity": "sha1-XfL/9LKg50HCcKs4hdE5rXTGtpk=",
-      "dev": true,
-      "requires": {
-        "@volar/shared": "^0.26.11"
-      }
-    },
-    "@vue/compiler-core": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.1.5.tgz",
-      "integrity": "sha1-KY+QW2Bl1tgf9jdW+Yxgh2s5PIc=",
-      "requires": {
-        "@babel/parser": "^7.12.0",
-        "@babel/types": "^7.12.0",
-        "@vue/shared": "3.1.5",
-        "estree-walker": "^2.0.1",
-        "source-map": "^0.6.1"
-      }
-    },
-    "@vue/compiler-dom": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.1.5.tgz",
-      "integrity": "sha1-y7lwIMYqX6o/vCqXkWvZgEGsmFY=",
-      "requires": {
-        "@vue/compiler-core": "3.1.5",
-        "@vue/shared": "3.1.5"
-      }
-    },
-    "@vue/compiler-sfc": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.1.5.tgz",
-      "integrity": "sha1-5h5U86ljsPSo5SP7uGMjkNxSsNY=",
-      "dev": true,
-      "requires": {
-        "@babel/parser": "^7.13.9",
-        "@babel/types": "^7.13.0",
-        "@types/estree": "^0.0.48",
-        "@vue/compiler-core": "3.1.5",
-        "@vue/compiler-dom": "3.1.5",
-        "@vue/compiler-ssr": "3.1.5",
-        "@vue/shared": "3.1.5",
-        "consolidate": "^0.16.0",
-        "estree-walker": "^2.0.1",
-        "hash-sum": "^2.0.0",
-        "lru-cache": "^5.1.1",
-        "magic-string": "^0.25.7",
-        "merge-source-map": "^1.1.0",
-        "postcss": "^8.1.10",
-        "postcss-modules": "^4.0.0",
-        "postcss-selector-parser": "^6.0.4",
-        "source-map": "^0.6.1"
-      }
-    },
-    "@vue/compiler-ssr": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.1.5.tgz",
-      "integrity": "sha1-8GhlJ3QpMlah5TCEvtSKZ2gt+dI=",
-      "dev": true,
-      "requires": {
-        "@vue/compiler-dom": "3.1.5",
-        "@vue/shared": "3.1.5"
-      }
-    },
-    "@vue/devtools-api": {
-      "version": "6.0.0-beta.15",
-      "resolved": "https://registry.nlark.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fdevtools-api%2Fdownload%2F%40vue%2Fdevtools-api-6.0.0-beta.15.tgz",
-      "integrity": "sha1-rXyzhOBi8WW8+cg3MhJb/7wq2D0="
-    },
-    "@vue/reactivity": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.1.5.tgz",
-      "integrity": "sha1-2+xNlVf3yPJcJjXbHiOninKeuZE=",
-      "requires": {
-        "@vue/shared": "3.1.5"
-      }
-    },
-    "@vue/runtime-core": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.1.5.tgz",
-      "integrity": "sha1-pUW38UYJKSnLXoM+hUORUPF6yHs=",
-      "requires": {
-        "@vue/reactivity": "3.1.5",
-        "@vue/shared": "3.1.5"
-      }
-    },
-    "@vue/runtime-dom": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.1.5.tgz",
-      "integrity": "sha1-T6KJR9QIqjaPoX6g7cG+ua8UcqE=",
-      "requires": {
-        "@vue/runtime-core": "3.1.5",
-        "@vue/shared": "3.1.5",
-        "csstype": "^2.6.8"
-      }
-    },
-    "@vue/shared": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.1.5.tgz",
-      "integrity": "sha1-dO46rZldCjmWpruVM9TSgFFO3gM="
-    },
-    "acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
-      "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
-      "dev": true
-    },
-    "anymatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz",
-      "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
-      "dev": true,
-      "requires": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      }
-    },
-    "asap": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
-      "dev": true
-    },
-    "assert-never": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/assert-never/download/assert-never-1.2.1.tgz",
-      "integrity": "sha1-EfDjY78UYgX7CBk7XHuQ9NHPRP4=",
-      "dev": true
-    },
-    "axios": {
-      "version": "0.21.4",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
-      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-      "requires": {
-        "follow-redirects": "^1.14.0"
-      }
-    },
-    "babel-walk": {
-      "version": "3.0.0-canary-5",
-      "resolved": "https://registry.npm.taobao.org/babel-walk/download/babel-walk-3.0.0-canary-5.tgz",
-      "integrity": "sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.9.6"
-      }
-    },
-    "big.js": {
-      "version": "5.2.2",
-      "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz",
-      "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
-      "dev": true
-    },
-    "binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299308660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz",
-      "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
-      "dev": true
-    },
-    "bluebird": {
-      "version": "3.7.2",
-      "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
-      "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=",
-      "dev": true
-    },
-    "braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
-      "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
-      "dev": true,
-      "requires": {
-        "fill-range": "^7.0.1"
-      }
-    },
-    "call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz",
-      "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      }
-    },
-    "character-parser": {
-      "version": "2.2.0",
-      "resolved": "https://registry.nlark.com/character-parser/download/character-parser-2.2.0.tgz",
-      "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
-      "dev": true,
-      "requires": {
-        "is-regex": "^1.0.3"
-      }
-    },
-    "chokidar": {
-      "version": "3.5.2",
-      "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz",
-      "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
-      "dev": true,
-      "requires": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "fsevents": "~2.3.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      }
-    },
-    "colorette": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259623635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz",
-      "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=",
-      "dev": true
-    },
-    "commander": {
-      "version": "8.1.0",
-      "resolved": "https://registry.nlark.com/commander/download/commander-8.1.0.tgz?cache=0&sync_timestamp=1627358254258&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-8.1.0.tgz",
-      "integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I="
-    },
-    "consolidate": {
-      "version": "0.16.0",
-      "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.16.0.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.16.0.tgz",
-      "integrity": "sha1-oRhkdokw8vGUMWYKZZBmaPX73BY=",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.7.2"
-      }
-    },
-    "constantinople": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-4.0.1.tgz",
-      "integrity": "sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=",
-      "dev": true,
-      "requires": {
-        "@babel/parser": "^7.6.0",
-        "@babel/types": "^7.6.1"
-      }
-    },
-    "cookie-storage": {
-      "version": "6.1.0",
-      "resolved": "https://registry.nlark.com/cookie-storage/download/cookie-storage-6.1.0.tgz",
-      "integrity": "sha1-KRsvZi2WG+RPmZYmWTQhy/zyN5A="
-    },
-    "copy-text-to-clipboard": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/copy-text-to-clipboard/download/copy-text-to-clipboard-3.0.1.tgz",
-      "integrity": "sha1-jL+PkOCkfxLkokdDc2Jl0Ve85pw="
-    },
-    "core-js": {
-      "version": "3.16.1",
-      "resolved": "https://registry.nlark.com/core-js/download/core-js-3.16.1.tgz",
-      "integrity": "sha1-9Ehc5cnzxqfLGPqASI4I02IJckk="
-    },
-    "cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz",
-      "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=",
-      "dev": true
-    },
-    "csstype": {
-      "version": "2.6.17",
-      "resolved": "https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz",
-      "integrity": "sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4="
-    },
-    "dayjs": {
-      "version": "1.10.7",
-      "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz",
-      "integrity": "sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg="
-    },
-    "deepmerge": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz",
-      "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU="
-    },
-    "doctypes": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz",
-      "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
-      "dev": true
-    },
-    "dom-serializer": {
-      "version": "1.3.2",
-      "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz",
-      "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^2.0.1",
-        "domhandler": "^4.2.0",
-        "entities": "^2.0.0"
-      }
-    },
-    "domelementtype": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz",
-      "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
-      "dev": true
-    },
-    "domhandler": {
-      "version": "4.2.0",
-      "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.0.tgz",
-      "integrity": "sha1-+XaKXwNL5gqJonwuTQ9066DYsFk=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^2.2.0"
-      }
-    },
-    "domutils": {
-      "version": "2.7.0",
-      "resolved": "https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.7.0.tgz",
-      "integrity": "sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI=",
-      "dev": true,
-      "requires": {
-        "dom-serializer": "^1.0.1",
-        "domelementtype": "^2.2.0",
-        "domhandler": "^4.2.0"
-      }
-    },
-    "emmet": {
-      "version": "2.3.4",
-      "resolved": "https://registry.nlark.com/emmet/download/emmet-2.3.4.tgz",
-      "integrity": "sha1-W6DXpVaaaMdpffqJDHcuTzF50SM=",
-      "dev": true,
-      "requires": {
-        "@emmetio/abbreviation": "^2.2.2",
-        "@emmetio/css-abbreviation": "^2.1.4"
-      }
-    },
-    "emojis-list": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
-      "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
-      "dev": true
-    },
-    "entities": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1611535711703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.2.0.tgz",
-      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
-      "dev": true
-    },
-    "esbuild": {
-      "version": "0.12.17",
-      "resolved": "https://registry.nlark.com/esbuild/download/esbuild-0.12.17.tgz",
-      "integrity": "sha1-WBb5BcKQXeDrvGWIYN97W0ivvNM=",
-      "dev": true
-    },
-    "estree-walker": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz",
-      "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw="
-    },
-    "fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
-      "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
-      "dev": true,
-      "requires": {
-        "to-regex-range": "^5.0.1"
-      }
-    },
-    "follow-redirects": {
-      "version": "1.14.6",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz",
-      "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A=="
-    },
-    "fsevents": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz",
-      "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
-      "dev": true,
-      "optional": true
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
-      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
-      "dev": true
-    },
-    "generic-names": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/generic-names/download/generic-names-2.0.1.tgz?cache=0&sync_timestamp=1603542764418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgeneric-names%2Fdownload%2Fgeneric-names-2.0.1.tgz",
-      "integrity": "sha1-+KN46tLMqno08DF7BVVIMq5BuHI=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0"
-      }
-    },
-    "get-intrinsic": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz",
-      "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.1"
-      }
-    },
-    "glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1626760165717&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
-      "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
-      "dev": true,
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
-      "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1"
-      }
-    },
-    "has-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443557459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz",
-      "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
-      "dev": true
-    },
-    "hash-sum": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz",
-      "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=",
-      "dev": true
-    },
-    "howler": {
-      "version": "2.2.3",
-      "resolved": "https://registry.nlark.com/howler/download/howler-2.2.3.tgz",
-      "integrity": "sha1-ou/5sItYZ5jnou4XpgKpDfKHFdo="
-    },
-    "htmlparser2": {
-      "version": "6.1.0",
-      "resolved": "https://registry.nlark.com/htmlparser2/download/htmlparser2-6.1.0.tgz",
-      "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^2.0.1",
-        "domhandler": "^4.0.0",
-        "domutils": "^2.5.2",
-        "entities": "^2.0.0"
-      }
-    },
-    "icss-replace-symbols": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz",
-      "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
-      "dev": true
-    },
-    "icss-utils": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-5.1.0.tgz?cache=0&sync_timestamp=1605801291394&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-5.1.0.tgz",
-      "integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=",
-      "dev": true
-    },
-    "is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
-      "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
-      "dev": true,
-      "requires": {
-        "binary-extensions": "^2.0.0"
-      }
-    },
-    "is-core-module": {
-      "version": "2.5.0",
-      "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.5.0.tgz",
-      "integrity": "sha1-91SENhfHC/0pt72HMnQAzaXBhJE=",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.3"
-      }
-    },
-    "is-expression": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-4.0.0.tgz",
-      "integrity": "sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=",
-      "dev": true,
-      "requires": {
-        "acorn": "^7.1.1",
-        "object-assign": "^4.1.1"
-      }
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
-    },
-    "is-glob": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
-      "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
-      "dev": true,
-      "requires": {
-        "is-extglob": "^2.1.1"
-      }
-    },
-    "is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
-      "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
-      "dev": true
-    },
-    "is-promise": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz",
-      "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=",
-      "dev": true
-    },
-    "is-regex": {
-      "version": "1.1.3",
-      "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.3.tgz?cache=0&sync_timestamp=1620452285370&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.3.tgz",
-      "integrity": "sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "js-stringify": {
-      "version": "1.0.2",
-      "resolved": "https://registry.nlark.com/js-stringify/download/js-stringify-1.0.2.tgz",
-      "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=",
-      "dev": true
-    },
-    "json5": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1612146215945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz",
-      "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
-      "dev": true,
-      "requires": {
-        "minimist": "^1.2.0"
-      }
-    },
-    "jsonc-parser": {
-      "version": "3.0.0",
-      "resolved": "https://registry.nlark.com/jsonc-parser/download/jsonc-parser-3.0.0.tgz",
-      "integrity": "sha1-q914VwHH5+rKip7IzwcMpRp0WiI=",
-      "dev": true
-    },
-    "jstransformer": {
-      "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/jstransformer/download/jstransformer-1.0.0.tgz",
-      "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
-      "dev": true,
-      "requires": {
-        "is-promise": "^2.0.0",
-        "promise": "^7.0.1"
-      }
-    },
-    "loader-utils": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
-      "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
-      "dev": true,
-      "requires": {
-        "big.js": "^5.2.2",
-        "emojis-list": "^3.0.0",
-        "json5": "^1.0.1"
-      }
-    },
-    "lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
-      "dev": true
-    },
-    "lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1599054167787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz",
-      "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
-      "dev": true,
-      "requires": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "magic-string": {
-      "version": "0.25.7",
-      "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz",
-      "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=",
-      "dev": true,
-      "requires": {
-        "sourcemap-codec": "^1.4.4"
-      }
-    },
-    "marked": {
-      "version": "3.0.4",
-      "resolved": "https://registry.nlark.com/marked/download/marked-3.0.4.tgz?cache=0&sync_timestamp=1631641917711&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmarked%2Fdownload%2Fmarked-3.0.4.tgz",
-      "integrity": "sha1-uKFTnl4Fxuqek/FcC60dVM6JBAY="
-    },
-    "merge-source-map": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz",
-      "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=",
-      "dev": true,
-      "requires": {
-        "source-map": "^0.6.1"
-      }
-    },
-    "minimist": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz",
-      "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=",
-      "dev": true
-    },
-    "mockjs": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/mockjs/download/mockjs-1.1.0.tgz",
-      "integrity": "sha1-5qDDeOkZBtuv8gkRzAJzs8fXWwY=",
-      "requires": {
-        "commander": "*"
-      }
-    },
-    "mutation-observer": {
-      "version": "1.0.3",
-      "resolved": "https://registry.nlark.com/mutation-observer/download/mutation-observer-1.0.3.tgz",
-      "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
-    },
-    "nanoid": {
-      "version": "3.1.23",
-      "resolved": "https://registry.nlark.com/nanoid/download/nanoid-3.1.23.tgz?cache=0&sync_timestamp=1620673983269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.23.tgz",
-      "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=",
-      "dev": true
-    },
-    "normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
-      "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
-      "dev": true
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
-    },
-    "path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz",
-      "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=",
-      "dev": true
-    },
-    "picomatch": {
-      "version": "2.3.0",
-      "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz",
-      "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
-      "dev": true
-    },
-    "postcss": {
-      "version": "8.3.6",
-      "resolved": "https://registry.nlark.com/postcss/download/postcss-8.3.6.tgz?cache=0&sync_timestamp=1626882933935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-8.3.6.tgz",
-      "integrity": "sha1-JzDddql5afN/U7mmCWGXvjEcxOo=",
-      "dev": true,
-      "requires": {
-        "colorette": "^1.2.2",
-        "nanoid": "^3.1.23",
-        "source-map-js": "^0.6.2"
-      }
-    },
-    "postcss-modules": {
-      "version": "4.2.2",
-      "resolved": "https://registry.nlark.com/postcss-modules/download/postcss-modules-4.2.2.tgz?cache=0&sync_timestamp=1627039460598&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-modules%2Fdownload%2Fpostcss-modules-4.2.2.tgz",
-      "integrity": "sha1-Xnd3xaiWTqF2kZ2QsuVO+JEyHOU=",
-      "dev": true,
-      "requires": {
-        "generic-names": "^2.0.1",
-        "icss-replace-symbols": "^1.1.0",
-        "lodash.camelcase": "^4.3.0",
-        "postcss-modules-extract-imports": "^3.0.0",
-        "postcss-modules-local-by-default": "^4.0.0",
-        "postcss-modules-scope": "^3.0.0",
-        "postcss-modules-values": "^4.0.0",
-        "string-hash": "^1.1.1"
-      }
-    },
-    "postcss-modules-extract-imports": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-3.0.0.tgz",
-      "integrity": "sha1-zaHwR8CugMl9vijD52pDuIAldB0=",
-      "dev": true
-    },
-    "postcss-modules-local-by-default": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz",
-      "integrity": "sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=",
-      "dev": true,
-      "requires": {
-        "icss-utils": "^5.0.0",
-        "postcss-selector-parser": "^6.0.2",
-        "postcss-value-parser": "^4.1.0"
-      }
-    },
-    "postcss-modules-scope": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-3.0.0.tgz",
-      "integrity": "sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=",
-      "dev": true,
-      "requires": {
-        "postcss-selector-parser": "^6.0.4"
-      }
-    },
-    "postcss-modules-values": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-4.0.0.tgz",
-      "integrity": "sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=",
-      "dev": true,
-      "requires": {
-        "icss-utils": "^5.0.0"
-      }
-    },
-    "postcss-pxtorem": {
-      "version": "6.0.0",
-      "resolved": "https://registry.nlark.com/postcss-pxtorem/download/postcss-pxtorem-6.0.0.tgz",
-      "integrity": "sha1-8iik0F2Kc/BkLquulQ4rGYNjZtc=",
-      "dev": true
-    },
-    "postcss-selector-parser": {
-      "version": "6.0.6",
-      "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz",
-      "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=",
-      "dev": true,
-      "requires": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      }
-    },
-    "postcss-value-parser": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
-      "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
-      "dev": true
-    },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz",
-      "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
-      "dev": true,
-      "requires": {
-        "asap": "~2.0.3"
-      }
-    },
-    "pug": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/pug/download/pug-3.0.2.tgz",
-      "integrity": "sha1-81xxBzQ0VOQ7wnrg/3bHMbeOpTU=",
-      "dev": true,
-      "requires": {
-        "pug-code-gen": "^3.0.2",
-        "pug-filters": "^4.0.0",
-        "pug-lexer": "^5.0.1",
-        "pug-linker": "^4.0.0",
-        "pug-load": "^3.0.0",
-        "pug-parser": "^6.0.0",
-        "pug-runtime": "^3.0.1",
-        "pug-strip-comments": "^2.0.0"
-      }
-    },
-    "pug-attrs": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-3.0.0.tgz",
-      "integrity": "sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=",
-      "dev": true,
-      "requires": {
-        "constantinople": "^4.0.1",
-        "js-stringify": "^1.0.2",
-        "pug-runtime": "^3.0.0"
-      }
-    },
-    "pug-code-gen": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-3.0.2.tgz",
-      "integrity": "sha1-rRkPSUMTO/GGtguA3kgxAOEy4s4=",
-      "dev": true,
-      "requires": {
-        "constantinople": "^4.0.1",
-        "doctypes": "^1.1.0",
-        "js-stringify": "^1.0.2",
-        "pug-attrs": "^3.0.0",
-        "pug-error": "^2.0.0",
-        "pug-runtime": "^3.0.0",
-        "void-elements": "^3.1.0",
-        "with": "^7.0.0"
-      }
-    },
-    "pug-error": {
-      "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/pug-error/download/pug-error-2.0.0.tgz",
-      "integrity": "sha1-XGIXPLCcNN4qLOBPF7it/sdNjKU=",
-      "dev": true
-    },
-    "pug-filters": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-4.0.0.tgz",
-      "integrity": "sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=",
-      "dev": true,
-      "requires": {
-        "constantinople": "^4.0.1",
-        "jstransformer": "1.0.0",
-        "pug-error": "^2.0.0",
-        "pug-walk": "^2.0.0",
-        "resolve": "^1.15.1"
-      }
-    },
-    "pug-lexer": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-5.0.1.tgz",
-      "integrity": "sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=",
-      "dev": true,
-      "requires": {
-        "character-parser": "^2.2.0",
-        "is-expression": "^4.0.0",
-        "pug-error": "^2.0.0"
-      }
-    },
-    "pug-linker": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-4.0.0.tgz",
-      "integrity": "sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=",
-      "dev": true,
-      "requires": {
-        "pug-error": "^2.0.0",
-        "pug-walk": "^2.0.0"
-      }
-    },
-    "pug-load": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-3.0.0.tgz",
-      "integrity": "sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=",
-      "dev": true,
-      "requires": {
-        "object-assign": "^4.1.1",
-        "pug-walk": "^2.0.0"
-      }
-    },
-    "pug-parser": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-6.0.0.tgz",
-      "integrity": "sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=",
-      "dev": true,
-      "requires": {
-        "pug-error": "^2.0.0",
-        "token-stream": "1.0.0"
-      }
-    },
-    "pug-runtime": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-3.0.1.tgz",
-      "integrity": "sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=",
-      "dev": true
-    },
-    "pug-strip-comments": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-2.0.0.tgz",
-      "integrity": "sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=",
-      "dev": true,
-      "requires": {
-        "pug-error": "^2.0.0"
-      }
-    },
-    "pug-walk": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-2.0.0.tgz",
-      "integrity": "sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=",
-      "dev": true
-    },
-    "readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz",
-      "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
-      "dev": true,
-      "requires": {
-        "picomatch": "^2.2.1"
-      }
-    },
-    "request-light": {
-      "version": "0.5.4",
-      "resolved": "https://registry.nlark.com/request-light/download/request-light-0.5.4.tgz",
-      "integrity": "sha1-SXqYxtiuSVNkF6Xi1/ODuTTz44w=",
-      "dev": true
-    },
-    "resolve": {
-      "version": "1.20.0",
-      "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz",
-      "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
-      "dev": true,
-      "requires": {
-        "is-core-module": "^2.2.0",
-        "path-parse": "^1.0.6"
-      }
-    },
-    "rollup": {
-      "version": "2.55.1",
-      "resolved": "https://registry.nlark.com/rollup/download/rollup-2.55.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frollup%2Fdownload%2Frollup-2.55.1.tgz",
-      "integrity": "sha1-ZqREZI4vtgPY4ynnemHGCKZRD9o=",
-      "dev": true,
-      "requires": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "sass": {
-      "version": "1.37.5",
-      "resolved": "https://registry.nlark.com/sass/download/sass-1.37.5.tgz",
-      "integrity": "sha1-9oODUffMgUxPz+HZog4Mq70eezw=",
-      "dev": true,
-      "requires": {
-        "chokidar": ">=3.0.0 <4.0.0"
-      }
-    },
-    "scopex": {
-      "version": "4.3.3",
-      "resolved": "https://registry.npmmirror.com/scopex/download/scopex-4.3.3.tgz",
-      "integrity": "sha512-vd0o+mkMC8xdESr4nxxYoNUUWWBjTi5lRTOjY9ZbPG5RFlNQPTxZmv3dtADfn7b9GT++XgtRfc1Fxf2G1K6XUQ=="
-    },
-    "shvl": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npm.taobao.org/shvl/download/shvl-2.0.3.tgz",
-      "integrity": "sha1-60vTdkT1aEu6H8UsMBDJb7Xmr9E="
-    },
-    "soundjs": {
-      "version": "1.0.1",
-      "resolved": "https://registry.nlark.com/soundjs/download/soundjs-1.0.1.tgz",
-      "integrity": "sha1-mZcFQtKNDfKh69BhrnXJYamMgYA="
-    },
-    "source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-      "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
-    },
-    "source-map-js": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz",
-      "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=",
-      "dev": true
-    },
-    "sourcemap-codec": {
-      "version": "1.4.8",
-      "resolved": "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz",
-      "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=",
-      "dev": true
-    },
-    "string-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/string-hash/download/string-hash-1.1.3.tgz",
-      "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
-      "dev": true
-    },
-    "svelte-fa": {
-      "version": "2.2.1",
-      "resolved": "https://registry.nlark.com/svelte-fa/download/svelte-fa-2.2.1.tgz?cache=0&sync_timestamp=1626420512203&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsvelte-fa%2Fdownload%2Fsvelte-fa-2.2.1.tgz",
-      "integrity": "sha1-dDtWYs5ZRwW8jxbZnYTr+iPzJt0="
-    },
-    "to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
-    },
-    "to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
-      "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
-      "dev": true,
-      "requires": {
-        "is-number": "^7.0.0"
-      }
-    },
-    "token-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-1.0.0.tgz",
-      "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=",
-      "dev": true
-    },
-    "ts-fns": {
-      "version": "10.6.3",
-      "resolved": "https://registry.npmmirror.com/ts-fns/download/ts-fns-10.6.3.tgz",
-      "integrity": "sha512-68L8OVKDS6VMhvf+PSxBf1ss6TDYsA53SS3FcKI+xZdokHEK3sTcMmxGCJQQIAoQlBqE2waa3mzxTTAziYibNA=="
-    },
-    "typescript": {
-      "version": "4.3.5",
-      "resolved": "https://registry.nlark.com/typescript/download/typescript-4.3.5.tgz?cache=0&sync_timestamp=1628061383668&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftypescript%2Fdownload%2Ftypescript-4.3.5.tgz",
-      "integrity": "sha1-TRw3zBbok5c8RaBohrcRMjTxGfQ=",
-      "dev": true
-    },
-    "tyshemo": {
-      "version": "11.20.3",
-      "resolved": "https://registry.npmmirror.com/tyshemo/download/tyshemo-11.20.3.tgz",
-      "integrity": "sha512-AQrukZXlZMmqjoPEOYCRpasD9KkoWBjXk2SyM/Cxx+fxRVNIAFXajLKP4HvIoJXiXK+jdyvtqIrzVxZmP+kPDw==",
-      "requires": {
-        "scopex": "^4.3.2",
-        "ts-fns": "^10.6.2"
-      }
-    },
-    "upath": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/upath/download/upath-2.0.1.tgz",
-      "integrity": "sha1-UMc96mjW9rmQ9R0nnOYIFmXWGos=",
-      "dev": true
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
-    },
-    "vant": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/vant/download/vant-3.1.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvant%2Fdownload%2Fvant-3.1.5.tgz",
-      "integrity": "sha1-PoC1uKhDHQwiIRKf6onEzCGm8rI=",
-      "requires": {
-        "@vant/icons": "^1.7.0",
-        "@vant/lazyload": "^1.2.0",
-        "@vant/popperjs": "^1.1.0",
-        "@vant/use": "^1.2.2"
-      }
-    },
-    "vconsole": {
-      "version": "3.9.1",
-      "resolved": "https://registry.nlark.com/vconsole/download/vconsole-3.9.1.tgz",
-      "integrity": "sha1-QcnTEeFKGmhWahvlJDqGZ/TDRdM=",
-      "requires": {
-        "@fortawesome/free-solid-svg-icons": "^5.15.3",
-        "cookie-storage": "^6.1.0",
-        "copy-text-to-clipboard": "^3.0.1",
-        "core-js": "^3.11.0",
-        "mutation-observer": "^1.0.3",
-        "svelte-fa": "^2.2.1"
-      }
-    },
-    "vite": {
-      "version": "2.4.4",
-      "resolved": "https://registry.nlark.com/vite/download/vite-2.4.4.tgz",
-      "integrity": "sha1-jEAqB61F8Wj261Qovq048+Q2Pkc=",
-      "dev": true,
-      "requires": {
-        "esbuild": "^0.12.8",
-        "fsevents": "~2.3.2",
-        "postcss": "^8.3.6",
-        "resolve": "^1.20.0",
-        "rollup": "^2.38.5"
-      }
-    },
-    "void-elements": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-3.1.0.tgz",
-      "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=",
-      "dev": true
-    },
-    "vscode-css-languageservice": {
-      "version": "5.1.4",
-      "resolved": "https://registry.nlark.com/vscode-css-languageservice/download/vscode-css-languageservice-5.1.4.tgz",
-      "integrity": "sha1-B+TGPxw7sG5vPzKcMrSQ0gpgG6s=",
-      "dev": true,
-      "requires": {
-        "vscode-languageserver-textdocument": "^1.0.1",
-        "vscode-languageserver-types": "^3.16.0",
-        "vscode-nls": "^5.0.0",
-        "vscode-uri": "^3.0.2"
-      }
-    },
-    "vscode-emmet-helper": {
-      "version": "2.6.4",
-      "resolved": "https://registry.nlark.com/vscode-emmet-helper/download/vscode-emmet-helper-2.6.4.tgz",
-      "integrity": "sha1-vqR/F2Sbuia0EvPR+sGKruQ+uiU=",
-      "dev": true,
-      "requires": {
-        "emmet": "^2.3.0",
-        "jsonc-parser": "^2.3.0",
-        "vscode-languageserver-textdocument": "^1.0.1",
-        "vscode-languageserver-types": "^3.15.1",
-        "vscode-nls": "^5.0.0",
-        "vscode-uri": "^2.1.2"
-      },
-      "dependencies": {
-        "jsonc-parser": {
-          "version": "2.3.1",
-          "resolved": "https://registry.nlark.com/jsonc-parser/download/jsonc-parser-2.3.1.tgz",
-          "integrity": "sha1-WVSRULEz8u+sykj+nOHsBlmvI0I=",
-          "dev": true
-        },
-        "vscode-uri": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-2.1.2.tgz",
-          "integrity": "sha1-yNQN6T61evMfPHFd1lDiyiwJbxw=",
-          "dev": true
-        }
-      }
-    },
-    "vscode-html-languageservice": {
-      "version": "4.0.7",
-      "resolved": "https://registry.nlark.com/vscode-html-languageservice/download/vscode-html-languageservice-4.0.7.tgz",
-      "integrity": "sha1-lPLtIsghll+CgiLRO1qlQbNY2ZI=",
-      "dev": true,
-      "requires": {
-        "vscode-languageserver-textdocument": "^1.0.1",
-        "vscode-languageserver-types": "^3.16.0",
-        "vscode-nls": "^5.0.0",
-        "vscode-uri": "^3.0.2"
-      }
-    },
-    "vscode-json-languageservice": {
-      "version": "4.1.6",
-      "resolved": "https://registry.nlark.com/vscode-json-languageservice/download/vscode-json-languageservice-4.1.6.tgz",
-      "integrity": "sha1-QnXo2vHLqAJzwxjzP796Lt4wcFM=",
-      "dev": true,
-      "requires": {
-        "jsonc-parser": "^3.0.0",
-        "vscode-languageserver-textdocument": "^1.0.1",
-        "vscode-languageserver-types": "^3.16.0",
-        "vscode-nls": "^5.0.0",
-        "vscode-uri": "^3.0.2"
-      }
-    },
-    "vscode-jsonrpc": {
-      "version": "8.0.0-next.1",
-      "resolved": "https://registry.nlark.com/vscode-jsonrpc/download/vscode-jsonrpc-8.0.0-next.1.tgz",
-      "integrity": "sha1-GWRoiphR+GkAxV4piTmhV7LiJK0=",
-      "dev": true
-    },
-    "vscode-languageserver": {
-      "version": "8.0.0-next.1",
-      "resolved": "https://registry.nlark.com/vscode-languageserver/download/vscode-languageserver-8.0.0-next.1.tgz",
-      "integrity": "sha1-tYRFhaz4Yqe9qrItKMnaDxUn15A=",
-      "dev": true,
-      "requires": {
-        "vscode-languageserver-protocol": "3.17.0-next.7"
-      }
-    },
-    "vscode-languageserver-protocol": {
-      "version": "3.17.0-next.7",
-      "resolved": "https://registry.nlark.com/vscode-languageserver-protocol/download/vscode-languageserver-protocol-3.17.0-next.7.tgz",
-      "integrity": "sha1-IVDtuGtqUcMlADtDelIvDc/GBLQ=",
-      "dev": true,
-      "requires": {
-        "vscode-jsonrpc": "8.0.0-next.1",
-        "vscode-languageserver-types": "3.17.0-next.3"
-      },
-      "dependencies": {
-        "vscode-languageserver-types": {
-          "version": "3.17.0-next.3",
-          "resolved": "https://registry.nlark.com/vscode-languageserver-types/download/vscode-languageserver-types-3.17.0-next.3.tgz?cache=0&sync_timestamp=1625834451077&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.17.0-next.3.tgz",
-          "integrity": "sha1-4fQxHgjqMZPoESYVS2o0L8HD26M=",
-          "dev": true
-        }
-      }
-    },
-    "vscode-languageserver-textdocument": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/vscode-languageserver-textdocument/download/vscode-languageserver-textdocument-1.0.1.tgz",
-      "integrity": "sha1-F4Fo6H761hcbNyrdHeo09T5dMw8=",
-      "dev": true
-    },
-    "vscode-languageserver-types": {
-      "version": "3.16.0",
-      "resolved": "https://registry.nlark.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&sync_timestamp=1625834451077&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
-      "integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
-      "dev": true
-    },
-    "vscode-nls": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npm.taobao.org/vscode-nls/download/vscode-nls-5.0.0.tgz",
-      "integrity": "sha1-mfDaC9nqfNpE5WWnTFSx8rwleEA=",
-      "dev": true
-    },
-    "vscode-pug-languageservice": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/vscode-pug-languageservice/download/vscode-pug-languageservice-0.26.11.tgz",
-      "integrity": "sha1-vUVAbVnBaY2oVfJjvB6f4PQ54nM=",
-      "dev": true,
-      "requires": {
-        "@volar/code-gen": "^0.26.11",
-        "@volar/shared": "^0.26.11",
-        "@volar/source-map": "^0.26.11",
-        "@volar/transforms": "^0.26.11",
-        "pug-lexer": "^5.0.1",
-        "pug-parser": "^6.0.0",
-        "vscode-languageserver": "^8.0.0-next.1"
-      }
-    },
-    "vscode-typescript-languageservice": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/vscode-typescript-languageservice/download/vscode-typescript-languageservice-0.26.11.tgz",
-      "integrity": "sha1-ziyxWtTdp3lzHixHf0c95EQn/uc=",
-      "dev": true,
-      "requires": {
-        "@volar/shared": "^0.26.11",
-        "upath": "^2.0.1",
-        "vscode-languageserver": "^8.0.0-next.1",
-        "vscode-languageserver-textdocument": "^1.0.1"
-      }
-    },
-    "vscode-uri": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-3.0.2.tgz",
-      "integrity": "sha1-7P0dBmy470w6II3s26uajCPQVdA=",
-      "dev": true
-    },
-    "vscode-vue-languageservice": {
-      "version": "0.26.11",
-      "resolved": "https://registry.nlark.com/vscode-vue-languageservice/download/vscode-vue-languageservice-0.26.11.tgz",
-      "integrity": "sha1-uUAHMne+F5srcGUsJOtU9XL5dh0=",
-      "dev": true,
-      "requires": {
-        "@volar/code-gen": "^0.26.11",
-        "@volar/html2pug": "^0.26.11",
-        "@volar/shared": "^0.26.11",
-        "@volar/source-map": "^0.26.11",
-        "@volar/transforms": "^0.26.11",
-        "@vue/compiler-dom": "^3.2.0-beta.5",
-        "@vue/compiler-sfc": "^3.2.0-beta.5",
-        "@vue/reactivity": "^3.2.0-beta.5",
-        "@vue/shared": "^3.2.0-beta.5",
-        "jsonc-parser": "^3.0.0",
-        "request-light": "^0.5.4",
-        "upath": "^2.0.1",
-        "vscode-css-languageservice": "^5.1.4",
-        "vscode-emmet-helper": "^2.6.4",
-        "vscode-html-languageservice": "^4.0.7",
-        "vscode-json-languageservice": "^4.1.5",
-        "vscode-languageserver": "^8.0.0-next.1",
-        "vscode-languageserver-textdocument": "^1.0.1",
-        "vscode-pug-languageservice": "^0.26.11",
-        "vscode-typescript-languageservice": "^0.26.11"
-      },
-      "dependencies": {
-        "@vue/compiler-core": {
-          "version": "3.2.0-beta.7",
-          "resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.2.0-beta.7.tgz",
-          "integrity": "sha1-u1UemeIHw+aUvWsoPLWioqrn9SE=",
-          "dev": true,
-          "requires": {
-            "@babel/parser": "^7.12.0",
-            "@babel/types": "^7.12.0",
-            "@vue/shared": "3.2.0-beta.7",
-            "estree-walker": "^2.0.1",
-            "source-map": "^0.6.1"
-          },
-          "dependencies": {
-            "@vue/shared": {
-              "version": "3.2.0-beta.7",
-              "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
-              "integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
-              "dev": true
-            }
-          }
-        },
-        "@vue/compiler-dom": {
-          "version": "3.2.0-beta.7",
-          "resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.0-beta.7.tgz",
-          "integrity": "sha1-IJl5cga193PpSYAd0dajvXPRdM4=",
-          "dev": true,
-          "requires": {
-            "@vue/compiler-core": "3.2.0-beta.7",
-            "@vue/shared": "3.2.0-beta.7"
-          },
-          "dependencies": {
-            "@vue/shared": {
-              "version": "3.2.0-beta.7",
-              "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
-              "integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
-              "dev": true
-            }
-          }
-        },
-        "@vue/compiler-sfc": {
-          "version": "3.2.0-beta.7",
-          "resolved": "https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.0-beta.7.tgz",
-          "integrity": "sha1-bwSis341ivzXeRto767/0L8Zjd0=",
-          "dev": true,
-          "requires": {
-            "@babel/parser": "^7.13.9",
-            "@babel/types": "^7.13.0",
-            "@types/estree": "^0.0.48",
-            "@vue/compiler-core": "3.2.0-beta.7",
-            "@vue/compiler-dom": "3.2.0-beta.7",
-            "@vue/compiler-ssr": "3.2.0-beta.7",
-            "@vue/shared": "3.2.0-beta.7",
-            "consolidate": "^0.16.0",
-            "estree-walker": "^2.0.1",
-            "hash-sum": "^2.0.0",
-            "lru-cache": "^5.1.1",
-            "magic-string": "^0.25.7",
-            "merge-source-map": "^1.1.0",
-            "postcss": "^8.1.10",
-            "postcss-modules": "^4.0.0",
-            "postcss-selector-parser": "^6.0.4",
-            "source-map": "^0.6.1"
-          },
-          "dependencies": {
-            "@vue/shared": {
-              "version": "3.2.0-beta.7",
-              "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
-              "integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
-              "dev": true
-            }
-          }
-        },
-        "@vue/compiler-ssr": {
-          "version": "3.2.0-beta.7",
-          "resolved": "https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.0-beta.7.tgz",
-          "integrity": "sha1-Gkar+LzTGWwsmtFJBjwAxGGfHiQ=",
-          "dev": true,
-          "requires": {
-            "@vue/compiler-dom": "3.2.0-beta.7",
-            "@vue/shared": "3.2.0-beta.7"
-          },
-          "dependencies": {
-            "@vue/shared": {
-              "version": "3.2.0-beta.7",
-              "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
-              "integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
-              "dev": true
-            }
-          }
-        },
-        "@vue/reactivity": {
-          "version": "3.2.0-beta.7",
-          "resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.2.0-beta.7.tgz",
-          "integrity": "sha1-BskWMV87dK5kAEDdt1ly2ilGf4Q=",
-          "dev": true,
-          "requires": {
-            "@vue/shared": "3.2.0-beta.7"
-          },
-          "dependencies": {
-            "@vue/shared": {
-              "version": "3.2.0-beta.7",
-              "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
-              "integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
-              "dev": true
-            }
-          }
-        },
-        "@vue/shared": {
-          "version": "3.2.0-beta.5",
-          "resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.5.tgz",
-          "integrity": "sha1-wnUrrFFHa/2cYFD0pel8KOtm8no=",
-          "dev": true
-        }
-      }
-    },
-    "vue": {
-      "version": "3.1.5",
-      "resolved": "https://registry.nlark.com/vue/download/vue-3.1.5.tgz",
-      "integrity": "sha1-EoebEdBoXuRHjIhpVReZYwpS+f4=",
-      "requires": {
-        "@vue/compiler-dom": "3.1.5",
-        "@vue/runtime-dom": "3.1.5",
-        "@vue/shared": "3.1.5"
-      }
-    },
-    "vue-router": {
-      "version": "4.0.10",
-      "resolved": "https://registry.nlark.com/vue-router/download/vue-router-4.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-4.0.10.tgz",
-      "integrity": "sha1-7I/aAylJsqMdMnMXD483bobrUqw=",
-      "requires": {
-        "@vue/devtools-api": "^6.0.0-beta.14"
-      }
-    },
-    "vue-tsc": {
-      "version": "0.2.2",
-      "resolved": "https://registry.nlark.com/vue-tsc/download/vue-tsc-0.2.2.tgz?cache=0&sync_timestamp=1626837750289&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-tsc%2Fdownload%2Fvue-tsc-0.2.2.tgz",
-      "integrity": "sha1-5/1eXHib6zGECtJggs/Iu2NW5zM=",
-      "dev": true,
-      "requires": {
-        "vscode-vue-languageservice": "^0.26.6"
-      }
-    },
-    "vuex": {
-      "version": "4.0.2",
-      "resolved": "https://registry.nlark.com/vuex/download/vuex-4.0.2.tgz?cache=0&sync_timestamp=1623945218026&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuex%2Fdownload%2Fvuex-4.0.2.tgz",
-      "integrity": "sha1-+Jbb1b8qDpY/AMZ+m2EN50nMrMk=",
-      "requires": {
-        "@vue/devtools-api": "^6.0.0-beta.11"
-      }
-    },
-    "vuex-persistedstate": {
-      "version": "4.1.0",
-      "resolved": "https://registry.nlark.com/vuex-persistedstate/download/vuex-persistedstate-4.1.0.tgz?cache=0&sync_timestamp=1632225657120&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuex-persistedstate%2Fdownload%2Fvuex-persistedstate-4.1.0.tgz",
-      "integrity": "sha1-EnFl+F9bRTT7MXCl06i+mBG9KlM=",
-      "requires": {
-        "deepmerge": "^4.2.2",
-        "shvl": "^2.0.3"
-      }
-    },
-    "weixin-js-sdk": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/weixin-js-sdk/download/weixin-js-sdk-1.6.0.tgz",
-      "integrity": "sha1-/1BITYEYzhII8RJIz0ocCDFXdRQ="
-    },
-    "weixin-js-sdk-ts": {
-      "version": "1.6.1",
-      "resolved": "https://registry.nlark.com/weixin-js-sdk-ts/download/weixin-js-sdk-ts-1.6.1.tgz",
-      "integrity": "sha1-7lh0s5ZiQrWrS+H9WvyQ7FUzU80=",
-      "requires": {
-        "weixin-js-sdk": "^1.6.0"
-      }
-    },
-    "with": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npm.taobao.org/with/download/with-7.0.2.tgz",
-      "integrity": "sha1-zO461ULSVTinp6gKrSErmChJW6w=",
-      "dev": true,
-      "requires": {
-        "@babel/parser": "^7.9.6",
-        "@babel/types": "^7.9.6",
-        "assert-never": "^1.2.1",
-        "babel-walk": "3.0.0-canary-5"
-      }
-    },
-    "yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz",
-      "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=",
-      "dev": true
-    }
-  }
+	"name": "vue3-ts",
+	"version": "0.0.0",
+	"lockfileVersion": 1,
+	"requires": true,
+	"dependencies": {
+		"@babel/helper-validator-identifier": {
+			"version": "7.14.9",
+			"resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz?cache=0&sync_timestamp=1627804430461&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.9.tgz",
+			"integrity": "sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg="
+		},
+		"@babel/parser": {
+			"version": "7.15.0",
+			"resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.0.tgz",
+			"integrity": "sha1-ttbikFjKNpEnsO7KKhxLV5Txtrk="
+		},
+		"@babel/types": {
+			"version": "7.15.0",
+			"resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.0.tgz?cache=0&sync_timestamp=1628111608723&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.0.tgz",
+			"integrity": "sha1-Ya8R8ihsTpxpyo3rX0N1pzxy3L0=",
+			"requires": {
+				"@babel/helper-validator-identifier": "^7.14.9",
+				"to-fast-properties": "^2.0.0"
+			}
+		},
+		"@emmetio/abbreviation": {
+			"version": "2.2.2",
+			"resolved": "https://registry.nlark.com/@emmetio/abbreviation/download/@emmetio/abbreviation-2.2.2.tgz",
+			"integrity": "sha1-dGdi/Z56jC6mBPWAxi48/iUOaYk=",
+			"dev": true,
+			"requires": {
+				"@emmetio/scanner": "^1.0.0"
+			}
+		},
+		"@emmetio/css-abbreviation": {
+			"version": "2.1.4",
+			"resolved": "https://registry.nlark.com/@emmetio/css-abbreviation/download/@emmetio/css-abbreviation-2.1.4.tgz",
+			"integrity": "sha1-kDYuihEizjt29sMVeQfTAYL1P1Q=",
+			"dev": true,
+			"requires": {
+				"@emmetio/scanner": "^1.0.0"
+			}
+		},
+		"@emmetio/scanner": {
+			"version": "1.0.0",
+			"resolved": "https://registry.nlark.com/@emmetio/scanner/download/@emmetio/scanner-1.0.0.tgz",
+			"integrity": "sha1-Blsq9iM/50dNRII+PeuJckr0K18=",
+			"dev": true
+		},
+		"@fortawesome/fontawesome-common-types": {
+			"version": "0.2.36",
+			"resolved": "https://registry.nlark.com/@fortawesome/fontawesome-common-types/download/@fortawesome/fontawesome-common-types-0.2.36.tgz",
+			"integrity": "sha1-tE5S2ztrIFI+DFfvjELTFVMsuQM="
+		},
+		"@fortawesome/free-solid-svg-icons": {
+			"version": "5.15.4",
+			"resolved": "https://registry.nlark.com/@fortawesome/free-solid-svg-icons/download/@fortawesome/free-solid-svg-icons-5.15.4.tgz",
+			"integrity": "sha1-Kmjz/D3doS5SZFZUFCueTo+7bMU=",
+			"requires": {
+				"@fortawesome/fontawesome-common-types": "^0.2.36"
+			}
+		},
+		"@popperjs/core": {
+			"version": "2.9.3",
+			"resolved": "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.9.3.tgz?cache=0&sync_timestamp=1628004507787&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.9.3.tgz",
+			"integrity": "sha1-i2jaHr1/xgOZnPbr7jSkiZoUuI4="
+		},
+		"@types/createjs-lib": {
+			"version": "0.0.29",
+			"resolved": "https://registry.nlark.com/@types/createjs-lib/download/@types/createjs-lib-0.0.29.tgz",
+			"integrity": "sha1-+uguO6hgZmOxkOeJzsfZxyj8Qdc=",
+			"dev": true
+		},
+		"@types/estree": {
+			"version": "0.0.48",
+			"resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.48.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.48.tgz",
+			"integrity": "sha1-GNyAkbKF35DbLyWqfZBs/DlLf3Q=",
+			"dev": true
+		},
+		"@types/howler": {
+			"version": "2.2.4",
+			"resolved": "https://registry.nlark.com/@types/howler/download/@types/howler-2.2.4.tgz",
+			"integrity": "sha1-+30CvDNdIMwUGYfxbBlbGvd9dWo=",
+			"dev": true
+		},
+		"@types/marked": {
+			"version": "3.0.1",
+			"resolved": "https://registry.nlark.com/@types/marked/download/@types/marked-3.0.1.tgz?cache=0&sync_timestamp=1631543903416&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fmarked%2Fdownload%2F%40types%2Fmarked-3.0.1.tgz",
+			"integrity": "sha1-dIZF7N4w2M94YcPhw2DG9pQXL5I=",
+			"dev": true
+		},
+		"@types/mockjs": {
+			"version": "1.0.4",
+			"resolved": "https://registry.nlark.com/@types/mockjs/download/@types/mockjs-1.0.4.tgz",
+			"integrity": "sha1-5waVHV4ztPCku3Ox+LEk4m8IHeA=",
+			"dev": true
+		},
+		"@types/node": {
+			"version": "16.11.6",
+			"resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.6.tgz?cache=0&sync_timestamp=1635213425908&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.11.6.tgz",
+			"integrity": "sha1-a+96KgrWhM9ukPz+Mc7KvZzgo64=",
+			"dev": true
+		},
+		"@types/preloadjs": {
+			"version": "0.6.32",
+			"resolved": "https://registry.nlark.com/@types/preloadjs/download/@types/preloadjs-0.6.32.tgz",
+			"integrity": "sha1-Es/3x/kuODingNQ4zknIzsmBgw0=",
+			"dev": true,
+			"requires": {
+				"@types/createjs-lib": "*"
+			}
+		},
+		"@types/soundjs": {
+			"version": "0.6.28",
+			"resolved": "https://registry.nlark.com/@types/soundjs/download/@types/soundjs-0.6.28.tgz",
+			"integrity": "sha1-z3SOkN149mw/VPq0FTb2CkLIwAI=",
+			"dev": true,
+			"requires": {
+				"@types/createjs-lib": "*",
+				"@types/preloadjs": "*"
+			}
+		},
+		"@vant/icons": {
+			"version": "1.7.0",
+			"resolved": "https://registry.nlark.com/@vant/icons/download/@vant/icons-1.7.0.tgz?cache=0&sync_timestamp=1626958553251&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vant%2Ficons%2Fdownload%2F%40vant%2Ficons-1.7.0.tgz",
+			"integrity": "sha1-AtQnUyqBQsNdsVnanDZP5okMOsk="
+		},
+		"@vant/lazyload": {
+			"version": "1.2.0",
+			"resolved": "https://registry.nlark.com/@vant/lazyload/download/@vant/lazyload-1.2.0.tgz",
+			"integrity": "sha1-Yul3m9eEStj3HCyiv4UuYUfHqG0="
+		},
+		"@vant/popperjs": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npm.taobao.org/@vant/popperjs/download/@vant/popperjs-1.1.0.tgz",
+			"integrity": "sha1-tO3uW7+m+xhwWYbjE9T9XxeUKg8=",
+			"requires": {
+				"@popperjs/core": "^2.9.2"
+			}
+		},
+		"@vant/use": {
+			"version": "1.2.2",
+			"resolved": "https://registry.nlark.com/@vant/use/download/@vant/use-1.2.2.tgz",
+			"integrity": "sha1-ABzRZbgxya+bBSKS7Q2cuK9OBoI="
+		},
+		"@vitejs/plugin-vue": {
+			"version": "1.3.0",
+			"resolved": "https://registry.nlark.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-1.3.0.tgz?cache=0&sync_timestamp=1627380102462&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vitejs%2Fplugin-vue%2Fdownload%2F%40vitejs%2Fplugin-vue-1.3.0.tgz",
+			"integrity": "sha1-/ImmybWlFXkWr+zk7cj7Vb8bvEI=",
+			"dev": true
+		},
+		"@volar/code-gen": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/@volar/code-gen/download/@volar/code-gen-0.26.11.tgz",
+			"integrity": "sha1-Q6qzVqMGW+zvScBxyy7HwusOQa8=",
+			"dev": true,
+			"requires": {
+				"@volar/shared": "^0.26.11",
+				"@volar/source-map": "^0.26.11"
+			}
+		},
+		"@volar/html2pug": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/@volar/html2pug/download/@volar/html2pug-0.26.11.tgz",
+			"integrity": "sha1-NAVmh2gqOreCHPFQqvpmyDkujp0=",
+			"dev": true,
+			"requires": {
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0",
+				"htmlparser2": "^6.1.0",
+				"pug": "^3.0.2"
+			}
+		},
+		"@volar/shared": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/@volar/shared/download/@volar/shared-0.26.11.tgz",
+			"integrity": "sha1-puVzRPAVEtjPK1rZ6W0k1D4DpEc=",
+			"dev": true,
+			"requires": {
+				"upath": "^2.0.1",
+				"vscode-jsonrpc": "^8.0.0-next.1"
+			}
+		},
+		"@volar/source-map": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/@volar/source-map/download/@volar/source-map-0.26.11.tgz",
+			"integrity": "sha1-zncl6Xvy93Q6tndbcDH0KYkZmAo=",
+			"dev": true,
+			"requires": {
+				"@volar/shared": "^0.26.11"
+			}
+		},
+		"@volar/transforms": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/@volar/transforms/download/@volar/transforms-0.26.11.tgz",
+			"integrity": "sha1-XfL/9LKg50HCcKs4hdE5rXTGtpk=",
+			"dev": true,
+			"requires": {
+				"@volar/shared": "^0.26.11"
+			}
+		},
+		"@vue/compiler-core": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.1.5.tgz",
+			"integrity": "sha1-KY+QW2Bl1tgf9jdW+Yxgh2s5PIc=",
+			"requires": {
+				"@babel/parser": "^7.12.0",
+				"@babel/types": "^7.12.0",
+				"@vue/shared": "3.1.5",
+				"estree-walker": "^2.0.1",
+				"source-map": "^0.6.1"
+			}
+		},
+		"@vue/compiler-dom": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.1.5.tgz",
+			"integrity": "sha1-y7lwIMYqX6o/vCqXkWvZgEGsmFY=",
+			"requires": {
+				"@vue/compiler-core": "3.1.5",
+				"@vue/shared": "3.1.5"
+			}
+		},
+		"@vue/compiler-sfc": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.1.5.tgz",
+			"integrity": "sha1-5h5U86ljsPSo5SP7uGMjkNxSsNY=",
+			"dev": true,
+			"requires": {
+				"@babel/parser": "^7.13.9",
+				"@babel/types": "^7.13.0",
+				"@types/estree": "^0.0.48",
+				"@vue/compiler-core": "3.1.5",
+				"@vue/compiler-dom": "3.1.5",
+				"@vue/compiler-ssr": "3.1.5",
+				"@vue/shared": "3.1.5",
+				"consolidate": "^0.16.0",
+				"estree-walker": "^2.0.1",
+				"hash-sum": "^2.0.0",
+				"lru-cache": "^5.1.1",
+				"magic-string": "^0.25.7",
+				"merge-source-map": "^1.1.0",
+				"postcss": "^8.1.10",
+				"postcss-modules": "^4.0.0",
+				"postcss-selector-parser": "^6.0.4",
+				"source-map": "^0.6.1"
+			}
+		},
+		"@vue/compiler-ssr": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.1.5.tgz",
+			"integrity": "sha1-8GhlJ3QpMlah5TCEvtSKZ2gt+dI=",
+			"dev": true,
+			"requires": {
+				"@vue/compiler-dom": "3.1.5",
+				"@vue/shared": "3.1.5"
+			}
+		},
+		"@vue/devtools-api": {
+			"version": "6.0.0-beta.15",
+			"resolved": "https://registry.nlark.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fdevtools-api%2Fdownload%2F%40vue%2Fdevtools-api-6.0.0-beta.15.tgz",
+			"integrity": "sha1-rXyzhOBi8WW8+cg3MhJb/7wq2D0="
+		},
+		"@vue/reactivity": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.1.5.tgz",
+			"integrity": "sha1-2+xNlVf3yPJcJjXbHiOninKeuZE=",
+			"requires": {
+				"@vue/shared": "3.1.5"
+			}
+		},
+		"@vue/runtime-core": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.1.5.tgz",
+			"integrity": "sha1-pUW38UYJKSnLXoM+hUORUPF6yHs=",
+			"requires": {
+				"@vue/reactivity": "3.1.5",
+				"@vue/shared": "3.1.5"
+			}
+		},
+		"@vue/runtime-dom": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.1.5.tgz",
+			"integrity": "sha1-T6KJR9QIqjaPoX6g7cG+ua8UcqE=",
+			"requires": {
+				"@vue/runtime-core": "3.1.5",
+				"@vue/shared": "3.1.5",
+				"csstype": "^2.6.8"
+			}
+		},
+		"@vue/shared": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.1.5.tgz",
+			"integrity": "sha1-dO46rZldCjmWpruVM9TSgFFO3gM="
+		},
+		"acorn": {
+			"version": "7.4.1",
+			"resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
+			"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
+			"dev": true
+		},
+		"anymatch": {
+			"version": "3.1.2",
+			"resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz",
+			"integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
+			"dev": true,
+			"requires": {
+				"normalize-path": "^3.0.0",
+				"picomatch": "^2.0.4"
+			}
+		},
+		"asap": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
+			"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+			"dev": true
+		},
+		"assert-never": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npm.taobao.org/assert-never/download/assert-never-1.2.1.tgz",
+			"integrity": "sha1-EfDjY78UYgX7CBk7XHuQ9NHPRP4=",
+			"dev": true
+		},
+		"axios": {
+			"version": "0.21.4",
+			"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+			"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+			"requires": {
+				"follow-redirects": "^1.14.0"
+			}
+		},
+		"babel-walk": {
+			"version": "3.0.0-canary-5",
+			"resolved": "https://registry.npm.taobao.org/babel-walk/download/babel-walk-3.0.0-canary-5.tgz",
+			"integrity": "sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=",
+			"dev": true,
+			"requires": {
+				"@babel/types": "^7.9.6"
+			}
+		},
+		"big.js": {
+			"version": "5.2.2",
+			"resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz",
+			"integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
+			"dev": true
+		},
+		"binary-extensions": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299308660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz",
+			"integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
+			"dev": true
+		},
+		"bluebird": {
+			"version": "3.7.2",
+			"resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
+			"integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=",
+			"dev": true
+		},
+		"braces": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+			"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+			"dev": true,
+			"requires": {
+				"fill-range": "^7.0.1"
+			}
+		},
+		"call-bind": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz",
+			"integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
+			"dev": true,
+			"requires": {
+				"function-bind": "^1.1.1",
+				"get-intrinsic": "^1.0.2"
+			}
+		},
+		"character-parser": {
+			"version": "2.2.0",
+			"resolved": "https://registry.nlark.com/character-parser/download/character-parser-2.2.0.tgz",
+			"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
+			"dev": true,
+			"requires": {
+				"is-regex": "^1.0.3"
+			}
+		},
+		"chokidar": {
+			"version": "3.5.2",
+			"resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz",
+			"integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
+			"dev": true,
+			"requires": {
+				"anymatch": "~3.1.2",
+				"braces": "~3.0.2",
+				"fsevents": "~2.3.2",
+				"glob-parent": "~5.1.2",
+				"is-binary-path": "~2.1.0",
+				"is-glob": "~4.0.1",
+				"normalize-path": "~3.0.0",
+				"readdirp": "~3.6.0"
+			}
+		},
+		"colorette": {
+			"version": "1.2.2",
+			"resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259623635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz",
+			"integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=",
+			"dev": true
+		},
+		"commander": {
+			"version": "8.1.0",
+			"resolved": "https://registry.nlark.com/commander/download/commander-8.1.0.tgz?cache=0&sync_timestamp=1627358254258&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-8.1.0.tgz",
+			"integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I="
+		},
+		"consolidate": {
+			"version": "0.16.0",
+			"resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.16.0.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.16.0.tgz",
+			"integrity": "sha1-oRhkdokw8vGUMWYKZZBmaPX73BY=",
+			"dev": true,
+			"requires": {
+				"bluebird": "^3.7.2"
+			}
+		},
+		"constantinople": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-4.0.1.tgz",
+			"integrity": "sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=",
+			"dev": true,
+			"requires": {
+				"@babel/parser": "^7.6.0",
+				"@babel/types": "^7.6.1"
+			}
+		},
+		"cookie-storage": {
+			"version": "6.1.0",
+			"resolved": "https://registry.nlark.com/cookie-storage/download/cookie-storage-6.1.0.tgz",
+			"integrity": "sha1-KRsvZi2WG+RPmZYmWTQhy/zyN5A="
+		},
+		"copy-text-to-clipboard": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npm.taobao.org/copy-text-to-clipboard/download/copy-text-to-clipboard-3.0.1.tgz",
+			"integrity": "sha1-jL+PkOCkfxLkokdDc2Jl0Ve85pw="
+		},
+		"core-js": {
+			"version": "3.16.1",
+			"resolved": "https://registry.nlark.com/core-js/download/core-js-3.16.1.tgz",
+			"integrity": "sha1-9Ehc5cnzxqfLGPqASI4I02IJckk="
+		},
+		"cssesc": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz",
+			"integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=",
+			"dev": true
+		},
+		"csstype": {
+			"version": "2.6.17",
+			"resolved": "https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz",
+			"integrity": "sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4="
+		},
+		"dayjs": {
+			"version": "1.10.7",
+			"resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz",
+			"integrity": "sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg="
+		},
+		"deepmerge": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz",
+			"integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU="
+		},
+		"doctypes": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz",
+			"integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
+			"dev": true
+		},
+		"dom-serializer": {
+			"version": "1.3.2",
+			"resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz",
+			"integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=",
+			"dev": true,
+			"requires": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			}
+		},
+		"domelementtype": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz",
+			"integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+			"dev": true
+		},
+		"domhandler": {
+			"version": "4.2.0",
+			"resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.0.tgz",
+			"integrity": "sha1-+XaKXwNL5gqJonwuTQ9066DYsFk=",
+			"dev": true,
+			"requires": {
+				"domelementtype": "^2.2.0"
+			}
+		},
+		"domutils": {
+			"version": "2.7.0",
+			"resolved": "https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.7.0.tgz",
+			"integrity": "sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI=",
+			"dev": true,
+			"requires": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			}
+		},
+		"emmet": {
+			"version": "2.3.4",
+			"resolved": "https://registry.nlark.com/emmet/download/emmet-2.3.4.tgz",
+			"integrity": "sha1-W6DXpVaaaMdpffqJDHcuTzF50SM=",
+			"dev": true,
+			"requires": {
+				"@emmetio/abbreviation": "^2.2.2",
+				"@emmetio/css-abbreviation": "^2.1.4"
+			}
+		},
+		"emojis-list": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
+			"integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
+			"dev": true
+		},
+		"entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1611535711703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.2.0.tgz",
+			"integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+			"dev": true
+		},
+		"esbuild": {
+			"version": "0.12.17",
+			"resolved": "https://registry.nlark.com/esbuild/download/esbuild-0.12.17.tgz",
+			"integrity": "sha1-WBb5BcKQXeDrvGWIYN97W0ivvNM=",
+			"dev": true
+		},
+		"estree-walker": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz",
+			"integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw="
+		},
+		"fill-range": {
+			"version": "7.0.1",
+			"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
+			"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
+			"dev": true,
+			"requires": {
+				"to-regex-range": "^5.0.1"
+			}
+		},
+		"follow-redirects": {
+			"version": "1.14.6",
+			"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz",
+			"integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A=="
+		},
+		"fsevents": {
+			"version": "2.3.2",
+			"resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz",
+			"integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
+			"dev": true,
+			"optional": true
+		},
+		"function-bind": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
+			"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
+			"dev": true
+		},
+		"generic-names": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npm.taobao.org/generic-names/download/generic-names-2.0.1.tgz?cache=0&sync_timestamp=1603542764418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgeneric-names%2Fdownload%2Fgeneric-names-2.0.1.tgz",
+			"integrity": "sha1-+KN46tLMqno08DF7BVVIMq5BuHI=",
+			"dev": true,
+			"requires": {
+				"loader-utils": "^1.1.0"
+			}
+		},
+		"get-intrinsic": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz",
+			"integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=",
+			"dev": true,
+			"requires": {
+				"function-bind": "^1.1.1",
+				"has": "^1.0.3",
+				"has-symbols": "^1.0.1"
+			}
+		},
+		"glob-parent": {
+			"version": "5.1.2",
+			"resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1626760165717&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+			"integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
+			"dev": true,
+			"requires": {
+				"is-glob": "^4.0.1"
+			}
+		},
+		"has": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
+			"integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
+			"dev": true,
+			"requires": {
+				"function-bind": "^1.1.1"
+			}
+		},
+		"has-symbols": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443557459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz",
+			"integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
+			"dev": true
+		},
+		"hash-sum": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz",
+			"integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=",
+			"dev": true
+		},
+		"howler": {
+			"version": "2.2.3",
+			"resolved": "https://registry.nlark.com/howler/download/howler-2.2.3.tgz",
+			"integrity": "sha1-ou/5sItYZ5jnou4XpgKpDfKHFdo="
+		},
+		"htmlparser2": {
+			"version": "6.1.0",
+			"resolved": "https://registry.nlark.com/htmlparser2/download/htmlparser2-6.1.0.tgz",
+			"integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=",
+			"dev": true,
+			"requires": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.0.0",
+				"domutils": "^2.5.2",
+				"entities": "^2.0.0"
+			}
+		},
+		"icss-replace-symbols": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz",
+			"integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+			"dev": true
+		},
+		"icss-utils": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-5.1.0.tgz?cache=0&sync_timestamp=1605801291394&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-5.1.0.tgz",
+			"integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=",
+			"dev": true
+		},
+		"is-binary-path": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
+			"integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
+			"dev": true,
+			"requires": {
+				"binary-extensions": "^2.0.0"
+			}
+		},
+		"is-core-module": {
+			"version": "2.5.0",
+			"resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.5.0.tgz",
+			"integrity": "sha1-91SENhfHC/0pt72HMnQAzaXBhJE=",
+			"dev": true,
+			"requires": {
+				"has": "^1.0.3"
+			}
+		},
+		"is-expression": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-4.0.0.tgz",
+			"integrity": "sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=",
+			"dev": true,
+			"requires": {
+				"acorn": "^7.1.1",
+				"object-assign": "^4.1.1"
+			}
+		},
+		"is-extglob": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
+			"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+			"dev": true
+		},
+		"is-glob": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
+			"integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
+			"dev": true,
+			"requires": {
+				"is-extglob": "^2.1.1"
+			}
+		},
+		"is-number": {
+			"version": "7.0.0",
+			"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
+			"integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
+			"dev": true
+		},
+		"is-promise": {
+			"version": "2.2.2",
+			"resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz",
+			"integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=",
+			"dev": true
+		},
+		"is-regex": {
+			"version": "1.1.3",
+			"resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.3.tgz?cache=0&sync_timestamp=1620452285370&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.3.tgz",
+			"integrity": "sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=",
+			"dev": true,
+			"requires": {
+				"call-bind": "^1.0.2",
+				"has-symbols": "^1.0.2"
+			}
+		},
+		"js-stringify": {
+			"version": "1.0.2",
+			"resolved": "https://registry.nlark.com/js-stringify/download/js-stringify-1.0.2.tgz",
+			"integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=",
+			"dev": true
+		},
+		"json5": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1612146215945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz",
+			"integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+			"dev": true,
+			"requires": {
+				"minimist": "^1.2.0"
+			}
+		},
+		"jsonc-parser": {
+			"version": "3.0.0",
+			"resolved": "https://registry.nlark.com/jsonc-parser/download/jsonc-parser-3.0.0.tgz",
+			"integrity": "sha1-q914VwHH5+rKip7IzwcMpRp0WiI=",
+			"dev": true
+		},
+		"jstransformer": {
+			"version": "1.0.0",
+			"resolved": "https://registry.nlark.com/jstransformer/download/jstransformer-1.0.0.tgz",
+			"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
+			"dev": true,
+			"requires": {
+				"is-promise": "^2.0.0",
+				"promise": "^7.0.1"
+			}
+		},
+		"loader-utils": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
+			"integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+			"dev": true,
+			"requires": {
+				"big.js": "^5.2.2",
+				"emojis-list": "^3.0.0",
+				"json5": "^1.0.1"
+			}
+		},
+		"lodash.camelcase": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz",
+			"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+			"dev": true
+		},
+		"lru-cache": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1599054167787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz",
+			"integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
+			"dev": true,
+			"requires": {
+				"yallist": "^3.0.2"
+			}
+		},
+		"magic-string": {
+			"version": "0.25.7",
+			"resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz",
+			"integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=",
+			"dev": true,
+			"requires": {
+				"sourcemap-codec": "^1.4.4"
+			}
+		},
+		"marked": {
+			"version": "3.0.4",
+			"resolved": "https://registry.nlark.com/marked/download/marked-3.0.4.tgz?cache=0&sync_timestamp=1631641917711&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmarked%2Fdownload%2Fmarked-3.0.4.tgz",
+			"integrity": "sha1-uKFTnl4Fxuqek/FcC60dVM6JBAY="
+		},
+		"merge-source-map": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz",
+			"integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=",
+			"dev": true,
+			"requires": {
+				"source-map": "^0.6.1"
+			}
+		},
+		"minimist": {
+			"version": "1.2.5",
+			"resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz",
+			"integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=",
+			"dev": true
+		},
+		"mockjs": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npm.taobao.org/mockjs/download/mockjs-1.1.0.tgz",
+			"integrity": "sha1-5qDDeOkZBtuv8gkRzAJzs8fXWwY=",
+			"requires": {
+				"commander": "*"
+			}
+		},
+		"mutation-observer": {
+			"version": "1.0.3",
+			"resolved": "https://registry.nlark.com/mutation-observer/download/mutation-observer-1.0.3.tgz",
+			"integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
+		},
+		"nanoid": {
+			"version": "3.1.23",
+			"resolved": "https://registry.nlark.com/nanoid/download/nanoid-3.1.23.tgz?cache=0&sync_timestamp=1620673983269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.23.tgz",
+			"integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=",
+			"dev": true
+		},
+		"normalize-path": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
+			"integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
+			"dev": true
+		},
+		"object-assign": {
+			"version": "4.1.1",
+			"resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
+			"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+			"dev": true
+		},
+		"path-parse": {
+			"version": "1.0.7",
+			"resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz",
+			"integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=",
+			"dev": true
+		},
+		"picomatch": {
+			"version": "2.3.0",
+			"resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz",
+			"integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
+			"dev": true
+		},
+		"postcss": {
+			"version": "8.3.6",
+			"resolved": "https://registry.nlark.com/postcss/download/postcss-8.3.6.tgz?cache=0&sync_timestamp=1626882933935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-8.3.6.tgz",
+			"integrity": "sha1-JzDddql5afN/U7mmCWGXvjEcxOo=",
+			"dev": true,
+			"requires": {
+				"colorette": "^1.2.2",
+				"nanoid": "^3.1.23",
+				"source-map-js": "^0.6.2"
+			}
+		},
+		"postcss-modules": {
+			"version": "4.2.2",
+			"resolved": "https://registry.nlark.com/postcss-modules/download/postcss-modules-4.2.2.tgz?cache=0&sync_timestamp=1627039460598&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-modules%2Fdownload%2Fpostcss-modules-4.2.2.tgz",
+			"integrity": "sha1-Xnd3xaiWTqF2kZ2QsuVO+JEyHOU=",
+			"dev": true,
+			"requires": {
+				"generic-names": "^2.0.1",
+				"icss-replace-symbols": "^1.1.0",
+				"lodash.camelcase": "^4.3.0",
+				"postcss-modules-extract-imports": "^3.0.0",
+				"postcss-modules-local-by-default": "^4.0.0",
+				"postcss-modules-scope": "^3.0.0",
+				"postcss-modules-values": "^4.0.0",
+				"string-hash": "^1.1.1"
+			}
+		},
+		"postcss-modules-extract-imports": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-3.0.0.tgz",
+			"integrity": "sha1-zaHwR8CugMl9vijD52pDuIAldB0=",
+			"dev": true
+		},
+		"postcss-modules-local-by-default": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz",
+			"integrity": "sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=",
+			"dev": true,
+			"requires": {
+				"icss-utils": "^5.0.0",
+				"postcss-selector-parser": "^6.0.2",
+				"postcss-value-parser": "^4.1.0"
+			}
+		},
+		"postcss-modules-scope": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-3.0.0.tgz",
+			"integrity": "sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=",
+			"dev": true,
+			"requires": {
+				"postcss-selector-parser": "^6.0.4"
+			}
+		},
+		"postcss-modules-values": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-4.0.0.tgz",
+			"integrity": "sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=",
+			"dev": true,
+			"requires": {
+				"icss-utils": "^5.0.0"
+			}
+		},
+		"postcss-pxtorem": {
+			"version": "6.0.0",
+			"resolved": "https://registry.nlark.com/postcss-pxtorem/download/postcss-pxtorem-6.0.0.tgz",
+			"integrity": "sha1-8iik0F2Kc/BkLquulQ4rGYNjZtc=",
+			"dev": true
+		},
+		"postcss-selector-parser": {
+			"version": "6.0.6",
+			"resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz",
+			"integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=",
+			"dev": true,
+			"requires": {
+				"cssesc": "^3.0.0",
+				"util-deprecate": "^1.0.2"
+			}
+		},
+		"postcss-value-parser": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
+			"integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
+			"dev": true
+		},
+		"promise": {
+			"version": "7.3.1",
+			"resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz",
+			"integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
+			"dev": true,
+			"requires": {
+				"asap": "~2.0.3"
+			}
+		},
+		"pug": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npm.taobao.org/pug/download/pug-3.0.2.tgz",
+			"integrity": "sha1-81xxBzQ0VOQ7wnrg/3bHMbeOpTU=",
+			"dev": true,
+			"requires": {
+				"pug-code-gen": "^3.0.2",
+				"pug-filters": "^4.0.0",
+				"pug-lexer": "^5.0.1",
+				"pug-linker": "^4.0.0",
+				"pug-load": "^3.0.0",
+				"pug-parser": "^6.0.0",
+				"pug-runtime": "^3.0.1",
+				"pug-strip-comments": "^2.0.0"
+			}
+		},
+		"pug-attrs": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-3.0.0.tgz",
+			"integrity": "sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=",
+			"dev": true,
+			"requires": {
+				"constantinople": "^4.0.1",
+				"js-stringify": "^1.0.2",
+				"pug-runtime": "^3.0.0"
+			}
+		},
+		"pug-code-gen": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-3.0.2.tgz",
+			"integrity": "sha1-rRkPSUMTO/GGtguA3kgxAOEy4s4=",
+			"dev": true,
+			"requires": {
+				"constantinople": "^4.0.1",
+				"doctypes": "^1.1.0",
+				"js-stringify": "^1.0.2",
+				"pug-attrs": "^3.0.0",
+				"pug-error": "^2.0.0",
+				"pug-runtime": "^3.0.0",
+				"void-elements": "^3.1.0",
+				"with": "^7.0.0"
+			}
+		},
+		"pug-error": {
+			"version": "2.0.0",
+			"resolved": "https://registry.nlark.com/pug-error/download/pug-error-2.0.0.tgz",
+			"integrity": "sha1-XGIXPLCcNN4qLOBPF7it/sdNjKU=",
+			"dev": true
+		},
+		"pug-filters": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-4.0.0.tgz",
+			"integrity": "sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=",
+			"dev": true,
+			"requires": {
+				"constantinople": "^4.0.1",
+				"jstransformer": "1.0.0",
+				"pug-error": "^2.0.0",
+				"pug-walk": "^2.0.0",
+				"resolve": "^1.15.1"
+			}
+		},
+		"pug-lexer": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-5.0.1.tgz",
+			"integrity": "sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=",
+			"dev": true,
+			"requires": {
+				"character-parser": "^2.2.0",
+				"is-expression": "^4.0.0",
+				"pug-error": "^2.0.0"
+			}
+		},
+		"pug-linker": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-4.0.0.tgz",
+			"integrity": "sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=",
+			"dev": true,
+			"requires": {
+				"pug-error": "^2.0.0",
+				"pug-walk": "^2.0.0"
+			}
+		},
+		"pug-load": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-3.0.0.tgz",
+			"integrity": "sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=",
+			"dev": true,
+			"requires": {
+				"object-assign": "^4.1.1",
+				"pug-walk": "^2.0.0"
+			}
+		},
+		"pug-parser": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-6.0.0.tgz",
+			"integrity": "sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=",
+			"dev": true,
+			"requires": {
+				"pug-error": "^2.0.0",
+				"token-stream": "1.0.0"
+			}
+		},
+		"pug-runtime": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-3.0.1.tgz",
+			"integrity": "sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=",
+			"dev": true
+		},
+		"pug-strip-comments": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-2.0.0.tgz",
+			"integrity": "sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=",
+			"dev": true,
+			"requires": {
+				"pug-error": "^2.0.0"
+			}
+		},
+		"pug-walk": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-2.0.0.tgz",
+			"integrity": "sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=",
+			"dev": true
+		},
+		"readdirp": {
+			"version": "3.6.0",
+			"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz",
+			"integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
+			"dev": true,
+			"requires": {
+				"picomatch": "^2.2.1"
+			}
+		},
+		"request-light": {
+			"version": "0.5.4",
+			"resolved": "https://registry.nlark.com/request-light/download/request-light-0.5.4.tgz",
+			"integrity": "sha1-SXqYxtiuSVNkF6Xi1/ODuTTz44w=",
+			"dev": true
+		},
+		"resolve": {
+			"version": "1.20.0",
+			"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz",
+			"integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
+			"dev": true,
+			"requires": {
+				"is-core-module": "^2.2.0",
+				"path-parse": "^1.0.6"
+			}
+		},
+		"rollup": {
+			"version": "2.55.1",
+			"resolved": "https://registry.nlark.com/rollup/download/rollup-2.55.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frollup%2Fdownload%2Frollup-2.55.1.tgz",
+			"integrity": "sha1-ZqREZI4vtgPY4ynnemHGCKZRD9o=",
+			"dev": true,
+			"requires": {
+				"fsevents": "~2.3.2"
+			}
+		},
+		"sass": {
+			"version": "1.37.5",
+			"resolved": "https://registry.nlark.com/sass/download/sass-1.37.5.tgz",
+			"integrity": "sha1-9oODUffMgUxPz+HZog4Mq70eezw=",
+			"dev": true,
+			"requires": {
+				"chokidar": ">=3.0.0 <4.0.0"
+			}
+		},
+		"scopex": {
+			"version": "4.3.3",
+			"resolved": "https://registry.npmmirror.com/scopex/download/scopex-4.3.3.tgz",
+			"integrity": "sha512-vd0o+mkMC8xdESr4nxxYoNUUWWBjTi5lRTOjY9ZbPG5RFlNQPTxZmv3dtADfn7b9GT++XgtRfc1Fxf2G1K6XUQ=="
+		},
+		"shvl": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npm.taobao.org/shvl/download/shvl-2.0.3.tgz",
+			"integrity": "sha1-60vTdkT1aEu6H8UsMBDJb7Xmr9E="
+		},
+		"soundjs": {
+			"version": "1.0.1",
+			"resolved": "https://registry.nlark.com/soundjs/download/soundjs-1.0.1.tgz",
+			"integrity": "sha1-mZcFQtKNDfKh69BhrnXJYamMgYA="
+		},
+		"source-map": {
+			"version": "0.6.1",
+			"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+			"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
+		},
+		"source-map-js": {
+			"version": "0.6.2",
+			"resolved": "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz",
+			"integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=",
+			"dev": true
+		},
+		"sourcemap-codec": {
+			"version": "1.4.8",
+			"resolved": "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz",
+			"integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=",
+			"dev": true
+		},
+		"string-hash": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npm.taobao.org/string-hash/download/string-hash-1.1.3.tgz",
+			"integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
+			"dev": true
+		},
+		"svelte-fa": {
+			"version": "2.2.1",
+			"resolved": "https://registry.nlark.com/svelte-fa/download/svelte-fa-2.2.1.tgz?cache=0&sync_timestamp=1626420512203&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsvelte-fa%2Fdownload%2Fsvelte-fa-2.2.1.tgz",
+			"integrity": "sha1-dDtWYs5ZRwW8jxbZnYTr+iPzJt0="
+		},
+		"to-fast-properties": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz",
+			"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+		},
+		"to-regex-range": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
+			"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
+			"dev": true,
+			"requires": {
+				"is-number": "^7.0.0"
+			}
+		},
+		"token-stream": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-1.0.0.tgz",
+			"integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=",
+			"dev": true
+		},
+		"ts-fns": {
+			"version": "10.6.3",
+			"resolved": "https://registry.npmmirror.com/ts-fns/download/ts-fns-10.6.3.tgz",
+			"integrity": "sha512-68L8OVKDS6VMhvf+PSxBf1ss6TDYsA53SS3FcKI+xZdokHEK3sTcMmxGCJQQIAoQlBqE2waa3mzxTTAziYibNA=="
+		},
+		"typescript": {
+			"version": "4.3.5",
+			"resolved": "https://registry.nlark.com/typescript/download/typescript-4.3.5.tgz?cache=0&sync_timestamp=1628061383668&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftypescript%2Fdownload%2Ftypescript-4.3.5.tgz",
+			"integrity": "sha1-TRw3zBbok5c8RaBohrcRMjTxGfQ=",
+			"dev": true
+		},
+		"tyshemo": {
+			"version": "11.20.3",
+			"resolved": "https://registry.npmmirror.com/tyshemo/download/tyshemo-11.20.3.tgz",
+			"integrity": "sha512-AQrukZXlZMmqjoPEOYCRpasD9KkoWBjXk2SyM/Cxx+fxRVNIAFXajLKP4HvIoJXiXK+jdyvtqIrzVxZmP+kPDw==",
+			"requires": {
+				"scopex": "^4.3.2",
+				"ts-fns": "^10.6.2"
+			}
+		},
+		"upath": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npm.taobao.org/upath/download/upath-2.0.1.tgz",
+			"integrity": "sha1-UMc96mjW9rmQ9R0nnOYIFmXWGos=",
+			"dev": true
+		},
+		"util-deprecate": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
+			"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+			"dev": true
+		},
+		"vant": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/vant/download/vant-3.1.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvant%2Fdownload%2Fvant-3.1.5.tgz",
+			"integrity": "sha1-PoC1uKhDHQwiIRKf6onEzCGm8rI=",
+			"requires": {
+				"@vant/icons": "^1.7.0",
+				"@vant/lazyload": "^1.2.0",
+				"@vant/popperjs": "^1.1.0",
+				"@vant/use": "^1.2.2"
+			}
+		},
+		"vconsole": {
+			"version": "3.9.1",
+			"resolved": "https://registry.nlark.com/vconsole/download/vconsole-3.9.1.tgz",
+			"integrity": "sha1-QcnTEeFKGmhWahvlJDqGZ/TDRdM=",
+			"requires": {
+				"@fortawesome/free-solid-svg-icons": "^5.15.3",
+				"cookie-storage": "^6.1.0",
+				"copy-text-to-clipboard": "^3.0.1",
+				"core-js": "^3.11.0",
+				"mutation-observer": "^1.0.3",
+				"svelte-fa": "^2.2.1"
+			}
+		},
+		"vite": {
+			"version": "2.4.4",
+			"resolved": "https://registry.nlark.com/vite/download/vite-2.4.4.tgz",
+			"integrity": "sha1-jEAqB61F8Wj261Qovq048+Q2Pkc=",
+			"dev": true,
+			"requires": {
+				"esbuild": "^0.12.8",
+				"fsevents": "~2.3.2",
+				"postcss": "^8.3.6",
+				"resolve": "^1.20.0",
+				"rollup": "^2.38.5"
+			}
+		},
+		"void-elements": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-3.1.0.tgz",
+			"integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=",
+			"dev": true
+		},
+		"vscode-css-languageservice": {
+			"version": "5.1.4",
+			"resolved": "https://registry.nlark.com/vscode-css-languageservice/download/vscode-css-languageservice-5.1.4.tgz",
+			"integrity": "sha1-B+TGPxw7sG5vPzKcMrSQ0gpgG6s=",
+			"dev": true,
+			"requires": {
+				"vscode-languageserver-textdocument": "^1.0.1",
+				"vscode-languageserver-types": "^3.16.0",
+				"vscode-nls": "^5.0.0",
+				"vscode-uri": "^3.0.2"
+			}
+		},
+		"vscode-emmet-helper": {
+			"version": "2.6.4",
+			"resolved": "https://registry.nlark.com/vscode-emmet-helper/download/vscode-emmet-helper-2.6.4.tgz",
+			"integrity": "sha1-vqR/F2Sbuia0EvPR+sGKruQ+uiU=",
+			"dev": true,
+			"requires": {
+				"emmet": "^2.3.0",
+				"jsonc-parser": "^2.3.0",
+				"vscode-languageserver-textdocument": "^1.0.1",
+				"vscode-languageserver-types": "^3.15.1",
+				"vscode-nls": "^5.0.0",
+				"vscode-uri": "^2.1.2"
+			},
+			"dependencies": {
+				"jsonc-parser": {
+					"version": "2.3.1",
+					"resolved": "https://registry.nlark.com/jsonc-parser/download/jsonc-parser-2.3.1.tgz",
+					"integrity": "sha1-WVSRULEz8u+sykj+nOHsBlmvI0I=",
+					"dev": true
+				},
+				"vscode-uri": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-2.1.2.tgz",
+					"integrity": "sha1-yNQN6T61evMfPHFd1lDiyiwJbxw=",
+					"dev": true
+				}
+			}
+		},
+		"vscode-html-languageservice": {
+			"version": "4.0.7",
+			"resolved": "https://registry.nlark.com/vscode-html-languageservice/download/vscode-html-languageservice-4.0.7.tgz",
+			"integrity": "sha1-lPLtIsghll+CgiLRO1qlQbNY2ZI=",
+			"dev": true,
+			"requires": {
+				"vscode-languageserver-textdocument": "^1.0.1",
+				"vscode-languageserver-types": "^3.16.0",
+				"vscode-nls": "^5.0.0",
+				"vscode-uri": "^3.0.2"
+			}
+		},
+		"vscode-json-languageservice": {
+			"version": "4.1.6",
+			"resolved": "https://registry.nlark.com/vscode-json-languageservice/download/vscode-json-languageservice-4.1.6.tgz",
+			"integrity": "sha1-QnXo2vHLqAJzwxjzP796Lt4wcFM=",
+			"dev": true,
+			"requires": {
+				"jsonc-parser": "^3.0.0",
+				"vscode-languageserver-textdocument": "^1.0.1",
+				"vscode-languageserver-types": "^3.16.0",
+				"vscode-nls": "^5.0.0",
+				"vscode-uri": "^3.0.2"
+			}
+		},
+		"vscode-jsonrpc": {
+			"version": "8.0.0-next.1",
+			"resolved": "https://registry.nlark.com/vscode-jsonrpc/download/vscode-jsonrpc-8.0.0-next.1.tgz",
+			"integrity": "sha1-GWRoiphR+GkAxV4piTmhV7LiJK0=",
+			"dev": true
+		},
+		"vscode-languageserver": {
+			"version": "8.0.0-next.1",
+			"resolved": "https://registry.nlark.com/vscode-languageserver/download/vscode-languageserver-8.0.0-next.1.tgz",
+			"integrity": "sha1-tYRFhaz4Yqe9qrItKMnaDxUn15A=",
+			"dev": true,
+			"requires": {
+				"vscode-languageserver-protocol": "3.17.0-next.7"
+			}
+		},
+		"vscode-languageserver-protocol": {
+			"version": "3.17.0-next.7",
+			"resolved": "https://registry.nlark.com/vscode-languageserver-protocol/download/vscode-languageserver-protocol-3.17.0-next.7.tgz",
+			"integrity": "sha1-IVDtuGtqUcMlADtDelIvDc/GBLQ=",
+			"dev": true,
+			"requires": {
+				"vscode-jsonrpc": "8.0.0-next.1",
+				"vscode-languageserver-types": "3.17.0-next.3"
+			},
+			"dependencies": {
+				"vscode-languageserver-types": {
+					"version": "3.17.0-next.3",
+					"resolved": "https://registry.nlark.com/vscode-languageserver-types/download/vscode-languageserver-types-3.17.0-next.3.tgz?cache=0&sync_timestamp=1625834451077&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.17.0-next.3.tgz",
+					"integrity": "sha1-4fQxHgjqMZPoESYVS2o0L8HD26M=",
+					"dev": true
+				}
+			}
+		},
+		"vscode-languageserver-textdocument": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npm.taobao.org/vscode-languageserver-textdocument/download/vscode-languageserver-textdocument-1.0.1.tgz",
+			"integrity": "sha1-F4Fo6H761hcbNyrdHeo09T5dMw8=",
+			"dev": true
+		},
+		"vscode-languageserver-types": {
+			"version": "3.16.0",
+			"resolved": "https://registry.nlark.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&sync_timestamp=1625834451077&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
+			"integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
+			"dev": true
+		},
+		"vscode-nls": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npm.taobao.org/vscode-nls/download/vscode-nls-5.0.0.tgz",
+			"integrity": "sha1-mfDaC9nqfNpE5WWnTFSx8rwleEA=",
+			"dev": true
+		},
+		"vscode-pug-languageservice": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/vscode-pug-languageservice/download/vscode-pug-languageservice-0.26.11.tgz",
+			"integrity": "sha1-vUVAbVnBaY2oVfJjvB6f4PQ54nM=",
+			"dev": true,
+			"requires": {
+				"@volar/code-gen": "^0.26.11",
+				"@volar/shared": "^0.26.11",
+				"@volar/source-map": "^0.26.11",
+				"@volar/transforms": "^0.26.11",
+				"pug-lexer": "^5.0.1",
+				"pug-parser": "^6.0.0",
+				"vscode-languageserver": "^8.0.0-next.1"
+			}
+		},
+		"vscode-typescript-languageservice": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/vscode-typescript-languageservice/download/vscode-typescript-languageservice-0.26.11.tgz",
+			"integrity": "sha1-ziyxWtTdp3lzHixHf0c95EQn/uc=",
+			"dev": true,
+			"requires": {
+				"@volar/shared": "^0.26.11",
+				"upath": "^2.0.1",
+				"vscode-languageserver": "^8.0.0-next.1",
+				"vscode-languageserver-textdocument": "^1.0.1"
+			}
+		},
+		"vscode-uri": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-3.0.2.tgz",
+			"integrity": "sha1-7P0dBmy470w6II3s26uajCPQVdA=",
+			"dev": true
+		},
+		"vscode-vue-languageservice": {
+			"version": "0.26.11",
+			"resolved": "https://registry.nlark.com/vscode-vue-languageservice/download/vscode-vue-languageservice-0.26.11.tgz",
+			"integrity": "sha1-uUAHMne+F5srcGUsJOtU9XL5dh0=",
+			"dev": true,
+			"requires": {
+				"@volar/code-gen": "^0.26.11",
+				"@volar/html2pug": "^0.26.11",
+				"@volar/shared": "^0.26.11",
+				"@volar/source-map": "^0.26.11",
+				"@volar/transforms": "^0.26.11",
+				"@vue/compiler-dom": "^3.2.0-beta.5",
+				"@vue/compiler-sfc": "^3.2.0-beta.5",
+				"@vue/reactivity": "^3.2.0-beta.5",
+				"@vue/shared": "^3.2.0-beta.5",
+				"jsonc-parser": "^3.0.0",
+				"request-light": "^0.5.4",
+				"upath": "^2.0.1",
+				"vscode-css-languageservice": "^5.1.4",
+				"vscode-emmet-helper": "^2.6.4",
+				"vscode-html-languageservice": "^4.0.7",
+				"vscode-json-languageservice": "^4.1.5",
+				"vscode-languageserver": "^8.0.0-next.1",
+				"vscode-languageserver-textdocument": "^1.0.1",
+				"vscode-pug-languageservice": "^0.26.11",
+				"vscode-typescript-languageservice": "^0.26.11"
+			},
+			"dependencies": {
+				"@vue/compiler-core": {
+					"version": "3.2.0-beta.7",
+					"resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.2.0-beta.7.tgz",
+					"integrity": "sha1-u1UemeIHw+aUvWsoPLWioqrn9SE=",
+					"dev": true,
+					"requires": {
+						"@babel/parser": "^7.12.0",
+						"@babel/types": "^7.12.0",
+						"@vue/shared": "3.2.0-beta.7",
+						"estree-walker": "^2.0.1",
+						"source-map": "^0.6.1"
+					},
+					"dependencies": {
+						"@vue/shared": {
+							"version": "3.2.0-beta.7",
+							"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
+							"integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
+							"dev": true
+						}
+					}
+				},
+				"@vue/compiler-dom": {
+					"version": "3.2.0-beta.7",
+					"resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.0-beta.7.tgz",
+					"integrity": "sha1-IJl5cga193PpSYAd0dajvXPRdM4=",
+					"dev": true,
+					"requires": {
+						"@vue/compiler-core": "3.2.0-beta.7",
+						"@vue/shared": "3.2.0-beta.7"
+					},
+					"dependencies": {
+						"@vue/shared": {
+							"version": "3.2.0-beta.7",
+							"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
+							"integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
+							"dev": true
+						}
+					}
+				},
+				"@vue/compiler-sfc": {
+					"version": "3.2.0-beta.7",
+					"resolved": "https://registry.nlark.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.0-beta.7.tgz",
+					"integrity": "sha1-bwSis341ivzXeRto767/0L8Zjd0=",
+					"dev": true,
+					"requires": {
+						"@babel/parser": "^7.13.9",
+						"@babel/types": "^7.13.0",
+						"@types/estree": "^0.0.48",
+						"@vue/compiler-core": "3.2.0-beta.7",
+						"@vue/compiler-dom": "3.2.0-beta.7",
+						"@vue/compiler-ssr": "3.2.0-beta.7",
+						"@vue/shared": "3.2.0-beta.7",
+						"consolidate": "^0.16.0",
+						"estree-walker": "^2.0.1",
+						"hash-sum": "^2.0.0",
+						"lru-cache": "^5.1.1",
+						"magic-string": "^0.25.7",
+						"merge-source-map": "^1.1.0",
+						"postcss": "^8.1.10",
+						"postcss-modules": "^4.0.0",
+						"postcss-selector-parser": "^6.0.4",
+						"source-map": "^0.6.1"
+					},
+					"dependencies": {
+						"@vue/shared": {
+							"version": "3.2.0-beta.7",
+							"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
+							"integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
+							"dev": true
+						}
+					}
+				},
+				"@vue/compiler-ssr": {
+					"version": "3.2.0-beta.7",
+					"resolved": "https://registry.nlark.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.0-beta.7.tgz",
+					"integrity": "sha1-Gkar+LzTGWwsmtFJBjwAxGGfHiQ=",
+					"dev": true,
+					"requires": {
+						"@vue/compiler-dom": "3.2.0-beta.7",
+						"@vue/shared": "3.2.0-beta.7"
+					},
+					"dependencies": {
+						"@vue/shared": {
+							"version": "3.2.0-beta.7",
+							"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
+							"integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
+							"dev": true
+						}
+					}
+				},
+				"@vue/reactivity": {
+					"version": "3.2.0-beta.7",
+					"resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.2.0-beta.7.tgz",
+					"integrity": "sha1-BskWMV87dK5kAEDdt1ly2ilGf4Q=",
+					"dev": true,
+					"requires": {
+						"@vue/shared": "3.2.0-beta.7"
+					},
+					"dependencies": {
+						"@vue/shared": {
+							"version": "3.2.0-beta.7",
+							"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.7.tgz",
+							"integrity": "sha1-C853YnHzKeZYL82gDWHUvPHGC1I=",
+							"dev": true
+						}
+					}
+				},
+				"@vue/shared": {
+					"version": "3.2.0-beta.5",
+					"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.0-beta.5.tgz",
+					"integrity": "sha1-wnUrrFFHa/2cYFD0pel8KOtm8no=",
+					"dev": true
+				}
+			}
+		},
+		"vue": {
+			"version": "3.1.5",
+			"resolved": "https://registry.nlark.com/vue/download/vue-3.1.5.tgz",
+			"integrity": "sha1-EoebEdBoXuRHjIhpVReZYwpS+f4=",
+			"requires": {
+				"@vue/compiler-dom": "3.1.5",
+				"@vue/runtime-dom": "3.1.5",
+				"@vue/shared": "3.1.5"
+			}
+		},
+		"vue-router": {
+			"version": "4.0.10",
+			"resolved": "https://registry.nlark.com/vue-router/download/vue-router-4.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-4.0.10.tgz",
+			"integrity": "sha1-7I/aAylJsqMdMnMXD483bobrUqw=",
+			"requires": {
+				"@vue/devtools-api": "^6.0.0-beta.14"
+			}
+		},
+		"vue-tsc": {
+			"version": "0.2.2",
+			"resolved": "https://registry.nlark.com/vue-tsc/download/vue-tsc-0.2.2.tgz?cache=0&sync_timestamp=1626837750289&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-tsc%2Fdownload%2Fvue-tsc-0.2.2.tgz",
+			"integrity": "sha1-5/1eXHib6zGECtJggs/Iu2NW5zM=",
+			"dev": true,
+			"requires": {
+				"vscode-vue-languageservice": "^0.26.6"
+			}
+		},
+		"vuex": {
+			"version": "4.0.2",
+			"resolved": "https://registry.nlark.com/vuex/download/vuex-4.0.2.tgz?cache=0&sync_timestamp=1623945218026&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuex%2Fdownload%2Fvuex-4.0.2.tgz",
+			"integrity": "sha1-+Jbb1b8qDpY/AMZ+m2EN50nMrMk=",
+			"requires": {
+				"@vue/devtools-api": "^6.0.0-beta.11"
+			}
+		},
+		"vuex-persistedstate": {
+			"version": "4.1.0",
+			"resolved": "https://registry.nlark.com/vuex-persistedstate/download/vuex-persistedstate-4.1.0.tgz?cache=0&sync_timestamp=1632225657120&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuex-persistedstate%2Fdownload%2Fvuex-persistedstate-4.1.0.tgz",
+			"integrity": "sha1-EnFl+F9bRTT7MXCl06i+mBG9KlM=",
+			"requires": {
+				"deepmerge": "^4.2.2",
+				"shvl": "^2.0.3"
+			}
+		},
+		"weixin-js-sdk": {
+			"version": "1.6.0",
+			"resolved": "https://registry.npm.taobao.org/weixin-js-sdk/download/weixin-js-sdk-1.6.0.tgz",
+			"integrity": "sha1-/1BITYEYzhII8RJIz0ocCDFXdRQ="
+		},
+		"weixin-js-sdk-ts": {
+			"version": "1.6.1",
+			"resolved": "https://registry.nlark.com/weixin-js-sdk-ts/download/weixin-js-sdk-ts-1.6.1.tgz",
+			"integrity": "sha1-7lh0s5ZiQrWrS+H9WvyQ7FUzU80=",
+			"requires": {
+				"weixin-js-sdk": "^1.6.0"
+			}
+		},
+		"with": {
+			"version": "7.0.2",
+			"resolved": "https://registry.npm.taobao.org/with/download/with-7.0.2.tgz",
+			"integrity": "sha1-zO461ULSVTinp6gKrSErmChJW6w=",
+			"dev": true,
+			"requires": {
+				"@babel/parser": "^7.9.6",
+				"@babel/types": "^7.9.6",
+				"assert-never": "^1.2.1",
+				"babel-walk": "3.0.0-canary-5"
+			}
+		},
+		"yallist": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz",
+			"integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=",
+			"dev": true
+		}
+	}
 }

+ 78 - 0
src/hooks/exercise/audio.ts

@@ -0,0 +1,78 @@
+import { Howl } from 'howler';
+import { ref, watch, ComputedRef } from 'vue';
+
+/**语音设置 */
+export function useAudioSet(currentSubject: ComputedRef<any>) {
+    const aotuPlayFlag = ref(false);
+
+    let sound: Howl;
+    /**
+     * 播放音频
+     * @param audioUrl
+     */
+    const audioPlay = (audioUrl: string | string[]) => {
+        audioPause();
+        sound = new Howl({
+            src: audioUrl,
+        });
+        sound.once('load', function () {
+            sound.play();
+        });
+        if (typeof audioUrl === 'object') {
+            sound.once('end', () => {
+                sound = new Howl({
+                    src: audioUrl[1],
+                });
+                sound.once('load', function () {
+                    sound.play();
+                });
+            });
+        }
+    };
+
+    /**
+     * 读题
+     */
+    const subjectAudioPlay = (type: '读题' | '读官方解释' | '读技巧解释' | '读题+答案') => {
+        switch (type) {
+            case '读题':
+                audioPlay(currentSubject.value.issuemp3);
+                break;
+            case '读官方解释':
+                audioPlay(currentSubject.value.explainjsmp3);
+                break;
+            case '读技巧解释':
+                audioPlay(currentSubject.value.explainMp3);
+                break;
+            case '读题+答案':
+                audioPlay([currentSubject.value.issuemp3, currentSubject.value.answermp3]);
+                break;
+            default:
+                break;
+        }
+    };
+
+    /**
+     * 停止播放
+     */
+    const audioPause = () => {
+        sound && sound.pause();
+    };
+
+    //音频模块end
+    const aotuPlaySet = () => {
+        aotuPlayFlag.value = !aotuPlayFlag.value;
+        aotuPlayFlag.value ? subjectAudioPlay('读题') : audioPause();
+    };
+
+    //自动读题
+    watch(currentSubject, () => {
+        if (aotuPlayFlag.value) subjectAudioPlay('读题'); //自动读题
+    });
+
+    return {
+        aotuPlayFlag,
+        aotuPlaySet,
+        subjectAudioPlay,
+    };
+}

+ 51 - 0
src/hooks/exercise/index.ts

@@ -0,0 +1,51 @@
+import { ref } from 'vue';
+export { useTopicMode } from './mode';
+export { useAudioSet } from './audio';
+import { useSubjectList } from './list';
+import { useSubjectCheck } from './wrong';
+
+export const useSubjectShowLogic = () => {
+	const { subjectList, subjectTotal, loadNewSubject, currentSubject, currentSubjectIndex } = useSubjectList(); //获取题目列表
+
+	/**下一题数据请求锁 */
+	const nextBtnState = ref(true);
+
+	/** 展示下一题 */
+	const nextSubject = async () => {
+		if (currentSubjectIndex.value < subjectList.value.length - 1) {
+			currentSubjectIndex.value++;
+		} else {
+			if (nextBtnState.value) {
+				//禁用下一题按钮
+				nextBtnState.value = false;
+				//题目数量不足加载数据
+				await loadNewSubject();
+				//启用按钮
+				nextBtnState.value = true;
+			}
+		}
+	};
+
+	/** 展示上一题  */
+	const lastSubject = () => {
+		currentSubjectIndex.value > 0 ?? currentSubjectIndex.value--;
+		// if (currentSubjectIndex.value > 0) {
+		// 	currentSubjectIndex.value--;
+		// }
+	};
+
+	const { trueNum, falseNum, isJumpNext, userAnswerChange, addCurrentQuestion } = useSubjectCheck(currentSubject, nextSubject);
+
+	return {
+		currentSubject,
+		currentSubjectIndex,
+		subjectTotal,
+		nextSubject,
+		lastSubject,
+		trueNum,
+		falseNum,
+		isJumpNext,
+		userAnswerChange,
+		addCurrentQuestion,
+	};
+};

+ 44 - 0
src/hooks/exercise/list.ts

@@ -0,0 +1,44 @@
+import { ref, onBeforeMount, computed } from 'vue';
+import { useRoute } from 'vue-router';
+import * as API from '@/api';
+
+/**获取题目列表 */
+export const useSubjectList = () => {
+	const subjectList = ref<any[]>([]); //题目列表
+	const subjectTotal = ref(0); //题目总数
+	const pageNum = ref(1); //当前请求页码
+	const pageSize = ref(100); //当前请求每页数据
+	const query = useRoute().query; //路由query参数
+	onBeforeMount(async () => {
+		const res = await API.getTopicList({
+			...query,
+			pageNum: pageNum.value,
+			pageSize: pageSize.value,
+		});
+		subjectList.value = res.list;
+		subjectTotal.value = res.total;
+	});
+	//加载下一页数据
+	const loadNewSubject = async () => {
+		if (subjectList.value.length == subjectTotal.value) return;
+		pageNum.value++;
+		const res = await API.getTopicList({
+			...query,
+			pageNum: pageNum.value,
+			pageSize: pageSize.value,
+		});
+		subjectList.value = subjectList.value.concat(res.list);
+	};
+	const currentSubjectIndex = ref(0); //当前题目下标
+	//当前题目内容
+	const currentSubject = computed(() => {
+		return subjectList.value[currentSubjectIndex.value];
+	});
+	return {
+		subjectList,
+		subjectTotal,
+		loadNewSubject,
+		currentSubject,
+		currentSubjectIndex,
+	};
+};

+ 41 - 0
src/hooks/exercise/mode.ts

@@ -0,0 +1,41 @@
+import { ref, computed } from "vue";
+
+/**答题模式切换 */
+export const useTopicMode = () => {
+  const answerTypeList = ref([
+    { name: "顺序练习" },
+    { name: "随机练习" },
+    { name: "背题模式" },
+  ]);
+  const currentType = ref(0);
+  const typeParams = computed(() => {
+    switch (currentType.value) {
+      case 0:
+        return {
+          order: true, //顺序练习
+          answerShow: false, //背题模式
+        };
+      case 1:
+        return {
+          order: false, //顺序练习
+          answerShow: false, //背题模式
+        };
+      case 2:
+        return {
+          order: true, //顺序练习
+          answerShow: true, //背题模式
+        };
+      default:
+        return {
+          order: true, //顺序练习
+          answerShow: false, //背题模式
+        };
+    }
+  });
+
+  return {
+    answerTypeList,
+    currentType,
+    typeParams,
+  };
+};

+ 92 - 0
src/hooks/exercise/wrong.ts

@@ -0,0 +1,92 @@
+import { ref, watch, onBeforeMount, Ref, computed, nextTick, ComputedRef } from 'vue';
+import { CollectionModel } from '@/dataModel/collection';
+import { RouterBus } from '@/hooks';
+import { Notify } from 'vant';
+
+/**错题与收藏 */
+export const useSubjectCheck = (currentSubject: ComputedRef<any>, nextSubject: () => Promise<void>) => {
+    const trueNum = ref(0); //正确数量
+    const falseNum = ref(0); //错误数量
+    const isJumpNext = ref(false); //答对跳转下一题
+    const wrongModel = new CollectionModel('wrong');
+    const collectionModel = new CollectionModel('collection');
+    const {
+        route: { query },
+    } = new RouterBus();
+
+    /** 批量新增收藏 */
+    const addsCullection = async (ids: number[]) => {
+        const questionList = ids.map((id) => {
+            return {
+                carType: query.vehicle as CollectionAndWrongType.CarType,
+                km: query.name as CollectionAndWrongType.Km,
+                questionId: id,
+            };
+        });
+        collectionModel.adds(questionList);
+    };
+
+    /** 收藏当前题目 */
+    const addCurrentQuestion = async () => {
+        const res = await collectionModel.adds([
+            {
+                carType: query.vehicle as CollectionAndWrongType.CarType,
+                km: query.name as CollectionAndWrongType.Km,
+                questionId: currentSubject.value.id,
+            },
+        ]);
+        if (res.data == 1) {
+            currentSubject.value.isCollection = true;
+            Notify({ type: 'success', message: '收藏成功' });
+        } else {
+            currentSubject.value.isCollection = true;
+            Notify({ type: 'primary', message: res.msg });
+        }
+    };
+    /**
+     * 选择答案后进行校验
+     */
+    const userAnswerChange = () => {
+        currentSubject.value.optsBack = currentSubject.value.opts.map((val: String) => {
+            let status;
+            if (currentSubject.value.answer.includes(val)) {
+                status = 1;
+            } else {
+                status = 0;
+            }
+            if (currentSubject.value.userAnswer.includes(val)) {
+                status += 2;
+            }
+            return { opt: val, status };
+        });
+        if (JSON.stringify(currentSubject.value.answer) == JSON.stringify(currentSubject.value.userAnswer)) {
+            //答案正确
+            currentSubject.value.isTrue = true;
+            trueNum.value++;
+            if (isJumpNext.value) {
+                nextTick(() => {
+                    nextSubject();
+                });
+            }
+        } else {
+            //答案错误
+            wrongModel.adds([
+                {
+                    carType: query.vehicle as CollectionAndWrongType.CarType,
+                    km: query.name as CollectionAndWrongType.Km,
+                    questionId: currentSubject.value.id,
+                },
+            ]);
+            currentSubject.value.isTrue = false;
+            falseNum.value++;
+        }
+    };
+
+    return {
+        trueNum,
+        falseNum,
+        isJumpNext,
+        userAnswerChange,
+        addCurrentQuestion,
+    };
+};

+ 156 - 160
src/views/buyVip/index.vue

@@ -1,168 +1,164 @@
 <template>
-  <m-nav-bar title="开通会员" :transparent="true" />
-  <div class="buyvip-box">
-    <img class="top-img" :src="topImg" alt="头部背景" />
-    <div class="info-warn">您还未开通完整版系统,付费购买后享受更多功能</div>
-    <div class="item-box">
-      <van-cell class="cell-title" title="选择充值方式" />
-      <div class="radio-box">
-        <div
-          v-for="(item, index) in goodsList"
-          :class="{ select: index === goodsIndex }"
-          @click="goodsIndex = index"
-        >
-          <span>{{ item.dictLabel }}</span>
-          <span>¥{{ item.dictValue.split(",")[0] }}</span>
-          <span>原价{{ item.dictValue.split(",")[1] }}元</span>
-        </div>
-      </div>
-    </div>
-    <div class="item-box">
-      <van-cell class="cell-title" title="使用说明" />
-      <div class="readme">
-        <span>1. 有效期内拥有VIP权限.</span>
-        <span>2. 过期后可以使用免费用户的权限.</span>
-        <span>3. 可以续费.</span>
-      </div>
-    </div>
-    <div class="button-box">
-      <div class="button" @click="buy">立即开通</div>
-    </div>
-    <div style="height: 60px"></div>
-  </div>
+	<m-nav-bar title="开通会员" :transparent="true" />
+	<div class="buyvip-box">
+		<img class="top-img" :src="topImg" alt="头部背景" />
+		<div class="info-warn">您还未开通完整版系统,付费购买后享受更多功能</div>
+		<div class="item-box">
+			<van-cell class="cell-title" title="选择充值方式" />
+			<div class="radio-box">
+				<div v-for="(item, index) in goodsList" :class="{ select: index === goodsIndex }" @click="goodsIndex = index">
+					<span>{{ item.dictLabel }}</span>
+					<span>¥{{ item.dictValue.split(',')[0] }}</span>
+					<span>原价{{ item.dictValue.split(',')[1] }}元</span>
+				</div>
+			</div>
+		</div>
+		<div class="item-box">
+			<van-cell class="cell-title" title="使用说明" />
+			<div class="readme">
+				<span>1. 有效期内拥有VIP权限.</span>
+				<span>2. 过期后可以使用免费用户的权限.</span>
+				<span>3. 可以续费.</span>
+			</div>
+		</div>
+		<div class="button-box">
+			<div class="button" @click="buy">立即开通</div>
+		</div>
+		<div style="height: 60px"></div>
+	</div>
 </template>
 
 <script lang="ts" setup>
-import topImg from "./top-background.png";
-import { ref } from "vue";
-import { getVipPrice, prepareOrder } from "@/api";
-const goodsIndex = ref(0);
-const goodsList = ref<any[]>([]);
-getVipPrice().then((res) => {
-  goodsList.value = res.data;
-});
-const buy = () => {
-  prepareOrder(goodsList.value[goodsIndex.value].dictCode);
-};
+	import topImg from './top-background.png';
+	import { ref } from 'vue';
+	import { getVipPrice, prepareOrder } from '@/api';
+	const goodsIndex = ref(0);
+	const goodsList = ref<any[]>([]);
+	getVipPrice().then((res) => {
+		goodsList.value = res.data;
+	});
+	const buy = () => {
+		prepareOrder(goodsList.value[goodsIndex.value].dictCode);
+	};
 </script>
 
 <style scoped lang="scss">
-.buyvip-box {
-  width: 100%;
-  margin-top: -50px;
-  min-height: 100vh;
-  display: flex;
-  align-items: center;
-  flex-direction: column;
-  background: #ffdda6;
-  .top-img {
-    width: 100%;
-  }
-  .info-warn {
-    width: 345px;
-    height: 49px;
-    background: #ffffff;
-    border-radius: 10px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    font-size: 13px;
-    font-family: PingFang SC;
-    font-weight: 400;
-    color: #91540f;
-    margin-top: -70px;
-    margin-bottom: 10px;
-  }
-  .item-box {
-    width: 345px;
-    background: #ffffff;
-    border-radius: 10px;
-    padding: 15px;
-    margin-bottom: 10px;
-    .cell-title {
-      font-size: 16px;
-      font-family: PingFang SC;
-      font-weight: bold;
-      line-height: 20px;
-      color: #0a1a33;
-      margin-left: -10px;
-      margin-bottom: 15px;
-    }
-  }
-  .readme {
-    display: flex;
-    flex-direction: column;
-    font-size: 13px;
-    line-height: 20px;
-    span {
-      margin-bottom: 5px;
-    }
-  }
-  .radio-box {
-    display: flex;
-    justify-content: space-around;
-    align-items: center;
-    .select {
-      background: #fcf1de;
-    }
-    div {
-      width: 98px;
-      font-size: 20px;
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      justify-content: space-around;
-      background: #ffffff;
-      border: 1px solid #faca93;
-      height: 124px;
-      border-radius: 5px;
-      span {
-        font-family: PingFang SC;
-        &:nth-of-type(1) {
-          font-size: 13px;
-          font-weight: bold;
-          color: #91540f;
-        }
-        &:nth-of-type(2) {
-          font-size: 30px;
-          font-weight: bold;
-          color: #ff4d53;
-        }
-        &:nth-of-type(3) {
-          font-size: 11px;
-          font-weight: 400;
-          color: #8a9099;
-          text-decoration: line-through;
-        }
-      }
-    }
-  }
-  .button-box {
-    position: fixed;
-    background-color: #ffffff;
-    bottom: 0;
-    width: 375px;
-    height: 60px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    .button {
-      width: 152px;
-      height: 40px;
-      background: #faca93;
-      border-radius: 30px;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      font-size: 15px;
-      font-family: PingFang SC;
-      font-weight: 500;
-      color: #91540f;
-      letter-spacing: 0px;
-      &:active {
-        background-color: red;
-      }
-    }
-  }
-}
+	.buyvip-box {
+		width: 100%;
+		margin-top: -50px;
+		min-height: 100vh;
+		display: flex;
+		align-items: center;
+		flex-direction: column;
+		background: #ffdda6;
+		.top-img {
+			width: 100%;
+		}
+		.info-warn {
+			width: 345px;
+			height: 49px;
+			background: #ffffff;
+			border-radius: 10px;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			font-size: 13px;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #91540f;
+			margin-top: -70px;
+			margin-bottom: 10px;
+		}
+		.item-box {
+			width: 345px;
+			background: #ffffff;
+			border-radius: 10px;
+			padding: 15px;
+			margin-bottom: 10px;
+			.cell-title {
+				font-size: 16px;
+				font-family: PingFang SC;
+				font-weight: bold;
+				line-height: 20px;
+				color: #0a1a33;
+				margin-left: -10px;
+				margin-bottom: 15px;
+			}
+		}
+		.readme {
+			display: flex;
+			flex-direction: column;
+			font-size: 13px;
+			line-height: 20px;
+			span {
+				margin-bottom: 5px;
+			}
+		}
+		.radio-box {
+			display: flex;
+			justify-content: space-around;
+			align-items: center;
+			.select {
+				background: #fcf1de;
+			}
+			div {
+				width: 98px;
+				font-size: 20px;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: space-around;
+				background: #ffffff;
+				border: 1px solid #faca93;
+				height: 124px;
+				border-radius: 5px;
+				span {
+					font-family: PingFang SC;
+					&:nth-of-type(1) {
+						font-size: 13px;
+						font-weight: bold;
+						color: #91540f;
+					}
+					&:nth-of-type(2) {
+						font-size: 30px;
+						font-weight: bold;
+						color: #ff4d53;
+					}
+					&:nth-of-type(3) {
+						font-size: 11px;
+						font-weight: 400;
+						color: #8a9099;
+						text-decoration: line-through;
+					}
+				}
+			}
+		}
+		.button-box {
+			position: fixed;
+			background-color: #ffffff;
+			bottom: 0;
+			width: 375px;
+			height: 60px;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.button {
+				width: 152px;
+				height: 40px;
+				background: #faca93;
+				border-radius: 30px;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				font-size: 15px;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #91540f;
+				letter-spacing: 0px;
+				&:active {
+					background-color: red;
+				}
+			}
+		}
+	}
 </style>

+ 189 - 204
src/views/cashOut/index.vue

@@ -1,216 +1,201 @@
 <template>
-  <div class="header-back">
-    <m-nav-bar :transparent="true" title="提现页面" style="color: #ffffff" />
-    <div class="user-data">
-      <div class="left">
-        <m-user-avatar />
-        <div class="name">
-          <m-user-name />
-          <span
-            >可提现余额<span class="grade">{{ userInfo?.remainderPrice }}</span
-            >元</span
-          >
-          <span>已提现{{ userInfo?.extractPrice }}元</span>
-        </div>
-      </div>
-      <m-button
-        @click="fn"
-        class="continue"
-        width="90px"
-        height="30px"
-        text="我要提现"
-      />
-    </div>
-  </div>
-  <div class="summary content-box">
-    <form action="/" class="search">
-      <van-search
-        v-model="searchValue"
-        shape="round"
-        placeholder="请输入下级代理昵称"
-      />
-    </form>
-  </div>
-  <div class="test-scores content-box">
-    <table class="table">
-      <tr>
-        <th>头像</th>
-        <th>昵称</th>
-        <th>代理等级</th>
-        <!-- <th>分成比例</th> -->
-        <th>分成金额</th>
-      </tr>
-      <tr
-        v-for="(item, index) in otherUserInfoList.filter((item) =>
-          item.nickName.includes(searchValue)
-        )"
-        :key="index"
-      >
-        <td>
-          <van-image round width="50px" height="50px" :src="item.headImage" />
-        </td>
-        <td>{{ item.nickName }}</td>
-        <td>{{ item.hierarchy }}</td>
-        <!-- <td>{{ item.percentage }}</td> -->
-        <td>{{ item.profitPrice }}</td>
-      </tr>
-    </table>
-  </div>
-  <van-dialog v-model="show" title="我要提现" show-cancel-button>
-    <img src="https://img01.yzcdn.cn/vant/apple-3.jpg" />
-  </van-dialog>
+	<div class="header-back">
+		<m-nav-bar :transparent="true" title="提现页面" style="color: #ffffff" />
+		<div class="user-data">
+			<div class="left">
+				<m-user-avatar />
+				<div class="name">
+					<m-user-name />
+					<span
+						>可提现余额<span class="grade">{{ userInfo?.remainderPrice }}</span
+						>元</span
+					>
+					<span>已提现{{ userInfo?.extractPrice }}元</span>
+				</div>
+			</div>
+			<m-button @click="fn" class="continue" width="90px" height="30px" text="我要提现" />
+		</div>
+	</div>
+	<div class="summary content-box">
+		<form action="/" class="search">
+			<van-search v-model="searchValue" shape="round" placeholder="请输入下级代理昵称" />
+		</form>
+	</div>
+	<div class="test-scores content-box">
+		<table class="table">
+			<tr>
+				<th>头像</th>
+				<th>昵称</th>
+				<th>代理等级</th>
+				<!-- <th>分成比例</th> -->
+				<th>分成金额</th>
+			</tr>
+			<tr v-for="(item, index) in otherUserInfoList.filter((item) => item.nickName.includes(searchValue))" :key="index">
+				<td>
+					<van-image round width="50px" height="50px" :src="item.headImage" />
+				</td>
+				<td>{{ item.nickName }}</td>
+				<td>{{ item.hierarchy }}</td>
+				<!-- <td>{{ item.percentage }}</td> -->
+				<td>{{ item.profitPrice }}</td>
+			</tr>
+		</table>
+	</div>
+	<van-dialog v-model="show" title="我要提现" show-cancel-button>
+		<img src="https://img01.yzcdn.cn/vant/apple-3.jpg" />
+	</van-dialog>
 </template>
 
 <script lang="ts">
-import { CashOutModel } from "@/dataModel/cashOut";
-import { ref, onBeforeMount } from "vue";
-import { RouterBus } from "@/hooks";
-const cashOutModel = new CashOutModel();
-/** 获取下级用户列表 */
-const useOtherUserInfoList = () => {
-  const otherUserInfoList = ref<
-    {
-      profitPrice: string;
-      headImage: string;
-      nickName: string;
-      createTime: string;
-      hierarchy: string;
-      openid: string;
-      percentage: string;
-    }[]
-  >([]);
-  onBeforeMount(async () => {
-    const res = await cashOutModel.extensionIncomeList();
-    otherUserInfoList.value.push(...res.rows);
-  });
-  return {
-    otherUserInfoList,
-  };
-};
-/** 获取用户可提现信息 */
-const useUserInfo = () => {
-  const userInfo = ref<{
-    extractPrice: string;
-    remainderPrice: string;
-    totalPrice: string;
-    beneficiaryOpenid: string;
-    headImage: string;
-    nickName: string;
-  }>();
-  onBeforeMount(async () => {
-    const res = await cashOutModel.extensionIncomePrice();
-    userInfo.value = res;
-  });
-  return {
-    userInfo,
-  };
-};
+	import { CashOutModel } from '@/dataModel/cashOut';
+	import { ref, onBeforeMount } from 'vue';
+	import { RouterBus } from '@/hooks';
+	const cashOutModel = new CashOutModel();
+	/** 获取下级用户列表 */
+	const useOtherUserInfoList = () => {
+		const otherUserInfoList = ref<
+			{
+				profitPrice: string;
+				headImage: string;
+				nickName: string;
+				createTime: string;
+				hierarchy: string;
+				openid: string;
+				percentage: string;
+			}[]
+		>([]);
+		onBeforeMount(async () => {
+			const res = await cashOutModel.extensionIncomeList();
+			otherUserInfoList.value.push(...res.rows);
+		});
+		return {
+			otherUserInfoList,
+		};
+	};
+	/** 获取用户可提现信息 */
+	const useUserInfo = () => {
+		const userInfo = ref<{
+			extractPrice: string;
+			remainderPrice: string;
+			totalPrice: string;
+			beneficiaryOpenid: string;
+			headImage: string;
+			nickName: string;
+		}>();
+		onBeforeMount(async () => {
+			const res = await cashOutModel.extensionIncomePrice();
+			userInfo.value = res;
+		});
+		return {
+			userInfo,
+		};
+	};
 </script>
 
 <script lang="ts" setup>
-import { Dialog } from "vant";
-const { otherUserInfoList } = useOtherUserInfoList();
-const { userInfo } = useUserInfo();
-const searchValue = ref("");
-const { goMockTest } = new RouterBus();
+	import { Dialog } from 'vant';
+	const { otherUserInfoList } = useOtherUserInfoList();
+	const { userInfo } = useUserInfo();
+	const searchValue = ref('');
+	const { goMockTest } = new RouterBus();
 
-const show = ref(false);
-const fn = () => {
-  console.log(123);
-  Dialog({
-    title: "暂未开放",
-  });
-  show.value = true;
-};
+	const show = ref(false);
+	const fn = () => {
+		console.log(123);
+		Dialog({
+			title: '暂未开放',
+		});
+		show.value = true;
+	};
 </script>
 
 <style scoped lang="scss">
-.header-back {
-  width: 375px;
-  padding-bottom: 82px;
-  background: linear-gradient(180deg, #498ef5 0%, #4da8e6 100%);
-  border-radius: 0px 0px 82px 82px;
-  .user-data {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    padding: 19px 17px 24px;
-    .left {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      .name {
-        display: flex;
-        flex-direction: column;
-        font-size: 13px;
-        color: #ffffff;
-        justify-content: space-between;
-        margin-left: 6px;
-        .grade {
-          font-size: 24px;
-          padding: 4px;
-        }
-      }
-    }
-    .continue {
-      font-size: 13px;
-      font-family: PingFang SC;
-      font-weight: 400;
-      line-height: 19px;
-      color: #ffffff;
-      background: #01c18d;
-    }
-  }
-}
-.content-box {
-  width: 345px;
-  background: #ffffff;
-  box-shadow: 0px 0px 8px rgba(124, 129, 136, 0.2);
-  border-radius: 10px;
-  position: relative;
-  left: 50%;
-  transform: translateX(-50%);
-  top: -82px;
-  margin-top: 10px;
-}
-.summary {
-  display: flex;
-  justify-content: space-around;
-  box-sizing: border-box;
-  overflow: hidden;
-  .search {
-    width: 100%;
-  }
-}
-.test-scores {
-  font-size: 13px;
-  font-family: PingFang SC;
-  font-weight: 400;
-  line-height: 19px;
-  color: #0a1a33;
-  padding: 15px;
-  box-sizing: border-box;
-  .table {
-    width: 100%;
-    border-collapse: collapse;
-    font-size: 13px;
-    th {
-      padding: 5px;
-      color: #0a1a33;
-    }
-    td {
-      text-align: center;
-      padding: 5px;
-      color: #8a9099;
-    }
-    tr {
-      &:nth-of-type(n) {
-        background: #ffffff;
-      }
-      &:nth-of-type(2n) {
-        background: rgba(73, 142, 245, 0.15);
-      }
-    }
-  }
-}
+	.header-back {
+		width: 375px;
+		padding-bottom: 82px;
+		background: linear-gradient(180deg, #498ef5 0%, #4da8e6 100%);
+		border-radius: 0px 0px 82px 82px;
+		.user-data {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 19px 17px 24px;
+			.left {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				.name {
+					display: flex;
+					flex-direction: column;
+					font-size: 13px;
+					color: #ffffff;
+					justify-content: space-between;
+					margin-left: 6px;
+					.grade {
+						font-size: 24px;
+						padding: 4px;
+					}
+				}
+			}
+			.continue {
+				font-size: 13px;
+				font-family: PingFang SC;
+				font-weight: 400;
+				line-height: 19px;
+				color: #ffffff;
+				background: #01c18d;
+			}
+		}
+	}
+	.content-box {
+		width: 345px;
+		background: #ffffff;
+		box-shadow: 0px 0px 8px rgba(124, 129, 136, 0.2);
+		border-radius: 10px;
+		position: relative;
+		left: 50%;
+		transform: translateX(-50%);
+		top: -82px;
+		margin-top: 10px;
+	}
+	.summary {
+		display: flex;
+		justify-content: space-around;
+		box-sizing: border-box;
+		overflow: hidden;
+		.search {
+			width: 100%;
+		}
+	}
+	.test-scores {
+		font-size: 13px;
+		font-family: PingFang SC;
+		font-weight: 400;
+		line-height: 19px;
+		color: #0a1a33;
+		padding: 15px;
+		box-sizing: border-box;
+		.table {
+			width: 100%;
+			border-collapse: collapse;
+			font-size: 13px;
+			th {
+				padding: 5px;
+				color: #0a1a33;
+			}
+			td {
+				text-align: center;
+				padding: 5px;
+				color: #8a9099;
+			}
+			tr {
+				&:nth-of-type(n) {
+					background: #ffffff;
+				}
+				&:nth-of-type(2n) {
+					background: rgba(73, 142, 245, 0.15);
+				}
+			}
+		}
+	}
 </style>

+ 5 - 1
src/views/wrongReview/index.vue

@@ -280,7 +280,11 @@
 
 <script lang="ts" setup>
 import { computed, ref } from "vue";
-import { useTopicMode, useAudioSet, useSubjectShowLogic } from "./hooks";
+import {
+  useTopicMode,
+  useAudioSet,
+  useSubjectShowLogic,
+} from "@/hooks/exercise";
 import { RouterBus } from "@/hooks";
 const {
   router: { back },