Browse Source

Merge branch 'master' of http://git.9026.com/gubai/IHG

yfso 2 years ago
parent
commit
50bc93076c

+ 13 - 1
api/orders/orders.js

xqd
@@ -37,10 +37,22 @@ export function confirmOrderDetail(data){
 		data
 	)
 }
+
+//确认收货
+
+export function confirmReceipt(data){
+	return request.post(
+		`v1/order/confirmReceipt`,
+		data
+	)
+}
+
+
 export default {
  getOrderList,
  getOrderDetail,
  orderExchange,
  confirmOrder,
- confirmOrderDetail
+ confirmOrderDetail,
+ confirmReceipt
 }

+ 11 - 2
api/product/product.js

xqd xqd
@@ -16,7 +16,7 @@ export function getProductDetail(data){
 	)
 }
 
-//订单兑换
+//奖品订单兑换
 export function orderExchange(data){
 	return request.post(
 		`v1/order/orderExchange`,
@@ -24,9 +24,18 @@ export function orderExchange(data){
 	)
 }
 
+//积分产品订单兑换
+export function integralExchange(data){
+	return request.post(
+		`v1/integral/integralExchange`,
+		data
+	)
+}
+
 
 export default {
   getProducts,
   getProductDetail,
-  orderExchange
+  orderExchange,
+  integralExchange
 }

+ 1031 - 1
package-lock.json

xqd xqd
@@ -9,7 +9,532 @@
       "version": "1.0.0",
       "license": "ISC",
       "dependencies": {
-        "uview-ui": "^2.0.31"
+        "uview-ui": "^2.0.31",
+        "vue-qr": "^4.0.9",
+        "wx-qrcode": "^1.1.0"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "node_modules/asn1": {
+      "version": "0.2.6",
+      "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
+      "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+      "dependencies": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "node_modules/assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "node_modules/aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/aws4": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.11.0.tgz",
+      "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+      "dependencies": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
+    },
+    "node_modules/combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "dependencies": {
+        "delayed-stream": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
+    },
+    "node_modules/dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+      "dependencies": {
+        "assert-plus": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/decompress-response": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
+      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+      "dependencies": {
+        "mimic-response": "^3.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+      "dependencies": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "node_modules/extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "node_modules/extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+      "engines": [
+        "node >=0.6.0"
+      ]
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+    },
+    "node_modules/forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 0.12"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+      "dependencies": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "node_modules/glob": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-8.0.3.tgz",
+      "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^5.0.1",
+        "once": "^1.3.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/har-validator": {
+      "version": "5.1.5",
+      "resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
+      "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+      "deprecated": "this library is no longer supported",
+      "dependencies": {
+        "ajv": "^6.12.3",
+        "har-schema": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+      "dependencies": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      },
+      "engines": {
+        "node": ">=0.8",
+        "npm": ">=1.3.7"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+    },
+    "node_modules/isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+    },
+    "node_modules/js-binary-schema-parser": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
+      "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
+    },
+    "node_modules/jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+    },
+    "node_modules/json-schema": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
+      "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+    },
+    "node_modules/json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
+    },
+    "node_modules/jsprim": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
+      "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+      "dependencies": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.4.0",
+        "verror": "1.10.0"
+      },
+      "engines": {
+        "node": ">=0.6.0"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mimic-response": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz",
+      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz",
+      "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/parenthesis": {
+      "version": "3.1.8",
+      "resolved": "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz",
+      "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
+    },
+    "node_modules/performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+    },
+    "node_modules/psl": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
+      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+    },
+    "node_modules/punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/q": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/q/-/q-1.4.1.tgz",
+      "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==",
+      "engines": {
+        "node": ">=0.6.0",
+        "teleport": ">=0.2.0"
+      }
+    },
+    "node_modules/qs": {
+      "version": "6.5.3",
+      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
+      "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/request": {
+      "version": "2.88.2",
+      "resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
+      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+      "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
+      "dependencies": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.3",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.5.0",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "node_modules/simple-concat": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz",
+      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+    },
+    "node_modules/simple-get": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz",
+      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+      "dependencies": {
+        "decompress-response": "^6.0.0",
+        "once": "^1.3.1",
+        "simple-concat": "^1.0.0"
+      }
+    },
+    "node_modules/sshpk": {
+      "version": "1.17.0",
+      "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
+      "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+      "dependencies": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      },
+      "bin": {
+        "sshpk-conv": "bin/sshpk-conv",
+        "sshpk-sign": "bin/sshpk-sign",
+        "sshpk-verify": "bin/sshpk-verify"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/string-split-by": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz",
+      "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
+      "dependencies": {
+        "parenthesis": "^3.1.5"
+      }
+    },
+    "node_modules/tough-cookie": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
+      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+      "dependencies": {
+        "psl": "^1.1.28",
+        "punycode": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+      "dependencies": {
+        "safe-buffer": "^5.0.1"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/uuid": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+      "deprecated": "Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.",
+      "bin": {
+        "uuid": "bin/uuid"
       }
     },
     "node_modules/uview-ui": {
@@ -19,13 +544,518 @@
       "engines": {
         "HBuilderX": "^3.1.0"
       }
+    },
+    "node_modules/verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+      "engines": [
+        "node >=0.6.0"
+      ],
+      "dependencies": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "node_modules/vue-qr": {
+      "version": "4.0.9",
+      "resolved": "https://registry.npmmirror.com/vue-qr/-/vue-qr-4.0.9.tgz",
+      "integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
+      "dependencies": {
+        "glob": "^8.0.1",
+        "js-binary-schema-parser": "^2.0.2",
+        "simple-get": "^4.0.1",
+        "string-split-by": "^1.0.0"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    },
+    "node_modules/wx-qrcode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/wx-qrcode/-/wx-qrcode-1.1.0.tgz",
+      "integrity": "sha512-6lSb8aNgeuMBLf/5QjJJjEWgkX1b+0bJkewZbUZuxLRH20zx8/yzBhWhiErxoQ7GE9e80UhqCf5M7A0W5bUjfg==",
+      "dependencies": {
+        "q": "1.4.1",
+        "request": "*"
+      }
     }
   },
   "dependencies": {
+    "ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "requires": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "asn1": {
+      "version": "0.2.6",
+      "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
+      "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
+    },
+    "aws4": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.11.0.tgz",
+      "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+    },
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "requires": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "decompress-response": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
+      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+      "requires": {
+        "mimic-response": "^3.1.0"
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
+    },
+    "fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-8.0.3.tgz",
+      "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^5.0.1",
+        "once": "^1.3.0"
+      }
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
+    },
+    "har-validator": {
+      "version": "5.1.5",
+      "resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
+      "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+      "requires": {
+        "ajv": "^6.12.3",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+    },
+    "js-binary-schema-parser": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
+      "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+    },
+    "json-schema": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
+      "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
+    },
+    "jsprim": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
+      "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.4.0",
+        "verror": "1.10.0"
+      }
+    },
+    "mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+    },
+    "mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "requires": {
+        "mime-db": "1.52.0"
+      }
+    },
+    "mimic-response": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz",
+      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+    },
+    "minimatch": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz",
+      "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
+      "requires": {
+        "brace-expansion": "^2.0.1"
+      }
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "parenthesis": {
+      "version": "3.1.8",
+      "resolved": "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz",
+      "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+    },
+    "psl": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
+      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+    },
+    "q": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/q/-/q-1.4.1.tgz",
+      "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg=="
+    },
+    "qs": {
+      "version": "6.5.3",
+      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
+      "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
+    },
+    "request": {
+      "version": "2.88.2",
+      "resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
+      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.3",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.5.0",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "simple-concat": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz",
+      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+    },
+    "simple-get": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz",
+      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+      "requires": {
+        "decompress-response": "^6.0.0",
+        "once": "^1.3.1",
+        "simple-concat": "^1.0.0"
+      }
+    },
+    "sshpk": {
+      "version": "1.17.0",
+      "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
+      "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "string-split-by": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz",
+      "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
+      "requires": {
+        "parenthesis": "^3.1.5"
+      }
+    },
+    "tough-cookie": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
+      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+      "requires": {
+        "psl": "^1.1.28",
+        "punycode": "^2.1.1"
+      }
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
+    },
+    "uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "uuid": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+    },
     "uview-ui": {
       "version": "2.0.31",
       "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz",
       "integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vue-qr": {
+      "version": "4.0.9",
+      "resolved": "https://registry.npmmirror.com/vue-qr/-/vue-qr-4.0.9.tgz",
+      "integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
+      "requires": {
+        "glob": "^8.0.1",
+        "js-binary-schema-parser": "^2.0.2",
+        "simple-get": "^4.0.1",
+        "string-split-by": "^1.0.0"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    },
+    "wx-qrcode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/wx-qrcode/-/wx-qrcode-1.1.0.tgz",
+      "integrity": "sha512-6lSb8aNgeuMBLf/5QjJJjEWgkX1b+0bJkewZbUZuxLRH20zx8/yzBhWhiErxoQ7GE9e80UhqCf5M7A0W5bUjfg==",
+      "requires": {
+        "q": "1.4.1",
+        "request": "*"
+      }
     }
   }
 }

+ 3 - 1
package.json

xqd
@@ -10,6 +10,8 @@
   "author": "",
   "license": "ISC",
   "dependencies": {
-    "uview-ui": "^2.0.31"
+    "uview-ui": "^2.0.31",
+    "vue-qr": "^4.0.9",
+    "wx-qrcode": "^1.1.0"
   }
 }

+ 10 - 2
pages/goods/goods-detail/index.vue

xqd xqd xqd
@@ -97,7 +97,7 @@
 			<view class="buy-btn-right" @click="$refs.codePurchase.open()" v-if="produceType==1">
 				<text>立即购买</text>
 			</view>
-			<view v-if="produceType==2" class="buy-btn-right" @click="goIntegralOrder(product_id)">
+			<view v-if="produceType==2" class="buy-btn-right" @click="goProductChange(product_id)">
 				<text>立即兑换</text>
 			</view>
 		</view>
@@ -109,7 +109,7 @@
 				<view class="pop-price">
 					<view class="pop-price-left">
 						<image style="width: 180rpx;height: 136rpx; border-radius:12rpx ;"
-							src="http://t9.9026.com/imgs/special01.png" mode="" ></image>
+							:src="productDetail.cover_img" mode="" ></image>
 						<view class="pop-price-left-money" v-if="produceType == 1">
 							<text>¥</text>
 							<text>{{productDetail.price}}</text>
@@ -386,6 +386,14 @@
 			change1(e) {
 				this.current1 = e.detail.current;
 			},
+			
+			//积分兑换
+			goProductChange(id){
+				uni.navigateTo({
+					url:'/pages/my/integral/integralOrder?product_id='+id
+				})
+			},
+			
 			// 跳转积分兑换
 			goIntegralOrder(id){
 				this.$utils.jump({

+ 1 - 1
pages/index/active-detail/index.vue

xqd
@@ -270,7 +270,7 @@
 			back() {  
 				uni.navigateBack({ 
 					fail:()=>{
-						uni.redirectTo({
+						uni.switchTab({
 							url: "/pages/index/index"
 						})
 					} 

+ 2 - 2
pages/index/index.vue

xqd
@@ -553,10 +553,10 @@
 						}
 					})
 				} else if (id == 3) {
-					uni.reLaunch({
+					uni.redirectTo({
 						url: urls,
 						fail:(err)=>{
-							uni.navigateTo({
+							uni.reLaunch({
 								url: urls
 							})
 						}

+ 12 - 5
pages/my/integral/integral.vue

xqd xqd
@@ -80,15 +80,24 @@
 				// 积分产品列表
 				integralList:[],	
 				arr:[],
-			
 			}
 		},
 		onLoad() {
 			this.getProductList()
+			this.getInfo()
 			console.log(this.$store.getters.userInfo)
-			this.userIntegral=this.$store.getters.userInfo.integral
 		},
 		methods:{
+			
+			//用户信息
+			getInfo(){
+				this.$api.my.userInfo().then(res=>{
+					this.$store.dispatch('user/info', res.data)
+					this.userIntegral=this.$store.getters.userInfo.integral
+				})
+			},
+			
+			
 			// 获取积分产品列表
 			getProductList(){
 				this.$api.product.getProducts({
@@ -119,11 +128,9 @@
 						item.short = true
 					}
 				})
-				console.log(this.goodsList);
+
 			},
 			
-			
-			
 			// 跳转积分规则
 			gointegralRule(){
 				uni.navigateTo({

+ 246 - 101
pages/my/integral/integralOrder.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -4,7 +4,7 @@
 		<view class="form">
 			<view class="">
 				<uni-forms :modelValue="formData">
-					<uni-forms-item name="type" v-if="istype">
+					<uni-forms-item name="type" v-if="is_virtual == 0 ">
 						<view class="selectType" @click="openSelect">
 							<view class="uni-input">
 								<text v-if="formData.type==''||formData.type==null"
@@ -23,24 +23,26 @@
 						<uni-easyinput type="number" v-model="Data.phone" placeholder="填写联系电话" maxlength=11 />
 					</uni-forms-item>
 					<uni-forms-item name="region" v-if="formData.type=='快递配送'">
-						
+
 						<pickerAddress @change="change">
 							<!-- <uni-easyinput type="text" v-model="formData.region" placeholder="所在地区" /> -->
 							<view class="selectType">
 								<view class="uni-input">
 									<text v-if="formData.region==''||formData.region==null"
 										style="color: #999999 ; font-size: 30rpx; ">所在地区</text>
-									<text style="font-size: 30rpx;" v-if="formData.region!=''">{{formData.region}}</text>
+									<text style="font-size: 30rpx;"
+										v-if="formData.region!=''">{{formData.region}}</text>
 								</view>
 								<image src="/static/icon/right.png"
 									style="width: 14rpx;height: 24rpx;position: absolute;top:31rpx;right: 30rpx;">
 								</image>
 							</view>
-							
+
 						</pickerAddress>
 					</uni-forms-item>
 					<uni-forms-item name="region" v-if="formData.type=='快递配送'">
-						<textarea placeholder-style="#999" class="text-area" type="text" placeholder="详细地址"  v-model="Data.address" />
+						<textarea placeholder-style="#999" class="text-area" type="text" placeholder="详细地址"
+							v-model="Data.address" />
 
 					</uni-forms-item>
 					<uni-forms-item name="region" v-if="formData.type=='到店自提'||isVerification==true">
@@ -49,6 +51,7 @@
 								<text v-if="formData.shop==''||formData.shop==null"
 									style="color: #999999 ; font-size: 30rpx; ">请选择门店</text>
 								<text style="font-size: 30rpx;" v-if="formData.shop!=''">{{formData.shop}}</text>
+								<text class="distance" v-if="formData.shop!=''">{{formData.distanceToMe}}km</text>
 							</view>
 							<image src="/static/icon/right.png"
 								style="width: 14rpx;height: 24rpx;position: absolute;top:31rpx;right: 30rpx;">
@@ -64,7 +67,8 @@
 				<text>产品信息</text>
 			</view>
 			<view class="shopCard">
-				<image :src="productDetail.cover_img?productDetail.cover_img:'http://t9.9026.com/imgs/Kudosbg.png'"></image>
+				<image :src="productDetail.cover_img?productDetail.cover_img:'http://t9.9026.com/imgs/Kudosbg.png'">
+				</image>
 				<view style="margin-left: 24rpx;">
 					<text class="name">{{productDetail.name}}</text>
 					<text class="tag">礼盒装 </text>
@@ -104,8 +108,9 @@
 							style="font-size: 32rpx; color: #FF6200;line-height: 34rpx">确定</text></view>
 				</view>
 				<view class="chooselag">
-					<view @click="companyed(item.name,index)" class="language" v-for="(item,index) in typeSelect "
-						:sgActive='activeIndex==index'>
+					<view @click="companyed(item.name,index)" class="language" 
+					v-for="(item,index) in typeSelect " :key="index"
+					:class="[activeIndex === index?'sgActive': ''] ">
 						<text>{{item.name}}</text>
 					</view>
 				</view>
@@ -125,8 +130,9 @@
 							style="font-size: 32rpx; color: #FF6200;line-height: 34rpx">确定</text></view>
 				</view>
 				<view class="chooselag">
-					<view @click="companyedShop(item.name,index)" class="language" v-for="(item,index) in regionSelect "
-						:sgActive='activeIndex==index'>
+					<view@click="companyedShop(item.name,item.id,item.distanceToMe,index)" 
+					class="language" v-for="(item,index) in hotelList" :key="index"
+						:class="[activeIndex2 === index?'sgActive': ''] ">
 						<text>{{item.name}}</text>
 					</view>
 				</view>
@@ -145,37 +151,44 @@
 		},
 		data() {
 			return {
-				activeIndex: null,
+				//选中激活样式
+				activeIndex: '',
+				activeIndex2: '',
+				//经纬度
+				latitude: '',
+				longitude: '',
+				//实物奖品0,虚拟奖品1
+				is_virtual: '',
+				// activeIndex: null,
 				// 是否核销
 				isVerification: false,
 				// 产品信息
-				productDetail:'',
+				productDetail: '',
 				// 表单数据
 				formData: {
+					// 表单数据
 					type: '',
-					phone: '',
-					name: '',
 					region: '',
 					shop: '',
-					address: '',
+					distanceToMe: ''
 				},
-				Data:{
+				Data: {
 					// 快递类型(1.快递发货 2.到店自提也是线下核销)
-					express_type:'',
+					express_type: '',
 					// 收货人
-					receiver:"",
+					receiver: "",
 					// 联系电话
-					phone:'',
+					phone: '',
 					// 地址ID,最小行政单位地区ID,express_type=1时必传
-					area_id:2000,
+					area_id: '',
 					// 详细地址,express_type=1时必传
-					address:'',
-					// 门店ID,express_type=2时必传
-					hotel_id:'',
+					address: '',
+					//门店ID,express_type=2时必传
+					hotel_id: 0,
 					// 产品ID
-					product_id:'',
+					product_id: '',
 					// 产品规格ID
-					product_attr_id:1,
+					attr:'',
 				},
 				// 配送方式
 				typeSelect: [{
@@ -186,41 +199,206 @@
 				// 是否显示配送方式
 				istype: true,
 				// 选择门店
-				regionSelect: [{
-					name: '第一门店',
-				}, {
-					name: '第二门店',
-				}, {
-					name: '第三门店',
-				}, {
-					name: '第四门店',
-				}, {
-					name: '第五门店',
-				}, {
-					name: '第六门店',
-				}, {
-					name: '第七门店',
-				}]
+				hotelList: []
 			}
 		},
 		onLoad(op) {
-			console.log(op,"产品id")
-			this.Data.product_id=op.product_id
+			console.log(op, "产品id")
+			this.Data.product_id = op.product_id
 			this.getProductDetail(op.product_id)
 		},
 		methods: {
-			change(ret){
+			space(lat1, lng1, lat2, lng2) {
+				var radLat1 = lat1 * Math.PI / 180.0;
+				var radLat2 = lat2 * Math.PI / 180.0;
+				var a = radLat1 - radLat2;
+				var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
+				var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
+					Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+			 s = s * 6378.137;
+				s = Math.round(s * 10000) / 10000;
+				return s // 单位千米
+			},
+			//门店列表
+			getHotel() {
+				this.$api.hotel.getHotelList({
+					page: 1,
+					type: 2,
+					latitude: this.latitude,
+					longitude: this.longitude
+				}).then(res => {
+					this.hotelList = res.data.data
+					this.hotelList.map(item => {
+						item.distanceToMe = this.space(this.latitude, this.longitude, item.latitude, item
+							.longitude).toFixed(1);
+						return item;
+					})
+					console.log(this.hotelList, '-------->this.hotelList');
+				})
+			},
+			//获取定位
+			goLocation() {
+				let _this = this
+				uni.getLocation({
+					type: "gcj02", //返回可以用于wx.openLocation的经纬度
+					success: function(res) {
+						_this.latitude = res.latitude
+						_this.longitude = res.longitude
+					},
+					fail: function(res) {
+						console.log(res)
+					}
+				})
+			},
+			// 获取产品信息
+			getProductDetail(id) {
+				this.$loading()
+				this.$api.product.getProductDetail({
+					product_id: id
+				}).then(res => {
+					console.log(res, "产品信息")
+					this.$hideLoading()
+					if (res.code == 0) {
+						this.productDetail = res.data
+						this.is_virtual = res.data.is_virtual
+						if (this.is_virtual == 1) {
+							this.isVerification = true
+							this.Data.express_type = 2
+							this.goLocation()
+							setTimeout(() => {
+								this.getHotel()
+							}, 1000)
+						}
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						})
+					}
+				})
+			},
+			
+			//订单兑换
+			goExchange() {
+				if (this.formData.type == '' && this.is_virtual == 0) {
+					uni.showToast({
+						icon: 'none',
+						title: '请选择配送方式'
+					})
+					return
+				}
+				if (this.Data.receiver == '') {
+					uni.showToast({
+						icon: 'none',
+						title: '请填写联系人'
+					})
+					return
+				}
+				if (this.Data.phone == '') {
+					uni.showToast({
+						icon: 'none',
+						title: '请填写联系电话'
+					})
+					return
+				}
+				if (this.formData.region == '' && this.Data.express_type == 1) {
+					uni.showToast({
+						icon: 'none',
+						title: '请填写所在地区'
+					})
+					return
+				}
+				if (this.Data.address == '' && this.Data.express_type == 1) {
+					uni.showToast({
+						icon: 'none',
+						title: '请填写详细地址'
+					})
+					return
+				}
+				if (this.Data.hotel_id == '' && this.Data.express_type == 2) {
+					uni.showToast({
+						icon: 'none',
+						title: '请选择门店'
+					})
+					return
+				}
+				if(this.is_virtual == 0){
+					if(this.Data.express_type == 1){
+						this.$api.product.integralExchange({
+							...this.Data
+						}).then(res => {
+							if (res.code == 0) {
+								uni.navigateTo({
+									url: '/pages/my/prize/exchangeDetail'
+								})
+							} else {
+								uni.showToast({
+									icon: 'none',
+									title: res.msg
+								})
+							}
+						})
+					}else{
+						let obj ={}
+						obj.express_type = this.Data.express_type
+						obj.product_id = this.Data.product_id
+						obj.receiver = this.Data.receiver
+						obj.phone = this.Data.phone
+						obj.hotel_id = this.Data.hotel_id
+						obj.attr = this.Data.attr
+						this.$api.product.integralExchange({
+							...obj
+						}).then(res => {
+							if (res.code == 0) {
+								uni.navigateTo({
+									url: '/pages/my/prize/exchangeDetail'
+								})
+							} else {
+								uni.showToast({
+									icon: 'none',
+									title: res.msg
+								})
+							}
+						})
+					}
+				}else{
+					let obj ={}
+					obj.express_type = this.Data.express_type
+					obj.product_id = this.Data.product_id
+					obj.receiver = this.Data.receiver
+					obj.phone = this.Data.phone
+					obj.hotel_id = this.Data.hotel_id
+					obj.attr = this.Data.attr
+					this.$api.product.integralExchange({
+						...obj
+					}).then(res => {
+						if (res.code == 0) {
+							uni.navigateTo({
+								url: '/pages/my/prize/exchangeDetail'
+							})
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: res.msg
+							})
+						}
+					})
+				}
+			},
+			
+			change(ret) {
 				this.formData.region = ret.data.join('-')
+				this.Data.area_id = ret.code[2]
 			},
 			//打开门店弹框
 			openShop() {
 				this.$refs.shopSelected.open('bottom')
 			},
-			companyedShop(i, index) {
+			companyedShop(i, id, distance,index) {
 				this.typestatus2 = i
-				this.activeIndex = index
-				console.log(i, this.activeIndex)
-				this.Data.hotel_id=index
+				this.distanceToMe1 = distance
+				this.activeIndex2= index
+				this.Data.hotel_id = id
 			},
 			//确定按钮
 			sureShopBtn() {
@@ -231,6 +409,7 @@
 					})
 				} else {
 					this.formData.shop = this.typestatus2
+					this.formData.distanceToMe = this.distanceToMe1
 					this.$refs.shopSelected.close()
 				}
 			},
@@ -247,11 +426,14 @@
 			companyed(i, index) {
 				this.typestatus1 = i
 				this.activeIndex = index
-				console.log(i, this.activeIndex)
-				if(index==0){
-					this.Data.express_type=1
-				}else if(index==1){
-					this.Data.express_type=2
+				if (index == 0) {
+					this.Data.express_type = 1
+				} else if (index == 1) {
+					this.Data.express_type = 2
+					this.goLocation()
+					setTimeout(() => {
+						this.getHotel()
+					}, 1000)
 				}
 			},
 			//确定按钮
@@ -270,48 +452,6 @@
 			cancelBtn() {
 				this.$refs.Recipient.close()
 			},
-
-			// 跳转积分兑换详情
-			goExDetail(integral) {
-				uni.navigateTo({
-					url: '/pages/my/integral/integralExchange?integral='+integral
-				})
-			},
-			// 积分兑换
-			goExchange(){
-				console.log(this.Data,"提交表单")
-				this.$api.integral.integralExchange({
-					...this.Data
-				}).then(res=>{
-					console.log(res)
-					if(res.code==0){
-						this.goExDetail(this.productDetail.integral)
-					}else{
-						uni.showToast({
-							title:res.msg,
-							icon:'none'
-						})
-					}
-				})
-			},
-			// 获取产品信息
-			getProductDetail(id){
-				this.$loading()
-				this.$api.product.getProductDetail({
-					product_id:id
-				}).then(res=>{
-					console.log(res,"产品信息")
-					this.$hideLoading()
-					if(res.code==0){
-						this.productDetail=res.data
-					}else{
-						uni.showToast({
-							title:res.msg,
-							icon:'none'
-						})
-					}
-				})
-			},
 		}
 	}
 </script>
@@ -330,8 +470,13 @@
 		height: 100%;
 		// background: #f9f9f9;
 	}
-	
-	.uni-input-area{
+	.distance {
+		position: absolute;
+		right: 60rpx;
+		top: 23rpx;
+	}
+
+	.uni-input-area {
 		width: 100%;
 		height: 98rpx;
 		padding: 34rpx 20rpx;
@@ -392,11 +537,11 @@
 				justify-content: center;
 				padding-top: 40rpx;
 				padding-bottom: 40rpx;
-
-				&[sgActive] {
-					color: #405E49 !important;
-					font-weight: bold !important;
-				}
+			}
+			
+			.sgActive{
+				color: #FF6200 !important;
+				font-weight: bold !important;
 			}
 		}
 	}

+ 103 - 35
pages/my/myorders/orderDetail.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -2,24 +2,30 @@
 	<view class="orderDetail">
 		<!-- 标题栏 -->
 		<view class="nav">
-			<text class="orderStatus">待收货</text>
+			<view class="orderStatus" v-if="status == 2 && is_virtual == 0">待发货</view>
+			<view class="orderStatus" v-if="status == 3 && is_virtual == 0">待收货</view>
+			<view class="orderStatus" v-if="status == 3 && is_virtual == 1">待核销</view>
+			<view class="orderStatus" v-if="status == 4 && is_virtual == 0">已完成</view>
+			<view class="orderStatus" v-if="status == 4 && is_virtual == 1">已核销</view>
 		</view>
 
 		<view class="midBox">
 			<!-- 物流信息 -->
-			<view class="logistics" v-if="true">
+			<view class="logistics" v-if="goodsDet.express_type == 1">
 				<view class="logisticsTitle">物流信息</view>
-				<view class="logisticsMsg"><text>快递公司</text><text style="margin-left: 26rpx;">京东快递</text></view>
-				<view class="logisticsMsg"><text>快递单号</text><text style="margin-left: 26rpx;">JD39084237234</text>
+				<view class="logisticsMsg"><text>快递公司</text><text
+						style="margin-left: 26rpx;">{{goodsDet.express_company}}</text></view>
+				<view class="logisticsMsg"><text>快递单号</text><text
+						style="margin-left: 26rpx;">{{goodsDet.express_no}}</text>
 				</view>
-				<view class="copy" @click="copyOrder">复制</view>
+				<view class="copy" @click="copyOrder(goodsDet.express_no)">复制</view>
 			</view>
 			<!-- 配送信息 -->
 			<view class="delivery">
 				<view class="deliveryTitle">
 					<text>配送信息</text>
 				</view>
-				<view class="deliveryMsg" >
+				<view class="deliveryMsg">
 					<image class="bgimg" src="http://t9.9026.com/imgs/ordermap.png"></image>
 					<!-- 联系信息 -->
 					<view class="deliveryicon">
@@ -27,8 +33,8 @@
 						<text>联系信息</text>
 					</view>
 					<view class="deliverytext">
-						<text>刘奕伶</text>
-						<text style="margin-left: 24rpx;">400-123-4567</text>
+						<text>{{goodsDet.receiver}}</text>
+						<text style="margin-left: 24rpx;">{{goodsDet.phone}}</text>
 					</view>
 
 					<!-- 发货方式 -->
@@ -37,46 +43,48 @@
 						<text>发货方式</text>
 					</view>
 					<view class="deliverytext">
-						<text>快递发货</text>
+						<text v-if="goodsDet.express_type ==1">快递发货</text>
+						<text v-if="goodsDet.express_type ==2">到店自提/线下核销</text>
 					</view>
 
 					<!-- 收货地址 -->
-					<view class="deliveryicon" v-if="true">
+					<view class="deliveryicon" v-if="goodsDet.express_type ==1">
 						<image src="/static/icon/position.png"></image>
 						<text>收货地址</text>
 					</view>
-					<view class="deliverytext" v-if="true">
+					<view class="deliverytext" v-if="goodsDet.express_type ==1">
 						<text>四川省 成都市 高新区 XXX小区 XXX号</text>
 					</view>
 
 					<!-- 门店地址 -->
-					<view class="deliveryicon" v-if="false">
+					<view class="deliveryicon" v-if="goodsDet.express_type ==2">
 						<image src="/static/icon/position.png"></image>
-						<text>门店地址</text>
+						<text>{{hotelDet.name}}</text>
 					</view>
-					<view class="deliverytext" v-if="false" style="position:relative;">
-						<text>四川省 成都市 高新区 XXX小区 XXX号</text>
-						<image src="/static/icon/navigation.png"
+					<view class="deliverytext" v-if="goodsDet.express_type ==2" style="position:relative;">
+						<text>{{hotelDet.address}}</text>
+						<image src="/static/icon/navigation.png" @click="goLocaltion(hotelDet.name,hotelDet.address)"
 							style="width: 50rpx;height: 48rpx; position: absolute; top: 0rpx;right: 30rpx;"></image>
 					</view>
 
 					<!-- 门店联系方式 -->
-					<view class="deliveryicon" v-if="false">
+					<view class="deliveryicon" v-if="goodsDet.express_type ==2">
 						<image src="/static/icon/phone.png"></image>
 						<text>门店联系方式</text>
 					</view>
-					<view class="deliverytext" v-if="false">
-						<text>400-123-4567</text>
+					<view class="deliverytext" v-if="goodsDet.express_type ==2">
+						<text>{{hotelDet.phone}}</text>
 					</view>
 				</view>
 			</view>
 			<!-- 订单信息 -->
 			<view class="myorder">
 				<view class="orderTitle">订单信息</view>
-				<view class="orderMsg"><text>订单编号</text><text style="margin-left: 26rpx;">62aae0eb9c6fd622</text></view>
-				<view class="orderMsg"><text>下单时间</text><text style="margin-left: 26rpx;">2022-08-20 12:32:12</text>
+				<view class="orderMsg"><text>订单编号</text><text style="margin-left: 26rpx;">{{goodsDet.order_no}}</text>
+				</view>
+				<view class="orderMsg"><text>下单时间</text><text style="margin-left: 26rpx;">{{goodsDet.created_at}}</text>
 				</view>
-				<view class="copyorder" @click="copyOrder">复制</view>
+				<view class="copyorder" @click="copyOrder(goodsDet.order_no)">复制</view>
 			</view>
 		</view>
 
@@ -86,22 +94,22 @@
 				<text>产品信息</text>
 			</view>
 			<view class="shopCard">
-				<image src="/static/icon/Kudosbg.png"></image>
+				<image :src="goodsDet.img_urls"></image>
 				<view style="margin-left: 24rpx;">
-					<text class="name">端午佳节五香肉粽子,仅限前</text>
-					<text class="tag">礼盒装 2000积分</text>
+					<text class="name">{{goodsDet.product_name}}</text>
+					<!-- <text class="tag">礼盒装 2000积分</text> -->
 				</view>
 			</view>
 			<view class="shopNumber">
 				<text>件数</text>
 				<text>1件</text>
 			</view>
-			<view class="shopNumber">
+			<view class="shopNumber" v-if="false">
 				<text>积分</text>
 				<text>2000积分</text>
 			</view>
 			<view style="width: 694rpx;height: 4rpx;border: 2rpx solid #F2F2F2;margin-top: 38rpx;"></view>
-			<view class="shopNumber">
+			<view class="shopNumber" v-if="false">
 				<text>合计</text>
 				<text>2000积分</text>
 			</view>
@@ -113,24 +121,78 @@
 	export default {
 		data() {
 			return {
+				//门店详情
+				hotelDet: '',
+				//订单详情
+				goodsDet: '',
+				//订单id
+				order_id: '',
+				//订单状态
+				status: '',
+				//实物:0虚拟奖品:1
+				is_virtual: '',
 			}
 		},
-		
+		onLoad(o) {
+			if (o.id) {
+				//订单id
+				this.order_id = o.id
+				this.orderDeatil()
+			}
+
+		},
+
 		methods: {
+			//导航
+			goLocaltion(name, address) {
+				uni.openLocation({
+					type: "gcj02",
+					latitude: parseFloat(this.hotelDet.latitude), // 纬度,浮点数,范围为90 ~ -90
+					longitude: parseFloat(this.hotelDet.longitude), // 经度,浮点数,范围为180 ~ -180。
+					scale: 6, // 地图缩放级别,整形值,范围从1~28。默认为最大
+					name: name, // 位置名
+					address: address, // 地址详情说明
+				})
+			},
+
+			//门店详情
+			hotelDetail(id) {
+				this.$api.hotel.getHotelDetail({
+					hotel_id: id
+				}).then(res => {
+					this.hotelDet = res.data
+				})
+			},
+
+			//订单详情
+			orderDeatil() {
+				this.$api.orders.getOrderDetail({
+					order_id: this.order_id
+				}).then(res => {
+					this.is_virtual = res.data.is_virtual
+					this.status = res.data.status
+					this.goodsDet = res.data
+					if (this.goodsDet.express_type == 2 && this.goodsDet.hotel_id) {
+						this.hotelDetail(this.goodsDet.hotel_id)
+					}
+
+				})
+			},
 			// 复制订单号
-			copyOrder(){
+			copyOrder(num) {
 				uni.setClipboardData({
-					data: 'hello',
-					success: function () {
+					data: `${num}`,
+					success: function() {
 						uni.showToast({
-							title:'复制成功!'
+							icon: 'none',
+							title: '复制成功'
 						})
 					}
 				});
 			}
 		},
 		computed: {
-			
+
 		}
 	}
 </script>
@@ -179,6 +241,7 @@
 
 		.logistics {
 			position: relative;
+
 			.logisticsTitle {
 				margin-bottom: 25rpx;
 				font-size: 30rpx;
@@ -263,17 +326,20 @@
 				justify-content: center;
 				padding-top: 24rpx;
 				position: relative;
-				.bgimg{
+
+				.bgimg {
 					width: 100%;
 					height: 100%;
 					position: absolute;
-					top:0rpx;
+					top: 0rpx;
 				}
+
 				.deliveryicon {
 					margin-bottom: 15rpx;
 					display: flex;
 					align-items: center;
 					z-index: 999;
+
 					image {
 						width: 26rpx;
 						height: 26rpx;
@@ -291,6 +357,7 @@
 				.deliverytext {
 					margin-bottom: 20rpx;
 					z-index: 999;
+
 					text {
 						font-size: 28rpx;
 						font-family: PingFangSC-Medium, PingFang SC;
@@ -330,6 +397,7 @@
 			border-radius: 10rpx;
 			display: flex;
 			align-items: center;
+
 			image {
 				width: 132rpx;
 				height: 132rpx;

+ 87 - 49
pages/my/myorders/orders.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -24,13 +24,16 @@
 			</view>
 		</view>
 		<view>
-			<view class="card" v-for="(item,index) in orderList" :key="index">
+			<view class="card" v-for="(item,index) in orderList" :key="index" @click="goOrderDetail(item.id)">
 				<view class="toptitle">
 					<view>订单号:{{item.order_no}}</view>
-					<view v-if="item.status == 1">待兑换</view>
-					<view v-if="item.status == 2">待发货</view>
-					<view v-if="item.status == 3">待收货</view>
-					<view v-if="item.status == 4">已完成</view>
+
+					<view v-if="item.status == 1 && item.is_virtual == 0">待兑换</view>
+					<view v-if="item.status == 2 && item.is_virtual == 0">待发货</view>
+					<view v-if="item.status == 3 && item.is_virtual == 0">待收货</view>
+					<view v-if="item.status == 3 && item.is_virtual == 1">待核销</view>
+					<view v-if="item.status == 4 && item.is_virtual == 0">已完成</view>
+					<view v-if="item.status == 4 && item.is_virtual == 1">已核销</view>
 				</view>
 				<view class="shopCard">
 					<image :src="item.img_urls"></image>
@@ -45,7 +48,7 @@
 					<text class="totalContent" v-if="item.integral !=0">2000积分</text>
 				</view>
 				<view class="btn">
-					<view class="btnitem" @click="openVFcode" v-if="false">
+					<view class="btnitem" @click.stop="openVFcode" v-if="item.status == 3 && item.is_virtual == 1">
 						<text>核销码</text>
 					</view>
 					<view class="btnitem" v-if="item.status == 1">
@@ -54,7 +57,8 @@
 					<view class="btnitem" v-if="item.status == 1">
 						<text>兑换</text>
 					</view>
-					<view class="btnitem" v-if="false">
+					<view @click.stop="takeOver(item.id)" class="btnitem"
+						v-if="item.status == 3 && item.is_virtual == 0">
 						<text>确认收货</text>
 					</view>
 				</view>
@@ -62,16 +66,16 @@
 		</view>
 		<!-- 已经到底啦 -->
 		<view class="home-bottom">
-			<uni-load-more :status="status" color="#CCCCCC" :content-text="contentText"/>
+			<uni-load-more :status="status" color="#CCCCCC" :content-text="contentText" />
 		</view>
-		
+
 		<!-- 弹出层/核销码 -->
 		<uni-popup ref="popup" type="center">
 			<view class="pop">
 				<view class="title"><text>核销码</text></view>
 				<view style="margin-left:30rpx;width: 580rpx;height: 2rpx;background: #F0F0F0;"></view>
 				<view class="img">
-					<image src="http://t9.9026.com/imgs/Kudosbg.png"></image>
+					<image :src="qrcode"></image>
 				</view>
 				<view class="btn">
 					<view class="cancel" @click="closeVFcode"><text>取消</text></view>
@@ -79,7 +83,7 @@
 				</view>
 			</view>
 		</uni-popup>
-		
+
 	</view>
 </template>
 
@@ -88,8 +92,10 @@
 	export default {
 		data() {
 			return {
+				//核销码
+				qrcode: 12231231, //二维码内容(扫码识别后需要访问的网址)
 				// 搜索
-				search:'',
+				search: '',
 				// 分段器标题
 				items: ['全部', '待兑换', '待发货', '待收货', '已完成'],
 				isActive: 0,
@@ -101,27 +107,51 @@
 					contentnomore: '——  已经到底啦  ——'
 				},
 				// 订单列表
-				orderList:[],
+				orderList: [],
 			}
 		},
 		onLoad(o) {
 			if (o.isActive) {
 				this.isActive = o.isActive
 				this.getMyOrder(o.isActive)
-			}else{
+			} else {
 				this.getMyOrder()
 			}
 		},
 		methods: {
+
+			//确定收货
+			takeOver(id) {
+				this.$api.orders.confirmReceipt({
+					order_id: id
+				}).then(res => {
+					if (res.code === 0) {
+						uni.showToast({
+							icon: "none",
+							title: '收货成功'
+						})
+						//重新拉数据
+						this.getMyOrder(o.isActive)
+					} else {
+						uni.showToast({
+							icon: "none",
+							title: res.msg
+						})
+					}
+
+				})
+			},
+
+
 			// 获取订单列表
-			getMyOrder(type){
+			getMyOrder(type) {
 				this.$api.orders.getOrderList({
-					page:0,
-					status:type||'',
-					keyword:this.search
-				}).then(res=>{
-					if(res.code==0){
-						this.orderList=res.data.data
+					page: 0,
+					status: type || '',
+					keyword: this.search
+				}).then(res => {
+					if (res.code == 0) {
+						this.orderList = res.data.data
 					}
 				})
 			},
@@ -131,30 +161,30 @@
 				this.getMyOrder(index)
 			},
 			// 搜索防抖
-			searchText:util.debounce(function(){
+			searchText: util.debounce(function() {
 				this.goSearch()
-			},1000),
+			}, 1000),
 			// 搜索
-			goSearch(){
+			goSearch() {
 				this.$api.orders.getOrderList({
-					status:this.isActive,
-					page:1,
-					keyword:this.search
-				}).then(res=>{
-					console.log(res,"搜索活动项目列表")
-					if(res.code==0){
-						this.orderList=res.data.data
+					status: this.isActive,
+					page: 1,
+					keyword: this.search
+				}).then(res => {
+					console.log(res, "搜索活动项目列表")
+					if (res.code == 0) {
+						this.orderList = res.data.data
 					}
 				})
 			},
 			// 跳转订单详情
-			goOrderDetail() {
+			goOrderDetail(id) {
 				uni.navigateTo({
-					url: '/pages/my/myorders/orderDetail'
+					url: '/pages/my/myorders/orderDetail?id=' + id
 				})
 			},
 			// 跳转积分兑换
-			goIntegralExchange(){
+			goIntegralExchange() {
 				uni.navigateTo({
 					url: '/pages/my/integral/integralOrder'
 				})
@@ -162,6 +192,11 @@
 			// 打开弹出层
 			openVFcode() {
 				this.$refs.popup.open()
+
+
+
+
+
 			},
 			// 关闭弹出层
 			closeVFcode() {
@@ -183,7 +218,7 @@
 				//                 },
 				//                 fail: function() {
 				//                     this.tools.toast('保存失败,请稍后重试');
-			 //                 }
+				//                 }
 				//             });
 				//         } else {
 				//             this.tools.toast('下载失败');
@@ -210,12 +245,12 @@
 		height: 100%;
 		background: $pageColor;
 	}
-	
+
 	.home-bottom {
 		padding-top: 80rpx;
 		background-color: #f9f9f9;
 	}
-	
+
 
 	::v-deep .segmented-control__text {
 		font-size: 32rpx !important;
@@ -234,9 +269,9 @@
 		border-radius: 4rpx !important;
 
 	}
-	
-	
-	
+
+
+
 	.nav {
 		height: 220rpx;
 		width: 750rpx;
@@ -266,18 +301,21 @@
 				::v-deep .u-input__content__field-wrapper {
 					padding-left: 36rpx;
 				}
-				::v-deep .u-input__content__field-wrapper__field{
-					color:#999999 !important;
+
+				::v-deep .u-input__content__field-wrapper__field {
+					color: #999999 !important;
 					font-size: 28rpx !important;
 				}
 			}
 		}
+
 		.segmented {
 			margin-top: 18rpx;
 			width: 750rpx;
 			border-radius: 0rpx 0rpx 16rpx 16rpx;
-			padding:0 30rpx;
+			padding: 0 30rpx;
 			box-sizing: border-box;
+
 			//菜单切换
 			.tab_nav {
 				width: 690rpx;
@@ -285,9 +323,9 @@
 				justify-content: space-between;
 				align-items: center;
 				font-family: PingFang-SC-Heavy, PingFang-SC;
-				
+
 			}
-			
+
 			.tab_nav .navTitle {
 				width: 128rpx;
 				flex: none;
@@ -299,11 +337,11 @@
 				justify-content: space-around;
 				position: relative;
 			}
-			
+
 			.active {
 				color: #D9A94D;
 				font-weight: bold;
-			
+
 				&::after {
 					display: inline-block;
 					content: '';
@@ -316,8 +354,8 @@
 					left: 40rpx;
 				}
 			}
-			}
-		
+		}
+
 	}
 
 	.card {

+ 9 - 12
pages/my/prize/exchangePrize.vue

xqd xqd xqd xqd xqd
@@ -99,7 +99,7 @@
 				</view>
 				<view class="chooselag">
 					<view @click="companyed(item.name,index)" class="language" v-for="(item,index) in typeSelect "
-						:key="index" :sgActive='activeIndex==index'>
+						:key="index" :class="[activeIndex === index?'sgActive': ''] ">
 						<text>{{item.name}}</text>
 					</view>
 				</view>
@@ -119,8 +119,8 @@
 							style="font-size: 32rpx; color: #FF6200;line-height: 34rpx">确定</text></view>
 				</view>
 				<view class="chooselag">
-					<view @click="companyedShop(item.name,item.id,item.distanceToMe)" class="language"
-						v-for="(item,index) in hotelList" :key="index" :sgActive='activeIndex2==index'>
+					<view @click="companyedShop(item.name,item.id,item.distanceToMe,index)" class="language"
+						v-for="(item,index) in hotelList" :key="index" :class="[activeIndex2 === index?'sgActive': ''] ">
 						<text>{{item.name}}</text>
 					</view>
 				</view>
@@ -168,7 +168,6 @@
 				hotelList: [],
 				// 表单数据
 				Data: {
-
 					order_id: '', //订单id
 					// 快递类型(1.快递发货 2.到店自提也是线下核销)
 					express_type: '',
@@ -355,11 +354,10 @@
 			openShop() {
 				this.$refs.shopSelected.open('bottom')
 			},
-			companyedShop(i, id, distance) {
+			companyedShop(i, id, distance,index) {
 				this.typestatus2 = i
-				// this.activeIndex = id
+				this.activeIndex2= index
 				this.distanceToMe1 = distance
-				console.log(i, this.activeIndex)
 				this.Data.hotel_id = id
 			},
 			//确定按钮
@@ -635,11 +633,10 @@
 				justify-content: center;
 				padding-top: 40rpx;
 				padding-bottom: 40rpx;
-
-				&[sgActive] {
-					color: #405E49 !important;
-					font-weight: bold !important;
-				}
+			}
+			.sgActive{
+				color: #FF6200 !important;
+				font-weight: bold !important;
 			}
 		}
 	}

+ 17 - 6
pages/my/setting/setting.vue

xqd xqd
@@ -32,9 +32,19 @@
 			}
 		},
 		onLoad() {
-			this.staff = this.$store.getters.staff
+			this.getInfo()
 		},
 		methods: {
+			//用户信息
+			getInfo(){
+				this.$api.my.userInfo().then(res=>{
+					this.$store.dispatch('user/info', res.data)
+					this.staff = this.$store.getters.userInfo.staff
+					console.log(this.staff );
+				})
+			},
+			
+			
 			// 跳转隐私政策
 			goPrivacy() {
 				uni.navigateTo({
@@ -57,11 +67,12 @@
 			loginOut() {
 				if (this.$store.getters.token) {
 					//记录用户曾经登录过
-					this.$store.getters.userInfo.isLoginOff = true
-					this.$store.dispatch("user/info", this.$store.getters.userInfo)
-					// this.$store.dispatch("user/token", null)
-					// uni.removeStorageSync('auth_token')
-					// uni.removeStorageSync('userInfo')
+					// this.$store.getters.userInfo.isLoginOff = true
+					// this.$store.dispatch("user/info", this.$store.getters.userInfo)
+					this.$store.dispatch("user/info", null)
+					this.$store.dispatch("user/token", null)
+					uni.removeStorageSync('auth_token')
+					uni.removeStorageSync('userInfo')
 					uni.reLaunch({
 						url:'/pages/login/login'
 					})

+ 16 - 16
utils/index.js

xqd
@@ -30,24 +30,24 @@ export function checkOS() {
 }
 
 
-const shareMessage = user => {
-  // #ifdef  MP-KUAISHOU
-  const title ="四海剧场"
-    // #endif
-    // #ifdef  MP-TOUTIAO | MP-WEIXIN
-  const title ="张四爷剧场"
-  // #endif
-  console.log('-->data', user)
-  return {
-    path: `/pages/index/index?user_id=${user.id}`,
-    title: title,
-    desc: title
-    // imageUrl: ''
-  }
-}
+// const shareMessage = user => {
+//   // #ifdef  MP-KUAISHOU
+//   const title ="四海剧场"
+//     // #endif
+//     // #ifdef  MP-TOUTIAO | MP-WEIXIN
+//   const title ="张四爷剧场"
+//   // #endif
+//   console.log('-->data', user)
+//   return {
+//     path: `/pages/index/index?user_id=${user.id}`,
+//     title: title,
+//     desc: title
+//     // imageUrl: ''
+//   }
+// }
 
 export default {
   copyText,
   checkOS,
-  shareMessage
+  // shareMessage
 }

+ 443 - 4
yarn.lock

xqd
@@ -2,7 +2,446 @@
 # yarn lockfile v1
 
 
-uview-ui@^2.0.31:
-  version "2.0.35"
-  resolved "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.35.tgz#b0e7916382e533402cfb2e86c10f2cacca22a9b4"
-  integrity sha512-OfMttN3XkHvQosXfd8bjz8ASTvypPoGzBWmQZBJ871bYMCA7t2bDFPlzjbxUj/5ykAjKnZ8zMUapSwSisVt99g==
+"ajv@^6.12.3":
+  "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
+  "resolved" "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz"
+  "version" "6.12.6"
+  dependencies:
+    "fast-deep-equal" "^3.1.1"
+    "fast-json-stable-stringify" "^2.0.0"
+    "json-schema-traverse" "^0.4.1"
+    "uri-js" "^4.2.2"
+
+"asn1@~0.2.3":
+  "integrity" "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="
+  "resolved" "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz"
+  "version" "0.2.6"
+  dependencies:
+    "safer-buffer" "~2.1.0"
+
+"assert-plus@^1.0.0", "assert-plus@1.0.0":
+  "integrity" "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
+  "resolved" "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz"
+  "version" "1.0.0"
+
+"asynckit@^0.4.0":
+  "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+  "resolved" "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
+  "version" "0.4.0"
+
+"aws-sign2@~0.7.0":
+  "integrity" "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
+  "resolved" "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz"
+  "version" "0.7.0"
+
+"aws4@^1.8.0":
+  "integrity" "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+  "resolved" "https://registry.npmmirror.com/aws4/-/aws4-1.11.0.tgz"
+  "version" "1.11.0"
+
+"balanced-match@^1.0.0":
+  "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+  "resolved" "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz"
+  "version" "1.0.2"
+
+"bcrypt-pbkdf@^1.0.0":
+  "integrity" "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="
+  "resolved" "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
+  "version" "1.0.2"
+  dependencies:
+    "tweetnacl" "^0.14.3"
+
+"brace-expansion@^2.0.1":
+  "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="
+  "resolved" "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz"
+  "version" "2.0.1"
+  dependencies:
+    "balanced-match" "^1.0.0"
+
+"caseless@~0.12.0":
+  "integrity" "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
+  "resolved" "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz"
+  "version" "0.12.0"
+
+"combined-stream@^1.0.6", "combined-stream@~1.0.6":
+  "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
+  "resolved" "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
+  "version" "1.0.8"
+  dependencies:
+    "delayed-stream" "~1.0.0"
+
+"core-util-is@1.0.2":
+  "integrity" "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
+  "resolved" "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz"
+  "version" "1.0.2"
+
+"dashdash@^1.12.0":
+  "integrity" "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="
+  "resolved" "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz"
+  "version" "1.14.1"
+  dependencies:
+    "assert-plus" "^1.0.0"
+
+"decompress-response@^6.0.0":
+  "integrity" "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="
+  "resolved" "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz"
+  "version" "6.0.0"
+  dependencies:
+    "mimic-response" "^3.1.0"
+
+"delayed-stream@~1.0.0":
+  "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+  "resolved" "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
+  "version" "1.0.0"
+
+"ecc-jsbn@~0.1.1":
+  "integrity" "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="
+  "resolved" "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
+  "version" "0.1.2"
+  dependencies:
+    "jsbn" "~0.1.0"
+    "safer-buffer" "^2.1.0"
+
+"extend@~3.0.2":
+  "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+  "resolved" "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz"
+  "version" "3.0.2"
+
+"extsprintf@^1.2.0", "extsprintf@1.3.0":
+  "integrity" "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
+  "resolved" "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz"
+  "version" "1.3.0"
+
+"fast-deep-equal@^3.1.1":
+  "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+  "resolved" "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+  "version" "3.1.3"
+
+"fast-json-stable-stringify@^2.0.0":
+  "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+  "resolved" "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+  "version" "2.1.0"
+
+"forever-agent@~0.6.1":
+  "integrity" "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
+  "resolved" "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz"
+  "version" "0.6.1"
+
+"form-data@~2.3.2":
+  "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="
+  "resolved" "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz"
+  "version" "2.3.3"
+  dependencies:
+    "asynckit" "^0.4.0"
+    "combined-stream" "^1.0.6"
+    "mime-types" "^2.1.12"
+
+"fs.realpath@^1.0.0":
+  "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+  "resolved" "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
+  "version" "1.0.0"
+
+"getpass@^0.1.1":
+  "integrity" "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="
+  "resolved" "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz"
+  "version" "0.1.7"
+  dependencies:
+    "assert-plus" "^1.0.0"
+
+"glob@^8.0.1":
+  "integrity" "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ=="
+  "resolved" "https://registry.npmmirror.com/glob/-/glob-8.0.3.tgz"
+  "version" "8.0.3"
+  dependencies:
+    "fs.realpath" "^1.0.0"
+    "inflight" "^1.0.4"
+    "inherits" "2"
+    "minimatch" "^5.0.1"
+    "once" "^1.3.0"
+
+"har-schema@^2.0.0":
+  "integrity" "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
+  "resolved" "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz"
+  "version" "2.0.0"
+
+"har-validator@~5.1.3":
+  "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="
+  "resolved" "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz"
+  "version" "5.1.5"
+  dependencies:
+    "ajv" "^6.12.3"
+    "har-schema" "^2.0.0"
+
+"http-signature@~1.2.0":
+  "integrity" "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ=="
+  "resolved" "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz"
+  "version" "1.2.0"
+  dependencies:
+    "assert-plus" "^1.0.0"
+    "jsprim" "^1.2.2"
+    "sshpk" "^1.7.0"
+
+"inflight@^1.0.4":
+  "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
+  "resolved" "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz"
+  "version" "1.0.6"
+  dependencies:
+    "once" "^1.3.0"
+    "wrappy" "1"
+
+"inherits@2":
+  "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+  "resolved" "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
+  "version" "2.0.4"
+
+"is-typedarray@~1.0.0":
+  "integrity" "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+  "resolved" "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz"
+  "version" "1.0.0"
+
+"isstream@~0.1.2":
+  "integrity" "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+  "resolved" "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz"
+  "version" "0.1.2"
+
+"js-binary-schema-parser@^2.0.2":
+  "integrity" "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
+  "resolved" "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz"
+  "version" "2.0.3"
+
+"jsbn@~0.1.0":
+  "integrity" "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+  "resolved" "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz"
+  "version" "0.1.1"
+
+"json-schema-traverse@^0.4.1":
+  "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+  "resolved" "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+  "version" "0.4.1"
+
+"json-schema@0.4.0":
+  "integrity" "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+  "resolved" "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz"
+  "version" "0.4.0"
+
+"json-stringify-safe@~5.0.1":
+  "integrity" "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
+  "resolved" "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+  "version" "5.0.1"
+
+"jsprim@^1.2.2":
+  "integrity" "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw=="
+  "resolved" "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz"
+  "version" "1.4.2"
+  dependencies:
+    "assert-plus" "1.0.0"
+    "extsprintf" "1.3.0"
+    "json-schema" "0.4.0"
+    "verror" "1.10.0"
+
+"mime-db@1.52.0":
+  "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+  "resolved" "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
+  "version" "1.52.0"
+
+"mime-types@^2.1.12", "mime-types@~2.1.19":
+  "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
+  "resolved" "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
+  "version" "2.1.35"
+  dependencies:
+    "mime-db" "1.52.0"
+
+"mimic-response@^3.1.0":
+  "integrity" "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+  "resolved" "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz"
+  "version" "3.1.0"
+
+"minimatch@^5.0.1":
+  "integrity" "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g=="
+  "resolved" "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz"
+  "version" "5.1.1"
+  dependencies:
+    "brace-expansion" "^2.0.1"
+
+"oauth-sign@~0.9.0":
+  "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+  "resolved" "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz"
+  "version" "0.9.0"
+
+"once@^1.3.0", "once@^1.3.1":
+  "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
+  "resolved" "https://registry.npmmirror.com/once/-/once-1.4.0.tgz"
+  "version" "1.4.0"
+  dependencies:
+    "wrappy" "1"
+
+"parenthesis@^3.1.5":
+  "integrity" "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
+  "resolved" "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz"
+  "version" "3.1.8"
+
+"performance-now@^2.1.0":
+  "integrity" "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+  "resolved" "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz"
+  "version" "2.1.0"
+
+"psl@^1.1.28":
+  "integrity" "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+  "resolved" "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz"
+  "version" "1.9.0"
+
+"punycode@^2.1.0", "punycode@^2.1.1":
+  "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+  "resolved" "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz"
+  "version" "2.1.1"
+
+"q@1.4.1":
+  "integrity" "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg=="
+  "resolved" "https://registry.npmmirror.com/q/-/q-1.4.1.tgz"
+  "version" "1.4.1"
+
+"qs@~6.5.2":
+  "integrity" "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
+  "resolved" "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz"
+  "version" "6.5.3"
+
+"request@*":
+  "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="
+  "resolved" "https://registry.npmmirror.com/request/-/request-2.88.2.tgz"
+  "version" "2.88.2"
+  dependencies:
+    "aws-sign2" "~0.7.0"
+    "aws4" "^1.8.0"
+    "caseless" "~0.12.0"
+    "combined-stream" "~1.0.6"
+    "extend" "~3.0.2"
+    "forever-agent" "~0.6.1"
+    "form-data" "~2.3.2"
+    "har-validator" "~5.1.3"
+    "http-signature" "~1.2.0"
+    "is-typedarray" "~1.0.0"
+    "isstream" "~0.1.2"
+    "json-stringify-safe" "~5.0.1"
+    "mime-types" "~2.1.19"
+    "oauth-sign" "~0.9.0"
+    "performance-now" "^2.1.0"
+    "qs" "~6.5.2"
+    "safe-buffer" "^5.1.2"
+    "tough-cookie" "~2.5.0"
+    "tunnel-agent" "^0.6.0"
+    "uuid" "^3.3.2"
+
+"safe-buffer@^5.0.1", "safe-buffer@^5.1.2":
+  "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+  "resolved" "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
+  "version" "5.2.1"
+
+"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@~2.1.0":
+  "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+  "resolved" "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz"
+  "version" "2.1.2"
+
+"simple-concat@^1.0.0":
+  "integrity" "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+  "resolved" "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz"
+  "version" "1.0.1"
+
+"simple-get@^4.0.1":
+  "integrity" "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="
+  "resolved" "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz"
+  "version" "4.0.1"
+  dependencies:
+    "decompress-response" "^6.0.0"
+    "once" "^1.3.1"
+    "simple-concat" "^1.0.0"
+
+"sshpk@^1.7.0":
+  "integrity" "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ=="
+  "resolved" "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz"
+  "version" "1.17.0"
+  dependencies:
+    "asn1" "~0.2.3"
+    "assert-plus" "^1.0.0"
+    "bcrypt-pbkdf" "^1.0.0"
+    "dashdash" "^1.12.0"
+    "ecc-jsbn" "~0.1.1"
+    "getpass" "^0.1.1"
+    "jsbn" "~0.1.0"
+    "safer-buffer" "^2.0.2"
+    "tweetnacl" "~0.14.0"
+
+"string-split-by@^1.0.0":
+  "integrity" "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A=="
+  "resolved" "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz"
+  "version" "1.0.0"
+  dependencies:
+    "parenthesis" "^3.1.5"
+
+"tough-cookie@~2.5.0":
+  "integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="
+  "resolved" "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz"
+  "version" "2.5.0"
+  dependencies:
+    "psl" "^1.1.28"
+    "punycode" "^2.1.1"
+
+"tunnel-agent@^0.6.0":
+  "integrity" "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="
+  "resolved" "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+  "version" "0.6.0"
+  dependencies:
+    "safe-buffer" "^5.0.1"
+
+"tweetnacl@^0.14.3", "tweetnacl@~0.14.0":
+  "integrity" "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
+  "resolved" "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz"
+  "version" "0.14.5"
+
+"uri-js@^4.2.2":
+  "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
+  "resolved" "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz"
+  "version" "4.4.1"
+  dependencies:
+    "punycode" "^2.1.0"
+
+"uuid@^3.3.2":
+  "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+  "resolved" "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz"
+  "version" "3.4.0"
+
+"uview-ui@^2.0.31":
+  "integrity" "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
+  "resolved" "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz"
+  "version" "2.0.31"
+
+"verror@1.10.0":
+  "integrity" "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="
+  "resolved" "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz"
+  "version" "1.10.0"
+  dependencies:
+    "assert-plus" "^1.0.0"
+    "core-util-is" "1.0.2"
+    "extsprintf" "^1.2.0"
+
+"vue-qr@^4.0.9":
+  "integrity" "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw=="
+  "resolved" "https://registry.npmmirror.com/vue-qr/-/vue-qr-4.0.9.tgz"
+  "version" "4.0.9"
+  dependencies:
+    "glob" "^8.0.1"
+    "js-binary-schema-parser" "^2.0.2"
+    "simple-get" "^4.0.1"
+    "string-split-by" "^1.0.0"
+
+"wrappy@1":
+  "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+  "resolved" "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"
+  "version" "1.0.2"
+
+"wx-qrcode@^1.1.0":
+  "integrity" "sha512-6lSb8aNgeuMBLf/5QjJJjEWgkX1b+0bJkewZbUZuxLRH20zx8/yzBhWhiErxoQ7GE9e80UhqCf5M7A0W5bUjfg=="
+  "resolved" "https://registry.npmmirror.com/wx-qrcode/-/wx-qrcode-1.1.0.tgz"
+  "version" "1.1.0"
+  dependencies:
+    "q" "1.4.1"
+    "request" "*"