fyw 2 years ago
parent
commit
999f503aae

+ 1 - 0
README.md

@@ -2,3 +2,4 @@
 
 
 sport 项目的 H5 内嵌页(Vue-cli4.x + yarn 搭建的) 适配是用 px-to-vw
 sport 项目的 H5 内嵌页(Vue-cli4.x + yarn 搭建的) 适配是用 px-to-vw
 
 
+node use 10.16.3

+ 0 - 0
dist/css/guide.d3572239.css → dist/css/guide.f3d51adf.css


+ 1 - 0
dist/css/link.d9c11c90.css

@@ -0,0 +1 @@
+.link[data-v-7a590f09]{background-color:#f1f1f1;min-height:100vh}.link__header[data-v-7a590f09]{height:53.33333vw}.link__body .btn[data-v-7a590f09]{background-color:#333;border-radius:1.06667vw}.link__body .block[data-v-7a590f09]{background-color:#fff;border-radius:2.13333vw}.link__body .logo[data-v-7a590f09]{width:21.33333vw;height:21.6vw}.link__body .icon[data-v-7a590f09]{width:12vw;height:12vw}

BIN
dist/img/logo@2x.82bf8a00.png


+ 1 - 1
dist/index.html

@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>sport-web</title><link href="/css/about.b45c6ce0.css" rel="prefetch"><link href="/css/guide.d3572239.css" rel="prefetch"><link href="/js/about.8cfd5d9f.js" rel="prefetch"><link href="/js/guide.09a43e0e.js" rel="prefetch"><link href="/css/app.3b957694.css" rel="preload" as="style"><link href="/css/chunk-vendors.74377dc6.css" rel="preload" as="style"><link href="/js/app.9c65c6f1.js" rel="preload" as="script"><link href="/js/chunk-vendors.1fb8cd19.js" rel="preload" as="script"><link href="/css/chunk-vendors.74377dc6.css" rel="stylesheet"><link href="/css/app.3b957694.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but sport-web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.1fb8cd19.js"></script><script src="/js/app.9c65c6f1.js"></script></body></html>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title></title><link href="/css/about.b45c6ce0.css" rel="prefetch"><link href="/css/guide.f3d51adf.css" rel="prefetch"><link href="/css/link.d9c11c90.css" rel="prefetch"><link href="/js/about.8cfd5d9f.js" rel="prefetch"><link href="/js/guide.09a43e0e.js" rel="prefetch"><link href="/js/link.a31f776b.js" rel="prefetch"><link href="/css/app.3b957694.css" rel="preload" as="style"><link href="/css/chunk-vendors.74377dc6.css" rel="preload" as="style"><link href="/js/app.e9e0a480.js" rel="preload" as="script"><link href="/js/chunk-vendors.3ba1c121.js" rel="preload" as="script"><link href="/css/chunk-vendors.74377dc6.css" rel="stylesheet"><link href="/css/app.3b957694.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but sport-web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.3ba1c121.js"></script><script src="/js/app.e9e0a480.js"></script></body></html>

File diff suppressed because it is too large
+ 0 - 0
dist/js/app.9c65c6f1.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/app.e9e0a480.js


+ 0 - 0
dist/js/chunk-vendors.1fb8cd19.js → dist/js/chunk-vendors.3ba1c121.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/link.a31f776b.js


+ 335 - 40
package-lock.json

@@ -2926,6 +2926,7 @@
       "version": "7.12.5",
       "version": "7.12.5",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.12.5.tgz",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.12.5.tgz",
       "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
       "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+      "dev": true,
       "requires": {
       "requires": {
         "regenerator-runtime": "^0.13.4"
         "regenerator-runtime": "^0.13.4"
       },
       },
@@ -2933,7 +2934,8 @@
         "regenerator-runtime": {
         "regenerator-runtime": {
           "version": "0.13.9",
           "version": "0.13.9",
           "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
           "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+          "dev": true
         }
         }
       }
       }
     },
     },
@@ -3258,11 +3260,6 @@
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
       "dev": true
     },
     },
-    "@popperjs/core": {
-      "version": "2.11.6",
-      "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz",
-      "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
-    },
     "@soda/friendly-errors-webpack-plugin": {
     "@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.0",
       "version": "1.8.0",
       "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz",
       "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz",
@@ -3516,6 +3513,13 @@
       "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
       "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
       "dev": true
       "dev": true
     },
     },
+    "@types/parse-json": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz",
+      "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+      "dev": true,
+      "optional": true
+    },
     "@types/q": {
     "@types/q": {
       "version": "1.5.5",
       "version": "1.5.5",
       "resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz",
       "resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz",
@@ -3663,6 +3667,8 @@
     },
     },
     "@typescript-eslint/eslint-plugin": {
     "@typescript-eslint/eslint-plugin": {
       "version": "2.34.0",
       "version": "2.34.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz",
+      "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@typescript-eslint/experimental-utils": "2.34.0",
         "@typescript-eslint/experimental-utils": "2.34.0",
@@ -3693,6 +3699,8 @@
     },
     },
     "@typescript-eslint/parser": {
     "@typescript-eslint/parser": {
       "version": "2.34.0",
       "version": "2.34.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-2.34.0.tgz",
+      "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@types/eslint-visitor-keys": "^1.0.0",
         "@types/eslint-visitor-keys": "^1.0.0",
@@ -3736,23 +3744,16 @@
         }
         }
       }
       }
     },
     },
-    "@vant/icons": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz",
-      "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg=="
-    },
-    "@vant/popperjs": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.2.1.tgz",
-      "integrity": "sha512-qzQlrPE4aOsBzfrktDVwzQy/QICCTKifmjrruhY58+Q2fobUYp/T9QINluIafzsD3VJwgP8+HFVLBsyDmy3VZQ==",
-      "requires": {
-        "@popperjs/core": "^2.9.2"
-      }
+    "@vant/touch-emulator": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/@vant/touch-emulator/-/touch-emulator-1.4.0.tgz",
+      "integrity": "sha512-Zt+zISV0+wpOew2S1siOJ3G22y+hapHAKmXM+FhpvWzsRc4qahaYXatCAITuuXt0EcDp7WvEeTO4F7p9AtX/pw=="
     },
     },
     "@vue/babel-helper-vue-jsx-merge-props": {
     "@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.2.1",
       "version": "1.2.1",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
-      "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA=="
+      "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==",
+      "dev": true
     },
     },
     "@vue/babel-helper-vue-transform-on": {
     "@vue/babel-helper-vue-transform-on": {
       "version": "1.0.2",
       "version": "1.0.2",
@@ -3938,6 +3939,8 @@
     },
     },
     "@vue/cli-plugin-babel": {
     "@vue/cli-plugin-babel": {
       "version": "4.5.9",
       "version": "4.5.9",
+      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.9.tgz",
+      "integrity": "sha512-2tzaJU5yqAfXVhg1aYyd/Yfif6brv+tDZ49D1aOk7ZgMIwH5YUa0yo5HPcPOcmfpoVoNYcpqVYRfyT4EXIYSpg==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@babel/core": "^7.11.0",
         "@babel/core": "^7.11.0",
@@ -3951,6 +3954,8 @@
     },
     },
     "@vue/cli-plugin-eslint": {
     "@vue/cli-plugin-eslint": {
       "version": "4.5.9",
       "version": "4.5.9",
+      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.9.tgz",
+      "integrity": "sha512-wTsWRiRWPW5ik4bgtlh4P4h63Zgjsyvqx2FY0kcj+bSAnQGPJ3bKUOMU9KQP5EyNH6pAXMVGh2LEXK9WwJMf1w==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@vue/cli-shared-utils": "^4.5.9",
         "@vue/cli-shared-utils": "^4.5.9",
@@ -3972,12 +3977,15 @@
     },
     },
     "@vue/cli-plugin-typescript": {
     "@vue/cli-plugin-typescript": {
       "version": "4.5.9",
       "version": "4.5.9",
+      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-4.5.9.tgz",
+      "integrity": "sha512-DE8+F5q70PS+cnmKS+xhRqbtnAcrWB6zIoA9FTHD8QQ9Rnjc5HKTGFmh63gCAzFulYIOMZsNlySfYJfeJMqFSg==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@types/webpack-env": "^1.15.2",
         "@types/webpack-env": "^1.15.2",
         "@vue/cli-shared-utils": "^4.5.9",
         "@vue/cli-shared-utils": "^4.5.9",
         "cache-loader": "^4.1.0",
         "cache-loader": "^4.1.0",
         "fork-ts-checker-webpack-plugin": "^3.1.1",
         "fork-ts-checker-webpack-plugin": "^3.1.1",
+        "fork-ts-checker-webpack-plugin-v5": "npm:fork-ts-checker-webpack-plugin@^5.0.11",
         "globby": "^9.2.0",
         "globby": "^9.2.0",
         "thread-loader": "^2.1.3",
         "thread-loader": "^2.1.3",
         "ts-loader": "^6.2.2",
         "ts-loader": "^6.2.2",
@@ -3988,6 +3996,8 @@
     },
     },
     "@vue/cli-plugin-unit-jest": {
     "@vue/cli-plugin-unit-jest": {
       "version": "4.5.9",
       "version": "4.5.9",
+      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.9.tgz",
+      "integrity": "sha512-ijgwghS0SMUrJc1irMJYzH1Slv8oV3pQ/PKNuy60APdpOD/f6LDtJCJPaBGfSJQtMvcANslm1FIV1lqrNWtbPw==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@babel/core": "^7.11.0",
         "@babel/core": "^7.11.0",
@@ -4125,6 +4135,8 @@
     },
     },
     "@vue/cli-service": {
     "@vue/cli-service": {
       "version": "4.5.9",
       "version": "4.5.9",
+      "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-4.5.9.tgz",
+      "integrity": "sha512-E3XlfM0q+UnnjbC9rwLIWNo2umZCRwnlMJY0KOhY1hFvqisGIYzFmQQ4o01KGyTx2BZNMuQg7Kw+BZ5gyM1Wig==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@intervolga/optimize-cssnano-plugin": "^1.0.5",
         "@intervolga/optimize-cssnano-plugin": "^1.0.5",
@@ -4176,6 +4188,7 @@
         "thread-loader": "^2.1.3",
         "thread-loader": "^2.1.3",
         "url-loader": "^2.2.0",
         "url-loader": "^2.2.0",
         "vue-loader": "^15.9.2",
         "vue-loader": "^15.9.2",
+        "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7",
         "vue-style-loader": "^4.1.2",
         "vue-style-loader": "^4.1.2",
         "webpack": "^4.0.0",
         "webpack": "^4.0.0",
         "webpack-bundle-analyzer": "^3.8.0",
         "webpack-bundle-analyzer": "^3.8.0",
@@ -4250,6 +4263,8 @@
     },
     },
     "@vue/compiler-sfc": {
     "@vue/compiler-sfc": {
       "version": "3.0.4",
       "version": "3.0.4",
+      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.0.4.tgz",
+      "integrity": "sha512-brDn6HTuK6R3oBCjtMPPsIpyJEZFinlnxjtBXww/goFJOJBAU9CrsdegwyZItNnixCFUIg4CLv4Nj1Eg/eKlfg==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@babel/parser": "^7.12.0",
         "@babel/parser": "^7.12.0",
@@ -4340,6 +4355,8 @@
     },
     },
     "@vue/eslint-config-prettier": {
     "@vue/eslint-config-prettier": {
       "version": "6.0.0",
       "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz",
+      "integrity": "sha512-wFQmv45c3ige5EA+ngijq40YpVcIkAy0Lihupnsnd1Dao5CBbPyfCzqtejFLZX1EwH/kCJdpz3t6s+5wd3+KxQ==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "eslint-config-prettier": "^6.0.0"
         "eslint-config-prettier": "^6.0.0"
@@ -4347,6 +4364,8 @@
     },
     },
     "@vue/eslint-config-typescript": {
     "@vue/eslint-config-typescript": {
       "version": "5.1.0",
       "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-5.1.0.tgz",
+      "integrity": "sha512-wFAdPMWegKZOdbQBEWV4/KbOKuX/6Q5db3304kiWNBK+6P7+CoMrsbaKzJFjuAZF7fQR2fJtZT9ciGWVVT//vw==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "vue-eslint-parser": "^7.0.0"
         "vue-eslint-parser": "^7.0.0"
@@ -4392,6 +4411,8 @@
     },
     },
     "@vue/test-utils": {
     "@vue/test-utils": {
       "version": "2.0.0-beta.12",
       "version": "2.0.0-beta.12",
+      "resolved": "https://registry.npmmirror.com/@vue/test-utils/-/test-utils-2.0.0-beta.12.tgz",
+      "integrity": "sha512-kRxM1IspG06i7smyVAgbN4C444ssKfnX67ETveZdb1AP7f6Kr3+bV4MmIwOsIZc6t7KK8gzx+clZd2jDeH4kMw==",
       "dev": true
       "dev": true
     },
     },
     "@vue/web-component-wrapper": {
     "@vue/web-component-wrapper": {
@@ -4947,6 +4968,13 @@
       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
       "dev": true
       "dev": true
     },
     },
+    "at-least-node": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
+      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+      "dev": true,
+      "optional": true
+    },
     "atob": {
     "atob": {
       "version": "2.1.2",
       "version": "2.1.2",
       "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
@@ -4982,6 +5010,8 @@
     },
     },
     "axios": {
     "axios": {
       "version": "0.21.0",
       "version": "0.21.0",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-0.21.0.tgz",
+      "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==",
       "requires": {
       "requires": {
         "follow-redirects": "^1.10.0"
         "follow-redirects": "^1.10.0"
       }
       }
@@ -7804,6 +7834,8 @@
     },
     },
     "eslint": {
     "eslint": {
       "version": "6.8.0",
       "version": "6.8.0",
+      "resolved": "https://registry.npmmirror.com/eslint/-/eslint-6.8.0.tgz",
+      "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@babel/code-frame": "^7.0.0",
         "@babel/code-frame": "^7.0.0",
@@ -7912,6 +7944,8 @@
     },
     },
     "eslint-plugin-prettier": {
     "eslint-plugin-prettier": {
       "version": "3.2.0",
       "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.2.0.tgz",
+      "integrity": "sha512-kOUSJnFjAUFKwVxuzy6sA5yyMx6+o9ino4gCdShzBNx4eyFRudWRYKCFolKjoM40PEiuU6Cn7wBLfq3WsGg7qg==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "prettier-linter-helpers": "^1.0.0"
         "prettier-linter-helpers": "^1.0.0"
@@ -7919,6 +7953,8 @@
     },
     },
     "eslint-plugin-vue": {
     "eslint-plugin-vue": {
       "version": "7.2.0",
       "version": "7.2.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-7.2.0.tgz",
+      "integrity": "sha512-4mt0yIv6rBDNtvis/g22a0ozJ12GfcdEzX77u0ICYjKlxOVtGrKGEvo0cbOObHaKDg9a9kJcoaNodqE4TPfS2A==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "eslint-utils": "^2.1.0",
         "eslint-utils": "^2.1.0",
@@ -8618,6 +8654,173 @@
         "worker-rpc": "^0.1.0"
         "worker-rpc": "^0.1.0"
       }
       }
     },
     },
+    "fork-ts-checker-webpack-plugin-v5": {
+      "version": "npm:fork-ts-checker-webpack-plugin@5.2.1",
+      "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.2.1.tgz",
+      "integrity": "sha512-SVi+ZAQOGbtAsUWrZvGzz38ga2YqjWvca1pXQFUArIVXqli0lLoDQ8uS0wg0kSpcwpZmaW5jVCZXQebkyUQSsw==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "@babel/code-frame": "^7.8.3",
+        "@types/json-schema": "^7.0.5",
+        "chalk": "^4.1.0",
+        "cosmiconfig": "^6.0.0",
+        "deepmerge": "^4.2.2",
+        "fs-extra": "^9.0.0",
+        "memfs": "^3.1.2",
+        "minimatch": "^3.0.4",
+        "schema-utils": "2.7.0",
+        "semver": "^7.3.2",
+        "tapable": "^1.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "cosmiconfig": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+          "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/parse-json": "^4.0.0",
+            "import-fresh": "^3.1.0",
+            "parse-json": "^5.0.0",
+            "path-type": "^4.0.0",
+            "yaml": "^1.7.2"
+          }
+        },
+        "fs-extra": {
+          "version": "9.1.0",
+          "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
+          "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "at-least-node": "^1.0.0",
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "jsonfile": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+          "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.6",
+            "universalify": "^2.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "yallist": "^4.0.0"
+          }
+        },
+        "parse-json": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
+          "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+          "dev": true,
+          "optional": 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"
+          }
+        },
+        "path-type": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
+          "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+          "dev": true,
+          "optional": true
+        },
+        "schema-utils": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz",
+          "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/json-schema": "^7.0.4",
+            "ajv": "^6.12.2",
+            "ajv-keywords": "^3.4.1"
+          }
+        },
+        "semver": {
+          "version": "7.3.7",
+          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
+          "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "universalify": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+          "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
     "form-data": {
     "form-data": {
       "version": "2.3.3",
       "version": "2.3.3",
       "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
       "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
@@ -8680,6 +8883,13 @@
         "minipass": "^3.0.0"
         "minipass": "^3.0.0"
       }
       }
     },
     },
+    "fs-monkey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz",
+      "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==",
+      "dev": true,
+      "optional": true
+    },
     "fs-write-stream-atomic": {
     "fs-write-stream-atomic": {
       "version": "1.0.10",
       "version": "1.0.10",
       "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
       "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -11360,6 +11570,16 @@
       "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
       "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
       "dev": true
       "dev": true
     },
     },
+    "memfs": {
+      "version": "3.4.7",
+      "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.4.7.tgz",
+      "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "fs-monkey": "^1.0.3"
+      }
+    },
     "memory-fs": {
     "memory-fs": {
       "version": "0.4.1",
       "version": "0.4.1",
       "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz",
       "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz",
@@ -13163,6 +13383,8 @@
     },
     },
     "postcss-px-to-viewport": {
     "postcss-px-to-viewport": {
       "version": "1.1.1",
       "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/postcss-px-to-viewport/-/postcss-px-to-viewport-1.1.1.tgz",
+      "integrity": "sha512-2x9oGnBms+e0cYtBJOZdlwrFg/mLR4P1g2IFu7jYKvnqnH/HLhoKyareW2Q/x4sg0BgklHlP1qeWo2oCyPm8FQ==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "object-assign": ">=4.0.1",
         "object-assign": ">=4.0.1",
@@ -14109,6 +14331,8 @@
     },
     },
     "sass": {
     "sass": {
       "version": "1.30.0",
       "version": "1.30.0",
+      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.30.0.tgz",
+      "integrity": "sha512-26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "chokidar": ">=2.0.0 <4.0.0"
         "chokidar": ">=2.0.0 <4.0.0"
@@ -14116,6 +14340,8 @@
     },
     },
     "sass-loader": {
     "sass-loader": {
       "version": "8.0.2",
       "version": "8.0.2",
+      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-8.0.2.tgz",
+      "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "clone-deep": "^4.0.1",
         "clone-deep": "^4.0.1",
@@ -15762,6 +15988,8 @@
     },
     },
     "typescript": {
     "typescript": {
       "version": "3.9.7",
       "version": "3.9.7",
+      "resolved": "https://registry.npmmirror.com/typescript/-/typescript-3.9.7.tgz",
+      "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
       "dev": true
       "dev": true
     },
     },
     "uglify-js": {
     "uglify-js": {
@@ -16073,18 +16301,6 @@
         "spdx-expression-parse": "^3.0.0"
         "spdx-expression-parse": "^3.0.0"
       }
       }
     },
     },
-    "vant": {
-      "version": "2.12.48",
-      "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.48.tgz",
-      "integrity": "sha512-cTv5V8pYboLrryMAThTu9Nrjroc6z246ktvvRbQ6v+G/yUH2tJia4S/L8RaTCH6btiuoeKZbtFAjkeQUPYeOtQ==",
-      "requires": {
-        "@babel/runtime": "7.x",
-        "@vant/icons": "^1.7.1",
-        "@vant/popperjs": "^1.1.0",
-        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
-        "vue-lazyload": "1.2.3"
-      }
-    },
     "vary": {
     "vary": {
       "version": "1.1.2",
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@@ -16116,6 +16332,8 @@
     },
     },
     "vue": {
     "vue": {
       "version": "3.0.4",
       "version": "3.0.4",
+      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.0.4.tgz",
+      "integrity": "sha512-2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A==",
       "requires": {
       "requires": {
         "@vue/compiler-dom": "3.0.4",
         "@vue/compiler-dom": "3.0.4",
         "@vue/runtime-dom": "3.0.4",
         "@vue/runtime-dom": "3.0.4",
@@ -16144,6 +16362,8 @@
     },
     },
     "vue-jest": {
     "vue-jest": {
       "version": "5.0.0-alpha.7",
       "version": "5.0.0-alpha.7",
+      "resolved": "https://registry.npmmirror.com/vue-jest/-/vue-jest-5.0.0-alpha.7.tgz",
+      "integrity": "sha512-cB7ccBXqQsdMt/rzPVPlKeBS486uyXhR+q3A5t22ibhMc6RDPwr7bbb6XFcViv7xyIG9/MkKgSESg67mHv2/9w==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@babel/plugin-transform-modules-commonjs": "^7.2.0",
         "@babel/plugin-transform-modules-commonjs": "^7.2.0",
@@ -16153,11 +16373,6 @@
         "ts-jest": "^24.0.0"
         "ts-jest": "^24.0.0"
       }
       }
     },
     },
-    "vue-lazyload": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
-      "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
-    },
     "vue-loader": {
     "vue-loader": {
       "version": "15.9.5",
       "version": "15.9.5",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.9.5.tgz",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.9.5.tgz",
@@ -16179,8 +16394,84 @@
         }
         }
       }
       }
     },
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.8.3",
+      "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz",
+          "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-router": {
     "vue-router": {
-      "version": "4.0.1"
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.1.tgz",
+      "integrity": "sha512-2C2nRxA2nCusgJyUpvcbd9Bnc9kACp/VLUCK4drXtgeRXHjQliZJcgjjP268vkGvvEKun9jjp8Ic1PpzUgbYKg=="
     },
     },
     "vue-style-loader": {
     "vue-style-loader": {
       "version": "4.1.2",
       "version": "4.1.2",
@@ -16206,9 +16497,6 @@
       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
       "dev": true
       "dev": true
     },
     },
-    "vuex": {
-      "version": "4.0.0-rc.2"
-    },
     "w3c-hr-time": {
     "w3c-hr-time": {
       "version": "1.0.2",
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
       "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -16865,6 +17153,13 @@
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
       "dev": true
       "dev": true
     },
     },
+    "yaml": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
+      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+      "dev": true,
+      "optional": true
+    },
     "yargs": {
     "yargs": {
       "version": "13.3.2",
       "version": "13.3.2",
       "resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz",
       "resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz",

+ 2 - 0
package.json

@@ -19,6 +19,7 @@
     "@types/jest": "^24.0.19",
     "@types/jest": "^24.0.19",
     "@typescript-eslint/eslint-plugin": "^2.33.0",
     "@typescript-eslint/eslint-plugin": "^2.33.0",
     "@typescript-eslint/parser": "^2.33.0",
     "@typescript-eslint/parser": "^2.33.0",
+    "@vant/touch-emulator": "^1.4.0",
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
     "@vue/cli-plugin-router": "~4.5.0",
     "@vue/cli-plugin-router": "~4.5.0",
@@ -38,6 +39,7 @@
     "sass": "^1.26.5",
     "sass": "^1.26.5",
     "sass-loader": "^8.0.2",
     "sass-loader": "^8.0.2",
     "typescript": "~3.9.3",
     "typescript": "~3.9.3",
+    "vant-touch-emulator": "^0.0.1-beta.0",
     "vue-jest": "^5.0.0-0"
     "vue-jest": "^5.0.0-0"
   }
   }
 }
 }

+ 5 - 5
postcss.config.js

@@ -3,13 +3,13 @@ module.exports = {
     autoprefixer: {},
     autoprefixer: {},
     "postcss-px-to-viewport": {
     "postcss-px-to-viewport": {
       viewportWidth: 375, //视口的宽度,对应的时设计稿的宽度/2,一般为750
       viewportWidth: 375, //视口的宽度,对应的时设计稿的宽度/2,一般为750
-      //viewportHeight: 667, //视口的高度,对应的是设计稿的高度(也可以不配置)
+      // viewportHeight: 1334, //视口的高度,对应的是设计稿的高度(也可以不配置)
       unitPrecision: 5, //指定‘px’转换为视口单位值的小数位数(很多时候无法整除)
       unitPrecision: 5, //指定‘px’转换为视口单位值的小数位数(很多时候无法整除)
-      viewportUnit: "vw", //指定需要转换成的视口单位,建议使用vw
+      viewportUnit: "rem", //指定需要转换成的视口单位,建议使用vw
       selectorBlackList: [".ignore-"], //指定不需要转换的类
       selectorBlackList: [".ignore-"], //指定不需要转换的类
       minPixelValue: 1, //小于或等于‘1px’不转换为视口单位
       minPixelValue: 1, //小于或等于‘1px’不转换为视口单位
       mediaQuery: false, //允许在媒体查询中转换为‘px’
       mediaQuery: false, //允许在媒体查询中转换为‘px’
-      // exclude: [/Tabbar/], //不需要转化的组件文件名正则,必须是正则表达式
-    },
-  },
+      exclude: [/node_modules/] //不需要转化的组件文件名正则,必须是正则表达式
+    }
+  }
 };
 };

+ 20 - 5
public/index.html

@@ -1,14 +1,29 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
   <head>
   <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">
-    <title><%= htmlWebpackPlugin.options.title %></title>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
+    <title></title>
+    <style>
+      @media (min-width: 540px) {
+        html {
+          font-size: 72px !important;
+        }
+        body{
+          max-width: 5.4rem;
+          margin: 0 auto !important;
+        }
+      }
+    </style>
   </head>
   </head>
   <body>
   <body>
     <noscript>
     <noscript>
-      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+      <strong
+        >We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
+        properly without JavaScript enabled. Please enable it to
+        continue.</strong
+      >
     </noscript>
     </noscript>
     <div id="app"></div>
     <div id="app"></div>
     <!-- built files will be auto injected -->
     <!-- built files will be auto injected -->

+ 6 - 2
src/App.vue

@@ -2,12 +2,16 @@
   <layout />
   <layout />
 </template>
 </template>
 <script>
 <script>
+import { defineComponent, onMounted } from "vue";
 import layout from "@/views/layout.vue";
 import layout from "@/views/layout.vue";
-export default {
+export default defineComponent({
   components: {
   components: {
     layout
     layout
+  },
+  setup() {
+    return {};
   }
   }
-};
+});
 </script>
 </script>
 <style lang="scss">
 <style lang="scss">
 @import "~@/styles/reset.css";
 @import "~@/styles/reset.css";

BIN
src/assets/link/guide@2x.png


BIN
src/assets/link/guide@3x.png


BIN
src/assets/link/logo@2x.png


BIN
src/assets/link/logo@3x.png


BIN
src/assets/link/store@2x.png


BIN
src/assets/link/wechat@2x.png


BIN
src/assets/link/wechat@3x.png


+ 4 - 5
src/components/Navbar/index.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <div class="navbar" v-if="!is">
   <div class="navbar" v-if="!is">
     <div class="ct df ai-c pl16 pr16">
     <div class="ct df ai-c pl16 pr16">
-      <van-icon name="arrow-left" size="18" color="#333333" @click="prev" />
+      <van-icon name="arrow-left" color="#333333" @click="prev" />
     </div>
     </div>
     <div class="slot"></div>
     <div class="slot"></div>
   </div>
   </div>
@@ -28,16 +28,15 @@ export default defineComponent({
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .navbar {
 .navbar {
   .ct {
   .ct {
-    height: 44px;
+    width: 7.5rem;
+    height: 0.44rem * 2;
     position: fixed;
     position: fixed;
     top: 0;
     top: 0;
-    left: 0;
-    right: 0;
     background-color: white;
     background-color: white;
     z-index: 999;
     z-index: 999;
   }
   }
   .slot {
   .slot {
-    height: 44px;
+    height: 0.44rem * 2;
     width: 100%;
     width: 100%;
   }
   }
 }
 }

+ 1 - 0
src/main.ts

@@ -2,6 +2,7 @@ import { createApp } from "vue";
 import App from "./App.vue";
 import App from "./App.vue";
 import router from "./router";
 import router from "./router";
 import { Button, Icon, Swipe, SwipeItem } from "vant";
 import { Button, Icon, Swipe, SwipeItem } from "vant";
+import "@vant/touch-emulator";
 import "vant/es/button/style";
 import "vant/es/button/style";
 import "vant/es/swipe/style";
 import "vant/es/swipe/style";
 import "vant/es/swipe-item/style";
 import "vant/es/swipe-item/style";

+ 23 - 12
src/router/index.ts

@@ -8,18 +8,18 @@ const routes: Array<RouteRecordRaw> = [
     meta: { title: "404" },
     meta: { title: "404" },
     component: emptyPage
     component: emptyPage
   },
   },
-  {
-    path: "/test-share",
-    name: "TestShare",
-    component: () =>
-      import(/* webpackChunkName: "about" */ "../views/sport-share-link.vue")
-  },
-  {
-    path: "/share",
-    name: "Share",
-    component: () =>
-      import(/* webpackChunkName: "about" */ "../views/sport-share-link.vue")
-  },
+  // {
+  //   path: "/test-share",
+  //   name: "TestShare",
+  //   component: () =>
+  //     import(/* webpackChunkName: "about" */ "../views/sport-share-link.vue")
+  // },
+  // {
+  //   path: "/share",
+  //   name: "Share",
+  //   component: () =>
+  //     import(/* webpackChunkName: "about" */ "../views/sport-share-link.vue")
+  // },
   // {
   // {
   //   path: "/game_guide",
   //   path: "/game_guide",
   //   name: "GuideAsss",
   //   name: "GuideAsss",
@@ -86,6 +86,13 @@ const routes: Array<RouteRecordRaw> = [
       import(
       import(
         /* webpackChunkName: "guide" */ "../views/Guide/Miracast/index.vue"
         /* webpackChunkName: "guide" */ "../views/Guide/Miracast/index.vue"
       )
       )
+  },
+  {
+    path: "/link",
+    name: "Link",
+    meta: { title: "" },
+    component: () =>
+      import(/* webpackChunkName: "link" */ "../views/Link/index.vue")
   }
   }
 ];
 ];
 
 
@@ -94,4 +101,8 @@ const router = createRouter({
   routes
   routes
 });
 });
 
 
+router.beforeEach((to, from, next) => {
+  document.title = to.meta && to.meta.title ? to.meta.title : "";
+  next();
+});
 export default router;
 export default router;

+ 17 - 17
src/styles/produce.scss

@@ -1,7 +1,7 @@
 //字体大小
 //字体大小
 @for $i from 10 through 36 {
 @for $i from 10 through 36 {
   .f#{$i} {
   .f#{$i} {
-    font-size: 1px * $i;
+    font-size: .01rem *2 * $i;
   }
   }
 }
 }
 
 
@@ -9,28 +9,28 @@
 @for $i from 5 through 100 {
 @for $i from 5 through 100 {
   @if $i%5==0 {
   @if $i%5==0 {
     .pt#{$i} {
     .pt#{$i} {
-      padding-top: 1px * $i;
+      padding-top: .01rem *2 * $i;
     }
     }
     .pb#{$i} {
     .pb#{$i} {
-      padding-bottom: 1px * $i;
+      padding-bottom: .01rem *2 * $i;
     }
     }
     .pl#{$i} {
     .pl#{$i} {
-      padding-left: 1px * $i;
+      padding-left: .01rem *2 * $i;
     }
     }
     .pr#{$i} {
     .pr#{$i} {
-      padding-right: 1px * $i;
+      padding-right: .01rem *2 * $i;
     }
     }
     .mt#{$i} {
     .mt#{$i} {
-      margin-top: 1px * $i;
+      margin-top: .01rem *2 * $i;
     }
     }
     .mb#{$i} {
     .mb#{$i} {
-      margin-bottom: 1px * $i;
+      margin-bottom: .01rem *2 * $i;
     }
     }
     .ml#{$i} {
     .ml#{$i} {
-      margin-left: 1px * $i;
+      margin-left: .01rem *2 * $i;
     }
     }
     .mr#{$i} {
     .mr#{$i} {
-      margin-right: 1px * $i;
+      margin-right: .01rem *2 * $i;
     }
     }
   }
   }
 }
 }
@@ -39,28 +39,28 @@
 @for $i from 2 through 16 {
 @for $i from 2 through 16 {
   @if $i%2==0 {
   @if $i%2==0 {
     .pt#{$i} {
     .pt#{$i} {
-      padding-top: 1px * $i;
+      padding-top: .01rem *2 * $i;
     }
     }
     .pb#{$i} {
     .pb#{$i} {
-      padding-bottom: 1px * $i;
+      padding-bottom: .01rem *2 * $i;
     }
     }
     .pl#{$i} {
     .pl#{$i} {
-      padding-left: 1px * $i;
+      padding-left: .01rem *2 * $i;
     }
     }
     .pr#{$i} {
     .pr#{$i} {
-      padding-right: 1px * $i;
+      padding-right: .01rem *2 * $i;
     }
     }
     .mt#{$i} {
     .mt#{$i} {
-      margin-top: 1px * $i;
+      margin-top: .01rem *2 * $i;
     }
     }
     .mb#{$i} {
     .mb#{$i} {
-      margin-bottom: 1px * $i;
+      margin-bottom: .01rem *2 * $i;
     }
     }
     .ml#{$i} {
     .ml#{$i} {
-      margin-left: 1px * $i;
+      margin-left: .01rem *2 * $i;
     }
     }
     .mr#{$i} {
     .mr#{$i} {
-      margin-right: 1px * $i;
+      margin-right: .01rem *2 * $i;
     }
     }
   }
   }
 }
 }

+ 2 - 2
src/styles/reset.css

@@ -1,4 +1,4 @@
-@charset "utf-8";html{background-color:#fff;color:#000;font-size:16px}
+@charset "utf-8";html{background-color:#fff;color:#000;}
 body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding:0}
 body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding:0}
 body,input,textarea,button,select,pre,xmp,tt,code,kbd,samp{line-height:1.5;font-family:tahoma,arial,"Hiragino Sans GB",simsun,sans-serif}
 body,input,textarea,button,select,pre,xmp,tt,code,kbd,samp{line-height:1.5;font-family:tahoma,arial,"Hiragino Sans GB",simsun,sans-serif}
 h1,h2,h3,h4,h5,h6,small,big,input,textarea,button,select{font-size:100%}
 h1,h2,h3,h4,h5,h6,small,big,input,textarea,button,select{font-size:100%}
@@ -23,4 +23,4 @@ html {overflow-x: hidden;font-size: 50px;-webkit-tap-highlight-color: transparen
 body {font-family: 'PingFang', Microsoft Yahei, Hiragino Sans GB,
 body {font-family: 'PingFang', Microsoft Yahei, Hiragino Sans GB,
   WenQuanYi Micro Hei, sans-serif;color: #333;line-height: 1;-webkit-text-size-adjust: none;}
   WenQuanYi Micro Hei, sans-serif;color: #333;line-height: 1;-webkit-text-size-adjust: none;}
 /* hr {height: .02rem;margin: .1rem 0;border: medium none;} */
 /* hr {height: .02rem;margin: .1rem 0;border: medium none;} */
-a {color: #25a4bb;text-decoration: none;}
+a {color: #25a4bb;text-decoration: none;}

+ 6 - 5
src/styles/utils.scss

@@ -100,24 +100,24 @@
 
 
 //边框
 //边框
 .bd {
 .bd {
-  border: 1px solid #DCDCDC;
+  border: .01rem *2 solid #DCDCDC;
 }
 }
 
 
 .bd-b {
 .bd-b {
-  border-bottom: 1px solid #DCDCDC;
+  border-bottom: .01rem *2 solid #DCDCDC;
 }
 }
 
 
 .bd-t {
 .bd-t {
-  border-top: 1px solid #DCDCDC;
+  border-top: .01rem *2 solid #DCDCDC;
 }
 }
 
 
 
 
 //圆角
 //圆角
 .br-10 {
 .br-10 {
-  border-radius: 10px;
+  border-radius: 1rem *2;
 }
 }
 .br-5 {
 .br-5 {
-  border-radius: 5px;
+  border-radius: .5rem *2;
 }
 }
 
 
 // 按钮禁用
 // 按钮禁用
@@ -146,3 +146,4 @@
   text-overflow: ellipsis;
   text-overflow: ellipsis;
   white-space: nowrap;
   white-space: nowrap;
 }
 }
+

+ 6 - 6
src/views/Guide/Begin/index.vue

@@ -2,7 +2,7 @@
   <div class="container df fdc">
   <div class="container df fdc">
     <navbar v-if="!is" />
     <navbar v-if="!is" />
     <div class="flex-1 df ai-c jc-c">
     <div class="flex-1 df ai-c jc-c">
-      <van-swipe :loop="false">
+      <van-swipe ref="swipe" :loop="false">
         <van-swipe-item>
         <van-swipe-item>
           <div class="tc pl30 pr30 pt16 pb30">
           <div class="tc pl30 pr30 pt16 pb30">
             <h3 class="f22 fw">开始运动</h3>
             <h3 class="f22 fw">开始运动</h3>
@@ -51,15 +51,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -71,8 +71,8 @@ export default defineComponent({
   .a1,
   .a1,
   .a2,
   .a2,
   .a3 {
   .a3 {
-    width: 312px;
-    height: 399px;
+    width: 3.12rem * 2;
+    height: 3.99rem * 2;
   }
   }
 
 
   ::v-deep .van-swipe__indicator {
   ::v-deep .van-swipe__indicator {

+ 7 - 7
src/views/Guide/Connect/index.vue

@@ -56,15 +56,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -73,13 +73,13 @@ export default defineComponent({
     line-height: 1.5;
     line-height: 1.5;
   }
   }
   .connect-1 {
   .connect-1 {
-    width: 200px;
-    height: 200px;
+    width: 2rem * 2;
+    height: 2rem * 2;
   }
   }
   .connect-2,
   .connect-2,
   .connect-3 {
   .connect-3 {
-    width: 312px;
-    height: 399px;
+    width: 3.12rem * 2;
+    height: 3.99rem * 2;
   }
   }
 
 
   ::v-deep .van-swipe__indicator {
   ::v-deep .van-swipe__indicator {

+ 3 - 11
src/views/Guide/Index/components/VideoDialog/index.vue

@@ -5,13 +5,6 @@
     >
     >
     <video class="player" controls autoplay>
     <video class="player" controls autoplay>
       <source :src="url" type="video/mp4" />
       <source :src="url" type="video/mp4" />
-      <object data="movie.mp4" width="320" height="240">
-        <embed
-          width="320"
-          height="240"
-          src="https://www.runoob.com/try/demo_source/intro.swf"
-        />
-      </object>
     </video>
     </video>
   </div>
   </div>
 </template>
 </template>
@@ -58,17 +51,16 @@ export default defineComponent({
 </style>
 </style>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .video-dialog {
 .video-dialog {
+  width: 7.5rem;
   position: fixed;
   position: fixed;
-  left: 0;
-  right: 0;
   top: 0;
   top: 0;
   bottom: 0;
   bottom: 0;
   z-index: 999;
   z-index: 999;
   background: rgba($color: #000000, $alpha: 1);
   background: rgba($color: #000000, $alpha: 1);
   .close {
   .close {
     position: absolute;
     position: absolute;
-    left: 20px;
-    top: 20px;
+    left: 0.2rem * 2;
+    top: 0.2rem * 2;
     z-index: 99;
     z-index: 99;
   }
   }
   .player {
   .player {

+ 15 - 21
src/views/Guide/Index/index.vue

@@ -158,13 +158,7 @@
   </keep-alive>
   </keep-alive>
 </template>
 </template>
 <script lang="ts">
 <script lang="ts">
-import {
-  defineComponent,
-  ref,
-  reactive,
-  onUnmounted,
-  onBeforeUnmount
-} from "vue";
+import { defineComponent, ref, reactive } from "vue";
 import { useRoute, useRouter } from "vue-router";
 import { useRoute, useRouter } from "vue-router";
 import VideoDialog from "./components/VideoDialog/index.vue";
 import VideoDialog from "./components/VideoDialog/index.vue";
 export default defineComponent({
 export default defineComponent({
@@ -268,7 +262,7 @@ export default defineComponent({
 .guide {
 .guide {
   min-height: 100vh;
   min-height: 100vh;
   background-color: #f1f1f1;
   background-color: #f1f1f1;
-  padding: 16px;
+  padding: 0.16 * 2rem;
   box-sizing: border-box;
   box-sizing: border-box;
   &__header {
   &__header {
     .flex {
     .flex {
@@ -278,11 +272,11 @@ export default defineComponent({
     }
     }
     .tab {
     .tab {
       color: #999999;
       color: #999999;
-      font-size: 18px;
+      font-size: 0.18 * 2rem;
       line-height: 2.5;
       line-height: 2.5;
 
 
       &:last-child {
       &:last-child {
-        margin-left: 42px;
+        margin-left: 0.42 * 2rem;
       }
       }
       &.active {
       &.active {
         color: black;
         color: black;
@@ -294,9 +288,9 @@ export default defineComponent({
           bottom: 0;
           bottom: 0;
           left: 50%;
           left: 50%;
           transform: translateX(-50%);
           transform: translateX(-50%);
-          width: 26px;
-          height: 4px;
-          border-radius: 4px;
+          width: 0.26 * 2rem;
+          height: 0.04 * 2rem;
+          border-radius: 0.04 * 2rem;
           background-color: #ffc400;
           background-color: #ffc400;
         }
         }
       }
       }
@@ -305,24 +299,24 @@ export default defineComponent({
       color: #ff5b1d;
       color: #ff5b1d;
       line-height: 1.5;
       line-height: 1.5;
       .warning-fill {
       .warning-fill {
-        width: 18px;
-        height: 18px;
+        width: 0.32rem;
+        height: 0.32rem;
       }
       }
     }
     }
   }
   }
   &__body {
   &__body {
     .item {
     .item {
       background-color: white;
       background-color: white;
-      border-radius: 8px;
+      border-radius: 0.08 * 2rem;
     }
     }
     .icon {
     .icon {
-      width: 22px;
-      height: 22px;
+      width: 0.44rem;
+      height: 0.44rem;
     }
     }
     .image {
     .image {
-      width: 44px;
-      height: 44px;
-      border-radius: 8px;
+      width: 0.44 * 2rem;
+      height: 0.44 * 2rem;
+      border-radius: 0.08 * 2rem;
     }
     }
   }
   }
 }
 }

+ 9 - 9
src/views/Guide/Miracast/index.vue

@@ -56,15 +56,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -73,16 +73,16 @@ export default defineComponent({
     line-height: 1.5;
     line-height: 1.5;
   }
   }
   .a1 {
   .a1 {
-    width: 255px;
-    height: 174.5px;
+    width: 2.55rem * 2;
+    height: 1.745rem * 2;
   }
   }
   .a2 {
   .a2 {
-    width: 256px;
-    height: 176.5px;
+    width: 2.56rem * 2;
+    height: 1.765rem * 2;
   }
   }
   .a3 {
   .a3 {
-    width: 204px;
-    height: 216px;
+    width: 2.04rem * 2;
+    height: 2.16rem * 2;
   }
   }
 
 
   ::v-deep .van-swipe__indicator {
   ::v-deep .van-swipe__indicator {

+ 11 - 11
src/views/Guide/Pair/index.vue

@@ -60,15 +60,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -77,21 +77,21 @@ export default defineComponent({
     line-height: 1.5;
     line-height: 1.5;
   }
   }
   .a1 {
   .a1 {
-    width: 245px;
-    height: 213px;
+    width: 2.45rem * 2;
+    height: 2.13rem * 2;
   }
   }
   .a2,
   .a2,
   .a3 {
   .a3 {
-    width: 300px;
-    height: 300px;
+    width: 3rem * 2;
+    height: 3rem * 2;
   }
   }
   .tips {
   .tips {
-    bottom: 56px;
-    right: 30px;
-    width: 78px;
+    bottom: 0.56rem * 2;
+    right: 0.3rem * 2;
+    width: 0.78rem * 2;
     text-align: left;
     text-align: left;
     line-height: 1.5;
     line-height: 1.5;
-    font-size: 14px;
+    font-size: 0.14rem * 2;
     color: #ff5b1d;
     color: #ff5b1d;
   }
   }
 
 

+ 21 - 21
src/views/Guide/Power/index.vue

@@ -64,15 +64,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -81,35 +81,35 @@ export default defineComponent({
     line-height: 1.5;
     line-height: 1.5;
   }
   }
   .a1 {
   .a1 {
-    width: 264px;
-    height: 288px;
+    width: 2.64rem * 2;
+    height: 2.88rem * 2;
   }
   }
   .a2 {
   .a2 {
-    width: 290px;
-    height: 290px;
+    width: 2.9rem * 2;
+    height: 2.9rem * 2;
   }
   }
   .a3 {
   .a3 {
-    width: 312px;
-    height: 399px;
+    width: 3.12rem * 2;
+    height: 3.99rem * 2;
   }
   }
   .tips {
   .tips {
     background-color: white;
     background-color: white;
-    padding: 12px;
-    border-radius: 6px;
-    top: 20px;
-    left: 20px;
+    padding: 0.12rem * 2;
+    border-radius: 0.06rem * 2;
+    top: 0.2rem * 2;
+    left: 0.2rem * 2;
     .dot {
     .dot {
       display: inline-block;
       display: inline-block;
-      width: 10px;
-      height: 10px;
-      border-radius: 10px;
+      width: 0.1rem * 2;
+      height: 0.1rem * 2;
+      border-radius: 0.1rem * 2;
     }
     }
     .line {
     .line {
-      width: 2px;
-      height: 42px;
-      bottom: -42px;
-      left: 62px;
-      border-left: 2.2px dashed #c1c1c1;
+      width: 0.02rem * 2;
+      height: 0.42rem * 2;
+      bottom: -0.42rem * 2;
+      left: 0.62rem * 2;
+      border-left: 0.022rem * 2 dashed #c1c1c1;
     }
     }
   }
   }
 
 

+ 7 - 7
src/views/Guide/Recharge/index.vue

@@ -58,15 +58,15 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
+    height: 3.99rem * 2;
     background-color: #f5f3f3;
     background-color: #f5f3f3;
-    border-radius: 8px;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -75,13 +75,13 @@ export default defineComponent({
     line-height: 1.5;
     line-height: 1.5;
   }
   }
   .a1 {
   .a1 {
-    width: 292px;
-    height: 292px;
+    width: 2.92rem * 2;
+    height: 2.92rem * 2;
   }
   }
   .a2,
   .a2,
   .a3 {
   .a3 {
-    width: 300px;
-    height: 299px;
+    width: 300rem * 2;
+    height: 2.99rem * 2;
   }
   }
 
 
   ::v-deep .van-swipe__indicator {
   ::v-deep .van-swipe__indicator {

+ 7 - 7
src/views/Guide/Replace/index.vue

@@ -54,14 +54,14 @@ export default defineComponent({
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .container {
 .container {
-  width: 100vw;
+  width: 100%;
   min-height: 100vh;
   min-height: 100vh;
   background-color: white;
   background-color: white;
   overflow-x: hidden;
   overflow-x: hidden;
   .block {
   .block {
     width: 100%;
     width: 100%;
-    height: 399px;
-    border-radius: 8px;
+    height: 3.99rem * 2;
+    border-radius: 0.08rem * 2;
   }
   }
   p {
   p {
     line-height: 1.5;
     line-height: 1.5;
@@ -71,13 +71,13 @@ export default defineComponent({
   }
   }
 
 
   .a1 {
   .a1 {
-    width: 310px;
-    height: 344px;
+    width: 3.1rem * 2;
+    height: 3.44rem * 2;
   }
   }
   .a2,
   .a2,
   .a3 {
   .a3 {
-    width: 312px;
-    height: 399px;
+    width: 3.12rem * 2;
+    height: 3.99rem * 2;
   }
   }
 
 
   ::v-deep .van-swipe__indicator {
   ::v-deep .van-swipe__indicator {

+ 103 - 0
src/views/Link/index.vue

@@ -0,0 +1,103 @@
+<template>
+  <div class="link df fdc">
+    <div class="link__header df ai-c jc-c">
+      <span class="f36 fw">范肆趣动鞋</span>
+    </div>
+    <div class="link__body flex-1 pl16 pr16 pb16">
+      <div class="block df fdc ai-c jc-c pt20 pb20 pl16 pr16">
+        <img class="logo" src="@/assets/link/logo@2x.png" />
+        <span class="mt12 fw">趣动APP</span>
+        <div class="btn pt12 pb12 pl20 pr20 mt16" @click="openDownload">
+          <span class="f14" style="color: #ffffff;">前往下载</span
+          ><van-icon name="arrow" color="#ffffff" size=".28rem" />
+        </div>
+      </div>
+      <div
+        class="block df ai-c jc-sb pt12 pb12 pl16 pr16 mt16"
+        @click="openServiceChat"
+      >
+        <div>
+          <img class="icon" src="@/assets/link/wechat@2x.png" />
+          <span class="fw ml12">趣动客服</span>
+        </div>
+        <van-icon name="arrow" color="#333333" size=".36rem" />
+      </div>
+      <div
+        class="block df ai-c jc-sb pt12 pb12 pl16 pr16 mt16"
+        @click="toGuide"
+      >
+        <div>
+          <img class="icon" src="@/assets/link/guide@2x.png" />
+          <span class="fw ml12">新手指引</span>
+        </div>
+        <van-icon name="arrow" color="#333333" size=".36rem" />
+      </div>
+      <!-- <div
+        class="block df ai-c jc-sb pt12 pb12 pl16 pr16 mt16"
+        @click="toGuide"
+      >
+        <div>
+          <img class="icon" src="@/assets/link/store@2x.png" />
+          <span class="fw ml12">范肆商城</span>
+        </div>
+        <van-icon name="arrow" color="#333333" size=".36rem" />
+      </div> -->
+    </div>
+  </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from "vue";
+import { useRouter } from "vue-router";
+export default defineComponent({
+  setup() {
+    const router = useRouter();
+    const ran = navigator.userAgent;
+    const isAndroid = ran.indexOf("Android") > -1 || ran.indexOf("Linux") > -1;
+    const isIOS = !!ran.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
+    const $_toGuide = () => {
+      router.push("/guide");
+    };
+    const openServiceChat = () => {
+      window.open(
+        `https://work.weixin.qq.com/kfid/kfc7b89a5eb0af55040?enc_scene=ENCBcQ6kEH9MWUD9PRpQp9PS5RGQgD6oyXd9naB5LgScx5D&scene_param=${JSON.stringify(
+          { from: 2 }
+        )}`
+      );
+    };
+    const openDownload = () => {
+      window.open("https://a.app.qq.com/o/simple.jsp?pkgname=xie.hiyd.com");
+    };
+    return { toGuide: $_toGuide, openServiceChat, openDownload };
+  }
+});
+</script>
+
+<style lang="scss" scoped>
+.link {
+  background-color: #f1f1f1;
+  min-height: 100vh;
+
+  &__header {
+    height: 2rem * 2;
+  }
+  &__body {
+    .btn {
+      background-color: #333;
+      border-radius: 0.04rem * 2;
+    }
+    .block {
+      background-color: white;
+      border-radius: 0.08rem * 2;
+    }
+    .logo {
+      width: 0.8rem * 2;
+      height: 0.81rem * 2;
+    }
+    .icon {
+      width: 0.45rem * 2;
+      height: 0.45rem * 2;
+    }
+  }
+}
+</style>

+ 0 - 197
src/views/guide.vue

@@ -1,197 +0,0 @@
-<template>
-  <div class="guide">
-    <div class="guide__block">
-      <div class="guide__block__tt df ai-c">
-        <h3 class="fw">跳舞游戏规则</h3>
-      </div>
-      <div class="guide__block__ct">
-        <p class="mt12">
-          游戏开始后,游戏界面会从上至下掉落不同指令下来,当不同指令经过对应的判定区时,玩家需要根据不同指令做出对应的脚步动作。
-        </p>
-        <p class="mt12">
-          指令分为单踩与长踩,单踩仅需要在指令经过判定框时做出相应的脚步动作即可,长踩则需要在指令期间内保持住正确的脚步动作不动。
-        </p>
-      </div>
-    </div>
-    <div class="guide__block guide__block-last mt12">
-      <div class="guide__block__tt df ai-c">
-        <h3 class="fw">游戏指令对应脚步动作</h3>
-      </div>
-      <div class="guide__block__step mt12 df ai-c pd12">
-        <img class="foot-homing" src="../assets/guide/foot-homing.png" />
-        <div class="df fdc jc-c">
-          <h3 class="fw">归位</h3>
-          <p class="mt12">
-            每次双脚靠近并拢,将重新规划坐标原点与坐标轴,划分出5个指令的对应区域
-          </p>
-        </div>
-      </div>
-      <div class="guide__block__step mt12 pr">
-        <img src="../assets/guide/step-one.png" class="pa step" />
-        <div class="body df fdc ai-c">
-          <img
-            class="foot-draw-close"
-            src="../assets/guide/foot-draw-close.png"
-          />
-          <p class=" mt12">
-            双脚平行并靠拢,在位于如图所示的圆圈范围内,单脚原地踩踏一步
-          </p>
-          <img class="next mt12" src="../assets/guide/next.png" />
-          <p class="mt12 fw">对应游戏指令</p>
-          <img class="order mt12" src="../assets/guide/order-middle.png" />
-        </div>
-      </div>
-      <div class="guide__block__step mt12 pr">
-        <img src="../assets/guide/step-two.png" class="pa step" />
-        <div class="body df fdc ai-c">
-          <img class="foot-left-top" src="../assets/guide/foot-left-top.png" />
-          <p class=" mt12">左脚朝左上方,即如图所示坐标区域踩踏一步步</p>
-          <img class="next mt12" src="../assets/guide/next.png" />
-          <p class=" mt12 fw">对应游戏指令</p>
-          <img class="order mt12" src="../assets/guide/order-left-top.png" />
-        </div>
-      </div>
-      <div class="guide__block__step mt12 pr">
-        <img src="../assets/guide/step-three.png" class="pa step" />
-        <div class="body df fdc ai-c">
-          <img
-            class="foot-left-bottom"
-            src="../assets/guide/foot-left-bottom.png"
-          />
-          <p class=" mt12">左脚朝左下方,即如图所示坐标区域踩踏一步</p>
-          <img class="next mt12" src="../assets/guide/next.png" />
-          <p class=" mt12 fw">对应游戏指令</p>
-          <img class="order mt12" src="../assets/guide/order-left-bottom.png" />
-        </div>
-      </div>
-      <div class="guide__block__step mt12 pr">
-        <img src="../assets/guide/step-four.png" class="pa step" />
-        <div class="body df fdc ai-c">
-          <img
-            class="foot-right-top"
-            src="../assets/guide/foot-right-top.png"
-          />
-          <p class=" mt12">右脚朝右上方,即如图所示坐标区域踩踏一步</p>
-          <img class="next mt12" src="../assets/guide/next.png" />
-          <p class=" mt12 fw">对应游戏指令</p>
-          <img class="order mt12" src="../assets/guide/order-right-top.png" />
-        </div>
-      </div>
-      <div class="guide__block__step mt12 pr">
-        <img src="../assets/guide/stee-five.png" class="pa step" />
-        <div class="body df fdc ai-c">
-          <img
-            class="foot-right-bottom"
-            src="../assets/guide/foot-right-bottom.png"
-          />
-          <p class=" mt12">右脚朝右下方,即如图所示坐标区域踩踏一步</p>
-          <img class="next mt12" src="../assets/guide/next.png" />
-          <p class=" mt12 fw">对应游戏指令</p>
-          <img
-            class="order mt12"
-            src="../assets/guide/order-right-bottom.png"
-          />
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  components: {},
-  name: "Guide",
-  data() {
-    return {
-      data: {},
-      status: null
-    };
-  }
-};
-</script>
-<style scoped lang="scss">
-.guide {
-  width: 100%;
-  padding: 10px;
-  font-family: "PingFang·SC";
-  box-sizing: border-box;
-  p {
-    font-size: 14px;
-    color: #666;
-    line-height: 20px;
-  }
-  .mt12 {
-    margin-top: 12px;
-  }
-  .mt20 {
-    margin-top: 20px;
-  }
-  .pd12 {
-    padding: 12px;
-  }
-  &__block {
-    &__tt {
-      &::before {
-        content: "";
-        display: block;
-        width: 6px;
-        height: 6px;
-        border-radius: 6px;
-        border-color: #ffc400;
-        border-width: 2px;
-        border-style: solid;
-      }
-      h3 {
-        margin-left: 6px;
-      }
-    }
-
-    &__step {
-      width: 100%;
-      background-color: #f1f1f1;
-      border-radius: 10px;
-      box-sizing: border-box;
-
-      .body {
-        padding: 20px;
-      }
-      .step {
-        width: 40px;
-        height: 40px;
-      }
-      .foot-homing {
-        width: 100px;
-        height: 100px;
-      }
-      .foot-draw-close {
-        width: 180px;
-        height: 180px;
-      }
-      .foot-left-top {
-        width: 180px;
-        height: 180px;
-      }
-      .foot-left-bottom {
-        width: 178px;
-        height: 180px;
-      }
-      .foot-right-top {
-        width: 178px;
-        height: 179px;
-      }
-      .foot-right-bottom {
-        width: 178px;
-        height: 180px;
-      }
-      .next {
-        width: 26px;
-        height: 28px;
-      }
-      .order {
-        width: 300px;
-        height: 46px;
-      }
-    }
-  }
-}
-</style>

+ 1 - 1
src/views/layout.vue

@@ -9,7 +9,7 @@ export default {};
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .layout {
 .layout {
-  font-size: 16px;
+  font-size: 0.16rem * 2;
   width: 100%;
   width: 100%;
   height: 100%;
   height: 100%;
 }
 }

+ 13 - 13
src/views/sport-share-link.vue

@@ -59,29 +59,29 @@
   </div>
   </div>
 </template>
 </template>
 <script lang="ts">
 <script lang="ts">
-import { defineComponent, computed } from 'vue'
-import { initShare } from './share'
-import { getUrlParameter } from '@/utils/index'
+import { defineComponent, computed } from "vue";
+import { initShare } from "./share";
+import { getUrlParameter } from "@/utils/index";
 export default defineComponent({
 export default defineComponent({
   setup() {
   setup() {
     // 0 是步行 1是骑行 2是跑
     // 0 是步行 1是骑行 2是跑
-    const words = ['步行', '骑行', '跑步']
-    const unit = [0.8214, 0.6142, 1.036]
+    const words = ["步行", "骑行", "跑步"];
+    const unit = [0.8214, 0.6142, 1.036];
 
 
-    const randomNumber = computed(() => parseInt(`${Math.random() * 3}`))
+    const randomNumber = computed(() => parseInt(`${Math.random() * 3}`));
 
 
     const currentBg = computed(() => {
     const currentBg = computed(() => {
-      return 'bg-' + randomNumber.value
-    })
+      return "bg-" + randomNumber.value;
+    });
 
 
-    const hash = getUrlParameter(window.location.href, 'h')
+    const hash = getUrlParameter(window.location.href, "h");
     const { user, consume, duration, defeat, period, createdAt } = initShare(
     const { user, consume, duration, defeat, period, createdAt } = initShare(
       hash
       hash
-    )
+    );
 
 
     const kilometer = computed(() =>
     const kilometer = computed(() =>
       Math.floor(consume.value / 55 / unit[randomNumber.value])
       Math.floor(consume.value / 55 / unit[randomNumber.value])
-    )
+    );
     return {
     return {
       currentBg,
       currentBg,
       user,
       user,
@@ -93,9 +93,9 @@ export default defineComponent({
       words,
       words,
       randomNumber,
       randomNumber,
       kilometer
       kilometer
-    }
+    };
   }
   }
-})
+});
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .ignore-share-page {
 .ignore-share-page {

+ 10 - 0
yarn.lock

@@ -1406,6 +1406,11 @@
   dependencies:
   dependencies:
     "@popperjs/core" "^2.9.2"
     "@popperjs/core" "^2.9.2"
 
 
+"@vant/touch-emulator@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.npmmirror.com/@vant/touch-emulator/-/touch-emulator-1.4.0.tgz#02420ca5f312a7eb6c36c349cbb8e80e6f29ff2f"
+  integrity sha512-Zt+zISV0+wpOew2S1siOJ3G22y+hapHAKmXM+FhpvWzsRc4qahaYXatCAITuuXt0EcDp7WvEeTO4F7p9AtX/pw==
+
 "@vant/use@^1.4.1":
 "@vant/use@^1.4.1":
   version "1.4.1"
   version "1.4.1"
   resolved "https://registry.npmmirror.com/@vant/use/-/use-1.4.1.tgz#22cdd81c6e2cf8dc746278608a3facbd4fdbcdc7"
   resolved "https://registry.npmmirror.com/@vant/use/-/use-1.4.1.tgz#22cdd81c6e2cf8dc746278608a3facbd4fdbcdc7"
@@ -10195,6 +10200,11 @@ validate-npm-package-license@^3.0.1:
     spdx-correct "^3.0.0"
     spdx-correct "^3.0.0"
     spdx-expression-parse "^3.0.0"
     spdx-expression-parse "^3.0.0"
 
 
+vant-touch-emulator@^0.0.1-beta.0:
+  version "0.0.1-beta.0"
+  resolved "https://registry.npmmirror.com/vant-touch-emulator/-/vant-touch-emulator-0.0.1-beta.0.tgz#5ef8cf5da1a15bee14275f1ba703f330f29fefa5"
+  integrity sha512-ejyqA71oRjiBERHwTV/u+eMOEfDwvKODW/ykspevwsWZ/pkTxotX6j6XQtLWy+r4eXBb5Wm4vZiAte++7Yyhkw==
+
 vant@^3.5.4:
 vant@^3.5.4:
   version "3.5.4"
   version "3.5.4"
   resolved "https://registry.npmmirror.com/vant/-/vant-3.5.4.tgz#d71de4e34e373784f88ac0d717287ccae9369771"
   resolved "https://registry.npmmirror.com/vant/-/vant-3.5.4.tgz#d71de4e34e373784f88ac0d717287ccae9369771"

Some files were not shown because too many files changed in this diff