Kaynağa Gözat

静态页面

xcx 4 yıl önce
ebeveyn
işleme
d8ab6d27b3

+ 200
- 47
package-lock.json Dosyayı Görüntüle

@@ -417,7 +417,6 @@
417 417
       "version": "3.2.1",
418 418
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
419 419
       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
420
-      "dev": true,
421 420
       "requires": {
422 421
         "color-convert": "^1.9.0"
423 422
       }
@@ -2081,8 +2080,7 @@
2081 2080
     "base64-js": {
2082 2081
       "version": "1.3.0",
2083 2082
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
2084
-      "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
2085
-      "dev": true
2083
+      "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
2086 2084
     },
2087 2085
     "batch": {
2088 2086
       "version": "0.6.1",
@@ -2399,11 +2397,29 @@
2399 2397
         "isarray": "^1.0.0"
2400 2398
       }
2401 2399
     },
2400
+    "buffer-alloc": {
2401
+      "version": "1.2.0",
2402
+      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
2403
+      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
2404
+      "requires": {
2405
+        "buffer-alloc-unsafe": "^1.1.0",
2406
+        "buffer-fill": "^1.0.0"
2407
+      }
2408
+    },
2409
+    "buffer-alloc-unsafe": {
2410
+      "version": "1.1.0",
2411
+      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
2412
+      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
2413
+    },
2414
+    "buffer-fill": {
2415
+      "version": "1.0.0",
2416
+      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
2417
+      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
2418
+    },
2402 2419
     "buffer-from": {
2403 2420
       "version": "1.1.1",
2404 2421
       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
2405
-      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
2406
-      "dev": true
2422
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
2407 2423
     },
2408 2424
     "buffer-indexof": {
2409 2425
       "version": "1.1.1",
@@ -2999,7 +3015,6 @@
2999 3015
       "version": "1.9.3",
3000 3016
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
3001 3017
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
3002
-      "dev": true,
3003 3018
       "requires": {
3004 3019
         "color-name": "1.1.3"
3005 3020
       }
@@ -3007,8 +3022,7 @@
3007 3022
     "color-name": {
3008 3023
       "version": "1.1.3",
3009 3024
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
3010
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
3011
-      "dev": true
3025
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
3012 3026
     },
3013 3027
     "color-string": {
3014 3028
       "version": "0.3.0",
@@ -3799,8 +3813,7 @@
3799 3813
     "decamelize": {
3800 3814
       "version": "1.2.0",
3801 3815
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
3802
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
3803
-      "dev": true
3816
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
3804 3817
     },
3805 3818
     "decode-uri-component": {
3806 3819
       "version": "0.2.0",
@@ -4019,6 +4032,11 @@
4019 4032
         "randombytes": "^2.0.0"
4020 4033
       }
4021 4034
     },
4035
+    "dijkstrajs": {
4036
+      "version": "1.0.1",
4037
+      "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz",
4038
+      "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs="
4039
+    },
4022 4040
     "dir-glob": {
4023 4041
       "version": "2.0.0",
4024 4042
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
@@ -4249,8 +4267,7 @@
4249 4267
     "emoji-regex": {
4250 4268
       "version": "7.0.3",
4251 4269
       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
4252
-      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
4253
-      "dev": true
4270
+      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
4254 4271
     },
4255 4272
     "emojis-list": {
4256 4273
       "version": "2.1.0",
@@ -5559,14 +5576,12 @@
5559 5576
         "balanced-match": {
5560 5577
           "version": "1.0.0",
5561 5578
           "bundled": true,
5562
-          "dev": true,
5563
-          "optional": true
5579
+          "dev": true
5564 5580
         },
5565 5581
         "brace-expansion": {
5566 5582
           "version": "1.1.11",
5567 5583
           "bundled": true,
5568 5584
           "dev": true,
5569
-          "optional": true,
5570 5585
           "requires": {
5571 5586
             "balanced-match": "^1.0.0",
5572 5587
             "concat-map": "0.0.1"
@@ -5581,20 +5596,17 @@
5581 5596
         "code-point-at": {
5582 5597
           "version": "1.1.0",
5583 5598
           "bundled": true,
5584
-          "dev": true,
5585
-          "optional": true
5599
+          "dev": true
5586 5600
         },
5587 5601
         "concat-map": {
5588 5602
           "version": "0.0.1",
5589 5603
           "bundled": true,
5590
-          "dev": true,
5591
-          "optional": true
5604
+          "dev": true
5592 5605
         },
5593 5606
         "console-control-strings": {
5594 5607
           "version": "1.1.0",
5595 5608
           "bundled": true,
5596
-          "dev": true,
5597
-          "optional": true
5609
+          "dev": true
5598 5610
         },
5599 5611
         "core-util-is": {
5600 5612
           "version": "1.0.2",
@@ -5711,8 +5723,7 @@
5711 5723
         "inherits": {
5712 5724
           "version": "2.0.3",
5713 5725
           "bundled": true,
5714
-          "dev": true,
5715
-          "optional": true
5726
+          "dev": true
5716 5727
         },
5717 5728
         "ini": {
5718 5729
           "version": "1.3.5",
@@ -5724,7 +5735,6 @@
5724 5735
           "version": "1.0.0",
5725 5736
           "bundled": true,
5726 5737
           "dev": true,
5727
-          "optional": true,
5728 5738
           "requires": {
5729 5739
             "number-is-nan": "^1.0.0"
5730 5740
           }
@@ -5739,7 +5749,6 @@
5739 5749
           "version": "3.0.4",
5740 5750
           "bundled": true,
5741 5751
           "dev": true,
5742
-          "optional": true,
5743 5752
           "requires": {
5744 5753
             "brace-expansion": "^1.1.7"
5745 5754
           }
@@ -5747,14 +5756,12 @@
5747 5756
         "minimist": {
5748 5757
           "version": "0.0.8",
5749 5758
           "bundled": true,
5750
-          "dev": true,
5751
-          "optional": true
5759
+          "dev": true
5752 5760
         },
5753 5761
         "minipass": {
5754 5762
           "version": "2.2.4",
5755 5763
           "bundled": true,
5756 5764
           "dev": true,
5757
-          "optional": true,
5758 5765
           "requires": {
5759 5766
             "safe-buffer": "^5.1.1",
5760 5767
             "yallist": "^3.0.0"
@@ -5773,7 +5780,6 @@
5773 5780
           "version": "0.5.1",
5774 5781
           "bundled": true,
5775 5782
           "dev": true,
5776
-          "optional": true,
5777 5783
           "requires": {
5778 5784
             "minimist": "0.0.8"
5779 5785
           }
@@ -5854,8 +5860,7 @@
5854 5860
         "number-is-nan": {
5855 5861
           "version": "1.0.1",
5856 5862
           "bundled": true,
5857
-          "dev": true,
5858
-          "optional": true
5863
+          "dev": true
5859 5864
         },
5860 5865
         "object-assign": {
5861 5866
           "version": "4.1.1",
@@ -5867,7 +5872,6 @@
5867 5872
           "version": "1.4.0",
5868 5873
           "bundled": true,
5869 5874
           "dev": true,
5870
-          "optional": true,
5871 5875
           "requires": {
5872 5876
             "wrappy": "1"
5873 5877
           }
@@ -5989,7 +5993,6 @@
5989 5993
           "version": "1.0.2",
5990 5994
           "bundled": true,
5991 5995
           "dev": true,
5992
-          "optional": true,
5993 5996
           "requires": {
5994 5997
             "code-point-at": "^1.0.0",
5995 5998
             "is-fullwidth-code-point": "^1.0.0",
@@ -6768,8 +6771,7 @@
6768 6771
     "ieee754": {
6769 6772
       "version": "1.1.12",
6770 6773
       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
6771
-      "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
6772
-      "dev": true
6774
+      "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
6773 6775
     },
6774 6776
     "iferr": {
6775 6777
       "version": "0.1.5",
@@ -7093,8 +7095,7 @@
7093 7095
     "is-fullwidth-code-point": {
7094 7096
       "version": "2.0.0",
7095 7097
       "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
7096
-      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
7097
-      "dev": true
7098
+      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
7098 7099
     },
7099 7100
     "is-generator-fn": {
7100 7101
       "version": "1.0.0",
@@ -9675,8 +9676,7 @@
9675 9676
     "path-exists": {
9676 9677
       "version": "3.0.0",
9677 9678
       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
9678
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
9679
-      "dev": true
9679
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
9680 9680
     },
9681 9681
     "path-is-absolute": {
9682 9682
       "version": "1.0.1",
@@ -9786,6 +9786,11 @@
9786 9786
       "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
9787 9787
       "dev": true
9788 9788
     },
9789
+    "pngjs": {
9790
+      "version": "3.4.0",
9791
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
9792
+      "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
9793
+    },
9789 9794
     "portfinder": {
9790 9795
       "version": "1.0.19",
9791 9796
       "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.19.tgz",
@@ -12080,6 +12085,158 @@
12080 12085
       "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
12081 12086
       "dev": true
12082 12087
     },
12088
+    "qrcode": {
12089
+      "version": "1.4.4",
12090
+      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz",
12091
+      "integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==",
12092
+      "requires": {
12093
+        "buffer": "^5.4.3",
12094
+        "buffer-alloc": "^1.2.0",
12095
+        "buffer-from": "^1.1.1",
12096
+        "dijkstrajs": "^1.0.1",
12097
+        "isarray": "^2.0.1",
12098
+        "pngjs": "^3.3.0",
12099
+        "yargs": "^13.2.4"
12100
+      },
12101
+      "dependencies": {
12102
+        "ansi-regex": {
12103
+          "version": "4.1.0",
12104
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
12105
+          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
12106
+        },
12107
+        "buffer": {
12108
+          "version": "5.6.0",
12109
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
12110
+          "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
12111
+          "requires": {
12112
+            "base64-js": "^1.0.2",
12113
+            "ieee754": "^1.1.4"
12114
+          }
12115
+        },
12116
+        "camelcase": {
12117
+          "version": "5.3.1",
12118
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
12119
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
12120
+        },
12121
+        "cliui": {
12122
+          "version": "5.0.0",
12123
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
12124
+          "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
12125
+          "requires": {
12126
+            "string-width": "^3.1.0",
12127
+            "strip-ansi": "^5.2.0",
12128
+            "wrap-ansi": "^5.1.0"
12129
+          }
12130
+        },
12131
+        "find-up": {
12132
+          "version": "3.0.0",
12133
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
12134
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
12135
+          "requires": {
12136
+            "locate-path": "^3.0.0"
12137
+          }
12138
+        },
12139
+        "get-caller-file": {
12140
+          "version": "2.0.5",
12141
+          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
12142
+          "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
12143
+        },
12144
+        "isarray": {
12145
+          "version": "2.0.5",
12146
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
12147
+          "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
12148
+        },
12149
+        "locate-path": {
12150
+          "version": "3.0.0",
12151
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
12152
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
12153
+          "requires": {
12154
+            "p-locate": "^3.0.0",
12155
+            "path-exists": "^3.0.0"
12156
+          }
12157
+        },
12158
+        "p-limit": {
12159
+          "version": "2.3.0",
12160
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
12161
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
12162
+          "requires": {
12163
+            "p-try": "^2.0.0"
12164
+          }
12165
+        },
12166
+        "p-locate": {
12167
+          "version": "3.0.0",
12168
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
12169
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
12170
+          "requires": {
12171
+            "p-limit": "^2.0.0"
12172
+          }
12173
+        },
12174
+        "p-try": {
12175
+          "version": "2.2.0",
12176
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
12177
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
12178
+        },
12179
+        "require-main-filename": {
12180
+          "version": "2.0.0",
12181
+          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
12182
+          "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
12183
+        },
12184
+        "string-width": {
12185
+          "version": "3.1.0",
12186
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
12187
+          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
12188
+          "requires": {
12189
+            "emoji-regex": "^7.0.1",
12190
+            "is-fullwidth-code-point": "^2.0.0",
12191
+            "strip-ansi": "^5.1.0"
12192
+          }
12193
+        },
12194
+        "strip-ansi": {
12195
+          "version": "5.2.0",
12196
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
12197
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
12198
+          "requires": {
12199
+            "ansi-regex": "^4.1.0"
12200
+          }
12201
+        },
12202
+        "wrap-ansi": {
12203
+          "version": "5.1.0",
12204
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
12205
+          "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
12206
+          "requires": {
12207
+            "ansi-styles": "^3.2.0",
12208
+            "string-width": "^3.0.0",
12209
+            "strip-ansi": "^5.0.0"
12210
+          }
12211
+        },
12212
+        "yargs": {
12213
+          "version": "13.3.2",
12214
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
12215
+          "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
12216
+          "requires": {
12217
+            "cliui": "^5.0.0",
12218
+            "find-up": "^3.0.0",
12219
+            "get-caller-file": "^2.0.1",
12220
+            "require-directory": "^2.1.1",
12221
+            "require-main-filename": "^2.0.0",
12222
+            "set-blocking": "^2.0.0",
12223
+            "string-width": "^3.0.0",
12224
+            "which-module": "^2.0.0",
12225
+            "y18n": "^4.0.0",
12226
+            "yargs-parser": "^13.1.2"
12227
+          }
12228
+        },
12229
+        "yargs-parser": {
12230
+          "version": "13.1.2",
12231
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
12232
+          "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
12233
+          "requires": {
12234
+            "camelcase": "^5.0.0",
12235
+            "decamelize": "^1.2.0"
12236
+          }
12237
+        }
12238
+      }
12239
+    },
12083 12240
     "qs": {
12084 12241
       "version": "6.9.4",
12085 12242
       "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz",
@@ -12795,8 +12952,7 @@
12795 12952
     "require-directory": {
12796 12953
       "version": "2.1.1",
12797 12954
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
12798
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
12799
-      "dev": true
12955
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
12800 12956
     },
12801 12957
     "require-from-string": {
12802 12958
       "version": "2.0.2",
@@ -13582,8 +13738,7 @@
13582 13738
     "set-blocking": {
13583 13739
       "version": "2.0.0",
13584 13740
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
13585
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
13586
-      "dev": true
13741
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
13587 13742
     },
13588 13743
     "set-value": {
13589 13744
       "version": "2.0.0",
@@ -15835,8 +15990,7 @@
15835 15990
     "which-module": {
15836 15991
       "version": "2.0.0",
15837 15992
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
15838
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
15839
-      "dev": true
15993
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
15840 15994
     },
15841 15995
     "wide-align": {
15842 15996
       "version": "1.1.3",
@@ -15965,8 +16119,7 @@
15965 16119
     "y18n": {
15966 16120
       "version": "4.0.0",
15967 16121
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
15968
-      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
15969
-      "dev": true
16122
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
15970 16123
     },
15971 16124
     "yallist": {
15972 16125
       "version": "2.1.2",

+ 1
- 0
package.json Dosyayı Görüntüle

@@ -18,6 +18,7 @@
18 18
     "exports-loader": "^0.7.0",
19 19
     "js-md5": "^0.7.3",
20 20
     "md5": "^2.3.0",
21
+    "qrcode": "^1.4.4",
21 22
     "qs": "^6.9.4",
22 23
     "script-loader": "^0.7.2",
23 24
     "vant": "^2.10.3",

+ 186
- 0
src/pages/WoDe/ZhiFuBaoRenZheng copy/index.vue Dosyayı Görüntüle

@@ -0,0 +1,186 @@
1
+<template>
2
+  <div class="Page">
3
+    <MainPageContainer @UserInfoChange="UserInfoChange" :ShowMainHeader="true" :MainHeaderTitle="`支付宝认证`" :ShowMainHeaderBack="true" :ShowMainHeaderMore="true" :MainHeaderMoreText="`保存`">
4
+      <div class="Container">
5
+        <div class="Content" v-if="UserInfo !== null && UserInfo.isValidAli">
6
+
7
+          <div>
8
+            <div class="Line flex-h">
9
+              <span>支付宝账号</span>
10
+              <div class="flex-item">
11
+                <div>
12
+                  <input type="text" placeholder="请输入您的支付宝账号">
13
+                </div>
14
+              </div>
15
+            </div>
16
+            <div class="Line flex-h">
17
+              <span>真实姓名</span>
18
+              <div class="flex-item">
19
+                <div>
20
+                  <input type="text" placeholder="请输入您的真实姓名">
21
+                </div>
22
+              </div>
23
+            </div>
24
+            <div class="Line flex-h">
25
+              <span>联系人电话</span>
26
+              <div class="flex-item">
27
+                <div>
28
+                  <input type="text" placeholder="请填写您的手机号码">
29
+                </div>
30
+              </div>
31
+            </div>
32
+            <div class="Line flex-h">
33
+              <span>联系人邮箱</span>
34
+              <div class="flex-item">
35
+                <div>
36
+                  <input type="text" placeholder="请填写您的邮箱">
37
+                </div>
38
+              </div>
39
+            </div>
40
+            <div class="Line flex-h">
41
+              <span>店铺地址</span>
42
+              <div class="flex-item">
43
+                <div>
44
+                  <input type="text" placeholder="请填写详细的店铺地址">
45
+                </div>
46
+              </div>
47
+            </div>
48
+            <div class="Line flex-h">
49
+              <span>代销证编号</span>
50
+              <div class="flex-item">
51
+                <div>
52
+                  <input type="text" placeholder="请填写编号">
53
+                </div>
54
+              </div>
55
+            </div>
56
+            <div class="Line flex-h">
57
+              <span>代销证截止日期</span>
58
+              <div class="flex-item">
59
+                <div>
60
+                  <span>xxxx</span>
61
+                </div>
62
+              </div>
63
+              <i class="iconfont iconjiantouright"></i>
64
+            </div>
65
+          </div>
66
+
67
+          <div class="PhotoList flex-h">
68
+            <div class="flex-item">
69
+              <ul>
70
+                <li>
71
+                  <a>
72
+                    <i class="iconfont iconjia centerLabel"></i>
73
+                  </a>
74
+                  <span>上传代销证</span>
75
+                </li>
76
+                <li>
77
+                  <div>
78
+                    <img src="" class="centerLabel contain" alt="">
79
+                  </div>
80
+                  <span>示例</span>
81
+                </li>
82
+                <li>
83
+                  <div>
84
+                    <img src="" class="centerLabel contain" alt="">
85
+                  </div>
86
+                  <span></span>
87
+                </li>
88
+              </ul>
89
+            </div>
90
+            <div class="flex-item">
91
+              <ul>
92
+                <li>
93
+                  <a>
94
+                    <i class="iconfont iconjia centerLabel"></i>
95
+                  </a>
96
+                  <span>上传门牌头</span>
97
+                </li>
98
+                <li>
99
+                  <div>
100
+                    <img src="" class="centerLabel contain" alt="">
101
+                  </div>
102
+                  <span>示例</span>
103
+                </li>
104
+                <li>
105
+                  <div>
106
+                    <img src="" class="centerLabel contain" alt="">
107
+                  </div>
108
+                  <span></span>
109
+                </li>
110
+              </ul>
111
+            </div>
112
+          </div>
113
+
114
+        </div>
115
+        <div class="Content" v-if="UserInfo !== null && !UserInfo.isValidAli">
116
+          <a class="AliShouQuan centerLabel" @click="ShouQuan">支付宝授权</a>
117
+        </div>
118
+      </div>
119
+    </MainPageContainer>
120
+  </div>
121
+</template>
122
+
123
+<script>
124
+import MainPageContainer from '../../../components/common/MainPageContainer'
125
+import { createNamespacedHelpers } from 'vuex'
126
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
127
+export default {
128
+  name: 'index',
129
+  data () {
130
+    return {
131
+      DataLock: false,
132
+      Timer: null
133
+    }
134
+  },
135
+  computed: {
136
+    ...mapUserState({
137
+      CurrentShopInfo: x => x.CurrentShopInfo,
138
+      UserInfo: x => x.UserInfo
139
+    })
140
+  },
141
+  components: {
142
+    MainPageContainer
143
+  },
144
+  created () {
145
+    if (this.UserInfo !== null) {
146
+      this.UserInfoChange()
147
+    }
148
+  },
149
+  mounted () {
150
+    this.$nextTick(() => {
151
+    })
152
+  },
153
+  methods: {
154
+    ...mapUserActions([
155
+      'GetAliAppId'
156
+    ]),
157
+    ShouQuan () {
158
+      this.GetAliAppId().then((res) => {
159
+        console.log(111)
160
+        window.ap.getAuthCode({
161
+          appId: res.data.data,
162
+          scopes: ['auth_base'],
163
+          showErrorTip: true
164
+        }, (subRes) => {
165
+          console.log(subRes, 222)
166
+        })
167
+      })
168
+    },
169
+    UserInfoChange () {
170
+      if (this.UserInfo !== null && !this.UserInfo.isValidAli) {
171
+
172
+      }
173
+    },
174
+    Refresh (done) { // 页面下拉刷新
175
+      window.setTimeout(() => {
176
+        done()
177
+      }, 1000)
178
+    }
179
+  }
180
+}
181
+</script>
182
+
183
+<!-- Add "scoped" attribute to limit CSS to this component only -->
184
+<style lang="scss" scoped>
185
+@import "page.scss";
186
+</style>

+ 131
- 0
src/pages/WoDe/ZhiFuBaoRenZheng copy/page.scss Dosyayı Görüntüle

@@ -0,0 +1,131 @@
1
+.Page {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  background: #f2f2f2;
6
+  .Container {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    overflow-y: scroll;
11
+    -webkit-overflow-scrolling: touch;
12
+    > .Content {
13
+      position: relative;
14
+      overflow: hidden;
15
+      padding-bottom: 0.2rem;
16
+      min-height: 100%;
17
+      > .AliShouQuan {
18
+        font-size: 0.14rem;
19
+        line-height: 0.4rem;
20
+        width: 80%;
21
+        text-align: center;
22
+        background: #d91e36;
23
+        color: #fff;
24
+        border-radius: 0.06rem;
25
+      }
26
+      > div {
27
+        padding: 0 0.15rem;
28
+        background: #fff;
29
+        margin-top: 0.1rem;
30
+        position: relative;
31
+        overflow: hidden;
32
+        &:first-child {
33
+          margin-top: 0;
34
+        }
35
+        > .Line {
36
+          align-items: center;
37
+          padding: 0.1rem 0;
38
+          border-top: 0.01rem solid #f7f7f7;
39
+          &:first-child {
40
+            border-top: none;
41
+          }
42
+          > em {
43
+            font-size: 0.12rem;
44
+            color: #d91e36;
45
+          }
46
+          > span {
47
+            font-size: 0.15rem;
48
+            line-height: 0.3rem;
49
+            min-width: 0.9rem;
50
+          }
51
+          > div.flex-item {
52
+            > div {
53
+              width: 100%;
54
+              position: relative;
55
+              overflow: hidden;
56
+              > input {
57
+                width: 100%;
58
+                font-size: 0.12rem;
59
+                line-height: 0.2rem;
60
+              }
61
+              > span {
62
+                display: block;
63
+                font-size: 0.12rem;
64
+                text-align: right;
65
+              }
66
+            }
67
+          }
68
+          > i {
69
+            font-size: 0.2rem;
70
+            color: #999;
71
+            margin-left: 0.1rem;
72
+          }
73
+        }
74
+        &.PhotoList {
75
+          padding-top: 0.15rem;
76
+          padding-bottom: 0.15rem;
77
+          padding-left: 0;
78
+          > div {
79
+            position: relative;
80
+            border-left: 0.01rem solid #f7f7f7;
81
+            padding-left: 0.15rem;
82
+            &:first-child {
83
+              border-left: none;
84
+            }
85
+            > ul {
86
+              font-size: 0;
87
+              > li {
88
+                display: inline-block;
89
+                vertical-align: middle;
90
+                position: relative;
91
+                margin-left: 0.1rem;
92
+                margin-bottom: 0.1rem;
93
+                width: 0.7rem;
94
+                &:nth-child(2n + 1) {
95
+                  margin-left: 0;
96
+                }
97
+                > a {
98
+                  width: 100%;
99
+                  display: block;
100
+                  padding-bottom: 100%;
101
+                  position: relative;
102
+                  overflow: hidden;
103
+                  box-sizing: border-box;
104
+                  border: 0.01rem dashed #ccc;
105
+                  > i {
106
+                    font-size: 0.2rem;
107
+                    color: #999;
108
+                  }
109
+                }
110
+                > div {
111
+                  width: 100%;
112
+                  padding-bottom: 100%;
113
+                  position: relative;
114
+                  overflow: hidden;
115
+                  background: #ccc;
116
+                }
117
+                > span {
118
+                  font-size: 0.12rem;
119
+                  display: block;
120
+                  text-align: center;
121
+                  line-height: 0.2rem;
122
+                  height: 0.2rem;
123
+                }
124
+              }
125
+            }
126
+          }
127
+        }
128
+      }
129
+    }
130
+  }
131
+}

+ 245
- 87
src/pages/WoDe/ZhiFuBaoRenZheng/index.vue Dosyayı Görüntüle

@@ -1,119 +1,145 @@
1 1
 <template>
2 2
   <div class="Page">
3
-    <MainPageContainer @UserInfoChange="UserInfoChange" :ShowMainHeader="true" :MainHeaderTitle="`支付宝认证`" :ShowMainHeaderBack="true" :ShowMainHeaderMore="true" :MainHeaderMoreText="`保存`">
3
+    <MainPageContainer @ShopInfoChange="ShopInfoChange" :ShowMainHeader="true" :MainHeaderTitle="`店铺认证`" :ShowMainHeaderBack="true" :ShowMainHeaderMore="true" :MainHeaderMoreIcon="`iconbaocun`" :MainHeaderMoreText="`保存`" :MainHeaderMoreClick="SaveForm">
4 4
       <div class="Container">
5
-        <div class="Content" v-if="UserInfo !== null && UserInfo.isValidAli">
5
+        <div class="Content">
6 6
 
7 7
           <div>
8 8
             <div class="Line flex-h">
9
-              <span>支付宝账号</span>
9
+              <em>*</em>
10
+              <span>店铺名称</span>
10 11
               <div class="flex-item">
11 12
                 <div>
12
-                  <input type="text" placeholder="请输入您的支付宝账号">
13
+                  <input type="text" placeholder="请输入您的店铺名称" v-model="ShopName">
13 14
                 </div>
14 15
               </div>
15 16
             </div>
16 17
             <div class="Line flex-h">
17
-              <span>真实姓名</span>
18
+              <em>*</em>
19
+              <span>店主联系人</span>
18 20
               <div class="flex-item">
19 21
                 <div>
20
-                  <input type="text" placeholder="请输入您的真实姓名">
22
+                  <input type="text" placeholder="请输入您的真实姓名" v-model="RealName">
21 23
                 </div>
22 24
               </div>
23 25
             </div>
24 26
             <div class="Line flex-h">
25
-              <span>联系人电话</span>
27
+              <em>*</em>
28
+              <span>手机号码</span>
26 29
               <div class="flex-item">
27 30
                 <div>
28
-                  <input type="text" placeholder="请填写您的手机号码">
31
+                  <input type="text" placeholder="请填写正确的手机号码" v-model="Phone">
29 32
                 </div>
30 33
               </div>
31 34
             </div>
35
+          </div>
36
+
37
+          <div>
32 38
             <div class="Line flex-h">
33
-              <span>联系人邮箱</span>
34
-              <div class="flex-item">
35
-                <div>
36
-                  <input type="text" placeholder="请填写您的邮箱">
37
-                </div>
39
+              <em>*</em>
40
+              <span>营业执照</span>
41
+            </div>
42
+            <div class="PhotoList">
43
+              <a class="Add" @click="$refs.ZzFile.click()" v-if="ZZImg === null">
44
+                <i class="iconfont iconjia centerLabel"></i>
45
+              </a>
46
+              <div v-if="ZZImg !== null">
47
+                <img :src="ZZImg" class="centerLabel contain" alt="">
48
+                <a class="iconfont iconguanbi" @click="ZZImg = null"></a>
38 49
               </div>
50
+              <input type="file" ref="ZzFile" @change="ZzFileChange" style="display: none">
39 51
             </div>
52
+          </div>
53
+
54
+          <div>
40 55
             <div class="Line flex-h">
41
-              <span>店铺地址</span>
42
-              <div class="flex-item">
56
+              <span>身份证</span>
57
+            </div>
58
+            <div class="IdCardList">
59
+              <div>
60
+                <a @click="$refs.SfzzmFile.click()">
61
+                  <img v-if="SfzzmImg !== null" :src="SfzzmImg" class="centerLabel contain" alt="">
62
+                </a>
63
+                <span>身份证正面照</span>
64
+                <input type="file" ref="SfzzmFile" @change="SfzzmFileChange" style="display: none">
65
+              </div>
66
+              <div>
67
+                <a @click="$refs.SfzfmFile.click()">
68
+                  <img v-if="SfzfmImg !== null" :src="SfzfmImg" class="centerLabel contain" alt="">
69
+                </a>
70
+                <span>身份证背面照</span>
71
+                <input type="file" ref="SfzfmFile" @change="SfzfmFileChange" style="display: none">
72
+              </div>
73
+            </div>
74
+          </div>
75
+
76
+          <div>
77
+            <div class="Line flex-h">
78
+              <span>所在地区</span>
79
+              <div class="flex-item" @click="ShowAreaSelect = true">
43 80
                 <div>
44
-                  <input type="text" placeholder="请填写详细的店铺地址">
81
+                  <span v-if="Province !== ''">{{Province}} {{City}}</span>
82
+                  <span v-else>请选择地区</span>
45 83
                 </div>
46 84
               </div>
85
+              <i class="iconfont iconjiantouright"></i>
47 86
             </div>
48 87
             <div class="Line flex-h">
49
-              <span>代销证编号</span>
88
+              <span>详细地址</span>
50 89
               <div class="flex-item">
51 90
                 <div>
52
-                  <input type="text" placeholder="请填写编号">
91
+                  <input type="text" placeholder="街道、门牌号等" style="text-align: right;" v-model="AddressDetail">
53 92
                 </div>
54 93
               </div>
55 94
             </div>
56 95
             <div class="Line flex-h">
57
-              <span>代销证截止日期</span>
58
-              <div class="flex-item">
96
+              <span>营业时间</span>
97
+              <div class="flex-item" @click="ShowTimeStartSelect = true">
59 98
                 <div>
60
-                  <span>xxxx</span>
99
+                  <span style="text-align: center;">{{StartTime === null ? '开始时间' : StartTime}}</span>
100
+                </div>
101
+              </div>
102
+              <em>至</em>
103
+              <div class="flex-item" @click="ShowTimeEndSelect = true">
104
+                <div>
105
+                  <span style="text-align: center;">{{EndTime === null ? '结束时间' : EndTime}}</span>
61 106
                 </div>
62 107
               </div>
63 108
               <i class="iconfont iconjiantouright"></i>
64 109
             </div>
110
+            <router-link tag="div" :to="{ name: 'ZhiFuBaoRenZheng' }" class="Line flex-h">
111
+              <span>收款管理</span>
112
+              <div class="flex-item"></div>
113
+              <i class="iconfont iconjiantouright"></i>
114
+            </router-link>
65 115
           </div>
66 116
 
67
-          <div class="PhotoList flex-h">
68
-            <div class="flex-item">
69
-              <ul>
70
-                <li>
71
-                  <a>
72
-                    <i class="iconfont iconjia centerLabel"></i>
73
-                  </a>
74
-                  <span>上传代销证</span>
75
-                </li>
76
-                <li>
77
-                  <div>
78
-                    <img src="" class="centerLabel contain" alt="">
79
-                  </div>
80
-                  <span>示例</span>
81
-                </li>
82
-                <li>
83
-                  <div>
84
-                    <img src="" class="centerLabel contain" alt="">
85
-                  </div>
86
-                  <span></span>
87
-                </li>
88
-              </ul>
117
+        </div>
118
+        <div class="MapContainer" v-show="ShowAreaSelect">
119
+          <MapSearch @Close="ShowAreaSelect = false" @Sure="SureAddress"></MapSearch>
120
+        </div>
121
+        <div class="PickLayer" v-show="ShowTimeStartSelect">
122
+          <div>
123
+            <van-datetime-picker v-model="CurrentStartDate" type="time" @confirm="StartTimeConfirm" @cancel="ShowTimeStartSelect = false" />
124
+          </div>
125
+        </div>
126
+        <div class="PickLayer" v-show="ShowTimeEndSelect">
127
+          <div>
128
+            <van-datetime-picker v-model="CurrentEndDate" type="time" @confirm="EndTimeConfirm" @cancel="ShowTimeEndSelect = false" />
129
+          </div>
130
+        </div>
131
+
132
+        <div class="QrCodeLayer" v-if="!CurrentShopInfo.isAliAuthed && ShowQrCodeLayer">
133
+          <div class="centerLabel">
134
+            <div class="Top">
135
+              <span>授权二维码</span>
136
+              <a class="iconfont iconguanbi" @click="ShowQrCodeLayer = false"></a>
89 137
             </div>
90
-            <div class="flex-item">
91
-              <ul>
92
-                <li>
93
-                  <a>
94
-                    <i class="iconfont iconjia centerLabel"></i>
95
-                  </a>
96
-                  <span>上传门牌头</span>
97
-                </li>
98
-                <li>
99
-                  <div>
100
-                    <img src="" class="centerLabel contain" alt="">
101
-                  </div>
102
-                  <span>示例</span>
103
-                </li>
104
-                <li>
105
-                  <div>
106
-                    <img src="" class="centerLabel contain" alt="">
107
-                  </div>
108
-                  <span></span>
109
-                </li>
110
-              </ul>
138
+            <div class="QrCode">
139
+              <img :src="QrCodeUrl" class="centerLabel contain" alt="">
111 140
             </div>
141
+            <span class="Tips">请保存此二维码截图至手机,并用手机支付宝识别图中二维码,进行授权。</span>
112 142
           </div>
113
-
114
-        </div>
115
-        <div class="Content" v-if="UserInfo !== null && !UserInfo.isValidAli">
116
-          <a class="AliShouQuan centerLabel" @click="ShouQuan">支付宝授权</a>
117 143
         </div>
118 144
       </div>
119 145
     </MainPageContainer>
@@ -121,15 +147,40 @@
121 147
 </template>
122 148
 
123 149
 <script>
150
+import QRCode from 'qrcode'
151
+import { Picker, DatetimePicker } from 'vant'
124 152
 import MainPageContainer from '../../../components/common/MainPageContainer'
153
+import MapSearch from '../../../components/common/MapSearch'
125 154
 import { createNamespacedHelpers } from 'vuex'
126
-const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
155
+const { mapState: mapUserState, mapActions: mapUserActions, mapMutations: mapUserMutations } = createNamespacedHelpers('user')
127 156
 export default {
128 157
   name: 'index',
129 158
   data () {
130 159
     return {
160
+      QrCodeUrl: null,
161
+      ShowQrCodeLayer: true,
162
+      ShopName: '',
163
+      RealName: '',
164
+      Phone: '',
165
+      AddressDetail: '',
166
+      Province: '',
167
+      City: '',
168
+      Address: '',
169
+      Lat: null,
170
+      Lng: null,
131 171
       DataLock: false,
132
-      Timer: null
172
+      CurrentStartDate: '08:00',
173
+      ShowTimeStartSelect: false,
174
+      CurrentEndDate: '18:00',
175
+      ShowTimeEndSelect: false,
176
+      ShowAreaSelect: false,
177
+      ZzFileData: null,
178
+      ZZImg: null,
179
+      SfzzmImg: null,
180
+      SfzfmImg: null,
181
+      AreaList: [null, null],
182
+      StartTime: null,
183
+      EndTime: null
133 184
     }
134 185
   },
135 186
   computed: {
@@ -139,11 +190,14 @@ export default {
139 190
     })
140 191
   },
141 192
   components: {
142
-    MainPageContainer
193
+    MapSearch,
194
+    MainPageContainer,
195
+    'van-picker': Picker,
196
+    'van-datetime-picker': DatetimePicker
143 197
   },
144 198
   created () {
145
-    if (this.UserInfo !== null) {
146
-      this.UserInfoChange()
199
+    if (this.CurrentShopInfo !== null) {
200
+      this.ShopInfoChange()
147 201
     }
148 202
   },
149 203
   mounted () {
@@ -151,25 +205,129 @@ export default {
151 205
     })
152 206
   },
153 207
   methods: {
208
+    ...mapUserMutations([
209
+      ''
210
+    ]),
154 211
     ...mapUserActions([
155
-      'GetAliAppId'
212
+      'ImgUpload',
213
+      'ShopValid',
214
+      'GetCurrentShopInfo'
156 215
     ]),
157
-    ShouQuan () {
158
-      this.GetAliAppId().then((res) => {
159
-        console.log(111)
160
-        window.ap.getAuthCode({
161
-          appId: res.data.data,
162
-          scopes: ['auth_base'],
163
-          showErrorTip: true
164
-        }, (subRes) => {
165
-          console.log(subRes, 222)
216
+    ShopInfoChange () {
217
+      this.ShopName = this.CurrentShopInfo.name
218
+      this.ZZImg = this.CurrentShopInfo.businessLicense
219
+      this.AddressDetail = this.CurrentShopInfo.address
220
+      this.City = this.CurrentShopInfo.cityId
221
+      this.Province = this.CurrentShopInfo.provinceName
222
+      this.SfzzmImg = this.CurrentShopInfo.shopkeeper.frontIdCard
223
+      this.SfzfmImg = this.CurrentShopInfo.shopkeeper.backIdCard
224
+      this.RealName = this.CurrentShopInfo.shopkeeper.name
225
+      this.Phone = this.CurrentShopInfo.shopkeeper.phone
226
+      this.Lat = this.CurrentShopInfo.lat
227
+      this.Lng = this.CurrentShopInfo.lng
228
+      this.StartTime = this.CurrentShopInfo.openTime
229
+      this.EndTime = this.CurrentShopInfo.closeTime
230
+      if (!this.CurrentShopInfo.isAliAuthed) {
231
+        QRCode.toDataURL(this.CurrentShopInfo.aliAuthURL).then((res) => {
232
+          this.QrCodeUrl = res
233
+        }).catch((res) => {
234
+          console.log(res)
166 235
         })
167
-      })
236
+      }
168 237
     },
169
-    UserInfoChange () {
170
-      if (this.UserInfo !== null && !this.UserInfo.isValidAli) {
171
-
238
+    CheckForm () { // 校验表单
239
+      if (this.ShopName === '') {
240
+        this.Toast('店铺名不能为空')
241
+        return false
242
+      }
243
+      if (this.RealName === '') {
244
+        this.Toast('真实姓名不能为空')
245
+        return false
246
+      }
247
+      if (this.Phone === '') {
248
+        this.Toast('手机号不能为空')
249
+        return false
172 250
       }
251
+      if (this.ZZImg === null) {
252
+        this.Toast('营业执照必须上传')
253
+        return false
254
+      }
255
+      return true
256
+    },
257
+    SaveForm () { // 保存认证
258
+      if (this.DataLock || !this.CheckForm()) return
259
+      this.DataLock = true
260
+      let Data = {
261
+        shop: {
262
+          businessLicense: this.ZZImg,
263
+          address: this.AddressDetail,
264
+          cityId: this.City,
265
+          keeperId: this.UserInfo.keeperId,
266
+          lat: this.Lat,
267
+          lng: this.Lng,
268
+          name: this.ShopName,
269
+          provinceId: this.Province,
270
+          openTime: this.StartTime,
271
+          closeTime: this.EndTime
272
+        },
273
+        shopkeeper: {
274
+          avatar: this.UserInfo.avatar,
275
+          backIdCard: this.SfzfmImg,
276
+          frontIdCard: this.SfzzmImg,
277
+          keeperId: this.UserInfo.keeperId,
278
+          name: this.UserInfo.name,
279
+          phone: this.UserInfo.phone
280
+        }
281
+      }
282
+      this.ShopValid({ data: { ...Data } }).then((res) => {
283
+        this.Toast('认证提交成功')
284
+        this.GetCurrentShopInfo()
285
+        this.DataLock = false
286
+      }).catch((res) => {
287
+        this.Toast(res.data.message)
288
+        this.DataLock = false
289
+      })
290
+    },
291
+    EndTimeConfirm (e) { // 确定选择结束时间
292
+      this.EndTime = this.CurrentEndDate
293
+      this.ShowTimeEndSelect = false
294
+    },
295
+    StartTimeConfirm (e) { // 确定选择开始时间
296
+      this.StartTime = this.CurrentStartDate
297
+      this.ShowTimeStartSelect = false
298
+    },
299
+    SureAddress (e) { // 确认选取地址
300
+      this.Province = e.province
301
+      this.City = e.city
302
+      this.Address = e.title
303
+      this.AddressDetail = e.address
304
+      this.Lat = e.point.lat
305
+      this.Lng = e.point.lng
306
+      this.ShowAreaSelect = false
307
+    },
308
+    SfzzmFileChange (e) { // 身份证正面照更新
309
+      let aFormData = new FormData()
310
+      aFormData.append('file', e.target.files[0])
311
+      this.ImgUpload({ urlData: { plat: 'shop' }, data: aFormData, headers: { 'Content-Type': 'multipart/form-data' } }).then((res) => {
312
+        this.$refs.SfzzmFile.value = ''
313
+        this.SfzzmImg = res.data.data
314
+      })
315
+    },
316
+    SfzfmFileChange (e) { // 身份证反面照更新
317
+      let aFormData = new FormData()
318
+      aFormData.append('file', e.target.files[0])
319
+      this.ImgUpload({ urlData: { plat: 'shop' }, data: aFormData, headers: { 'Content-Type': 'multipart/form-data' } }).then((res) => {
320
+        this.$refs.SfzfmFile.value = ''
321
+        this.SfzfmImg = res.data.data
322
+      })
323
+    },
324
+    ZzFileChange (e) { // 营业执照图片更新
325
+      let aFormData = new FormData()
326
+      aFormData.append('file', e.target.files[0])
327
+      this.ImgUpload({ urlData: { plat: 'shop' }, data: aFormData, headers: { 'Content-Type': 'multipart/form-data' } }).then((res) => {
328
+        this.$refs.ZzFile.value = ''
329
+        this.ZZImg = res.data.data
330
+      })
173 331
     },
174 332
     Refresh (done) { // 页面下拉刷新
175 333
       window.setTimeout(() => {

+ 151
- 56
src/pages/WoDe/ZhiFuBaoRenZheng/page.scss Dosyayı Görüntüle

@@ -13,16 +13,6 @@
13 13
       position: relative;
14 14
       overflow: hidden;
15 15
       padding-bottom: 0.2rem;
16
-      min-height: 100%;
17
-      > .AliShouQuan {
18
-        font-size: 0.14rem;
19
-        line-height: 0.4rem;
20
-        width: 80%;
21
-        text-align: center;
22
-        background: #d91e36;
23
-        color: #fff;
24
-        border-radius: 0.06rem;
25
-      }
26 16
       > div {
27 17
         padding: 0 0.15rem;
28 18
         background: #fff;
@@ -71,61 +61,166 @@
71 61
             margin-left: 0.1rem;
72 62
           }
73 63
         }
74
-        &.PhotoList {
75
-          padding-top: 0.15rem;
64
+        > .PhotoList {
65
+          font-size: 0;
66
+          padding-bottom: 0.15rem 0.15rem 0;
67
+          text-align: center;
68
+          > * {
69
+            display: inline-block;
70
+            vertical-align: middle;
71
+            margin-left: 0.15rem;
72
+            margin-bottom: 0.15rem;
73
+            &:first-child {
74
+              margin-left: 0;
75
+            }
76
+          }
77
+          > a {
78
+            width: 0.6rem;
79
+            height: 0.6rem;
80
+            border: 0.01rem dashed #ccc;
81
+            position: relative;
82
+            overflow: hidden;
83
+            box-sizing: border-box;
84
+          }
85
+          > div {
86
+            width: 0.6rem;
87
+            height: 0.6rem;
88
+            position: relative;
89
+            overflow: visible;
90
+            background: #ccc;
91
+            > img {
92
+              z-index: 1;
93
+            }
94
+            > a {
95
+              display: inline-block;
96
+              position: absolute;
97
+              font-size: 0.1rem;
98
+              width: 0.16rem;
99
+              line-height: 0.16rem;
100
+              text-align: center;
101
+              color: #fff;
102
+              border-radius: 100%;
103
+              background: #d91e36;
104
+              right: -0.04rem;
105
+              top: -0.04rem;
106
+              z-index: 2;
107
+            }
108
+          }
109
+        }
110
+        > .IdCardList {
111
+          position: relative;
112
+          overflow: visible;
113
+          text-align: center;
114
+          font-size: 0;
115
+          white-space: nowrap;
76 116
           padding-bottom: 0.15rem;
77
-          padding-left: 0;
78 117
           > div {
118
+            display: inline-block;
119
+            vertical-align: middle;
120
+            width: 1.28rem;
79 121
             position: relative;
80
-            border-left: 0.01rem solid #f7f7f7;
81
-            padding-left: 0.15rem;
122
+            overflow: visible;
123
+            margin-left: 0.4rem;
82 124
             &:first-child {
83
-              border-left: none;
125
+              margin-left: 0;
84 126
             }
85
-            > ul {
86
-              font-size: 0;
87
-              > li {
88
-                display: inline-block;
89
-                vertical-align: middle;
90
-                position: relative;
91
-                margin-left: 0.1rem;
92
-                margin-bottom: 0.1rem;
93
-                width: 0.7rem;
94
-                &:nth-child(2n + 1) {
95
-                  margin-left: 0;
96
-                }
97
-                > a {
98
-                  width: 100%;
99
-                  display: block;
100
-                  padding-bottom: 100%;
101
-                  position: relative;
102
-                  overflow: hidden;
103
-                  box-sizing: border-box;
104
-                  border: 0.01rem dashed #ccc;
105
-                  > i {
106
-                    font-size: 0.2rem;
107
-                    color: #999;
108
-                  }
109
-                }
110
-                > div {
111
-                  width: 100%;
112
-                  padding-bottom: 100%;
113
-                  position: relative;
114
-                  overflow: hidden;
115
-                  background: #ccc;
116
-                }
117
-                > span {
118
-                  font-size: 0.12rem;
119
-                  display: block;
120
-                  text-align: center;
121
-                  line-height: 0.2rem;
122
-                  height: 0.2rem;
123
-                }
124
-              }
127
+            > a {
128
+              width: 100%;
129
+              display: block;
130
+              padding-bottom: 58.59%;
131
+              background: #fff;
132
+              border-radius: 0.06rem;
133
+              position: relative;
134
+              overflow: hidden;
135
+              box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
136
+            }
137
+            > span {
138
+              display: block;
139
+              font-size: 0.12rem;
140
+              line-break: 0.2rem;
141
+              text-align: center;
142
+              margin-top: 0.15rem;
125 143
             }
126 144
           }
127 145
         }
128 146
       }
129 147
     }
148
+    > .MapContainer {
149
+      width: 100%;
150
+      position: fixed;
151
+      top: 0;
152
+      left: 0;
153
+      bottom: 0;
154
+      background: rgba(0, 0, 0, 0.5);
155
+      z-index: 100;
156
+    }
157
+    > .PickLayer {
158
+      width: 100%;
159
+      position: fixed;
160
+      top: 0;
161
+      left: 0;
162
+      bottom: 0;
163
+      background: rgba(0, 0, 0, 0.5);
164
+      z-index: 100;
165
+      > div {
166
+        width: 100%;
167
+        position: absolute;
168
+        left: 0;
169
+        bottom: 0;
170
+        overflow: hidden;
171
+      }
172
+    }
173
+    > .QrCodeLayer {
174
+      width: 100%;
175
+      position: fixed;
176
+      z-index: 10;
177
+      left: 0;
178
+      top: 0;
179
+      bottom: 0;
180
+      background: rgba(0, 0, 0, 0.5);
181
+      > div {
182
+        width: 80%;
183
+        border-radius: 0.06rem;
184
+        background: #fff;
185
+        padding: 0.1rem 0;
186
+        > .Top {
187
+          position: relative;
188
+          overflow: hidden;
189
+          > span {
190
+            display: block;
191
+            font-size: 0.14rem;
192
+            text-align: center;
193
+            position: relative;
194
+            z-index: 1;
195
+            line-height: 0.4rem;
196
+          }
197
+          > a {
198
+            display: inline-block;
199
+            font-size: 0.18rem;
200
+            position: absolute;
201
+            z-index: 2;
202
+            right: 0.15rem;
203
+            top: 0;
204
+            line-height: 0.4rem;
205
+          }
206
+        }
207
+        > .QrCode {
208
+          width: 1.5rem;
209
+          height: 1.5rem;
210
+          border: 0.01rem solid #eee;
211
+          position: relative;
212
+          overflow: hidden;
213
+          margin: 0 auto;
214
+        }
215
+        > span {
216
+          display: block;
217
+          padding: 0 0.15rem;
218
+          font-size: 0.12rem;
219
+          line-height: 0.2rem;
220
+          margin-top: 0.15rem;
221
+          text-align: center;
222
+        }
223
+      }
224
+    }
130 225
   }
131 226
 }