lsc há 3 anos atrás
pai
commit
796782231f
7 ficheiros alterados com 429 adições e 347 exclusões
  1. 55 47
      package-lock.json
  2. 1 0
      package.json
  3. 3 2
      src/App.vue
  4. 1 0
      src/common/axios.config.js
  5. 365 297
      src/components/login.vue
  6. 2 0
      src/config/config.js
  7. 2 1
      src/router/index.js

+ 55 - 47
package-lock.json

@@ -45,7 +45,7 @@
     },
     "abab": {
       "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz",
+      "resolved": "https://registry.nlark.com/abab/download/abab-2.0.5.tgz",
       "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o="
     },
     "accepts": {
@@ -83,7 +83,7 @@
     },
     "acorn-globals": {
       "version": "4.3.4",
-      "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz",
+      "resolved": "https://registry.nlark.com/acorn-globals/download/acorn-globals-4.3.4.tgz",
       "integrity": "sha1-n6GSat3BHJcwjE5m163Q1Awycuc=",
       "requires": {
         "acorn": "^6.0.1",
@@ -309,7 +309,7 @@
     },
     "assert-plus": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/assert-plus/download/assert-plus-1.0.0.tgz",
       "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
     },
     "assign-symbols": {
@@ -349,7 +349,7 @@
     },
     "asynckit": {
       "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+      "resolved": "https://registry.nlark.com/asynckit/download/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
     "atob": {
@@ -374,12 +374,12 @@
     },
     "aws-sign2": {
       "version": "0.7.0",
-      "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz?cache=0&sync_timestamp=1589682812085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
       "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
     },
     "aws4": {
       "version": "1.11.0",
-      "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101166484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz",
+      "resolved": "https://registry.nlark.com/aws4/download/aws4-1.11.0.tgz",
       "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk="
     },
     "axios": {
@@ -1308,7 +1308,7 @@
     },
     "bcrypt-pbkdf": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz?cache=0&sync_timestamp=1589682746075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
       "requires": {
         "tweetnacl": "^0.14.3"
@@ -1451,7 +1451,7 @@
     },
     "browser-process-hrtime": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz?cache=0&sync_timestamp=1618847049949&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowser-process-hrtime%2Fdownload%2Fbrowser-process-hrtime-1.0.0.tgz",
       "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY="
     },
     "browserify-aes": {
@@ -2028,7 +2028,7 @@
     },
     "combined-stream": {
       "version": "1.0.8",
-      "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
+      "resolved": "https://registry.nlark.com/combined-stream/download/combined-stream-1.0.8.tgz",
       "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
       "requires": {
         "delayed-stream": "~1.0.0"
@@ -3452,7 +3452,7 @@
     },
     "deep-is": {
       "version": "0.1.3",
-      "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz",
+      "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.3.tgz",
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
     },
     "deepmerge": {
@@ -3690,7 +3690,7 @@
     },
     "domexception": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz",
+      "resolved": "https://registry.nlark.com/domexception/download/domexception-1.0.1.tgz",
       "integrity": "sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=",
       "requires": {
         "webidl-conversions": "^4.0.2"
@@ -3745,7 +3745,7 @@
     },
     "ecc-jsbn": {
       "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz?cache=0&sync_timestamp=1589682745945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
       "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
       "requires": {
         "jsbn": "~0.1.0",
@@ -4010,7 +4010,7 @@
     },
     "escodegen": {
       "version": "1.14.3",
-      "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz?cache=0&sync_timestamp=1596669832613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.3.tgz",
+      "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz",
       "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=",
       "requires": {
         "esprima": "^4.0.1",
@@ -4022,12 +4022,12 @@
       "dependencies": {
         "esprima": {
           "version": "4.0.1",
-          "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&sync_timestamp=1589682833047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz",
+          "resolved": "https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz",
           "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="
         },
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1589682764497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
+          "resolved": "https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "optional": true
         }
@@ -4258,7 +4258,7 @@
     },
     "extend": {
       "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz?cache=0&sync_timestamp=1589682707348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz",
+      "resolved": "https://registry.nlark.com/extend/download/extend-3.0.2.tgz",
       "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo="
     },
     "extend-shallow": {
@@ -4391,7 +4391,7 @@
     },
     "fast-levenshtein": {
       "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
+      "resolved": "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
     },
     "fastparse": {
@@ -4679,7 +4679,7 @@
     },
     "getpass": {
       "version": "0.1.7",
-      "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz?cache=0&sync_timestamp=1589682745510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz",
+      "resolved": "https://registry.nlark.com/getpass/download/getpass-0.1.7.tgz",
       "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
       "requires": {
         "assert-plus": "^1.0.0"
@@ -4766,12 +4766,12 @@
     },
     "har-schema": {
       "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
+      "resolved": "https://registry.nlark.com/har-schema/download/har-schema-2.0.0.tgz",
       "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
     },
     "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=1596082584903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz",
+      "resolved": "https://registry.nlark.com/har-validator/download/har-validator-5.1.5.tgz",
       "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=",
       "requires": {
         "ajv": "^6.12.3",
@@ -4983,7 +4983,7 @@
     },
     "html-encoding-sniffer": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz",
+      "resolved": "https://registry.nlark.com/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz",
       "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=",
       "requires": {
         "whatwg-encoding": "^1.0.1"
@@ -5146,7 +5146,7 @@
     },
     "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=1600868452638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz",
+      "resolved": "https://registry.nlark.com/http-signature/download/http-signature-1.2.0.tgz",
       "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
       "requires": {
         "assert-plus": "^1.0.0",
@@ -5314,7 +5314,7 @@
     },
     "ip-regex": {
       "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz",
+      "resolved": "https://registry.nlark.com/ip-regex/download/ip-regex-2.1.0.tgz",
       "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
     },
     "ipaddr.js": {
@@ -5642,7 +5642,7 @@
     },
     "isstream": {
       "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
+      "resolved": "https://registry.nlark.com/isstream/download/isstream-0.1.2.tgz",
       "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
     },
     "js-base64": {
@@ -5669,7 +5669,7 @@
     },
     "jsbn": {
       "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz?cache=0&sync_timestamp=1589682745609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz",
+      "resolved": "https://registry.nlark.com/jsbn/download/jsbn-0.1.1.tgz",
       "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
     },
     "jsdom": {
@@ -5747,7 +5747,7 @@
     },
     "json-stringify-safe": {
       "version": "5.0.1",
-      "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz?cache=0&sync_timestamp=1589682771374&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
     },
     "json3": {
@@ -6615,12 +6615,12 @@
     },
     "nwsapi": {
       "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz",
+      "resolved": "https://registry.nlark.com/nwsapi/download/nwsapi-2.2.0.tgz",
       "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc="
     },
     "oauth-sign": {
       "version": "0.9.0",
-      "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz?cache=0&sync_timestamp=1589682811909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz",
+      "resolved": "https://registry.nlark.com/oauth-sign/download/oauth-sign-0.9.0.tgz",
       "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU="
     },
     "object-assign": {
@@ -6837,7 +6837,7 @@
     },
     "optionator": {
       "version": "0.8.3",
-      "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz",
+      "resolved": "https://registry.nlark.com/optionator/download/optionator-0.8.3.tgz",
       "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=",
       "requires": {
         "deep-is": "~0.1.3",
@@ -6984,7 +6984,7 @@
     },
     "parse5": {
       "version": "5.1.0",
-      "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.0.tgz",
+      "resolved": "https://registry.nlark.com/parse5/download/parse5-5.1.0.tgz",
       "integrity": "sha1-xZNByXI/QUxFKXVWTHwApo1YrNI="
     },
     "parseurl": {
@@ -7071,7 +7071,7 @@
     },
     "performance-now": {
       "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
+      "resolved": "https://registry.nlark.com/performance-now/download/performance-now-2.1.0.tgz",
       "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
     },
     "picomatch": {
@@ -7113,7 +7113,7 @@
     },
     "pn": {
       "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz",
+      "resolved": "https://registry.nlark.com/pn/download/pn-1.1.0.tgz",
       "integrity": "sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs="
     },
     "portfinder": {
@@ -9343,7 +9343,7 @@
     },
     "prelude-ls": {
       "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
+      "resolved": "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.1.2.tgz",
       "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
     },
     "prepend-http": {
@@ -9778,7 +9778,7 @@
     },
     "request": {
       "version": "2.88.2",
-      "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1589682741998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz",
+      "resolved": "https://registry.nlark.com/request/download/request-2.88.2.tgz",
       "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
       "requires": {
         "aws-sign2": "~0.7.0",
@@ -9805,12 +9805,12 @@
       "dependencies": {
         "qs": {
           "version": "6.5.2",
-          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385315895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz",
+          "resolved": "https://registry.nlark.com/qs/download/qs-6.5.2.tgz",
           "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY="
         },
         "tough-cookie": {
           "version": "2.5.0",
-          "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1589682815640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz",
           "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
           "requires": {
             "psl": "^1.1.28",
@@ -9821,7 +9821,7 @@
     },
     "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=1595378681719&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-core%2Fdownload%2Frequest-promise-core-1.1.4.tgz",
+      "resolved": "https://registry.nlark.com/request-promise-core/download/request-promise-core-1.1.4.tgz",
       "integrity": "sha1-Pu3UIjII1BmGe3jOgVFn0QWToi8=",
       "requires": {
         "lodash": "^4.17.19"
@@ -9829,7 +9829,7 @@
     },
     "request-promise-native": {
       "version": "1.0.9",
-      "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.9.tgz",
+      "resolved": "https://registry.nlark.com/request-promise-native/download/request-promise-native-1.0.9.tgz?cache=0&sync_timestamp=1618847006003&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.9.tgz",
       "integrity": "sha1-5AcSBSal79yaObKKVnm/R7nZ3Cg=",
       "requires": {
         "request-promise-core": "1.1.4",
@@ -9839,7 +9839,7 @@
       "dependencies": {
         "tough-cookie": {
           "version": "2.5.0",
-          "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1589682815640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz",
           "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
           "requires": {
             "psl": "^1.1.28",
@@ -11025,7 +11025,7 @@
     },
     "tough-cookie": {
       "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz?cache=0&sync_timestamp=1589682815640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-3.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz",
       "integrity": "sha1-nfT1fnOcJpMKAYGEiH9K233Kc7I=",
       "requires": {
         "ip-regex": "^2.1.0",
@@ -11077,7 +11077,7 @@
     },
     "tunnel-agent": {
       "version": "0.6.0",
-      "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+      "resolved": "https://registry.nlark.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
       "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
       "requires": {
         "safe-buffer": "^5.0.1"
@@ -11085,7 +11085,7 @@
     },
     "tweetnacl": {
       "version": "0.14.5",
-      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1589682745749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
     },
     "type": {
@@ -11096,7 +11096,7 @@
     },
     "type-check": {
       "version": "0.3.2",
-      "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz",
+      "resolved": "https://registry.nlark.com/type-check/download/type-check-0.3.2.tgz",
       "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
       "requires": {
         "prelude-ls": "~1.1.2"
@@ -11549,6 +11549,14 @@
         }
       }
     },
+    "vue-monoplasty-slide-verify": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npm.taobao.org/vue-monoplasty-slide-verify/download/vue-monoplasty-slide-verify-1.1.3.tgz",
+      "integrity": "sha1-cKOlaeMuwO2VthHWdUv1I8JJmjw=",
+      "requires": {
+        "vue": "^2.5.11"
+      }
+    },
     "vue-router": {
       "version": "3.5.2",
       "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.2.tgz",
@@ -11587,7 +11595,7 @@
     },
     "w3c-hr-time": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz",
+      "resolved": "https://registry.nlark.com/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz",
       "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=",
       "requires": {
         "browser-process-hrtime": "^1.0.0"
@@ -11808,7 +11816,7 @@
     },
     "webidl-conversions": {
       "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz",
+      "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-4.0.2.tgz",
       "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60="
     },
     "webpack": {
@@ -12288,7 +12296,7 @@
     },
     "whatwg-encoding": {
       "version": "1.0.5",
-      "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz",
+      "resolved": "https://registry.nlark.com/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz",
       "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=",
       "requires": {
         "iconv-lite": "0.4.24"
@@ -12351,7 +12359,7 @@
     },
     "word-wrap": {
       "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz?cache=0&sync_timestamp=1589683603678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz",
+      "resolved": "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz",
       "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w="
     },
     "wordwrap": {

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
     "face-api.js": "^0.22.2",
     "tracking": "^1.1.3",
     "vue": "^2.5.2",
+    "vue-monoplasty-slide-verify": "^1.1.3",
     "vue-router": "^3.0.1",
     "vuex": "^3.6.2"
   },

+ 3 - 2
src/App.vue

@@ -20,7 +20,7 @@
       </div>
     </div>
 
-    <div>
+    <div style="background: #fff; height: calc(100% - 67.5px); width: 100%">
       <!-- main 内容 -->
       <keep-alive v-if="$route.meta.keepAlive">
         <!-- 这里是会被缓存的视图组件 -->
@@ -58,6 +58,7 @@ export default {
       this.$router.push("/");
     },
     login() {
+      debugger;
       console.log("1");
       var _this = this;
       this.ajax
@@ -73,7 +74,7 @@ export default {
         .catch((err) => {
           // _this.props.history.push("/login");
           // window.alert(err.response.data)
-          window.location.href="https://edu.cocorobo.cn/course/login?type=1";
+          window.location.href = "https://edu.cocorobo.cn/course/login?type=1";
         });
     },
   },

+ 1 - 0
src/common/axios.config.js

@@ -3,6 +3,7 @@ import qs from "qs"
 axios.defaults.timeout = 3000   //响应时间
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';        //配置请求头
 axios.defaults.baseURL = process.env.NODE_HOST;   //配置接口地址
+axios.defaults.withCredentials = true
 console.log(process.env)
 //POST传参序列化(添加请求拦截器)
 axios.interceptors.request.use((config) => {

+ 365 - 297
src/components/login.vue

@@ -1,305 +1,373 @@
 <template>
-	<div class="login">
-		<div class="contain" v-show="islogin">
-			<div class="first">
-				<div class="userLogin">
-					<img src="../assets/img/email.png" alt="" />
-					<input type="text" placeholder="用户邮箱/手机" />
-				</div>
-				<div class="userLogin">
-					<img src="../assets/img/password.png" alt="" />
-					<input type="password" placeholder="用户密码" />
-				</div>
-				<div>
-					<a href=""><p>忘记密码?</p></a>
-				</div>
-			</div>
-			<div class="Geetest" id="Geetest">
-				<img src="../assets/img/yz.png" alt="" />
-			</div>
-			<div class="third">
-				<div class="loginUser">
-					<button>登 录</button>
-				</div>
-				<div class="guge">
-					<span>第三方登录</span>
-					<div style="display: inline-block">
-						<span><img src="../assets/img/weixin.png" alt="" />微信</span>
-						<span id="qqLogin" class="qqLogin" style="height: 21px"></span>
-						<span><img src="../assets/img/qq.png" alt="" />QQ</span>
-					</div>
-				</div>
-				<p>沒有账户,<span @click="islogin = false">点击注册</span></p>
-			</div>
-		</div>
-		<div class="contain" v-show="!islogin">
-			<div class="first">
-				<div class="userLogin">
-					<img src="../assets/img/email.png" alt="" />
-					<input type="text" placeholder="用户邮箱/手机" />
-				</div>
-				<div class="userLogin">
-					<img src="../assets/img/password.png" alt="" />
-					<input type="password" placeholder="用户密码" />
-				</div>
-				<div class="sc-jzJRlG ctJIms">
-					<input type="checkbox" class="sc-cSHVUG dwqlB" />
-					<span
-						>已经阅读并<span
-							class="sc-kAzzGY kHnacM"
-							@click="dialogVisible = true"
-							>《用户注册协议》</span
-						>和<span class="sc-chPdSV ilQDEZ" @click="dialogVisible1 = true"
-							>《隐私协议》</span
-						></span
-					>
-				</div>
-			</div>
-			<div class="Geetest" id="Geetest">
-				<img src="../assets/img/yz.png" alt="" />
-			</div>
-			<div class="third">
-				<div class="loginUser">
-					<button>注 册</button>
-				</div>
-				<div class="guge">
-					<button @click="islogin = true">登 录</button>
-				</div>
-			</div>
-		</div>
-		<el-dialog
-			:visible.sync="dialogVisible"
-			:append-to-body="true"
-			width="780px"
-			:before-close="handleClose"
-			title="用户注册协议"
-			class="first_one"
-		>
-			<UserAgreetment></UserAgreetment>
-		</el-dialog>
-		<el-dialog
-			:visible.sync="dialogVisible1"
-			:append-to-body="true"
-			width="780px"
-			:before-close="handleClose"
-			title="隐私协议"
-			class="first_one"
-		>
-			<PrivacyAgreement></PrivacyAgreement>
-		</el-dialog>
-	</div>
+  <div class="login">
+    <div class="contain" v-show="islogin">
+      <div class="first">
+        <div class="userLogin">
+          <img src="../assets/img/email.png" alt="" />
+          <input type="text" placeholder="用户邮箱/手机" />
+        </div>
+        <div class="userLogin">
+          <img src="../assets/img/password.png" alt="" />
+          <input type="password" placeholder="用户密码" />
+        </div>
+        <div>
+          <a href=""><p>忘记密码?</p></a>
+        </div>
+      </div>
+      <div class="Geetest" id="Geetest">
+        <!-- <img src="../assets/img/yz.png" alt="" /> -->
+        <!-- <button @click="handleClick">在父组件可以点我刷新哦</button>
+        <div>{{ msg }}</div> -->
+        <el-button type="primary" @click="dialogVisible2 = true" v-if="!this.vtype"
+          >点击验证</el-button
+        >
+		<span v-else>验证成功</span>
+      </div>
+      <div class="third">
+        <div class="loginUser">
+          <button>登 录</button>
+        </div>
+        <div class="guge">
+          <span>第三方登录</span>
+          <div style="display: inline-block">
+            <span><img src="../assets/img/weixin.png" alt="" />微信</span>
+            <span id="qqLogin" class="qqLogin" style="height: 21px"></span>
+            <span><img src="../assets/img/qq.png" alt="" />QQ</span>
+          </div>
+        </div>
+        <p>沒有账户,<span @click="islogin = false">点击注册</span></p>
+      </div>
+    </div>
+    <div class="contain" v-show="!islogin">
+      <div class="first">
+        <div class="userLogin">
+          <img src="../assets/img/email.png" alt="" />
+          <input type="text" placeholder="用户邮箱/手机" />
+        </div>
+        <div class="userLogin">
+          <img src="../assets/img/password.png" alt="" />
+          <input type="password" placeholder="用户密码" />
+        </div>
+        <div class="sc-jzJRlG ctJIms">
+          <input type="checkbox" class="sc-cSHVUG dwqlB" />
+          <span
+            >已经阅读并<span
+              class="sc-kAzzGY kHnacM"
+              @click="dialogVisible = true"
+              >《用户注册协议》</span
+            >和<span class="sc-chPdSV ilQDEZ" @click="dialogVisible1 = true"
+              >《隐私协议》</span
+            ></span
+          >
+        </div>
+      </div>
+      <div class="Geetest" id="Geetest">
+        <img src="../assets/img/yz.png" alt="" />
+      </div>
+      <div class="third">
+        <div class="loginUser">
+          <button>注 册</button>
+        </div>
+        <div class="guge">
+          <button @click="islogin = true">登 录</button>
+        </div>
+      </div>
+    </div>
+    <el-dialog
+      :visible.sync="dialogVisible"
+      :append-to-body="true"
+      width="780px"
+      :before-close="handleClose"
+      title="用户注册协议"
+      class="first_one"
+    >
+      <UserAgreetment></UserAgreetment>
+    </el-dialog>
+    <el-dialog
+      :visible.sync="dialogVisible1"
+      :append-to-body="true"
+      width="780px"
+      :before-close="handleClose"
+      title="隐私协议"
+      class="first_one"
+    >
+      <PrivacyAgreement></PrivacyAgreement>
+    </el-dialog>
+    <el-dialog
+      title="请完成安全验证"
+      :visible.sync="dialogVisible2"
+      width="330px"
+      :before-close="handleClose"
+      class="verifyBox"
+    >
+      <slide-verify
+        ref="slideblock"
+        @again="onAgain"
+        @fulfilled="onFulfilled"
+        @success="onSuccess"
+        @fail="onFail"
+        @refresh="onRefresh"
+        :slider-text="text"
+        :accuracy="accuracy"
+      ></slide-verify>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-	import UserAgreetment from "./page/UserAgreement.vue";
-	import PrivacyAgreement from "./page/PrivacyAgreement.vue"
-	export default {
-		components: { UserAgreetment,PrivacyAgreement },
-		data() {
-			return {
-				dialogVisible: false,
-				dialogVisible1: false,
-				islogin: true,
-			};
-		},
-		methods: {
-			handleClose(done) {
-				done();
-			},
-		},
-	};
+import UserAgreetment from "./page/UserAgreement.vue";
+import PrivacyAgreement from "./page/PrivacyAgreement.vue";
+export default {
+  components: { UserAgreetment, PrivacyAgreement },
+  data() {
+    return {
+      dialogVisible: false,
+      dialogVisible1: false,
+      dialogVisible2: false,
+      islogin: true,
+      msg: "",
+      text: "向右滑动完成验证",
+      // 精确度小,可允许的误差范围小;为1时,则表示滑块要与凹槽完全重叠,才能验证成功。默认值为5
+      accuracy: 1,
+	  vtype:false
+    };
+  },
+  methods: {
+    handleClose(done) {
+      done();
+    },
+    onSuccess(times) {
+      console.log("验证通过,耗时 " + times + "毫秒");
+      this.msg = `验证成功, 耗时${(times / 1000).toFixed(1)}s`;
+      this.dialogVisible2 = false;
+      this.vtype = true;
+    },
+    onFail() {
+      console.log("验证不通过");
+      this.msg = "";
+      this.vtype = false;
+    },
+    onRefresh() {
+      console.log("点击了刷新小图标");
+      this.msg = "";
+    },
+    onFulfilled() {
+      console.log("刷新成功啦!");
+    },
+    onAgain() {
+      console.log("检测到非人为操作的哦!");
+      this.msg = "try again";
+      // 刷新
+      this.$refs.slideblock.reset();
+    },
+    handleClick() {
+      this.$refs.slideblock.reset();
+    },
+  },
+};
 </script>
 
 <style scoped>
-	html,
-	body {
-		margin: 0;
-		padding: 0;
-		width: 100%;
-	}
-
-	a {
-		text-decoration: none;
-	}
-
-	.header-title {
-		display: flex;
-	}
-
-	.title_add_student {
-		margin: 0 auto;
-		color: #fff;
-	}
-
-	.login .contain {
-		width: 20%;
-		min-width: 400px;
-		margin: 0 auto;
-		background: #fff;
-		border-radius: 5px;
-		padding: 20px;
-		-webkit-box-shadow: 0 0 20px #eee;
-		box-shadow: 0 0 20px #eee;
-	}
-
-	.contain {
-		position: absolute;
-		top: 30%;
-		margin-top: -218px;
-		left: calc(50% - 221px);
-	}
-
-	.first {
-		padding: 0px 20px;
-		margin-top: 25px;
-	}
-
-	.login .userLogin {
-		margin-top: 25px;
-		position: relative;
-	}
-
-	.login .userLogin img {
-		display: inline-block;
-		width: 23px;
-		padding-right: 5px;
-		border-right: 1px solid #2a97ff;
-		position: absolute;
-		top: 13px;
-		left: 5px;
-	}
-
-	.login .userLogin input {
-		width: 85%;
-		padding: 18px 0 15px 40px;
-		outline: none;
-		border: 1px solid #ccc;
-		font-size: 14px;
-	}
-
-	.login .contain p:first-child {
-		text-align: right;
-		color: #2a97ff;
-	}
-
-	.login p {
-		margin: 15px 0;
-		font-size: 12px;
-		text-align: center;
-	}
-
-	.second {
-		display: block;
-		height: 44px;
-	}
-
-	.one {
-		display: none;
-		line-height: 44px;
-		text-align: center;
-	}
-
-	.two {
-		display: block;
-	}
-
-	.Geetest {
-		width: 350px;
-		margin: 0 auto;
-	}
-
-	.Geetest > img {
-		width: 100%;
-		height: 100%;
-	}
-
-	.login .loginUser button {
-		width: 100%;
-		color: #fff;
-		background: #2a97ff;
-		padding: 10px;
-		border-radius: 10px;
-		border: none;
-		font-size: 18px;
-		text-align: center;
-		outline: none;
-		cursor: pointer;
-		margin-top: 10px;
-	}
-
-	.login .guge {
-		font-size: 16px;
-		color: #8590a6;
-		height: 60px;
-		line-height: 60px;
-	}
-
-	.login .guge div {
-		float: right;
-	}
-
-	.login .guge div span {
-		margin-left: 10px;
-		cursor: pointer;
-	}
-
-	.login .guge div span img {
-		vertical-align: middle;
-		width: 18px;
-		margin-right: 6px;
-	}
-
-	.qqLogin {
-		position: absolute;
-		width: 50px;
-		opacity: 0;
-	}
-
-	.login p span {
-		color: #2a97ff;
-		cursor: pointer;
-	}
-
-	.ctJIms {
-		display: flex;
-		-webkit-box-align: center;
-		align-items: center;
-		margin-top: 10px;
-		margin: 15px 0;
-		font-size: 12px;
-	}
-
-	.dwqlB {
-		cursor: pointer;
-		margin-right: 5px;
-	}
-
-	.kHnacM,
-	.ilQDEZ {
-		color: rgb(42, 151, 255);
-		cursor: pointer;
-	}
-
-	.login .guge button {
-		width: 100%;
-		background: #f26875;
-		margin-top: 9px;
-		font-size: 18px;
-		border: none;
-		outline: none;
-		cursor: pointer;
-		color: #fff;
-		padding: 10px;
-		border-radius: 10px;
-		text-align: center;
-	}
-
-	.first_one >>> .el-dialog__header {
-		background: rgb(61, 103, 188);
-		padding: 15px 20px !important;
-	}
-
-	.first_one >>> .el-dialog__title {
-		color: #fff;
-	}
+html,
+body {
+  margin: 0;
+  padding: 0;
+  width: 100%;
+}
+
+a {
+  text-decoration: none;
+}
+
+.header-title {
+  display: flex;
+}
+
+.title_add_student {
+  margin: 0 auto;
+  color: #fff;
+}
+
+.login {
+  height: 100%;
+  width: 100%;
+  position: relative;
+  overflow: auto;
+}
+
+.login .contain {
+  width: 20%;
+  min-width: 400px;
+  margin: 0 auto;
+  background: #fff;
+  border-radius: 5px;
+  padding: 20px;
+  -webkit-box-shadow: 0 0 20px #eee;
+  box-shadow: 0 0 20px #eee;
+}
+
+.contain {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.first {
+  padding: 0px 20px;
+  margin-top: 25px;
+}
+
+.login .userLogin {
+  margin-top: 25px;
+  position: relative;
+}
+
+.login .userLogin img {
+  display: inline-block;
+  width: 23px;
+  padding-right: 5px;
+  border-right: 1px solid #2a97ff;
+  position: absolute;
+  top: 13px;
+  left: 5px;
+}
+
+.login .userLogin input {
+  width: 85%;
+  padding: 18px 0 15px 40px;
+  outline: none;
+  border: 1px solid #ccc;
+  font-size: 14px;
+}
+
+.login .contain p:first-child {
+  text-align: right;
+  color: #2a97ff;
+}
+
+.login p {
+  margin: 15px 0;
+  font-size: 12px;
+  text-align: center;
+}
+
+.second {
+  display: block;
+  height: 44px;
+}
+
+.one {
+  display: none;
+  line-height: 44px;
+  text-align: center;
+}
+
+.two {
+  display: block;
+}
+
+.Geetest {
+  width: 350px;
+  margin: 0 auto;
+}
+
+.Geetest > img {
+  width: 100%;
+  height: 100%;
+}
+
+.login .loginUser button {
+  width: 100%;
+  color: #fff;
+  background: #2a97ff;
+  padding: 10px;
+  border-radius: 10px;
+  border: none;
+  font-size: 18px;
+  text-align: center;
+  outline: none;
+  cursor: pointer;
+  margin-top: 10px;
+}
+
+.login .guge {
+  font-size: 16px;
+  color: #8590a6;
+  height: 60px;
+  line-height: 60px;
+}
+
+.login .guge div {
+  float: right;
+}
+
+.login .guge div span {
+  margin-left: 10px;
+  cursor: pointer;
+}
+
+.login .guge div span img {
+  vertical-align: middle;
+  width: 18px;
+  margin-right: 6px;
+}
+
+.qqLogin {
+  position: absolute;
+  width: 50px;
+  opacity: 0;
+}
+
+.login p span {
+  color: #2a97ff;
+  cursor: pointer;
+}
+
+.ctJIms {
+  display: flex;
+  -webkit-box-align: center;
+  align-items: center;
+  margin-top: 10px;
+  margin: 15px 0;
+  font-size: 12px;
+}
+
+.dwqlB {
+  cursor: pointer;
+  margin-right: 5px;
+}
+
+.kHnacM,
+.ilQDEZ {
+  color: rgb(42, 151, 255);
+  cursor: pointer;
+}
+
+.login .guge button {
+  width: 100%;
+  background: #f26875;
+  margin-top: 9px;
+  font-size: 18px;
+  border: none;
+  outline: none;
+  cursor: pointer;
+  color: #fff;
+  padding: 10px;
+  border-radius: 10px;
+  text-align: center;
+}
+
+.first_one >>> .el-dialog__header {
+  background: rgb(61, 103, 188);
+  padding: 15px 20px !important;
+}
+
+.first_one >>> .el-dialog__title {
+  color: #fff;
+}
+
+.verifyBox >>> .el-dialog__body {
+  padding: 10px 10px;
+}
 </style>

+ 2 - 0
src/config/config.js

@@ -2,6 +2,7 @@ import Vue from 'vue'
 import Vuex from 'vuex'
 
 Vue.use(Vuex)
+        // server: 'https://beta.api.cocorobo.cn/api/',
 
 const store = new Vuex.Store({
     state: {
@@ -9,6 +10,7 @@ const store = new Vuex.Store({
         function:'',
         userId:'',
         server: 'https://beta.api.cocorobo.cn/api/',
+        // server: 'http://localhost:8083/api/',
     },
 
     mutations: {

+ 2 - 1
src/router/index.js

@@ -18,8 +18,9 @@ import car from '@/components/car'
 import curtain from '@/components/curtain'
 import necklace from '@/components/necklace'
 import login from '@/components/login'
+import SlideVerify from 'vue-monoplasty-slide-verify';
 
-Vue.use(Router).use(ElementUI)
+Vue.use(Router).use(ElementUI).use(SlideVerify);
 
 export default new Router({
   mode: 'history',  //去掉url中的#