lhl 1 year ago
commit
150c917465
66 changed files with 22263 additions and 0 deletions
  1. 21 0
      .gitignore
  2. 19 0
      README.md
  3. 5 0
      babel.config.js
  4. 12047 0
      package-lock.json
  5. 41 0
      package.json
  6. BIN
      public/favicon.ico
  7. BIN
      public/icon.png
  8. 19 0
      public/index.html
  9. 105 0
      src/App.vue
  10. 79 0
      src/assets/css/base.css
  11. 49 0
      src/assets/css/reset.css
  12. BIN
      src/assets/img/basebg.png
  13. BIN
      src/assets/img/icon_light.png
  14. BIN
      src/assets/img/img.jpg
  15. BIN
      src/assets/img/img1.jpg
  16. BIN
      src/assets/img/img2.jpg
  17. BIN
      src/assets/img/img3.jpg
  18. BIN
      src/assets/img/img4.jpg
  19. BIN
      src/assets/img/img5.jpg
  20. BIN
      src/assets/img/kf.png
  21. BIN
      src/assets/img/sx.png
  22. 139 0
      src/assets/js/admun.js
  23. 1356 0
      src/assets/js/cityData.js
  24. 34 0
      src/assets/js/tools.js
  25. 147 0
      src/components/navTop/navTop.vue
  26. 32 0
      src/components/pageBottom/PageBottom.vue
  27. 36 0
      src/components/pageTitle/PageTitle.vue
  28. 28 0
      src/components/topLogo/TopLogo.vue
  29. 52 0
      src/components/vueQrCode.vue
  30. 34 0
      src/main.js
  31. 135 0
      src/request/agent.js
  32. 97 0
      src/request/request.js
  33. 201 0
      src/request/user.js
  34. 291 0
      src/router.js
  35. 49 0
      src/store.js
  36. 27 0
      src/views/Address.vue
  37. 99 0
      src/views/Home.vue
  38. 296 0
      src/views/Login.vue
  39. 39 0
      src/views/Order.vue
  40. 27 0
      src/views/Settle.vue
  41. 104 0
      src/views/User.vue
  42. 172 0
      src/views/address/dlAddressList.vue
  43. 11 0
      src/views/home/abonementList.vue
  44. 1656 0
      src/views/home/addOrder.vue
  45. 11 0
      src/views/home/addressList.vue
  46. 11 0
      src/views/home/buyReg.vue
  47. 422 0
      src/views/home/dlstatistics.vue
  48. 11 0
      src/views/home/rechange.vue
  49. 8 0
      src/views/home/setAgent.vue
  50. 121 0
      src/views/home/setGa.vue
  51. 99 0
      src/views/home/setPas.vue
  52. 429 0
      src/views/home/statistics.vue
  53. 343 0
      src/views/home/taking.vue
  54. 206 0
      src/views/home/tokenList.vue
  55. 8 0
      src/views/home/transfer.vue
  56. 190 0
      src/views/order/dlOrderList.vue
  57. 474 0
      src/views/order/orderList.vue
  58. 242 0
      src/views/settle/settleOrder.vue
  59. 196 0
      src/views/user/money.vue
  60. 265 0
      src/views/user/rechangeList.vue
  61. 198 0
      src/views/user/regList.vue
  62. 732 0
      src/views/user/setUserinfo.vue
  63. 345 0
      src/views/user/takingList.vue
  64. 253 0
      src/views/user/tokenOrderList.vue
  65. 233 0
      src/views/user/transferList.vue
  66. 19 0
      vue.config.js

+ 21 - 0
.gitignore

@@ -0,0 +1,21 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?

+ 19 - 0
README.md

@@ -0,0 +1,19 @@
+# jzpc
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 5 - 0
babel.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/app'
+  ]
+}

+ 12047 - 0
package-lock.json

@@ -0,0 +1,12047 @@
+{
+  "name": "jzpc",
+  "version": "0.1.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@babel/code-frame": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz",
+      "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=",
+      "dev": true,
+      "requires": {
+        "@babel/highlight": "^7.12.13"
+      }
+    },
+    "@babel/compat-data": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.4.tgz",
+      "integrity": "sha1-RXIP4M7PP9QgGeHRLMPSf63JjVg=",
+      "dev": true
+    },
+    "@babel/core": {
+      "version": "7.14.3",
+      "resolved": "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.3.tgz",
+      "integrity": "sha1-U5XjBAXwd2Bn+9nPCITxW/t3Cjg=",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.12.13",
+        "@babel/generator": "^7.14.3",
+        "@babel/helper-compilation-targets": "^7.13.16",
+        "@babel/helper-module-transforms": "^7.14.2",
+        "@babel/helpers": "^7.14.0",
+        "@babel/parser": "^7.14.3",
+        "@babel/template": "^7.12.13",
+        "@babel/traverse": "^7.14.2",
+        "@babel/types": "^7.14.2",
+        "convert-source-map": "^1.7.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.2",
+        "json5": "^2.1.2",
+        "semver": "^6.3.0",
+        "source-map": "^0.5.0"
+      }
+    },
+    "@babel/generator": {
+      "version": "7.14.3",
+      "resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.14.3.tgz",
+      "integrity": "sha1-DCZS2R973at8zMa6gVfk9A3O25E=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.14.2",
+        "jsesc": "^2.5.1",
+        "source-map": "^0.5.0"
+      }
+    },
+    "@babel/helper-annotate-as-pure": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.13.tgz",
+      "integrity": "sha1-D1jobfxLs7H819uAZXDhd9Q5tqs=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/helper-builder-binary-assignment-operator-visitor": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz",
+      "integrity": "sha1-a8IDYciLCnTQUTemXKyNPL9vYfw=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-explode-assignable-expression": "^7.12.13",
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/helper-compilation-targets": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.14.4.tgz",
+      "integrity": "sha1-M+vQ/8NCSAUe4giTUKkpqwLypRY=",
+      "dev": true,
+      "requires": {
+        "@babel/compat-data": "^7.14.4",
+        "@babel/helper-validator-option": "^7.12.17",
+        "browserslist": "^4.16.6",
+        "semver": "^6.3.0"
+      }
+    },
+    "@babel/helper-create-class-features-plugin": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.14.4.tgz?cache=0&sync_timestamp=1622221310707&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.14.4.tgz",
+      "integrity": "sha1-q/iI2DakQavueDx1IpJ5dIcF3EI=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.12.13",
+        "@babel/helper-function-name": "^7.14.2",
+        "@babel/helper-member-expression-to-functions": "^7.13.12",
+        "@babel/helper-optimise-call-expression": "^7.12.13",
+        "@babel/helper-replace-supers": "^7.14.4",
+        "@babel/helper-split-export-declaration": "^7.12.13"
+      }
+    },
+    "@babel/helper-create-regexp-features-plugin": {
+      "version": "7.14.3",
+      "resolved": "https://registry.nlark.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.14.3.tgz",
+      "integrity": "sha1-FJqm14wBbjGMQ+JAmgrpwTaoZog=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.12.13",
+        "regexpu-core": "^4.7.1"
+      }
+    },
+    "@babel/helper-define-polyfill-provider": {
+      "version": "0.2.3",
+      "resolved": "https://registry.nlark.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.3.tgz",
+      "integrity": "sha1-BSXt7FCUZTooJojTTYRuTHXpwLY=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-compilation-targets": "^7.13.0",
+        "@babel/helper-module-imports": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/traverse": "^7.13.0",
+        "debug": "^4.1.1",
+        "lodash.debounce": "^4.0.8",
+        "resolve": "^1.14.2",
+        "semver": "^6.1.2"
+      }
+    },
+    "@babel/helper-explode-assignable-expression": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.13.0.tgz?cache=0&sync_timestamp=1614034820129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.13.0.tgz",
+      "integrity": "sha1-F7XFn/Rz2flW9A71cM86dsoSZX8=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.13.0"
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.14.2.tgz",
+      "integrity": "sha1-OXaItZB2C273cltfCGDIJCfrqsI=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.12.13",
+        "@babel/template": "^7.12.13",
+        "@babel/types": "^7.14.2"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314686467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz",
+      "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/helper-hoist-variables": {
+      "version": "7.13.16",
+      "resolved": "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.13.16.tgz?cache=0&sync_timestamp=1618917701165&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.13.16.tgz",
+      "integrity": "sha1-GxZRJJ6UtR+PDTNDmEPjPjl3WzA=",
+      "dev": true,
+      "requires": {
+        "@babel/traverse": "^7.13.15",
+        "@babel/types": "^7.13.16"
+      }
+    },
+    "@babel/helper-member-expression-to-functions": {
+      "version": "7.13.12",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.13.12.tgz",
+      "integrity": "sha1-3+No8m1CagcpnY1lE4IXaCFubXI=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.13.12"
+      }
+    },
+    "@babel/helper-module-imports": {
+      "version": "7.13.12",
+      "resolved": "https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.13.12.tgz?cache=0&sync_timestamp=1618847040895&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.13.12.tgz",
+      "integrity": "sha1-xqNppvNiHLJdoBQHhoTakZa2GXc=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.13.12"
+      }
+    },
+    "@babel/helper-module-transforms": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.14.2.tgz",
+      "integrity": "sha1-rBzDDuR7lF4+DE2xL6DFOJUJ3+U=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.13.12",
+        "@babel/helper-replace-supers": "^7.13.12",
+        "@babel/helper-simple-access": "^7.13.12",
+        "@babel/helper-split-export-declaration": "^7.12.13",
+        "@babel/helper-validator-identifier": "^7.14.0",
+        "@babel/template": "^7.12.13",
+        "@babel/traverse": "^7.14.2",
+        "@babel/types": "^7.14.2"
+      }
+    },
+    "@babel/helper-optimise-call-expression": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.13.tgz",
+      "integrity": "sha1-XALRcbTIYVsecWP4iMHIHDCiquo=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/helper-plugin-utils": {
+      "version": "7.13.0",
+      "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz",
+      "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=",
+      "dev": true
+    },
+    "@babel/helper-remap-async-to-generator": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614034828650&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.13.0.tgz",
+      "integrity": "sha1-N2p2DZ97SyB3qd0Fqpw5J8rbIgk=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.12.13",
+        "@babel/helper-wrap-function": "^7.13.0",
+        "@babel/types": "^7.13.0"
+      }
+    },
+    "@babel/helper-replace-supers": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.14.4.tgz",
+      "integrity": "sha1-sqsWh13uz/89381Tm8MV9ymY2DY=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-member-expression-to-functions": "^7.13.12",
+        "@babel/helper-optimise-call-expression": "^7.12.13",
+        "@babel/traverse": "^7.14.2",
+        "@babel/types": "^7.14.4"
+      }
+    },
+    "@babel/helper-simple-access": {
+      "version": "7.13.12",
+      "resolved": "https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.13.12.tgz",
+      "integrity": "sha1-3WxTivthgZ0gWgEsMXkqOcel6vY=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.13.12"
+      }
+    },
+    "@babel/helper-skip-transparent-expression-wrappers": {
+      "version": "7.12.1",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+      "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.12.1"
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz",
+      "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/helper-validator-identifier": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.0.tgz?cache=0&sync_timestamp=1619727556616&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.0.tgz",
+      "integrity": "sha1-0mytikfGUoaxXfFUcxml0Lzycog=",
+      "dev": true
+    },
+    "@babel/helper-validator-option": {
+      "version": "7.12.17",
+      "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.17.tgz",
+      "integrity": "sha1-0fvwEuGnm37rv9xtJwuq+NnrmDE=",
+      "dev": true
+    },
+    "@babel/helper-wrap-function": {
+      "version": "7.13.0",
+      "resolved": "https://registry.nlark.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.13.0.tgz",
+      "integrity": "sha1-vbXGb9qFJuwjWriUrVOhI1x5/MQ=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.12.13",
+        "@babel/template": "^7.12.13",
+        "@babel/traverse": "^7.13.0",
+        "@babel/types": "^7.13.0"
+      }
+    },
+    "@babel/helpers": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.14.0.tgz?cache=0&sync_timestamp=1619727503327&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.14.0.tgz",
+      "integrity": "sha1-6ptr6UeKE9b5Ydu182v3Xi87j2I=",
+      "dev": true,
+      "requires": {
+        "@babel/template": "^7.12.13",
+        "@babel/traverse": "^7.14.0",
+        "@babel/types": "^7.14.0"
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.14.0.tgz",
+      "integrity": "sha1-MZfjdXEe9r+DTmfQ2uyI5PRhE88=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-validator-identifier": "^7.14.0",
+        "chalk": "^2.0.0",
+        "js-tokens": "^4.0.0"
+      }
+    },
+    "@babel/parser": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.4.tgz?cache=0&sync_timestamp=1622221315015&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.4.tgz",
+      "integrity": "sha1-pcVg1tts2ObtNCNo3qgDkjLLqxg=",
+      "dev": true
+    },
+    "@babel/plugin-proposal-async-generator-functions": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.14.2.tgz",
+      "integrity": "sha1-OiCFq79dX5YtSA28gTRzhe1i6x4=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-remap-async-to-generator": "^7.13.0",
+        "@babel/plugin-syntax-async-generators": "^7.8.4"
+      }
+    },
+    "@babel/plugin-proposal-class-properties": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz",
+      "integrity": "sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-class-features-plugin": "^7.13.0",
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-proposal-decorators": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.14.2.tgz?cache=0&sync_timestamp=1620840050927&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.14.2.tgz",
+      "integrity": "sha1-5ow8XkpqCINEVlaCVvw+cbk1kM8=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-class-features-plugin": "^7.14.2",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/plugin-syntax-decorators": "^7.12.13"
+      }
+    },
+    "@babel/plugin-proposal-json-strings": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.14.2.tgz?cache=0&sync_timestamp=1620840104102&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.14.2.tgz",
+      "integrity": "sha1-gwtOJCanguiyh4+/4suoW3DL+Yw=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/plugin-syntax-json-strings": "^7.8.3"
+      }
+    },
+    "@babel/plugin-proposal-object-rest-spread": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.14.4.tgz",
+      "integrity": "sha1-DitN5BmRXcC0CTeOgpQS4gMXd8Q=",
+      "dev": true,
+      "requires": {
+        "@babel/compat-data": "^7.14.4",
+        "@babel/helper-compilation-targets": "^7.14.4",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+        "@babel/plugin-transform-parameters": "^7.14.2"
+      }
+    },
+    "@babel/plugin-proposal-optional-catch-binding": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.14.2.tgz",
+      "integrity": "sha1-FQ1OWOUlsWqaFDG9UybE7thw1xc=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+      }
+    },
+    "@babel/plugin-proposal-unicode-property-regex": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.13.tgz",
+      "integrity": "sha1-vr3lEzm+gpwXqqrO0YZB3rYrObo=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-syntax-async-generators": {
+      "version": "7.8.4",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz",
+      "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-decorators": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.13.tgz",
+      "integrity": "sha1-+sgpvzx+9KG8kWJXtAPljGva9kg=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-syntax-dynamic-import": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz",
+      "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-json-strings": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz",
+      "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-jsx": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.13.tgz",
+      "integrity": "sha1-BE+4HrrWaY/mLEeIdVdby7m3DxU=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-syntax-object-rest-spread": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz",
+      "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-optional-catch-binding": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+      "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-transform-arrow-functions": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034822229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.13.0.tgz",
+      "integrity": "sha1-EKWb661S1jegJ6+mkujVzv9ePa4=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-async-to-generator": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.13.0.tgz",
+      "integrity": "sha1-jhEr9ncbgr8el05eJoBsXJmqUW8=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-remap-async-to-generator": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-block-scoped-functions": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.13.tgz",
+      "integrity": "sha1-qb8YNvKjm062zwmWdzneKepL9MQ=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-block-scoping": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.14.4.tgz",
+      "integrity": "sha1-yvFAsLLiRixQlVPRQObQq++2Htg=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-classes": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.14.4.tgz",
+      "integrity": "sha1-qDwVUD/HGg+Z6Hb9zn2tvGV17Do=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.12.13",
+        "@babel/helper-function-name": "^7.14.2",
+        "@babel/helper-optimise-call-expression": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-replace-supers": "^7.14.4",
+        "@babel/helper-split-export-declaration": "^7.12.13",
+        "globals": "^11.1.0"
+      }
+    },
+    "@babel/plugin-transform-computed-properties": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034823289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.13.0.tgz",
+      "integrity": "sha1-hFxui5u1U3ax+guS7wvcjqBmRO0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-destructuring": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.14.4.tgz",
+      "integrity": "sha1-rL7FAumVHzD0RB6sodLynvreWe0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-dotall-regex": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.13.tgz",
+      "integrity": "sha1-PxYBzCmQW/y2f1ORDxl66v67Ja0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-duplicate-keys": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.13.tgz",
+      "integrity": "sha1-bwa4eouAP9ko5UuBwljwoAM5BN4=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-exponentiation-operator": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.13.tgz",
+      "integrity": "sha1-TVI5C5onPmUeSrpq7knvQOgM0KE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-for-of": {
+      "version": "7.13.0",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.13.0.tgz?cache=0&sync_timestamp=1614034822929&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.13.0.tgz",
+      "integrity": "sha1-x5n4gagJGsJrVIZ6hFw+l9JpYGI=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-function-name": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.13.tgz",
+      "integrity": "sha1-uwJEUvmq7YYdN0yOeiQlLOOlAFE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-literals": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.13.tgz",
+      "integrity": "sha1-LKRbr+SoIBl88xV5Sk0mVg/kvbk=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-modules-amd": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.14.2.tgz",
+      "integrity": "sha1-ZiKAb+GnwHoTiERCIu+VNfLKF7A=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.14.2",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-commonjs": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.14.0.tgz",
+      "integrity": "sha1-UrwZnLWB4Jku26Dw+ANWRnWH8WE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.14.0",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-simple-access": "^7.13.12",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-systemjs": {
+      "version": "7.13.8",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.13.8.tgz",
+      "integrity": "sha1-bQZu4r/zx7PWC/KN7Baa2ZODGuM=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-hoist-variables": "^7.13.0",
+        "@babel/helper-module-transforms": "^7.13.0",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-validator-identifier": "^7.12.11",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-umd": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.14.0.tgz",
+      "integrity": "sha1-L4F50bvJJjZlzkpl8wVSay6orDQ=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.14.0",
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-named-capturing-groups-regex": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314757088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.13.tgz",
+      "integrity": "sha1-IhNyWl9bu+NktQw7pZmMlZnFydk=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-new-target": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.13.tgz",
+      "integrity": "sha1-4i2MOvJLFQ3VKMvW5oXnmb8cNRw=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-object-super": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.13.tgz",
+      "integrity": "sha1-tEFqLWO4974xTz00m9VanBtRcfc=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13",
+        "@babel/helper-replace-supers": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-parameters": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.14.2.tgz",
+      "integrity": "sha1-5CkPcuDp6DEADQZkJ8RmcJjezDE=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-regenerator": {
+      "version": "7.13.15",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.13.15.tgz",
+      "integrity": "sha1-5esolFv4tlY+f4GJRflmqNKZfzk=",
+      "dev": true,
+      "requires": {
+        "regenerator-transform": "^0.14.2"
+      }
+    },
+    "@babel/plugin-transform-runtime": {
+      "version": "7.14.3",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.14.3.tgz",
+      "integrity": "sha1-H9iFotDeHTwiN5Wk6b5ywttFFc8=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.13.12",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "babel-plugin-polyfill-corejs2": "^0.2.0",
+        "babel-plugin-polyfill-corejs3": "^0.2.0",
+        "babel-plugin-polyfill-regenerator": "^0.2.0",
+        "semver": "^6.3.0"
+      }
+    },
+    "@babel/plugin-transform-shorthand-properties": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.13.tgz",
+      "integrity": "sha1-23VXMrcMU51QTGOQ2c6Q/mSv960=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-spread": {
+      "version": "7.13.0",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.13.0.tgz",
+      "integrity": "sha1-hIh3EOJzwYFaznrkWfb0Kl0x1f0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+      }
+    },
+    "@babel/plugin-transform-sticky-regex": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.13.tgz",
+      "integrity": "sha1-dg/9k2+s5z+GCuZG+4bugvPQbR8=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-template-literals": {
+      "version": "7.13.0",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.13.0.tgz",
+      "integrity": "sha1-o2BJEnl3rZRDje50Q1mNHO/fQJ0=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.13.0"
+      }
+    },
+    "@babel/plugin-transform-typeof-symbol": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.13.tgz",
+      "integrity": "sha1-eF3Weh8upXnZwr5yLejITLhfWn8=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/plugin-transform-unicode-regex": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314760208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.13.tgz",
+      "integrity": "sha1-tSUhaFgE4VWxIC6D/BiNNLtw9aw=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.12.13"
+      }
+    },
+    "@babel/preset-env": {
+      "version": "7.3.4",
+      "resolved": "https://registry.nlark.com/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz?cache=0&sync_timestamp=1622222016959&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.3.4.tgz",
+      "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.0.0",
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
+        "@babel/plugin-proposal-json-strings": "^7.2.0",
+        "@babel/plugin-proposal-object-rest-spread": "^7.3.4",
+        "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
+        "@babel/plugin-syntax-async-generators": "^7.2.0",
+        "@babel/plugin-syntax-json-strings": "^7.2.0",
+        "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
+        "@babel/plugin-transform-arrow-functions": "^7.2.0",
+        "@babel/plugin-transform-async-to-generator": "^7.3.4",
+        "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
+        "@babel/plugin-transform-block-scoping": "^7.3.4",
+        "@babel/plugin-transform-classes": "^7.3.4",
+        "@babel/plugin-transform-computed-properties": "^7.2.0",
+        "@babel/plugin-transform-destructuring": "^7.2.0",
+        "@babel/plugin-transform-dotall-regex": "^7.2.0",
+        "@babel/plugin-transform-duplicate-keys": "^7.2.0",
+        "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
+        "@babel/plugin-transform-for-of": "^7.2.0",
+        "@babel/plugin-transform-function-name": "^7.2.0",
+        "@babel/plugin-transform-literals": "^7.2.0",
+        "@babel/plugin-transform-modules-amd": "^7.2.0",
+        "@babel/plugin-transform-modules-commonjs": "^7.2.0",
+        "@babel/plugin-transform-modules-systemjs": "^7.3.4",
+        "@babel/plugin-transform-modules-umd": "^7.2.0",
+        "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0",
+        "@babel/plugin-transform-new-target": "^7.0.0",
+        "@babel/plugin-transform-object-super": "^7.2.0",
+        "@babel/plugin-transform-parameters": "^7.2.0",
+        "@babel/plugin-transform-regenerator": "^7.3.4",
+        "@babel/plugin-transform-shorthand-properties": "^7.2.0",
+        "@babel/plugin-transform-spread": "^7.2.0",
+        "@babel/plugin-transform-sticky-regex": "^7.2.0",
+        "@babel/plugin-transform-template-literals": "^7.2.0",
+        "@babel/plugin-transform-typeof-symbol": "^7.2.0",
+        "@babel/plugin-transform-unicode-regex": "^7.2.0",
+        "browserslist": "^4.3.4",
+        "invariant": "^2.2.2",
+        "js-levenshtein": "^1.1.3",
+        "semver": "^5.3.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.nlark.com/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+          "dev": true
+        }
+      }
+    },
+    "@babel/runtime": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.0.tgz?cache=0&sync_timestamp=1619727501090&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.14.0.tgz",
+      "integrity": "sha1-RnlLwgthLF915i3QceJN/ZXxy+Y=",
+      "dev": true,
+      "requires": {
+        "regenerator-runtime": "^0.13.4"
+      }
+    },
+    "@babel/runtime-corejs2": {
+      "version": "7.14.0",
+      "resolved": "https://registry.nlark.com/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.14.0.tgz?cache=0&sync_timestamp=1619729950450&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.14.0.tgz",
+      "integrity": "sha1-VRm5LMyBm9PQoeyyWrPLWndUhfg=",
+      "dev": true,
+      "requires": {
+        "core-js": "^2.6.5",
+        "regenerator-runtime": "^0.13.4"
+      }
+    },
+    "@babel/template": {
+      "version": "7.12.13",
+      "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.12.13.tgz",
+      "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.12.13",
+        "@babel/parser": "^7.12.13",
+        "@babel/types": "^7.12.13"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.14.2",
+      "resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.14.2.tgz",
+      "integrity": "sha1-kgGo2RJyOoMcJnnH678v4UFtdls=",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.12.13",
+        "@babel/generator": "^7.14.2",
+        "@babel/helper-function-name": "^7.14.2",
+        "@babel/helper-split-export-declaration": "^7.12.13",
+        "@babel/parser": "^7.14.2",
+        "@babel/types": "^7.14.2",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0"
+      }
+    },
+    "@babel/types": {
+      "version": "7.14.4",
+      "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.4.tgz?cache=0&sync_timestamp=1622221311390&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.14.4.tgz",
+      "integrity": "sha1-v9aYAQgWhZOziz60iiSqAmuRm8A=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-validator-identifier": "^7.14.0",
+        "to-fast-properties": "^2.0.0"
+      }
+    },
+    "@hapi/address": {
+      "version": "2.1.4",
+      "resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz",
+      "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=",
+      "dev": true
+    },
+    "@hapi/bourne": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz",
+      "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=",
+      "dev": true
+    },
+    "@hapi/hoek": {
+      "version": "8.5.1",
+      "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1618694570157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz",
+      "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=",
+      "dev": true
+    },
+    "@hapi/joi": {
+      "version": "15.1.1",
+      "resolved": "https://registry.nlark.com/@hapi/joi/download/@hapi/joi-15.1.1.tgz",
+      "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=",
+      "dev": true,
+      "requires": {
+        "@hapi/address": "2.x.x",
+        "@hapi/bourne": "1.x.x",
+        "@hapi/hoek": "8.x.x",
+        "@hapi/topo": "3.x.x"
+      }
+    },
+    "@hapi/topo": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz",
+      "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=",
+      "dev": true,
+      "requires": {
+        "@hapi/hoek": "^8.3.0"
+      }
+    },
+    "@intervolga/optimize-cssnano-plugin": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz",
+      "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=",
+      "dev": true,
+      "requires": {
+        "cssnano": "^4.0.0",
+        "cssnano-preset-default": "^4.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "@mrmlnc/readdir-enhanced": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz",
+      "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=",
+      "dev": true,
+      "requires": {
+        "call-me-maybe": "^1.0.1",
+        "glob-to-regexp": "^0.3.0"
+      }
+    },
+    "@nodelib/fs.stat": {
+      "version": "1.1.3",
+      "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&sync_timestamp=1622792616417&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz",
+      "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
+      "dev": true
+    },
+    "@soda/friendly-errors-webpack-plugin": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz",
+      "integrity": "sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "error-stack-parser": "^2.0.2",
+        "string-width": "^2.0.0",
+        "strip-ansi": "^5"
+      }
+    },
+    "@types/glob": {
+      "version": "7.1.3",
+      "resolved": "https://registry.nlark.com/@types/glob/download/@types/glob-7.1.3.tgz",
+      "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=",
+      "dev": true,
+      "requires": {
+        "@types/minimatch": "*",
+        "@types/node": "*"
+      }
+    },
+    "@types/json-schema": {
+      "version": "7.0.7",
+      "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.7.tgz",
+      "integrity": "sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=",
+      "dev": true
+    },
+    "@types/minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.4.tgz",
+      "integrity": "sha1-8Owl2/Lw5LGGRzE6wDETTKWySyE=",
+      "dev": true
+    },
+    "@types/node": {
+      "version": "15.12.2",
+      "resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.12.2.tgz",
+      "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=",
+      "dev": true
+    },
+    "@types/normalize-package-data": {
+      "version": "2.4.0",
+      "resolved": "https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1621242027779&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz",
+      "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=",
+      "dev": true
+    },
+    "@types/q": {
+      "version": "1.5.4",
+      "resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz",
+      "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=",
+      "dev": true
+    },
+    "@vue/babel-helper-vue-jsx-merge-props": {
+      "version": "1.2.1",
+      "resolved": "https://registry.nlark.com/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
+      "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=",
+      "dev": true
+    },
+    "@vue/babel-plugin-transform-vue-jsx": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851113524&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz",
+      "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.0.0",
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
+        "html-tags": "^2.0.0",
+        "lodash.kebabcase": "^4.1.1",
+        "svg-tags": "^1.0.0"
+      }
+    },
+    "@vue/babel-preset-app": {
+      "version": "3.12.1",
+      "resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.1.tgz",
+      "integrity": "sha1-JMR3BS8HjzD9t3NRA7FN0fosv+E=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.0.0",
+        "@babel/plugin-proposal-class-properties": "^7.0.0",
+        "@babel/plugin-proposal-decorators": "^7.1.0",
+        "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+        "@babel/plugin-syntax-jsx": "^7.0.0",
+        "@babel/plugin-transform-runtime": "^7.4.0",
+        "@babel/preset-env": "^7.0.0 < 7.4.0",
+        "@babel/runtime": "^7.0.0",
+        "@babel/runtime-corejs2": "^7.2.0",
+        "@vue/babel-preset-jsx": "^1.0.0",
+        "babel-plugin-dynamic-import-node": "^2.2.0",
+        "babel-plugin-module-resolver": "3.2.0",
+        "core-js": "^2.6.5"
+      }
+    },
+    "@vue/babel-preset-jsx": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz",
+      "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=",
+      "dev": true,
+      "requires": {
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
+        "@vue/babel-sugar-composition-api-inject-h": "^1.2.1",
+        "@vue/babel-sugar-composition-api-render-instance": "^1.2.4",
+        "@vue/babel-sugar-functional-vue": "^1.2.2",
+        "@vue/babel-sugar-inject-h": "^1.2.2",
+        "@vue/babel-sugar-v-model": "^1.2.3",
+        "@vue/babel-sugar-v-on": "^1.2.3"
+      }
+    },
+    "@vue/babel-sugar-composition-api-inject-h": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851113182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz",
+      "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-composition-api-render-instance": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806823870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz",
+      "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-functional-vue": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929884928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz",
+      "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-inject-h": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929885089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz",
+      "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-v-model": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz",
+      "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
+        "camelcase": "^5.0.0",
+        "html-tags": "^2.0.0",
+        "svg-tags": "^1.0.0"
+      }
+    },
+    "@vue/babel-sugar-v-on": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz?cache=0&sync_timestamp=1603181896860&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.2.3.tgz",
+      "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
+        "camelcase": "^5.0.0"
+      }
+    },
+    "@vue/cli-overlay": {
+      "version": "3.12.1",
+      "resolved": "https://registry.nlark.com/@vue/cli-overlay/download/@vue/cli-overlay-3.12.1.tgz",
+      "integrity": "sha1-vf3o9xI1YasG5OTGC4VMxQkvWrE=",
+      "dev": true
+    },
+    "@vue/cli-plugin-babel": {
+      "version": "3.12.1",
+      "resolved": "https://registry.nlark.com/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.12.1.tgz",
+      "integrity": "sha1-mnkVnejNCGsBP6bXijmDCy4uxwY=",
+      "dev": true,
+      "requires": {
+        "@babel/core": "^7.0.0",
+        "@vue/babel-preset-app": "^3.12.1",
+        "@vue/cli-shared-utils": "^3.12.1",
+        "babel-loader": "^8.0.5",
+        "webpack": "^4.0.0"
+      }
+    },
+    "@vue/cli-service": {
+      "version": "3.12.1",
+      "resolved": "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-3.12.1.tgz?cache=0&sync_timestamp=1620981774837&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-3.12.1.tgz",
+      "integrity": "sha1-EyILHBiSVOfAAzkN8ykIb5tud+Y=",
+      "dev": true,
+      "requires": {
+        "@intervolga/optimize-cssnano-plugin": "^1.0.5",
+        "@soda/friendly-errors-webpack-plugin": "^1.7.1",
+        "@vue/cli-overlay": "^3.12.1",
+        "@vue/cli-shared-utils": "^3.12.1",
+        "@vue/component-compiler-utils": "^3.0.0",
+        "@vue/preload-webpack-plugin": "^1.1.0",
+        "@vue/web-component-wrapper": "^1.2.0",
+        "acorn": "^6.1.1",
+        "acorn-walk": "^6.1.1",
+        "address": "^1.0.3",
+        "autoprefixer": "^9.5.1",
+        "browserslist": "^4.5.4",
+        "cache-loader": "^2.0.1",
+        "case-sensitive-paths-webpack-plugin": "^2.2.0",
+        "chalk": "^2.4.2",
+        "cli-highlight": "^2.1.0",
+        "clipboardy": "^2.0.0",
+        "cliui": "^5.0.0",
+        "copy-webpack-plugin": "^4.6.0",
+        "css-loader": "^1.0.1",
+        "cssnano": "^4.1.10",
+        "current-script-polyfill": "^1.0.0",
+        "debug": "^4.1.1",
+        "default-gateway": "^5.0.2",
+        "dotenv": "^7.0.0",
+        "dotenv-expand": "^5.1.0",
+        "escape-string-regexp": "^1.0.5",
+        "file-loader": "^3.0.1",
+        "fs-extra": "^7.0.1",
+        "globby": "^9.2.0",
+        "hash-sum": "^1.0.2",
+        "html-webpack-plugin": "^3.2.0",
+        "launch-editor-middleware": "^2.2.1",
+        "lodash.defaultsdeep": "^4.6.1",
+        "lodash.mapvalues": "^4.6.0",
+        "lodash.transform": "^4.6.0",
+        "mini-css-extract-plugin": "^0.8.0",
+        "minimist": "^1.2.0",
+        "ora": "^3.4.0",
+        "portfinder": "^1.0.20",
+        "postcss-loader": "^3.0.0",
+        "read-pkg": "^5.0.0",
+        "semver": "^6.0.0",
+        "slash": "^2.0.0",
+        "source-map-url": "^0.4.0",
+        "ssri": "^6.0.1",
+        "string.prototype.padend": "^3.0.0",
+        "terser-webpack-plugin": "^1.2.3",
+        "thread-loader": "^2.1.2",
+        "url-loader": "^1.1.2",
+        "vue-loader": "^15.7.0",
+        "webpack": "^4.0.0",
+        "webpack-bundle-analyzer": "^3.3.0",
+        "webpack-chain": "^4.11.0",
+        "webpack-dev-server": "^3.4.1",
+        "webpack-merge": "^4.2.1"
+      }
+    },
+    "@vue/cli-shared-utils": {
+      "version": "3.12.1",
+      "resolved": "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz",
+      "integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=",
+      "dev": true,
+      "requires": {
+        "@hapi/joi": "^15.0.1",
+        "chalk": "^2.4.1",
+        "execa": "^1.0.0",
+        "launch-editor": "^2.2.1",
+        "lru-cache": "^5.1.1",
+        "node-ipc": "^9.1.1",
+        "open": "^6.3.0",
+        "ora": "^3.4.0",
+        "request": "^2.87.0",
+        "request-promise-native": "^1.0.7",
+        "semver": "^6.0.0",
+        "string.prototype.padstart": "^3.0.0"
+      }
+    },
+    "@vue/component-compiler-utils": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz",
+      "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=",
+      "dev": true,
+      "requires": {
+        "consolidate": "^0.15.1",
+        "hash-sum": "^1.0.2",
+        "lru-cache": "^4.1.2",
+        "merge-source-map": "^1.1.0",
+        "postcss": "^7.0.14",
+        "postcss-selector-parser": "^6.0.2",
+        "prettier": "^1.18.2",
+        "source-map": "~0.6.1",
+        "vue-template-es2015-compiler": "^1.9.0"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "4.1.5",
+          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+          "dev": true,
+          "requires": {
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        },
+        "yallist": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
+        }
+      }
+    },
+    "@vue/preload-webpack-plugin": {
+      "version": "1.1.2",
+      "resolved": "https://registry.nlark.com/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz",
+      "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=",
+      "dev": true
+    },
+    "@vue/web-component-wrapper": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.3.0.tgz?cache=0&sync_timestamp=1613217239610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fweb-component-wrapper%2Fdownload%2F%40vue%2Fweb-component-wrapper-1.3.0.tgz",
+      "integrity": "sha1-trQKdiVCnSvXwigd26YB7QXcfxo=",
+      "dev": true
+    },
+    "@webassemblyjs/ast": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz",
+      "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0"
+      }
+    },
+    "@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz",
+      "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=",
+      "dev": true
+    },
+    "@webassemblyjs/helper-api-error": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz",
+      "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=",
+      "dev": true
+    },
+    "@webassemblyjs/helper-buffer": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1610045496323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz",
+      "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=",
+      "dev": true
+    },
+    "@webassemblyjs/helper-code-frame": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz",
+      "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/wast-printer": "1.9.0"
+      }
+    },
+    "@webassemblyjs/helper-fsm": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1610045497114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz",
+      "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=",
+      "dev": true
+    },
+    "@webassemblyjs/helper-module-context": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz?cache=0&sync_timestamp=1601756894083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz",
+      "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0"
+      }
+    },
+    "@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz",
+      "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=",
+      "dev": true
+    },
+    "@webassemblyjs/helper-wasm-section": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1610045503299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz",
+      "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0"
+      }
+    },
+    "@webassemblyjs/ieee754": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz",
+      "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=",
+      "dev": true,
+      "requires": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "@webassemblyjs/leb128": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz",
+      "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=",
+      "dev": true,
+      "requires": {
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/utf8": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&sync_timestamp=1610045498791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz",
+      "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=",
+      "dev": true
+    },
+    "@webassemblyjs/wasm-edit": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz",
+      "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/helper-wasm-section": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-opt": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "@webassemblyjs/wast-printer": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-gen": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1610045502219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz",
+      "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-opt": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz",
+      "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz",
+      "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wast-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz",
+      "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-code-frame": "1.9.0",
+        "@webassemblyjs/helper-fsm": "1.9.0",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/wast-printer": {
+      "version": "1.9.0",
+      "resolved": "https://registry.nlark.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz",
+      "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz",
+      "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=",
+      "dev": true
+    },
+    "@xtuc/long": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz",
+      "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=",
+      "dev": true
+    },
+    "abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
+      "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
+      "dev": true
+    },
+    "accepts": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
+      "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
+      "dev": true,
+      "requires": {
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      }
+    },
+    "acorn": {
+      "version": "6.4.2",
+      "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-6.4.2.tgz",
+      "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=",
+      "dev": true
+    },
+    "acorn-walk": {
+      "version": "6.2.0",
+      "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-6.2.0.tgz",
+      "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=",
+      "dev": true
+    },
+    "address": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz",
+      "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
+      "dev": true
+    },
+    "ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz",
+      "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+      "dev": true,
+      "requires": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "ajv-errors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/ajv-errors/download/ajv-errors-1.0.1.tgz",
+      "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
+      "dev": true
+    },
+    "ajv-keywords": {
+      "version": "3.5.2",
+      "resolved": "https://registry.nlark.com/ajv-keywords/download/ajv-keywords-3.5.2.tgz",
+      "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
+      "dev": true
+    },
+    "alphanum-sort": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
+      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+      "dev": true
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "ansi-colors": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz",
+      "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=",
+      "dev": true
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+      "dev": true
+    },
+    "ansi-regex": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+      "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
+      "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "any-promise": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz",
+      "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=",
+      "dev": true
+    },
+    "anymatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz",
+      "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
+      "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
+      "dev": true
+    },
+    "arch": {
+      "version": "2.2.0",
+      "resolved": "https://registry.nlark.com/arch/download/arch-2.2.0.tgz",
+      "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=",
+      "dev": true
+    },
+    "are-we-there-yet": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
+      "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
+      "dev": true,
+      "requires": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^2.0.6"
+      }
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649397806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz",
+      "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+      "dev": true
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
+      "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
+      "dev": true
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+      "dev": true
+    },
+    "array-find-index": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
+      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+      "dev": true
+    },
+    "array-flatten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz",
+      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+      "dev": true
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042045402&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+      "dev": true
+    },
+    "asn1": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
+      "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
+      "dev": true,
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "5.4.1",
+      "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz",
+      "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "safer-buffer": "^2.1.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "assert": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz",
+      "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.1",
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+      "dev": true
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+      "dev": true
+    },
+    "async": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz",
+      "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.14"
+      }
+    },
+    "async-each": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
+      "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
+      "dev": true
+    },
+    "async-foreach": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz",
+      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+      "dev": true
+    },
+    "async-limiter": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz",
+      "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
+      "dev": true
+    },
+    "async-validator": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+      "requires": {
+        "babel-runtime": "6.x"
+      }
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+      "dev": true
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
+      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
+      "dev": true
+    },
+    "autoprefixer": {
+      "version": "9.8.6",
+      "resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-9.8.6.tgz",
+      "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.12.0",
+        "caniuse-lite": "^1.0.30001109",
+        "colorette": "^1.2.1",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^7.0.32",
+        "postcss-value-parser": "^4.1.0"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+      "dev": true
+    },
+    "aws4": {
+      "version": "1.11.0",
+      "resolved": "https://registry.nlark.com/aws4/download/aws4-1.11.0.tgz",
+      "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=",
+      "dev": true
+    },
+    "axios": {
+      "version": "0.21.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+      "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+      "requires": {
+        "follow-redirects": "^1.10.0"
+      }
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "https://registry.nlark.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "esutils": "^2.0.2",
+        "js-tokens": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "js-tokens": {
+          "version": "3.0.2",
+          "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz",
+          "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "babel-helper-vue-jsx-merge-props": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
+    },
+    "babel-loader": {
+      "version": "8.2.2",
+      "resolved": "https://registry.nlark.com/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1618847034310&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz",
+      "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=",
+      "dev": true,
+      "requires": {
+        "find-cache-dir": "^3.3.1",
+        "loader-utils": "^1.4.0",
+        "make-dir": "^3.1.0",
+        "schema-utils": "^2.6.5"
+      }
+    },
+    "babel-plugin-dynamic-import-node": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1592843198494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz",
+      "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=",
+      "dev": true,
+      "requires": {
+        "object.assign": "^4.1.0"
+      }
+    },
+    "babel-plugin-module-resolver": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz",
+      "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=",
+      "dev": true,
+      "requires": {
+        "find-babel-config": "^1.1.0",
+        "glob": "^7.1.2",
+        "pkg-up": "^2.0.0",
+        "reselect": "^3.0.1",
+        "resolve": "^1.4.0"
+      }
+    },
+    "babel-plugin-polyfill-corejs2": {
+      "version": "0.2.2",
+      "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622023904181&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz",
+      "integrity": "sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc=",
+      "dev": true,
+      "requires": {
+        "@babel/compat-data": "^7.13.11",
+        "@babel/helper-define-polyfill-provider": "^0.2.2",
+        "semver": "^6.1.1"
+      }
+    },
+    "babel-plugin-polyfill-corejs3": {
+      "version": "0.2.2",
+      "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.2.tgz?cache=0&sync_timestamp=1622023907017&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.2.2.tgz",
+      "integrity": "sha1-dCShaC7kS67IFzJ3ELGwlOX49/U=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-define-polyfill-provider": "^0.2.2",
+        "core-js-compat": "^3.9.1"
+      }
+    },
+    "babel-plugin-polyfill-regenerator": {
+      "version": "0.2.2",
+      "resolved": "https://registry.nlark.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.2.tgz?cache=0&sync_timestamp=1622023907940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.2.tgz",
+      "integrity": "sha1-sxDI1kKsraNIwfo7Pmzg6FG+4Hc=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-define-polyfill-provider": "^0.2.2"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      },
+      "dependencies": {
+        "regenerator-runtime": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+        }
+      }
+    },
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz",
+      "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4="
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
+      "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+      "dev": true,
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.nlark.com/base64-js/download/base64-js-1.5.1.tgz",
+      "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "dev": true,
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "bfj": {
+      "version": "6.1.2",
+      "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz",
+      "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.5",
+        "check-types": "^8.0.3",
+        "hoopy": "^0.1.4",
+        "tryer": "^1.0.1"
+      }
+    },
+    "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.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz",
+      "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
+      "dev": true,
+      "optional": true
+    },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz",
+      "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
+    "block-stream": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz",
+      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.0"
+      }
+    },
+    "bluebird": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
+      "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=",
+      "dev": true
+    },
+    "bn.js": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz",
+      "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=",
+      "dev": true
+    },
+    "body-parser": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
+      "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "on-finished": "~2.3.0",
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz",
+          "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+          "dev": true
+        }
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "dev": true,
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz",
+          "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=",
+          "dev": true
+        }
+      }
+    },
+    "boolbase": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz",
+      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+      "dev": true
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz",
+      "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+      "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+      "dev": true,
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+      "dev": true
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz",
+      "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=",
+      "dev": true,
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=",
+      "dev": true,
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz",
+      "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.1.0",
+      "resolved": "https://registry.nlark.com/browserify-rsa/download/browserify-rsa-4.1.0.tgz",
+      "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^5.0.0",
+        "randombytes": "^2.0.1"
+      }
+    },
+    "browserify-sign": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557839950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz",
+      "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^5.1.1",
+        "browserify-rsa": "^4.0.1",
+        "create-hash": "^1.2.0",
+        "create-hmac": "^1.1.7",
+        "elliptic": "^6.5.3",
+        "inherits": "^2.0.4",
+        "parse-asn1": "^5.1.5",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
+          "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
+          "dev": true
+        }
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=",
+      "dev": true,
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "4.16.6",
+      "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz",
+      "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30001219",
+        "colorette": "^1.2.2",
+        "electron-to-chromium": "^1.3.723",
+        "escalade": "^3.1.1",
+        "node-releases": "^1.1.71"
+      }
+    },
+    "buffer": {
+      "version": "4.9.2",
+      "resolved": "https://registry.nlark.com/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1618846959596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz",
+      "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=",
+      "dev": true,
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
+      "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
+      "dev": true
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=",
+      "dev": true
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+      "dev": true
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz",
+      "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+      "dev": true
+    },
+    "cacache": {
+      "version": "12.0.4",
+      "resolved": "https://registry.nlark.com/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1621949584977&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz",
+      "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.5",
+        "chownr": "^1.1.1",
+        "figgy-pudding": "^3.5.1",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.1.15",
+        "infer-owner": "^1.0.3",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.3",
+        "ssri": "^6.0.1",
+        "unique-filename": "^1.1.1",
+        "y18n": "^4.0.0"
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz",
+      "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+      "dev": true,
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "cache-loader": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz",
+      "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "mkdirp": "^0.5.1",
+        "neo-async": "^2.6.0",
+        "normalize-path": "^3.0.0",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "call-bind": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403020286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz",
+      "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.0.2"
+      }
+    },
+    "call-me-maybe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz",
+      "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+      "dev": true
+    },
+    "caller-callsite": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz",
+      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+      "dev": true,
+      "requires": {
+        "callsites": "^2.0.0"
+      }
+    },
+    "caller-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/caller-path/download/caller-path-2.0.0.tgz",
+      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+      "dev": true,
+      "requires": {
+        "caller-callsite": "^2.0.0"
+      }
+    },
+    "callsites": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz",
+      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+      "dev": true
+    },
+    "camel-case": {
+      "version": "3.0.0",
+      "resolved": "https://registry.nlark.com/camel-case/download/camel-case-3.0.0.tgz",
+      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0",
+        "upper-case": "^1.1.1"
+      }
+    },
+    "camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz",
+      "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
+    },
+    "camelcase-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "dev": true,
+      "requires": {
+        "camelcase": "^2.0.0",
+        "map-obj": "^1.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz",
+          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+          "dev": true
+        }
+      }
+    },
+    "caniuse-api": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz",
+      "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-lite": "^1.0.0",
+        "lodash.memoize": "^4.1.2",
+        "lodash.uniq": "^4.5.0"
+      }
+    },
+    "caniuse-lite": {
+      "version": "1.0.30001235",
+      "resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001235.tgz?cache=0&sync_timestamp=1622955305476&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001235.tgz",
+      "integrity": "sha1-rVynW8Wh97Et95rYBtcVpDpaxO0=",
+      "dev": true
+    },
+    "case-sensitive-paths-webpack-plugin": {
+      "version": "2.4.0",
+      "resolved": "https://registry.nlark.com/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
+      "integrity": "sha1-22QGbGQi7tLgjMFLmGykN5bbxtQ=",
+      "dev": true
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+      "dev": true
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz",
+      "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "check-types": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz",
+      "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=",
+      "dev": true
+    },
+    "china-division": {
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/china-division/-/china-division-2.6.1.tgz",
+      "integrity": "sha512-Iq9YCEWqPcSrD7/7McKpN9QHNbn2iibLmg1NEAxLacijqJzLbytr0sLuKJNY4Exd0LA77N18Pwr9JGgU1p5S6w=="
+    },
+    "chokidar": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz",
+      "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "anymatch": "~3.1.1",
+        "braces": "~3.0.2",
+        "fsevents": "~2.3.1",
+        "glob-parent": "~5.1.0",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.5.0"
+      },
+      "dependencies": {
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+          "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "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,
+          "optional": true,
+          "requires": {
+            "to-regex-range": "^5.0.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,
+          "optional": true
+        },
+        "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,
+          "optional": true,
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        }
+      }
+    },
+    "chownr": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz",
+      "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=",
+      "dev": true
+    },
+    "chrome-trace-event": {
+      "version": "1.0.3",
+      "resolved": "https://registry.nlark.com/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz",
+      "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=",
+      "dev": true
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz",
+      "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
+      "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz?cache=0&sync_timestamp=1616153569589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz",
+      "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-highlight": {
+      "version": "2.1.11",
+      "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.11.tgz",
+      "integrity": "sha1-SXNvpFLwqvT65YDjCssmgo0twb8=",
+      "dev": true,
+      "requires": {
+        "chalk": "^4.0.0",
+        "highlight.js": "^10.7.1",
+        "mz": "^2.4.0",
+        "parse5": "^5.1.1",
+        "parse5-htmlparser2-tree-adapter": "^6.0.0",
+        "yargs": "^16.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+          "dev": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.1",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz",
+          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+          "dev": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
+          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
+    "cli-spinners": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.6.0.tgz?cache=0&sync_timestamp=1616091641633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.6.0.tgz",
+      "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=",
+      "dev": true
+    },
+    "clipboard": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
+      "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
+      "requires": {
+        "good-listener": "^1.2.2",
+        "select": "^1.1.2",
+        "tiny-emitter": "^2.0.0"
+      }
+    },
+    "clipboardy": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz?cache=0&sync_timestamp=1592843313888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboardy%2Fdownload%2Fclipboardy-2.3.0.tgz",
+      "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=",
+      "dev": true,
+      "requires": {
+        "arch": "^2.1.1",
+        "execa": "^1.0.0",
+        "is-wsl": "^2.1.1"
+      },
+      "dependencies": {
+        "is-wsl": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz?cache=0&sync_timestamp=1592843177178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-2.2.0.tgz",
+          "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=",
+          "dev": true,
+          "requires": {
+            "is-docker": "^2.0.0"
+          }
+        }
+      }
+    },
+    "cliui": {
+      "version": "5.0.0",
+      "resolved": "https://registry.nlark.com/cliui/download/cliui-5.0.0.tgz",
+      "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
+      "dev": true,
+      "requires": {
+        "string-width": "^3.1.0",
+        "strip-ansi": "^5.2.0",
+        "wrap-ansi": "^5.1.0"
+      },
+      "dependencies": {
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.nlark.com/emoji-regex/download/emoji-regex-7.0.3.tgz",
+          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-3.1.0.tgz",
+          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          }
+        },
+        "wrap-ansi": {
+          "version": "5.1.0",
+          "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
+          "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.0",
+            "string-width": "^3.0.0",
+            "strip-ansi": "^5.0.0"
+          }
+        }
+      }
+    },
+    "clone": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+      "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+      "dev": true
+    },
+    "clone-deep": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
+      "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
+      "dev": true,
+      "requires": {
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.2",
+        "shallow-clone": "^3.0.0"
+      }
+    },
+    "coa": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz",
+      "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=",
+      "dev": true,
+      "requires": {
+        "@types/q": "^1.5.1",
+        "chalk": "^2.4.1",
+        "q": "^1.1.2"
+      }
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+      "dev": true
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "dev": true,
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228725017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz",
+      "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.1",
+        "color-string": "^1.5.4"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+      "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "color-string": {
+      "version": "1.5.5",
+      "resolved": "https://registry.nlark.com/color-string/download/color-string-1.5.5.tgz",
+      "integrity": "sha1-ZUdKjw50OWJfPSemoZ2J/EUiMBQ=",
+      "dev": true,
+      "requires": {
+        "color-name": "^1.0.0",
+        "simple-swizzle": "^0.2.2"
+      }
+    },
+    "colorette": {
+      "version": "1.2.2",
+      "resolved": "https://registry.nlark.com/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1618846981554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz",
+      "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=",
+      "dev": true
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
+      "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
+      "dev": true,
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz",
+      "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz",
+      "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=",
+      "dev": true
+    },
+    "compressible": {
+      "version": "2.0.18",
+      "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz",
+      "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=",
+      "dev": true,
+      "requires": {
+        "mime-db": ">= 1.43.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz",
+      "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz",
+          "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+          "dev": true
+        },
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
+      "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=",
+      "dev": true
+    },
+    "console-browserify": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz",
+      "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=",
+      "dev": true
+    },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz",
+      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+      "dev": true
+    },
+    "consolidate": {
+      "version": "0.15.1",
+      "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599597070540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz",
+      "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.1.1"
+      }
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+      "dev": true
+    },
+    "content-disposition": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz",
+      "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.2"
+      }
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
+      "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz",
+      "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz",
+      "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=",
+      "dev": true
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+      "dev": true
+    },
+    "copy-webpack-plugin": {
+      "version": "4.6.0",
+      "resolved": "https://registry.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz?cache=0&sync_timestamp=1621607204015&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-4.6.0.tgz",
+      "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.0",
+        "loader-utils": "^1.1.0",
+        "minimatch": "^3.0.4",
+        "p-limit": "^1.0.0",
+        "serialize-javascript": "^1.4.0"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "10.0.4",
+          "resolved": "https://registry.nlark.com/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1621949584977&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz",
+          "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.1",
+            "chownr": "^1.0.1",
+            "glob": "^7.1.2",
+            "graceful-fs": "^4.1.11",
+            "lru-cache": "^4.1.1",
+            "mississippi": "^2.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^5.2.4",
+            "unique-filename": "^1.1.0",
+            "y18n": "^4.0.0"
+          }
+        },
+        "find-cache-dir": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz",
+          "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^1.0.0",
+            "pkg-dir": "^2.0.0"
+          }
+        },
+        "globby": {
+          "version": "7.1.1",
+          "resolved": "https://registry.nlark.com/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1618846983468&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz",
+          "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "dir-glob": "^2.0.0",
+            "glob": "^7.1.2",
+            "ignore": "^3.3.5",
+            "pify": "^3.0.0",
+            "slash": "^1.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "4.1.5",
+          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+          "dev": true,
+          "requires": {
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
+          }
+        },
+        "make-dir": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz",
+          "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=",
+          "dev": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "mississippi": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz",
+          "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^2.0.1",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/pkg-dir/download/pkg-dir-2.0.0.tgz",
+          "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.1.0"
+          }
+        },
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+          "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "serialize-javascript": {
+          "version": "1.9.1",
+          "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740668657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz",
+          "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=",
+          "dev": true
+        },
+        "slash": {
+          "version": "1.0.0",
+          "resolved": "https://registry.nlark.com/slash/download/slash-1.0.0.tgz",
+          "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+          "dev": true
+        },
+        "ssri": {
+          "version": "5.3.0",
+          "resolved": "https://registry.nlark.com/ssri/download/ssri-5.3.0.tgz?cache=0&sync_timestamp=1621364668574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-5.3.0.tgz",
+          "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "^5.1.1"
+          }
+        },
+        "yallist": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
+        }
+      }
+    },
+    "core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz",
+      "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
+    },
+    "core-js-compat": {
+      "version": "3.14.0",
+      "resolved": "https://registry.nlark.com/core-js-compat/download/core-js-compat-3.14.0.tgz",
+      "integrity": "sha1-tXTavykYRoHVsWNXvTPRBN89KaU=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.16.6",
+        "semver": "7.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.0.0",
+          "resolved": "https://registry.nlark.com/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz",
+          "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=",
+          "dev": true
+        }
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310773001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz",
+      "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=",
+      "dev": true,
+      "requires": {
+        "import-fresh": "^2.0.0",
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.13.1",
+        "parse-json": "^4.0.0"
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz?cache=0&sync_timestamp=1596557450797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcreate-ecdh%2Fdownload%2Fcreate-ecdh-4.0.4.tgz",
+      "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.5.3"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz",
+      "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz",
+      "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cross-spawn": {
+      "version": "6.0.5",
+      "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
+      "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
+      "dev": true,
+      "requires": {
+        "nice-try": "^1.0.4",
+        "path-key": "^2.0.1",
+        "semver": "^5.5.0",
+        "shebang-command": "^1.2.0",
+        "which": "^1.2.9"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.nlark.com/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+          "dev": true
+        }
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=",
+      "dev": true,
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-color-names": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
+      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+      "dev": true
+    },
+    "css-declaration-sorter": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1620754698059&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz",
+      "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.1",
+        "timsort": "^0.3.0"
+      }
+    },
+    "css-loader": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/css-loader/download/css-loader-1.0.1.tgz",
+      "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "css-selector-tokenizer": "^0.7.0",
+        "icss-utils": "^2.1.0",
+        "loader-utils": "^1.0.2",
+        "lodash": "^4.17.11",
+        "postcss": "^6.0.23",
+        "postcss-modules-extract-imports": "^1.2.0",
+        "postcss-modules-local-by-default": "^1.2.0",
+        "postcss-modules-scope": "^1.1.0",
+        "postcss-modules-values": "^1.3.0",
+        "postcss-value-parser": "^3.3.0",
+        "source-list-map": "^2.0.0"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "css-select": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz",
+      "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=",
+      "dev": true,
+      "requires": {
+        "boolbase": "^1.0.0",
+        "css-what": "^3.2.1",
+        "domutils": "^1.7.0",
+        "nth-check": "^1.0.2"
+      }
+    },
+    "css-select-base-adapter": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz",
+      "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=",
+      "dev": true
+    },
+    "css-selector-tokenizer": {
+      "version": "0.7.3",
+      "resolved": "https://registry.nlark.com/css-selector-tokenizer/download/css-selector-tokenizer-0.7.3.tgz",
+      "integrity": "sha1-c18mGG5nx0mq8nV4NAXPBmH66PE=",
+      "dev": true,
+      "requires": {
+        "cssesc": "^3.0.0",
+        "fastparse": "^1.1.2"
+      }
+    },
+    "css-tree": {
+      "version": "1.0.0-alpha.37",
+      "resolved": "https://registry.nlark.com/css-tree/download/css-tree-1.0.0-alpha.37.tgz",
+      "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=",
+      "dev": true,
+      "requires": {
+        "mdn-data": "2.0.4",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "css-what": {
+      "version": "3.4.2",
+      "resolved": "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz",
+      "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=",
+      "dev": true
+    },
+    "cssesc": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz",
+      "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=",
+      "dev": true
+    },
+    "cssnano": {
+      "version": "4.1.11",
+      "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz",
+      "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "cssnano-preset-default": "^4.0.8",
+        "is-resolvable": "^1.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "cssnano-preset-default": {
+      "version": "4.0.8",
+      "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1622234651206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz",
+      "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=",
+      "dev": true,
+      "requires": {
+        "css-declaration-sorter": "^4.0.1",
+        "cssnano-util-raw-cache": "^4.0.1",
+        "postcss": "^7.0.0",
+        "postcss-calc": "^7.0.1",
+        "postcss-colormin": "^4.0.3",
+        "postcss-convert-values": "^4.0.1",
+        "postcss-discard-comments": "^4.0.2",
+        "postcss-discard-duplicates": "^4.0.2",
+        "postcss-discard-empty": "^4.0.1",
+        "postcss-discard-overridden": "^4.0.1",
+        "postcss-merge-longhand": "^4.0.11",
+        "postcss-merge-rules": "^4.0.3",
+        "postcss-minify-font-values": "^4.0.2",
+        "postcss-minify-gradients": "^4.0.2",
+        "postcss-minify-params": "^4.0.2",
+        "postcss-minify-selectors": "^4.0.2",
+        "postcss-normalize-charset": "^4.0.1",
+        "postcss-normalize-display-values": "^4.0.2",
+        "postcss-normalize-positions": "^4.0.2",
+        "postcss-normalize-repeat-style": "^4.0.2",
+        "postcss-normalize-string": "^4.0.2",
+        "postcss-normalize-timing-functions": "^4.0.2",
+        "postcss-normalize-unicode": "^4.0.1",
+        "postcss-normalize-url": "^4.0.1",
+        "postcss-normalize-whitespace": "^4.0.2",
+        "postcss-ordered-values": "^4.1.2",
+        "postcss-reduce-initial": "^4.0.3",
+        "postcss-reduce-transforms": "^4.0.2",
+        "postcss-svgo": "^4.0.3",
+        "postcss-unique-selectors": "^4.0.1"
+      }
+    },
+    "cssnano-util-get-arguments": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz",
+      "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
+      "dev": true
+    },
+    "cssnano-util-get-match": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz",
+      "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
+      "dev": true
+    },
+    "cssnano-util-raw-cache": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz",
+      "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "cssnano-util-same-parent": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz",
+      "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=",
+      "dev": true
+    },
+    "csso": {
+      "version": "4.2.0",
+      "resolved": "https://registry.nlark.com/csso/download/csso-4.2.0.tgz",
+      "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=",
+      "dev": true,
+      "requires": {
+        "css-tree": "^1.1.2"
+      },
+      "dependencies": {
+        "css-tree": {
+          "version": "1.1.3",
+          "resolved": "https://registry.nlark.com/css-tree/download/css-tree-1.1.3.tgz",
+          "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=",
+          "dev": true,
+          "requires": {
+            "mdn-data": "2.0.14",
+            "source-map": "^0.6.1"
+          }
+        },
+        "mdn-data": {
+          "version": "2.0.14",
+          "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz",
+          "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "current-script-polyfill": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/current-script-polyfill/download/current-script-polyfill-1.0.0.tgz",
+      "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=",
+      "dev": true
+    },
+    "currently-unhandled": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "dev": true,
+      "requires": {
+        "array-find-index": "^1.0.1"
+      }
+    },
+    "cyclist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz",
+      "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+      "dev": true
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073647826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "de-indent": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
+      "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+      "dev": true
+    },
+    "debug": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
+      "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=",
+      "dev": true,
+      "requires": {
+        "ms": "2.1.2"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.nlark.com/decamelize/download/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
+    "decompress-response": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+      "requires": {
+        "mimic-response": "^3.1.0"
+      }
+    },
+    "deep-equal": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606860754950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz",
+      "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=",
+      "dev": true,
+      "requires": {
+        "is-arguments": "^1.0.4",
+        "is-date-object": "^1.0.1",
+        "is-regex": "^1.0.4",
+        "object-is": "^1.0.1",
+        "object-keys": "^1.1.1",
+        "regexp.prototype.flags": "^1.2.0"
+      }
+    },
+    "deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
+      "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
+    },
+    "default-gateway": {
+      "version": "5.0.5",
+      "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz",
+      "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=",
+      "dev": true,
+      "requires": {
+        "execa": "^3.3.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
+          "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
+          }
+        },
+        "execa": {
+          "version": "3.4.0",
+          "resolved": "https://registry.nlark.com/execa/download/execa-3.4.0.tgz",
+          "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "p-finally": "^2.0.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz",
+          "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz",
+          "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=",
+          "dev": true
+        },
+        "mimic-fn": {
+          "version": "2.1.0",
+          "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz",
+          "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
+          "dev": true
+        },
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz",
+          "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.0.0"
+          }
+        },
+        "onetime": {
+          "version": "5.1.2",
+          "resolved": "https://registry.nlark.com/onetime/download/onetime-5.1.2.tgz",
+          "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^2.1.0"
+          }
+        },
+        "p-finally": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-2.0.1.tgz",
+          "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=",
+          "dev": true
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz",
+          "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+          "dev": true
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+          "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
+          "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz",
+          "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
+      }
+    },
+    "defaults": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz",
+      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.2"
+      }
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
+      "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
+      "dev": true,
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
+      "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+      "dev": true,
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "del": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076849468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz",
+      "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=",
+      "dev": true,
+      "requires": {
+        "@types/glob": "^7.1.1",
+        "globby": "^6.1.0",
+        "is-path-cwd": "^2.0.0",
+        "is-path-in-cwd": "^2.0.0",
+        "p-map": "^2.0.0",
+        "pify": "^4.0.1",
+        "rimraf": "^2.6.3"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.nlark.com/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1618846983468&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+      "dev": true
+    },
+    "delegate": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
+      "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
+      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+      "dev": true
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+      "dev": true
+    },
+    "des.js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz",
+      "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+      "dev": true
+    },
+    "detect-node": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146902208&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz",
+      "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=",
+      "dev": true
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "dijkstrajs": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+      "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz",
+      "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "dev": true
+    },
+    "dns-packet": {
+      "version": "1.3.4",
+      "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz",
+      "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "dev": true,
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "dom-converter": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz",
+      "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=",
+      "dev": true,
+      "requires": {
+        "utila": "~0.4"
+      }
+    },
+    "dom-serializer": {
+      "version": "0.2.2",
+      "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz",
+      "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=",
+      "dev": true,
+      "requires": {
+        "domelementtype": "^2.0.1",
+        "entities": "^2.0.0"
+      },
+      "dependencies": {
+        "domelementtype": {
+          "version": "2.2.0",
+          "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz",
+          "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+          "dev": true
+        }
+      }
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz",
+      "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
+      "dev": true
+    },
+    "domelementtype": {
+      "version": "1.3.1",
+      "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-1.3.1.tgz",
+      "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=",
+      "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"
+      },
+      "dependencies": {
+        "domelementtype": {
+          "version": "2.2.0",
+          "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz",
+          "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+          "dev": true
+        }
+      }
+    },
+    "domutils": {
+      "version": "1.7.0",
+      "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz",
+      "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=",
+      "dev": true,
+      "requires": {
+        "dom-serializer": "0",
+        "domelementtype": "1"
+      }
+    },
+    "dot-prop": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778245785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz",
+      "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=",
+      "dev": true,
+      "requires": {
+        "is-obj": "^2.0.0"
+      }
+    },
+    "dotenv": {
+      "version": "7.0.0",
+      "resolved": "https://registry.nlark.com/dotenv/download/dotenv-7.0.0.tgz",
+      "integrity": "sha1-or481Sc2ZzIG6KhftSEO6ilijnw=",
+      "dev": true
+    },
+    "dotenv-expand": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz",
+      "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
+      "dev": true
+    },
+    "duplexer": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz",
+      "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY="
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
+      "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "easy-stack": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/easy-stack/download/easy-stack-1.0.1.tgz",
+      "integrity": "sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY=",
+      "dev": true
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+      "dev": true,
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+      "dev": true
+    },
+    "ejs": {
+      "version": "2.7.4",
+      "resolved": "https://registry.nlark.com/ejs/download/ejs-2.7.4.tgz",
+      "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=",
+      "dev": true
+    },
+    "electron-to-chromium": {
+      "version": "1.3.750",
+      "resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.750.tgz",
+      "integrity": "sha1-fl729HgxawvWVq9ZQv5QJhDpfq8=",
+      "dev": true
+    },
+    "element-china-area-data": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/element-china-area-data/-/element-china-area-data-6.0.2.tgz",
+      "integrity": "sha512-LGVp0crOnXrcQqNc5RHwPiR8AV2qUrDl4UgZ/Qn2n/izLqMcn924gcJ/pTRPnuT74AFin2SUyMtmmcoe5PDfQQ==",
+      "requires": {
+        "china-division": "^2.6.1"
+      }
+    },
+    "element-ui": {
+      "version": "2.15.13",
+      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.13.tgz",
+      "integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==",
+      "requires": {
+        "async-validator": "~1.8.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.0",
+        "deepmerge": "^1.2.0",
+        "normalize-wheel": "^1.0.1",
+        "resize-observer-polyfill": "^1.5.0",
+        "throttle-debounce": "^1.0.1"
+      }
+    },
+    "elliptic": {
+      "version": "6.5.4",
+      "resolved": "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz",
+      "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.11.9",
+        "brorand": "^1.1.0",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.1",
+        "inherits": "^2.0.4",
+        "minimalistic-assert": "^1.0.1",
+        "minimalistic-crypto-utils": "^1.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.nlark.com/emoji-regex/download/emoji-regex-8.0.0.tgz",
+      "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc="
+    },
+    "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
+    },
+    "encode-utf8": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+      "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
+    },
+    "end-of-stream": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz",
+      "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=",
+      "dev": true,
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "4.5.0",
+      "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1620663214002&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz",
+      "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.5.0",
+        "tapable": "^1.0.0"
+      },
+      "dependencies": {
+        "memory-fs": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz",
+          "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=",
+          "dev": true,
+          "requires": {
+            "errno": "^0.1.3",
+            "readable-stream": "^2.0.1"
+          }
+        }
+      }
+    },
+    "entities": {
+      "version": "2.2.0",
+      "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz",
+      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.8",
+      "resolved": "https://registry.nlark.com/errno/download/errno-0.1.8.tgz",
+      "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=",
+      "dev": true,
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
+      "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "error-stack-parser": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz",
+      "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=",
+      "dev": true,
+      "requires": {
+        "stackframe": "^1.1.1"
+      }
+    },
+    "es-abstract": {
+      "version": "1.18.3",
+      "resolved": "https://registry.nlark.com/es-abstract/download/es-abstract-1.18.3.tgz?cache=0&sync_timestamp=1622157901871&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.3.tgz",
+      "integrity": "sha1-JcTDOAonqiA8RLK2hbupTaMbY+A=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "es-to-primitive": "^1.2.1",
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.2",
+        "is-callable": "^1.2.3",
+        "is-negative-zero": "^2.0.1",
+        "is-regex": "^1.1.3",
+        "is-string": "^1.0.6",
+        "object-inspect": "^1.10.3",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.2",
+        "string.prototype.trimend": "^1.0.4",
+        "string.prototype.trimstart": "^1.0.4",
+        "unbox-primitive": "^1.0.1"
+      }
+    },
+    "es-to-primitive": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz",
+      "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=",
+      "dev": true,
+      "requires": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      }
+    },
+    "escalade": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz",
+      "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=",
+      "dev": true
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+      "dev": true
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "eslint-scope": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz",
+      "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=",
+      "dev": true,
+      "requires": {
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      }
+    },
+    "esprima": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz",
+      "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
+      "dev": true
+    },
+    "esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz",
+      "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=",
+      "dev": true,
+      "requires": {
+        "estraverse": "^5.2.0"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596643087695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz",
+          "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=",
+          "dev": true
+        }
+      }
+    },
+    "estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596643087695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz",
+      "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=",
+      "dev": true
+    },
+    "esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz?cache=0&sync_timestamp=1564535492241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz",
+      "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",
+      "dev": true
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
+    },
+    "event-pubsub": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz",
+      "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=",
+      "dev": true
+    },
+    "event-stream": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
+      "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
+      "requires": {
+        "duplexer": "^0.1.1",
+        "from": "^0.1.7",
+        "map-stream": "0.0.7",
+        "pause-stream": "^0.0.11",
+        "split": "^1.0.1",
+        "stream-combiner": "^0.2.2",
+        "through": "^2.3.8"
+      }
+    },
+    "eventemitter3": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517819668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz",
+      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=",
+      "dev": true
+    },
+    "events": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614444838320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz",
+      "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=",
+      "dev": true
+    },
+    "eventsource": {
+      "version": "1.1.0",
+      "resolved": "https://registry.nlark.com/eventsource/download/eventsource-1.1.0.tgz",
+      "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=",
+      "dev": true,
+      "requires": {
+        "original": "^1.0.0"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=",
+      "dev": true,
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "1.0.0",
+      "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz",
+      "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^6.0.0",
+        "get-stream": "^4.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "express": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&sync_timestamp=1592843208199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz",
+      "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.7",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.19.0",
+        "content-disposition": "0.5.3",
+        "content-type": "~1.0.4",
+        "cookie": "0.4.0",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.1.2",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.5",
+        "qs": "6.7.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.1.2",
+        "send": "0.17.1",
+        "serve-static": "1.14.1",
+        "setprototypeof": "1.1.1",
+        "statuses": "~1.5.0",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz",
+          "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+          "dev": true
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
+      "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=",
+      "dev": true
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "dev": true,
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz",
+      "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+      "dev": true,
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
+    "fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=",
+      "dev": true
+    },
+    "fast-glob": {
+      "version": "2.2.7",
+      "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1618847045365&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz",
+      "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=",
+      "dev": true,
+      "requires": {
+        "@mrmlnc/readdir-enhanced": "^2.2.1",
+        "@nodelib/fs.stat": "^1.1.2",
+        "glob-parent": "^3.1.0",
+        "is-glob": "^4.0.0",
+        "merge2": "^1.2.3",
+        "micromatch": "^3.1.10"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        }
+      }
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576367703577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=",
+      "dev": true
+    },
+    "fastparse": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz",
+      "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.11.4",
+      "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz",
+      "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=",
+      "dev": true,
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "figgy-pudding": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
+      "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=",
+      "dev": true
+    },
+    "file-loader": {
+      "version": "3.0.1",
+      "resolved": "https://registry.nlark.com/file-loader/download/file-loader-3.0.1.tgz",
+      "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=",
+      "dev": true,
+      "optional": true
+    },
+    "filesize": {
+      "version": "3.6.1",
+      "resolved": "https://registry.nlark.com/filesize/download/filesize-3.6.1.tgz",
+      "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=",
+      "dev": true
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
+      "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "find-babel-config": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz",
+      "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=",
+      "dev": true,
+      "requires": {
+        "json5": "^0.5.1",
+        "path-exists": "^3.0.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        }
+      }
+    },
+    "find-cache-dir": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz",
+      "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^3.0.2",
+        "pkg-dir": "^4.1.0"
+      }
+    },
+    "find-up": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
+      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+      "dev": true,
+      "requires": {
+        "locate-path": "^2.0.0"
+      }
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.14.1",
+      "resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz",
+      "integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M="
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+      "dev": true
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.nlark.com/form-data/download/form-data-2.3.3.tgz",
+      "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=",
+      "dev": true,
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "forwarded": {
+      "version": "0.2.0",
+      "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503508967&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz",
+      "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=",
+      "dev": true
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "dev": true,
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
+    },
+    "from": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+      "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-extra": {
+      "version": "7.0.1",
+      "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz",
+      "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "jsonfile": "^4.0.0",
+        "universalify": "^0.1.0"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "fsevents": {
+      "version": "2.3.2",
+      "resolved": "https://registry.nlark.com/fsevents/download/fsevents-2.3.2.tgz",
+      "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
+      "dev": true,
+      "optional": true
+    },
+    "fstream": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz",
+      "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "inherits": "~2.0.0",
+        "mkdirp": ">=0.5 0",
+        "rimraf": "2"
+      }
+    },
+    "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
+    },
+    "gauge": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1580507640343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz",
+      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.0.3",
+        "console-control-strings": "^1.0.0",
+        "has-unicode": "^2.0.0",
+        "object-assign": "^4.1.0",
+        "signal-exit": "^3.0.0",
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wide-align": "^1.1.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "dev": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "dev": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        }
+      }
+    },
+    "gaze": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
+      "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
+      "dev": true,
+      "requires": {
+        "globule": "^1.0.0"
+      }
+    },
+    "gensync": {
+      "version": "1.0.0-beta.2",
+      "resolved": "https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz",
+      "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=",
+      "dev": true
+    },
+    "get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz",
+      "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34="
+    },
+    "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"
+      }
+    },
+    "get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz?cache=0&sync_timestamp=1618557719783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-4.0.1.tgz",
+      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+      "dev": true
+    },
+    "get-stream": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz",
+      "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
+      "dev": true,
+      "requires": {
+        "pump": "^3.0.0"
+      }
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+      "dev": true
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.7",
+      "resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
+      "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
+      "dev": true,
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz",
+      "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "is-glob": "^4.0.1"
+      }
+    },
+    "glob-to-regexp": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz",
+      "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+      "dev": true
+    },
+    "globals": {
+      "version": "11.12.0",
+      "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz",
+      "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=",
+      "dev": true
+    },
+    "globby": {
+      "version": "9.2.0",
+      "resolved": "https://registry.nlark.com/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1618846983468&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz",
+      "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=",
+      "dev": true,
+      "requires": {
+        "@types/glob": "^7.1.1",
+        "array-union": "^1.0.2",
+        "dir-glob": "^2.2.2",
+        "fast-glob": "^2.2.6",
+        "glob": "^7.1.3",
+        "ignore": "^4.0.3",
+        "pify": "^4.0.1",
+        "slash": "^2.0.0"
+      },
+      "dependencies": {
+        "ignore": {
+          "version": "4.0.6",
+          "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz",
+          "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+          "dev": true
+        }
+      }
+    },
+    "globule": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz",
+      "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=",
+      "dev": true,
+      "requires": {
+        "glob": "~7.1.1",
+        "lodash": "~4.17.10",
+        "minimatch": "~3.0.2"
+      }
+    },
+    "good-listener": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
+      "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
+      "requires": {
+        "delegate": "^3.1.2"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.6",
+      "resolved": "https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.6.tgz",
+      "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=",
+      "dev": true
+    },
+    "gzip-size": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz",
+      "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=",
+      "dev": true,
+      "requires": {
+        "duplexer": "^0.1.1",
+        "pify": "^4.0.1"
+      }
+    },
+    "handle-thing": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz",
+      "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=",
+      "dev": true
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+      "dev": true
+    },
+    "har-validator": {
+      "version": "5.1.5",
+      "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082578993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz",
+      "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.12.3",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "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-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        }
+      }
+    },
+    "has-bigints": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/has-bigints/download/has-bigints-1.0.1.tgz",
+      "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=",
+      "dev": true
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
+    "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
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz",
+      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+      "dev": true
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "dev": true,
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz",
+      "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
+          "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
+          "dev": true
+        }
+      }
+    },
+    "hash-sum": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
+      "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+      "dev": true
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz",
+      "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "he": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
+      "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
+      "dev": true
+    },
+    "hex-color-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz",
+      "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=",
+      "dev": true
+    },
+    "highlight.js": {
+      "version": "10.7.3",
+      "resolved": "https://registry.nlark.com/highlight.js/download/highlight.js-10.7.3.tgz",
+      "integrity": "sha1-aXJy45kTVuQMPKxWanTu9oF1ZTE=",
+      "dev": true
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "hoopy": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz",
+      "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=",
+      "dev": true
+    },
+    "hosted-git-info": {
+      "version": "2.8.9",
+      "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz",
+      "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=",
+      "dev": true
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "hsl-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz",
+      "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+      "dev": true
+    },
+    "hsla-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz",
+      "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+      "dev": true
+    },
+    "html-entities": {
+      "version": "1.4.0",
+      "resolved": "https://registry.nlark.com/html-entities/download/html-entities-1.4.0.tgz",
+      "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=",
+      "dev": true
+    },
+    "html-minifier": {
+      "version": "3.5.21",
+      "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz",
+      "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=",
+      "dev": true,
+      "requires": {
+        "camel-case": "3.0.x",
+        "clean-css": "4.2.x",
+        "commander": "2.17.x",
+        "he": "1.2.x",
+        "param-case": "2.1.x",
+        "relateurl": "0.2.x",
+        "uglify-js": "3.4.x"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.17.1",
+          "resolved": "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
+          "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=",
+          "dev": true
+        }
+      }
+    },
+    "html-tags": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
+      "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+      "dev": true
+    },
+    "html-webpack-plugin": {
+      "version": "3.2.0",
+      "resolved": "https://registry.nlark.com/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz",
+      "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+      "dev": true,
+      "requires": {
+        "html-minifier": "^3.2.3",
+        "loader-utils": "^0.2.16",
+        "lodash": "^4.17.3",
+        "pretty-error": "^2.0.2",
+        "tapable": "^1.0.0",
+        "toposort": "^1.0.0",
+        "util.promisify": "1.0.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "https://registry.nlark.com/big.js/download/big.js-3.2.0.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-3.2.0.tgz",
+          "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
+          "dev": true
+        },
+        "emojis-list": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
+          "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+          "dev": true
+        },
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "0.2.17",
+          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
+          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0",
+            "object-assign": "^4.0.1"
+          }
+        },
+        "util.promisify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159975962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz",
+          "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=",
+          "dev": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "object.getownpropertydescriptors": "^2.0.3"
+          }
+        }
+      }
+    },
+    "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"
+      },
+      "dependencies": {
+        "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.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz",
+          "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+          "dev": true
+        },
+        "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"
+          }
+        }
+      }
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "dev": true
+    },
+    "http-errors": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407634112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz",
+      "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
+      "dev": true,
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.1",
+        "statuses": ">= 1.5.0 < 2",
+        "toidentifier": "1.0.0"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        }
+      }
+    },
+    "http-parser-js": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz",
+      "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=",
+      "dev": true
+    },
+    "http-proxy": {
+      "version": "1.18.1",
+      "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz",
+      "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.19.1",
+      "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz",
+      "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
+      "dev": true,
+      "requires": {
+        "http-proxy": "^1.17.0",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.11",
+        "micromatch": "^3.1.10"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868555829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+      "dev": true
+    },
+    "human-signals": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz",
+      "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=",
+      "dev": true
+    },
+    "iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1621826342262&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz",
+      "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
+      "dev": true,
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "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": "2.1.0",
+      "resolved": "https://registry.nlark.com/icss-utils/download/icss-utils-2.1.0.tgz",
+      "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^6.0.1"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "ieee754": {
+      "version": "1.2.1",
+      "resolved": "https://registry.nlark.com/ieee754/download/ieee754-1.2.1.tgz",
+      "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=",
+      "dev": true
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "3.3.10",
+      "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz",
+      "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
+      "dev": true
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469579940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz",
+      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+      "dev": true,
+      "requires": {
+        "caller-path": "^2.0.0",
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-local": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz?cache=0&sync_timestamp=1577797775692&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz",
+      "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=",
+      "dev": true,
+      "requires": {
+        "pkg-dir": "^3.0.0",
+        "resolve-cwd": "^2.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz",
+          "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
+          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+          "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.nlark.com/pkg-dir/download/pkg-dir-3.0.0.tgz",
+          "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        }
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
+    "in-publish": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz",
+      "integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw=",
+      "dev": true
+    },
+    "indent-string": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz",
+      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "indexes-of": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
+      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+      "dev": true
+    },
+    "infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz",
+      "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz",
+      "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
+    },
+    "internal-ip": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz",
+      "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=",
+      "dev": true,
+      "requires": {
+        "default-gateway": "^4.2.0",
+        "ipaddr.js": "^1.9.0"
+      },
+      "dependencies": {
+        "default-gateway": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz",
+          "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=",
+          "dev": true,
+          "requires": {
+            "execa": "^1.0.0",
+            "ip-regex": "^2.1.0"
+          }
+        }
+      }
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz",
+      "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+      "dev": true
+    },
+    "ip-regex": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1618846943469&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz",
+      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+      "dev": true
+    },
+    "ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=",
+      "dev": true
+    },
+    "is-absolute-url": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz",
+      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-arguments": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz",
+      "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.0"
+      }
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "dev": true
+    },
+    "is-bigint": {
+      "version": "1.0.2",
+      "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.2.tgz",
+      "integrity": "sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=",
+      "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,
+      "optional": true,
+      "requires": {
+        "binary-extensions": "^2.0.0"
+      }
+    },
+    "is-boolean-object": {
+      "version": "1.1.1",
+      "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.1.tgz",
+      "integrity": "sha1-PAh48DXLghIo01DS4eNnGXFqPeg=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429876103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
+      "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
+      "dev": true
+    },
+    "is-callable": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz?cache=0&sync_timestamp=1612133072647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.3.tgz",
+      "integrity": "sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=",
+      "dev": true
+    },
+    "is-color-stop": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz",
+      "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+      "dev": true,
+      "requires": {
+        "css-color-names": "^0.0.4",
+        "hex-color-regex": "^1.1.0",
+        "hsl-regex": "^1.0.0",
+        "hsla-regex": "^1.0.0",
+        "rgb-regex": "^1.0.1",
+        "rgba-regex": "^1.0.0"
+      }
+    },
+    "is-core-module": {
+      "version": "2.4.0",
+      "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz",
+      "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.3"
+      }
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-date-object": {
+      "version": "1.0.4",
+      "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.4.tgz",
+      "integrity": "sha1-VQz8wDr62gXuo90wmBx7CVUfc+U=",
+      "dev": true
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
+      "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+      "dev": true,
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+          "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+          "dev": true
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-docker": {
+      "version": "2.2.1",
+      "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz",
+      "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=",
+      "dev": true
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
+    },
+    "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-finite": {
+      "version": "1.1.0",
+      "resolved": "https://registry.nlark.com/is-finite/download/is-finite-1.1.0.tgz",
+      "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=",
+      "dev": true
+    },
+    "is-fullwidth-code-point": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+      "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-negative-zero": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123422635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz",
+      "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=",
+      "dev": true
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-number-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.5.tgz",
+      "integrity": "sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=",
+      "dev": true
+    },
+    "is-obj": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/is-obj/download/is-obj-2.0.0.tgz",
+      "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=",
+      "dev": true
+    },
+    "is-path-cwd": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz",
+      "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz",
+      "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "^2.1.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz",
+      "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.2"
+      }
+    },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "https://registry.nlark.com/is-plain-obj/download/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+      "dev": true
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1599667246252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz",
+      "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "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"
+      }
+    },
+    "is-resolvable": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
+      "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
+      "dev": true
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-string": {
+      "version": "1.0.6",
+      "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.6.tgz?cache=0&sync_timestamp=1620448217105&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.6.tgz",
+      "integrity": "sha1-P+XVmS+w2TQE8yWE1LAXmnG1Sl8=",
+      "dev": true
+    },
+    "is-symbol": {
+      "version": "1.0.4",
+      "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501182675&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz",
+      "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=",
+      "dev": true,
+      "requires": {
+        "has-symbols": "^1.0.2"
+      }
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+      "dev": true
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+      "dev": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
+      "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",
+      "dev": true
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1592843177178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+      "dev": true
+    },
+    "javascript-stringify": {
+      "version": "1.6.0",
+      "resolved": "https://registry.nlark.com/javascript-stringify/download/javascript-stringify-1.6.0.tgz",
+      "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=",
+      "dev": true
+    },
+    "js-base64": {
+      "version": "2.6.4",
+      "resolved": "https://registry.nlark.com/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1621703447855&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz",
+      "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=",
+      "dev": true
+    },
+    "js-binary-schema-parser": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
+      "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
+    },
+    "js-levenshtein": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz",
+      "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=",
+      "dev": true
+    },
+    "js-message": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz?cache=0&sync_timestamp=1605129209185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-message%2Fdownload%2Fjs-message-1.0.7.tgz",
+      "integrity": "sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc=",
+      "dev": true
+    },
+    "js-queue": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.2.tgz?cache=0&sync_timestamp=1605129207324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-queue%2Fdownload%2Fjs-queue-2.0.2.tgz",
+      "integrity": "sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II=",
+      "dev": true,
+      "requires": {
+        "easy-stack": "^1.0.1"
+      }
+    },
+    "js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz",
+      "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618435151523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz",
+      "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "dev": true
+    },
+    "jsesc": {
+      "version": "2.5.2",
+      "resolved": "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz",
+      "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
+      "dev": true
+    },
+    "json-parse-even-better-errors": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz",
+      "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=",
+      "dev": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.nlark.com/json-schema/download/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+      "dev": true
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+      "dev": true
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+      "dev": true
+    },
+    "json3": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz",
+      "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=",
+      "dev": true
+    },
+    "json5": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz",
+      "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "jsonfile": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161876665&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz",
+      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "killable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz",
+      "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz",
+      "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
+      "dev": true
+    },
+    "launch-editor": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
+      "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.3.0",
+        "shell-quote": "^1.6.1"
+      }
+    },
+    "launch-editor-middleware": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz",
+      "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=",
+      "dev": true,
+      "requires": {
+        "launch-editor": "^2.2.1"
+      }
+    },
+    "lines-and-columns": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz",
+      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+      "dev": true
+    },
+    "load-json-file": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^2.2.0",
+        "pify": "^2.0.0",
+        "pinkie-promise": "^2.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "https://registry.nlark.com/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "https://registry.nlark.com/loader-runner/download/loader-runner-2.4.0.tgz",
+      "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=",
+      "dev": true
+    },
+    "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"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+          "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        }
+      }
+    },
+    "locate-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
+      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "dev": true,
+      "requires": {
+        "p-locate": "^2.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1618847150612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz",
+      "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=",
+      "dev": true
+    },
+    "lodash.assign": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+      "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw=="
+    },
+    "lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+      "dev": true
+    },
+    "lodash.defaultsdeep": {
+      "version": "4.6.1",
+      "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz",
+      "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=",
+      "dev": true
+    },
+    "lodash.kebabcase": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz",
+      "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=",
+      "dev": true
+    },
+    "lodash.mapvalues": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz",
+      "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+      "dev": true
+    },
+    "lodash.memoize": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
+      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+      "dev": true
+    },
+    "lodash.transform": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz",
+      "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=",
+      "dev": true
+    },
+    "lodash.uniq": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
+      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+      "dev": true
+    },
+    "log-symbols": {
+      "version": "2.2.0",
+      "resolved": "https://registry.nlark.com/log-symbols/download/log-symbols-2.2.0.tgz",
+      "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "loglevel": {
+      "version": "1.7.1",
+      "resolved": "https://registry.nlark.com/loglevel/download/loglevel-1.7.1.tgz",
+      "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz",
+      "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "loud-rejection": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz?cache=0&sync_timestamp=1577797759313&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floud-rejection%2Fdownload%2Floud-rejection-1.6.0.tgz",
+      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "dev": true,
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.0"
+      }
+    },
+    "lower-case": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867514181&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz",
+      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz",
+      "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
+      "dev": true,
+      "requires": {
+        "yallist": "^3.0.2"
+      }
+    },
+    "make-dir": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz",
+      "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=",
+      "dev": true,
+      "requires": {
+        "semver": "^6.0.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+      "dev": true
+    },
+    "map-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771341569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz",
+      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+      "dev": true
+    },
+    "map-stream": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
+      "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ=="
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "dev": true,
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz",
+      "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "mdn-data": {
+      "version": "2.0.4",
+      "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz",
+      "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=",
+      "dev": true
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "dev": true,
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1623137159863&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "dev": true,
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "dev": true
+    },
+    "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"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "merge-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz",
+      "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=",
+      "dev": true
+    },
+    "merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz",
+      "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
+      "dev": true
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz",
+      "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz",
+      "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "mime": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz",
+      "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=",
+      "dev": true
+    },
+    "mime-db": {
+      "version": "1.48.0",
+      "resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.48.0.tgz?cache=0&sync_timestamp=1622433556078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.48.0.tgz",
+      "integrity": "sha1-41sxBF3X6to6qtU37YijOvvvLR0=",
+      "dev": true
+    },
+    "mime-types": {
+      "version": "2.1.31",
+      "resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.31.tgz?cache=0&sync_timestamp=1622569304088&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.31.tgz",
+      "integrity": "sha1-oA12t0MXxh+cLbIhi46fjpxcnms=",
+      "dev": true,
+      "requires": {
+        "mime-db": "1.48.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "1.2.0",
+      "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-1.2.0.tgz",
+      "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=",
+      "dev": true
+    },
+    "mimic-response": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+    },
+    "mingo": {
+      "version": "6.4.3",
+      "resolved": "https://registry.npmjs.org/mingo/-/mingo-6.4.3.tgz",
+      "integrity": "sha512-sR4uAFRXwo634Jm8xaz0V1t4D0hzJrrkD8BIoDobLt2mrwweN+PlLDeZ10JrdC4OgBRB1z26Vb5qvHB24JnkZQ=="
+    },
+    "mini-css-extract-plugin": {
+      "version": "0.8.2",
+      "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz",
+      "integrity": "sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "normalize-url": "1.9.1",
+        "schema-utils": "^1.0.0",
+        "webpack-sources": "^1.1.0"
+      },
+      "dependencies": {
+        "normalize-url": {
+          "version": "1.9.1",
+          "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-1.9.1.tgz",
+          "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+          "dev": true,
+          "requires": {
+            "object-assign": "^4.0.1",
+            "prepend-http": "^1.0.0",
+            "query-string": "^4.1.0",
+            "sort-keys": "^1.0.0"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=",
+      "dev": true
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
+      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz",
+      "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=",
+      "dev": true
+    },
+    "mississippi": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz",
+      "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^3.0.0",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz",
+      "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz",
+      "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
+      "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
+      "dev": true
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "https://registry.nlark.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1621890647706&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz",
+      "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=",
+      "dev": true,
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+      "dev": true
+    },
+    "mz": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz",
+      "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=",
+      "dev": true,
+      "requires": {
+        "any-promise": "^1.0.0",
+        "object-assign": "^4.0.1",
+        "thenify-all": "^1.0.0"
+      }
+    },
+    "nan": {
+      "version": "2.14.2",
+      "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz",
+      "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=",
+      "dev": true
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz",
+      "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "negotiator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
+      "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=",
+      "dev": true
+    },
+    "neo-async": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz",
+      "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=",
+      "dev": true
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.nlark.com/nice-try/download/nice-try-1.0.5.tgz",
+      "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=",
+      "dev": true
+    },
+    "no-case": {
+      "version": "2.3.2",
+      "resolved": "https://registry.nlark.com/no-case/download/no-case-2.3.2.tgz",
+      "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
+      "dev": true,
+      "requires": {
+        "lower-case": "^1.1.1"
+      }
+    },
+    "node-forge": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010726129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz",
+      "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=",
+      "dev": true
+    },
+    "node-gyp": {
+      "version": "3.8.0",
+      "resolved": "https://registry.nlark.com/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&sync_timestamp=1622168102506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz",
+      "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=",
+      "dev": true,
+      "requires": {
+        "fstream": "^1.0.0",
+        "glob": "^7.0.3",
+        "graceful-fs": "^4.1.2",
+        "mkdirp": "^0.5.0",
+        "nopt": "2 || 3",
+        "npmlog": "0 || 1 || 2 || 3 || 4",
+        "osenv": "0",
+        "request": "^2.87.0",
+        "rimraf": "2",
+        "semver": "~5.3.0",
+        "tar": "^2.0.0",
+        "which": "1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.3.0",
+          "resolved": "https://registry.nlark.com/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
+          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+          "dev": true
+        }
+      }
+    },
+    "node-ipc": {
+      "version": "9.1.4",
+      "resolved": "https://registry.nlark.com/node-ipc/download/node-ipc-9.1.4.tgz",
+      "integrity": "sha1-Ks+WJoGv2sJgKHbZj+ZDTVTZvTw=",
+      "dev": true,
+      "requires": {
+        "event-pubsub": "4.3.0",
+        "js-message": "1.0.7",
+        "js-queue": "2.0.2"
+      }
+    },
+    "node-libs-browser": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz",
+      "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=",
+      "dev": true,
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.1",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "^1.0.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "node-releases": {
+      "version": "1.1.73",
+      "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.73.tgz",
+      "integrity": "sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=",
+      "dev": true
+    },
+    "node-sass": {
+      "version": "4.14.1",
+      "resolved": "https://registry.nlark.com/node-sass/download/node-sass-4.14.1.tgz",
+      "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
+      "dev": true,
+      "requires": {
+        "async-foreach": "^0.1.3",
+        "chalk": "^1.1.1",
+        "cross-spawn": "^3.0.0",
+        "gaze": "^1.0.0",
+        "get-stdin": "^4.0.1",
+        "glob": "^7.0.3",
+        "in-publish": "^2.0.0",
+        "lodash": "^4.17.15",
+        "meow": "^3.7.0",
+        "mkdirp": "^0.5.1",
+        "nan": "^2.13.2",
+        "node-gyp": "^3.8.0",
+        "npmlog": "^4.0.0",
+        "request": "^2.88.0",
+        "sass-graph": "2.2.5",
+        "stdout-stream": "^1.4.0",
+        "true-case-path": "^1.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "cross-spawn": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
+          "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "which": "^1.2.9"
+          }
+        },
+        "lru-cache": {
+          "version": "4.1.5",
+          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+          "dev": true,
+          "requires": {
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        },
+        "yallist": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
+        }
+      }
+    },
+    "nopt": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz?cache=0&sync_timestamp=1597649892953&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-3.0.6.tgz",
+      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.nlark.com/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+          "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
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "normalize-url": {
+      "version": "3.3.0",
+      "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz",
+      "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=",
+      "dev": true
+    },
+    "normalize-wheel": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "npmlog": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
+      "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
+      "dev": true,
+      "requires": {
+        "are-we-there-yet": "~1.1.2",
+        "console-control-strings": "~1.1.0",
+        "gauge": "~2.7.3",
+        "set-blocking": "~2.0.0"
+      }
+    },
+    "nth-check": {
+      "version": "1.0.2",
+      "resolved": "https://registry.nlark.com/nth-check/download/nth-check-1.0.2.tgz",
+      "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=",
+      "dev": true,
+      "requires": {
+        "boolbase": "~1.0.0"
+      }
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+      "dev": true
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
+      "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=",
+      "dev": true
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "dev": true,
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-inspect": {
+      "version": "1.10.3",
+      "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz",
+      "integrity": "sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k=",
+      "dev": true
+    },
+    "object-is": {
+      "version": "1.1.5",
+      "resolved": "https://registry.nlark.com/object-is/download/object-is-1.1.5.tgz",
+      "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
+      "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=",
+      "dev": true
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.assign": {
+      "version": "4.1.2",
+      "resolved": "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz",
+      "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.0",
+        "define-properties": "^1.1.3",
+        "has-symbols": "^1.0.1",
+        "object-keys": "^1.1.1"
+      }
+    },
+    "object.getownpropertydescriptors": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613862016164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz",
+      "integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.18.0-next.2"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "object.values": {
+      "version": "1.1.4",
+      "resolved": "https://registry.nlark.com/object.values/download/object.values-1.1.4.tgz",
+      "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.18.2"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz",
+      "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=",
+      "dev": true
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "on-headers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
+      "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=",
+      "dev": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.nlark.com/onetime/download/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      }
+    },
+    "open": {
+      "version": "6.4.0",
+      "resolved": "https://registry.nlark.com/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1621868447130&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fopen%2Fdownload%2Fopen-6.4.0.tgz",
+      "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "opener": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz",
+      "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=",
+      "dev": true
+    },
+    "opn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz",
+      "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "ora": {
+      "version": "3.4.0",
+      "resolved": "https://registry.nlark.com/ora/download/ora-3.4.0.tgz",
+      "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "cli-cursor": "^2.1.0",
+        "cli-spinners": "^2.0.0",
+        "log-symbols": "^2.2.0",
+        "strip-ansi": "^5.2.0",
+        "wcwidth": "^1.0.1"
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz",
+      "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=",
+      "dev": true,
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+      "dev": true
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz",
+      "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
+      }
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "1.3.0",
+      "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz",
+      "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+      "dev": true,
+      "requires": {
+        "p-try": "^1.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
+      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "dev": true,
+      "requires": {
+        "p-limit": "^1.1.0"
+      }
+    },
+    "p-map": {
+      "version": "2.1.0",
+      "resolved": "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz",
+      "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=",
+      "dev": true
+    },
+    "p-retry": {
+      "version": "3.0.1",
+      "resolved": "https://registry.nlark.com/p-retry/download/p-retry-3.0.1.tgz",
+      "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=",
+      "dev": true,
+      "requires": {
+        "retry": "^0.12.0"
+      }
+    },
+    "p-try": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
+      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+      "dev": true
+    },
+    "pako": {
+      "version": "1.0.11",
+      "resolved": "https://registry.nlark.com/pako/download/pako-1.0.11.tgz",
+      "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=",
+      "dev": true
+    },
+    "parallel-transform": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz",
+      "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=",
+      "dev": true,
+      "requires": {
+        "cyclist": "^1.0.1",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "param-case": {
+      "version": "2.1.1",
+      "resolved": "https://registry.nlark.com/param-case/download/param-case-2.1.1.tgz",
+      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0"
+      }
+    },
+    "parenthesis": {
+      "version": "3.1.8",
+      "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz",
+      "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
+    },
+    "parse-asn1": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597165710136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz",
+      "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^5.2.0",
+        "browserify-aes": "^1.0.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-json": {
+      "version": "4.0.0",
+      "resolved": "https://registry.nlark.com/parse-json/download/parse-json-4.0.0.tgz",
+      "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+      "dev": true,
+      "requires": {
+        "error-ex": "^1.3.1",
+        "json-parse-better-errors": "^1.0.1"
+      }
+    },
+    "parse5": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595850971402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz",
+      "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=",
+      "dev": true
+    },
+    "parse5-htmlparser2-tree-adapter": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+      "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=",
+      "dev": true,
+      "requires": {
+        "parse5": "^6.0.1"
+      },
+      "dependencies": {
+        "parse5": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz?cache=0&sync_timestamp=1595850971402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-6.0.1.tgz",
+          "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
+          "dev": true
+        }
+      }
+    },
+    "parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz",
+      "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+      "dev": true
+    },
+    "path-browserify": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz",
+      "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=",
+      "dev": true
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.nlark.com/path-key/download/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "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
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-3.0.0.tgz",
+      "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "pause-stream": {
+      "version": "0.0.11",
+      "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+      "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
+      "requires": {
+        "through": "~2.3"
+      }
+    },
+    "pbkdf2": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.2.tgz?cache=0&sync_timestamp=1617976842723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.2.tgz",
+      "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=",
+      "dev": true,
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+      "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,
+      "optional": true
+    },
+    "pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
+      "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
+      "dev": true
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+      "dev": true
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "dev": true,
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "4.2.0",
+      "resolved": "https://registry.nlark.com/pkg-dir/download/pkg-dir-4.2.0.tgz",
+      "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
+      "dev": true,
+      "requires": {
+        "find-up": "^4.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+          "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+          "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz",
+          "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz",
+          "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+          "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+          "dev": true
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
+          "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+          "dev": true
+        }
+      }
+    },
+    "pkg-up": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz",
+      "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.1.0"
+      }
+    },
+    "pngjs": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+      "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+    },
+    "portfinder": {
+      "version": "1.0.28",
+      "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz",
+      "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.2",
+        "debug": "^3.1.1",
+        "mkdirp": "^0.5.5"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.7",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
+          "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+      "dev": true
+    },
+    "postcss": {
+      "version": "7.0.35",
+      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz",
+      "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "source-map": "^0.6.1",
+        "supports-color": "^6.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "postcss-calc": {
+      "version": "7.0.5",
+      "resolved": "https://registry.nlark.com/postcss-calc/download/postcss-calc-7.0.5.tgz",
+      "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.27",
+        "postcss-selector-parser": "^6.0.2",
+        "postcss-value-parser": "^4.0.2"
+      }
+    },
+    "postcss-colormin": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz",
+      "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "color": "^3.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-convert-values": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz",
+      "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-discard-comments": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1621449592883&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz",
+      "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-duplicates": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1621449593093&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz",
+      "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-empty": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz",
+      "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-overridden": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz",
+      "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.1.2",
+      "resolved": "https://registry.nlark.com/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1618846857630&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz",
+      "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-3.0.0.tgz",
+      "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^7.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "postcss-merge-longhand": {
+      "version": "4.0.11",
+      "resolved": "https://registry.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz",
+      "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=",
+      "dev": true,
+      "requires": {
+        "css-color-names": "0.0.4",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "stylehacks": "^4.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-merge-rules": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1622234641993&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz",
+      "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-api": "^3.0.0",
+        "cssnano-util-same-parent": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0",
+        "vendors": "^1.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "postcss-minify-font-values": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz",
+      "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-gradients": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1621449598992&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz",
+      "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "is-color-stop": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-params": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz",
+      "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "browserslist": "^4.0.0",
+        "cssnano-util-get-arguments": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-selectors": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1621449593365&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz",
+      "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "postcss-modules-extract-imports": {
+      "version": "1.2.1",
+      "resolved": "https://registry.nlark.com/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz",
+      "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=",
+      "dev": true,
+      "requires": {
+        "postcss": "^6.0.1"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-modules-local-by-default": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz",
+      "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+      "dev": true,
+      "requires": {
+        "css-selector-tokenizer": "^0.7.0",
+        "postcss": "^6.0.1"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-modules-scope": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz",
+      "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+      "dev": true,
+      "requires": {
+        "css-selector-tokenizer": "^0.7.0",
+        "postcss": "^6.0.1"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-modules-values": {
+      "version": "1.3.0",
+      "resolved": "https://registry.nlark.com/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz",
+      "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+      "dev": true,
+      "requires": {
+        "icss-replace-symbols": "^1.1.0",
+        "postcss": "^6.0.1"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "6.0.23",
+          "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
+          "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.1",
+            "source-map": "^0.6.1",
+            "supports-color": "^5.4.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-charset": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1621449593655&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz",
+      "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-normalize-display-values": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1621449599414&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz",
+      "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-positions": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz",
+      "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-repeat-style": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1621449596114&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz",
+      "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-string": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1621449595099&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz",
+      "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-timing-functions": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz",
+      "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-unicode": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz",
+      "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-url": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz",
+      "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=",
+      "dev": true,
+      "requires": {
+        "is-absolute-url": "^2.0.0",
+        "normalize-url": "^3.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-whitespace": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1621449593892&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz",
+      "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-ordered-values": {
+      "version": "4.1.2",
+      "resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz",
+      "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-reduce-initial": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1621449599206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz",
+      "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-api": "^3.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-reduce-transforms": {
+      "version": "4.0.2",
+      "resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz",
+      "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "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-svgo": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1622234649078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz",
+      "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "svgo": "^1.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-unique-selectors": {
+      "version": "4.0.1",
+      "resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz",
+      "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "postcss": "^7.0.0",
+        "uniqs": "^2.0.0"
+      }
+    },
+    "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
+    },
+    "prepend-http": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz",
+      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+      "dev": true
+    },
+    "prettier": {
+      "version": "1.19.1",
+      "resolved": "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1622888668729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz",
+      "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=",
+      "dev": true,
+      "optional": true
+    },
+    "pretty-error": {
+      "version": "2.1.2",
+      "resolved": "https://registry.nlark.com/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1623178829041&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz",
+      "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.20",
+        "renderkid": "^2.0.4"
+      }
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=",
+      "dev": true
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
+    },
+    "proxy-addr": {
+      "version": "2.0.7",
+      "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz",
+      "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=",
+      "dev": true,
+      "requires": {
+        "forwarded": "0.2.0",
+        "ipaddr.js": "1.9.1"
+      }
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+      "dev": true
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "psl": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585142991033&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz",
+      "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=",
+      "dev": true
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz",
+      "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
+          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
+          "dev": true
+        }
+      }
+    },
+    "pump": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
+      "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz",
+      "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
+      "dev": true,
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      },
+      "dependencies": {
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+          "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        }
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
+      "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
+      "dev": true
+    },
+    "q": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
+      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+      "dev": true
+    },
+    "qrcode": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
+      "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+      "requires": {
+        "dijkstrajs": "^1.0.1",
+        "encode-utf8": "^1.0.3",
+        "pngjs": "^5.0.0",
+        "yargs": "^15.3.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+        },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "cliui": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+          "requires": {
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+        },
+        "string-width": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+          "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.1"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+          "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+          "requires": {
+            "ansi-regex": "^5.0.1"
+          }
+        },
+        "wrap-ansi": {
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+          "requires": {
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "yargs": {
+          "version": "15.4.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+          "requires": {
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^4.2.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^18.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        }
+      }
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.nlark.com/qs/download/qs-6.5.2.tgz",
+      "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
+      "dev": true
+    },
+    "query-string": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1616068686629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz",
+      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.0",
+        "strict-uri-encode": "^1.0.0"
+      }
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "https://registry.nlark.com/querystring/download/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+      "dev": true
+    },
+    "querystringify": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597687052330&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz",
+      "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=",
+      "dev": true
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
+      "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz",
+      "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz",
+      "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=",
+      "dev": true
+    },
+    "raw-body": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz",
+      "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      }
+    },
+    "read-pkg": {
+      "version": "5.2.0",
+      "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz",
+      "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
+      "dev": true,
+      "requires": {
+        "@types/normalize-package-data": "^2.4.0",
+        "normalize-package-data": "^2.5.0",
+        "parse-json": "^5.0.0",
+        "type-fest": "^0.6.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "5.2.0",
+          "resolved": "https://registry.nlark.com/parse-json/download/parse-json-5.2.0.tgz",
+          "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.0.0",
+            "error-ex": "^1.3.1",
+            "json-parse-even-better-errors": "^2.3.0",
+            "lines-and-columns": "^1.1.6"
+          }
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1618846971516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "dev": true,
+      "requires": {
+        "find-up": "^1.0.0",
+        "read-pkg": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "1.1.0",
+          "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz",
+          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^1.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^1.0.0"
+          }
+        }
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.7",
+      "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
+      "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
+      "dev": true,
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz",
+      "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "picomatch": "^2.2.1"
+      }
+    },
+    "redent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069702182&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz",
+      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "dev": true,
+      "requires": {
+        "indent-string": "^2.1.0",
+        "strip-indent": "^1.0.1"
+      }
+    },
+    "regenerate": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz",
+      "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=",
+      "dev": true
+    },
+    "regenerate-unicode-properties": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz",
+      "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.4.0"
+      }
+    },
+    "regenerator-runtime": {
+      "version": "0.13.7",
+      "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz",
+      "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=",
+      "dev": true
+    },
+    "regenerator-transform": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz",
+      "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=",
+      "dev": true,
+      "requires": {
+        "@babel/runtime": "^7.8.4"
+      }
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
+      "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "regexp.prototype.flags": {
+      "version": "1.3.1",
+      "resolved": "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz",
+      "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
+    "regexpu-core": {
+      "version": "4.7.1",
+      "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413542312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz",
+      "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.4.0",
+        "regenerate-unicode-properties": "^8.2.0",
+        "regjsgen": "^0.5.1",
+        "regjsparser": "^0.6.4",
+        "unicode-match-property-ecmascript": "^1.0.4",
+        "unicode-match-property-value-ecmascript": "^1.2.0"
+      }
+    },
+    "regjsgen": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz",
+      "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.6.9",
+      "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.9.tgz?cache=0&sync_timestamp=1616545067196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.9.tgz",
+      "integrity": "sha1-tInu98mizkNydicBFCnPgzpxg+Y=",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "relateurl": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz",
+      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+      "dev": true
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "renderkid": {
+      "version": "2.0.6",
+      "resolved": "https://registry.nlark.com/renderkid/download/renderkid-2.0.6.tgz?cache=0&sync_timestamp=1623178646031&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frenderkid%2Fdownload%2Frenderkid-2.0.6.tgz",
+      "integrity": "sha1-qvh1pn8tFwWCGiK2RRXbbZ4CX9I=",
+      "dev": true,
+      "requires": {
+        "css-select": "^4.1.3",
+        "dom-converter": "^0.2.0",
+        "htmlparser2": "^6.1.0",
+        "lodash": "^4.17.21",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz",
+          "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+          "dev": true
+        },
+        "css-select": {
+          "version": "4.1.3",
+          "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz",
+          "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=",
+          "dev": true,
+          "requires": {
+            "boolbase": "^1.0.0",
+            "css-what": "^5.0.0",
+            "domhandler": "^4.2.0",
+            "domutils": "^2.6.0",
+            "nth-check": "^2.0.0"
+          }
+        },
+        "css-what": {
+          "version": "5.0.1",
+          "resolved": "https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-5.0.1.tgz",
+          "integrity": "sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0=",
+          "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.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz",
+          "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+          "dev": true
+        },
+        "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"
+          }
+        },
+        "nth-check": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/nth-check/download/nth-check-2.0.0.tgz",
+          "integrity": "sha1-G7T22scAcvwxPoyc0UF7UHTAoSU=",
+          "dev": true,
+          "requires": {
+            "boolbase": "^1.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.0",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz",
+          "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^5.0.0"
+          }
+        }
+      }
+    },
+    "repeat-element": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz?cache=0&sync_timestamp=1617838546743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.4.tgz",
+      "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "request": {
+      "version": "2.88.2",
+      "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz",
+      "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.3",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.5.0",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "request-promise-core": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.4.tgz?cache=0&sync_timestamp=1595378718097&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-core%2Fdownload%2Frequest-promise-core-1.1.4.tgz",
+      "integrity": "sha1-Pu3UIjII1BmGe3jOgVFn0QWToi8=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.19"
+      }
+    },
+    "request-promise-native": {
+      "version": "1.0.9",
+      "resolved": "https://registry.nlark.com/request-promise-native/download/request-promise-native-1.0.9.tgz?cache=0&sync_timestamp=1618846904727&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.9.tgz",
+      "integrity": "sha1-5AcSBSal79yaObKKVnm/R7nZ3Cg=",
+      "dev": true,
+      "requires": {
+        "request-promise-core": "1.1.4",
+        "stealthy-require": "^1.1.1",
+        "tough-cookie": "^2.3.3"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+    },
+    "require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
+      "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs="
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+      "dev": true
+    },
+    "reselect": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz",
+      "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=",
+      "dev": true
+    },
+    "resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
+    "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"
+      }
+    },
+    "resolve-cwd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz?cache=0&sync_timestamp=1577797763257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz",
+      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.nlark.com/ret/download/ret-0.1.15.tgz",
+      "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",
+      "dev": true
+    },
+    "retry": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz",
+      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+      "dev": true
+    },
+    "rgb-regex": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
+      "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+      "dev": true
+    },
+    "rgba-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz",
+      "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+      "dev": true
+    },
+    "rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz",
+      "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz",
+      "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
+      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
+      "dev": true
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "dev": true,
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz",
+      "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=",
+      "dev": true
+    },
+    "sass-graph": {
+      "version": "2.2.5",
+      "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz",
+      "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "lodash": "^4.0.0",
+        "scss-tokenizer": "^0.2.3",
+        "yargs": "^13.3.2"
+      },
+      "dependencies": {
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.nlark.com/emoji-regex/download/emoji-regex-7.0.3.tgz",
+          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+          "dev": true
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz",
+          "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
+          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+          "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-3.1.0.tgz",
+          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          }
+        },
+        "yargs": {
+          "version": "13.3.2",
+          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
+          "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
+          "dev": true,
+          "requires": {
+            "cliui": "^5.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^3.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^13.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "13.1.2",
+          "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz",
+          "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        }
+      }
+    },
+    "sass-loader": {
+      "version": "8.0.2",
+      "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1622562268554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz",
+      "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^4.0.1",
+        "loader-utils": "^1.2.3",
+        "neo-async": "^2.6.1",
+        "schema-utils": "^2.6.1",
+        "semver": "^6.3.0"
+      }
+    },
+    "save": {
+      "version": "2.9.0",
+      "resolved": "https://registry.npmjs.org/save/-/save-2.9.0.tgz",
+      "integrity": "sha512-eg8+g8CjvehE/2C6EbLdtK1pINVD27pcJLj4M9PjWWhoeha/y5bWf4dp/0RF+OzbKTcG1bae9qi3PAqiR8CJTg==",
+      "requires": {
+        "async": "^3.2.2",
+        "event-stream": "^4.0.1",
+        "lodash.assign": "^4.2.0",
+        "mingo": "^6.1.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+          "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+        }
+      }
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
+      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz",
+      "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=",
+      "dev": true,
+      "requires": {
+        "@types/json-schema": "^7.0.5",
+        "ajv": "^6.12.4",
+        "ajv-keywords": "^3.5.2"
+      }
+    },
+    "scss-tokenizer": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
+      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+      "dev": true,
+      "requires": {
+        "js-base64": "^2.1.8",
+        "source-map": "^0.4.2"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "select": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
+      "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "dev": true
+    },
+    "selfsigned": {
+      "version": "1.10.11",
+      "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz",
+      "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=",
+      "dev": true,
+      "requires": {
+        "node-forge": "^0.10.0"
+      }
+    },
+    "semver": {
+      "version": "6.3.0",
+      "resolved": "https://registry.nlark.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+      "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+      "dev": true
+    },
+    "send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
+      "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.7.2",
+        "mime": "1.6.0",
+        "ms": "2.1.1",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.1",
+        "statuses": "~1.5.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          },
+          "dependencies": {
+            "ms": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+              "dev": true
+            }
+          }
+        },
+        "mime": {
+          "version": "1.6.0",
+          "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
+          "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz",
+          "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
+          "dev": true
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740668657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz",
+      "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "http-errors": {
+          "version": "1.6.3",
+          "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407634112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz",
+          "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.0",
+            "statuses": ">= 1.4.0 < 2"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "setprototypeof": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz",
+          "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
+          "dev": true
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
+      "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
+      "dev": true,
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.17.1"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+    },
+    "set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz",
+      "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+      "dev": true
+    },
+    "setprototypeof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz",
+      "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=",
+      "dev": true
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz",
+      "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz",
+      "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^6.0.2"
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shell-quote": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz",
+      "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=",
+      "dev": true
+    },
+    "signal-exit": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz",
+      "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=",
+      "dev": true
+    },
+    "simple-concat": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+    },
+    "simple-get": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+      "requires": {
+        "decompress-response": "^6.0.0",
+        "once": "^1.3.1",
+        "simple-concat": "^1.0.0"
+      }
+    },
+    "simple-swizzle": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz",
+      "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.3.1"
+      },
+      "dependencies": {
+        "is-arrayish": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz",
+          "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=",
+          "dev": true
+        }
+      }
+    },
+    "slash": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/slash/download/slash-2.0.0.tgz",
+      "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=",
+      "dev": true
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz",
+      "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+      "dev": true,
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433899126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+      "dev": true,
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "sockjs": {
+      "version": "0.3.21",
+      "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz",
+      "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=",
+      "dev": true,
+      "requires": {
+        "faye-websocket": "^0.11.3",
+        "uuid": "^3.4.0",
+        "websocket-driver": "^0.7.4"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.1.tgz?cache=0&sync_timestamp=1616686612247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.5.1.tgz",
+      "integrity": "sha1-JWkI9tWt+5Tau9vQLGY2LMoPnqY=",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.6",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "^0.11.3",
+        "inherits": "^2.0.4",
+        "json3": "^3.3.3",
+        "url-parse": "^1.5.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.7",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1614330710870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
+          "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "sort-keys": {
+      "version": "1.1.2",
+      "resolved": "https://registry.nlark.com/sort-keys/download/sort-keys-1.1.2.tgz",
+      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+      "dev": true,
+      "requires": {
+        "is-plain-obj": "^1.0.0"
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
+      "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz",
+      "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.2",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.5.19",
+      "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz",
+      "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz",
+      "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=",
+      "dev": true
+    },
+    "spdx-correct": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz",
+      "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=",
+      "dev": true,
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz",
+      "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=",
+      "dev": true
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=",
+      "dev": true,
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.9",
+      "resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.9.tgz?cache=0&sync_timestamp=1621652583280&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.9.tgz",
+      "integrity": "sha1-illRNd75WSvaaXCUdPHL7qfCRn8=",
+      "dev": true
+    },
+    "spdy": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz",
+      "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "handle-thing": "^2.0.0",
+        "http-deceiver": "^1.2.7",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^3.0.0"
+      }
+    },
+    "spdy-transport": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz",
+      "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "detect-node": "^2.0.4",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.2",
+        "readable-stream": "^3.0.6",
+        "wbuf": "^1.7.3"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "split": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+      "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+      "requires": {
+        "through": "2"
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
+      "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "sshpk": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
+      "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=",
+      "dev": true,
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "ssri": {
+      "version": "6.0.2",
+      "resolved": "https://registry.nlark.com/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1621364668574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-6.0.2.tgz",
+      "integrity": "sha1-FXk5E08gRk5zAd26PpD/qPdyisU=",
+      "dev": true,
+      "requires": {
+        "figgy-pudding": "^3.5.1"
+      }
+    },
+    "stable": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz",
+      "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
+      "dev": true
+    },
+    "stackframe": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz",
+      "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=",
+      "dev": true
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "dev": true,
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz",
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+      "dev": true
+    },
+    "stdout-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz",
+      "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "stealthy-require": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz",
+      "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+      "dev": true
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz",
+      "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-combiner": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
+      "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==",
+      "requires": {
+        "duplexer": "~0.1.1",
+        "through": "~2.3.4"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz",
+      "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.3",
+      "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1618430770209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz",
+      "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=",
+      "dev": true,
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz",
+      "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=",
+      "dev": true
+    },
+    "strict-uri-encode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
+      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+      "dev": true
+    },
+    "string-split-by": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz",
+      "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
+      "requires": {
+        "parenthesis": "^3.1.5"
+      }
+    },
+    "string-width": {
+      "version": "2.1.1",
+      "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz",
+      "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+      "dev": true,
+      "requires": {
+        "is-fullwidth-code-point": "^2.0.0",
+        "strip-ansi": "^4.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        }
+      }
+    },
+    "string.prototype.padend": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.2.tgz",
+      "integrity": "sha1-aFjKTzXFJo69XoYV4TJ9VfWe4xE=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.18.0-next.2"
+      }
+    },
+    "string.prototype.padstart": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.2.tgz",
+      "integrity": "sha1-+bnOZr7dfAastA7ObjTGBG4aAZ0=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.18.0-next.2"
+      }
+    },
+    "string.prototype.trimend": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz",
+      "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
+    "string.prototype.trimstart": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127232940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz",
+      "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
+      "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "5.2.0",
+      "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+      "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^4.1.0"
+      }
+    },
+    "strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "dev": true,
+      "requires": {
+        "is-utf8": "^0.2.0"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-final-newline": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz",
+      "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz",
+      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "dev": true,
+      "requires": {
+        "get-stdin": "^4.0.1"
+      }
+    },
+    "stylehacks": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449595596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz",
+      "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+      "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "svg-tags": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz",
+      "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+      "dev": true
+    },
+    "svgo": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1616929367791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz",
+      "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "coa": "^2.0.2",
+        "css-select": "^2.0.0",
+        "css-select-base-adapter": "^0.1.1",
+        "css-tree": "1.0.0-alpha.37",
+        "csso": "^4.0.2",
+        "js-yaml": "^3.13.1",
+        "mkdirp": "~0.5.1",
+        "object.values": "^1.1.0",
+        "sax": "~1.2.4",
+        "stable": "^0.1.8",
+        "unquote": "~1.1.1",
+        "util.promisify": "~1.0.0"
+      }
+    },
+    "tapable": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088859616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz",
+      "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=",
+      "dev": true
+    },
+    "tar": {
+      "version": "2.2.2",
+      "resolved": "https://registry.nlark.com/tar/download/tar-2.2.2.tgz?cache=0&sync_timestamp=1618847020118&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftar%2Fdownload%2Ftar-2.2.2.tgz",
+      "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=",
+      "dev": true,
+      "requires": {
+        "block-stream": "*",
+        "fstream": "^1.0.12",
+        "inherits": "2"
+      }
+    },
+    "terser": {
+      "version": "4.8.0",
+      "resolved": "https://registry.nlark.com/terser/download/terser-4.8.0.tgz",
+      "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=",
+      "dev": true,
+      "requires": {
+        "commander": "^2.20.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.12"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.4.5",
+      "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1622475814720&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz",
+      "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=",
+      "dev": true,
+      "requires": {
+        "cacache": "^12.0.2",
+        "find-cache-dir": "^2.1.0",
+        "is-wsl": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^4.0.0",
+        "source-map": "^0.6.1",
+        "terser": "^4.1.2",
+        "webpack-sources": "^1.4.0",
+        "worker-farm": "^1.7.0"
+      },
+      "dependencies": {
+        "find-cache-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz",
+          "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^2.0.0",
+            "pkg-dir": "^3.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
+          "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz",
+          "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
+          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+          "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.nlark.com/pkg-dir/download/pkg-dir-3.0.0.tgz",
+          "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.nlark.com/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "thenify": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz",
+      "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=",
+      "dev": true,
+      "requires": {
+        "any-promise": "^1.0.0"
+      }
+    },
+    "thenify-all": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz",
+      "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+      "dev": true,
+      "requires": {
+        "thenify": ">= 3.1.0 < 4"
+      }
+    },
+    "thread-loader": {
+      "version": "2.1.3",
+      "resolved": "https://registry.nlark.com/thread-loader/download/thread-loader-2.1.3.tgz",
+      "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=",
+      "dev": true,
+      "requires": {
+        "loader-runner": "^2.3.1",
+        "loader-utils": "^1.1.0",
+        "neo-async": "^2.6.0"
+      }
+    },
+    "throttle-debounce": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593480386934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz",
+      "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunky": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz",
+      "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=",
+      "dev": true
+    },
+    "timers-browserify": {
+      "version": "2.0.12",
+      "resolved": "https://registry.nlark.com/timers-browserify/download/timers-browserify-2.0.12.tgz",
+      "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=",
+      "dev": true,
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "timsort": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz",
+      "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+      "dev": true
+    },
+    "tiny-emitter": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+      "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+      "dev": true
+    },
+    "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=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
+      "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+      "dev": true,
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "toidentifier": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
+      "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
+      "dev": true
+    },
+    "toposort": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz",
+      "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+      "dev": true
+    },
+    "tough-cookie": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz",
+      "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
+      "dev": true,
+      "requires": {
+        "psl": "^1.1.28",
+        "punycode": "^2.1.1"
+      }
+    },
+    "trim-newlines": {
+      "version": "1.0.0",
+      "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz?cache=0&sync_timestamp=1622220471681&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-1.0.0.tgz",
+      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+      "dev": true
+    },
+    "true-case-path": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz",
+      "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.2"
+      }
+    },
+    "tryer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
+      "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=",
+      "dev": true
+    },
+    "tslib": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+      "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+      "dev": true
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "dev": true
+    },
+    "type-fest": {
+      "version": "0.6.0",
+      "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1622543341459&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+      "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
+      "dev": true
+    },
+    "type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
+      "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
+      "dev": true,
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.4.10",
+      "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1622845500166&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz",
+      "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=",
+      "dev": true,
+      "requires": {
+        "commander": "~2.19.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.19.0",
+          "resolved": "https://registry.nlark.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz",
+          "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "unbox-primitive": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz",
+      "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.1",
+        "has-bigints": "^1.0.1",
+        "has-symbols": "^1.0.2",
+        "which-boxed-primitive": "^1.0.2"
+      }
+    },
+    "unicode-canonical-property-names-ecmascript": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+      "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=",
+      "dev": true
+    },
+    "unicode-match-property-ecmascript": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz",
+      "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=",
+      "dev": true,
+      "requires": {
+        "unicode-canonical-property-names-ecmascript": "^1.0.4",
+        "unicode-property-aliases-ecmascript": "^1.0.4"
+      }
+    },
+    "unicode-match-property-value-ecmascript": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz",
+      "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=",
+      "dev": true
+    },
+    "unicode-property-aliases-ecmascript": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz",
+      "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=",
+      "dev": true
+    },
+    "union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz",
+      "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^2.0.1"
+      }
+    },
+    "uniq": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
+      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+      "dev": true
+    },
+    "uniqs": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz",
+      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+      "dev": true
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
+      "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz",
+      "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "universalify": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603180004159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
+      "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
+      "dev": true
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+      "dev": true
+    },
+    "unquote": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz",
+      "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+      "dev": true
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.nlark.com/unset-value/download/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "dev": true,
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "dev": true,
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "dev": true,
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+          "dev": true
+        }
+      }
+    },
+    "upath": {
+      "version": "1.2.0",
+      "resolved": "https://registry.nlark.com/upath/download/upath-1.2.0.tgz",
+      "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
+      "dev": true
+    },
+    "upper-case": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
+      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+      "dev": true
+    },
+    "uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz",
+      "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+          "dev": true
+        }
+      }
+    },
+    "url-loader": {
+      "version": "1.1.2",
+      "resolved": "https://registry.nlark.com/url-loader/download/url-loader-1.1.2.tgz",
+      "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "mime": "^2.0.3",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "url-parse": {
+      "version": "1.5.1",
+      "resolved": "https://registry.nlark.com/url-parse/download/url-parse-1.5.1.tgz",
+      "integrity": "sha1-1fqYkK+KXh8nSiyYN2UQ9kJfbjs=",
+      "dev": true,
+      "requires": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
+      "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
+      "dev": true
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz",
+      "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "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
+    },
+    "util.promisify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1610159975962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz",
+      "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.2",
+        "has-symbols": "^1.0.1",
+        "object.getownpropertydescriptors": "^2.1.0"
+      }
+    },
+    "utila": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
+      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+      "dev": true
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.4.0",
+      "resolved": "https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz",
+      "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
+      "dev": true
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
+      "dev": true,
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
+    },
+    "vendors": {
+      "version": "1.0.4",
+      "resolved": "https://registry.nlark.com/vendors/download/vendors-1.0.4.tgz",
+      "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=",
+      "dev": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vm-browserify": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz",
+      "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=",
+      "dev": true
+    },
+    "vue": {
+      "version": "2.6.14",
+      "resolved": "https://registry.nlark.com/vue/download/vue-2.6.14.tgz",
+      "integrity": "sha1-5RqlJQJQ1Wmj+606ilpofWA24jU="
+    },
+    "vue-clipboard2": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
+      "integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
+      "requires": {
+        "clipboard": "^2.0.0"
+      }
+    },
+    "vue-hot-reload-api": {
+      "version": "2.3.4",
+      "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz",
+      "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
+      "dev": true
+    },
+    "vue-loader": {
+      "version": "15.9.7",
+      "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-15.9.7.tgz",
+      "integrity": "sha1-FbBXdcPgw4QHZ5OTws5t9nOwEEQ=",
+      "dev": true,
+      "requires": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      }
+    },
+    "vue-monoplasty-slide-verify": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/vue-monoplasty-slide-verify/-/vue-monoplasty-slide-verify-1.3.1.tgz",
+      "integrity": "sha512-oMP9RdBo/2M2D8CcEE1IJCXKWOGPUyFNKFgMwj8+BMEA5Je4wF3jUbCnQe/hNNmV1cUBdeTNp0w/TdlP1A96SQ==",
+      "requires": {
+        "vue": "^2.5.11"
+      }
+    },
+    "vue-qr": {
+      "version": "4.0.9",
+      "resolved": "https://registry.npmjs.org/vue-qr/-/vue-qr-4.0.9.tgz",
+      "integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
+      "requires": {
+        "glob": "^8.0.1",
+        "js-binary-schema-parser": "^2.0.2",
+        "simple-get": "^4.0.1",
+        "string-split-by": "^1.0.0"
+      },
+      "dependencies": {
+        "brace-expansion": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+          "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+          "requires": {
+            "balanced-match": "^1.0.0"
+          }
+        },
+        "glob": {
+          "version": "8.1.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+          "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^5.0.1",
+            "once": "^1.3.0"
+          }
+        },
+        "minimatch": {
+          "version": "5.1.6",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+          "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+          "requires": {
+            "brace-expansion": "^2.0.1"
+          }
+        }
+      }
+    },
+    "vue-qrcode": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/vue-qrcode/-/vue-qrcode-2.2.0.tgz",
+      "integrity": "sha512-pEwy/IznxEY5MXptFLaxbGdeDWIJRgU5VhBcFmg1avDjD2z2jjWAGE5dlDwqagXtUjcgkvFSSQ40boog1maLuw==",
+      "requires": {
+        "tslib": "^2.4.0"
+      }
+    },
+    "vue-router": {
+      "version": "3.5.1",
+      "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz",
+      "integrity": "sha1-7fPPSQeVLR4Fg+B5I3Igxf9utsk="
+    },
+    "vue-style-loader": {
+      "version": "4.1.3",
+      "resolved": "https://registry.nlark.com/vue-style-loader/download/vue-style-loader-4.1.3.tgz",
+      "integrity": "sha1-bVWGOlH6dXqyTonZNxRlByqnvDU=",
+      "dev": true,
+      "requires": {
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.0.2"
+      }
+    },
+    "vue-template-compiler": {
+      "version": "2.6.14",
+      "resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz?cache=0&sync_timestamp=1623059734748&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.14.tgz",
+      "integrity": "sha1-ovDn2YVnDULJye4NBE/tdpD092M=",
+      "dev": true,
+      "requires": {
+        "de-indent": "^1.0.2",
+        "he": "^1.1.0"
+      }
+    },
+    "vue-template-es2015-compiler": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz",
+      "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
+      "dev": true
+    },
+    "vuex": {
+      "version": "3.6.2",
+      "resolved": "https://registry.nlark.com/vuex/download/vuex-3.6.2.tgz",
+      "integrity": "sha1-I2vAhqhww655lG8QfxbeWdWJXnE="
+    },
+    "watchpack": {
+      "version": "1.7.5",
+      "resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz",
+      "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=",
+      "dev": true,
+      "requires": {
+        "chokidar": "^3.4.1",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0",
+        "watchpack-chokidar2": "^2.0.1"
+      }
+    },
+    "watchpack-chokidar2": {
+      "version": "2.0.1",
+      "resolved": "https://registry.nlark.com/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz",
+      "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chokidar": "^2.1.8"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/anymatch/download/anymatch-2.0.0.tgz",
+          "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "remove-trailing-separator": "^1.0.1"
+              }
+            }
+          }
+        },
+        "binary-extensions": {
+          "version": "1.13.1",
+          "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz",
+          "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
+          "dev": true,
+          "optional": true
+        },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
+          "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "fsevents": {
+          "version": "1.2.13",
+          "resolved": "https://registry.nlark.com/fsevents/download/fsevents-1.2.13.tgz",
+          "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "bindings": "^1.5.0",
+            "nan": "^2.12.1"
+          }
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "binary-extensions": "^1.0.0"
+          }
+        },
+        "readdirp": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
+          "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "micromatch": "^3.1.10",
+            "readable-stream": "^2.0.2"
+          }
+        }
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz",
+      "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=",
+      "dev": true,
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "wcwidth": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz",
+      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+      "dev": true,
+      "requires": {
+        "defaults": "^1.0.3"
+      }
+    },
+    "webpack": {
+      "version": "4.46.0",
+      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1622150231355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
+      "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/wasm-edit": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "acorn": "^6.4.1",
+        "ajv": "^6.10.2",
+        "ajv-keywords": "^3.4.1",
+        "chrome-trace-event": "^1.0.2",
+        "enhanced-resolve": "^4.5.0",
+        "eslint-scope": "^4.0.3",
+        "json-parse-better-errors": "^1.0.2",
+        "loader-runner": "^2.4.0",
+        "loader-utils": "^1.2.3",
+        "memory-fs": "^0.4.1",
+        "micromatch": "^3.1.10",
+        "mkdirp": "^0.5.3",
+        "neo-async": "^2.6.1",
+        "node-libs-browser": "^2.2.1",
+        "schema-utils": "^1.0.0",
+        "tapable": "^1.1.3",
+        "terser-webpack-plugin": "^1.4.3",
+        "watchpack": "^1.7.4",
+        "webpack-sources": "^1.4.1"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "webpack-bundle-analyzer": {
+      "version": "3.9.0",
+      "resolved": "https://registry.nlark.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1621259099265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz",
+      "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=",
+      "dev": true,
+      "requires": {
+        "acorn": "^7.1.1",
+        "acorn-walk": "^7.1.1",
+        "bfj": "^6.1.1",
+        "chalk": "^2.4.1",
+        "commander": "^2.18.0",
+        "ejs": "^2.6.1",
+        "express": "^4.16.3",
+        "filesize": "^3.6.1",
+        "gzip-size": "^5.0.0",
+        "lodash": "^4.17.19",
+        "mkdirp": "^0.5.1",
+        "opener": "^1.5.1",
+        "ws": "^6.0.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "7.4.1",
+          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
+          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
+          "dev": true
+        },
+        "acorn-walk": {
+          "version": "7.2.0",
+          "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz",
+          "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
+          "dev": true
+        }
+      }
+    },
+    "webpack-chain": {
+      "version": "4.12.1",
+      "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1595813159674&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz",
+      "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=",
+      "dev": true,
+      "requires": {
+        "deepmerge": "^1.5.2",
+        "javascript-stringify": "^1.6.0"
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "3.7.3",
+      "resolved": "https://registry.nlark.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz",
+      "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=",
+      "dev": true,
+      "requires": {
+        "memory-fs": "^0.4.1",
+        "mime": "^2.4.4",
+        "mkdirp": "^0.5.1",
+        "range-parser": "^1.2.1",
+        "webpack-log": "^2.0.0"
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.11.2",
+      "resolved": "https://registry.nlark.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz",
+      "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.1.8",
+        "compression": "^1.7.4",
+        "connect-history-api-fallback": "^1.6.0",
+        "debug": "^4.1.1",
+        "del": "^4.1.1",
+        "express": "^4.17.1",
+        "html-entities": "^1.3.1",
+        "http-proxy-middleware": "0.19.1",
+        "import-local": "^2.0.0",
+        "internal-ip": "^4.3.0",
+        "ip": "^1.1.5",
+        "is-absolute-url": "^3.0.3",
+        "killable": "^1.0.1",
+        "loglevel": "^1.6.8",
+        "opn": "^5.5.0",
+        "p-retry": "^3.0.1",
+        "portfinder": "^1.0.26",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.10.8",
+        "semver": "^6.3.0",
+        "serve-index": "^1.9.1",
+        "sockjs": "^0.3.21",
+        "sockjs-client": "^1.5.0",
+        "spdy": "^4.0.2",
+        "strip-ansi": "^3.0.1",
+        "supports-color": "^6.1.0",
+        "url": "^0.11.0",
+        "webpack-dev-middleware": "^3.7.2",
+        "webpack-log": "^2.0.0",
+        "ws": "^6.2.1",
+        "yargs": "^13.3.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.nlark.com/anymatch/download/anymatch-2.0.0.tgz",
+          "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+          "dev": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+              "dev": true,
+              "requires": {
+                "remove-trailing-separator": "^1.0.1"
+              }
+            }
+          }
+        },
+        "binary-extensions": {
+          "version": "1.13.1",
+          "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz",
+          "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
+          "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.nlark.com/emoji-regex/download/emoji-regex-7.0.3.tgz",
+          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+          "dev": true
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "fsevents": {
+          "version": "1.2.13",
+          "resolved": "https://registry.nlark.com/fsevents/download/fsevents-1.2.13.tgz",
+          "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "bindings": "^1.5.0",
+            "nan": "^2.12.1"
+          }
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "is-absolute-url": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz",
+          "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=",
+          "dev": true
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
+          "requires": {
+            "binary-extensions": "^1.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz",
+          "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
+          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
+          "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+          "dev": true
+        },
+        "readdirp": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
+          "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "micromatch": "^3.1.10",
+            "readable-stream": "^2.0.2"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-3.1.0.tgz",
+          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+              "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+              "dev": true
+            },
+            "strip-ansi": {
+              "version": "5.2.0",
+              "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+              "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^4.1.0"
+              }
+            }
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        },
+        "yargs": {
+          "version": "13.3.2",
+          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
+          "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
+          "dev": true,
+          "requires": {
+            "cliui": "^5.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^3.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^13.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "13.1.2",
+          "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz",
+          "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        }
+      }
+    },
+    "webpack-log": {
+      "version": "2.0.0",
+      "resolved": "https://registry.nlark.com/webpack-log/download/webpack-log-2.0.0.tgz",
+      "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=",
+      "dev": true,
+      "requires": {
+        "ansi-colors": "^3.0.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "webpack-merge": {
+      "version": "4.2.2",
+      "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-4.2.2.tgz",
+      "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.15"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.4.3",
+      "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz",
+      "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
+        }
+      }
+    },
+    "websocket-driver": {
+      "version": "0.7.4",
+      "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz",
+      "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=",
+      "dev": true,
+      "requires": {
+        "http-parser-js": ">=0.5.1",
+        "safe-buffer": ">=5.1.0",
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz",
+      "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",
+      "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-boxed-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz",
+      "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=",
+      "dev": true,
+      "requires": {
+        "is-bigint": "^1.0.1",
+        "is-boolean-object": "^1.1.0",
+        "is-number-object": "^1.0.4",
+        "is-string": "^1.0.5",
+        "is-symbol": "^1.0.3"
+      }
+    },
+    "which-module": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+    },
+    "wide-align": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz",
+      "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.2 || 2"
+      }
+    },
+    "worker-farm": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz",
+      "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=",
+      "dev": true,
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz",
+          "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+          "dev": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "4.2.2",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-4.2.2.tgz",
+          "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.0",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz",
+          "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^5.0.0"
+          }
+        }
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    },
+    "ws": {
+      "version": "6.2.2",
+      "resolved": "https://registry.nlark.com/ws/download/ws-6.2.2.tgz?cache=0&sync_timestamp=1623180787489&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fws%2Fdownload%2Fws-6.2.2.tgz",
+      "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0"
+      }
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
+      "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=",
+      "dev": true
+    },
+    "y18n": {
+      "version": "4.0.3",
+      "resolved": "https://registry.nlark.com/y18n/download/y18n-4.0.3.tgz",
+      "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8="
+    },
+    "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
+    },
+    "yargs": {
+      "version": "16.2.0",
+      "resolved": "https://registry.nlark.com/yargs/download/yargs-16.2.0.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-16.2.0.tgz",
+      "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=",
+      "dev": true,
+      "requires": {
+        "cliui": "^7.0.2",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.0",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^20.2.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz",
+          "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
+          "dev": true
+        },
+        "cliui": {
+          "version": "7.0.4",
+          "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+          "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+          "dev": true,
+          "requires": {
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^7.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "4.2.2",
+          "resolved": "https://registry.nlark.com/string-width/download/string-width-4.2.2.tgz",
+          "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.0",
+          "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz",
+          "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^5.0.0"
+          }
+        },
+        "y18n": {
+          "version": "5.0.8",
+          "resolved": "https://registry.nlark.com/y18n/download/y18n-5.0.8.tgz",
+          "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+          "dev": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "20.2.7",
+      "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-20.2.7.tgz",
+      "integrity": "sha1-Yd+FwRPt+1p6TjbriqYO9CPLyQo=",
+      "dev": true
+    }
+  }
+}

+ 41 - 0
package.json

@@ -0,0 +1,41 @@
+{
+  "name": "jzpc",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "dev": "npm run serve"
+  },
+  "dependencies": {
+    "axios": "^0.21.1",
+    "core-js": "^2.6.5",
+    "element-china-area-data": "^6.0.2",
+    "element-ui": "^2.15.6",
+    "qrcode": "^1.5.3",
+    "save": "^2.9.0",
+    "vue": "^2.6.10",
+    "vue-clipboard2": "^0.3.3",
+    "vue-monoplasty-slide-verify": "^1.3.1",
+    "vue-qr": "^4.0.9",
+    "vue-qrcode": "^2.2.0",
+    "vue-router": "^3.0.3",
+    "vuex": "^3.0.1"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^3.12.0",
+    "@vue/cli-service": "^3.12.0",
+    "node-sass": "^4.12.0",
+    "sass-loader": "^8.0.0",
+    "vue-template-compiler": "^2.6.10"
+  },
+  "postcss": {
+    "plugins": {
+      "autoprefixer": {}
+    }
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
+}

BIN
public/favicon.ico


BIN
public/icon.png


+ 19 - 0
public/index.html

@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+	<meta name="keywords" content="鄂州市红十字会官方网站,鄂州市红十字会官方,鄂州市红十字会官网,鄂州红会官网,鄂州红会,鄂州市,鄂州,红十字会">
+	<meta name="description" content="鄂州市红十字会位于湖北省鄂州市鄂城区滨湖南路60号,电话:027-60229380。鄂州市红十字会是在市委、市政府领导下从事人道主义工作的社会救助团体,依照《中华人民共和国红十字会法》,秉承“人道、博爱、奉献”红十字精神,履行法定职责,充分发挥党和政府在人道领域的桥梁和纽带作用。">
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+    <title></title>
+  </head>
+  <body>
+    <noscript>
+      <strong>We're sorry but jzpc doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 105 - 0
src/App.vue

@@ -0,0 +1,105 @@
+<template>
+	<div id="app">
+		<div v-if="$route.meta.keepAlive">
+			<navTop></navTop>
+			<view class="">
+				<router-view></router-view>
+			</view>
+			
+		</div>
+		<div v-if="!$route.meta.keepAlive">
+			<router-view></router-view>
+		</div>
+		<router-view />
+	</div>
+</template>
+<script>
+	import navTop from './components/navTop/navTop.vue'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		getIndex
+	} from '@/request/agent.js'
+	export default {
+		components: {
+			navTop
+		},
+		created() {
+			// if(this.isMobile()) {
+			// 	window.location.href = 'https://www.ezsredcross.org.cn/index/#/'
+			// }
+			this.getIndex()
+			console.log('dd');
+			let userInfo = JSON.parse(window.localStorage.getItem('user'))
+			console.log(userInfo, 'userInfo');
+			if (userInfo && userInfo.id) {
+				this.setUserInfo(userInfo)
+			} else {
+				this.$router.push('/login')
+			}
+		},
+		methods: {
+			...mapMutations(['setUserInfo', 'setBaseInfo']),
+			getIndex() {
+				getIndex().then(res => {
+					// console.log(res);
+					this.setBaseInfo(res.data)
+				})
+			}
+			// isMobile() {
+			// 	if(/android/i.test(navigator.userAgent)) {
+			// 		//document.write("This is Android'browser.");//这是Android平台下浏览器
+			// 		return true;
+			// 	}
+			// 	if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
+			// 		//document.write("This is iOS'browser.");//这是iOS平台下浏览器
+			// 		return true;
+			// 	}
+			// 	return false;
+			// }
+		}
+	}
+</script>
+<style lang="scss">
+	.el-cascader-menu {
+		height: 300px !important;
+	}
+
+	.el-cascader-menu__wrap {
+		height: 300px !important;
+	}
+
+	#app {
+		max-width: 1920px;
+		min-width: 1202px;
+		margin: 0 auto;
+	}
+
+	.main-wrapper {
+		width: 1202px;
+		margin: 0 auto;
+	}
+
+	.bg {
+		// position: absolute;
+		// left: 0;
+		// right: 0;
+		// margin: 0 auto;
+		// margin: 0 auto -300px;
+		height: 280px;
+		// max-width: 1920px;
+		// min-width: 1202px;
+		margin-bottom: -280px;
+		// background-image: url(assets/img/m1.png);
+		// background-size: auto 100%;
+		z-index: -1;
+
+		img {
+			width: 100%;
+
+			height: 300px;
+		}
+	}
+</style>

+ 79 - 0
src/assets/css/base.css

@@ -0,0 +1,79 @@
+body {
+	--m-color: #be0202;
+	--m-acolor: #c95151;
+	background-color: #f5f5f5;
+}
+/* 一行显示 */
+.clamp {
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	display: block;
+}
+/* 二行显示 */
+.ellipsis{
+	overflow:hidden; 
+	text-overflow:ellipsis;
+	display:-webkit-box; 
+	-webkit-box-orient:vertical;
+	-webkit-line-clamp:2;
+}
+
+html {
+  overflow-y: scroll;
+}
+
+/* 鼠标显示为手 */
+.hand {
+	cursor:pointer;
+}
+.moren {
+	cursor: default;
+}
+.flex {
+	display: flex;
+}
+.new-detail {
+	max-width: 100%;
+}
+.new-detail img {
+	max-width: 100%;
+}
+.new-detail * {
+	max-width: 100%;
+}
+.new-detail table {
+	min-width: 100%;
+}
+.new-detail td {
+	display:table-cell;
+	vertical-align:middle;
+}
+.new-detail table,th,td {
+	/* border: 1px solid #000; */
+	/* text-align: center; */
+}
+
+html,
+body,
+#app {
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  min-width: 1366px;
+}
+.el-cascader-menu {
+  height: 300px;
+}
+.el-card {
+  margin-top: 10px;
+}
+.el-table {
+  margin-top: 10px;
+}
+.ql-editor {
+  min-height: 350px;
+}
+* {
+	box-sizing: border-box;
+}

+ 49 - 0
src/assets/css/reset.css

@@ -0,0 +1,49 @@
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+a {
+	text-decoration:none;
+}
+strong {
+	font-weight: bold;
+}

BIN
src/assets/img/basebg.png


BIN
src/assets/img/icon_light.png


BIN
src/assets/img/img.jpg


BIN
src/assets/img/img1.jpg


BIN
src/assets/img/img2.jpg


BIN
src/assets/img/img3.jpg


BIN
src/assets/img/img4.jpg


BIN
src/assets/img/img5.jpg


BIN
src/assets/img/kf.png


BIN
src/assets/img/sx.png


+ 139 - 0
src/assets/js/admun.js

@@ -0,0 +1,139 @@
+let img1 = require('@/assets/img/img.jpg')
+let img0 = require('@/assets/img/img1.jpg')
+let img2 = require('@/assets/img/img2.jpg')
+let img3 = require('@/assets/img/img3.jpg')
+let img4 = require('@/assets/img/img4.jpg')
+let img5 = require('@/assets/img/img5.jpg')
+let imgs = [
+	img1,
+	img0,
+	img2,
+	img3,
+	img4,
+	img5,
+]
+let munList = [
+	{
+		id: 20,
+		authName: '首页',
+		children: [{
+			id: 21,
+			authName: '统计',
+			path: 'home/statistics'
+		}, ]
+	}, 
+	{
+		id: 1,
+		authName: 'Token管理',
+		children: [{
+				id: 2,
+				authName: 'Token列表',
+				path: 'home/regList'
+			},
+			{
+				id: 34,
+				authName: 'token订单记录',
+				path: 'home/tokenOrderList'
+			}
+		]
+	},
+	// {
+	// 	id: 4,
+	// 	authName: '用户管理',
+	// 	children: [{
+	// 		id: 5,
+	// 		authName: '用户列表',
+	// 		path: 'home/abonementList'
+	// 	}, ]
+	// },
+	{
+		id: 6,
+		authName: '订单管理',
+		children: [{
+			id: 7,
+			authName: '添加订单',
+			path: 'home/addOrder'
+		},{
+			id: 32,
+			authName: '订单列表',
+			path: 'home/orderList'
+		} ]
+	},
+	// {
+	// 	id: 8,
+	// 	authName: '地址管理',
+	// 	children: [{
+	// 		authName: '地址列表',
+	// 		path: 'home/addressList'
+	// 	}, ]
+	// },
+	{
+		id: 9,
+		authName: '充值管理',
+		children: [{
+			authName: '充值记录',
+			path: 'home/rechangeList'
+		},
+		// {
+		// 	authName: '充值',
+		// 	path: 'home/rechange'
+		// },
+		]
+	},
+	{
+		id: 10,
+		authName: '提现管理',
+		children: [{
+			id: 11,
+			authName: '提现记录',
+			path: 'home/takingList'
+		}, 
+		// {
+		// 	id: 12,
+		// 	authName: '提现',
+		// 	path: 'home/taking'
+		// },
+		]
+	},
+	{
+		id: 13,
+		authName: '转账管理',
+		children: [{
+			id: 14,
+			authName: '转账记录',
+			path: 'home/transferList'
+		},
+		// {
+		// 	id: 15,
+		// 	authName: '转账',
+		// 	path: 'home/transfer'
+		// },
+		]
+	},
+	{
+		id: 16,
+		authName: '个人中心',
+		children: [
+			
+			{
+			id: 14,
+			authName: '交易密码',
+			path: 'home/setPas'
+		},
+		{
+			id: 18,
+			authName: '修改信息',
+			path: 'home/setUserinfo'
+		},
+		{
+			id:23,
+			authName: '资金流水',
+			path: 'home/money'
+		}]
+	},
+]
+
+module.exports = {
+	munList,
+	imgs
+}

+ 1356 - 0
src/assets/js/cityData.js

@@ -0,0 +1,1356 @@
+export default [{
+	"value": "北京",
+	"children": [{
+		"value": "北京市",
+		"children": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区",
+			"怀柔区", "平谷区", "密云区", "延庆区"
+		]
+	}]
+}, {
+	"value": "天津",
+	"children": [{
+		"value": "天津市",
+		"children": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "滨海新区",
+			"宁河区", "静海区", "蓟州区"
+		]
+	}]
+}, {
+	"value": "河北",
+	"children": [{
+		"value": "石家庄市",
+		"children": ["市辖区", "长安区", "桥西区", "新华区", "井陉矿区", "裕华区", "藁城区", "鹿泉区", "栾城区", "井陉县", "正定县", "行唐县", "灵寿县",
+			"高邑县", "深泽县", "赞皇县", "无极县", "平山县", "元氏县", "赵县", "晋州市", "新乐市"
+		]
+	}, {
+		"value": "唐山市",
+		"children": ["市辖区", "路南区", "路北区", "古冶区", "开平区", "丰南区", "丰润区", "曹妃甸区", "滦县", "滦南县", "乐亭县", "迁西县", "玉田县",
+			"遵化市", "迁安市"
+		]
+	}, {
+		"value": "秦皇岛市",
+		"children": ["市辖区", "海港区", "山海关区", "北戴河区", "抚宁区", "青龙满族自治县", "昌黎县", "卢龙县"]
+	}, {
+		"value": "邯郸市",
+		"children": ["市辖区", "邯山区", "丛台区", "复兴区", "峰峰矿区", "邯郸县", "临漳县", "成安县", "大名县", "涉县", "磁县", "肥乡县", "永年县",
+			"邱县", "鸡泽县", "广平县", "馆陶县", "魏县", "曲周县", "武安市"
+		]
+	}, {
+		"value": "邢台市",
+		"children": ["市辖区", "桥东区", "桥西区", "邢台县", "临城县", "内丘县", "柏乡县", "隆尧县", "任县", "南和县", "宁晋县", "巨鹿县", "新河县",
+			"广宗县", "平乡县", "威县", "清河县", "临西县", "南宫市", "沙河市"
+		]
+	}, {
+		"value": "保定市",
+		"children": ["市辖区", "竞秀区", "莲池区", "满城区", "清苑区", "徐水区", "涞水县", "阜平县", "定兴县", "唐县", "高阳县", "容城县", "涞源县",
+			"望都县", "安新县", "易县", "曲阳县", "蠡县", "顺平县", "博野县", "雄县", "涿州市", "安国市", "高碑店市"
+		]
+	}, {
+		"value": "张家口市",
+		"children": ["市辖区", "桥东区", "桥西区", "宣化区", "下花园区", "万全区", "崇礼区", "张北县", "康保县", "沽源县", "尚义县", "蔚县", "阳原县",
+			"怀安县", "怀来县", "涿鹿县", "赤城县"
+		]
+	}, {
+		"value": "承德市",
+		"children": ["市辖区", "双桥区", "双滦区", "鹰手营子矿区", "承德县", "兴隆县", "平泉县", "滦平县", "隆化县", "丰宁满族自治县", "宽城满族自治县",
+			"围场满族蒙古族自治县"
+		]
+	}, {
+		"value": "沧州市",
+		"children": ["市辖区", "新华区", "运河区", "沧县", "青县", "东光县", "海兴县", "盐山县", "肃宁县", "南皮县", "吴桥县", "献县", "孟村回族自治县",
+			"泊头市", "任丘市", "黄骅市", "河间市"
+		]
+	}, {
+		"value": "廊坊市",
+		"children": ["市辖区", "安次区", "广阳区", "固安县", "永清县", "香河县", "大城县", "文安县", "大厂回族自治县", "霸州市", "三河市"]
+	}, {
+		"value": "衡水市",
+		"children": ["市辖区", "桃城区", "冀州区", "枣强县", "武邑县", "武强县", "饶阳县", "安平县", "故城县", "景县", "阜城县", "深州市"]
+	}, {
+		"value": "直辖县",
+		"children": ["定州市", "辛集市"]
+	}]
+}, {
+	"value": "山西",
+	"children": [{
+		"value": "太原市",
+		"children": ["市辖区", "小店区", "迎泽区", "杏花岭区", "尖草坪区", "万柏林区", "晋源区", "清徐县", "阳曲县", "娄烦县", "古交市"]
+	}, {
+		"value": "大同市",
+		"children": ["市辖区", "城区", "矿区", "南郊区", "新荣区", "阳高县", "天镇县", "广灵县", "灵丘县", "浑源县", "左云县", "大同县"]
+	}, {
+		"value": "阳泉市",
+		"children": ["市辖区", "城区", "矿区", "郊区", "平定县", "盂县"]
+	}, {
+		"value": "长治市",
+		"children": ["市辖区", "城区", "郊区", "长治县", "襄垣县", "屯留县", "平顺县", "黎城县", "壶关县", "长子县", "武乡县", "沁县", "沁源县",
+			"潞城市"
+		]
+	}, {
+		"value": "晋城市",
+		"children": ["市辖区", "城区", "沁水县", "阳城县", "陵川县", "泽州县", "高平市"]
+	}, {
+		"value": "朔州市",
+		"children": ["市辖区", "朔城区", "平鲁区", "山阴县", "应县", "右玉县", "怀仁县"]
+	}, {
+		"value": "晋中市",
+		"children": ["市辖区", "榆次区", "榆社县", "左权县", "和顺县", "昔阳县", "寿阳县", "太谷县", "祁县", "平遥县", "灵石县", "介休市"]
+	}, {
+		"value": "运城市",
+		"children": ["市辖区", "盐湖区", "临猗县", "万荣县", "闻喜县", "稷山县", "新绛县", "绛县", "垣曲县", "夏县", "平陆县", "芮城县", "永济市",
+			"河津市"
+		]
+	}, {
+		"value": "忻州市",
+		"children": ["市辖区", "忻府区", "定襄县", "五台县", "代县", "繁峙县", "宁武县", "静乐县", "神池县", "五寨县", "岢岚县", "河曲县", "保德县",
+			"偏关县", "原平市"
+		]
+	}, {
+		"value": "临汾市",
+		"children": ["市辖区", "尧都区", "曲沃县", "翼城县", "襄汾县", "洪洞县", "古县", "安泽县", "浮山县", "吉县", "乡宁县", "大宁县", "隰县",
+			"永和县", "蒲县", "汾西县", "侯马市", "霍州市"
+		]
+	}, {
+		"value": "吕梁市",
+		"children": ["市辖区", "离石区", "文水县", "交城县", "兴县", "临县", "柳林县", "石楼县", "岚县", "方山县", "中阳县", "交口县", "孝义市",
+			"汾阳市"
+		]
+	}]
+}, {
+	"value": "内蒙古",
+	"children": [{
+		"value": "呼和浩特市",
+		"children": ["市辖区", "新城区", "回民区", "玉泉区", "赛罕区", "土默特左旗", "托克托县", "和林格尔县", "清水河县", "武川县"]
+	}, {
+		"value": "包头市",
+		"children": ["市辖区", "东河区", "昆都仑区", "青山区", "石拐区", "白云鄂博矿区", "九原区", "土默特右旗", "固阳县", "达尔罕茂明安联合旗"]
+	}, {
+		"value": "乌海市",
+		"children": ["市辖区", "海勃湾区", "海南区", "乌达区"]
+	}, {
+		"value": "赤峰市",
+		"children": ["市辖区", "红山区", "元宝山区", "松山区", "阿鲁科尔沁旗", "巴林左旗", "巴林右旗", "林西县", "克什克腾旗", "翁牛特旗", "喀喇沁旗",
+			"宁城县", "敖汉旗"
+		]
+	}, {
+		"value": "通辽市",
+		"children": ["市辖区", "科尔沁区", "科尔沁左翼中旗", "科尔沁左翼后旗", "开鲁县", "库伦旗", "奈曼旗", "扎鲁特旗", "霍林郭勒市"]
+	}, {
+		"value": "鄂尔多斯市",
+		"children": ["市辖区", "东胜区", "康巴什区", "达拉特旗", "准格尔旗", "鄂托克前旗", "鄂托克旗", "杭锦旗", "乌审旗", "伊金霍洛旗"]
+	}, {
+		"value": "呼伦贝尔市",
+		"children": ["市辖区", "海拉尔区", "扎赉诺尔区", "阿荣旗", "莫力达瓦达斡尔族自治旗", "鄂伦春自治旗", "鄂温克族自治旗", "陈巴尔虎旗", "新巴尔虎左旗",
+			"新巴尔虎右旗", "满洲里市", "牙克石市", "扎兰屯市", "额尔古纳市", "根河市"
+		]
+	}, {
+		"value": "巴彦淖尔市",
+		"children": ["市辖区", "临河区", "五原县", "磴口县", "乌拉特前旗", "乌拉特中旗", "乌拉特后旗", "杭锦后旗"]
+	}, {
+		"value": "乌兰察布市",
+		"children": ["市辖区", "集宁区", "卓资县", "化德县", "商都县", "兴和县", "凉城县", "察哈尔右翼前旗", "察哈尔右翼中旗", "察哈尔右翼后旗", "四子王旗",
+			"丰镇市"
+		]
+	}, {
+		"value": "兴安盟",
+		"children": ["乌兰浩特市", "阿尔山市", "科尔沁右翼前旗", "科尔沁右翼中旗", "扎赉特旗", "突泉县"]
+	}, {
+		"value": "锡林郭勒盟",
+		"children": ["二连浩特市", "锡林浩特市", "阿巴嘎旗", "苏尼特左旗", "苏尼特右旗", "东乌珠穆沁旗", "西乌珠穆沁旗", "太仆寺旗", "镶黄旗", "正镶白旗",
+			"正蓝旗", "多伦县"
+		]
+	}, {
+		"value": "阿拉善盟",
+		"children": ["阿拉善左旗", "阿拉善右旗", "额济纳旗"]
+	}]
+}, {
+	"value": "辽宁",
+	"children": [{
+		"value": "沈阳市",
+		"children": ["市辖区", "和平区", "沈河区", "大东区", "皇姑区", "铁西区", "苏家屯区", "浑南区", "沈北新区", "于洪区", "辽中区", "康平县",
+			"法库县", "新民市"
+		]
+	}, {
+		"value": "大连市",
+		"children": ["市辖区", "中山区", "西岗区", "沙河口区", "甘井子区", "旅顺口区", "金州区", "普兰店区", "长海县", "瓦房店市", "庄河市"]
+	}, {
+		"value": "鞍山市",
+		"children": ["市辖区", "铁东区", "铁西区", "立山区", "千山区", "台安县", "岫岩满族自治县", "海城市"]
+	}, {
+		"value": "抚顺市",
+		"children": ["市辖区", "新抚区", "东洲区", "望花区", "顺城区", "抚顺县", "新宾满族自治县", "清原满族自治县"]
+	}, {
+		"value": "本溪市",
+		"children": ["市辖区", "平山区", "溪湖区", "明山区", "南芬区", "本溪满族自治县", "桓仁满族自治县"]
+	}, {
+		"value": "丹东市",
+		"children": ["市辖区", "元宝区", "振兴区", "振安区", "宽甸满族自治县", "东港市", "凤城市"]
+	}, {
+		"value": "锦州市",
+		"children": ["市辖区", "古塔区", "凌河区", "太和区", "黑山县", "义县", "凌海市", "北镇市"]
+	}, {
+		"value": "营口市",
+		"children": ["市辖区", "站前区", "西市区", "鲅鱼圈区", "老边区", "盖州市", "大石桥市"]
+	}, {
+		"value": "阜新市",
+		"children": ["市辖区", "海州区", "新邱区", "太平区", "清河门区", "细河区", "阜新蒙古族自治县", "彰武县"]
+	}, {
+		"value": "辽阳市",
+		"children": ["市辖区", "白塔区", "文圣区", "宏伟区", "弓长岭区", "太子河区", "辽阳县", "灯塔市"]
+	}, {
+		"value": "盘锦市",
+		"children": ["市辖区", "双台子区", "兴隆台区", "大洼区", "盘山县"]
+	}, {
+		"value": "铁岭市",
+		"children": ["市辖区", "银州区", "清河区", "铁岭县", "西丰县", "昌图县", "调兵山市", "开原市"]
+	}, {
+		"value": "朝阳市",
+		"children": ["市辖区", "双塔区", "龙城区", "朝阳县", "建平县", "喀喇沁左翼蒙古族自治县", "北票市", "凌源市"]
+	}, {
+		"value": "葫芦岛市",
+		"children": ["市辖区", "连山区", "龙港区", "南票区", "绥中县", "建昌县", "兴城市"]
+	}]
+}, {
+	"value": "吉林",
+	"children": [{
+		"value": "长春市",
+		"children": ["市辖区", "南关区", "宽城区", "朝阳区", "二道区", "绿园区", "双阳区", "九台区", "农安县", "榆树市", "德惠市"]
+	}, {
+		"value": "吉林市",
+		"children": ["市辖区", "昌邑区", "龙潭区", "船营区", "丰满区", "永吉县", "蛟河市", "桦甸市", "舒兰市", "磐石市"]
+	}, {
+		"value": "四平市",
+		"children": ["市辖区", "铁西区", "铁东区", "梨树县", "伊通满族自治县", "公主岭市", "双辽市"]
+	}, {
+		"value": "辽源市",
+		"children": ["市辖区", "龙山区", "西安区", "东丰县", "东辽县"]
+	}, {
+		"value": "通化市",
+		"children": ["市辖区", "东昌区", "二道江区", "通化县", "辉南县", "柳河县", "梅河口市", "集安市"]
+	}, {
+		"value": "白山市",
+		"children": ["市辖区", "浑江区", "江源区", "抚松县", "靖宇县", "长白朝鲜族自治县", "临江市"]
+	}, {
+		"value": "松原市",
+		"children": ["市辖区", "宁江区", "前郭尔罗斯蒙古族自治县", "长岭县", "乾安县", "扶余市"]
+	}, {
+		"value": "白城市",
+		"children": ["市辖区", "洮北区", "镇赉县", "通榆县", "洮南市", "大安市"]
+	}, {
+		"value": "延边朝鲜族自治州",
+		"children": ["延吉市", "图们市", "敦化市", "珲春市", "龙井市", "和龙市", "汪清县", "安图县"]
+	}]
+}, {
+	"value": "黑龙江",
+	"children": [{
+		"value": "哈尔滨市",
+		"children": ["市辖区", "道里区", "南岗区", "道外区", "平房区", "松北区", "香坊区", "呼兰区", "阿城区", "双城区", "依兰县", "方正县", "宾县",
+			"巴彦县", "木兰县", "通河县", "延寿县", "尚志市", "五常市"
+		]
+	}, {
+		"value": "齐齐哈尔市",
+		"children": ["市辖区", "龙沙区", "建华区", "铁锋区", "昂昂溪区", "富拉尔基区", "碾子山区", "梅里斯达斡尔族区", "龙江县", "依安县", "泰来县",
+			"甘南县", "富裕县", "克山县", "克东县", "拜泉县", "讷河市"
+		]
+	}, {
+		"value": "鸡西市",
+		"children": ["市辖区", "鸡冠区", "恒山区", "滴道区", "梨树区", "城子河区", "麻山区", "鸡东县", "虎林市", "密山市"]
+	}, {
+		"value": "鹤岗市",
+		"children": ["市辖区", "向阳区", "工农区", "南山区", "兴安区", "东山区", "兴山区", "萝北县", "绥滨县"]
+	}, {
+		"value": "双鸭山市",
+		"children": ["市辖区", "尖山区", "岭东区", "四方台区", "宝山区", "集贤县", "友谊县", "宝清县", "饶河县"]
+	}, {
+		"value": "大庆市",
+		"children": ["市辖区", "萨尔图区", "龙凤区", "让胡路区", "红岗区", "大同区", "肇州县", "肇源县", "林甸县", "杜尔伯特蒙古族自治县"]
+	}, {
+		"value": "伊春市",
+		"children": ["市辖区", "伊春区", "南岔区", "友好区", "西林区", "翠峦区", "新青区", "美溪区", "金山屯区", "五营区", "乌马河区", "汤旺河区",
+			"带岭区", "乌伊岭区", "红星区", "上甘岭区", "嘉荫县", "铁力市"
+		]
+	}, {
+		"value": "佳木斯市",
+		"children": ["市辖区", "向阳区", "前进区", "东风区", "郊区", "桦南县", "桦川县", "汤原县", "同江市", "富锦市", "抚远市"]
+	}, {
+		"value": "七台河市",
+		"children": ["市辖区", "新兴区", "桃山区", "茄子河区", "勃利县"]
+	}, {
+		"value": "牡丹江市",
+		"children": ["市辖区", "东安区", "阳明区", "爱民区", "西安区", "林口县", "绥芬河市", "海林市", "宁安市", "穆棱市", "东宁市"]
+	}, {
+		"value": "黑河市",
+		"children": ["市辖区", "爱辉区", "嫩江县", "逊克县", "孙吴县", "北安市", "五大连池市"]
+	}, {
+		"value": "绥化市",
+		"children": ["市辖区", "北林区", "望奎县", "兰西县", "青冈县", "庆安县", "明水县", "绥棱县", "安达市", "肇东市", "海伦市"]
+	}, {
+		"value": "大兴安岭地区",
+		"children": ["呼玛县", "塔河县", "漠河县"]
+	}]
+}, {
+	"value": "上海",
+	"children": [{
+		"value": "上海市",
+		"children": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区",
+			"青浦区", "奉贤区", "崇明区"
+		]
+	}]
+}, {
+	"value": "江苏",
+	"children": [{
+		"value": "南京市",
+		"children": ["市辖区", "玄武区", "秦淮区", "建邺区", "鼓楼区", "浦口区", "栖霞区", "雨花台区", "江宁区", "六合区", "溧水区", "高淳区"]
+	}, {
+		"value": "无锡市",
+		"children": ["市辖区", "锡山区", "惠山区", "滨湖区", "梁溪区", "新吴区", "江阴市", "宜兴市"]
+	}, {
+		"value": "徐州市",
+		"children": ["市辖区", "鼓楼区", "云龙区", "贾汪区", "泉山区", "铜山区", "丰县", "沛县", "睢宁县", "新沂市", "邳州市"]
+	}, {
+		"value": "常州市",
+		"children": ["市辖区", "天宁区", "钟楼区", "新北区", "武进区", "金坛区", "溧阳市"]
+	}, {
+		"value": "苏州市",
+		"children": ["市辖区", "虎丘区", "吴中区", "相城区", "姑苏区", "吴江区", "常熟市", "张家港市", "昆山市", "太仓市"]
+	}, {
+		"value": "南通市",
+		"children": ["市辖区", "崇川区", "港闸区", "通州区", "海安县", "如东县", "启东市", "如皋市", "海门市"]
+	}, {
+		"value": "连云港市",
+		"children": ["市辖区", "连云区", "海州区", "赣榆区", "东海县", "灌云县", "灌南县"]
+	}, {
+		"value": "淮安市",
+		"children": ["市辖区", "淮安区", "淮阴区", "清江浦区", "洪泽区", "涟水县", "盱眙县", "金湖县"]
+	}, {
+		"value": "盐城市",
+		"children": ["市辖区", "亭湖区", "盐都区", "大丰区", "响水县", "滨海县", "阜宁县", "射阳县", "建湖县", "东台市"]
+	}, {
+		"value": "扬州市",
+		"children": ["市辖区", "广陵区", "邗江区", "江都区", "宝应县", "仪征市", "高邮市"]
+	}, {
+		"value": "镇江市",
+		"children": ["市辖区", "京口区", "润州区", "丹徒区", "丹阳市", "扬中市", "句容市"]
+	}, {
+		"value": "泰州市",
+		"children": ["市辖区", "海陵区", "高港区", "姜堰区", "兴化市", "靖江市", "泰兴市"]
+	}, {
+		"value": "宿迁市",
+		"children": ["市辖区", "宿城区", "宿豫区", "沭阳县", "泗阳县", "泗洪县"]
+	}]
+}, {
+	"value": "浙江",
+	"children": [{
+		"value": "杭州市",
+		"children": ["市辖区", "上城区", "下城区", "江干区", "拱墅区", "西湖区", "滨江区", "萧山区", "余杭区", "富阳区", "桐庐县", "淳安县", "建德市",
+			"临安市"
+		]
+	}, {
+		"value": "宁波市",
+		"children": ["市辖区", "海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "象山县", "宁海县", "余姚市", "慈溪市", "奉化市"]
+	}, {
+		"value": "温州市",
+		"children": ["市辖区", "鹿城区", "龙湾区", "瓯海区", "洞头区", "永嘉县", "平阳县", "苍南县", "文成县", "泰顺县", "瑞安市", "乐清市"]
+	}, {
+		"value": "嘉兴市",
+		"children": ["市辖区", "南湖区", "秀洲区", "嘉善县", "海盐县", "海宁市", "平湖市", "桐乡市"]
+	}, {
+		"value": "湖州市",
+		"children": ["市辖区", "吴兴区", "南浔区", "德清县", "长兴县", "安吉县"]
+	}, {
+		"value": "绍兴市",
+		"children": ["市辖区", "越城区", "柯桥区", "上虞区", "新昌县", "诸暨市", "嵊州市"]
+	}, {
+		"value": "金华市",
+		"children": ["市辖区", "婺城区", "金东区", "武义县", "浦江县", "磐安县", "兰溪市", "义乌市", "东阳市", "永康市"]
+	}, {
+		"value": "衢州市",
+		"children": ["市辖区", "柯城区", "衢江区", "常山县", "开化县", "龙游县", "江山市"]
+	}, {
+		"value": "舟山市",
+		"children": ["市辖区", "定海区", "普陀区", "岱山县", "嵊泗县"]
+	}, {
+		"value": "台州市",
+		"children": ["市辖区", "椒江区", "黄岩区", "路桥区", "玉环县", "三门县", "天台县", "仙居县", "温岭市", "临海市"]
+	}, {
+		"value": "丽水市",
+		"children": ["市辖区", "莲都区", "青田县", "缙云县", "遂昌县", "松阳县", "云和县", "庆元县", "景宁畲族自治县", "龙泉市"]
+	}]
+}, {
+	"value": "安徽",
+	"children": [{
+		"value": "合肥市",
+		"children": ["市辖区", "瑶海区", "庐阳区", "蜀山区", "包河区", "长丰县", "肥东县", "肥西县", "庐江县", "巢湖市"]
+	}, {
+		"value": "芜湖市",
+		"children": ["市辖区", "镜湖区", "弋江区", "鸠江区", "三山区", "芜湖县", "繁昌县", "南陵县", "无为县"]
+	}, {
+		"value": "蚌埠市",
+		"children": ["市辖区", "龙子湖区", "蚌山区", "禹会区", "淮上区", "怀远县", "五河县", "固镇县"]
+	}, {
+		"value": "淮南市",
+		"children": ["市辖区", "大通区", "田家庵区", "谢家集区", "八公山区", "潘集区", "凤台县", "寿县"]
+	}, {
+		"value": "马鞍山市",
+		"children": ["市辖区", "花山区", "雨山区", "博望区", "当涂县", "含山县", "和县"]
+	}, {
+		"value": "淮北市",
+		"children": ["市辖区", "杜集区", "相山区", "烈山区", "濉溪县"]
+	}, {
+		"value": "铜陵市",
+		"children": ["市辖区", "铜官区", "义安区", "郊区", "枞阳县"]
+	}, {
+		"value": "安庆市",
+		"children": ["市辖区", "迎江区", "大观区", "宜秀区", "怀宁县", "潜山县", "太湖县", "宿松县", "望江县", "岳西县", "桐城市"]
+	}, {
+		"value": "黄山市",
+		"children": ["市辖区", "屯溪区", "黄山区", "徽州区", "歙县", "休宁县", "黟县", "祁门县"]
+	}, {
+		"value": "滁州市",
+		"children": ["市辖区", "琅琊区", "南谯区", "来安县", "全椒县", "定远县", "凤阳县", "天长市", "明光市"]
+	}, {
+		"value": "阜阳市",
+		"children": ["市辖区", "颍州区", "颍东区", "颍泉区", "临泉县", "太和县", "阜南县", "颍上县", "界首市"]
+	}, {
+		"value": "宿州市",
+		"children": ["市辖区", "埇桥区", "砀山县", "萧县", "灵璧县", "泗县"]
+	}, {
+		"value": "六安市",
+		"children": ["市辖区", "金安区", "裕安区", "叶集区", "霍邱县", "舒城县", "金寨县", "霍山县"]
+	}, {
+		"value": "亳州市",
+		"children": ["市辖区", "谯城区", "涡阳县", "蒙城县", "利辛县"]
+	}, {
+		"value": "池州市",
+		"children": ["市辖区", "贵池区", "东至县", "石台县", "青阳县"]
+	}, {
+		"value": "宣城市",
+		"children": ["市辖区", "宣州区", "郎溪县", "广德县", "泾县", "绩溪县", "旌德县", "宁国市"]
+	}]
+}, {
+	"value": "福建",
+	"children": [{
+		"value": "福州市",
+		"children": ["市辖区", "鼓楼区", "台江区", "仓山区", "马尾区", "晋安区", "闽侯县", "连江县", "罗源县", "闽清县", "永泰县", "平潭县", "福清市",
+			"长乐市"
+		]
+	}, {
+		"value": "厦门市",
+		"children": ["市辖区", "思明区", "海沧区", "湖里区", "集美区", "同安区", "翔安区"]
+	}, {
+		"value": "莆田市",
+		"children": ["市辖区", "城厢区", "涵江区", "荔城区", "秀屿区", "仙游县"]
+	}, {
+		"value": "三明市",
+		"children": ["市辖区", "梅列区", "三元区", "明溪县", "清流县", "宁化县", "大田县", "尤溪县", "沙县", "将乐县", "泰宁县", "建宁县", "永安市"]
+	}, {
+		"value": "泉州市",
+		"children": ["市辖区", "鲤城区", "丰泽区", "洛江区", "泉港区", "惠安县", "安溪县", "永春县", "德化县", "金门县", "石狮市", "晋江市", "南安市"]
+	}, {
+		"value": "漳州市",
+		"children": ["市辖区", "芗城区", "龙文区", "云霄县", "漳浦县", "诏安县", "长泰县", "东山县", "南靖县", "平和县", "华安县", "龙海市"]
+	}, {
+		"value": "南平市",
+		"children": ["市辖区", "延平区", "建阳区", "顺昌县", "浦城县", "光泽县", "松溪县", "政和县", "邵武市", "武夷山市", "建瓯市"]
+	}, {
+		"value": "龙岩市",
+		"children": ["市辖区", "新罗区", "永定区", "长汀县", "上杭县", "武平县", "连城县", "漳平市"]
+	}, {
+		"value": "宁德市",
+		"children": ["市辖区", "蕉城区", "霞浦县", "古田县", "屏南县", "寿宁县", "周宁县", "柘荣县", "福安市", "福鼎市"]
+	}]
+}, {
+	"value": "江西",
+	"children": [{
+		"value": "南昌市",
+		"children": ["市辖区", "东湖区", "西湖区", "青云谱区", "湾里区", "青山湖区", "新建区", "南昌县", "安义县", "进贤县"]
+	}, {
+		"value": "景德镇市",
+		"children": ["市辖区", "昌江区", "珠山区", "浮梁县", "乐平市"]
+	}, {
+		"value": "萍乡市",
+		"children": ["市辖区", "安源区", "湘东区", "莲花县", "上栗县", "芦溪县"]
+	}, {
+		"value": "九江市",
+		"children": ["市辖区", "濂溪区", "浔阳区", "九江县", "武宁县", "修水县", "永修县", "德安县", "都昌县", "湖口县", "彭泽县", "瑞昌市", "共青城市",
+			"庐山市"
+		]
+	}, {
+		"value": "新余市",
+		"children": ["市辖区", "渝水区", "分宜县"]
+	}, {
+		"value": "鹰潭市",
+		"children": ["市辖区", "月湖区", "余江县", "贵溪市"]
+	}, {
+		"value": "赣州市",
+		"children": ["市辖区", "章贡区", "南康区", "赣县", "信丰县", "大余县", "上犹县", "崇义县", "安远县", "龙南县", "定南县", "全南县", "宁都县",
+			"于都县", "兴国县", "会昌县", "寻乌县", "石城县", "瑞金市"
+		]
+	}, {
+		"value": "吉安市",
+		"children": ["市辖区", "吉州区", "青原区", "吉安县", "吉水县", "峡江县", "新干县", "永丰县", "泰和县", "遂川县", "万安县", "安福县", "永新县",
+			"井冈山市"
+		]
+	}, {
+		"value": "宜春市",
+		"children": ["市辖区", "袁州区", "奉新县", "万载县", "上高县", "宜丰县", "靖安县", "铜鼓县", "丰城市", "樟树市", "高安市"]
+	}, {
+		"value": "抚州市",
+		"children": ["市辖区", "临川区", "南城县", "黎川县", "南丰县", "崇仁县", "乐安县", "宜黄县", "金溪县", "资溪县", "东乡县", "广昌县"]
+	}, {
+		"value": "上饶市",
+		"children": ["市辖区", "信州区", "广丰区", "上饶县", "玉山县", "铅山县", "横峰县", "弋阳县", "余干县", "鄱阳县", "万年县", "婺源县", "德兴市"]
+	}]
+}, {
+	"value": "山东",
+	"children": [{
+		"value": "济南市",
+		"children": ["市辖区", "历下区", "市中区", "槐荫区", "天桥区", "历城区", "长清区", "平阴县", "济阳县", "商河县", "章丘市"]
+	}, {
+		"value": "青岛市",
+		"children": ["市辖区", "市南区", "市北区", "黄岛区", "崂山区", "李沧区", "城阳区", "胶州市", "即墨市", "平度市", "莱西市"]
+	}, {
+		"value": "淄博市",
+		"children": ["市辖区", "淄川区", "张店区", "博山区", "临淄区", "周村区", "桓台县", "高青县", "沂源县"]
+	}, {
+		"value": "枣庄市",
+		"children": ["市辖区", "市中区", "薛城区", "峄城区", "台儿庄区", "山亭区", "滕州市"]
+	}, {
+		"value": "东营市",
+		"children": ["市辖区", "东营区", "河口区", "垦利区", "利津县", "广饶县"]
+	}, {
+		"value": "烟台市",
+		"children": ["市辖区", "芝罘区", "福山区", "牟平区", "莱山区", "长岛县", "龙口市", "莱阳市", "莱州市", "蓬莱市", "招远市", "栖霞市", "海阳市"]
+	}, {
+		"value": "潍坊市",
+		"children": ["市辖区", "潍城区", "寒亭区", "坊子区", "奎文区", "临朐县", "昌乐县", "青州市", "诸城市", "寿光市", "安丘市", "高密市", "昌邑市"]
+	}, {
+		"value": "济宁市",
+		"children": ["市辖区", "任城区", "兖州区", "微山县", "鱼台县", "金乡县", "嘉祥县", "汶上县", "泗水县", "梁山县", "曲阜市", "邹城市"]
+	}, {
+		"value": "泰安市",
+		"children": ["市辖区", "泰山区", "岱岳区", "宁阳县", "东平县", "新泰市", "肥城市"]
+	}, {
+		"value": "威海市",
+		"children": ["市辖区", "环翠区", "文登区", "荣成市", "乳山市"]
+	}, {
+		"value": "日照市",
+		"children": ["市辖区", "东港区", "岚山区", "五莲县", "莒县"]
+	}, {
+		"value": "莱芜市",
+		"children": ["市辖区", "莱城区", "钢城区"]
+	}, {
+		"value": "临沂市",
+		"children": ["市辖区", "兰山区", "罗庄区", "河东区", "沂南县", "郯城县", "沂水县", "兰陵县", "费县", "平邑县", "莒南县", "蒙阴县", "临沭县"]
+	}, {
+		"value": "德州市",
+		"children": ["市辖区", "德城区", "陵城区", "宁津县", "庆云县", "临邑县", "齐河县", "平原县", "夏津县", "武城县", "乐陵市", "禹城市"]
+	}, {
+		"value": "聊城市",
+		"children": ["市辖区", "东昌府区", "阳谷县", "莘县", "茌平县", "东阿县", "冠县", "高唐县", "临清市"]
+	}, {
+		"value": "滨州市",
+		"children": ["市辖区", "滨城区", "沾化区", "惠民县", "阳信县", "无棣县", "博兴县", "邹平县"]
+	}, {
+		"value": "菏泽市",
+		"children": ["市辖区", "牡丹区", "定陶区", "曹县", "单县", "成武县", "巨野县", "郓城县", "鄄城县", "东明县"]
+	}]
+}, {
+	"value": "河南",
+	"children": [{
+		"value": "郑州市",
+		"children": ["市辖区", "中原区", "二七区", "管城回族区", "金水区", "上街区", "惠济区", "中牟县", "巩义市", "荥阳市", "新密市", "新郑市",
+			"登封市"
+		]
+	}, {
+		"value": "开封市",
+		"children": ["市辖区", "龙亭区", "顺河回族区", "鼓楼区", "禹王台区", "金明区", "祥符区", "杞县", "通许县", "尉氏县", "兰考县"]
+	}, {
+		"value": "洛阳市",
+		"children": ["市辖区", "老城区", "西工区", "瀍河回族区", "涧西区", "吉利区", "洛龙区", "孟津县", "新安县", "栾川县", "嵩县", "汝阳县", "宜阳县",
+			"洛宁县", "伊川县", "偃师市"
+		]
+	}, {
+		"value": "平顶山市",
+		"children": ["市辖区", "新华区", "卫东区", "石龙区", "湛河区", "宝丰县", "叶县", "鲁山县", "郏县", "舞钢市", "汝州市"]
+	}, {
+		"value": "安阳市",
+		"children": ["市辖区", "文峰区", "北关区", "殷都区", "龙安区", "安阳县", "汤阴县", "滑县", "内黄县", "林州市"]
+	}, {
+		"value": "鹤壁市",
+		"children": ["市辖区", "鹤山区", "山城区", "淇滨区", "浚县", "淇县"]
+	}, {
+		"value": "新乡市",
+		"children": ["市辖区", "红旗区", "卫滨区", "凤泉区", "牧野区", "新乡县", "获嘉县", "原阳县", "延津县", "封丘县", "长垣县", "卫辉市", "辉县市"]
+	}, {
+		"value": "焦作市",
+		"children": ["市辖区", "解放区", "中站区", "马村区", "山阳区", "修武县", "博爱县", "武陟县", "温县", "沁阳市", "孟州市"]
+	}, {
+		"value": "濮阳市",
+		"children": ["市辖区", "华龙区", "清丰县", "南乐县", "范县", "台前县", "濮阳县"]
+	}, {
+		"value": "许昌市",
+		"children": ["市辖区", "魏都区", "许昌县", "鄢陵县", "襄城县", "禹州市", "长葛市"]
+	}, {
+		"value": "漯河市",
+		"children": ["市辖区", "源汇区", "郾城区", "召陵区", "舞阳县", "临颍县"]
+	}, {
+		"value": "三门峡市",
+		"children": ["市辖区", "湖滨区", "陕州区", "渑池县", "卢氏县", "义马市", "灵宝市"]
+	}, {
+		"value": "南阳市",
+		"children": ["市辖区", "宛城区", "卧龙区", "南召县", "方城县", "西峡县", "镇平县", "内乡县", "淅川县", "社旗县", "唐河县", "新野县", "桐柏县",
+			"邓州市"
+		]
+	}, {
+		"value": "商丘市",
+		"children": ["市辖区", "梁园区", "睢阳区", "民权县", "睢县", "宁陵县", "柘城县", "虞城县", "夏邑县", "永城市"]
+	}, {
+		"value": "信阳市",
+		"children": ["市辖区", "浉河区", "平桥区", "罗山县", "光山县", "新县", "商城县", "固始县", "潢川县", "淮滨县", "息县"]
+	}, {
+		"value": "周口市",
+		"children": ["市辖区", "川汇区", "扶沟县", "西华县", "商水县", "沈丘县", "郸城县", "淮阳县", "太康县", "鹿邑县", "项城市"]
+	}, {
+		"value": "驻马店市",
+		"children": ["市辖区", "驿城区", "西平县", "上蔡县", "平舆县", "正阳县", "确山县", "泌阳县", "汝南县", "遂平县", "新蔡县"]
+	}, {
+		"value": "直辖县",
+		"children": ["济源市"]
+	}]
+}, {
+	"value": "湖北",
+	"children": [{
+		"value": "武汉市",
+		"children": ["市辖区", "江岸区", "江汉区", "硚口区", "汉阳区", "武昌区", "青山区", "洪山区", "东西湖区", "汉南区", "蔡甸区", "江夏区", "黄陂区",
+			"新洲区"
+		]
+	}, {
+		"value": "黄石市",
+		"children": ["市辖区", "黄石港区", "西塞山区", "下陆区", "铁山区", "阳新县", "大冶市"]
+	}, {
+		"value": "十堰市",
+		"children": ["市辖区", "茅箭区", "张湾区", "郧阳区", "郧西县", "竹山县", "竹溪县", "房县", "丹江口市"]
+	}, {
+		"value": "宜昌市",
+		"children": ["市辖区", "西陵区", "伍家岗区", "点军区", "猇亭区", "夷陵区", "远安县", "兴山县", "秭归县", "长阳土家族自治县", "五峰土家族自治县",
+			"宜都市", "当阳市", "枝江市"
+		]
+	}, {
+		"value": "襄阳市",
+		"children": ["市辖区", "襄城区", "樊城区", "襄州区", "南漳县", "谷城县", "保康县", "老河口市", "枣阳市", "宜城市"]
+	}, {
+		"value": "鄂州市",
+		"children": ["市辖区", "梁子湖区", "华容区", "鄂城区"]
+	}, {
+		"value": "荆门市",
+		"children": ["市辖区", "东宝区", "掇刀区", "京山县", "沙洋县", "钟祥市"]
+	}, {
+		"value": "孝感市",
+		"children": ["市辖区", "孝南区", "孝昌县", "大悟县", "云梦县", "应城市", "安陆市", "汉川市"]
+	}, {
+		"value": "荆州市",
+		"children": ["市辖区", "沙市区", "荆州区", "公安县", "监利县", "江陵县", "石首市", "洪湖市", "松滋市"]
+	}, {
+		"value": "黄冈市",
+		"children": ["市辖区", "黄州区", "团风县", "红安县", "罗田县", "英山县", "浠水县", "蕲春县", "黄梅县", "麻城市", "武穴市"]
+	}, {
+		"value": "咸宁市",
+		"children": ["市辖区", "咸安区", "嘉鱼县", "通城县", "崇阳县", "通山县", "赤壁市"]
+	}, {
+		"value": "随州市",
+		"children": ["市辖区", "曾都区", "随县", "广水市"]
+	}, {
+		"value": "恩施土家族苗族自治州",
+		"children": ["恩施市", "利川市", "建始县", "巴东县", "宣恩县", "咸丰县", "来凤县", "鹤峰县"]
+	}, {
+		"value": "直辖县",
+		"children": ["仙桃市", "潜江市", "天门市", "神农架林区"]
+	}]
+}, {
+	"value": "湖南",
+	"children": [{
+		"value": "长沙市",
+		"children": ["市辖区", "芙蓉区", "天心区", "岳麓区", "开福区", "雨花区", "望城区", "长沙县", "宁乡县", "浏阳市"]
+	}, {
+		"value": "株洲市",
+		"children": ["市辖区", "荷塘区", "芦淞区", "石峰区", "天元区", "株洲县", "攸县", "茶陵县", "炎陵县", "醴陵市"]
+	}, {
+		"value": "湘潭市",
+		"children": ["市辖区", "雨湖区", "岳塘区", "湘潭县", "湘乡市", "韶山市"]
+	}, {
+		"value": "衡阳市",
+		"children": ["市辖区", "珠晖区", "雁峰区", "石鼓区", "蒸湘区", "南岳区", "衡阳县", "衡南县", "衡山县", "衡东县", "祁东县", "耒阳市", "常宁市"]
+	}, {
+		"value": "邵阳市",
+		"children": ["市辖区", "双清区", "大祥区", "北塔区", "邵东县", "新邵县", "邵阳县", "隆回县", "洞口县", "绥宁县", "新宁县", "城步苗族自治县",
+			"武冈市"
+		]
+	}, {
+		"value": "岳阳市",
+		"children": ["市辖区", "岳阳楼区", "云溪区", "君山区", "岳阳县", "华容县", "湘阴县", "平江县", "汨罗市", "临湘市"]
+	}, {
+		"value": "常德市",
+		"children": ["市辖区", "武陵区", "鼎城区", "安乡县", "汉寿县", "澧县", "临澧县", "桃源县", "石门县", "津市市"]
+	}, {
+		"value": "张家界市",
+		"children": ["市辖区", "永定区", "武陵源区", "慈利县", "桑植县"]
+	}, {
+		"value": "益阳市",
+		"children": ["市辖区", "资阳区", "赫山区", "南县", "桃江县", "安化县", "沅江市"]
+	}, {
+		"value": "郴州市",
+		"children": ["市辖区", "北湖区", "苏仙区", "桂阳县", "宜章县", "永兴县", "嘉禾县", "临武县", "汝城县", "桂东县", "安仁县", "资兴市"]
+	}, {
+		"value": "永州市",
+		"children": ["市辖区", "零陵区", "冷水滩区", "祁阳县", "东安县", "双牌县", "道县", "江永县", "宁远县", "蓝山县", "新田县", "江华瑶族自治县"]
+	}, {
+		"value": "怀化市",
+		"children": ["市辖区", "鹤城区", "中方县", "沅陵县", "辰溪县", "溆浦县", "会同县", "麻阳苗族自治县", "新晃侗族自治县", "芷江侗族自治县",
+			"靖州苗族侗族自治县", "通道侗族自治县", "洪江市"
+		]
+	}, {
+		"value": "娄底市",
+		"children": ["市辖区", "娄星区", "双峰县", "新化县", "冷水江市", "涟源市"]
+	}, {
+		"value": "湘西土家族苗族自治州",
+		"children": ["吉首市", "泸溪县", "凤凰县", "花垣县", "保靖县", "古丈县", "永顺县", "龙山县"]
+	}]
+}, {
+	"value": "广东",
+	"children": [{
+		"value": "广州市",
+		"children": ["市辖区", "荔湾区", "越秀区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "从化区", "增城区"]
+	}, {
+		"value": "韶关市",
+		"children": ["市辖区", "武江区", "浈江区", "曲江区", "始兴县", "仁化县", "翁源县", "乳源瑶族自治县", "新丰县", "乐昌市", "南雄市"]
+	}, {
+		"value": "深圳市",
+		"children": ["市辖区", "罗湖区", "福田区", "南山区", "宝安区", "龙岗区", "盐田区"]
+	}, {
+		"value": "珠海市",
+		"children": ["市辖区", "香洲区", "斗门区", "金湾区"]
+	}, {
+		"value": "汕头市",
+		"children": ["市辖区", "龙湖区", "金平区", "濠江区", "潮阳区", "潮南区", "澄海区", "南澳县"]
+	}, {
+		"value": "佛山市",
+		"children": ["市辖区", "禅城区", "南海区", "顺德区", "三水区", "高明区"]
+	}, {
+		"value": "江门市",
+		"children": ["市辖区", "蓬江区", "江海区", "新会区", "台山市", "开平市", "鹤山市", "恩平市"]
+	}, {
+		"value": "湛江市",
+		"children": ["市辖区", "赤坎区", "霞山区", "坡头区", "麻章区", "遂溪县", "徐闻县", "廉江市", "雷州市", "吴川市"]
+	}, {
+		"value": "茂名市",
+		"children": ["市辖区", "茂南区", "电白区", "高州市", "化州市", "信宜市"]
+	}, {
+		"value": "肇庆市",
+		"children": ["市辖区", "端州区", "鼎湖区", "高要区", "广宁县", "怀集县", "封开县", "德庆县", "四会市"]
+	}, {
+		"value": "惠州市",
+		"children": ["市辖区", "惠城区", "惠阳区", "博罗县", "惠东县", "龙门县"]
+	}, {
+		"value": "梅州市",
+		"children": ["市辖区", "梅江区", "梅县区", "大埔县", "丰顺县", "五华县", "平远县", "蕉岭县", "兴宁市"]
+	}, {
+		"value": "汕尾市",
+		"children": ["市辖区", "城区", "海丰县", "陆河县", "陆丰市"]
+	}, {
+		"value": "河源市",
+		"children": ["市辖区", "源城区", "紫金县", "龙川县", "连平县", "和平县", "东源县"]
+	}, {
+		"value": "阳江市",
+		"children": ["市辖区", "江城区", "阳东区", "阳西县", "阳春市"]
+	}, {
+		"value": "清远市",
+		"children": ["市辖区", "清城区", "清新区", "佛冈县", "阳山县", "连山壮族瑶族自治县", "连南瑶族自治县", "英德市", "连州市"]
+	}, {
+		"value": "东莞市",
+		"children": ["东城街道办事处", "南城街道办事处", "万江街道办事处", "莞城街道办事处", "石碣镇", "石龙镇", "茶山镇", "石排镇", "企石镇", "横沥镇",
+			"桥头镇", "谢岗镇", "东坑镇", "常平镇", "寮步镇", "樟木头镇", "大朗镇", "黄江镇", "清溪镇", "塘厦镇", "凤岗镇", "大岭山镇", "长安镇",
+			"虎门镇", "厚街镇", "沙田镇", "道滘镇", "洪梅镇", "麻涌镇", "望牛墩镇", "中堂镇", "高埗镇", "松山湖管委会", "虎门港管委会", "东莞生态园"
+		]
+	}, {
+		"value": "中山市",
+		"children": ["石岐区街道办事处", "东区街道办事处", "火炬开发区街道办事处", "西区街道办事处", "南区街道办事处", "五桂山街道办事处", "小榄镇", "黄圃镇", "民众镇",
+			"东凤镇", "东升镇", "古镇镇", "沙溪镇", "坦洲镇", "港口镇", "三角镇", "横栏镇", "南头镇", "阜沙镇", "南朗镇", "三乡镇", "板芙镇",
+			"大涌镇", "神湾镇"
+		]
+	}, {
+		"value": "潮州市",
+		"children": ["市辖区", "湘桥区", "潮安区", "饶平县"]
+	}, {
+		"value": "揭阳市",
+		"children": ["市辖区", "榕城区", "揭东区", "揭西县", "惠来县", "普宁市"]
+	}, {
+		"value": "云浮市",
+		"children": ["市辖区", "云城区", "云安区", "新兴县", "郁南县", "罗定市"]
+	}]
+}, {
+	"value": "广西",
+	"children": [{
+		"value": "南宁市",
+		"children": ["市辖区", "兴宁区", "青秀区", "江南区", "西乡塘区", "良庆区", "邕宁区", "武鸣区", "隆安县", "马山县", "上林县", "宾阳县", "横县"]
+	}, {
+		"value": "柳州市",
+		"children": ["市辖区", "城中区", "鱼峰区", "柳南区", "柳北区", "柳江区", "柳城县", "鹿寨县", "融安县", "融水苗族自治县", "三江侗族自治县"]
+	}, {
+		"value": "桂林市",
+		"children": ["市辖区", "秀峰区", "叠彩区", "象山区", "七星区", "雁山区", "临桂区", "阳朔县", "灵川县", "全州县", "兴安县", "永福县", "灌阳县",
+			"龙胜各族自治县", "资源县", "平乐县", "荔浦县", "恭城瑶族自治县"
+		]
+	}, {
+		"value": "梧州市",
+		"children": ["市辖区", "万秀区", "长洲区", "龙圩区", "苍梧县", "藤县", "蒙山县", "岑溪市"]
+	}, {
+		"value": "北海市",
+		"children": ["市辖区", "海城区", "银海区", "铁山港区", "合浦县"]
+	}, {
+		"value": "防城港市",
+		"children": ["市辖区", "港口区", "防城区", "上思县", "东兴市"]
+	}, {
+		"value": "钦州市",
+		"children": ["市辖区", "钦南区", "钦北区", "灵山县", "浦北县"]
+	}, {
+		"value": "贵港市",
+		"children": ["市辖区", "港北区", "港南区", "覃塘区", "平南县", "桂平市"]
+	}, {
+		"value": "玉林市",
+		"children": ["市辖区", "玉州区", "福绵区", "容县", "陆川县", "博白县", "兴业县", "北流市"]
+	}, {
+		"value": "百色市",
+		"children": ["市辖区", "右江区", "田阳县", "田东县", "平果县", "德保县", "那坡县", "凌云县", "乐业县", "田林县", "西林县", "隆林各族自治县",
+			"靖西市"
+		]
+	}, {
+		"value": "贺州市",
+		"children": ["市辖区", "八步区", "平桂区", "昭平县", "钟山县", "富川瑶族自治县"]
+	}, {
+		"value": "河池市",
+		"children": ["市辖区", "金城江区", "南丹县", "天峨县", "凤山县", "东兰县", "罗城仫佬族自治县", "环江毛南族自治县", "巴马瑶族自治县", "都安瑶族自治县",
+			"大化瑶族自治县", "宜州市"
+		]
+	}, {
+		"value": "来宾市",
+		"children": ["市辖区", "兴宾区", "忻城县", "象州县", "武宣县", "金秀瑶族自治县", "合山市"]
+	}, {
+		"value": "崇左市",
+		"children": ["市辖区", "江州区", "扶绥县", "宁明县", "龙州县", "大新县", "天等县", "凭祥市"]
+	}]
+}, {
+	"value": "海南",
+	"children": [{
+		"value": "海口市",
+		"children": ["市辖区", "秀英区", "龙华区", "琼山区", "美兰区"]
+	}, {
+		"value": "三亚市",
+		"children": ["市辖区", "海棠区", "吉阳区", "天涯区", "崖州区"]
+	}, {
+		"value": "三沙市",
+		"children": ["西沙群岛", "南沙群岛", "中沙群岛的岛礁及其海域"]
+	}, {
+		"value": "儋州市",
+		"children": ["那大镇", "和庆镇", "南丰镇", "大成镇", "雅星镇", "兰洋镇", "光村镇", "木棠镇", "海头镇", "峨蔓镇", "三都镇", "王五镇", "白马井镇",
+			"中和镇", "排浦镇", "东成镇", "新州镇", "国营西培农场", "国营西联农场", "国营蓝洋农场", "国营八一农场", "洋浦经济开发区", "华南热作学院"
+		]
+	}, {
+		"value": "省直辖县级行政区域",
+		"children": ["五指山市", "琼海市", "文昌市", "万宁市", "东方市", "定安县", "屯昌县", "澄迈县", "临高县", "白沙黎族自治县", "昌江黎族自治县",
+			"乐东黎族自治县", "陵水黎族自治县", "保亭黎族苗族自治县", "琼中黎族苗族自治县"
+		]
+	}]
+}, {
+	"value": "重庆",
+	"children": [{
+		"value": "重庆市",
+		"children": ["万州区", "涪陵区", "渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "綦江区", "大足区", "渝北区",
+			"巴南区", "黔江区", "长寿区", "江津区", "合川区", "永川区", "南川区", "璧山区", "铜梁区", "潼南区", "荣昌区", "开州区"
+		]
+	}, {
+		"value": "县",
+		"children": ["梁平县", "城口县", "丰都县", "垫江县", "武隆县", "忠县", "云阳县", "奉节县", "巫山县", "巫溪县", "石柱土家族自治县",
+			"秀山土家族苗族自治县", "酉阳土家族苗族自治县", "彭水苗族土家族自治县"
+		]
+	}]
+}, {
+	"value": "四川",
+	"children": [{
+		"value": "成都市",
+		"children": ["市辖区", "锦江区", "青羊区", "金牛区", "武侯区", "成华区", "龙泉驿区", "青白江区", "新都区", "温江区", "双流区", "金堂县", "郫县",
+			"大邑县", "蒲江县", "新津县", "都江堰市", "彭州市", "邛崃市", "崇州市", "简阳市"
+		]
+	}, {
+		"value": "自贡市",
+		"children": ["市辖区", "自流井区", "贡井区", "大安区", "沿滩区", "荣县", "富顺县"]
+	}, {
+		"value": "攀枝花市",
+		"children": ["市辖区", "东区", "西区", "仁和区", "米易县", "盐边县"]
+	}, {
+		"value": "泸州市",
+		"children": ["市辖区", "江阳区", "纳溪区", "龙马潭区", "泸县", "合江县", "叙永县", "古蔺县"]
+	}, {
+		"value": "德阳市",
+		"children": ["市辖区", "旌阳区", "中江县", "罗江县", "广汉市", "什邡市", "绵竹市"]
+	}, {
+		"value": "绵阳市",
+		"children": ["市辖区", "涪城区", "游仙区", "安州区", "三台县", "盐亭县", "梓潼县", "北川羌族自治县", "平武县", "江油市"]
+	}, {
+		"value": "广元市",
+		"children": ["市辖区", "利州区", "昭化区", "朝天区", "旺苍县", "青川县", "剑阁县", "苍溪县"]
+	}, {
+		"value": "遂宁市",
+		"children": ["市辖区", "船山区", "安居区", "蓬溪县", "射洪县", "大英县"]
+	}, {
+		"value": "内江市",
+		"children": ["市辖区", "市中区", "东兴区", "威远县", "资中县", "隆昌县"]
+	}, {
+		"value": "乐山市",
+		"children": ["市辖区", "市中区", "沙湾区", "五通桥区", "金口河区", "犍为县", "井研县", "夹江县", "沐川县", "峨边彝族自治县", "马边彝族自治县",
+			"峨眉山市"
+		]
+	}, {
+		"value": "南充市",
+		"children": ["市辖区", "顺庆区", "高坪区", "嘉陵区", "南部县", "营山县", "蓬安县", "仪陇县", "西充县", "阆中市"]
+	}, {
+		"value": "眉山市",
+		"children": ["市辖区", "东坡区", "彭山区", "仁寿县", "洪雅县", "丹棱县", "青神县"]
+	}, {
+		"value": "宜宾市",
+		"children": ["市辖区", "翠屏区", "南溪区", "宜宾县", "江安县", "长宁县", "高县", "珙县", "筠连县", "兴文县", "屏山县"]
+	}, {
+		"value": "广安市",
+		"children": ["市辖区", "广安区", "前锋区", "岳池县", "武胜县", "邻水县", "华蓥市"]
+	}, {
+		"value": "达州市",
+		"children": ["市辖区", "通川区", "达川区", "宣汉县", "开江县", "大竹县", "渠县", "万源市"]
+	}, {
+		"value": "雅安市",
+		"children": ["市辖区", "雨城区", "名山区", "荥经县", "汉源县", "石棉县", "天全县", "芦山县", "宝兴县"]
+	}, {
+		"value": "巴中市",
+		"children": ["市辖区", "巴州区", "恩阳区", "通江县", "南江县", "平昌县"]
+	}, {
+		"value": "资阳市",
+		"children": ["市辖区", "雁江区", "安岳县", "乐至县"]
+	}, {
+		"value": "阿坝藏族羌族自治州",
+		"children": ["马尔康市", "汶川县", "理县", "茂县", "松潘县", "九寨沟县", "金川县", "小金县", "黑水县", "壤塘县", "阿坝县", "若尔盖县", "红原县"]
+	}, {
+		"value": "甘孜藏族自治州",
+		"children": ["康定市", "泸定县", "丹巴县", "九龙县", "雅江县", "道孚县", "炉霍县", "甘孜县", "新龙县", "德格县", "白玉县", "石渠县", "色达县",
+			"理塘县", "巴塘县", "乡城县", "稻城县", "得荣县"
+		]
+	}, {
+		"value": "凉山彝族自治州",
+		"children": ["西昌市", "木里藏族自治县", "盐源县", "德昌县", "会理县", "会东县", "宁南县", "普格县", "布拖县", "金阳县", "昭觉县", "喜德县",
+			"冕宁县", "越西县", "甘洛县", "美姑县", "雷波县"
+		]
+	}]
+}, {
+	"value": "贵州",
+	"children": [{
+		"value": "贵阳市",
+		"children": ["市辖区", "南明区", "云岩区", "花溪区", "乌当区", "白云区", "观山湖区", "开阳县", "息烽县", "修文县", "清镇市"]
+	}, {
+		"value": "六盘水市",
+		"children": ["钟山区", "六枝特区", "水城县", "盘县"]
+	}, {
+		"value": "遵义市",
+		"children": ["市辖区", "红花岗区", "汇川区", "播州区", "桐梓县", "绥阳县", "正安县", "道真仡佬族苗族自治县", "务川仡佬族苗族自治县", "凤冈县", "湄潭县",
+			"余庆县", "习水县", "赤水市", "仁怀市"
+		]
+	}, {
+		"value": "安顺市",
+		"children": ["市辖区", "西秀区", "平坝区", "普定县", "镇宁布依族苗族自治县", "关岭布依族苗族自治县", "紫云苗族布依族自治县"]
+	}, {
+		"value": "毕节市",
+		"children": ["市辖区", "七星关区", "大方县", "黔西县", "金沙县", "织金县", "纳雍县", "威宁彝族回族苗族自治县", "赫章县"]
+	}, {
+		"value": "铜仁市",
+		"children": ["市辖区", "碧江区", "万山区", "江口县", "玉屏侗族自治县", "石阡县", "思南县", "印江土家族苗族自治县", "德江县", "沿河土家族自治县",
+			"松桃苗族自治县"
+		]
+	}, {
+		"value": "黔西南布依族苗族自治州",
+		"children": ["兴义市", "兴仁县", "普安县", "晴隆县", "贞丰县", "望谟县", "册亨县", "安龙县"]
+	}, {
+		"value": "黔东南苗族侗族自治州",
+		"children": ["凯里市", "黄平县", "施秉县", "三穗县", "镇远县", "岑巩县", "天柱县", "锦屏县", "剑河县", "台江县", "黎平县", "榕江县", "从江县",
+			"雷山县", "麻江县", "丹寨县"
+		]
+	}, {
+		"value": "黔南布依族苗族自治州",
+		"children": ["都匀市", "福泉市", "荔波县", "贵定县", "瓮安县", "独山县", "平塘县", "罗甸县", "长顺县", "龙里县", "惠水县", "三都水族自治县"]
+	}]
+}, {
+	"value": "云南",
+	"children": [{
+		"value": "昆明市",
+		"children": ["市辖区", "五华区", "盘龙区", "官渡区", "西山区", "东川区", "呈贡区", "晋宁县", "富民县", "宜良县", "石林彝族自治县", "嵩明县",
+			"禄劝彝族苗族自治县", "寻甸回族彝族自治县", "安宁市"
+		]
+	}, {
+		"value": "曲靖市",
+		"children": ["市辖区", "麒麟区", "沾益区", "马龙县", "陆良县", "师宗县", "罗平县", "富源县", "会泽县", "宣威市"]
+	}, {
+		"value": "玉溪市",
+		"children": ["市辖区", "红塔区", "江川区", "澄江县", "通海县", "华宁县", "易门县", "峨山彝族自治县", "新平彝族傣族自治县", "元江哈尼族彝族傣族自治县"]
+	}, {
+		"value": "保山市",
+		"children": ["市辖区", "隆阳区", "施甸县", "龙陵县", "昌宁县", "腾冲市"]
+	}, {
+		"value": "昭通市",
+		"children": ["市辖区", "昭阳区", "鲁甸县", "巧家县", "盐津县", "大关县", "永善县", "绥江县", "镇雄县", "彝良县", "威信县", "水富县"]
+	}, {
+		"value": "丽江市",
+		"children": ["市辖区", "古城区", "玉龙纳西族自治县", "永胜县", "华坪县", "宁蒗彝族自治县"]
+	}, {
+		"value": "普洱市",
+		"children": ["市辖区", "思茅区", "宁洱哈尼族彝族自治县", "墨江哈尼族自治县", "景东彝族自治县", "景谷傣族彝族自治县", "镇沅彝族哈尼族拉祜族自治县",
+			"江城哈尼族彝族自治县", "孟连傣族拉祜族佤族自治县", "澜沧拉祜族自治县", "西盟佤族自治县"
+		]
+	}, {
+		"value": "临沧市",
+		"children": ["市辖区", "临翔区", "凤庆县", "云县", "永德县", "镇康县", "双江拉祜族佤族布朗族傣族自治县", "耿马傣族佤族自治县", "沧源佤族自治县"]
+	}, {
+		"value": "楚雄彝族自治州",
+		"children": ["楚雄市", "双柏县", "牟定县", "南华县", "姚安县", "大姚县", "永仁县", "元谋县", "武定县", "禄丰县"]
+	}, {
+		"value": "红河哈尼族彝族自治州",
+		"children": ["个旧市", "开远市", "蒙自市", "弥勒市", "屏边苗族自治县", "建水县", "石屏县", "泸西县", "元阳县", "红河县", "金平苗族瑶族傣族自治县",
+			"绿春县", "河口瑶族自治县"
+		]
+	}, {
+		"value": "文山壮族苗族自治州",
+		"children": ["文山市", "砚山县", "西畴县", "麻栗坡县", "马关县", "丘北县", "广南县", "富宁县"]
+	}, {
+		"value": "西双版纳傣族自治州",
+		"children": ["景洪市", "勐海县", "勐腊县"]
+	}, {
+		"value": "大理白族自治州",
+		"children": ["大理市", "漾濞彝族自治县", "祥云县", "宾川县", "弥渡县", "南涧彝族自治县", "巍山彝族回族自治县", "永平县", "云龙县", "洱源县", "剑川县",
+			"鹤庆县"
+		]
+	}, {
+		"value": "德宏傣族景颇族自治州",
+		"children": ["瑞丽市", "芒市", "梁河县", "盈江县", "陇川县"]
+	}, {
+		"value": "怒江傈僳族自治州",
+		"children": ["泸水市", "福贡县", "贡山独龙族怒族自治县", "兰坪白族普米族自治县"]
+	}, {
+		"value": "迪庆藏族自治州",
+		"children": ["香格里拉市", "德钦县", "维西傈僳族自治县"]
+	}]
+}, {
+	"value": "西藏",
+	"children": [{
+		"value": "拉萨市",
+		"children": ["市辖区", "城关区", "堆龙德庆区", "林周县", "当雄县", "尼木县", "曲水县", "达孜县", "墨竹工卡县"]
+	}, {
+		"value": "日喀则市",
+		"children": ["桑珠孜区", "南木林县", "江孜县", "定日县", "萨迦县", "拉孜县", "昂仁县", "谢通门县", "白朗县", "仁布县", "康马县", "定结县",
+			"仲巴县", "亚东县", "吉隆县", "聂拉木县", "萨嘎县", "岗巴县"
+		]
+	}, {
+		"value": "昌都市",
+		"children": ["卡若区", "江达县", "贡觉县", "类乌齐县", "丁青县", "察雅县", "八宿县", "左贡县", "芒康县", "洛隆县", "边坝县"]
+	}, {
+		"value": "林芝市",
+		"children": ["巴宜区", "工布江达县", "米林县", "墨脱县", "波密县", "察隅县", "朗县"]
+	}, {
+		"value": "山南市",
+		"children": ["市辖区", "乃东区", "扎囊县", "贡嘎县", "桑日县", "琼结县", "曲松县", "措美县", "洛扎县", "加查县", "隆子县", "错那县", "浪卡子县"]
+	}, {
+		"value": "那曲地区",
+		"children": ["那曲县", "嘉黎县", "比如县", "聂荣县", "安多县", "申扎县", "索县", "班戈县", "巴青县", "尼玛县", "双湖县"]
+	}, {
+		"value": "阿里地区",
+		"children": ["普兰县", "札达县", "噶尔县", "日土县", "革吉县", "改则县", "措勤县"]
+	}]
+}, {
+	"value": "陕西",
+	"children": [{
+		"value": "西安市",
+		"children": ["市辖区", "新城区", "碑林区", "莲湖区", "灞桥区", "未央区", "雁塔区", "阎良区", "临潼区", "长安区", "高陵区", "蓝田县", "周至县",
+			"户县"
+		]
+	}, {
+		"value": "铜川市",
+		"children": ["市辖区", "王益区", "印台区", "耀州区", "宜君县"]
+	}, {
+		"value": "宝鸡市",
+		"children": ["市辖区", "渭滨区", "金台区", "陈仓区", "凤翔县", "岐山县", "扶风县", "眉县", "陇县", "千阳县", "麟游县", "凤县", "太白县"]
+	}, {
+		"value": "咸阳市",
+		"children": ["市辖区", "秦都区", "杨陵区", "渭城区", "三原县", "泾阳县", "乾县", "礼泉县", "永寿县", "彬县", "长武县", "旬邑县", "淳化县",
+			"武功县", "兴平市"
+		]
+	}, {
+		"value": "渭南市",
+		"children": ["市辖区", "临渭区", "华州区", "潼关县", "大荔县", "合阳县", "澄城县", "蒲城县", "白水县", "富平县", "韩城市", "华阴市"]
+	}, {
+		"value": "延安市",
+		"children": ["市辖区", "宝塔区", "安塞区", "延长县", "延川县", "子长县", "志丹县", "吴起县", "甘泉县", "富县", "洛川县", "宜川县", "黄龙县",
+			"黄陵县"
+		]
+	}, {
+		"value": "汉中市",
+		"children": ["市辖区", "汉台区", "南郑县", "城固县", "洋县", "西乡县", "勉县", "宁强县", "略阳县", "镇巴县", "留坝县", "佛坪县"]
+	}, {
+		"value": "榆林市",
+		"children": ["市辖区", "榆阳区", "横山区", "神木县", "府谷县", "靖边县", "定边县", "绥德县", "米脂县", "佳县", "吴堡县", "清涧县", "子洲县"]
+	}, {
+		"value": "安康市",
+		"children": ["市辖区", "汉滨区", "汉阴县", "石泉县", "宁陕县", "紫阳县", "岚皋县", "平利县", "镇坪县", "旬阳县", "白河县"]
+	}, {
+		"value": "商洛市",
+		"children": ["市辖区", "商州区", "洛南县", "丹凤县", "商南县", "山阳县", "镇安县", "柞水县"]
+	}]
+}, {
+	"value": "甘肃",
+	"children": [{
+		"value": "兰州市",
+		"children": ["市辖区", "城关区", "七里河区", "西固区", "安宁区", "红古区", "永登县", "皋兰县", "榆中县"]
+	}, {
+		"value": "嘉峪关市",
+		"children": ["市辖区"]
+	}, {
+		"value": "金昌市",
+		"children": ["市辖区", "金川区", "永昌县"]
+	}, {
+		"value": "白银市",
+		"children": ["市辖区", "白银区", "平川区", "靖远县", "会宁县", "景泰县"]
+	}, {
+		"value": "天水市",
+		"children": ["市辖区", "秦州区", "麦积区", "清水县", "秦安县", "甘谷县", "武山县", "张家川回族自治县"]
+	}, {
+		"value": "武威市",
+		"children": ["市辖区", "凉州区", "民勤县", "古浪县", "天祝藏族自治县"]
+	}, {
+		"value": "张掖市",
+		"children": ["市辖区", "甘州区", "肃南裕固族自治县", "民乐县", "临泽县", "高台县", "山丹县"]
+	}, {
+		"value": "平凉市",
+		"children": ["市辖区", "崆峒区", "泾川县", "灵台县", "崇信县", "华亭县", "庄浪县", "静宁县"]
+	}, {
+		"value": "酒泉市",
+		"children": ["市辖区", "肃州区", "金塔县", "瓜州县", "肃北蒙古族自治县", "阿克塞哈萨克族自治县", "玉门市", "敦煌市"]
+	}, {
+		"value": "庆阳市",
+		"children": ["市辖区", "西峰区", "庆城县", "环县", "华池县", "合水县", "正宁县", "宁县", "镇原县"]
+	}, {
+		"value": "定西市",
+		"children": ["市辖区", "安定区", "通渭县", "陇西县", "渭源县", "临洮县", "漳县", "岷县"]
+	}, {
+		"value": "陇南市",
+		"children": ["市辖区", "武都区", "成县", "文县", "宕昌县", "康县", "西和县", "礼县", "徽县", "两当县"]
+	}, {
+		"value": "临夏回族自治州",
+		"children": ["临夏市", "临夏县", "康乐县", "永靖县", "广河县", "和政县", "东乡族自治县", "积石山保安族东乡族撒拉族自治县"]
+	}, {
+		"value": "甘南藏族自治州",
+		"children": ["合作市", "临潭县", "卓尼县", "舟曲县", "迭部县", "玛曲县", "碌曲县", "夏河县"]
+	}]
+}, {
+	"value": "青海",
+	"children": [{
+		"value": "西宁市",
+		"children": ["市辖区", "城东区", "城中区", "城西区", "城北区", "大通回族土族自治县", "湟中县", "湟源县"]
+	}, {
+		"value": "海东市",
+		"children": ["乐都区", "平安区", "民和回族土族自治县", "互助土族自治县", "化隆回族自治县", "循化撒拉族自治县"]
+	}, {
+		"value": "海北藏族自治州",
+		"children": ["门源回族自治县", "祁连县", "海晏县", "刚察县"]
+	}, {
+		"value": "黄南藏族自治州",
+		"children": ["同仁县", "尖扎县", "泽库县", "河南蒙古族自治县"]
+	}, {
+		"value": "海南藏族自治州",
+		"children": ["共和县", "同德县", "贵德县", "兴海县", "贵南县"]
+	}, {
+		"value": "果洛藏族自治州",
+		"children": ["玛沁县", "班玛县", "甘德县", "达日县", "久治县", "玛多县"]
+	}, {
+		"value": "玉树藏族自治州",
+		"children": ["玉树市", "杂多县", "称多县", "治多县", "囊谦县", "曲麻莱县"]
+	}, {
+		"value": "海西蒙古族藏族自治州",
+		"children": ["格尔木市", "德令哈市", "乌兰县", "都兰县", "天峻县"]
+	}]
+}, {
+	"value": "宁夏",
+	"children": [{
+		"value": "银川市",
+		"children": ["市辖区", "兴庆区", "西夏区", "金凤区", "永宁县", "贺兰县", "灵武市"]
+	}, {
+		"value": "石嘴山市",
+		"children": ["市辖区", "大武口区", "惠农区", "平罗县"]
+	}, {
+		"value": "吴忠市",
+		"children": ["市辖区", "利通区", "红寺堡区", "盐池县", "同心县", "青铜峡市"]
+	}, {
+		"value": "固原市",
+		"children": ["市辖区", "原州区", "西吉县", "隆德县", "泾源县", "彭阳县"]
+	}, {
+		"value": "中卫市",
+		"children": ["市辖区", "沙坡头区", "中宁县", "海原县"]
+	}]
+}, {
+	"value": "新疆",
+	"children": [{
+		"value": "乌鲁木齐市",
+		"children": ["市辖区", "天山区", "沙依巴克区", "新市区", "水磨沟区", "头屯河区", "达坂城区", "米东区", "乌鲁木齐县"]
+	}, {
+		"value": "克拉玛依市",
+		"children": ["市辖区", "独山子区", "克拉玛依区", "白碱滩区", "乌尔禾区"]
+	}, {
+		"value": "吐鲁番市",
+		"children": ["高昌区", "鄯善县", "托克逊县"]
+	}, {
+		"value": "哈密市",
+		"children": ["伊州区", "巴里坤哈萨克自治县", "伊吾县"]
+	}, {
+		"value": "昌吉回族自治州",
+		"children": ["昌吉市", "阜康市", "呼图壁县", "玛纳斯县", "奇台县", "吉木萨尔县", "木垒哈萨克自治县"]
+	}, {
+		"value": "博尔塔拉蒙古自治州",
+		"children": ["博乐市", "阿拉山口市", "精河县", "温泉县"]
+	}, {
+		"value": "巴音郭楞蒙古自治州",
+		"children": ["库尔勒市", "轮台县", "尉犁县", "若羌县", "且末县", "焉耆回族自治县", "和静县", "和硕县", "博湖县"]
+	}, {
+		"value": "阿克苏地区",
+		"children": ["阿克苏市", "温宿县", "库车县", "沙雅县", "新和县", "拜城县", "乌什县", "阿瓦提县", "柯坪县"]
+	}, {
+		"value": "克孜勒苏柯尔克孜自治州",
+		"children": ["阿图什市", "阿克陶县", "阿合奇县", "乌恰县"]
+	}, {
+		"value": "喀什地区",
+		"children": ["喀什市", "疏附县", "疏勒县", "英吉沙县", "泽普县", "莎车县", "叶城县", "麦盖提县", "岳普湖县", "伽师县", "巴楚县",
+			"塔什库尔干塔吉克自治县"
+		]
+	}, {
+		"value": "和田地区",
+		"children": ["和田市", "和田县", "墨玉县", "皮山县", "洛浦县", "策勒县", "于田县", "民丰县"]
+	}, {
+		"value": "伊犁哈萨克自治州",
+		"children": ["伊宁市", "奎屯市", "霍尔果斯市", "伊宁县", "察布查尔锡伯自治县", "霍城县", "巩留县", "新源县", "昭苏县", "特克斯县", "尼勒克县"]
+	}, {
+		"value": "塔城地区",
+		"children": ["塔城市", "乌苏市", "额敏县", "沙湾县", "托里县", "裕民县", "和布克赛尔蒙古自治县"]
+	}, {
+		"value": "阿勒泰地区",
+		"children": ["阿勒泰市", "布尔津县", "富蕴县", "福海县", "哈巴河县", "青河县", "吉木乃县"]
+	}, {
+		"value": "直辖县",
+		"children": ["石河子市", "阿拉尔市", "图木舒克市", "五家渠市", "铁门关市"]
+	}]
+}, {
+	"value": "香港",
+	"children": [{
+		"value": "香港特别行政区",
+		"children": ["中西区", "东区", "九龙城区", "观塘区", "南区", "深水埗区", "湾仔区", "黄大仙区", "油尖旺区", "离岛区", "葵青区", "北区", "西贡区",
+			"沙田区", "屯门区", "大埔区", "荃湾区", "元朗区"
+		]
+	}]
+}, {
+	"value": "澳门",
+	"children": [{
+		"value": "澳门特别行政区",
+		"children": ["澳门半岛", "凼仔", "路凼城", "路环"]
+	}]
+}, {
+	"value": "台湾",
+	"children": [{
+		"value": "彰化县",
+		"children": ["芳苑乡", "芬园乡", "福兴乡", "和美镇", "花坛乡", "鹿港镇", "埤头乡", "埔心乡", "埔盐乡", "伸港乡", "社头乡", "田尾乡", "田中镇",
+			"线西乡", "溪湖镇", "秀水乡", "溪州乡", "永靖乡", "员林市", "竹塘乡"
+		]
+	}, {
+		"value": "新北市",
+		"children": ["八里区", "板桥区", "贡寮区", "金山区", "林口区", "芦洲区", "坪林区", "平溪区", "瑞芳区", "三重区", "三峡区", "三芝区", "深坑区",
+			"石碇区", "石门区", "双溪区", "树林区", "泰山区", "淡水区", "土城区"
+		]
+	}, {
+		"value": "澎湖县",
+		"children": ["白沙乡", "湖西乡", "马公市", "七美乡", "望安乡", "西屿乡"]
+	}, {
+		"value": "屏东县",
+		"children": ["三地门乡", "狮子乡", "泰武乡", "万丹乡", "万峦乡", "雾臺乡", "新埤乡", "新园乡", "盐埔乡", "竹田乡", "长治乡", "潮州镇", "车城乡",
+			"春日乡", "东港镇", "枋寮乡", "枋山乡", "高树乡", "恆春镇", "佳冬乡"
+		]
+	}, {
+		"value": "臺中市",
+		"children": ["梧栖区", "乌日区", "新社区", "西屯区", "北屯区", "中区", "大肚区", "大甲区", "大里区", "大雅区", "大安区", "东势区", "东区",
+			"丰原区", "和平区", "后里区", "龙井区", "南屯区", "北区", "清水区"
+		]
+	}, {
+		"value": "臺南市",
+		"children": ["佳里区", "将军区", "六甲区", "柳营区", "龙崎区", "麻豆区", "南化区", "楠西区", "北区", "七股区", "仁德区", "善化区", "山上区",
+			"南区", "中西区", "下营区", "西港区", "新化区", "新市区", "新营区"
+		]
+	}, {
+		"value": "臺北市",
+		"children": ["北投区", "大同区", "大安区", "南港区", "内湖区", "士林区", "松山区", "万华区", "文山区", "信义区", "中山区", "中正区"]
+	}, {
+		"value": "臺东县",
+		"children": ["卑南乡", "长滨乡", "成功镇", "池上乡", "达仁乡", "大武乡", "东河乡", "关山镇", "海端乡", "金峰乡", "兰屿乡", "绿岛乡", "鹿野乡",
+			"太麻里乡", "臺东市", "延平乡"
+		]
+	}, {
+		"value": "桃园市",
+		"children": ["八德区", "大溪区", "大园区", "復兴区", "观音区", "龟山区", "龙潭区", "芦竹区", "平镇区", "桃园区", "新屋区", "杨梅区", "中坜区"]
+	}, {
+		"value": "宜兰县",
+		"children": ["大同乡", "钓鱼臺", "冬山乡", "礁溪乡", "罗东镇", "南澳乡", "三星乡", "苏澳镇", "头城镇", "五结乡", "宜兰市", "员山乡", "壮围乡"]
+	}, {
+		"value": "南投县",
+		"children": ["草屯镇", "国姓乡", "集集镇", "鹿谷乡", "名间乡", "南投市", "埔里镇", "仁爱乡", "水里乡", "信义乡", "鱼池乡", "中寮乡", "竹山镇"]
+	}, {
+		"value": "南海岛",
+		"children": ["东沙群岛", "南沙群岛"]
+	}, {
+		"value": "苗栗县",
+		"children": ["头屋乡", "西湖乡", "苑里镇", "造桥乡", "竹南镇", "卓兰镇", "大湖乡", "公馆乡", "后龙镇", "苗栗市", "南庄乡", "三湾乡", "三义乡",
+			"狮潭乡", "泰安乡", "铜锣乡", "通霄镇", "头份市"
+		]
+	}, {
+		"value": "嘉义市",
+		"children": ["东区", "西区"]
+	}, {
+		"value": "嘉义县",
+		"children": ["阿里山乡", "布袋镇", "大林镇", "大埔乡", "东石乡", "番路乡", "六脚乡", "鹿草乡", "梅山乡", "民雄乡", "朴子市", "水上乡", "太保市",
+			"溪口乡", "新港乡", "义竹乡", "中埔乡", "竹崎乡"
+		]
+	}, {
+		"value": "新竹市",
+		"children": ["东区", "北区"]
+	}, {
+		"value": "新竹县",
+		"children": ["峨眉乡", "关西镇", "横山乡", "湖口乡", "尖石乡", "芎林乡", "五峰乡", "新丰乡", "新埔镇", "竹北市", "竹东镇", "宝山乡", "北埔乡"]
+	}, {
+		"value": "花莲县",
+		"children": ["卓溪乡", "丰滨乡", "凤林镇", "富里乡", "光復乡", "花莲市", "吉安乡", "瑞穗乡", "寿丰乡", "万荣乡", "新城乡", "秀林乡", "玉里镇"]
+	}, {
+		"value": "高雄市",
+		"children": ["阿莲区", "大寮区", "大社区", "大树区", "凤山区", "冈山区", "鼓山区", "湖内区", "甲仙区", "苓雅区", "林园区", "六龟区", "路竹区",
+			"茂林区", "美浓区", "弥陀区", "那玛夏区", "楠梓区", "内门区", "鸟松区"
+		]
+	}, {
+		"value": "基隆市",
+		"children": ["安乐区", "暖暖区", "七堵区", "仁爱区", "信义区", "中山区", "中正区"]
+	}, {
+		"value": "金门县",
+		"children": ["金城镇", "金湖镇", "金宁乡", "金沙镇", "烈屿乡", "乌坵乡"]
+	}, {
+		"value": "连江县",
+		"children": ["北竿乡", "东引乡", "莒光乡", "南竿乡"]
+	}, {
+		"value": "云林县",
+		"children": ["褒忠乡", "北港镇", "莿桐乡", "大埤乡", "东势乡", "斗六市", "斗南镇", "二崙乡", "古坑乡", "虎尾镇", "口湖乡", "林内乡", "崙背乡",
+			"麦寮乡", "水林乡", "四湖乡", "臺西乡", "土库镇", "西螺镇", "元长乡"
+		]
+	}]
+}]

+ 34 - 0
src/assets/js/tools.js

@@ -0,0 +1,34 @@
+export function validateEmail(email) {
+	var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
+	return re.test(email);
+}
+
+export function showTime(timestamp) {
+	// 时间戳 
+	// 此处时间戳以毫秒为单位
+	let date = new Date(parseInt(timestamp) * 1000);
+	let Year = date.getFullYear();
+	let Moth = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
+	let Day = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
+	let Hour = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours());
+	let Minute = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
+	let Sechond = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+	let GMT = Year + '-' + Moth + '-' + Day + '   ' + Hour + ':' + Minute + ':' + Sechond;
+	return GMT
+}
+
+export function sj(arr) {
+	let m = arr.length - 1
+	let n = 0
+	let result = parseInt(Math.random()*(m-n+1)+n,10)
+	return arr[result];
+}
+
+export function sjz(n,m) {
+	var min = Math.ceil(n); // 向上取整
+	  var max = Math.floor(m); // 向下取整
+	
+	 let result = Math.floor(Math.random() * (max - min + 1)) + min;
+	   console.log(n,m,result);
+	  return result
+}

+ 147 - 0
src/components/navTop/navTop.vue

@@ -0,0 +1,147 @@
+<template>
+	<div class="content">
+		<div class="home-header">
+			<div class="top">
+				<div class="num-list flex">
+					<div class="num-item hand" v-for="item in numList"
+						:class="{'action-item':currentUrl.indexOf(item.path) !=-1}" @click="navto(item.path)">
+						{{item.tit}}
+					</div>
+				</div>
+				<div class="out-wrapper flex">
+					<div class="hand u-name" @click="kf">
+						客服
+					</div>
+					<div class="hand u-name" @click="navto('/user/setUserinfo')">
+						{{userInfo.username}}
+					</div>
+					<div class="hand u-name" v-if="userInfo.address">
+						{{userInfo.address}}
+					</div>
+					<div class="hand u-name" @click="logout" style="color: #ff4d4f;">
+						退出
+					</div>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</template>
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				numList: [{
+						tit: '首页',
+						path: '/home',
+
+					},
+					{
+						tit: '用户中心',
+						path: '/user',
+
+					},
+					{
+						tit: '订单列表',
+						path: '/order',
+
+					}
+
+				],
+			};
+		},
+		computed: {
+			...mapState(['baseInfo', 'userInfo']),
+			currentUrl() {
+				return this.$route.path
+			},
+
+		},
+		mounted() {
+			if (this.userInfo.agent_id == 1) {
+
+				this.numList.splice(3, 0, {
+					tit: '地址管理',
+					path: '/address'
+				});
+			} else {
+				this.numList.splice(3, 0, {
+					tit: '订单结算',
+					path: '/settle',
+				});
+			}
+		},
+		methods: {
+			logout() {
+				window.localStorage.clear()
+				this.$router.push('/login')
+			},
+			navto(path) {
+				if (this.currentUrl.indexOf(path) == -1) {
+					this.$router.push(path)
+				}
+			},
+			kf() {
+				if (this.baseInfo.service_kf) {
+					window.open(this.baseInfo.service_kf)
+				}
+			},
+		}
+	};
+</script>
+<style lang="scss" scoped>
+	.home-header {
+		// background-color: ;
+		// #1b2374   #262632
+		background: linear-gradient(to right, #1b2374, #000);
+		height: 65px;
+		margin-bottom: 20px;
+		color: #fff;
+
+		.top {
+			width: 1425px;
+			margin: auto;
+			min-width: 1425px;
+			display: flex;
+			justify-content: space-between;
+
+			box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.01);
+			padding-left: 45px;
+
+			// background-color: #fff;
+			.num-list {
+				flex-shrink: 0;
+
+				.num-item {
+					height: 65px;
+					padding: 0 25px;
+					// text-align: center;
+					line-height: 65px;
+				}
+
+				.action-item {
+					background-color: #007aff;
+					font-weight: bold;
+				}
+			}
+		}
+	}
+
+	.out-wrapper {
+		flex-grow: 1;
+		justify-content: flex-end;
+		align-items: center;
+
+		.u-name {
+			padding: 20px;
+			max-width: 300px;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			white-space: nowrap;
+		}
+	}
+</style>

+ 32 - 0
src/components/pageBottom/PageBottom.vue

@@ -0,0 +1,32 @@
+<template>
+	<div class="view-bottom">
+		<div class="bqsy">版权所有:Copyright©2017-2037  版权所有 鄂州市红十字会</div>
+		<div class="address">地址:湖北省鄂州市鄂城区滨湖南路60号7楼 浙ICP备17054590号-1</div>
+	</div>
+</template>
+
+<script>
+</script>
+
+<style lang="scss" scoped>
+	.view-bottom {
+		// width: 1920px;
+		height: 174px;
+		margin: 0 auto;
+		background: var(--m-color);
+		font-size: 14px;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #FFFFFF;
+		line-height: 1;
+		div {
+			width: 1202px;
+			text-align: center;
+			margin: 0 auto;
+		}
+		.bqsy {
+			padding-top: 65px;
+			margin-bottom: 16px;
+		}
+	}
+</style>

+ 36 - 0
src/components/pageTitle/PageTitle.vue

@@ -0,0 +1,36 @@
+<template>
+	<div class="title-wrapper">
+		<div class="title">
+			{{title}}
+		</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: {
+			title: {
+				type: String,
+				default:''
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.title-wrapper {
+		width: 100%;
+		border-top: 2px solid #D82020;
+		.title {
+			width: 156px;
+			height: 50px;
+			line-height: 50px;
+			text-align: center;
+			background: #D82020;
+			font-size: 18px;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #FFFFFF;
+		}
+	}
+</style>

+ 28 - 0
src/components/topLogo/TopLogo.vue

@@ -0,0 +1,28 @@
+<template>
+  <div class="top">
+    <div class="logo"><img src="../../assets/img/logo2.png" alt="" /></div>
+  </div>
+</template>
+
+<script>
+export default {};
+</script>
+
+<style lang="scss" scoped>
+.top {
+  width: 1202px;
+  height: 129px;
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+  margin: 0 auto;
+  .logo {
+    width: 423px;
+    height: 86px;
+	img {
+		width: 423px;
+		height: 86px;
+	}
+  }
+}
+</style>

+ 52 - 0
src/components/vueQrCode.vue

@@ -0,0 +1,52 @@
+<template>
+  <div>
+    <vue-qr :text="textParam" :size="sizeParam"></vue-qr>
+  </div>
+</template>
+
+<script>
+import VueQr from 'vue-qr'
+export default {
+  name: "vueQrCode",
+  //对外暴露的传入参数 text:生成的文本 size:边框大小
+  props:{text:{type:String,default:()=>""},size:{type:Number,default:()=>200}},
+  components:{
+    VueQr,
+  },
+  data(){
+    return {
+
+    }
+  },
+  created() {
+  },
+  methods:{
+    refreshQrCode(text){
+      console.log("刷新二维码:"+text);
+      let _this =this;
+      _this.$nextTick(()=>{
+        _this.text = text;
+      })
+    },
+    getText(){
+      let _this =this;
+      _this.$nextTick(()=>{
+        return _this.text;
+      })
+
+    },
+  },
+  computed:{
+    textParam:function (){
+      return this.text;
+    },
+    sizeParam:function (){
+      return this.size;
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 34 - 0
src/main.js

@@ -0,0 +1,34 @@
+import Vue from 'vue'
+import App from './App.vue'
+import router from './router'
+import store from './store'
+import ElementUI from 'element-ui';
+import SlideVerify from 'vue-monoplasty-slide-verify';
+import QRCode from "qrcode"
+import VueClipBoard from 'vue-clipboard2'
+
+
+
+import './assets/css/reset.css';
+import './assets/css/base.css'
+import 'element-ui/lib/theme-chalk/index.css';
+
+Vue.config.productionTip = false
+Vue.use(ElementUI);
+Vue.use(SlideVerify);
+Vue.use(QRCode)
+Vue.use(VueClipBoard)
+Vue.prototype.$msg = ElementUI.Message
+Vue.prototype.$QRCode = QRCode
+ router.afterEach((to,from,next) => {
+	 //页面跳转时,页面位置重置为顶部
+      window.scrollTo(0,0);
+	  //修改页面title
+	  window.document.title = to.meta.title == undefined?'':to.meta.title
+ })
+
+new Vue({
+  router,
+  store,
+  render: h => h(App)
+}).$mount('#app')

+ 135 - 0
src/request/agent.js

@@ -0,0 +1,135 @@
+import request from "./request.js"
+
+
+//获取基础信息
+export function getIndex(data) {
+	return request({
+		url: '/api/index/index',
+		method: 'get',
+		data
+	});
+}
+
+//获取验证码
+export function getSpace(data) {
+	return request({
+		url: '/api/index/space',
+		method: 'get',
+		data
+	});
+}
+
+//校验
+export function spaceCheck(data) {
+	return request({
+		url: '/api/index/space_check',
+		method: 'post',
+		params: data
+	});
+}
+ 
+//获取快递信息、
+export function getExpressDelivery(data) {
+	//index/getExpressDelivery
+	return request({
+		url: '/api/index/getExpressDelivery',
+		method: 'get',
+		params:data
+	});
+}
+
+// 获取验证码列表
+export function getRegList(data) {
+	return request({
+		url: '/api/index',
+		method: 'get',
+		data
+	});
+}
+
+//登录
+export function login(data = {}) {
+	return request({
+		url: '/api/user/login',
+		method: 'post',
+		data
+	});
+}
+
+//购买注册码
+export function createCode(data = {}) {
+	return request({
+		url: '/api/Agent/create_code',
+		method: 'post',
+		data
+	});
+}
+
+//设置交易密码
+export function setTransaction(data={}) {
+	return request({
+		url: '/api/user/transaction',
+		method: 'post',
+		data
+	});
+}
+
+//注册码列表
+export function getCodeList(data={}) {
+	return request({
+		url: '/api/Agent/code',
+		method: 'get',
+		params:data
+	});
+}
+
+//注册
+export function reg(data) {
+	return request({
+		url: '/api/user/register',
+		method: 'post',
+		data
+	});
+}
+
+//创建token
+export function createToken(data) {
+	return request({
+		url: '/api/user/create_token',
+		method: 'post',
+		data
+	});
+}
+
+//获取token列表
+export function getTokenList(data) {
+	return request({
+		url: '/api/user/get_token_list',
+		method: 'get',
+		params:data
+	});
+}
+
+export function getUserInfo(data) {
+	return request({
+		url: '/api/user/userinfo',
+		method: 'get',
+		params:data
+	});
+}
+
+export function dataCount(data) {
+	return request({
+		url: '/api/agent/data_count',
+		method: 'get',
+		params:data
+	});
+}
+//代理订单
+export function getOrderList(data) {
+	return request({
+		url: '/api/agent/order',
+		method: 'get',
+		params:data
+	});
+}

+ 97 - 0
src/request/request.js

@@ -0,0 +1,97 @@
+import axios from 'axios'
+import router from '../router.js'
+// import {
+// 	MessageBox,
+// 	Toast
+// } from 'mint-ui'
+import {
+	Message
+} from 'element-ui'
+import store from '../store.js'
+// create an axios instance
+const service = axios.create({
+	baseURL: store.state.www, // url = base url + request url
+	// withCredentials: true, // send cookies when cross-domain requests
+	timeout: 30000 // request timeout
+})
+
+// request interceptor
+service.interceptors.request.use(
+	config => {
+		// do something before request is sent
+		// let each request carry token
+		// ['X-Token'] is a custom headers key
+		// please modify it according to the actual situation
+		config.headers['token'] = window.localStorage.getItem('token') || ''
+		// if(config.method=='get'){
+		// 	if(!config.params){
+		// 		config.params={};
+		// 	}
+		// 	config.params.token = getToken();
+		// }
+		// if(config.method=='post'){
+		// 	config.data.token = getToken();
+		// }
+		return config
+	},
+	error => {
+		// do something with request error
+		// console.log(error) // for debug
+		return Promise.reject(error)
+	}
+)
+
+service.interceptors.response.use(
+	response => {
+		const res = response.data
+		// 解析字符串为数字
+		res.errcode = parseInt(res.code);
+		res.message = res.msg;
+		// console.log(typeof res.errcode);
+		if (res.errcode !== 1) {
+			
+			if (res.errcode === 1001) {
+				if (res.message.includes('您已经登录') || res.message.includes('您已经注册')) {
+					router.push('/');
+				}
+			};
+			if (res.errcode === 2000) {
+					let url = res.data.wxurl + '?url=' + encodeURIComponent(window.location.href);
+					window.location.href = url;
+			} else if (res.errcode === 401) {
+				console.log('daozhe');
+					window.localStorage.removeItem('token');
+					window.localStorage.removeItem('user');
+					router.push("/login");
+			} else {
+				// Toast({
+				// 	message: res.message || 'Error',
+				// 	duration: 1 * 1000
+				// })
+				// this.$message.error('错了哦,这是一条错误消息');
+				Message.error(res.message || 'Error')
+			}
+			return Promise.reject(new Error(res.message || 'Error'))
+		} else {
+			return res
+		}
+	},
+	error => {
+		// console.log('err' + error) // for debug
+		// Toast({
+		// 	message: '加载错误请刷新重试!',
+		// 	duration: 1 * 1000
+		// })
+		if(error.toString().indexOf('401') !== -1) {
+			window.localStorage.removeItem('token');
+			window.localStorage.removeItem('user');
+			router.push("/login");
+		}else {
+			Message.error('加载错误请刷新重试')
+			return Promise.reject(error)
+		}
+	
+		
+	}
+)
+export default service

+ 201 - 0
src/request/user.js

@@ -0,0 +1,201 @@
+import request from "./request.js"
+
+//充值记录
+export function getRechangeList(data) {
+	return request({
+		url: '/api/user/recharge_lst',
+		method: 'get',
+		params:data
+	});
+}
+
+//充值
+export function rechange(data) {
+	return request({
+		url: '/api/user/recharge',
+		method: 'post',
+		data
+	});
+}
+
+//获取用户信息
+export function getUserInfo(data) {
+	return request({
+		url: '/api/user/userinfo',
+		method: 'get',
+		params:data
+	});
+}
+
+//设置用户信息
+export function setUserInfo(data) {
+	return request({
+		url: '/api/user/profile',
+		method: 'post',
+		data
+	});
+}
+
+//转账记录
+export function getTransferList(data) {
+	return request({
+		url: '/api/user/transfer_lst',
+		method: 'get',
+		params:data
+	});
+}
+
+//转账
+export function transfer(data) {
+	return request({
+		url: '/api/user/transfer',
+		method: 'post',
+		data
+	});
+}
+
+//提现
+export function withdrawalList(data) {
+	return request({
+		url: '/api/user/withdrawal_lst',
+		method: 'get',
+		params:data
+	});
+}
+
+//提现
+export function withdrawal(data) {
+	return request({
+		url: '/api/user/withdrawal',
+		method: 'post',
+		data
+	});
+}
+
+//获取token列表
+export function getTokenList(data) {
+	return request({
+		url: '/api/user/get_token_list',
+		method: 'post',
+		data
+	});
+}
+
+//下单
+export function createOrder(data) {
+	return request({
+		url: '/api/user/create_order',
+		method: 'get',
+		params:data
+	});
+}
+
+//购买自动下单
+export function  payAuto(data) {
+	return request({
+		url: '/api/user/pay_auto',
+		method: 'get',
+		params:data
+	});
+}
+
+//资金流水
+export function getMoneyList(data) {
+	return request({
+		url: '/api/user/money_log',
+		method: 'get',
+		params:data
+	});
+}
+
+
+export function getOrderList(data) {
+	return request({
+		url: '/api/user/order_list',
+		method: 'get',
+		params:data
+	});
+}
+
+
+export function batchOrder(data) {
+	return request({
+		url: '/api/user/batch_order',
+		method: 'post',
+		data
+	});
+}
+
+export function dataCount(data) {
+	return request({
+		url: '/api/user/data_count',
+		method: 'get',
+		params:data
+	});
+}
+
+export function accountGa(data) {
+	return request({
+		url: '/api/user/account_ga',
+		method: 'get',
+		params:data
+	});
+}
+
+//
+export function getga(data) {
+	return request({
+		url: '/api/user/getga',
+		method: 'get',
+		params:data
+	});
+}
+
+export function checkCode(data) {
+	return request({
+		url: '/api/user/check_code',
+		method: 'post',
+		data
+	});
+}
+
+
+export function getTokenOrderList(data) {
+	return request({
+		url: '/api/user/token_order_lst',
+		method: 'get',
+		params:data
+	});
+}
+export function downToken(data) {
+	return request({
+		url: '/api/user/down_token',
+		method: 'get',
+		params:data
+	});
+}
+
+
+export function settlement(data) {
+	return request({
+		url: '/api/user/settlement',
+		method: 'get',
+		params:data
+	});
+}
+
+export function repwd(data) {
+	return request({
+		url: '/api/user/repwd',
+		method: 'post',
+		data
+	});
+}
+
+export function address(data) {
+	return request({
+		url: '/api/user/address',
+		method: 'post',
+		data
+	});
+}

+ 291 - 0
src/router.js

@@ -0,0 +1,291 @@
+import Vue from 'vue'
+import Router from 'vue-router'
+
+const routerPush = Router.prototype.push
+
+Router.prototype.push = function push(location) {
+
+	// if(typeof(location)=="string"){
+	//   var Separator = "&";
+	//   if(location.indexOf('?')==-1) { Separator='?'; }
+	//   location = location + Separator + "random=" + Math.random();
+	// }
+
+	return routerPush.call(this, location).catch(error => error)
+}
+
+Vue.use(Router)
+
+let router = new Router({
+	// mode: 'history',
+	base: process.env.BASE_URL,
+	routes: [{
+			path: '/',
+			redirect: '/home'
+		},
+		{
+			path: '/login',
+			name: 'login',
+			component: () => import('./views/Login.vue'),
+			meta: {
+				title: '登录',
+				keepAlive: false
+			}
+		},
+		{
+			path: '/address',
+			name: 'address',
+			component: () => import('./views/Address.vue'),
+			meta: {
+				title: '地址管理',
+				keepAlive: true
+			},
+			redirect: '/address/dlAddressList',
+			children: [
+				{
+					path: 'dlAddressList',
+					name: 'dlAddressList',
+					component: () => import('./views/address/dlAddressList.vue'),
+					meta: {
+						title: '地址列表',
+						keepAlive: true
+					}
+				},
+			]
+		},
+		{
+			path: '/settle',
+			name: 'settle',
+			component: () => import('./views/Settle.vue'),
+			meta: {
+				title: '地址管理',
+				keepAlive: true
+			},
+			redirect: '/settle/settleOrder',
+			children: [
+				{
+					path: 'settleOrder',
+					name: 'settleOrder',
+					component: () => import('./views/settle/settleOrder.vue'),
+					meta: {
+						title: '地址列表',
+						keepAlive: true
+					}
+				},
+			]
+		},
+		{
+			path: '/order',
+			name: 'order',
+			component: () => import('./views/Order.vue'),
+			meta: {
+				title: '订单',
+				keepAlive: true
+			},
+			children: [
+				{
+					path: 'orderList',
+					name: 'orderList',
+					component: () => import('./views/order/orderList.vue'),
+					meta: {
+						title: '订单列表',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'dlOrderList',
+					name: 'dlOrderList',
+					component: () => import('./views/order/dlOrderList.vue'),
+					meta: {
+						title: '订单列表',
+						keepAlive: true
+					}
+				},
+			]
+		},
+		{
+			path: '/user',
+			name: 'user',
+			component: () => import('./views/User.vue'),
+			meta: {
+				title: '用户中心',
+				keepAlive: true
+			},
+			redirect: '/user/setUserinfo',
+			children: [{
+					path: 'setUserinfo',
+					name: 'setUserinfo',
+					component: () => import('./views/user/setUserinfo.vue'),
+					meta: {
+						title: '修改个人信息',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'tokenOrderList',
+					name: 'tokenOrderList',
+					component: () => import('./views/user/tokenOrderList.vue'),
+					meta: {
+						title: 'Token',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'regList',
+					name: 'regList',
+					component: () => import('./views/user/regList.vue'),
+					meta: {
+						title: '注册码',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'money',
+					name: 'money',
+					component: () => import('./views/user/money.vue'),
+					meta: {
+						title: '资金流水',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'rechangeList',
+					name: 'rechangeList',
+					component: () => import('./views/user/rechangeList.vue'),
+					meta: {
+						title: '充值记录',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'takingList',
+					name: 'takingList',
+					component: () => import('./views/user/takingList.vue'),
+					meta: {
+						title: '提现记录',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'transferList',
+					name: 'transferList',
+					component: () => import('./views/user/transferList.vue'),
+					meta: {
+						title: '转账记录',
+						keepAlive: true
+					}
+				}
+			]
+		},
+		{
+			path: '/home',
+			name: 'home',
+			component: () => import('./views/Home.vue'),
+			// redirect: '/home/addOrder',
+			meta: {
+				title: '',
+				keepAlive: true
+			},
+			children: [
+				{
+					path: 'buyReg',
+					name: 'buyReg',
+					component: () => import('./views/home/buyReg.vue'),
+					meta: {
+						title: '购买注册码',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'abonementList',
+					name: 'abonementList',
+					component: () => import('./views/home/abonementList.vue'),
+					meta: {
+						title: '用户列表',
+						keepAlive: true
+					}
+				},
+				
+				{
+					path: 'addOrder',
+					name: 'addOrder',
+					component: () => import('./views/home/addOrder.vue'),
+					meta: {
+						title: '添加订单',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'addressList',
+					name: 'addressList',
+					component: () => import('./views/home/addressList.vue'),
+					meta: {
+						title: '地址列表',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'setAgent',
+					name: 'setAgent',
+					component: () => import('./views/home/setAgent.vue'),
+					meta: {
+						title: '设置下级代理',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'statistics',
+					name: 'statistics',
+					component: () => import('./views/home/statistics.vue'),
+					meta: {
+						title: '统计',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'dlstatistics',
+					name: 'dlstatistics',
+					component: () => import('./views/home/dlstatistics.vue'),
+					meta: {
+						title: '统计',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'setPas',
+					name: 'setPas',
+					component: () => import('./views/home/setPas.vue'),
+					meta: {
+						title: '交易密码',
+						keepAlive: true
+					}
+				},
+				{
+					path: 'setGa',
+					name: 'setGa',
+					component: () => import('./views/home/setGa.vue'),
+					meta: {
+						title: '动态口令',
+						keepAlive: true
+					}
+				},
+				
+			]
+		},
+		{
+			path: '*',
+			redirect: '/home'
+		}
+	]
+})
+
+// 路由导航守卫
+router.beforeEach((to, from, next) => {
+	if (to.path === '/login') return next()
+	const tokenStr = window.localStorage.getItem('token')
+	console.log(tokenStr, 'tokenStr');
+	if (!tokenStr) return next('/login')
+	next()
+})
+
+export default router

+ 49 - 0
src/store.js

@@ -0,0 +1,49 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+  state: {
+	www: 'http://www.pingguozhushou.shop',
+	hasLogin:false,
+	userInfo: {},
+	baseInfo: {},//基础信息
+	addOrderToken: [],//添加订单时的token
+	orderToken: [],//订单token
+	jsOrderToken: [],//结算订单token
+  },
+  mutations: {
+	login(state) {
+		state.hasLogin = true
+		
+	},
+	loginOut(state) {
+		state.hasLogin = false
+		window.localStorage.removeItem('token');
+		window.localStorage.removeItem('user');
+	},
+	setUserInfo(state,payload) {
+		state.userInfo = payload
+		window.localStorage.setItem('user', JSON.stringify(payload))
+	},
+	setBaseInfo(state,payload) {
+		state.baseInfo = payload
+	},
+	jUserMoney(state,payload) {
+		state.userInfo.money = (state.userInfo.money*1 + payload).toFixed(2)
+	},
+	setAddOrderToken(state,payload) {
+		state.addOrderToken = payload
+	},
+	setOrderToken(state,payload) {
+		state.orderToken = payload
+	},
+	setJsOrderToken(state,payload) {
+		state.jsOrderToken = payload
+	}
+  },
+  actions: {
+
+  }
+})

+ 27 - 0
src/views/Address.vue

@@ -0,0 +1,27 @@
+<template>
+	<div class="order-list-wrap">
+		<router-view></router-view>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: 'address',
+		data() {
+			return {
+				
+			}
+		},
+		mounted() {
+		},
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	.order-list-wrap {
+		width: 1425px;
+		max-width: 1425px;
+		margin: auto;
+	}
+</style>

+ 99 - 0
src/views/Home.vue

@@ -0,0 +1,99 @@
+<template>
+	<div class="home">
+		<div class="content">
+			<router-view></router-view>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		munList
+	} from '@/assets/js/admun.js'
+	import {
+		getUserInfo
+	} from '@/request/user.js'
+	export default {
+		name: 'Home',
+		data() {
+
+			return {
+				numList: [{
+						tit: '首页',
+						path: '',
+
+					},
+					{
+						tit: '用户中心',
+						path: '',
+
+					},
+					{
+						tit: '订单列表',
+						path: '',
+
+					},
+					{
+						tit: '订单结算',
+						path: '',
+
+					}
+				],
+				isopen: true,
+				openOrClose: ['el-icon-arrow-right', 'el-icon-arrow-left'],
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'baseInfo']),
+			currenIndex() {
+				return this.$route.path
+			},
+			menulist() {
+				return munList
+			}
+		},
+		methods: {
+			...mapMutations(['setUserInfo']),
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+					if(this.userInfo.agent_id == 0) {
+						this.$router.push('/home/addOrder')
+					}else {
+						this.$router.push('/home/statistics')
+					}
+				})
+			},
+			
+			logout() {
+				window.sessionStorage.clear()
+				this.$router.push('/login')
+			},
+			async getMenList() {
+				const {
+					data: res
+				} = await this.$http.get('menus')
+				if (res.meta.status !== 200) return this.$message.error(res.meta.msg)
+				this.menulist = res.data
+			},
+			closeBtn() {
+				this.isopen = !this.isopen
+			},
+		},
+		created() {
+			this.getUserInfo()
+		},
+	}
+</script>
+
+<style scoped lang="scss">
+	.content {
+		width: 1425px;
+		margin: auto;
+		min-width: 1425px;
+	}
+</style>

+ 296 - 0
src/views/Login.vue

@@ -0,0 +1,296 @@
+<template>
+	<div class="login-wrapper">
+		<div class="login-box">
+			<!-- 头像容器 -->
+
+			<!-- 表单容器 -->
+			<div class="login-form-box">
+				<div class="flex nav" v-if="currentIndex == 0 || currentIndex == 2">
+					<div :class="{'action': 0 == currentIndex}" class="nav-item hand" @click="currentIndex = 0">登录</div>
+					
+					<div :class="{'action': 2 == currentIndex}" class="nav-item hand" @click="currentIndex = 2">代理入口</div>
+				</div>
+				<div v-else class="flex nav">
+					<div  class="nav-item hand" @click="currentIndex = 1">注册</div>
+				</div>
+				<el-form label-width="0px" ref="loginFormRef" class="login-form" :model="loginForm" v-if="currentIndex == 0 ||currentIndex ==  2" >
+					<!--用户名-->
+					<el-form-item prop="account">
+						<el-input placeholder="请输入用户名" prefix-icon="el-icon-s-custom"
+							v-model="loginForm.username" @blur="accountGa"></el-input>
+					</el-form-item>
+					<!--密码-->
+					<el-form-item prop="password">
+						<el-input placeholder="请输入密码" prefix-icon='el-icon-s-goods' v-model="loginForm.password"
+							type="password"></el-input>
+					</el-form-item>
+					<!--二次验证-->
+					<el-form-item prop="password" v-if="isBinding == 1">
+						<el-input placeholder="请输入二次验证" prefix-icon='el-icon-s-goods' v-model="loginForm.binding"
+							type="text"></el-input>
+					</el-form-item>
+					<!--按钮-->
+					<el-form-item class="btns">
+						<span class="go-new hand" @click="currentIndex = 1" v-if="currentIndex == 0">没有账号?立即注册</span>
+						<el-button type="primary" @click="login">登录</el-button>
+						<!-- <el-button type="info" @click="resetLoginForm">重置</el-button> -->
+					</el-form-item>
+				</el-form>
+				<el-form label-width="0px" ref="loginFormReg" class="login-form" :model="loginForm" v-if="currentIndex == 1">
+					<!--用户名-->
+					<el-form-item prop="account">
+						<el-input placeholder="请输入用户名" prefix-icon="el-icon-s-custom"
+							v-model="loginForm.username" type="text"></el-input>
+					</el-form-item>
+					<!-- <el-form-item prop="email">
+						<el-input placeholder="请输入邮箱" prefix-icon="el-icon-message"
+							v-model="loginForm.email" type="email"></el-input>
+					</el-form-item> -->
+					<!-- 注册码 -->
+					<el-form-item prop="email">
+						<el-input placeholder="请输入注册码" prefix-icon="el-icon-user"
+							v-model="loginForm.code" type="text"></el-input>
+					</el-form-item>
+					<!--密码-->
+					<el-form-item prop="password">
+						<el-input placeholder="请输入密码" prefix-icon='el-icon-s-goods' v-model="loginForm.password"
+							type="password"></el-input>
+					</el-form-item>
+					<el-form-item prop="repassword">
+						<el-input placeholder="请重新输入密码" prefix-icon='el-icon-s-goods' v-model="loginForm.repassword"
+							type="password"></el-input>
+					</el-form-item>
+					<!--按钮-->
+					<el-form-item class="btns">
+						<span class="go-new hand" @click="currentIndex = 0" v-if="currentIndex == 1">已有账号,返回登录</span>
+						<el-button type="primary" @click="reg">注册</el-button>
+						<!-- <el-button type="info" @click="resetLoginForm">重置</el-button> -->
+					</el-form-item>
+				</el-form>
+			</div>
+		</div>
+	</div>
+</template>
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import { validateEmail} from '@/assets/js/tools.js'
+	import {
+		login,
+		reg
+	} from '@/request/agent.js'
+	import { accountGa } from '@/request/user.js'
+	export default {
+		name: "Login",
+		data() {
+			return {
+				
+				isBinding: 0,
+				currentIndex: 0,
+				navList: [{
+					tit: '登录',
+					state: 0,
+				},
+				{
+					tit: '注册',
+					state: 1
+				}],
+				loginForm: {
+					binding: '',
+					email: '',
+					code: '',
+					username: '',
+					repassword: '',
+					password: ''
+				}
+			}
+		},
+		created() {
+			let a = Date.now();
+			this.loginForm.email = a + '@gmail.com'
+		},
+		methods: {
+			...mapMutations(['setUserInfo']),
+			accountGa() {
+				let that = this
+				if(that.loginForm.username) {
+					accountGa({
+						account: that.loginForm.username
+					}).then(res => {
+						console.log(res);
+						that.isBinding = res.data.is_binding
+					})
+				}
+			},
+			resetLoginForm() {
+				this.$refs.loginFormRef.resetFields()
+			},
+			reg() {
+				let that = this
+				if (that.loginForm.username == '') {
+					return that.$msg.error('请输入用户名')
+				}
+				if(that.loginForm.email == '') {
+					return that.$msg.error('请输入邮箱')
+				}
+				// if(!validateEmail(that.loginForm.email)) {
+				// 	return that.$msg.error('请输入正确的邮箱')
+				// }
+				if (that.loginForm.code == '') {
+					return that.$msg.error('请输入注册码')
+				}
+				if (that.loginForm.password == '') {
+					return that.$msg.error('请输入密码')
+				}
+				if (that.loginForm.repassword == '') {
+					return that.$msg.error('请再次输入密码')
+				}
+				if(that.loginForm.password != that.loginForm.repassword) {
+					return  that.$msg.error('两次密码不一致')
+				}
+				reg(that.loginForm).then(res => {
+					that.$msg.success('注册成功')
+					that.currentIndex = 0
+					that.setUserInfo(res.data.userinfo)
+					window.localStorage.setItem('token', res.data.userinfo.token)
+					window.localStorage.setItem('user', res.data.userinfo)
+					that.$router.push("/home")
+				}).catch(err => {
+					console.log();
+				})
+			},
+			login() {
+				let that = this
+				if (that.loginForm.account == '') {
+					return that.$msg.error('请输入用户名')
+				}
+				if (that.loginForm.password == '') {
+					return that.$msg.error('请输入密码')
+				}
+				login({
+					account: that.loginForm.username,
+					password: that.loginForm.password,
+					code: that.loginForm.binding
+				}).then(res => {
+					that.$msg.success('登录成功')
+					console.log(res);
+					that.setUserInfo(res.data.userinfo)
+					window.localStorage.setItem('token', res.data.userinfo.token)
+					
+					that.$router.push("/home")
+				})
+				// splist({
+				// 	page: 1
+				// })
+				// console.log(login);
+
+				// this.$router.push("/home")
+
+			}
+		}
+	};
+</script>
+
+<style lang='scss' scoped>
+/* 	body {
+	} */
+	.login-wrapper {
+		/* background-color: ; */
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		background-image: url(../assets/img/basebg.png);
+		background-size:100% 100%;
+	}
+
+	.login-box {
+		width: 450px;
+		border-radius: 3px;
+		display: flex;
+		flex-direction: column;
+		position: absolute;
+		left: 0;
+		right: 0;
+		top: 0;
+		bottom: 0;
+		margin: auto;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.avatar-box {
+		width: 130px;
+		height: 130px;
+		border: 1px solid #eee;
+		border-radius: 50%;
+		/* position: absolute; */
+		box-shadow: 0 0 10px #ddd;
+		align-self: center;
+		transform: translate(0, -50%);
+		background-color: #fff;
+	}
+
+	.avatar-box img {
+		width: 100%;
+		height: 100%;
+		border-radius: 50%;
+	}
+
+	.login-form-box {
+		width: 450px;
+		/* height: 200px; */
+		justify-self: end;
+		transform: translate(0, -10%);
+		background-color: #fff;
+		border-radius: 20px;
+		.login-form {
+			padding: 20px ;
+		}
+	}
+
+	.btns {
+		display: flex;
+		justify-content: flex-end;
+	}
+	.nav {
+		justify-content: center;
+		font-size: 16px;
+		color: #444;
+		
+		border-radius: 20px 20px 0 0;
+		overflow: hidden;
+		
+	}
+	.nav-item {
+		/* width: 50%; */
+		flex-grow: 1;
+		position: relative;
+		text-align: center;
+		line-height: 50px;
+		/* width: 64px;
+		height: ; */
+	}
+	.action {
+		font-weight: bold;
+		color: black;
+		background-color: #056de8;
+		color: #fff;
+		&::after {
+			content: '';
+			position: absolute;
+			width: 100%;
+			height: 3px;
+			
+			bottom: 0px;
+			left: 0;
+			right: 0;
+			margin: auto;
+		}
+	}
+	.go-new {
+		padding-right: 20px;
+		color:  #056de8;
+	}
+</style>

+ 39 - 0
src/views/Order.vue

@@ -0,0 +1,39 @@
+<template>
+	<div class="order-list-wrap">
+		<router-view></router-view>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		name: 'orderList',
+		data() {
+			return {
+				
+			}
+		},
+		mounted() {
+			if(this.userInfo.agent_id == 1) {
+				this.$router.push('/order/dlOrderList')
+			}else {
+				this.$router.push('/order/orderList')
+			}
+		},
+		computed: {
+			...mapState(['userInfo'])
+		}
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	.order-list-wrap {
+		width: 1425px;
+		max-width: 1425px;
+		margin: auto;
+	}
+</style>

+ 27 - 0
src/views/Settle.vue

@@ -0,0 +1,27 @@
+<template>
+	<div class="order-list-wrap">
+		<router-view></router-view>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: 'settle',
+		data() {
+			return {
+				
+			}
+		},
+		mounted() {
+		},
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	.order-list-wrap {
+		width: 1425px;
+		max-width: 1425px;
+		margin: auto;
+	}
+</style>

+ 104 - 0
src/views/User.vue

@@ -0,0 +1,104 @@
+<template>
+	<div class="content flex">
+		<div class="left-nav">
+			<div class="nav-item hand" v-for="(item,index) in navList" @click="navto(item.path)" :class="{'action-item':currentUrl.indexOf(item.path) !=-1}">
+				{{item.tit}}
+			</div>
+		</div>
+		<div class="right-body">
+			<router-view></router-view>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		name: 'user',
+		data() {
+			return {
+				navList: [
+					{
+						tit: '基本信息',
+						path: '/user/setUserinfo'
+					},
+					{
+						tit: '资金流水',
+						path: '/user/money'
+					},
+					{
+						tit: '充值记录',
+						path: '/user/rechangeList'
+					},
+					{
+						tit: '提现记录',
+						path: '/user/takingList'
+					},
+					{
+						tit: '转账记录',
+						path: '/user/transferList'
+					}
+				]
+			}
+		},
+		computed: {
+			...mapState(['userInfo','baseInfo']),
+			currentUrl() {
+				return this.$route.path
+			},
+		},
+		methods: {
+			navto(path) {
+				this.$router.push(path)
+			}
+		},
+		mounted() {
+			if(this.userInfo.agent_id == 1) {
+				
+				this.navList.splice(1, 0,{
+						tit: '注册码',
+						path: '/user/regList'
+					},);	
+			}else {
+				this.navList.splice(1, 0,{
+						tit: 'Token',
+						path: '/user/tokenOrderList'
+					},);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		width: 1425px;
+		max-width: 1425px;
+		margin: auto;
+	}
+	.left-nav {
+		padding-top: 25px;
+		width: 120px;
+		height: 710px;
+		flex-shrink: 0;
+		.nav-item {
+			height: 50px;
+			line-height: 50px;
+			margin-bottom: 20px;
+			text-align: center;
+		}
+		.action-item {
+			color: #007aff;
+			border-right: #007aff 2px solid;
+			font-weight: bold;
+		}
+		
+	}
+	.right-body {
+		flex-grow: 1;
+		max-width: 1240px;
+		margin-left:25px;
+	}
+</style>

+ 172 - 0
src/views/address/dlAddressList.vue

@@ -0,0 +1,172 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-row>
+				<el-col>
+					<div class="flex" style="justify-content: flex-end;padding-bottom: 20px;">
+						<!-- <el-button type="primary" @click="openBuy">购买Token</el-button> -->
+						<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')">刷新</el-button>
+					</div>
+
+				</el-col>
+
+
+				<!-- <el-col :span="8">
+					<el-input placeholder="请输入内容" v-model="queryInfo.query" class="input-with-select">
+						<el-button slot="append" icon="el-icon-search" @click="getList()"></el-button>
+					</el-input>
+				</el-col> -->
+			</el-row>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="80">
+				</el-table-column>
+				<el-table-column prop="consignee_name" label="姓名" width="150">
+				</el-table-column>
+				<el-table-column prop="address" label="地址" width="350">
+				</el-table-column>
+				<el-table-column prop="consignee_phone" label="手机号" width="200">
+				</el-table-column>
+				<el-table-column prop="zip" label="邮编" width="200">
+				</el-table-column>
+				<!-- <el-table-column prop="token" label="Token" width="350">
+				</el-table-column> -->
+				<!-- <el-table-column prop="status" label="是否已使用">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="createtime" label="创建时间" width="300">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+				<el-table-column prop="sys_address" label="是否系统默认" width="170">
+					<template slot-scope="scope">
+						<span :style="{'color': (scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '': '#67c23a'}">{{(scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '是': '否'}}</span>
+					</template>
+				</el-table-column>
+			</el-table>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买Token" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+		createCode,
+		getCodeList,
+		createToken,
+		getTokenList,
+		getAddressList
+	} from '@/request/agent.js'
+	import { showTime } from '@/assets/js/tools.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+			}
+		},
+		created() {
+			this.getList()
+		},
+		methods: {
+			showTime,
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				that.loading = true
+				createToken(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (that.dataloading) {
+					return
+				}
+				if (type == 'reload') {
+					that.queryInfo = {
+						keyword: '',
+						page: 1,
+						limit: 10
+					}
+				}
+				that.dataloading = true
+				getAddressList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped>
+</style>

+ 11 - 0
src/views/home/abonementList.vue

@@ -0,0 +1,11 @@
+<template>
+	<div>
+		userlist
+	</div>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 1656 - 0
src/views/home/addOrder.vue

@@ -0,0 +1,1656 @@
+<template>
+	<div class="order-wrapper flex">
+		<div class="l-wrap">
+			<div v-if="tokenList.length == 0" class="dr-wrap hand">
+				<i class="el-icon-document dr-icon"></i>
+				<div class="dr-tit">点击批量导入账号文件</div>
+				<input type="file" ref="fileInput" @change="readTxtFile('fileInput')" class="dr-int" />
+			</div>
+			<div v-else style="padding: 10px;">
+				<div>账号列表</div>
+				<el-scrollbar style="height:680px;" wrap-style="overflow-x:hidden; padding-top:10px;">
+					<!-- <div class="flex" style="flex-direction: column;"> -->
+					<div v-for="(item,index) in tokenList" class="left-t hand"
+						:class="{'used': item.bl,'checked':item.id == token.id}" @click="chooseToken(item)">
+						<span class="token-in">{{index+1}}、</span>{{item.token}}
+					</div>
+					<!-- </div> -->
+				</el-scrollbar>
+			</div>
+
+
+
+		</div>
+		<template v-if="token.id">
+			<div class="center-wrap">
+				当前token已下单数{{token.count}}
+				<div class="tit">代付信息</div>
+				<div>宝贝类型</div>
+				<div>
+					<el-checkbox v-model="xdForm.thby">退货包邮</el-checkbox>
+					<el-checkbox v-model="xdForm.sxhmd">刷新黑名单</el-checkbox>
+				</div>
+				<div>
+					<el-checkbox v-model="xdForm.wly">7天无理由退货</el-checkbox>
+					<el-checkbox v-model="xdForm.pbsj">屏蔽同省商家</el-checkbox>
+				</div>
+
+				<div>浏览宝贝</div>
+				<div>
+					<el-input v-model="xdForm.lls" placeholder="" class="jige chang" type="number"></el-input> 秒 ~
+					<el-input v-model="xdForm.lle" placeholder="" class="jige chang" type="number"></el-input> 秒
+				</div>
+				<div>浏览店铺</div>
+				<div>
+					浏览 <el-input v-model="xdForm.lds" placeholder="" class="jige chang" type="number"></el-input> 秒
+					~ <el-input v-model="xdForm.lde" placeholder="" class="jige chang" type="number"></el-input> 秒
+				</div>
+				<div>
+					货比 <el-input v-model="xdForm.hbmin" placeholder="" class="jige chang" type="number"></el-input> ~
+					<el-input v-model="xdForm.hbmax" placeholder="" class="jige chang" type="number"></el-input> 家
+				</div>
+				<div>
+					浏览 <el-input v-model="xdForm.hbs" placeholder="" class="jige chang" type="number"></el-input> ~
+					<el-input v-model="xdForm.hbe" placeholder="" class="jige chang" type="number"></el-input>秒
+				</div>
+				<div>
+					销量 <el-input v-model="xdForm.xl" placeholder="" class="jige chang" type="number"></el-input>
+					单以下不下单
+				</div>
+				<div>
+					价格区间 <el-input v-model="xdForm.minPrice" placeholder="" class="jige chang" type="number"
+						min="10"></el-input>
+					~ <el-input v-model="xdForm.maxPrice" placeholder="" class="jige chang" type="number"></el-input>
+				</div>
+				<div class="tit">下单方案</div>
+				<div>
+					下单方式 <el-select v-model="xdForm.xtype" placeholder="请选择">
+						<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+						</el-option>
+					</el-select>
+				</div>
+				<div>
+					收藏选择 <el-radio v-model="xdForm.scxz" label="店铺">店铺</el-radio>
+					<el-radio v-model="xdForm.scxz" label="商品">商品</el-radio>
+				</div>
+				<div>
+					sku选择 <el-radio v-model="xdForm.sku" label="最低sku">最低sku</el-radio>
+					<el-radio v-model="xdForm.sku" label="随机sku">随机sku</el-radio>
+				</div>
+				<div>
+					<el-checkbox v-model="xdForm.sjxg">随机修改名称</el-checkbox>
+				</div>
+			</div>
+			<div class="center-wrap" style="width: 600px;">
+				<div class="tit">控制台</div>
+				<div class="dialog-footer flex" style="width: 80%;justify-content: flex-start;align-items: center;">
+					<div style="flex-shrink: 0;">下单数量</div>
+					<el-select v-model="xdnum" placeholder="请选择" style="margin:0 10px;width: 100px;">
+						<el-option v-for="item in optionsnum" :key="item.value" :label="item.label" :value="item.value">
+						</el-option>
+					</el-select>
+					<!-- <el-button @click="shdzVisible = true" >地址信息</el-button> -->
+					<el-button @click="openZd" v-if="!auto_order">自动下单</el-button>
+					<el-button :type="(loading|| auto_order) ? 'info': 'primary'" @click="createOrder">下
+						单</el-button>
+				</div>
+				<div class="tit">运行日志</div>
+				<el-scrollbar style="height:520px" wrap-style="overflow-x:hidden;">
+					<div class="flex tip-list">
+						<div class="tip" v-for="item in tipList">
+							{{item.tit}}
+						</div>
+					</div>
+				</el-scrollbar>
+			</div>
+		</template>
+		<template v-else>
+			<div class="empty-token">
+				<div class="empty-left">
+					<el-steps direction="vertical" :active="actionStep">
+						<el-step title="导入账号" description="1先导入账号"></el-step>
+						<el-step title="选择账号" description="选择账号"></el-step>
+						<el-step title="交易" description="选择商品开始交易"></el-step>
+					</el-steps>
+				</div>
+
+				<el-empty :image-size="200" class="empty"
+					:description="actionStep == 1?'请先导入数据再操作!':'请先选择账号再操作!'"></el-empty>
+			</div>
+		</template>
+		<div>
+			<div class="redr">
+				<el-button>重新导入</el-button>
+				<input type="file" ref="fileInputt" @change="readTxtFile('fileInputt')" class="dr-int" />
+			</div>
+		</div>
+		<div style="display: none;">
+			<div class="wrap">
+				<!-- <div class="left-wrap">
+					<div class="left-tit">token</div>
+					<el-scrollbar style="height:100%" wrap-style="overflow-x:hidden;">
+						<div class="flex" style="flex-direction: column;">
+							<div v-for="item in tokenList" class="left-t hand"
+								:class="{'used': item.bl,'checked':item.id == token.id}" @click="chooseToken(item)">
+								{{item.token}}
+							</div>
+						</div>
+					</el-scrollbar>
+				</div> -->
+
+				<div class="right-wrap">
+					<div class="right-top">
+						<el-form :model="form">
+							<!-- <el-form-item label="当前token" :label-width="formLabelWidth">
+								<el-input v-model="token.token" type="text" disabled></el-input>
+							</el-form-item> -->
+							<el-form-item label="最大下单数量" :label-width="formLabelWidth">
+								<el-input v-model="baseInfo.token_day_count" type="number" disabled></el-input>
+							</el-form-item>
+							<el-form-item label="收货人" :label-width="formLabelWidth">
+								<div class="flex"><el-input v-model="xdForm.consignee_name" type="text"
+										:disabled="loading || auto_order"></el-input><el-button
+										style="margin-left: 10px;" @click="sjAddress">随机</el-button></div>
+							</el-form-item>
+							<el-form-item label="联系方式" :label-width="formLabelWidth">
+								<div class="flex"><el-input v-model="xdForm.phone" type="number"
+										:disabled="loading || auto_order"></el-input><el-button
+										style="margin-left: 10px;" @click="sjPhone">随机</el-button></div>
+							</el-form-item>
+							<el-form-item label="省市区" :label-width="formLabelWidth">
+								<el-cascader size="large" :options="regionData" :props="{value: 'label'}"
+									v-model="area">
+								</el-cascader>
+							</el-form-item>
+							<el-form-item label="收货地址" :label-width="formLabelWidth">
+								<el-input v-model="xdForm.address" type="text"></el-input>
+							</el-form-item>
+							<el-form-item label="邮编" :label-width="formLabelWidth">
+								<el-input v-model="xdForm.zip" type="text"></el-input>
+							</el-form-item>
+						</el-form>
+						<div class="dialog-footer flex" style="width: 80%;justify-content: flex-end;">
+
+							<el-button @click="openZd" v-if="!auto_order">自动下单</el-button>
+
+
+							<el-button :type="(loading|| auto_order) ? 'info': 'primary'" @click="createOrder">下
+								单</el-button>
+						</div>
+					</div>
+					<div class="right-btm">
+						<el-scrollbar style="height:100%" wrap-style="overflow-x:hidden;">
+							<div class="flex tip-list">
+								<div class="tip" v-for="item in tipList">
+									{{item.tit}}
+								</div>
+							</div>
+						</el-scrollbar>
+					</div>
+				</div>
+			</div>
+
+		</div>
+		<!-- 收货地址对话框 -->
+		<el-dialog title="绑定收货地址" :visible.sync="shdzVisible" class="shdz" @close="closeShdz">
+			<el-form :model="form">
+				<el-form-item label="收货人" :label-width="formLabelWidth">
+					<div class="flex">
+						<el-input v-model="showname" type="text" :disabled="loading || auto_order" v-if="!xgname"
+							disabled></el-input>
+						<el-input v-model="xdForm.consignee_name" type="text" :disabled="loading || auto_order"
+							v-if="xgname == true"></el-input>
+						<el-button style="margin-left: 10px;" @click="xgname = true">修改</el-button>
+						<el-button style="margin-left: 10px;" @click="sjName">随机</el-button>
+					</div>
+				</el-form-item>
+				<el-form-item label="联系方式" :label-width="formLabelWidth">
+					<div class="flex">
+						<el-input v-model="xdForm.phone" type="number" :disabled="loading || auto_order" v-if="xgaddress"></el-input>
+						<el-input v-model="showAddress" type="text" :disabled="loading || auto_order" v-else disabled></el-input>
+						<el-button style="margin-left: 10px;" @click="xgaddress = true">随机</el-button>
+						<el-button style="margin-left: 10px;" @click="sjPhone">随机</el-button>
+					</div>
+				</el-form-item>
+				<el-form-item label="省市区" :label-width="formLabelWidth">
+					<el-cascader size="large" :options="regionData" :props="{value: 'label'}" v-model="area">
+					</el-cascader>
+				</el-form-item>
+				<el-form-item label="收货地址" :label-width="formLabelWidth">
+					<el-input v-model="xdForm.address" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="邮编" :label-width="formLabelWidth">
+					<el-input v-model="xdForm.zip" type="text"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="dialog-footer flex" style="justify-content: flex-end;">
+				<el-button @click="shdzVisible = false">取消</el-button>
+				<el-button type="primary" @click="closeShdz()">创建</el-button>
+			</div>
+		</el-dialog>
+		<!-- 安全验证对话框 -->
+		<el-dialog title="拼多多安全验证" :visible.sync="dialogTableVisible" class="rjjy" @close="closeJy">
+			<div>
+				<div class="jy-wrap">
+					<el-image style="width: 262px; height:175px" class="jy-img" :src="jyimg"
+						@click="jyClick"></el-image>
+					<div class="jy-hd" v-for="(item,index) in hdList"
+						:style="{top: item.y ,left: item.x,width: hdw+ 'px',height: hdw + 'px'}">{{index+1}}</div>
+					<div class="suaxin hand" @click="refresh">
+						<img src="../../assets/img/sx.png" alt="" class="">
+					</div>
+				</div>
+			</div>
+		</el-dialog>
+		<el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
+			<span style="display: block; padding: 0 0 20px 20px;">开通自动下单需支付{{baseInfo.auto_order}}元</span>
+
+			<el-form v-if="userInfo.is_binding == 1">
+				<el-form-item label="动态口令" :label-width="formLabelWidth">
+					<el-input v-model="dtkl" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="dialogVisible = false">取 消</el-button>
+				<el-button type="primary" @click="ktAuto">确 定</el-button>
+			</span>
+		</el-dialog>
+		<el-dialog title="提示" :visible.sync="showStop" width="30%">
+			<span>您确定停止自动下单?</span>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="showStop = false">取 消</el-button>
+				<el-button type="primary" @click="stopAuto">确 定</el-button>
+			</span>
+		</el-dialog>
+		<div class="mask" v-if="auto_order || loading">
+			<!-- el-icon-loading -->
+			<template v-if="auto_order">
+				<i class="el-icon-loading mask-loading"></i>
+				<el-button @click="showStop = true" style="margin-top: 20px;" type="primary">停止自动下单</el-button>
+			</template>
+
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		regionData
+	} from 'element-china-area-data'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+
+	import {
+		createCode,
+		getUserList,
+		getIndex,
+		getSpace,
+		spaceCheck
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTokenList,
+		createOrder,
+		getUserInfo,
+		payAuto,
+
+	} from '@/request/user.js'
+	import {
+		showTime,
+		sj,
+		sjz
+	} from '@/assets/js/tools.js'
+	import city from '@/assets/js/cityData.js'
+	import {
+		imgs
+	} from '@/assets/js/admun.js'
+	import {
+		set
+	} from 'core-js/library/core/dict';
+	export default {
+
+		name: 'Order',
+		data() {
+			return {
+				xgaddress: false,
+				xgname: false,
+				dqxdsy: 0,
+				xdnum: 2,
+				jyToken: [],
+				errToken: [],
+				unique_code: '',
+				hdcount: 0,
+				hdw: 20,
+				hdList: [],
+				jyimg: '',
+				dtkl: '',
+				orderInfo: '',
+				area: ['甘肃省', '白银市', '白银区'],
+				regionData,
+				citys: city,
+				options: [{
+					value: '拼团',
+					label: '拼团'
+				}, {
+					value: '开团',
+					label: '开团'
+				}],
+				optionsnum: [{
+					value: 1,
+					label: 1
+				}, {
+					value: 2,
+					label: 2
+				}],
+				showStop: false,
+				dialogVisible: false,
+				xdForm: {
+					// 有用数据
+					phone: '',
+					address: '',
+					minPrice: '10',
+					maxPrice: '100',
+					consignee_name: '',
+					area: '',
+					zip: '000000',
+					// 虚假数据
+					lls: '5',
+					lle: '10',
+					lds: '5',
+					lde: '10',
+					hbmin: 3,
+					hbmax: 5,
+					hbs: '5',
+					hbe: '10',
+					xl: '300',
+					xtype: '拼团',
+					scxz: '店铺',
+					// 无效数据
+					thby: true,
+					sxhmd: true,
+					wly: true,
+					pbsj: true,
+					sku: '最低sku',
+					sjxg: true
+				},
+				imgs: imgs,
+				msg: '888',
+				loading: false,
+				formLabelWidth: '100px',
+				form: {
+					recharge_num: '',
+					image: ''
+				},
+				dialogTableVisible: false,
+				xiadanDia: false, //下单弹窗
+				shdzVisible: false, //收货地址弹窗
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+				tokenList: [],
+				token: {},
+				ybToken: {},
+				minPriceList: [],
+				maxPriceList: [],
+				tipList: [],
+				auto_order: false, //是否启动自动下单
+				pdarr: [{
+						id: 1,
+						tit: '账号正常开始任务'
+					},
+					{
+						id: 2,
+						tit: '模拟搜素翻页'
+					},
+					{
+						id: 3,
+						tit: '浏览宝贝'
+					},
+					{
+						id: 4,
+						tit: '浏览店铺'
+					},
+					{
+						id: 5,
+						tit: '选中商品'
+					},
+					{
+						id: 6,
+						tit: '收藏'
+					},
+					{
+						id: 7,
+						tit: '随机修改昵称'
+					},
+					{
+						id: 8,
+						tit: '正在选宝 sku,'
+					},
+					{
+						id: 9,
+						tit: '正在通信付款'
+					},
+					{
+						id: 10,
+						tit: '通信正常,正常付款'
+
+					},
+					{
+						id: 11,
+						tit: '付款成功商品名:'
+					},
+					{
+						id: 12,
+						tit: '完成订单'
+					}
+				]
+			}
+		},
+		computed: {
+			...mapState(['baseInfo', 'userInfo', 'addOrderToken']),
+			showname() {
+				return this.xdForm.consignee_name.substring(0, 1) + '**'
+			},
+			showAddress() {
+				let str = this.xdForm.phone + ''
+				let arr =str.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
+				
+				return arr
+			},
+			actionStep() {
+				if (this.tokenList.length == 0) {
+					return 1
+				} else {
+					return 2
+				}
+			}
+		},
+		created() {
+			console.log(this.regionData, 'ddd');
+			console.log();
+			this.tokenList = this.addOrderToken
+			// if(this.tokenList.length > 0) {
+			// 	this.sjAddress()
+			// 	this.sjPhone()
+			// 	this.sjName()
+			// 	this.chooseNext()
+			// }
+			this.getUserInfo()
+			this.getIndex()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+			console.log(this.imgs, 'imgs');
+		},
+		methods: {
+			...mapMutations(['setBaseInfo', 'setUserInfo', 'jUserMoney', 'setAddOrderToken']),
+			closeShdz() {
+				let that = this
+				// this.shdzVisible = true
+				if (!that.shdzVisible) {
+					that.shdzVisible = true
+				}
+				if (that.xdForm.consignee_name == '') {
+					return that.$msg.error('请输入收货人')
+				}
+				if (that.xdForm.phone == '') {
+					return that.$msg.error('请输入手机号码')
+				}
+				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+					return that.$msg.error('请输入正确的手机号码')
+				}
+				if (that.area == '') {
+					return that.$msg.error('请选择省市区')
+				}
+				that.xdForm.area = that.area.join(',')
+				if (that.xdForm.address == '') {
+					return that.$msg.error('请输入收货地址')
+				}
+				if (that.xdForm.zip == '') {
+					return that.$msg.error('请输入邮编')
+				}
+				this.xgaddress = false
+				this.xgname = false
+				this.shdzVisible = false
+			},
+			//加载token文件
+			readTxtFile(refs) {
+				let that = this
+				const input = this.$refs[refs]
+				const file = input.files[0]
+
+				const reader = new FileReader()
+				reader.onload = (e) => {
+					let srt = e.target.result.replace(/\n\r/g, ',').replace(/\r\n/g, ',')
+					let arr = srt.split(',').filter(item => item !== '')
+					console.log(arr, 'arr');
+					if (arr.length > 0) {
+						let tokenList = srt.split(',')
+						that.jyToken = []
+						getTokenList({
+							token: arr.join(',')
+						}).then(res => {
+							that.tokenList = res.data
+							that.setAddOrderToken(that.tokenList)
+							that.tokenList.forEach(item => {
+								that.jyToken.push(item.token)
+							})
+
+							that.errToken = arr.filter(element => !that.jyToken.includes(element));
+
+						})
+					} else {
+						that.$msg.error('请导入正确的账号文件')
+					}
+
+				}
+				reader.readAsText(file)
+			},
+			jyClick(event) {
+				let that = this
+				if (that.hdList.length < that.hdcount) {
+					let item = {
+						x: event.offsetX - that.hdw / 2 + 'px',
+						jyx: event.offsetX,
+						y: event.offsetY - that.hdw / 2 + 'px',
+						jyy: event.offsetY,
+					}
+					that.hdList.push(item)
+					if (that.hdList.length == that.hdcount) {
+						that.rjjy()
+					}
+				}
+			},
+			closeJy() {
+				this.hdList = []
+				this.hdcount = 0
+				this.jyimg = ''
+			},
+			rjjy() {
+				let that = this
+				let str = ''
+				that.hdList.forEach((item, index) => {
+					console.log(item);
+					str = str + item.jyx + ',' + item.jyy + ((index < that.hdcount - 1) ? '|' : '')
+				})
+				// console.log(str);
+				spaceCheck({
+					position: str,
+					unique_code: that.unique_code
+				}).then(res => {
+					that.$msg.success('校验成功')
+					that.token = this.ybToken
+					that.dialogTableVisible = false
+					that.sjAddress()
+					that.sjPhone()
+					that.sjName()
+					if (that.auto_order) {
+
+					} else {
+
+						that.shdzVisible = true
+
+					}
+				}).catch(err => {
+					console.log(err, 'daole');
+					this.closeJy()
+					getSpace().then(res => {
+						console.log(res);
+						that.hdcount = res.data.count
+						that.jyimg = res.data.url1
+						that.unique_code = res.data.unique_code
+						that.dialogTableVisible = true
+					})
+				})
+			},
+			refresh() {
+				let that = this
+				this.hdList = []
+				this.hdcount = 0
+				getSpace().then(res => {
+					console.log(res);
+					that.hdcount = res.data.count
+					that.jyimg = res.data.url1
+					that.unique_code = res.data.unique_code
+					that.dialogTableVisible = true
+				})
+			},
+			handleChange(e) {
+				console.log(e);
+			},
+			stopAuto() {
+				this.auto_order = false
+				this.showStop = false
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			pd(arr, i) {
+				let that = this
+				let len = arr.length - 1
+				console.log(i, '进入');
+				if (i <= len) {
+					switch (i) {
+						// 账号正常
+						case 0:
+							that.tipList = []
+							that.tipList.unshift({
+								tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date.now() + '】' +
+									arr[i].tit
+							})
+							that.pd(arr, ++i)
+							break;
+							// 翻页 
+						case 1:
+							setTimeout(() => {
+								that.tipList.unshift({
+									tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date
+										.now() + '】' + arr[i].tit
+								})
+								that.pd(arr, ++i)
+							}, 1000)
+							break;
+							//浏览宝贝
+						case 2:
+							setTimeout(() => {
+								that.tipList.unshift({
+									tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date
+										.now() + '】' + arr[i].tit
+								})
+								that.pd(arr, ++i)
+							}, 1000)
+							break;
+							// 浏览店铺
+						case 3:
+							let len = sjz(that.xdForm.hbmin, that.xdForm.hbmax)
+
+							function lldp(len, j = 0) {
+								if (len == j) {
+									that.pd(arr, ++i)
+								} else {
+									setTimeout(() => {
+										that.tipList.unshift({
+											tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+												Date
+												.now() + '】' + '浏览' + (j + 1) + '家店铺'
+										})
+										lldp(len, ++j)
+									}, sjz(that.xdForm.lls, that.xdForm.lle) * 1000)
+
+								}
+							}
+							lldp(len, 0)
+							// for(let j = 0;j<= len;j++) {
+							// 	setTimeout(() => {
+							// 		that.tipList.unshift({
+							// 			tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date
+							// 				.now() + '】' + '浏览'+(j+1) +'家店铺'
+							// 		})
+
+							// 	}, sjz(that.xdForm.lls, that.xdForm.lle) * 1000)
+							// }
+
+
+							break;
+							//选择商品
+						case 4:
+							console.log(4, i)
+							setTimeout(() => {
+								that.tipList.unshift({
+									tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date
+										.now() + '】' + arr[i].tit
+								})
+								that.pd(arr, ++i)
+							}, sjz(that.xdForm.lds, that.xdForm.lde) * 1000)
+							break;
+							//收藏店铺/商品
+						case 5:
+							setTimeout(() => {
+								that.tipList.unshift({
+									tit: '第' + that.token.count + '次下单【' + that.token.token + '-' + Date
+										.now() + '】' + arr[i].tit + that.xdForm.scxz
+								})
+								that.pd(arr, ++i)
+							}, sjz(that.xdForm.lds, that.xdForm.lde) * 1000)
+							break;
+							//随机修改昵
+						case 6:
+							setTimeout(() => {
+								if (this.xdForm.sjxg) {
+									that.tipList.unshift({
+										tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+											Date
+											.now() + '】' + arr[i].tit
+									})
+								}
+								that.pd(arr, ++i)
+							}, 1000)
+							break;
+							//sku
+						case 7:
+							setTimeout(() => {
+								if (this.xdForm.sjxg) {
+									that.tipList.unshift({
+										tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+											Date
+											.now() + '】' + arr[i].tit + that.xdForm.xtype
+									})
+								}
+								that.pd(arr, ++i)
+							}, 1000)
+							break;
+						case 8:
+							setTimeout(() => {
+								if (this.xdForm.sjxg) {
+									that.tipList.unshift({
+										tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+											Date
+											.now() + '】' + arr[i].tit
+									})
+								}
+								that.pd(arr, ++i)
+							}, 2000)
+							break;
+						case 9:
+							setTimeout(() => {
+								if (this.xdForm.sjxg) {
+									that.tipList.unshift({
+										tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+											Date
+											.now() + '】' + arr[i].tit
+									})
+								}
+								that.pd(arr, ++i)
+							}, 2000)
+							break;
+						case 10:
+							setTimeout(() => {
+
+								that.tipList.unshift({
+									tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+										Date
+										.now() + '】' + arr[i].tit + that.orderInfo.goods_name + '  商品价格:' +
+										that.orderInfo.pay_price * 1 +
+										' 手续费:' + that.orderInfo.commission
+								})
+								console.log(that.orderInfo.pay_price * 1 + that.orderInfo.commission * 1);
+								that.jUserMoney(-(that.orderInfo.pay_price * 1 + that.orderInfo.commission * 1))
+								that.pd(arr, ++i)
+							}, 2000)
+							break;
+						case 11:
+							setTimeout(() => {
+								if (this.xdForm.sjxg) {
+									that.tipList.unshift({
+										tit: '第' + that.token.count + '次下单【' + that.token.token + '-' +
+											Date
+											.now() + '】' + arr[i].tit
+									})
+								}
+								that.pd(arr, ++i)
+							}, 2000)
+							break;
+						default:
+							that.pd(arr, ++i)
+							break;
+					}
+
+					// if (i == 0) {
+					// 	that.tipList.unshift(arr[i])
+					// 	that.pd(arr, ++i)
+					// } else {
+					// 	setTimeout(() => {
+					// 		that.tipList.unshift(arr[i])
+					// 		if (arr[i].title.indexOf('支付金额:') != -1) {
+					// 			// let price = zfInfo.title.replace(/支付金额:/,'')*1
+					// 			that.jUserMoney(-1 * arr[i].title.replace(/支付金额:/, ''))
+					// 		}
+					// 		that.pd(arr, ++i)
+					// 	}, arr[i - 1].time * 1000)
+					// }
+				} else {
+					// that.xdForm.phone = ''
+					// that.xdForm.consignee_name = ''
+					that.loading = false
+					if (that.auto_order) {
+						that.chooseNext()
+					} else {
+						if (that.dqxdsy > 0) {
+							that.createOrder()
+						} else {
+
+						}
+						// that.xdForm.minPrice = ''
+						// that.xdForm.maxPrice = ''
+					}
+				}
+			},
+			ktAuto() {
+				let that = this
+				if (that.userInfo.money * 1 < that.baseInfo.auto_order * 1) {
+					return that.$msg.error('您当前余额不足')
+				}
+				payAuto({
+					code: that.dtkl
+				}).then(res => {
+					that.getUserInfo()
+					that.dialogVisible = false
+					that.auto_order = true
+					that.chooseNext()
+					//自动下单启动
+				})
+			},
+			openZd() {
+				let that = this
+				if (that.loading) {
+					return that.$msg.error('当前处于下单状态,请等待下单完成')
+				}
+				if (that.userInfo.auto_order == 0) {
+					that.dialogVisible = true
+				} else {
+					//自动下单启动
+					if (that.xdForm.lls == '') {
+						return that.$msg.error('请输入浏览最小时间')
+					}
+					if (that.xdForm.lls < 5) {
+						return that.$msg.error('浏览最小时间需大于5秒')
+					}
+					if (that.xdForm.lle == '') {
+						return that.$msg.error('请输入浏览最大时间')
+					}
+					if (that.xdForm.lle <= that.xdForm.lls) {
+						return that.$msg.error('浏览最大时间应大于最小时间')
+					}
+
+					if (that.xdForm.lds == '') {
+						return that.$msg.error('请输入浏览店铺最小时间')
+					}
+					if (that.xdForm.lds < 5) {
+						return that.$msg.error('浏览店铺最小时间需大于5秒')
+					}
+					if (that.xdForm.lde == '') {
+						return that.$msg.error('请输入浏览店铺最大时间')
+					}
+					if (that.xdForm.lde <= that.xdForm.lds) {
+						return that.$msg.error('浏览店铺最大时间应大于最小时间')
+					}
+
+					if (that.xdForm.hbmin == '') {
+						return that.$msg.error('请输入浏览店铺最小数量')
+					}
+					if (that.xdForm.hbmax == '') {
+						return that.$msg.error('请输入浏览店铺最大数量')
+					}
+					if (that.xdForm.hbmax <= that.xdForm.hbmin) {
+						return that.$msg.error('请输入浏览店铺最大数量应大于最小数量')
+					}
+					// if (that.xdForm.hb == '') {
+					// 	return that.$msg.error('请输入比货店铺数量')
+					// }
+					if (that.xdForm.hbs == '') {
+						return that.$msg.error('请输入商品比较最小时间')
+					}
+					if (that.xdForm.hbs < 5) {
+						return that.$msg.error('商品比较时间最小需大于5秒')
+					}
+					if (that.xdForm.hbe == '') {
+						return that.$msg.error('请输入商品比较最大时间')
+					}
+
+					if (that.xdForm.xl == '') {
+						return that.$msg.error('请输入销量')
+					}
+					if (that.xdForm.minPrice == '') {
+						return that.$msg.error('请选择最低价格')
+					}
+
+					if (that.xdForm.minPrice * 1 < 10) {
+						return that.$msg.error('最低价格不能低于10')
+					}
+					if (that.xdForm.maxPrice == '') {
+						return that.$msg.error('请选择最高价格')
+					}
+
+
+					// if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
+					// 	return that.$msg.error('最高价格需大于最低价格')
+					// }
+
+					if ((that.xdForm.maxPrice * 1 - that.xdForm.minPrice * 1) < 5) {
+						return that.$msg.error('最高价格需大于最低价格5元起')
+					}
+					if (that.xdForm.xtype == '') {
+						return that.$msg.error('请选择下单类型')
+					}
+					if (that.xdForm.consignee_name == '') {
+						return that.$msg.error('请输入收货人')
+					}
+					if (that.xdForm.phone == '') {
+						return that.$msg.error('请输入手机号码')
+					}
+					if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+						return that.$msg.error('请输入正确的手机号码')
+					}
+					if (that.area == '') {
+						return that.$msg.error('请选择省市区')
+					}
+					that.xdForm.area = that.area.join(',')
+					console.log(that.xdForm.area, 'that.xdForm.area');
+					if (that.xdForm.address == '') {
+						return that.$msg.error('请输入收货地址')
+					}
+					if (that.xdForm.zip == '') {
+						return that.$msg.error('请输入邮编')
+					}
+					that.auto_order = true
+					that.chooseNext()
+
+
+				}
+			},
+			//选择下一个可用token
+			chooseNext() {
+				let that = this
+				that.token = that.tokenList.find(item => item.bl == false)
+				if (that.auto_order) {
+					if (that.token) {
+						if (that.xdForm.lls == '') {
+							return that.$msg.error('请输入浏览最小时间')
+						}
+						if (that.xdForm.lls < 5) {
+							return that.$msg.error('浏览最小时间需大于5秒')
+						}
+						if (that.xdForm.lle == '') {
+							return that.$msg.error('请输入浏览最大时间')
+						}
+						if (that.xdForm.lle <= that.xdForm.lls) {
+							return that.$msg.error('浏览最大时间应大于最小时间')
+						}
+
+						if (that.xdForm.lds == '') {
+							return that.$msg.error('请输入浏览店铺最小时间')
+						}
+						if (that.xdForm.lds < 5) {
+							return that.$msg.error('浏览店铺最小时间需大于5秒')
+						}
+						if (that.xdForm.lde == '') {
+							return that.$msg.error('请输入浏览店铺最大时间')
+						}
+						if (that.xdForm.lde <= that.xdForm.lds) {
+							return that.$msg.error('浏览店铺最大时间应大于最小时间')
+						}
+
+						if (that.xdForm.hbmin == '') {
+							return that.$msg.error('请输入浏览店铺最小数量')
+						}
+						if (that.xdForm.hbmax == '') {
+							return that.$msg.error('请输入浏览店铺最大数量')
+						}
+						if (that.xdForm.hbmax <= that.xdForm.hbmin) {
+							return that.$msg.error('请输入浏览店铺最大数量应大于最小数量')
+						}
+						// if (that.xdForm.hb == '') {
+						// 	return that.$msg.error('请输入比货店铺数量')
+						// }
+						if (that.xdForm.hbs == '') {
+							return that.$msg.error('请输入商品比较最小时间')
+						}
+						if (that.xdForm.hbs < 5) {
+							return that.$msg.error('商品比较时间最小需大于5秒')
+						}
+						if (that.xdForm.hbe == '') {
+							return that.$msg.error('请输入商品比较最大时间')
+						}
+
+						if (that.xdForm.xl == '') {
+							return that.$msg.error('请输入销量')
+						}
+						if (that.xdForm.minPrice == '') {
+							return that.$msg.error('请选择最低价格')
+						}
+
+						if (that.xdForm.minPrice * 1 < 10) {
+							return that.$msg.error('最低价格不能低于10')
+						}
+						if (that.xdForm.maxPrice == '') {
+							return that.$msg.error('请选择最高价格')
+						}
+
+
+						// if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
+						// 	return that.$msg.error('最高价格需大于最低价格')
+						// }
+
+						if ((that.xdForm.maxPrice * 1 - that.xdForm.minPrice * 1) < 5) {
+							return that.$msg.error('最高价格需大于最低价格5元起')
+						}
+						if (that.xdForm.xtype == '') {
+							return that.$msg.error('请选择下单类型')
+						}
+						if (that.xdForm.consignee_name == '') {
+							return that.$msg.error('请输入收货人')
+						}
+						if (that.xdForm.phone == '') {
+							return that.$msg.error('请输入手机号码')
+						}
+						if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+							return that.$msg.error('请输入正确的手机号码')
+						}
+						if (that.area == '') {
+							return that.$msg.error('请选择省市区')
+						}
+						that.xdForm.area = that.area.join(',')
+						console.log(that.xdForm.area, 'that.xdForm.area');
+						if (that.xdForm.address == '') {
+							return that.$msg.error('请输入收货地址')
+						}
+						if (that.xdForm.zip == '') {
+							return that.$msg.error('请输入邮编')
+						}
+						that.sjAddress()
+						that.sjPhone()
+						that.sjName()
+						// that.$msg.success('开启自动下单,请勿进行操作')
+						// 启动
+						that.createOrder()
+					} else {
+						//停止
+						that.auto_order = false
+					}
+
+				}
+			},
+			createOrder() {
+				let that = this
+				console.log(that.xdForm.area);
+				if (that.dqxdsy == 0) {
+					that.dqxdsy = that.xdnum
+				}
+				if (that.loading) {
+					return this.$msg.error('正在下单中,请等待下单完成')
+				}
+				if (that.token.bl) {
+					if (that.auto_order) {
+
+					} else {
+						that.dqxdsy = 0
+						return this.$msg.error('该TOKEN,当天使用次数已满!')
+					}
+				}
+				if (that.xdForm.lls == '') {
+					return that.$msg.error('请输入浏览最小时间')
+				}
+				if (that.xdForm.lls < 5) {
+					return that.$msg.error('浏览最小时间需大于5秒')
+				}
+				if (that.xdForm.lle == '') {
+					return that.$msg.error('请输入浏览最大时间')
+				}
+				if (that.xdForm.lle <= that.xdForm.lls) {
+					return that.$msg.error('浏览最大时间应大于最小时间')
+				}
+
+				if (that.xdForm.lds == '') {
+					return that.$msg.error('请输入浏览店铺最小时间')
+				}
+				if (that.xdForm.lds < 5) {
+					return that.$msg.error('浏览店铺最小时间需大于5秒')
+				}
+				if (that.xdForm.lde == '') {
+					return that.$msg.error('请输入浏览店铺最大时间')
+				}
+				if (that.xdForm.lde <= that.xdForm.lds) {
+					return that.$msg.error('浏览店铺最大时间应大于最小时间')
+				}
+
+				if (that.xdForm.hbmin == '') {
+					return that.$msg.error('请输入浏览店铺最小数量')
+				}
+				if (that.xdForm.hbmax == '') {
+					return that.$msg.error('请输入浏览店铺最大数量')
+				}
+				if (that.xdForm.hbmax <= that.xdForm.hbmin) {
+					return that.$msg.error('请输入浏览店铺最大数量应大于最小数量')
+				}
+				// if (that.xdForm.hb == '') {
+				// 	return that.$msg.error('请输入比货店铺数量')
+				// }
+				if (that.xdForm.hbs == '') {
+					return that.$msg.error('请输入商品比较最小时间')
+				}
+				if (that.xdForm.hbs < 5) {
+					return that.$msg.error('商品比较时间最小需大于5秒')
+				}
+				if (that.xdForm.hbe == '') {
+					return that.$msg.error('请输入商品比较最大时间')
+				}
+
+				if (that.xdForm.xl == '') {
+					return that.$msg.error('请输入销量')
+				}
+				if (that.xdForm.minPrice == '') {
+					return that.$msg.error('请选择最低价格')
+				}
+
+				if (that.xdForm.minPrice * 1 < 10) {
+					return that.$msg.error('最低价格不能低于10')
+				}
+				if (that.xdForm.maxPrice == '') {
+					return that.$msg.error('请选择最高价格')
+				}
+
+
+				// if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
+				// 	return that.$msg.error('最高价格需大于最低价格')
+				// }
+
+				if ((that.xdForm.maxPrice * 1 - that.xdForm.minPrice * 1) < 5) {
+					return that.$msg.error('最高价格需大于最低价格5元起')
+				}
+				if (that.xdForm.xtype == '') {
+					return that.$msg.error('请选择下单类型')
+				}
+				if (that.xdForm.consignee_name == '') {
+					return that.$msg.error('请输入收货人')
+				}
+				if (that.xdForm.phone == '') {
+					return that.$msg.error('请输入手机号码')
+				}
+				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+					return that.$msg.error('请输入正确的手机号码')
+				}
+				if (that.area == '') {
+					return that.$msg.error('请选择省市区')
+				}
+				that.xdForm.area = that.area.join(',')
+				console.log(that.xdForm.area, 'that.xdForm.area');
+				if (that.xdForm.address == '') {
+					return that.$msg.error('请输入收货地址')
+				}
+				if (that.xdForm.zip == '') {
+					return that.$msg.error('请输入邮编')
+				}
+				that.loading = true
+				createOrder({
+					min_price: that.xdForm.minPrice,
+					max_price: that.xdForm.maxPrice,
+					address: that.xdForm.address,
+					phone: that.xdForm.phone,
+					token: that.token.token,
+					consignee_name: that.xdForm.consignee_name,
+					area: that.xdForm.area,
+					zip: that.xdForm.zip,
+				}).then(res => {
+					--that.dqxdsy
+					//更新token
+					that.token.count++
+					if (that.token.count == 2) {
+						that.token.bl = true
+					}
+
+					// 加载tip
+					that.orderInfo = res.data
+					that.pd(that.pdarr, 0)
+
+				}).catch(err => {
+					console.log(err);
+					that.loading = false
+					that.auto_order = false
+					that.dqxdsy = 0
+
+				})
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+					let arr = [],
+						arr2 = []
+					res.data.price_min.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr.push(a)
+					})
+					res.data.price_max.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr2.push(a)
+					})
+					this.minPriceList = arr
+					this.maxPriceList = arr2
+				})
+			},
+			showTime,
+			sjPhone() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.phone = sj(this.baseInfo.sys_phone)
+			},
+			sjName() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.consignee_name = sj(this.baseInfo.sys_name)
+			},
+			sjAddress() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.address = sj(this.baseInfo.system_address)
+			},
+			closeXd() {
+				this.xiadanDia = false
+				this.xdForm.phone = ''
+				this.xdForm.address = ''
+			},
+			onSuccess() {
+				console.log('success');
+				this.token = this.ybToken
+				this.tipList = []
+				this.dialogTableVisible = false
+			},
+			onFail() {
+				console.log('fail');
+			},
+			onRefresh() {
+				console.log('refresh');
+			},
+			getTokenList() {
+				getTokenList().then(res => {
+					this.tokenList = res.data.map(item => {
+						item.count = item.count * 1
+						return item
+					})
+					// 获取第一次选择的token
+					this.chooseNext()
+					console.log(this.token, 'this.token');
+				})
+			},
+			chooseToken(item) {
+				// console.log(item,'ddddd');
+				if (this.loading) {
+					return this.$msg.error('正在下单中,请等待下单完成')
+				}
+				if (item.id == this.token.id) {
+					return
+				}
+				if (item.bl) {
+					return this.$msg.error('该TOKEN,当天使用次数已满!')
+				}
+
+				this.ybToken = item
+				getSpace().then(res => {
+					console.log(res);
+					this.hdcount = res.data.count
+					this.jyimg = res.data.url1
+					this.unique_code = res.data.unique_code
+					this.dialogTableVisible = true
+				})
+				// this.dialogTableVisible = true
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getRechangeList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style lang="scss" scoped>
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+
+	.left-t {
+		// display: flex;
+		// justify-content: center;
+		font-weight: bold;
+		// height: 50px;
+		width: 180px; //定宽 
+		overflow: hidden; //超出的文本隐藏
+		text-overflow: ellipsis; //溢出用省略号显示
+		white-space: nowrap; // 默认不换行;
+	}
+
+	.token-in {
+		display: inline-block;
+		padding: 5px 5px 5px 0;
+		color: #000;
+		// background-color: #314659;
+		margin: 0 10px;
+		border-radius: 50%;
+	}
+
+	.used {
+		color: #a6a9ad;
+	}
+
+	.checked {
+		color: #67c23a !important;
+	}
+
+	.center-wrap {
+		font-size: 14px;
+		// width: 33%;
+		width: 400px;
+		height: 720px;
+		// flex-shrink: 0;
+		// margin-left: 40px;
+		background-color: #fff;
+		// margin: 0 25px;
+		padding: 20px;
+
+		.tit {
+			font-size: 16px;
+			font-weight: bold;
+			border-bottom: 2px solid #eaedf2;
+			margin: 10px 0;
+			padding: 10px 0;
+		}
+
+		div {
+			padding: 5px 0;
+
+			/deep/ .el-input__inner {
+				height: 30px;
+			}
+		}
+
+		.jige {
+			width: 50px;
+		}
+
+		.chang {
+			width: 100px;
+		}
+	}
+
+	.wrap {
+		overflow: hidden;
+		display: flex;
+		width: 100%;
+		height: 700px;
+		min-height: 100%;
+
+		.left-wrap {
+			width: 20%;
+			background-color: #fff;
+			color: rgb(15, 131, 254);
+
+			.left-tit {
+				text-align: center;
+				padding: 20px;
+				font-size: 18px;
+				font-weight: bold;
+			}
+		}
+
+
+
+		.right-wrap {
+			flex-grow: 1;
+			display: flex;
+			flex-direction: column;
+			padding-left: 40px;
+
+			// width: 100%;
+			// background-color: gray;
+			.right-top {
+				width: 100%;
+				flex-shrink: 0;
+				// height: 30%;
+				// background-color: red;
+
+			}
+
+			.right-btm {
+				// flex-grow: 1;
+				height: 288px;
+				padding-top: 20px;
+
+
+			}
+		}
+	}
+
+	.tip-list {
+		flex-direction: column;
+		justify-content: flex-start;
+
+		.tip {
+			width: 80%;
+			// height: 40px;
+			border-radius: 10px;
+			// background-color: #67c23a;
+			// text-align: center;
+			margin: 5px 0;
+			// line-height: 40px;
+			color: #000;
+			padding-bottom: 10px;
+		}
+	}
+
+	.shdz {
+		/deep/ .el-dialog {
+			width: 520px;
+		}
+	}
+
+	.rjjy {
+
+		// width: 600px;
+		/deep/ .el-dialog {
+			width: 400px;
+		}
+
+		.jy-wrap {
+			width: 262px;
+			height: 175px;
+			margin: auto;
+			position: relative;
+
+			.jy-img {
+				position: relative;
+			}
+
+			.jy-hd {
+				position: absolute;
+				background-color: red;
+				border-radius: 50%;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				color: #fff;
+				font-size: 14px;
+			}
+
+			.suaxin {
+				background-color: rgba(0, 0, 0, 0.6);
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				width: 30px;
+				height: 30px;
+				position: absolute;
+				right: 10px;
+				bottom: 35px;
+				border-radius: 50%;
+
+				img {
+					width: 18px;
+					height: 18px;
+				}
+			}
+		}
+	}
+
+	.mask {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+
+		.mask-loading {
+			font-size: 100px;
+			color: #409eff;
+		}
+	}
+
+	.order-wrapper {
+		justify-content: space-between;
+	}
+
+	.l-wrap {
+		width: 200px;
+		height: 720px;
+		background-color: #fff;
+		position: relative;
+
+		.dr-wrap {
+			width: 140px;
+			height: 125px;
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			border: 1px #999 dashed;
+			border-radius: 5px;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			font-size: 12px;
+
+			.dr-icon {
+				font-size: 32px;
+				color: #007aff;
+			}
+
+			.dr-tit {
+				margin-top: 20px;
+			}
+
+			// .dr-int {
+			// 	width: 140px;
+			// 	height: 125px;
+			// }
+		}
+	}
+
+	.dr-int {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		outline: medium none;
+		cursor: pointer;
+		-moz-opacity: 0;
+		opacity: 0;
+		filter: alpha(opacity=0);
+	}
+
+	.redr {
+		position: relative;
+	}
+
+	.empty-token {
+		width: 1040px;
+		position: relative;
+
+		.empty-left {
+			height: 200px;
+			position: absolute;
+			top: 0;
+			bottom: 0;
+			margin: auto;
+		}
+
+		.empty {
+			width: 100%;
+			height: 100%;
+		}
+	}
+</style>

+ 11 - 0
src/views/home/addressList.vue

@@ -0,0 +1,11 @@
+<template>
+	<div>
+		address
+	</div>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 11 - 0
src/views/home/buyReg.vue

@@ -0,0 +1,11 @@
+<template>
+	<div>
+		buyreg
+	</div>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 422 - 0
src/views/home/dlstatistics.vue

@@ -0,0 +1,422 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<div class="tj flex">
+				<div class="tj-item">
+					<div class="tit">代理订单</div>
+					<div class="val">{{tj.agent_order||0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">异常代理订单</div>
+					<div class="val">{{tj.agent_order_error|| 0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">未使用注册码</div>
+					<div class="val">{{tj.code_0|| 0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">已使用注册码</div>
+					<div class="val">{{tj.code_1||0}}</div>
+				</div>
+			</div>
+
+		</el-card>
+
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+
+	import {
+		createCode,
+		getUserList,
+		getIndex,
+		dataCount
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTokenList,
+		createOrder,
+		getUserInfo,
+		payAuto,
+
+	} from '@/request/user.js'
+	import {
+		showTime,
+		sj
+	} from '@/assets/js/tools.js'
+	import {
+		imgs
+	} from '@/assets/js/admun.js'
+	import {
+		set
+	} from 'core-js/library/core/dict';
+	export default {
+		components: {
+			// SlideVerify
+		},
+		name: 'Order',
+		data() {
+			return {
+				showStop: false,
+				dialogVisible: false,
+				xdForm: {
+					phone: '',
+					address: '',
+					minPrice: '',
+					maxPrice: ''
+				},
+				imgs: imgs,
+				msg: '888',
+				loading: false,
+				formLabelWidth: '100px',
+				form: {
+					recharge_num: '',
+					image: ''
+				},
+				dialogTableVisible: false,
+				xiadanDia: false, //下单弹窗
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+				tokenList: [],
+				token: {},
+				ybToken: {},
+				minPriceList: [],
+				maxPriceList: [],
+				tipList: [],
+				auto_order: false, //是否启动自动下单
+				tj: {}
+			}
+		},
+		computed: {
+			...mapState(['baseInfo', 'userInfo'])
+		},
+		created() {
+			// this.getUserInfo()
+			// this.getIndex()
+			// this.getList()
+			// this.getTokenList()
+			this.dataCount()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+			// console.log(this.imgs, 'imgs');
+		},
+		methods: {
+			...mapMutations(['setBaseInfo', 'setUserInfo', 'jUserMoney']),
+			dataCount() {
+				dataCount().then(res => {
+					console.log(res);
+					this.tj = res.data
+				})
+			},
+			stopAuto() {
+				this.auto_order = false
+				this.showStop = false
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			pd(arr, i = 0) {
+				let that = this
+				let len = arr.length - 1
+				if (i <= len) {
+					if (i == 0) {
+						that.tipList.unshift(arr[i])
+						that.pd(arr, ++i)
+					} else {
+						setTimeout(() => {
+							that.tipList.unshift(arr[i])
+							if (arr[i].title.indexOf('支付金额:') != -1) {
+								// let price = zfInfo.title.replace(/支付金额:/,'')*1
+								that.jUserMoney(-1 * arr[i].title.replace(/支付金额:/, ''))
+							}
+							that.pd(arr, ++i)
+						}, arr[i - 1].time * 1000)
+					}
+				} else {
+					that.xdForm.phone = ''
+					that.xdForm.address = ''
+					that.loading = false
+					if (that.auto_order) {
+						that.chooseNext()
+					} else {
+						that.xdForm.minPrice = ''
+						that.xdForm.maxPrice = ''
+					}
+				}
+			},
+			ktAuto() {
+				let that = this
+				if (that.userInfo.money * 1 < that.baseInfo.auto_order * 1) {
+					return that.$msg.error('您当前余额不足')
+				}
+				payAuto().then(res => {
+					that.getUserInfo()
+					that.dialogVisible = false
+					that.auto_order = true
+					that.chooseNext()
+					//自动下单启动
+				})
+			},
+			openZd() {
+				let that = this
+				if (that.loading) {
+					return that.$msg.error('当前处于下单状态,请等待下单完成')
+				}
+				if (that.userInfo.auto_order == 0) {
+					that.dialogVisible = true
+				} else {
+					//自动下单启动
+					if (that.xdForm.minPrice == '') {
+						return that.$msg.error('请选择最低价格')
+					}
+					if (that.xdForm.maxPrice == '') {
+						return that.$msg.error('请选择最高价格')
+					}
+					that.auto_order = true
+					that.chooseNext()
+
+
+				}
+			},
+			//选择下一个可用token
+			chooseNext() {
+				let that = this
+				that.token = that.tokenList.find(item => item.bl == false)
+				if (that.auto_order) {
+					if (that.token) {
+						if (that.xdForm.minPrice == '') {
+							return that.$msg.error('请选择最低价格')
+						}
+						if (that.xdForm.maxPrice == '') {
+							return that.$msg.error('请选择最高价格')
+						}
+						that.sjAddress()
+						that.sjPhone()
+						// that.$msg.success('开启自动下单,请勿进行操作')
+						// 启动
+						that.createOrder()
+					} else {
+						//停止
+						that.auto_order = false
+					}
+
+				}
+			},
+			createOrder() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (that.token.bl) {
+					if (that.auto_order) {
+
+					} else {
+						return this.$msg.error('该TOKEN,当天使用次数已满!')
+					}
+				}
+				if (that.xdForm.minPrice == '') {
+					return that.$msg.error('请选择最低价格')
+				}
+				if (that.xdForm.maxPrice == '') {
+					return that.$msg.error('请选择最高价格')
+				}
+				if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
+					return that.$msg.error('最高价格需大于最低价格')
+				}
+				if (that.xdForm.phone == '') {
+					return that.$msg.error('请输入手机号码')
+				}
+				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+					return that.$msg.error('请输入正确的手机号码')
+				}
+				if (that.xdForm.address == '') {
+					return that.$msg.error('请输入收货地址')
+				}
+				that.loading = true
+				createOrder({
+					min_price: that.xdForm.minPrice,
+					max_price: that.xdForm.maxPrice,
+					address: that.xdForm.address,
+					phone: that.xdForm.phone,
+					token: that.token.token
+				}).then(res => {
+
+					//更新token
+					that.token.count++
+					if (that.token.count == 2) {
+						that.token.bl = true
+					}
+					// 加载tip
+
+					that.pd(res.data, 0)
+
+				}).catch(err => {
+					console.log(err);
+					that.loading = false
+				})
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+					let arr = [],
+						arr2 = []
+					res.data.price_min.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr.push(a)
+					})
+					res.data.price_max.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr2.push(a)
+					})
+					this.minPriceList = arr
+					this.maxPriceList = arr2
+				})
+			},
+			showTime,
+			sjPhone() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.phone = sj(this.baseInfo.sys_phone)
+			},
+			sjAddress() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.address = sj(this.baseInfo.system_address)
+			},
+			closeXd() {
+				this.xiadanDia = false
+				this.xdForm.phone = ''
+				this.xdForm.address = ''
+			},
+			onSuccess() {
+				console.log('success');
+				this.token = this.ybToken
+				this.xdForm.minPrice = ''
+				this.xdForm.maxPrice = ''
+				this.dialogTableVisible = false
+			},
+			onFail() {
+				console.log('fail');
+			},
+			onRefresh() {
+				console.log('refresh');
+			},
+			getTokenList() {
+				getTokenList().then(res => {
+					this.tokenList = res.data.map(item => {
+						item.count = item.count * 1
+						return item
+					})
+					// 获取第一次选择的token
+					this.chooseNext()
+					console.log(this.token, 'this.token');
+				})
+			},
+			chooseToken(item) {
+				// console.log(item,'ddddd');
+				if (this.loading) {
+					return
+				}
+				if (item.bl) {
+					return this.$msg.error('该TOKEN,当天使用次数已满!')
+				}
+				this.ybToken = item
+				this.dialogTableVisible = true
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getRechangeList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style lang="scss" scoped>
+	.tj {
+		width: 500px;
+		flex-wrap: wrap;
+
+		.tj-item {
+			width: 120px;
+			height: 120px;
+			border-radius: 20px;
+			box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.4);
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			margin: 20px;
+
+			.val {
+				margin-top: 20px;
+				color: rgb(15, 131, 254);
+			}
+		}
+	}
+</style>

+ 11 - 0
src/views/home/rechange.vue

@@ -0,0 +1,11 @@
+<template>
+	<div>
+		rechange
+	</div>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 8 - 0
src/views/home/setAgent.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 121 - 0
src/views/home/setGa.vue

@@ -0,0 +1,121 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<div class="wrap">
+				<el-form :model="form" style="width: 500px;">
+					
+					<el-form-item label="绑定二维码" :label-width="formLabelWidth">
+						<!-- <canvas id="canvas"></canvas> -->
+						<img  :src="images" alt="">
+					</el-form-item>
+					<el-form-item label="密钥" :label-width="formLabelWidth">
+						<el-input v-model="form.secret" type="text" 
+							placeholder="" width="300px"></el-input>
+					</el-form-item>
+					<el-form-item label="绑定口令" :label-width="formLabelWidth">
+						<el-input v-model="form.code" type="text" 
+							placeholder="请输入绑定口令" width="300px"></el-input>
+					</el-form-item>
+				</el-form>
+				<div class="dialog-footer">
+					<el-button type="primary" @click="checkCode">确 定</el-button>
+				</div>
+			</div>
+
+
+		</el-card>
+	</div>
+</template>
+
+<script>
+	import {
+		setTransaction
+	} from '@/request/agent.js'
+	//getga
+	import {
+		getga,
+		checkCode
+	} from '@/request/user.js'
+	export default {
+		name: 'setGa',
+		data() {
+			return {
+				images: '',
+				formLabelWidth: '120px',
+				form: {
+					newpassword: '',
+					oldpassword: '',
+					secret: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				loading: false,
+			}
+		},
+		created() {},
+		mounted() {
+			
+			this.getga()
+		},
+		methods: {
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			getga() {
+				getga().then(res => {
+					console.log(res);
+					this.form.secret = res.data.secret
+					// this.useqrcode(res.data.qrCodeUrl)
+					this.images = res.data.qrCodeUrl
+				})
+			},
+			checkCode() {
+				if(this.loading) {
+					return
+				}
+				this.loading = true
+				checkCode({
+					code: this.form.code
+				}).then(res => {
+					this.loading = false
+					this.$msg.success('绑定成功')
+				}).then(err => {
+					this.loading = false
+				})
+			},
+			useqrcode(tit) {
+				var canvas = document.getElementById("canvas");
+				this.$QRCode.toCanvas(canvas, tit, function(error) {
+					if (error) {
+						console.error(error);
+					} else {
+						console.log("success!");
+					}
+				})
+			},
+			
+		},
+
+	}
+</script>
+
+<style scoped>
+	.dialog-footer {
+		display: flex;
+		justify-content: flex-end;
+		width: 500px;
+	}
+
+	/deep/ .el-card__body {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+</style>

+ 99 - 0
src/views/home/setPas.vue

@@ -0,0 +1,99 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card >
+			<div class="wrap">
+				<el-form :model="form" style="width: 500px;">
+					<el-form-item label="新交易密码" :label-width="formLabelWidth">
+						<el-input v-model="form.newpassword" type="password"  maxlength="30" minlength="6" placeholder="请输入新交易密码(6~30位任意字符)" width="300px"></el-input>
+					</el-form-item>
+					<el-form-item label="旧交易密码" :label-width="formLabelWidth">
+						<el-input v-model="form.oldpassword" type="password" maxlength="30" minlength="6" placeholder="请输入旧交易密码(如无则不需要填写)"></el-input>
+					</el-form-item>
+				</el-form>
+				<div class="dialog-footer">
+				    <el-button @click="dialogTableVisible = false">取 消</el-button>
+				    <el-button type="primary" @click="goBuy">确 定</el-button>
+				  </div>
+			</div>
+			
+			
+		</el-card>
+	</div>
+</template>
+
+<script>
+	import { setTransaction } from '@/request/agent.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				formLabelWidth: '120px',
+				form: {
+					newpassword: '',
+					oldpassword: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				loading: false,
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if(!that.form.newpassword) {
+					return that.$msg.error('请输入新交易密码')
+				}
+				// if(!that.transaction) {
+				// 	return that.$msg.error('请输入交易密码')
+				// }
+				setTransaction(that.form).then(res => {
+					console.log(res);
+					return that.$msg.success('交易密码设置成功')
+				})
+			},
+			getList() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				that.loading = true
+
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped>
+	.dialog-footer {
+		display: flex;
+		justify-content: flex-end;
+		width: 500px;
+	}
+	/deep/ .el-card__body {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+</style>

+ 429 - 0
src/views/home/statistics.vue

@@ -0,0 +1,429 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+			<div class="tj flex">
+				<div class="tj-item">
+					<div class="tit">代理订单</div>
+					<div class="val">{{tj.agent_order||0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">异常代理订单</div>
+					<div class="val">{{tj.agent_order_error|| 0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">未使用注册码</div>
+					<div class="val">{{tj.code_0|| 0}}</div>
+				</div>
+				<div class="tj-item">
+					<div class="tit">已使用注册码</div>
+					<div class="val">{{tj.code_1||0}}</div>
+				</div>
+			</div>
+
+
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+
+	import {
+		createCode,
+		getUserList,
+		getIndex,
+		dataCount
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTokenList,
+		createOrder,
+		getUserInfo,
+		payAuto,
+
+	} from '@/request/user.js'
+	import {
+		showTime,
+		sj
+	} from '@/assets/js/tools.js'
+	import {
+		imgs
+	} from '@/assets/js/admun.js'
+	import {
+		set
+	} from 'core-js/library/core/dict';
+	export default {
+		components: {
+			// SlideVerify
+		},
+		name: 'Order',
+		data() {
+			return {
+				showStop: false,
+				dialogVisible: false,
+				xdForm: {
+					phone: '',
+					address: '',
+					minPrice: '',
+					maxPrice: ''
+				},
+				imgs: imgs,
+				msg: '888',
+				loading: false,
+				formLabelWidth: '100px',
+				form: {
+					recharge_num: '',
+					image: ''
+				},
+				dialogTableVisible: false,
+				xiadanDia: false, //下单弹窗
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+				tokenList: [],
+				token: {},
+				ybToken: {},
+				minPriceList: [],
+				maxPriceList: [],
+				tipList: [],
+				auto_order: false, //是否启动自动下单
+				tj: {}
+			}
+		},
+		computed: {
+			...mapState(['baseInfo', 'userInfo'])
+		},
+		created() {
+			// this.getUserInfo()
+			// this.getIndex()
+			// this.getList()
+			// this.getTokenList()
+			this.dataCount()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+			// console.log(this.imgs, 'imgs');
+		},
+		methods: {
+			...mapMutations(['setBaseInfo', 'setUserInfo', 'jUserMoney']),
+			dataCount() {
+				dataCount().then(res => {
+					console.log(res);
+					this.tj = res.data
+				})
+			},
+			stopAuto() {
+				this.auto_order = false
+				this.showStop = false
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			pd(arr, i = 0) {
+				let that = this
+				let len = arr.length - 1
+				if (i <= len) {
+					if (i == 0) {
+						that.tipList.unshift(arr[i])
+						that.pd(arr, ++i)
+					} else {
+						setTimeout(() => {
+							that.tipList.unshift(arr[i])
+							if (arr[i].title.indexOf('支付金额:') != -1) {
+								// let price = zfInfo.title.replace(/支付金额:/,'')*1
+								that.jUserMoney(-1 * arr[i].title.replace(/支付金额:/, ''))
+							}
+							that.pd(arr, ++i)
+						}, arr[i - 1].time * 1000)
+					}
+				} else {
+					that.xdForm.phone = ''
+					that.xdForm.address = ''
+					that.loading = false
+					if (that.auto_order) {
+						that.chooseNext()
+					} else {
+						that.xdForm.minPrice = ''
+						that.xdForm.maxPrice = ''
+					}
+				}
+			},
+			ktAuto() {
+				let that = this
+				if (that.userInfo.money * 1 < that.baseInfo.auto_order * 1) {
+					return that.$msg.error('您当前余额不足')
+				}
+				payAuto().then(res => {
+					that.getUserInfo()
+					that.dialogVisible = false
+					that.auto_order = true
+					that.chooseNext()
+					//自动下单启动
+				})
+			},
+			openZd() {
+				let that = this
+				if (that.loading) {
+					return that.$msg.error('当前处于下单状态,请等待下单完成')
+				}
+				if (that.userInfo.auto_order == 0) {
+					that.dialogVisible = true
+				} else {
+					//自动下单启动
+					if (that.xdForm.minPrice == '') {
+						return that.$msg.error('请选择最低价格')
+					}
+					if (that.xdForm.maxPrice == '') {
+						return that.$msg.error('请选择最高价格')
+					}
+					that.auto_order = true
+					that.chooseNext()
+
+
+				}
+			},
+			//选择下一个可用token
+			chooseNext() {
+				let that = this
+				that.token = that.tokenList.find(item => item.bl == false)
+				if (that.auto_order) {
+					if (that.token) {
+						if (that.xdForm.minPrice == '') {
+							return that.$msg.error('请选择最低价格')
+						}
+						if (that.xdForm.maxPrice == '') {
+							return that.$msg.error('请选择最高价格')
+						}
+						that.sjAddress()
+						that.sjPhone()
+						// that.$msg.success('开启自动下单,请勿进行操作')
+						// 启动
+						that.createOrder()
+					} else {
+						//停止
+						that.auto_order = false
+					}
+
+				}
+			},
+			createOrder() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (that.token.bl) {
+					if (that.auto_order) {
+
+					} else {
+						return this.$msg.error('该TOKEN,当天使用次数已满!')
+					}
+				}
+				if (that.xdForm.minPrice == '') {
+					return that.$msg.error('请选择最低价格')
+				}
+				if (that.xdForm.maxPrice == '') {
+					return that.$msg.error('请选择最高价格')
+				}
+				if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
+					return that.$msg.error('最高价格需大于最低价格')
+				}
+				if (that.xdForm.phone == '') {
+					return that.$msg.error('请输入手机号码')
+				}
+				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
+					return that.$msg.error('请输入正确的手机号码')
+				}
+				if (that.xdForm.address == '') {
+					return that.$msg.error('请输入收货地址')
+				}
+				that.loading = true
+				createOrder({
+					min_price: that.xdForm.minPrice,
+					max_price: that.xdForm.maxPrice,
+					address: that.xdForm.address,
+					phone: that.xdForm.phone,
+					token: that.token.token
+				}).then(res => {
+
+					//更新token
+					that.token.count++
+					if (that.token.count == 2) {
+						that.token.bl = true
+					}
+					// 加载tip
+
+					that.pd(res.data, 0)
+
+				}).catch(err => {
+					console.log(err);
+					that.loading = false
+				})
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+					let arr = [],
+						arr2 = []
+					res.data.price_min.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr.push(a)
+					})
+					res.data.price_max.forEach(item => {
+						let a = {
+							value: item * 1,
+							label: item
+						}
+						arr2.push(a)
+					})
+					this.minPriceList = arr
+					this.maxPriceList = arr2
+				})
+			},
+			showTime,
+			sjPhone() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.phone = sj(this.baseInfo.sys_phone)
+			},
+			sjAddress() {
+				if (this.loading) {
+					return
+				}
+				this.xdForm.address = sj(this.baseInfo.system_address)
+			},
+			closeXd() {
+				this.xiadanDia = false
+				this.xdForm.phone = ''
+				this.xdForm.address = ''
+			},
+			onSuccess() {
+				console.log('success');
+				this.token = this.ybToken
+				this.xdForm.minPrice = ''
+				this.xdForm.maxPrice = ''
+				this.dialogTableVisible = false
+			},
+			onFail() {
+				console.log('fail');
+			},
+			onRefresh() {
+				console.log('refresh');
+			},
+			getTokenList() {
+				getTokenList().then(res => {
+					this.tokenList = res.data.map(item => {
+						item.count = item.count * 1
+						return item
+					})
+					// 获取第一次选择的token
+					this.chooseNext()
+					console.log(this.token, 'this.token');
+				})
+			},
+			chooseToken(item) {
+				// console.log(item,'ddddd');
+				if (this.loading) {
+					return
+				}
+				if (item.bl) {
+					return this.$msg.error('该TOKEN,当天使用次数已满!')
+				}
+				this.ybToken = item
+				this.dialogTableVisible = true
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getRechangeList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style lang="scss" scoped>
+	.order-wrapper {
+		width: 1425px;
+		max-width: 1425px;
+		height: 710px;
+		background-color: #fff;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+	.tj {
+		width: 400px;
+		flex-wrap: wrap;
+
+		.tj-item {
+			width: 120px;
+			height: 120px;
+			border-radius: 20px;
+			box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.4);
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			margin: 20px;
+
+			.val {
+				margin-top: 20px;
+				color: rgb(15, 131, 254);
+			}
+		}
+	}
+</style>

+ 343 - 0
src/views/home/taking.vue

@@ -0,0 +1,343 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+					<el-button type="primary" @click="openBuy">提现</el-button>
+					<el-button type="primary" icon="el-icon-refresh-right" @click="reload">刷新</el-button>
+				</div>
+				<div style="margin-bottom: 20px;">
+					<el-select v-model="value" placeholder="请选择支付方式" @change="optChange">
+						<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" >
+						</el-option>
+					</el-select>
+				</div>
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="type" label="提现方式" width="150">
+					<template slot-scope="scope">
+						<el-tag v-if="scope.row.type == 0" type="warning">银行卡</el-tag>
+						<el-tag v-if="scope.row.type == 1" type="success">微信</el-tag>
+						<el-tag v-if="scope.row.type == 2" >支付宝</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column prop="withdraw_num" label="提现金额(元)" width="150"></el-table-column>
+				<el-table-column prop="card_no" label="银行卡" width="250"></el-table-column>
+				<el-table-column prop="card_name" label="开户行" width="250"></el-table-column>
+				<el-table-column prop="image" label="收款码" width="150">
+					<template slot-scope="scope">
+						<el-image style="width: 100px; height:100px" :src="scope.row.qrimage" v-if="scope.row.qrimage"></el-image>
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="审核结果" width="150">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 1">已通过</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 0">待审核</el-tag>
+						<el-tag type="danger" v-if="scope.row.status == 2">未通过</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="创建时间" width="200">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="提现" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<!-- <el-form-item label="提现方式" :label-width="formLabelWidth">
+					<el-select v-model="form.type" placeholder="请选择支付方式" @change="optChanget">
+						<el-option v-for="item in takType" :key="item.value" :label="item.label" :value="item.value" >
+						</el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="姓名" :label-width="formLabelWidth">
+					<el-input v-model="form.name" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="提现金额" :label-width="formLabelWidth">
+					<el-input v-model="form.withdraw_num" type="number"></el-input>
+				</el-form-item>
+				<template v-if="form.type == 0">
+					<el-form-item label="银行卡号" :label-width="formLabelWidth">
+						<el-input v-model="form.card_no" type="text"></el-input>
+					</el-form-item>
+					<el-form-item label="开户行" :label-width="formLabelWidth">
+						<el-input v-model="form.card_name" type="text"></el-input>
+					</el-form-item>
+				</template>
+				<el-form-item label="收款码" :label-width="formLabelWidth" v-else>
+					<el-upload class="avatar-uploader" action="http://www.pingguozhushou.shop/api/common/upload"
+						:show-file-list="false" :headers="headers" :on-success="handleAvatarSuccess"
+						:before-upload="beforeAvatarUpload">
+						<img v-if="form.qrimage" :src="form.qrimage" class="avatar">
+						<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+					</el-upload>
+				</el-form-item> -->
+				<el-form-item label="提现地址" :label-width="formLabelWidth">
+					<el-input v-model="form.address" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="提现金额" :label-width="formLabelWidth">
+					<el-input v-model="form.withdraw_num" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				到账: {{((form.withdraw_num*1 || 0)/(baseInfo.to_rmb*1)).toFixed(2)}}U
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+			mapState,
+			mapMutations
+		} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		getUserList,
+		getIndex
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTransferList,
+		transfer,
+		withdrawalList,
+		getUserInfo,
+		withdrawal
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					withdraw_num: '',
+					address: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					type: -1, //-1->全部 0->银行卡 1->微信 2->支付宝 
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+				takType: [{
+					value: 0,
+					label: '银行卡'
+				}, {
+					value: 1,
+					label: '微信'
+				}, {
+					value: 2,
+					label: '支付宝'
+				}],
+				takValue: 0,
+				options: [{
+					value: -1,
+					label: '全部'
+				}, {
+					value: 0,
+					label: '银行卡'
+				}, {
+					value: 1,
+					label: '微信'
+				}, {
+					value: 2,
+					label: '支付宝'
+				}],
+				value: -1,
+			}
+		},
+		computed: {
+			...mapState(['userInfo','baseInfo'])
+		},
+		created() {
+			this.getIndex()
+			this.getList()
+			this.getUserInfo()
+			
+			this.headers['token'] = window.sessionStorage.getItem('token')
+		},
+		mounted() {
+			console.log(this.userInfo.address);
+			if(this.userInfo.address) {
+				this.form.address = this.userInfo.address
+			}
+		},
+		methods: {
+			...mapMutations(['setUserInfo','setBaseInfo']),
+			showTime,
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+				})
+			},
+			reload() {
+				this.getList('reload')
+				this.getUserInfo()
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			optChange(data) {
+				console.log(data);
+				this.getList('reload')
+			},
+			optChanget(data) {
+				that.form.type = data
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.qrimage = res.data.fullurl;
+				console.log(this.form.image, 'this.form.avatar');
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				// if(that.form.name == '') {
+				// 	return that.$msg.error('请输入姓名')
+				// }
+				if(!that.form.withdraw_num) {
+					return that.$msg.error('请输入提现金额')
+				}
+				if(that.form.address == '') {
+					return that.$msg.error('请输入提现地址')
+				}
+				if(that.userInfo.money*1 < that.form.withdraw_num*1) {
+					return that.$msg.error('您当前账号的余额不足')
+				}
+				// if(that.form.type == 0) {
+				// 	if(that.form.card_name == '') {
+				// 		return that.$msg.error('请输入开户行')
+				// 	}
+				// 	if(that.form.card_no == '') {
+				// 		return that.$msg.error('请输入银行卡号')
+				// 	}
+				// }else {
+				// 	if(that.form.qrimage == '') {
+				// 		return that.$msg.error('请上传收款码')
+				// 	}
+				// }
+				that.loading = true
+				withdrawal(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('提交成功,请等待审核')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+					this.getUserInfo()
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.queryInfo.type = that.value
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+				that.dataloading = true
+				withdrawalList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 206 - 0
src/views/home/tokenList.vue

@@ -0,0 +1,206 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-row>
+				<el-col>
+					<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+						<el-button type="primary" @click="openBuy">购买Token</el-button>
+						<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')">刷新</el-button>
+					</div>
+
+				</el-col>
+
+
+				<!-- <el-col :span="8">
+					<el-input placeholder="请输入内容" v-model="queryInfo.query" class="input-with-select">
+						<el-button slot="append" icon="el-icon-search" @click="getList()"></el-button>
+					</el-input>
+				</el-col> -->
+			</el-row>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="token" label="Token" width="350">
+				</el-table-column>
+				<!-- 				<el-table-column prop="status" label="是否已使用">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="createtime" label="创建时间">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+				<el-table-column prop="endtime_text" label="有效期" width="200"></el-table-column>
+			</el-table>
+			<!-- 分页区域 -->
+			<!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes, prev, pager, next, jumper" :total="total">
+			</el-pagination> -->
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买Token" :visible.sync="dialogTableVisible" @close="closeEvent">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+				
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="form.code" type="text"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				合计: {{hj}}元
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		createToken,
+		getTokenList,
+		getIndex,
+		getUserInfo
+	} from '@/request/agent.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: '',
+					code: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'baseInfo']),
+			hj() {
+				return this.baseInfo.token_price * 1 * this.form.num
+				// return 0
+			}
+		},
+		created() {
+			this.getIndex()
+			this.getUserInfo()
+			this.getList()
+		},
+		methods: {
+			...mapMutations(['setUserInfo', 'setBaseInfo']),
+			showTime,
+			closeEvent() {
+				console.log('guanbi');
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+				})
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				if (this.hj > this.userInfo.money) {
+					return that.$msg.error('您的账号余额不足')
+				}
+				that.loading = true
+				createToken(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getTokenList(that.queryInfo).then(res => {
+					// that.total = res.data.count
+					that.list = res.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 8 - 0
src/views/home/transfer.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 190 - 0
src/views/order/dlOrderList.vue

@@ -0,0 +1,190 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<div style="padding: 20px;background-color: #fff;">
+			<!-- 搜索区域 -->
+			<el-row>
+				<el-col>
+					<div class="flex" style="justify-content: flex-end;padding-bottom: 20px;">
+						<!-- <el-button type="primary" @click="openBuy">购买Token</el-button> -->
+						<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')">刷新</el-button>
+					</div>
+
+				</el-col>
+
+
+				<!-- <el-col :span="8">
+					<el-input placeholder="请输入内容" v-model="queryInfo.query" class="input-with-select">
+						<el-button slot="append" icon="el-icon-search" @click="getList()"></el-button>
+					</el-input>
+				</el-col> -->
+			</el-row>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620"  @selection-change="handleSelectionChange">
+				    <el-table-column
+				      type="selection"
+				      width="55">
+				    </el-table-column>
+				<el-table-column prop="id" label="id" width="80">
+				</el-table-column>
+				<el-table-column prop="order_id" label="订单编号" width="200">
+				</el-table-column>
+				<el-table-column prop="sys_address" label="是否系统默认" width="170">
+					<template slot-scope="scope">
+						<span :style="{'color': (scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '': '#67c23a'}">{{(scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '是': '否'}}</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="consignee_phone" label="收货手机号" width="200">
+				</el-table-column>
+				<el-table-column prop="consignee_address" label="收货地址" width="350">
+				</el-table-column>
+				<el-table-column prop="pay_price" label="支付金额(元)" width="150">
+				</el-table-column>
+				
+				<!-- <el-table-column prop="token" label="Token" width="350">
+				</el-table-column> -->
+				<!-- <el-table-column prop="status" label="是否已使用">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="createtime" label="创建时间" width="300">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+<!-- 				<el-table-column
+				      fixed="right"
+				      label="操作"
+				      width="100">
+				      <template slot-scope="scope">
+				        <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
+				        <el-button type="text" size="small">编辑</el-button>
+				      </template>
+				    </el-table-column> -->
+			</el-table>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</div>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买Token" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+		createCode,
+		getCodeList,
+		createToken,
+		getTokenList,
+		getOrderList
+	} from '@/request/agent.js'
+	import { showTime } from '@/assets/js/tools.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+			}
+		},
+		created() {
+			this.getList()
+		},
+		methods: {
+			showTime,
+			handleSelectionChange(val) {
+				console.log(val);
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				that.loading = true
+				createToken(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (that.dataloading) {
+					return
+				}
+				if (type == 'reload') {
+					that.queryInfo = {
+						keyword: '',
+						page: 1,
+						limit: 10
+					}
+				}
+				that.dataloading = true
+				getOrderList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.queryInfo.page = 1
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped>
+</style>

+ 474 - 0
src/views/order/orderList.vue

@@ -0,0 +1,474 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<div class="empty-order" v-if="orderToken.length == 0">
+			<div class="dr-wrap hand">
+				<i class="el-icon-document dr-icon"></i>
+				<div class="dr-tit">点击上传token获取订单</div>
+				<input type="file" ref="fileInput" @change="readTxtFile('fileInput')" class="dr-int" />
+			</div>
+		</div>
+		<el-card v-else>
+			<!-- 搜索区域 -->
+			<el-row>
+				<el-col>
+					<div class="flex" style="justify-content: flex-end;padding-bottom: 20px;">
+						<div class="redr">
+							<el-button>重新导入</el-button>
+							<input type="file" ref="fileInputt" @change="readTxtFile('fileInputt')" class="dr-int" />
+						</div>
+						<el-button type="primary" @click="oneWork(list)" :loading="yjloading">一键处理订单</el-button>
+					</div>
+				</el-col>
+				<!-- <el-col :span="8">
+					<el-input placeholder="请输入内容" v-model="queryInfo.query" class="input-with-select">
+						<el-button slot="append" icon="el-icon-search" @click="getList()"></el-button>
+					</el-input>
+				</el-col> -->
+			</el-row>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<!-- <el-table-column fixed="left" type="selection" width="55">
+				</el-table-column> -->
+				<el-table-column prop="id" label="id" width="80">
+				</el-table-column>
+				<el-table-column prop="order_id" label="订单编号" width="200">
+				</el-table-column>
+				<el-table-column prop="goods_name" label="商品名称" width="200">
+					<template slot-scope="scope">
+						<span>{{scope.row.goods_name.length > 10 ?  (scope.row.goods_name.substr(0, 10) + '...') : scope.row.goods_name}}</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="sys_address" label="是否系统默认" width="170">
+					<template slot-scope="scope">
+						<span
+							:style="{'color': (scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '': '#67c23a'}">{{(scope.row.sys_address == 1 || scope.row.sys_phone == 1 )? '是': '否'}}</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="订单状态" width="170">
+					<template slot-scope="scope">
+						{{scope.row.status| showStatus}}
+					</template>
+				</el-table-column>
+				<el-table-column prop="consignee_name" label="收货人" width="200">
+				</el-table-column>
+				<el-table-column prop="consignee_phone" label="收货手机号" width="200">
+				</el-table-column>
+				<el-table-column prop="consignee_address" label="收货地址" width="350">
+				</el-table-column>
+				<el-table-column prop="pay_price" label="支付金额(元)" width="150">
+				</el-table-column>
+				<el-table-column prop="commission" label="手续费(元)" width="150">
+				</el-table-column>
+				<el-table-column prop="compensation" label="赔付金额(元)" width="150">
+					<template slot-scope="scope">
+						{{scope.row.status == 5 ? scope.row.compensation: ''}}
+					</template>
+				</el-table-column>
+				<!-- <el-table-column prop="token" label="Token" width="350">
+				</el-table-column> -->
+				<!-- <el-table-column prop="status" label="是否已使用">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="createtime" label="创建时间" width="300">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+				<el-table-column fixed="right" label="操作" width="250">
+					<template slot-scope="scope">
+						<div class="flex" style="width: 250px;justify-content: center;align-items: center;flex-direction: column;">
+							<i class="el-icon-loading" style="font-size: 30px;" v-if="scope.row.loading"></i>
+							<div class="flex">
+								<el-button v-if="scope.row.status > 2"
+									@click="getExpressDelivery(scope.row)">查看物流</el-button>
+								<!-- showBtn -->
+								<template v-if="scope.row.status <= 4">
+									<el-button v-if="showBtn(scope.row.refund_time_check) && scope.row.status > 2"
+										@click="handleOrder('您确定立即申请退货?',scope.row)" type="primary">退货</el-button>
+									<el-button v-else
+										type="danger">退货</el-button>
+								</template>
+							</div>
+							
+							
+							<el-tag type="danger" v-if="scope.row.tag" style="margin-top: 10px;">{{scope.row.tag}}</el-tag>	
+								
+						</div>
+						
+					</template>
+				</el-table-column>
+			</el-table>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买Token" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+		<el-dialog
+		  title="物流进度"
+		  :visible.sync="logProgDialogVisible"
+		  width="30%"
+		>
+		  <el-timeline>
+		    <el-timeline-item
+		      v-for="(activity, index) in logProgInfo"
+		      :key="index"
+		      :timestamp="activity.time"
+		    >
+		      {{ activity.context }}
+		    </el-timeline-item>
+		  </el-timeline>
+		</el-dialog>
+		<div class="mb" v-if="yjloading"></div>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		createToken,
+		getTokenList,
+		getExpressDelivery
+	} from '@/request/agent.js'
+	import {
+		getOrderList,
+		batchOrder
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+	import {
+		Switch
+	} from 'element-ui'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				newTime: new Date().getTime(),
+				yjloading:false,
+				logProgInfo: [],
+				logProgDialogVisible: false,
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					token: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				sqtkitem: {},
+			}
+		},
+		created() {
+			// this.getList()
+			
+		},
+		computed: {
+			...mapState(['orderToken'])
+		},
+		mounted() {
+			if(this.orderToken.length == 0) {
+				
+			}else {
+				this.queryInfo.token = this.orderToken.join(',')
+				this.getList()
+			}
+		},
+		filters: {
+			showStatus(val) {
+				let str = ''
+				if (val) {
+					switch (val) {
+						case 0:
+							str = '待支付'
+							break;
+						case 1:
+							str = '待发货'
+							break;
+						case 2:
+							str = '待收货'
+							break;
+						case 3:
+							str = '已收货'
+							break;
+						case 4:
+							str = '退款'
+							break;
+						case 5:
+							str = '赔付'
+							break;
+						case 6:
+							str = '结算'
+							break;
+						case 7:
+							str = '结束'
+							break;
+						default:
+							break;
+					}
+				}
+				return str
+			}
+		},
+		methods: {
+			...mapMutations(['setOrderToken']),
+			showTime,
+			showBtn(time) {
+				return this.newTime >= time*1000
+			},
+			//加载token文件
+			readTxtFile(refs) {
+				let that = this
+				const input = this.$refs[refs]
+				const file = input.files[0]
+			
+				const reader = new FileReader()
+				reader.onload = (e) => {
+					let srt = e.target.result.replace(/\n\r/g, ',').replace(/\r\n/g, ',')
+					let arr = srt.split(',').filter(item => item !== '')
+					that.setOrderToken(arr)
+					that.queryInfo.token = that.orderToken.join(',')
+					that.getList('reload')
+				}
+				reader.readAsText(file)
+			},
+			getExpressDelivery(item) {
+				getExpressDelivery({
+					code: item.deliverycode,
+					sn: item.delivery_sn
+				}).then(res => {
+					console.log(res);
+					this.logProgInfo = res.data.data
+					this.logProgDialogVisible = true
+				})
+			},
+			handleOrder(tit, item) {
+				batchOrder({
+					id: item.id,
+					status: item.status
+				}).then(res => {
+					// console.log(res);
+					item.tag = res.msg
+				})
+				// this.$confirm(tit, '提示', {
+				// 	confirmButtonText: '确定',
+				// 	cancelButtonText: '取消',
+				// 	callback: action => {
+				// 		if(action == 'confirm') {
+				// 			batchOrder({
+				// 				id: item.id,
+				// 				status: item.status
+				// 			}).then(res => {
+				// 				// console.log(res);
+				// 				this.$msg.success('已提交,请等待审核处理')
+				// 			})
+				// 		}
+				// 	}
+				// });
+			},
+			sqlp(item) {
+
+			},
+			oneWork(arr,i = 0) {
+				// batchOrder({
+				// 	id: 0
+				// }).then(res => {
+				// 	this.$msg.success(res.msg)
+				// 	this.getList()
+				// })
+				let that = this
+				that.yjloading = true
+				if(i < arr.length) {
+					
+					if(arr[i].loaded) {
+						that.oneWork(arr,++i)
+					}else {
+						arr[i].loading = true
+						setTimeout(()=> {
+							batchOrder({
+								id:arr[i].id,
+								status: arr[i].status
+							}).then(res => {
+								arr[i].tag = res.msg
+								arr[i].loading = false
+								arr[i].loaded = true
+								that.oneWork(arr,++i)
+							}).catch(err => {
+								console.log(i);
+								arr[i].loading = false
+								that.yjloading = false
+							})
+						},2000)
+					}
+					
+				}else {
+					that.yjloading = false
+				}
+			},
+			handleSelectionChange(val) {
+				console.log(val);
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				that.loading = true
+				createToken(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (that.dataloading) {
+					return
+				}
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+				}
+				that.dataloading = true
+				getOrderList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data.map(item => {
+						item.loading = false
+						item.loaded = false
+						return item
+					})
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.queryInfo.page = 1
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+			qrsh() {
+
+			}
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.empty-order {
+		width: 1376px;
+		height: 567px;
+		background-color: #fff;
+		margin: auto;
+		position: relative;
+	}
+	.dr-wrap {
+		width: 140px;
+		height: 125px;
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		margin: auto;
+		border: 1px #999 dashed;
+		border-radius: 5px;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		font-size: 12px;
+	
+		.dr-icon {
+			font-size: 32px;
+			color: #007aff;
+		}
+	
+		.dr-tit {
+			margin-top: 20px;
+		}
+	
+		// .dr-int {
+		// 	width: 140px;
+		// 	height: 125px;
+		// }
+	}
+	.dr-int {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		outline: medium none;
+		cursor: pointer;
+		-moz-opacity: 0;
+		opacity: 0;
+		filter: alpha(opacity=0);
+	}
+	.redr {
+		position: relative;
+		margin-right: 20px;
+	}
+	.mb {
+		position: absolute;
+		top: 0;
+		left: 0;
+		z-index: 999;
+		margin: auto;
+		width: 100%;
+		height: 100%;
+	}
+	/deep/ .el-table__cell {
+		button {
+			padding: 6px 10px;
+		}
+	}
+</style>

+ 242 - 0
src/views/settle/settleOrder.vue

@@ -0,0 +1,242 @@
+<template>
+	<div class="content-wrap">
+		<div class="flex">
+			<div class="left-wrap">
+				<div class="dr-wrap hand" >
+					<i class="el-icon-document dr-icon"></i>
+					<div class="dr-tit">点击批量导入账号文件</div>
+					<input type="file" ref="fileInput" @change="readTxtFile('fileInput')" class="dr-int" />
+				</div>
+				<!-- <div v-else style="padding: 10px;">
+					<div>账号列表</div>
+					<el-scrollbar style="height:680px;" wrap-style="overflow-x:hidden; padding-top:10px;">
+						<div v-for="(item,index) in jsOrderToken" class="left-t ">
+							{{item}}
+						</div>
+					</el-scrollbar>
+				</div> -->
+			</div>
+			<div class="order-wrap" style="padding: 20px;">
+				<div>
+					<el-date-picker v-model="value1" type="daterange" format="yyyy 年 M 月 d 日" value-format="yyyy-M-d"
+						range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
+					</el-date-picker>
+					<el-button type="primary" style="margin-left: 20px;" @click="getList('reload')">查询</el-button>
+					<div class="redr">
+						<el-button>重新导入</el-button>
+						<input type="file" ref="fileInputt" @change="readTxtFile('fileInputt')" class="dr-int" />
+					</div>
+				</div>
+				<div style="padding-top: 20px;">
+					<el-button>已结算订单:{{total}}</el-button>
+					<el-button>未结算订单:{{not_out_time}}</el-button>
+					<el-button>卡单数量:{{prohibit_refund}}</el-button>
+				</div>
+				<el-table :data="list" border style="width: 100%" max-height="520">
+					<el-table-column prop="id" label="id" width="80">
+					</el-table-column>
+					<el-table-column prop="createtime" label="提交时间" width="200">
+						<template slot-scope="scope">
+							{{showTime(scope.row.createtime)}}
+						</template>
+					</el-table-column>
+					<el-table-column prop="token" label="token" width="350">
+					</el-table-column>
+					<el-table-column prop="status" label="结算状态" width="120">
+						<template slot-scope="scope">
+							<el-tag type="success" v-if="scope.row.status == 6">已结算</el-tag>
+							<el-tag type="warning" v-if="scope.row.status == 5">待结算</el-tag>
+							<el-tag type="danger" v-if="scope.row.status == 7">已结束</el-tag>
+						</template>
+					</el-table-column>
+					<el-table-column prop="" label="结算详情">
+						<template slot-scope="scope">
+							<span>理赔:{{scope.row.compensation}}</span>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- 分页区域 -->
+				<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+					:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+					layout="total, sizes, prev, pager, next, jumper" :total="total">
+				</el-pagination>
+			</div>
+		</div>
+
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		settlement
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+	export default {
+		name: 'settleOrder',
+		data() {
+			return {
+				prohibit_refund: 0,
+				not_out_time: 0,
+				loading: false,
+				value1: '',
+				list: [],
+				queryInfo: {
+					page: 1,
+					limit: 10,
+					data: '',
+					token: ''
+				},
+				total: 0,
+			}
+		},
+		watch: {
+			value1(n, o) {
+				this.queryInfo.data = n[0] + ' - ' + n[1]
+			}
+		},
+		computed: {
+			...mapState(['jsOrderToken'])
+		},
+		mounted() {
+			if (this.jsOrderToken.length > 0) {
+				this.queryInfo.token = this.jsOrderToken.join(',')
+				this.getList()
+			}
+		},
+		methods: {
+			...mapMutations(['setJsOrderToken']),
+			showTime,
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+			//加载token文件
+			readTxtFile(refs) {
+				let that = this
+				const input = this.$refs[refs]
+				const file = input.files[0]
+
+				const reader = new FileReader()
+				reader.onload = (e) => {
+					let srt = e.target.result.replace(/\n\r/g, ',').replace(/\r\n/g, ',')
+					let arr = srt.split(',').filter(item => item !== '')
+					that.setJsOrderToken(arr)
+					that.queryInfo.token = that.jsOrderToken.join(',')
+					that.getList()
+				}
+				reader.readAsText(file)
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					// that.queryInfo.date
+				}
+				settlement(that.queryInfo).then(res => {
+					console.log(res);
+					that.total = res.data.count
+					that.not_out_time = res.data.not_out_time
+					that.prohibit_refund = res.data.prohibit_refund
+					that.list = res.data.data
+					if(that.total == 0) {
+						that.$msg.error('订单结算时间还未到')
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.left-wrap {
+		width: 192px;
+		height: 710px;
+		background-color: #fff;
+		flex-shrink: 0;
+		margin-right: 20px;
+		position: relative;
+	}
+
+	.order-wrap {
+		background-color: #fff;
+		height: 710px;
+		flex-grow: 1;
+	}
+
+	.dr-wrap {
+		width: 140px;
+		height: 125px;
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		margin: auto;
+		border: 1px #999 dashed;
+		border-radius: 5px;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		font-size: 12px;
+
+		.dr-icon {
+			font-size: 32px;
+			color: #007aff;
+		}
+
+		.dr-tit {
+			margin-top: 20px;
+		}
+
+		// .dr-int {
+		// 	width: 140px;
+		// 	height: 125px;
+		// }
+	}
+
+	.dr-int {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		outline: medium none;
+		cursor: pointer;
+		-moz-opacity: 0;
+		opacity: 0;
+		filter: alpha(opacity=0);
+	}
+
+	/deep/ .el-range-separator {
+		width: 50px;
+	}
+
+	.left-t {
+		// display: flex;
+		// justify-content: center;
+		font-weight: bold;
+		// height: 50px;
+		margin-bottom: 15px;
+		width: 180px; //定宽 
+		overflow: hidden; //超出的文本隐藏
+		text-overflow: ellipsis; //溢出用省略号显示
+		white-space: nowrap; // 默认不换行;
+	}
+	.redr {
+		display: inline-block;
+		margin-left: 20px;
+		position: relative;
+		margin-right: 20px;
+	}
+</style>

+ 196 - 0
src/views/user/money.vue

@@ -0,0 +1,196 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: flex-end;padding-bottom: 20px;">
+					<!-- <el-button type="primary" @click="openBuy">充值</el-button> -->
+					<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')" >刷新</el-button>
+				</div>
+			
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="money" label="金额(元)" width="250"></el-table-column>
+				<el-table-column prop="after" label="变更后金额(元)" width="250"></el-table-column>
+				<el-table-column prop="memo" label="备注" width="250"></el-table-column>
+				<el-table-column prop="status" label="创建时间" width="250">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime) }}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="充值" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="充值金额" :label-width="formLabelWidth">
+					<el-input v-model="form.recharge_num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="充值凭证" :label-width="formLabelWidth">
+					<el-upload
+					  class="avatar-uploader"
+					  action="http://www.pingguozhushou.shop/api/common/upload"
+					  :show-file-list="false"
+					  :headers="headers"
+					  :on-success="handleAvatarSuccess"
+					  :before-upload="beforeAvatarUpload">
+					  <img v-if="form.image" :src="form.image" class="avatar">
+					  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+					</el-upload>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+		createCode,
+		getCodeList,
+		getUserList
+	} from '@/request/agent.js'
+	import { getMoneyList,rechange } from '@/request/user.js'
+	import { showTime } from '@/assets/js/tools.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					recharge_num: '',
+					image: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {}
+			}
+		},
+		created() {
+			this.getList()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+		},
+		methods: {
+			showTime,
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+				console.log(this.form.image,'this.form.avatar');
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+			
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+				
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.recharge_num) {
+					return that.$msg.error('请输入充值金额')
+				}
+				if (!that.form.image) {
+					return that.$msg.error('请上传充值凭证')
+				}
+				that.loading = true
+				rechange(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('提交成功,请等待审核')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+				
+				that.dataloading = true
+				getMoneyList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+	
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+	
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+</style>

+ 265 - 0
src/views/user/rechangeList.vue

@@ -0,0 +1,265 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+					<el-button type="primary" @click="openBuy">充值</el-button>
+					<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')">刷新</el-button>
+				</div>
+
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="recharge_num" label="充值金额(U)" width="350"></el-table-column>
+				<!-- <el-table-column prop="image" label="充值凭证" width="150">
+					<template slot-scope="scope">
+						<el-image style="width: 100px; height:100px" :src="scope.row.image"></el-image>
+					</template>
+				</el-table-column> -->
+				<!-- <el-table-column prop="status" label="审核结果" width="150">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 1">已通过</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 0">待审核</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="status" label="创建时间">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime) }}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="充值" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<!-- payimg -->
+				<el-form-item label="充值二维码" :label-width="formLabelWidth">
+					<vueQrCode :size=qrCodeSize :text="qrCodeText"> </vueQrCode>
+				</el-form-item>
+				<el-form-item label="TRC20地址" :label-width="formLabelWidth">
+					<div class="flex">
+						<el-input v-model="qrCodeText" type="text" disabled></el-input>
+						<el-button @click="onCopy(qrCodeText)" style="margin-left: 20px;">复制地址</el-button>
+					</div>
+				</el-form-item>
+				<!-- <el-form-item label="充值凭证" :label-width="formLabelWidth">
+					<el-upload class="avatar-uploader" action="http://www.pingguozhushou.shop/api/common/upload"
+						:show-file-list="false" :headers="headers" :on-success="handleAvatarSuccess"
+						:before-upload="beforeAvatarUpload">
+						<img v-if="form.image" :src="form.image" class="avatar">
+						<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+					</el-upload>
+				</el-form-item> -->
+				
+			</el-form>
+			<!-- <div class="t-r">
+				到账: {{((form.recharge_num*1 || 0)*(baseInfo.to_rmb*1)).toFixed(2)}}元
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div> -->
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import vueQrCode from "@/components/vueQrCode.vue";
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		getUserList,
+		getIndex
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getUserInfo
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+	export default {
+		components: {
+			vueQrCode,
+		},
+		name: 'Order',
+		data() {
+			return {
+				qrCodeSize: 150,
+				qrCodeText: '',
+				loading: false,
+				formLabelWidth: '100px',
+				form: {
+					recharge_num: '',
+					image: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {}
+			}
+		},
+		created() {
+			this.getList()
+			this.getUserInfo()
+			this.getIndex()
+			this.headers['token'] = window.localStorage.getItem('token')
+		},
+		computed: {
+			...mapState(['baseInfo', 'www','userInfo']),
+
+		},
+		methods: {
+			...mapMutations(['setBaseInfo', 'setUserInfo']),
+			showTime,
+			onCopy(text) {
+				this.$copyText(text).then(
+					e => {
+						console.log('复制成功:', e);
+					},
+					e => {
+						console.log('复制失败:', e);
+					}
+				)
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+					this.qrCodeText = res.data.trc20
+				})
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+					this.qrCodeText = res.data.withdraw_trc_address
+				})
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+				console.log(this.form.image, 'this.form.avatar');
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.recharge_num) {
+					return that.$msg.error('请输入充值金额')
+				}
+				if (!that.form.image) {
+					return that.$msg.error('请上传充值凭证')
+				}
+				that.loading = true
+				rechange(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('提交成功,请等待审核')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getRechangeList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 198 - 0
src/views/user/regList.vue

@@ -0,0 +1,198 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+					<el-button type="primary" @click="openBuy">购买注册码</el-button>
+					<el-button type="primary" icon="el-icon-refresh-right" @click="reload">刷新</el-button>
+				</div>
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="code" label="注册码" width="180">
+				</el-table-column>
+				<el-table-column prop="status" label="是否已使用">
+
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+
+				</el-table-column>
+				<el-table-column prop="reg_user_id" label="注册用户ID">
+					<template slot-scope="scope">
+						{{scope.row.reg_user_id ? scope.row.reg_user_id: ''}}
+					</template>
+				</el-table-column>
+				<el-table-column prop="createtime" label="创建时间">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes,prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买注册码" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				合计: {{hj}}元
+			</div >
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+	import {
+		createCode,
+		getCodeList,
+		getIndex,
+		
+	} from '@/request/agent.js'
+	import { getUserInfo } from '@/request/user.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+			}
+		},
+		created() {
+			this.getList()
+			this.getIndex()
+			this.getUserInfo()
+		},
+		computed: {
+			...mapState(['userInfo', 'baseInfo']),
+			hj() {
+				return this.baseInfo.code_price * 1 * this.form.num
+			}
+		},
+		methods: {
+			...mapMutations(['setUserInfo', 'setBaseInfo']),
+			showTime,
+			reload() {
+				this.getList('reload')
+				this.getUserInfo()
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+				})
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				if(that.hj *1 > that.userInfo.money *1 ) {
+					return that.$msg.error('您当前的账号余额不足')
+				}
+				that.loading = true
+				createCode(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+					
+				}
+				if (that.dataloading) {
+					return
+				}
+				
+				that.dataloading = true
+				getCodeList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 732 - 0
src/views/user/setUserinfo.vue

@@ -0,0 +1,732 @@
+<template>
+	<div class="user">
+		<div class="user-wrap">
+			<div class="u-item flex">
+				<div class="base">用户名</div>
+				<div class="base">{{userInfo.username}}</div>
+				<el-button type="text" @click="dlVisible= true">修改密码</el-button>
+			</div>
+			<div class="u-item flex">
+				<div class="base">用户ID</div>
+				<div class="base">{{userInfo.id}}</div>
+			</div>
+			<div class="u-item flex">
+				<div class="base">用户编号</div>
+				<div class="base">{{userInfo.user_code}}</div>
+			</div>
+			<!-- <div class="u-item flex">
+				<div class="base">地址</div>
+				<div>
+					<span style="display: inline-block;margin-right: 20px;">{{userInfo.address}}</span>
+					<el-button type="text" @click="adVisible = true">设置地址</el-button>
+				</div>
+			</div> -->
+			<div class="u-item flex">
+				<div class="base">余额</div>
+				<div>
+					<span style="display: inline-block;margin-right: 20px;">{{userInfo.money}}</span>
+					<el-button type="text" @click="czVisible = true">充值</el-button>
+					<el-button type="text" @click="txVisible = true">提现</el-button>
+					<el-button type="text" @click="zzVisible = true">转账</el-button>
+				</div>
+			</div>
+			<div class="u-item flex">
+				<div class="base">交易密码</div>
+				<div @click="jyVisible = true">
+					<el-button type="text" v-if="!userInfo.transaction">设置交易密码</el-button>
+					<el-button type="text" v-else>修改交易密码</el-button>
+				</div>
+			</div>
+			<div class="u-item flex">
+				<div>
+					<div class="base">开通二次验证</div>
+					<el-tag type="danger">开通二次验证可以保障你的资金安全 否则被盗号所产生的一切问题,自行负责</el-tag>
+				</div>
+				<div>
+					<el-button type="text" v-if="userInfo.is_binding == 1">已开通</el-button>
+					<el-button type="text" v-else @click="getga">立即开通</el-button>
+				</div>
+			</div>
+			<div class="u-item flex" v-if="userInfo.agent_id != 1">
+				<div class="base">自动下单</div>
+				<div>
+					<el-button type="text" v-if="!userInfo.auto_order == 1" @click="xdVisible = true">立即开通</el-button>
+					<el-button type="text" v-else>已开通</el-button>
+				</div>
+			</div>
+		</div>
+		<!-- 		<el-card>
+			<div class="wrap">
+				<el-form :model="form" style="width: 500px;">
+					
+					<el-form-item label="头像" :label-width="formLabelWidth">
+						<el-upload
+						  class="avatar-uploader"
+						  action="http://www.pingguozhushou.shop/api/common/upload"
+						  :show-file-list="false"
+						  :headers="token"
+						  :on-success="handleAvatarSuccess"
+						  :before-upload="beforeAvatarUpload">
+						  <img v-if="form.avatar" :src="form.avatar" class="avatar">
+						  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+						</el-upload>
+					</el-form-item>
+					<el-form-item label="ID" :label-width="formLabelWidth">
+						<el-input v-model="form.id" type="text" disabled
+							 width="300px"></el-input>
+					</el-form-item>
+					<el-form-item label="账号" :label-width="formLabelWidth">
+						<el-input v-model="form.username" type="text" disabled
+							 width="300px"></el-input>
+					</el-form-item>
+					<el-form-item label="昵称" :label-width="formLabelWidth">
+						<el-input v-model="form.nickname" type="text" 
+							placeholder="请输入昵称" width="300px"></el-input>
+					</el-form-item>
+				</el-form>
+				<div class="dialog-footer">
+					<el-button type="primary" @click="setInfo">确 定</el-button>
+				</div>
+			</div>
+		</el-card> -->
+		<!--  添加地址 -->
+		<el-dialog title="设置地址" :visible.sync="adVisible" @close="closeAd" width="600px">
+			<el-form :model="adForm" style="width: 500px;">
+				<el-form-item label="地址" :label-width="formLabelWidth">
+					<el-input v-model="adForm.address" type="text" placeholder="请输入地址"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="adForm.code" type="text" placeholder="请输入动态口令" width="300px"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="dialog-footer">
+				<el-button @click="closeAd">取 消</el-button>
+				<el-button type="primary" @click="goAd">确 定</el-button>
+			</div>
+		</el-dialog>
+		<!-- 登录密码 -->
+		<el-dialog title="登录密码" :visible.sync="dlVisible" @close="closeDl" width="600px">
+			<el-form :model="dlForm" style="width: 500px;">
+				<el-form-item label="旧登录密码" :label-width="formLabelWidth">
+					<el-input v-model="dlForm.oldpassword" type="password" placeholder="请输入旧登录密码"></el-input>
+				</el-form-item>
+				<el-form-item label="新登录密码" :label-width="formLabelWidth">
+					<el-input v-model="dlForm.newpassword" type="password" placeholder="请输入新登录密码"
+						width="300px"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="dialog-footer">
+				<el-button @click="closeDl">取 消</el-button>
+				<el-button type="primary" @click="goDl">确 定</el-button>
+			</div>
+		</el-dialog>
+		<!-- 自动下单 -->
+		<el-dialog title="提示" :visible.sync="xdVisible" width="350px">
+			<span style="display: block; padding: 0 0 20px 20px;">开通自动下单需支付{{baseInfo.auto_order}}元</span>
+
+			<el-form v-if="userInfo.is_binding == 1">
+				<el-form-item label="动态口令">
+					<el-input v-model="dtkl" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<span slot="footer" class="dialog-footer" style="width: 300px;">
+				<el-button @click="xdVisible = false">取 消</el-button>
+				<el-button type="primary" @click="ktAuto">确 定</el-button>
+			</span>
+		</el-dialog>
+		<!-- 谷歌校验 -->
+		<el-dialog title="动态口令" :visible.sync="dtVisible" @close="closeDt" width="600px">
+			<el-form :model="dtForm" style="width: 500px;">
+				<el-form-item label="绑定二维码" :label-width="formLabelWidth">
+					<img :src="images" alt="">
+				</el-form-item>
+				<el-form-item label="密钥" :label-width="formLabelWidth">
+					<el-input v-model="dtForm.secret" type="text" placeholder="" width="300px"></el-input>
+				</el-form-item>
+				<el-form-item label="绑定口令" :label-width="formLabelWidth">
+					<el-input v-model="dtForm.code" type="text" placeholder="请输入绑定口令" width="300px"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="dialog-footer">
+				<el-button type="primary" @click="goDt">确 定</el-button>
+			</div>
+
+		</el-dialog>
+		<!-- 设置交易密码 -->
+		<el-dialog title="交易密码" :visible.sync="jyVisible" @close="closeJy" width="600px">
+			<el-form :model="jyForm" style="width: 500px;">
+				<el-form-item label="新交易密码" :label-width="formLabelWidth">
+					<el-input v-model="jyForm.newpassword" type="password" maxlength="30" minlength="6"
+						placeholder="请输入新交易密码(6~30位任意字符)" width="300px"></el-input>
+				</el-form-item>
+				<el-form-item label="旧交易密码" :label-width="formLabelWidth" v-if="userInfo.transaction">
+					<el-input v-model="jyForm.oldpassword" type="password" maxlength="30" minlength="6"
+						placeholder="请输入旧交易密码"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="dialog-footer">
+				<el-button @click="closeJy">取 消</el-button>
+				<el-button type="primary" @click="goJy">确 定</el-button>
+			</div>
+		</el-dialog>
+		<!-- 转账 -->
+		<el-dialog title="转账" :visible.sync="zzVisible" @close="closeZz" width="600px">
+			<el-form :model="zzForm">
+				<el-form-item label="收款用户ID" :label-width="formLabelWidth">
+					<el-input v-model="zzForm.to_user_id" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="转账金额" :label-width="formLabelWidth">
+					<el-input v-model="zzForm.transfer_num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="zzForm.code" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="closeZz">取 消</el-button>
+				<el-button type="primary" @click="goZz">确 定</el-button>
+			</div>
+		</el-dialog>
+		<!-- 提现 -->
+		<el-dialog title="提现" :visible.sync="txVisible" @close="closeTx" width="600px">
+			<el-form :model="txForm">
+				<el-form-item label="提现地址" :label-width="formLabelWidth">
+					<el-input v-model="txForm.address" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="提现金额" :label-width="formLabelWidth">
+					<el-input v-model="txForm.withdraw_num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="txForm.code" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				到账: {{((txForm.withdraw_num*1 || 0)/(baseInfo.to_rmb*1)).toFixed(2)}}U
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="closeTx">取 消</el-button>
+				<el-button type="primary" @click="goTx">确 定</el-button>
+			</div>
+		</el-dialog>
+		<!-- 充值 -->
+		<el-dialog title="充值" :visible.sync="czVisible" @close="closeCz" width="600px">
+			<el-form :model="czForm">
+				<!-- payimg -->
+				<el-form-item label="充值二维码" :label-width="formLabelWidth">
+					<vueQrCode :size=qrCodeSize :text="qrCodeText"> </vueQrCode>
+				</el-form-item>
+				<el-form-item label="TRC20地址" :label-width="formLabelWidth">
+					<div class="flex">
+						<el-input v-model="qrCodeText" type="text" disabled></el-input>
+						<el-button @click="onCopy(qrCodeText)" style="margin-left: 20px;">复制地址</el-button>
+					</div>
+
+				</el-form-item>
+				<!-- <el-form-item label="充值凭证" :label-width="formLabelWidth">
+					<el-upload class="avatar-uploader" action="http://www.pingguozhushou.shop/api/common/upload"
+						:show-file-list="false" :headers="headers" :on-success="handleCzSuccess"
+						:before-upload="beforeAvatarUpload">
+						<img v-if="czForm.image" :src="czForm.image" class="czimg">
+						<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+					</el-upload>
+				</el-form-item> -->
+
+			</el-form>
+			<!-- <div class="t-r">
+				到账: {{((form.recharge_num*1 || 0)*(baseInfo.to_rmb*1)).toFixed(2)}}元
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="closeCz">取 消</el-button>
+				<el-button type="primary" @click="goCz">确 定</el-button>
+			</div> -->
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import vueQrCode from "@/components/vueQrCode.vue";
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		setTransaction,
+		getIndex
+	} from '@/request/agent.js'
+
+	import {
+		setUserInfo,
+		getUserInfo,
+		rechange,
+		withdrawal,
+		transfer,
+		getga,
+		checkCode,
+		payAuto,
+		repwd,
+		address
+	} from '@/request/user.js'
+	export default {
+		name: 'Order',
+		components: {
+			vueQrCode,
+		},
+		data() {
+			return {
+				dtkl: '',
+				xdVisible: false,
+				images: '',
+				qrCodeSize: 150,
+				qrCodeText: '',
+				headers: {},
+				dtVisible: false,
+				dtForm: {
+					code: '',
+					secret: ''
+				},
+				czVisible: false,
+				czForm: {
+					recharge_num: '',
+					image: ''
+				},
+				txVisible: false,
+				txForm: {
+					withdraw_num: '',
+					address: '',
+					code: ''
+				},
+				zzVisible: false,
+				zzForm: {
+					to_user_id: '',
+					transfer_num: '',
+					code: ''
+				},
+				jyVisible: false,
+				jyForm: {
+					newpassword: '',
+					oldpassword: ''
+				},
+				dlVisible: false,
+				dlForm: {
+					newpassword: '',
+					oldpassword: ''
+				},
+				adVisible: false,
+				adForm: {
+					address: '',
+					code: ''
+				},
+				token: {},
+				formLabelWidth: '120px',
+				form: {
+					avatar: '',
+					id: '',
+					nickname: '',
+					username: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				loading: false,
+				czloading: false,
+				txloading: false,
+				zzloading: false,
+				jyloading: false,
+				dtloading: false,
+				dlloading: false,
+				adloading: false
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'baseInfo'])
+		},
+		created() {
+			console.log(this.userInfo);
+			if (this.userInfo.address) {
+				this.txForm.address = this.userInfo.address
+			}
+			this.headers['token'] = window.localStorage.getItem('token')
+			this.form = {
+				avatar: this.userInfo.avatar,
+				id: this.userInfo.id,
+				nickname: this.userInfo.nickname,
+				username: this.userInfo.username
+			}
+			this.getIndex()
+			this.getUserInfo()
+			// this.getga()
+		},
+		methods: {
+			...mapMutations(['setUserInfo', 'setBaseInfo']),
+			closeAd() {
+				this.adVisible = false
+				this.adForm.address = ''
+				this.adForm.code = ''
+				this.adloding = false
+			},
+			goAd() {
+				let that = this
+				if (!that.adForm.address) {
+					return that.$msg.error('请输入地址')
+				}
+				address(that.adForm).then(res => {
+					that.$msg.success('设置成功')
+					that.closeAd()
+					that.getUserInfo()
+					that.adloding = false
+				}).catch(err => {
+					that.adloding = false
+				})
+			},
+			ktAuto() {
+				let that = this
+				if (that.userInfo.money * 1 < that.baseInfo.auto_order * 1) {
+					return that.$msg.error('您当前余额不足')
+				}
+				payAuto({
+					code: that.dtkl
+				}).then(res => {
+					that.getUserInfo()
+					that.xdVisible = false
+					//自动下单启动
+				})
+			},
+			getga() {
+				getga().then(res => {
+					console.log(res);
+					this.dtForm.secret = res.data.secret
+					this.images = res.data.qrCodeUrl
+					this.dtVisible = true
+				})
+			},
+			closeDt() {
+				this.dtVisible = false
+				this.dtForm.code = ''
+			},
+			goDt() {
+				if (this.dtloading) {
+					return
+				}
+				this.dtloading = true
+				checkCode({
+					code: this.dtForm.code
+				}).then(res => {
+					this.$msg.success('绑定成功')
+					this.closeDt()
+					this.dtloading = false
+				}).then(err => {
+					this.dtloading = false
+				})
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+					// this.qrCodeText = res.data.trc20
+				})
+			},
+			//关闭设置交易密码
+			closeJy() {
+				this.jyVisible = false
+				this.jyForm = {
+					newpassword: '',
+					oldpassword: ''
+				}
+			},
+
+			goJy() {
+				let that = this
+				if (that.jyloading) {
+					return
+				}
+				if (!that.jyForm.newpassword) {
+					return that.$msg.error('请输入新交易密码')
+				}
+				setTransaction(that.jyForm).then(res => {
+					that.$msg.success('交易密码设置成功')
+					that.closeJy()
+					that.jyloading = false
+				}).catch(err => {
+					that.jyloading = false
+				})
+			},
+			//
+			closeDl() {
+				this.dlVisible = false
+				this.dlForm = {
+					newpassword: '',
+					oldpassword: ''
+				}
+			},
+			goDl() {
+				let that = this
+				if (that.dlloading) {
+					return
+				}
+				if (!that.dlForm.newpassword) {
+					return that.$msg.error('请输入旧登录密码')
+				}
+				if (!that.dlForm.newpassword) {
+					return that.$msg.error('请输入新登录密码')
+				}
+				repwd(that.dlForm).then(res => {
+					that.$msg.success('登录密码设置成功')
+					that.closeDl()
+					that.dlloading = false
+				}).catch(err => {
+					that.dlloading = false
+				})
+			},
+			//关闭转账
+			closeZz() {
+				this.zzVisible = false
+				this.zzForm = {
+					to_user_id: '',
+					transfer_num: '',
+					code: ''
+				}
+			},
+			goZz() {
+				let that = this
+				if (that.zzloading) {
+					return
+				}
+				if (!that.zzForm.to_user_id) {
+					return that.$msg.error('请输入收款人ID')
+				}
+				if (!that.zzForm.transfer_num) {
+					return that.$msg.error('请输入转账金额')
+				}
+				if (that.userInfo.money < that.zzForm.transfer_num * 1) {
+					return that.$msg.error('您的余额不足本次转账')
+				}
+				that.zzloading = true
+				transfer(that.zzForm).then(res => {
+					console.log(res);
+					that.$msg.success('转账成功')
+					that.zzloading = false
+					that.closeZz()
+					that.getUserInfo()
+				}).catch(err => {
+					that.zzloading = false
+				})
+			},
+			//关闭提现
+			closeTx() {
+				this.txVisible = false
+				this.txForm = {
+					withdraw_num: '',
+					address: '',
+					code: ''
+				}
+			},
+			goTx() {
+				let that = this
+				if (that.txloading) {
+					return
+				}
+				if (!that.txForm.withdraw_num) {
+					return that.$msg.error('请输入提现金额')
+				}
+				if (that.txForm.address == '') {
+					return that.$msg.error('请输入提现地址')
+				}
+				if (that.userInfo.money * 1 < that.txForm.withdraw_num * 1) {
+					return that.$msg.error('您当前账号的余额不足')
+				}
+				that.txloading = true
+				withdrawal(that.txForm).then(res => {
+					that.$msg.success('提交成功,请等待审核')
+					that.txloading = false
+					that.closeTx()
+					that.getUserInfo()
+				}).catch(err => {
+					that.txloading = false
+				})
+			},
+			//关闭充值
+			closeCz() {
+				this.czVisible = false
+				this.czForm = {
+					recharge_num: '',
+					image: ''
+				}
+			},
+			// 充值提交
+			goCz() {
+				let that = this
+				if (that.czloading) {
+					return
+				}
+				if (!that.czForm.recharge_num) {
+					return that.$msg.error('请输入充值金额')
+				}
+				if (!that.czForm.image) {
+					return that.$msg.error('请上传充值凭证')
+				}
+				that.czloading = true
+				rechange(that.czForm).then(res => {
+
+					that.$msg.success('提交成功,请等待审核')
+					that.czVisible = false
+					that.czloading = false
+					that.closeCz()
+				}).catch(err => {
+					that.czloading = false
+				})
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.avatar = res.data.fullurl;
+			},
+			handleCzSuccess(res, file) {
+				this.czForm.image = res.data.fullurl;
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+					this.qrCodeText = res.data.withdraw_trc_address
+				})
+			},
+			setInfo() {
+				let that = this
+				if (that.form.avatar == '') {
+					return that.$msg.error('请选择头像')
+				}
+				if (that.form.nickname == '') {
+					return that.$msg.error('请选择输入昵称')
+				}
+				setUserInfo({
+					avatar: that.form.avatar,
+					nickname: that.form.nickname
+				}).then(res => {
+					that.$msg.success('修改成功')
+					that.getUserInfo()
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+			onCopy(text) {
+				this.$copyText(text).then(
+					e => {
+						console.log('复制成功:', e);
+					},
+					e => {
+						console.log('复制失败:', e);
+					}
+				)
+			}
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	/* 
+
+	/deep/ .el-card__body {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	
+
+	.avatar {
+		width: 178px;
+		height: 178px;
+		display: block;
+	} */
+	.dialog-footer {
+		display: flex;
+		justify-content: flex-end;
+		width: 500px;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+
+	.user-wrap {
+		width: 700px;
+		background-color: #fff;
+		margin: auto;
+
+		.u-item {
+			padding: 10px 15px;
+			justify-content: space-between;
+			align-items: flex-start;
+			border-bottom: 1px solid #f0f0f0;
+
+			.base {
+				padding: 12px 0;
+			}
+		}
+	}
+
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+
+	.czimg {
+		width: 178px;
+		height: 178px;
+	}
+</style>

+ 345 - 0
src/views/user/takingList.vue

@@ -0,0 +1,345 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+					<el-button type="primary" @click="openBuy">提现</el-button>
+					<el-button type="primary" icon="el-icon-refresh-right" @click="reload">刷新</el-button>
+				</div>
+				<!-- <div style="margin-bottom: 20px;">
+					<el-select v-model="value" placeholder="请选择支付方式" @change="optChange">
+						<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" >
+						</el-option>
+					</el-select>
+				</div> -->
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="address" label="地址" width="380">
+				</el-table-column>
+				<!-- <el-table-column prop="type" label="提现方式" width="150">
+					<template slot-scope="scope">
+						<el-tag v-if="scope.row.type == 0" type="warning">银行卡</el-tag>
+						<el-tag v-if="scope.row.type == 1" type="success">微信</el-tag>
+						<el-tag v-if="scope.row.type == 2" >支付宝</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="withdraw_num" label="提现金额(元)" width="150"></el-table-column>
+				<!-- <el-table-column prop="card_no" label="银行卡" width="250"></el-table-column>
+				<el-table-column prop="card_name" label="开户行" width="250"></el-table-column>
+				<el-table-column prop="image" label="收款码" width="150">
+					<template slot-scope="scope">
+						<el-image style="width: 100px; height:100px" :src="scope.row.qrimage" v-if="scope.row.qrimage"></el-image>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="status" label="审核结果" width="150">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 1">已通过</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 0">待审核</el-tag>
+						<el-tag type="danger" v-if="scope.row.status == 2">未通过</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="创建时间" width="200">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="提现" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<!-- <el-form-item label="提现方式" :label-width="formLabelWidth">
+					<el-select v-model="form.type" placeholder="请选择支付方式" @change="optChanget">
+						<el-option v-for="item in takType" :key="item.value" :label="item.label" :value="item.value" >
+						</el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="姓名" :label-width="formLabelWidth">
+					<el-input v-model="form.name" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="提现金额" :label-width="formLabelWidth">
+					<el-input v-model="form.withdraw_num" type="number"></el-input>
+				</el-form-item>
+				<template v-if="form.type == 0">
+					<el-form-item label="银行卡号" :label-width="formLabelWidth">
+						<el-input v-model="form.card_no" type="text"></el-input>
+					</el-form-item>
+					<el-form-item label="开户行" :label-width="formLabelWidth">
+						<el-input v-model="form.card_name" type="text"></el-input>
+					</el-form-item>
+				</template>
+				<el-form-item label="收款码" :label-width="formLabelWidth" v-else>
+					<el-upload class="avatar-uploader" action="http://fh.frp.liuniu946.com/api/common/upload"
+						:show-file-list="false" :headers="headers" :on-success="handleAvatarSuccess"
+						:before-upload="beforeAvatarUpload">
+						<img v-if="form.qrimage" :src="form.qrimage" class="avatar">
+						<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+					</el-upload>
+				</el-form-item> -->
+				<el-form-item label="提现地址" :label-width="formLabelWidth">
+					<el-input v-model="form.address" type="text"></el-input>
+				</el-form-item>
+				<el-form-item label="提现金额" :label-width="formLabelWidth">
+					<el-input v-model="form.withdraw_num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="form.code" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				到账: {{((form.withdraw_num*1 || 0)/(baseInfo.to_rmb*1)).toFixed(2)}}U
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+			mapState,
+			mapMutations
+		} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		getUserList,
+		getIndex
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTransferList,
+		transfer,
+		withdrawalList,
+		getUserInfo,
+		withdrawal
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					withdraw_num: '',
+					address: '',
+					code: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					type: -1, //-1->全部 0->银行卡 1->微信 2->支付宝 
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+				takType: [{
+					value: 0,
+					label: '银行卡'
+				}, {
+					value: 1,
+					label: '微信'
+				}, {
+					value: 2,
+					label: '支付宝'
+				}],
+				takValue: 0,
+				options: [{
+					value: -1,
+					label: '全部'
+				}, {
+					value: 0,
+					label: '银行卡'
+				}, {
+					value: 1,
+					label: '微信'
+				}, {
+					value: 2,
+					label: '支付宝'
+				}],
+				value: -1,
+			}
+		},
+		computed: {
+			...mapState(['userInfo','baseInfo'])
+		},
+		created() {
+			this.getIndex()
+			this.getList()
+			this.getUserInfo()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+			if(this.userInfo.address) {
+				this.form.address = this.userInfo.address
+			}
+		},
+		methods: {
+			...mapMutations(['setUserInfo','setBaseInfo']),
+			showTime,
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+				})
+			},
+			reload() {
+				this.getList('reload')
+				this.getUserInfo()
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			optChange(data) {
+				console.log(data);
+				this.getList('reload')
+			},
+			optChanget(data) {
+				that.form.type = data
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.qrimage = res.data.fullurl;
+				console.log(this.form.image, 'this.form.avatar');
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				// if(that.form.name == '') {
+				// 	return that.$msg.error('请输入姓名')
+				// }
+				if(!that.form.withdraw_num) {
+					return that.$msg.error('请输入提现金额')
+				}
+				if(that.form.address == '') {
+					return that.$msg.error('请输入提现地址')
+				}
+				if(that.userInfo.money*1 < that.form.withdraw_num*1) {
+					return that.$msg.error('您当前账号的余额不足')
+				}
+				// if(that.form.type == 0) {
+				// 	if(that.form.card_name == '') {
+				// 		return that.$msg.error('请输入开户行')
+				// 	}
+				// 	if(that.form.card_no == '') {
+				// 		return that.$msg.error('请输入银行卡号')
+				// 	}
+				// }else {
+				// 	if(that.form.qrimage == '') {
+				// 		return that.$msg.error('请上传收款码')
+				// 	}
+				// }
+				that.loading = true
+				withdrawal(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('提交成功,请等待审核')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+					this.getUserInfo()
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.queryInfo.type = that.value
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+				that.dataloading = true
+				withdrawalList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 253 - 0
src/views/user/tokenOrderList.vue

@@ -0,0 +1,253 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-row>
+				<el-col>
+					<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+						<el-button type="primary" @click="openBuy">购买Token</el-button>
+						<el-button type="primary" icon="el-icon-refresh-right" @click="getList('reload')">刷新</el-button>
+					</div>
+
+				</el-col>
+
+
+				<!-- <el-col :span="8">
+					<el-input placeholder="请输入内容" v-model="queryInfo.query" class="input-with-select">
+						<el-button slot="append" icon="el-icon-search" @click="getList()"></el-button>
+					</el-input>
+				</el-col> -->
+			</el-row>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="order_id" label="订单编号" width="350">
+				</el-table-column>
+				<el-table-column prop="token_num" label="token数量" width="350">
+				</el-table-column>
+				<!-- 				<el-table-column prop="status" label="是否已使用">
+					<template slot-scope="scope">
+						<el-tag type="success" v-if="scope.row.status == 0">待使用</el-tag>
+						<el-tag type="info" v-if="scope.row.status == 1">已使用</el-tag>
+					</template>
+				</el-table-column> -->
+				<el-table-column prop="createtime" label="购买时间">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+				<el-table-column fixed="right" label="操作" width="150">
+					<template slot-scope="scope">
+						<el-button type="text" size="small" @click="downToken(scope.row)">下载Token</el-button>
+
+					</template>
+				</el-table-column>
+			</el-table>
+			<!-- 分页区域 -->
+			<!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, sizes, prev, pager, next, jumper" :total="total">
+			</el-pagination> -->
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="购买Token" :visible.sync="dialogTableVisible" @close="closeEvent">
+			<el-form :model="form">
+				<el-form-item label="购买数量" :label-width="formLabelWidth">
+					<el-input v-model="form.num" type="number"></el-input>
+				</el-form-item>
+
+				<el-form-item label="交易密码" :label-width="formLabelWidth">
+					<el-input v-model="form.transaction" type="password"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="form.code" type="text"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				合计: {{hj}}元
+			</div>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import axios from 'axios'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		createToken,
+		getTokenList,
+		getIndex,
+		getUserInfo
+	} from '@/request/agent.js'
+	import {
+		getTokenOrderList,
+		downToken
+	} from '@/request/user.js'
+	import {
+		showTime,
+	} from '@/assets/js/tools.js'
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '80px',
+				form: {
+					num: '',
+					transaction: '',
+					code: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					keyword: '',
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'baseInfo']),
+			hj() {
+				return this.baseInfo.token_price * 1 * this.form.num
+				// return 0
+			}
+		},
+		created() {
+			this.getIndex()
+			this.getUserInfo()
+			this.getList()
+		},
+		methods: {
+			...mapMutations(['setUserInfo', 'setBaseInfo']),
+			showTime,
+			downToken(item) {
+				console.log(item);
+				downToken({
+					oid: item.id
+				}).then(res => {
+					let a = document.createElement('a');
+					a.href = res.data.url;
+					a.download = res.data.file_name;
+					a.click()
+					a.remove();
+					// axios.get(res.data.url,{
+					// 	headers:{
+					// 		'Content-Type': 'text/plain'
+					// 	}
+					// }).then(res => {
+					// 	console.log(res);
+					// })
+					// this.downloadFile(res.data.url)
+				})
+			},
+			downloadFile (url = '', fileName = '下载的文件'){
+				// 使用xhr下载文件
+				const xhr = new XMLHttpRequest()
+				xhr.open('GET', url, true)
+				xhr.responseType = 'blob'
+				xhr.onload = (e) => {
+					// 下载之后生成文件url 模拟a标签点击下载
+					const url = window.URL.createObjectURL(xhr.response)
+					const a = document.createElement('a')
+					a.href = url
+					a.download = fileName
+					a.click()
+				}
+				xhr.send()
+			},
+			closeEvent() {
+				console.log('guanbi');
+			},
+			getIndex() {
+				getIndex().then(res => {
+					this.setBaseInfo(res.data)
+				})
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.num) {
+					return that.$msg.error('请输入购买数量')
+				}
+				if (!that.form.transaction) {
+					return that.$msg.error('请输入交易密码')
+				}
+				if (this.hj > this.userInfo.money) {
+					return that.$msg.error('您的账号余额不足')
+				}
+				that.loading = true
+				createToken(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('购买成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+
+				that.dataloading = true
+				getTokenOrderList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 233 - 0
src/views/user/transferList.vue

@@ -0,0 +1,233 @@
+<template>
+	<div class="order-wrapper">
+		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
+		<el-card>
+			<!-- 搜索区域 -->
+			<el-col>
+				<div class="flex" style="justify-content: space-between;padding-bottom: 20px;">
+					<el-button type="primary" @click="openBuy">转账</el-button>
+					<el-button type="primary" icon="el-icon-refresh-right" @click="reload">刷新</el-button>
+				</div>
+			</el-col>
+			<!-- 订单表格区域 -->
+			<el-table :data="list" border style="width: 100%" max-height="620">
+				<el-table-column prop="id" label="id" width="180">
+				</el-table-column>
+				<el-table-column prop="transfer_num" label="转账金额(元)" width="250"></el-table-column>
+				<el-table-column prop="to_user_code" label="收款人" width="150">
+				</el-table-column>
+				<el-table-column prop="status" label="创建时间">
+					<template slot-scope="scope">
+						{{showTime(scope.row.createtime)}}
+					</template>
+				</el-table-column>
+				<el-table-column prop="balance" label="转账后用户余额">
+					<template slot-scope="scope">
+						{{userInfo.id == scope.row.to_user_id ? scope.row.balance: ''}}
+					</template>
+				</el-table-column>
+			</el-table>
+			<div style="height: 20px;"></div>
+			<!-- 分页区域 -->
+			<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+				:current-page="queryInfo.page" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pagesize"
+				layout="total, prev, pager, next, jumper" :total="total">
+			</el-pagination>
+		</el-card>
+		<!-- 修改地址对话框 -->
+		<el-dialog title="转账" :visible.sync="dialogTableVisible">
+			<el-form :model="form">
+				<el-form-item label="收款用户ID" :label-width="formLabelWidth">
+					<el-input v-model="form.to_user_id" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="转账金额" :label-width="formLabelWidth">
+					<el-input v-model="form.transfer_num" type="number"></el-input>
+				</el-form-item>
+				<el-form-item label="动态口令" :label-width="formLabelWidth" v-if="userInfo.is_binding == 1">
+					<el-input v-model="form.code" type="number"></el-input>
+				</el-form-item>
+			</el-form>
+			<div class="t-r">
+				当前余额: {{userInfo.money*1}}元
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogTableVisible = false">取 消</el-button>
+				<el-button type="primary" @click="goBuy">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import {
+			mapState,
+			mapMutations
+		} from 'vuex';
+	import {
+		createCode,
+		getCodeList,
+		getUserList
+	} from '@/request/agent.js'
+	import {
+		getRechangeList,
+		rechange,
+		getTransferList,
+		transfer,
+		getUserInfo
+	} from '@/request/user.js'
+	import {
+		showTime
+	} from '@/assets/js/tools.js'
+
+	export default {
+		name: 'Order',
+		data() {
+			return {
+				loading: false,
+				formLabelWidth: '100px',
+				form: {
+					to_user_id: '',
+					transfer_num: '',
+					code: ''
+				},
+				dialogTableVisible: false,
+				queryInfo: {
+					type: -1, //-1->全部 0->银行卡 1->微信 2->支付宝 
+					page: 1,
+					limit: 10
+				},
+				list: [],
+				total: 0,
+				dataloading: false,
+				headers: {},
+			}
+		},
+		computed: {
+			...mapState(['userInfo'])
+		},
+		created() {
+			this.getList()
+			this.headers['token'] = window.sessionStorage.getItem('token')
+		},
+		methods: {
+			...mapMutations(['setUserInfo']),
+			showTime,
+			reload() {
+				this.getList('reload')
+				this.getUserInfo()
+			},
+			getUserInfo() {
+				getUserInfo().then(res => {
+					this.setUserInfo(res.data)
+				})
+			},
+			handleAvatarSuccess(res, file) {
+				this.form.image = res.data.fullurl;
+				console.log(this.form.image, 'this.form.avatar');
+			},
+			beforeAvatarUpload(file) {
+				// const isJPG = file.type === 'image/jpeg/png';
+				// const isLt2M = file.size / 1024 / 1024 < 2;
+
+				// if (!isJPG) {
+				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
+				// }
+				// if (!isLt2M) {
+				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
+				// }
+				// return isJPG && isLt2M;
+				return true
+			},
+			handleAvatarError() {
+
+			},
+			openBuy() {
+				this.dialogTableVisible = true
+			},
+			goBuy() {
+				let that = this
+				if (that.loading) {
+					return
+				}
+				if (!that.form.to_user_id) {
+					return that.$msg.error('请输入收款人ID')
+				}
+				if (!that.form.transfer_num) {
+					return that.$msg.error('请输入转账金额')
+				}
+				if(that.userInfo.money < that.form.transfer_num*1) {
+					return that.$msg.error('您的余额不足本次转账')
+				}
+				that.loading = true
+				transfer(that.form).then(res => {
+					console.log(res);
+					that.$msg.success('转账成功')
+					that.dialogTableVisible = false
+					that.loading = false
+					that.getList('reload')
+					that.getUserInfo()
+				}).catch(err => {
+					that.loading = false
+				})
+			},
+			getList(type) {
+				let that = this
+				if (type == 'reload') {
+					that.dataloading = false
+					that.queryInfo.page = 1
+					that.dataloading = false
+				}
+				if (that.dataloading) {
+					return
+				}
+				
+				that.dataloading = true
+				getTransferList(that.queryInfo).then(res => {
+					that.total = res.data.count
+					that.list = res.data.data
+					that.dataloading = false
+				}).catch(err => {
+					that.dataloading = false
+				})
+			},
+			handleSizeChange(newPageSize) {
+				this.queryInfo.limit = newPageSize
+				this.getList()
+			},
+			handleCurrentChange(newPageNum) {
+				this.queryInfo.page = newPageNum
+				this.getList()
+			},
+		},
+
+	}
+</script>
+
+<style scoped lang="scss">
+	.avatar-uploader .el-upload {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		cursor: pointer;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.avatar-uploader .el-upload:hover {
+		border-color: #409EFF;
+	}
+
+	.avatar-uploader-icon {
+		font-size: 28px;
+		color: #8c939d;
+		width: 178px;
+		height: 178px;
+		line-height: 178px;
+		text-align: center;
+		border: 1px dashed #d9d9d9;
+		border-radius: 10px;
+	}
+	.t-r {
+		text-align: right;
+		padding-top: 10px;
+	}
+</style>

+ 19 - 0
vue.config.js

@@ -0,0 +1,19 @@
+'use strict'
+const path = require('path')
+const port = process.env.port || process.env.npm_config_port || 9527 // dev port
+module.exports = {
+  publicPath: '/pc',
+  outputDir: 'dist',
+  indexPath: process.env.NODE_ENV === 'development' ? 'mer.html' : 'index.html',
+  lintOnSave: process.env.NODE_ENV === 'development',
+  productionSourceMap: false,
+  devServer: {
+    port: port,
+    // open: true,
+    overlay: {
+      warnings: false,
+      errors: true
+    }
+  }
+ 
+}