StephenArk30 %!s(int64=6) %!d(string=hai) anos
pai
achega
5f9e1dbb66

+ 253 - 25
sourcecode/h5app/vue/package-lock.json

@@ -822,6 +822,11 @@
       "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
       "dev": true
     },
+    "@sindresorhus/is": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+      "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
+    },
     "@vue/babel-preset-app": {
       "version": "3.2.0",
       "resolved": "http://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.2.0.tgz",
@@ -2234,6 +2239,42 @@
         "schema-utils": "0.4.7"
       }
     },
+    "cacheable-request": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+      "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=",
+      "requires": {
+        "clone-response": "1.0.2",
+        "get-stream": "3.0.0",
+        "http-cache-semantics": "3.8.1",
+        "keyv": "3.0.0",
+        "lowercase-keys": "1.0.0",
+        "normalize-url": "2.0.1",
+        "responselike": "1.0.2"
+      },
+      "dependencies": {
+        "get-stream": {
+          "version": "3.0.0",
+          "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+          "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+        },
+        "lowercase-keys": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+          "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+        },
+        "normalize-url": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+          "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+          "requires": {
+            "prepend-http": "2.0.0",
+            "query-string": "5.1.1",
+            "sort-keys": "2.0.0"
+          }
+        }
+      }
+    },
     "call-me-maybe": {
       "version": "1.0.1",
       "resolved": "http://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz",
@@ -2531,6 +2572,14 @@
       "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
       "dev": true
     },
+    "clone-response": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+      "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+      "requires": {
+        "mimic-response": "1.0.1"
+      }
+    },
     "co": {
       "version": "4.6.0",
       "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
@@ -2813,8 +2862,7 @@
     "core-util-is": {
       "version": "1.0.2",
       "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
-      "dev": true
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
     },
     "cosmiconfig": {
       "version": "5.0.7",
@@ -3201,8 +3249,15 @@
     "decode-uri-component": {
       "version": "0.2.0",
       "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+    },
+    "decompress-response": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+      "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+      "requires": {
+        "mimic-response": "1.0.1"
+      }
     },
     "deep-equal": {
       "version": "1.0.1",
@@ -3518,6 +3573,11 @@
       "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
       "dev": true
     },
+    "duplexer3": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+    },
     "duplexify": {
       "version": "3.6.1",
       "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.6.1.tgz",
@@ -4593,7 +4653,6 @@
       "version": "2.3.0",
       "resolved": "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
       "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
-      "dev": true,
       "requires": {
         "inherits": "2.0.3",
         "readable-stream": "2.3.6"
@@ -5269,6 +5328,37 @@
         "delegate": "3.2.0"
       }
     },
+    "got": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
+      "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+      "requires": {
+        "@sindresorhus/is": "0.7.0",
+        "cacheable-request": "2.1.4",
+        "decompress-response": "3.3.0",
+        "duplexer3": "0.1.4",
+        "get-stream": "3.0.0",
+        "into-stream": "3.1.0",
+        "is-retry-allowed": "1.1.0",
+        "isurl": "1.0.0",
+        "lowercase-keys": "1.0.1",
+        "mimic-response": "1.0.1",
+        "p-cancelable": "0.4.1",
+        "p-timeout": "2.0.1",
+        "pify": "3.0.0",
+        "safe-buffer": "5.1.2",
+        "timed-out": "4.0.1",
+        "url-parse-lax": "3.0.0",
+        "url-to-options": "1.0.1"
+      },
+      "dependencies": {
+        "get-stream": {
+          "version": "3.0.0",
+          "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+          "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+        }
+      }
+    },
     "graceful-fs": {
       "version": "4.1.15",
       "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz",
@@ -5339,12 +5429,25 @@
       "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
       "dev": true
     },
+    "has-symbol-support-x": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+      "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
+    },
     "has-symbols": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
       "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
       "dev": true
     },
+    "has-to-string-tag-x": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+      "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+      "requires": {
+        "has-symbol-support-x": "1.4.2"
+      }
+    },
     "has-value": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
@@ -5577,6 +5680,11 @@
         }
       }
     },
+    "http-cache-semantics": {
+      "version": "3.8.1",
+      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+      "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
+    },
     "http-deceiver": {
       "version": "1.2.7",
       "resolved": "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
@@ -5850,8 +5958,7 @@
     "inherits": {
       "version": "2.0.3",
       "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-      "dev": true
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
     },
     "inquirer": {
       "version": "3.3.0",
@@ -5885,6 +5992,15 @@
         "ipaddr.js": "1.8.0"
       }
     },
+    "into-stream": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
+      "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
+      "requires": {
+        "from2": "2.3.0",
+        "p-is-promise": "1.1.0"
+      }
+    },
     "invariant": {
       "version": "2.2.4",
       "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz",
@@ -6107,6 +6223,11 @@
       "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
       "dev": true
     },
+    "is-object": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
+      "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA="
+    },
     "is-path-cwd": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz",
@@ -6131,6 +6252,11 @@
         "path-is-inside": "1.0.2"
       }
     },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+    },
     "is-plain-object": {
       "version": "2.0.4",
       "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
@@ -6161,6 +6287,11 @@
       "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
       "dev": true
     },
+    "is-retry-allowed": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+      "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
+    },
     "is-stream": {
       "version": "1.1.0",
       "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
@@ -6206,8 +6337,7 @@
     "isarray": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-      "dev": true
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
     },
     "isemail": {
       "version": "3.2.0",
@@ -6236,6 +6366,15 @@
       "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
       "dev": true
     },
+    "isurl": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+      "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+      "requires": {
+        "has-to-string-tag-x": "1.4.1",
+        "is-object": "1.0.1"
+      }
+    },
     "javascript-stringify": {
       "version": "1.6.0",
       "resolved": "http://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz",
@@ -6302,6 +6441,11 @@
       "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
       "dev": true
     },
+    "json-buffer": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+      "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+    },
     "json-parse-better-errors": {
       "version": "1.0.2",
       "resolved": "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
@@ -6374,6 +6518,14 @@
         "verror": "1.10.0"
       }
     },
+    "keyv": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+      "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+      "requires": {
+        "json-buffer": "3.0.0"
+      }
+    },
     "killable": {
       "version": "1.0.1",
       "resolved": "http://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz",
@@ -6582,6 +6734,11 @@
       "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
       "dev": true
     },
+    "lowercase-keys": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+    },
     "lru-cache": {
       "version": "4.1.5",
       "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
@@ -6762,6 +6919,11 @@
       "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=",
       "dev": true
     },
+    "mimic-response": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+      "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+    },
     "mini-css-extract-plugin": {
       "version": "0.4.5",
       "resolved": "http://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.4.5.tgz",
@@ -7125,8 +7287,7 @@
     "object-assign": {
       "version": "4.1.1",
       "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
     },
     "object-copy": {
       "version": "0.1.0",
@@ -7360,6 +7521,11 @@
       "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
       "dev": true
     },
+    "p-cancelable": {
+      "version": "0.4.1",
+      "resolved": "http://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
+      "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
+    },
     "p-defer": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz",
@@ -7369,14 +7535,12 @@
     "p-finally": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
     },
     "p-is-promise": {
       "version": "1.1.0",
       "resolved": "http://registry.npm.taobao.org/p-is-promise/download/p-is-promise-1.1.0.tgz",
-      "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
-      "dev": true
+      "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
     },
     "p-limit": {
       "version": "1.3.0",
@@ -7402,6 +7566,14 @@
       "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=",
       "dev": true
     },
+    "p-timeout": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
+      "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+      "requires": {
+        "p-finally": "1.0.0"
+      }
+    },
     "p-try": {
       "version": "1.0.0",
       "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
@@ -7548,8 +7720,7 @@
     "pify": {
       "version": "3.0.0",
       "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
-      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-      "dev": true
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
     },
     "pinkie": {
       "version": "2.0.4",
@@ -8155,6 +8326,11 @@
       "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
       "dev": true
     },
+    "prepend-http": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+      "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
+    },
     "prettier": {
       "version": "1.13.7",
       "resolved": "http://registry.npm.taobao.org/prettier/download/prettier-1.13.7.tgz",
@@ -8186,8 +8362,7 @@
     "process-nextick-args": {
       "version": "2.0.0",
       "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
-      "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=",
-      "dev": true
+      "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o="
     },
     "progress": {
       "version": "2.0.3",
@@ -8294,6 +8469,16 @@
       "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
       "dev": true
     },
+    "query-string": {
+      "version": "5.1.1",
+      "resolved": "http://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+      "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+      "requires": {
+        "decode-uri-component": "0.2.0",
+        "object-assign": "4.1.1",
+        "strict-uri-encode": "1.1.0"
+      }
+    },
     "querystring": {
       "version": "0.2.0",
       "resolved": "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz",
@@ -8375,7 +8560,6 @@
       "version": "2.3.6",
       "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz",
       "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
-      "dev": true,
       "requires": {
         "core-util-is": "1.0.2",
         "inherits": "2.0.3",
@@ -8675,6 +8859,14 @@
       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
       "dev": true
     },
+    "responselike": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+      "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+      "requires": {
+        "lowercase-keys": "1.0.1"
+      }
+    },
     "restore-cursor": {
       "version": "2.0.0",
       "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz",
@@ -8767,8 +8959,7 @@
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
-      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
-      "dev": true
+      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
     },
     "safe-regex": {
       "version": "1.1.0",
@@ -9211,6 +9402,14 @@
         }
       }
     },
+    "sort-keys": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+      "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
+      "requires": {
+        "is-plain-obj": "1.1.0"
+      }
+    },
     "source-list-map": {
       "version": "2.0.1",
       "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
@@ -9480,6 +9679,11 @@
       "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
       "dev": true
     },
+    "strict-uri-encode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+    },
     "string-width": {
       "version": "2.1.1",
       "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
@@ -9516,7 +9720,6 @@
       "version": "1.1.1",
       "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
       "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
-      "dev": true,
       "requires": {
         "safe-buffer": "5.1.2"
       }
@@ -9862,6 +10065,11 @@
       "integrity": "sha1-9d9zJFNAewkZHa5z4qjMc/OBqCY=",
       "dev": true
     },
+    "timed-out": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+      "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+    },
     "timers-browserify": {
       "version": "2.0.10",
       "resolved": "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz",
@@ -10304,6 +10512,19 @@
         "requires-port": "1.0.0"
       }
     },
+    "url-parse-lax": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+      "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+      "requires": {
+        "prepend-http": "2.0.0"
+      }
+    },
+    "url-to-options": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+      "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+    },
     "use": {
       "version": "3.1.1",
       "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
@@ -10322,8 +10543,7 @@
     "util-deprecate": {
       "version": "1.0.2",
       "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
     },
     "util.promisify": {
       "version": "1.0.0",
@@ -10466,6 +10686,14 @@
         "vue-style-loader": "4.1.2"
       }
     },
+    "vue-resource": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/vue-resource/-/vue-resource-1.5.1.tgz",
+      "integrity": "sha512-o6V4wNgeqP+9v9b2bPXrr20CGNQPEXjpbUWdZWq9GJhqVeAGcYoeTtn/D4q059ZiyN0DIrDv/ADrQUmlUQcsmg==",
+      "requires": {
+        "got": "8.3.2"
+      }
+    },
     "vue-router": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",

+ 1 - 0
sourcecode/h5app/vue/package.json

@@ -11,6 +11,7 @@
     "vant": "^1.4.8",
     "vue": "^2.5.17",
     "vue-clipboard2": "^0.2.1",
+    "vue-resource": "^1.5.1",
     "vue-router": "^3.0.2"
   },
   "devDependencies": {

+ 10 - 11
sourcecode/h5app/vue/src/components/addPhoto.vue

@@ -3,7 +3,7 @@
         <div class='add_photo'>
             <van-uploader :after-read="onRead">
                 <van-icon v-if='!uploaded' name="photograph" size="50px"/>
-                <img :src="photopath" v-if='uploaded' style="max-height: 90px"/>
+                <img :src="photo.content" v-if='uploaded' style="max-height: 90px"/>
             </van-uploader>
         </div>
     </div>
@@ -18,22 +18,21 @@
         components: {
             [Uploader.name]: Uploader, [Icon.name]: Icon,
         },
-        data() {
-            return {
-                uploaded: false
-            }
-        },
         props: {
-            photopath: {
-                type: String,
-                default: ''
+            uploaded: {
+                type: Boolean,
+                default:false
+            },
+            photo: {
+                type: Object,
+                default: null
             },
         },
         methods: {
             onRead(file) {
-                this.photopath = file.content;
+                this.photo= file;
                 this.uploaded = true;
-                this.$emit('uploadPhoto', this.photopath);
+                this.$emit('uploadPhoto', this.photo);
             }
         }
     }

+ 6 - 1
sourcecode/h5app/vue/src/main.js

@@ -1,10 +1,15 @@
 import Vue from 'vue'
 import App from './App.vue'
-import { router } from './router';
+import { router } from './router'
 import VueClipboard from 'vue-clipboard2'
+import VueResource from 'vue-resource'
 
 Vue.config.productionTip = false;
 Vue.use(VueClipboard);
+Vue.use(VueResource);
+
+Vue.http.options.emulateJSON = true;
+Vue.http.options.emulateHTTP = true;
 
 new Vue({
     router,

+ 0 - 0
sourcecode/h5app/vue/src/resource list.md


+ 64 - 27
sourcecode/h5app/vue/src/views/SecurityVerify.vue

@@ -9,6 +9,8 @@
                         clearable
                         label="手机号"
                         placeholder="请输入手机号"
+                        :error="phoneError"
+                        @click="phoneError=false"
                 />
                 <van-field
                         v-model="sms"
@@ -17,30 +19,42 @@
                         label="短信验证码"
                         placeholder="请输入短信验证码"
                         required
+                        disabled=false
                 >
-                    <van-button slot="button" size="small" type="primary">发送验证码</van-button>
+                    <van-button slot="button" size="small" type="primary" disabled=false>发送验证码</van-button>
                 </van-field>
                 <van-field
-                        v-model="username"
+                        v-model="password"
                         required
                         clearable
-                        label="昵称"
-                        placeholder="请输入昵称"
-                />
-                <van-field
-                        v-model="password"
                         type="password"
                         label="密码"
                         placeholder="请输入密码"
-                        required
+                        maxlength="16"
+                        :error="passError"
+                        @click="passError=false"
                 />
                     <van-field
                             v-model="passverify"
+                            required
+                            clearable
                             type="password"
-                            label="密码"
+                            label="确认密码"
                             placeholder="请再次输入密码"
-                            required
+                            maxlength="16"
+                            :error="passVerifyError"
+                            @click="passVerifyError=false"
                     />
+                <van-field
+                        v-model="username"
+                        required
+                        clearable
+                        label="昵称"
+                        placeholder="请输入昵称"
+                        maxlength="12"
+                        :error="usernameError"
+                        @click="usernameError=false"
+                />
             </van-cell-group>
 
             <p>性别</p>
@@ -56,14 +70,14 @@
                     :actions="actions"
                     cancel-text="取消"
                     @select="onSelect"
-                    @cancel="onCancel"
             />
 
         </div>
 
         <div class="card">
-            <p>上传礼物照片</p>
-            <add-photo @upload-photo="onRead"/>
+            <p>上传校卡照片</p>
+            <add-photo @uploadPhoto="onReadPhoto"/>
+            <p>活动仅允许深大学生参与,请上传正面校卡照片审核~</p>
         </div>
         <van-button size="large" type="primary" @click="next" class="next">下一步</van-button>
     </div>
@@ -76,7 +90,8 @@
         RadioGroup, Radio,
         Picker,
         Button,
-        Actionsheet
+        Actionsheet,
+        Toast
     } from 'vant'
     import AddPhoto from "../components/addPhoto";
     export default {
@@ -93,39 +108,61 @@
         data() {
             return {
                 phone: '',
+                phoneError: false,
                 sms: '',
                 password: '',
+                passError: false,
                 passverify: '',
-                radio: '1',
+                passVerifyError: false,
+                username: '',
+                usernameError: false,
+                radio: '0',
                 show: false,
                 dormitory: '点击选择宿舍区',
+                dorId: -1,
                 actions: [
-                    {name: '斋区'},
-                    {name: '西南'},
-                    {name: '南区'},
-                    {name: '西丽'}
-                ]
+                    {id: 0, name: '斋区'},
+                    {id: 1, name: '西南'},
+                    {id: 2, name: '南区'},
+                    {id: 3, name: '西丽'}
+                ],
+                photo: null
             };
         },
-        props: {
-            photo: {
-                type: Object,
-                default: null
-            }
-        },
         methods: {
             next() {
                 // 检查输入
+                if (this.phone.length !== 11) {
+                    this.phoneError = true;
+                    return;
+                } else if (this.password.length < 8) {
+                    this.passError = true;
+                    return;
+                } else if (this.password !== this.passverify) {
+                    this.passVerifyError = true;
+                    return;
+                } else if (this.username .length< 3) {
+                    this.usernameError = true;
+                    return;
+                } else if (this.dorId === -1) {
+                    Toast.fail('请选择宿舍区');
+                    return;
+                } else if (this.photo === null) {
+                    Toast.fail('请上传校卡正面照片');
+                    return;
+                }
                 this.$router.push('presentRegister');
                 // this.$router.push('index');
             },
-            onRead(file) {
+            onReadPhoto(file) {
                 this.photo = file;
+                console.log(this.photo);
             },
             onSelect(item) {
                 // 点击选项时默认不会关闭菜单,可以手动关闭
                 this.show = false;
                 this.dormitory = item.name;
+                this.dorId = item.id;
             }
         }
     }

+ 39 - 5
sourcecode/h5app/vue/src/views/login.vue

@@ -8,6 +8,8 @@
                     clearable
                     label="手机号"
                     placeholder="请输入手机号"
+                    :error="phoneError"
+                    @click="phoneError=false"
             />
             <van-field
                     v-model="password"
@@ -16,6 +18,8 @@
                     type="password"
                     label="密码"
                     placeholder="请输入密码"
+                    :error="passError"
+                    @click="passError=false"
             />
 
             <van-field
@@ -25,9 +29,9 @@
                     label="短信验证码"
                     placeholder="请输入短信验证码(暂时不用)"
                     required
-                    disabled="false"
+                    disabled=false
             >
-                <van-button slot="button" size="small" type="primary">发送验证码</van-button>
+                <van-button slot="button" size="small" type="primary" disabled=false>发送验证码</van-button>
             </van-field>
         </van-cell-group>
         <div style="position: fixed; bottom: 5px; width:100%">
@@ -41,7 +45,7 @@
     import {
         Field,
         CellGroup,
-        Button
+        Button,
     } from 'vant';
     export default {
         components: {
@@ -52,14 +56,44 @@
         data() {
             return {
                 phone: '',
+                phoneError: false,
                 sms: '',
-                password: ''
+                password: '',
+                passError: false
             }
         },
         methods: {
             Login() {
                 // 检查输入
-                // 检查手机号有无验证
+                if(this.phone.length !== 11) {
+                    this.phoneError = true;
+                    return;
+                } else if(this.password.length < 8) {
+                    this.passError = true;
+                    return;
+                }
+                // 检查手机号有无注册
+
+                // let API = "http://south.niimei.com:8866/server";
+                // let GETUSERINFO = "/smartUsers/list";
+                // this.$http.get(API+GETUSERINFO).then((data) => {
+                //     // 响应成功回调
+                //     console.log(data);
+                // }, (err) => {
+                //     // 响应错误回调
+                //     console.log(err);
+                //     console.log(this);
+                // });
+                // let login_info = {
+                //     phone: this.phone,
+                //     pass: this.password
+                // };
+                // if(get_data(login_info)) {
+                //     this.$router.push('index');
+                // } else {
+                //     this.phoneError = true;
+                //     this.passError = true;
+                // }
                 this.$router.push('index');
             },
             Register() {