no message
Showing
48 changed files
with
1943 additions
and
102 deletions
1 | { | 1 | { |
2 | "pages": [ | 2 | "pages": [ |
3 | "pages/contact-table/contact-table", | ||
4 | "pages/contact/contact", | ||
5 | "pages/user-center/user-center", | 3 | "pages/user-center/user-center", |
4 | "pages/contact/contact", | ||
5 | "pages/contact-table/contact-table", | ||
6 | "pages/index/index", | 6 | "pages/index/index", |
7 | "pages/authorize/authorize", | 7 | "pages/authorize/authorize", |
8 | "pages/gift-shop/gift-shop", | 8 | "pages/gift-shop/gift-shop", |
... | @@ -56,6 +56,8 @@ | ... | @@ -56,6 +56,8 @@ |
56 | }, | 56 | }, |
57 | "usingComponents": { | 57 | "usingComponents": { |
58 | "authorize-comp": "../../component/authorize-comp/authorize-comp", | 58 | "authorize-comp": "../../component/authorize-comp/authorize-comp", |
59 | "common-tips-comp": "../../component/common-tips-comp/common-tips-comp", | ||
60 | "sign-tips-comp": "../../component/sign-tips-comp/sign-tips-comp", | ||
59 | "van-popup": "../../ui/vant-weapp/popup/index" | 61 | "van-popup": "../../ui/vant-weapp/popup/index" |
60 | } | 62 | } |
61 | } | 63 | } | ... | ... |
... | @@ -18,9 +18,11 @@ | ... | @@ -18,9 +18,11 @@ |
18 | // 雪碧图 | 18 | // 雪碧图 |
19 | // @lazysprite "filetype"; | 19 | // @lazysprite "filetype"; |
20 | 20 | ||
21 | .test { | 21 | // .test { |
22 | background-image: url(%ASSETS_IMG%/qr-r.jpg); | 22 | // background-image: url(%ASSETS_IMG%/qr-r.jpg); |
23 | } | 23 | // } |
24 | |||
25 | $contentWidth:690px; | ||
24 | 26 | ||
25 | .app { | 27 | .app { |
26 | height: 100%; | 28 | height: 100%; |
... | @@ -87,9 +89,11 @@ | ... | @@ -87,9 +89,11 @@ |
87 | 89 | ||
88 | // web font icon | 90 | // web font icon |
89 | 91 | ||
92 | |||
90 | @font-face { | 93 | @font-face { |
91 | font-family: "iconfont"; | 94 | font-family: "iconfont"; |
92 | src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAOsAAsAAAAAB6gAAANdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqDDIJmATYCJAMMCwgABCAFhG0HORuvBsgOJUHBwIABAAlgPHyN/f7c3UVEk0mi+3QSQxJNJCoexUrxUhhKIyT4UsKbL89+kizTNWb3wyt7UkR96ayA4xev1q04fZzIa32ey/Gt5wc26luWy5iT9qKFAcYBBbQ3RgEFWiAJesPYlRdxn0C9YccRqxl5ZcBCYSwLxJFS3gwsUk6lpj7UCtUle4t4Yqo2XaeXAHj0vx//QUhYkFRlxtq1w/Q2kPRz+iOmhipDoM51Gx7PD3aIjBlAITZLgxuoMDODUq8YTerLqxUhjRU3GgFfqeqrzT88kiCqGbWNYAJlEz+nbQmJP1h91rUZVMPcGeAZM51XhqohJw97O/vO23paqy3T6coNhsqQ1esr3nVWF19mTZ3YnOwtWwPk5bvMfvYCQV11V+xUzZx02tPO6H02TtP0y4dn5a7M9ravfPvs/poNl43TTmVrW87O66dcKzd3myo2Tjo5rW07l6+fcXXd3KmUDdBKXH240GtvAAw49qfa2BeatkTevUsumTJX5pzRRVy781FXe+YP15YALi0+kkDHQRm8OLz2sP/U1NGjIPxKdyVpafxHpKWvbajtddvnaxmZHLP0XGY1d2wvLarJWrd3LMD6Q1DiSPHusrPgvOxtlAKDyt7bk32nH3emP+npcwo2dKU/Vj040Jn2+HTvAU5VFtOf5vZDf683NVrpbEvIO7N3IX421A40MRbmdVIPQGXQhMi7/+o3vjanTBtt4/7Vygr4/p/GIHW7aqBWorXqz7QVQMVYCK4xXLnISlup57Ntpvcth3Ju8j8aod2b/tauu8+FWl0xkhpDyGqNEIWZQZUG86hWawH1pmUebtBBQolShynjAKHVFSTNPpG1ekUU5jWqdPuGaq1Bod56OJ7ZYCyUdKqEmjFqgy3dUNkqCozlwXRQX4Lk7VyzlNT4XAWSNMo4DA4IyuYzkYCkMTZoOuQhGDOQkUQeZoDHEMeJUC2JKtSKAxQYq2MCA5myFwW0ijygrZAgzTCkDdSiG6TUSiRg3MEYnft8CUSuHaeZVNNTka6ASDSUo0PBAgS1IDKNQquea3lGo4NcCAxjQAyJiAdlgFkIhyOC1OWzVJBWWABFj5RajECzH9PWGDC/mX++Q1DPGJsjRY6i5hgx1hSNwhTxatwNAAAAAA==') format('woff2'), | 95 | // src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAScAAsAAAAACWAAAARQAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDSAqFVIRuATYCJAMYCw4ABCAFhG0HVRshCMgOJSGRwABgYAPDUEoeHvd7PTfJSwFAEah6VmX1dTtS08QKyKgZO6MrzNCI9/9/p93MlJPWQetZqTCDwumbgGcyBbEQPyFlu+svwP9zP59X1mB57dlcIpO6qHBnQOMBDSiiLVJ4Axl/1g9uMj9DgoHJYeziMrYT6LVoIdZxQpoAzBRav0A8lEvLwSymU0oooVtZc6YW8R2MdacP2GUA39zvx3/wCTOSJtOGXj2Ir4SoXzYvA/HW/62KaoC2/ixgZpGxBRTiRa7tEdwPbsH1Sn/ByAnQr1tSftk84z7b8oJ5Gfi/BTGR5gr9eipF0vT4z4sKyfoh7izU8MvGRCj84iIkfm1BaPjDIGT+BgpOS1VRlz7cAsQOaPgtstj5d4Rm2sJiwdWa42RrY6ulpEvbeDlLtnAqJzlZk8u4aPEAP3fpSuXt24I7d4R374oNhiJLRB4nmnP7duGSfo5AlMO3tXKFgsnW7QN8sXDxwM42nki8tK3mqIFow/X54sSBO+ECS/w5TujcY2N92Rz53GqTg2ASsDfb2bYDO1l46xNX5PVv4qy63W9wW7KFIH7scBavZFt/chQu3zazYAlvehIBR+Uu3swXr1AmWrKJw5lczhUu3srnL10hZneQz3q7g0dMbgPo8EzXZ6VkJQlEttQOBNR5QVncISGLWroG2VIHRSxo/2/IU1P4BrHLsYrCmEN92IEDGOK+5UARjuM+XO64nNbYV6Wv1xw+6P43+saNYsePY6Nil50laln7B910+c7pbYU5oEojI9iIVbBZ1r9w7vTe3vnzwe/ml+vG+g0bjh3LOf5Fq1W+Hs8G/7d39kaNdr0PNHe39rU+aJrdzQN/k9GLbIudBavigso8bNUCD8vnXpHt2SvHuBru2I2kPb0Ez2yxxi1na+LP1TdyvBG18WcVp2bVxJ3d0jBLpchzG7aoZmJpcMV7ix+w9nlq8tTH3dTXBhoB2tNpCl8EQH6DA7B0MANWH8+SRKFwixEr3/mhfmPufaG81Drsa3dfAbcRm2ZBQT0Z/BVytfm/T0EB2v9GwQqxvhaxvNlBoLpmjPwJvbqLFrpGPe5LNfEewqHbRAhJlwXIui2hCm4LGn12oeq2B702Jc7uM4aGi9KDDV0AwrC9kAz6CdmwK6iCewSNSW+hGg4cenXCfsk+KyEnYmlUzqBKsqKOlEu0GspGhvAyc5C0SlVOR4UuVYRovdxDent4JSOJSIPoPkboq6U+DEORFK1VkwlgN6RSaUkdrVUgCeMhYxhdiKcnlXcjD4lWDYQjNKQcA6lEqlCHJCehpUHZtRlE6vM5EKkqKuXokrISqwhC05M3TvLmwasGKlGmqVV2Lq31qkn5YDAo3ItC01IjJUALotKDWiRdficFRILhQdbCrxPCE1Wi6so8xleor3Id9NLWqZEiR4kmanTpuVMuUe5/U28TiUqrR96mNKI8Ti8zkmnVyBipdUwdAA==') format('woff2'), |
96 | src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAT4AAsAAAAAClgAAASsAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDdAqHBIYEATYCJAMgCxIABCAFhG0HZhv8CMgOJU2RwMBgYANAPDzt1+/cmXn+TXFL0ESrpU2IJ0LDo1hJlIqXQChfS9j//73sBlWmUDqts1JhDgrtTl9G0clkKX7SnP//fqWTxwcsrz0blBF8f6KaKgJoeIAGKGqzqch2QcpxH+AZLkzg3QR6e/SEXc8v1YCzQtgXiOdmY29wdhmVGEZoNXXImUV8g0qb3uNnAXzVvz62ITqcSapMOPL2s7w2yFxzfJVAjLCPcEc1w7vy7LidR8YpoBDfQp0fZDNyCqH/pBb3gBnxLxKsOT73fE4/r3m+7qXyKsFu97WiMnI14TZQKZJaU8s/L2qCcgLpT6INa44yomLNE1FYoxGJtRqFdKp1iGjYUBCZzQTxzCpb9YwZYJroiJcgqM/rypiRY0KSVCuurrtDPFzpFRcCvTy9RNY4f6Rf9bx1vm1zfCvnLKDR3MnqmvmLrVevaq5d0964ob9+vVGS6wzCWXT1asO8Sb4anfL4DSNorWbOiI2T1Xrt3MmbR/rp9PNH9t9/ncojMEXvUydfS9O4ES8IyuiJCh+yfPSLq081155pb7zQX3/eREEfImmYUthx7mv8NXMgvd2o8pq8GSNqe+ai2klrfJdcnXQ9dN46ivq+KUi/WOXxMUC7cEPH+nl+3ZFrHkx67lq1/hqtunlrfH3nLKS1c9er1fMX6VUFlGLvNvlRczaAAl/pYqfiykKNzovdhIC9Ud+au0eLsfOXIS92tw6DsX1VvnmTWCVilVCa7KQ9E/Fdu3CUTWQCpZxC310YsFAWsDZljLEcPkr2ITG5M/CDB/EZIlaxcoUB2M4poVJdUNnIhmrg0vTpOMg4xHjVuIau7SdM6N4dYh/+Dlk9aNWqAweqD34Vxet8O1gFTK46SjpW5R951NHxL2nLa6o75uhwwGHbNkXqS5Ljzr27tj1zxtgPCS5hHjEeu2VbmEuCc8mM0yrXMz2W5Ca28lFLeoS7vYjMGFW1eCYt0DO1Y+WISM1zL3zIuuP9804MGuJrHDMg77jlSKf+ucfXDe7EWcJ819dxHdE+OIQoLXWyR/RDx4fR+m1jPGE4wPhoukn0AiC/JQDsI/w66w5mUZ5J/NvzJaIqNpzE8qMz9nusbZgvt3ikfmuHAv7nzTChOF0MtNJ+UDk/GwowtpNxlwimtry7k42iLOcDDvdQQi8SPw0I3jn3y9Qu7lZ53NWLNiSN3ZC1DpEL/RRUBmeh1roEvZMKzh/MkxGidDhhLECYsR2SKT8gm3GOXOj3oLLkHdRmgoDeKHyuODgSZipHRr0V1Mb0GciYDaLAShaFMvKrkbEv11t2SnSmDsk2s5+JCo/0xguQgOQyjrH1M0YrCsuwssgz+XA/xHEiI8miBRmUcJOiSMkREWzYB4UbRB4o18iQ3hRIG0YfAzHMDEQCVp2toHyfXw0x6ovTmxzT9sOrg8hszIszooSLTEEuUAqp2rZltU0/RtEUCpZ3sWQiHiMf7QgnRkQMKXyTBWKgCGfKEZIki6BxbFpleP1qfknPQU+4aRspcpSooo4m2uh0j3obrHOwNMrRwIk2FOUkI1Z6kc1EmkQeOQ0wC4OQYCQlrq/NAfGSMhAA') format('woff2'), | ||
93 | } | 97 | } |
94 | 98 | ||
95 | .iconfont { | 99 | .iconfont { |
... | @@ -108,6 +112,32 @@ | ... | @@ -108,6 +112,32 @@ |
108 | content: "\e6a6"; | 112 | content: "\e6a6"; |
109 | } | 113 | } |
110 | 114 | ||
115 | |||
116 | .iconclose1:before { | ||
117 | content: "\e615"; | ||
118 | } | ||
119 | |||
120 | .iconhome:before { | ||
121 | content: "\e610"; | ||
122 | } | ||
123 | |||
124 | |||
125 | .iconbackicon1:before { | ||
126 | content: "\e937"; | ||
127 | } | ||
128 | |||
129 | .iconplus:before { | ||
130 | content: "\e653"; | ||
131 | } | ||
132 | |||
133 | .iconplus:before { | ||
134 | content: "\e653"; | ||
135 | } | ||
136 | |||
137 | .iconxinzeng:before { | ||
138 | content: "\e606"; | ||
139 | } | ||
140 | |||
111 | .drop-down-item :last-child { | 141 | .drop-down-item :last-child { |
112 | border-bottom: none; | 142 | border-bottom: none; |
113 | } | 143 | } |
... | @@ -116,6 +146,16 @@ | ... | @@ -116,6 +146,16 @@ |
116 | color: $colorBlue; | 146 | color: $colorBlue; |
117 | } | 147 | } |
118 | 148 | ||
149 | |||
150 | .border { | ||
151 | width: $contentWidth; | ||
152 | @extend .shadow; | ||
153 | background-color: #ffffff; | ||
154 | @extend .bb; | ||
155 | padding: 24px 30px; | ||
156 | margin: 0 auto 20px; | ||
157 | } | ||
158 | |||
119 | .van-popup { | 159 | .van-popup { |
120 | background-color: transparent !important; | 160 | background-color: transparent !important; |
121 | } | 161 | } | ... | ... |
... | @@ -220,6 +220,13 @@ | ... | @@ -220,6 +220,13 @@ |
220 | justify-content: space-between; | 220 | justify-content: space-between; |
221 | } | 221 | } |
222 | 222 | ||
223 | |||
224 | |||
225 | .fje { | ||
226 | display: flex; | ||
227 | justify-content: flex-end; | ||
228 | } | ||
229 | |||
223 | //水平和垂直居中 | 230 | //水平和垂直居中 |
224 | .fcc { | 231 | .fcc { |
225 | display: flex; | 232 | display: flex; | ... | ... |
1 | let app = getApp(); | ||
2 | Component({ | ||
3 | properties: { | ||
4 | // 这里定义了innerText属性,属性值可以在组件使用时指定 | ||
5 | // cid 用户区分组件 | ||
6 | cid: { | ||
7 | type: String, | ||
8 | value: '1', | ||
9 | }, | ||
10 | innerTitle: { | ||
11 | type: String, | ||
12 | value: '', | ||
13 | }, | ||
14 | innerText: { | ||
15 | type: String, | ||
16 | value: '', | ||
17 | }, | ||
18 | innerButton: { | ||
19 | type: String, | ||
20 | value: '确定', | ||
21 | } | ||
22 | }, | ||
23 | data: { | ||
24 | // 这里是一些组件内部数据 | ||
25 | someData: {} | ||
26 | }, | ||
27 | methods: { | ||
28 | // 这里是一个自定义方法 | ||
29 | customMethod() { | ||
30 | this.triggerEvent('evtcomp', { | ||
31 | name: "_evt_custom" | ||
32 | }) | ||
33 | }, | ||
34 | // 隐藏蒙层 | ||
35 | hideMask() { | ||
36 | this.triggerEvent('evtcomp', { | ||
37 | name: "_evt_hide_mask" | ||
38 | }); | ||
39 | }, | ||
40 | // 点击自定义按钮 | ||
41 | onInnerButtonHandler() { | ||
42 | this.triggerEvent('evtcomp', { | ||
43 | name: "_evt_common_comp_button", | ||
44 | data: { | ||
45 | cid: this.properties.cid, | ||
46 | innerTitle: this.properties.innerTitle, | ||
47 | innerText: this.properties.innerText, | ||
48 | innerButton: this.properties.innerButton, | ||
49 | } | ||
50 | }); | ||
51 | } | ||
52 | } | ||
53 | }) |
1 | @import '../../assets/scss/mixins'; | ||
2 | @import '../../assets/scss/utils'; | ||
3 | |||
4 | |||
5 | .comp-item { | ||
6 | width: 650px; | ||
7 | min-height: 496px; | ||
8 | border-radius: 10px; | ||
9 | background-color: #ffffff; | ||
10 | |||
11 | .cspace { | ||
12 | height: 76px; | ||
13 | } | ||
14 | |||
15 | .cont { | ||
16 | text-align: center; | ||
17 | width: 520px; | ||
18 | margin: 0 auto; | ||
19 | |||
20 | .logo { | ||
21 | margin: 0 auto; | ||
22 | width: 200px; | ||
23 | height: 153px; | ||
24 | |||
25 | image { | ||
26 | width: 200px; | ||
27 | height: 153px; | ||
28 | } | ||
29 | } | ||
30 | |||
31 | .tit { | ||
32 | font-size: 40px; | ||
33 | color: #333333; | ||
34 | } | ||
35 | |||
36 | .tips { | ||
37 | margin-top: 64px; | ||
38 | font-size: 32px; | ||
39 | color: #333333; | ||
40 | width: 520px; | ||
41 | padding-bottom: 244px; | ||
42 | } | ||
43 | } | ||
44 | |||
45 | .btn { | ||
46 | @include cb(300px, 80px); | ||
47 | position: absolute; | ||
48 | left: 0; | ||
49 | right: 0; | ||
50 | bottom: 48px; | ||
51 | margin: 0 auto; | ||
52 | } | ||
53 | |||
54 | } |
1 | let app = getApp(); | ||
2 | Component({ | ||
3 | properties: { | ||
4 | // 这里定义了innerText属性,属性值可以在组件使用时指定 | ||
5 | // cid 用户区分组件 | ||
6 | cid: { | ||
7 | type: String, | ||
8 | value: '1', | ||
9 | }, | ||
10 | innerTitle: { | ||
11 | type: String, | ||
12 | value: '', | ||
13 | }, | ||
14 | innerText: { | ||
15 | type: String, | ||
16 | value: '', | ||
17 | }, | ||
18 | innerButton: { | ||
19 | type: String, | ||
20 | value: '确定', | ||
21 | } | ||
22 | }, | ||
23 | data: { | ||
24 | // 这里是一些组件内部数据 | ||
25 | someData: {} | ||
26 | }, | ||
27 | methods: { | ||
28 | // 这里是一个自定义方法 | ||
29 | customMethod() { | ||
30 | this.triggerEvent('evtcomp', { | ||
31 | name: "_evt_custom" | ||
32 | }) | ||
33 | }, | ||
34 | // 隐藏蒙层 | ||
35 | hideMask() { | ||
36 | this.triggerEvent('evtcomp', { | ||
37 | name: "_evt_hide_mask" | ||
38 | }); | ||
39 | }, | ||
40 | // 点击自定义按钮 | ||
41 | onInnerButtonHandler() { | ||
42 | this.triggerEvent('evtcomp', { | ||
43 | name: "_evt_to_verify" | ||
44 | }); | ||
45 | } | ||
46 | } | ||
47 | }) |
1 | @import '../../assets/scss/mixins'; | ||
2 | @import '../../assets/scss/utils'; | ||
3 | |||
4 | |||
5 | .comp-item { | ||
6 | width: 650px; | ||
7 | min-height: 496px; | ||
8 | border-radius: 10px; | ||
9 | background-color: #ffffff; | ||
10 | |||
11 | .cspace { | ||
12 | height: 76px; | ||
13 | } | ||
14 | |||
15 | .cont { | ||
16 | text-align: center; | ||
17 | width: 520px; | ||
18 | margin: 0 auto; | ||
19 | |||
20 | .logo { | ||
21 | margin: 0 auto; | ||
22 | width: 200px; | ||
23 | height: 153px; | ||
24 | |||
25 | image { | ||
26 | width: 200px; | ||
27 | height: 153px; | ||
28 | } | ||
29 | } | ||
30 | |||
31 | .tit { | ||
32 | font-size: 40px; | ||
33 | color: #333333; | ||
34 | width: 440px; | ||
35 | margin: 0 auto; | ||
36 | } | ||
37 | |||
38 | .tips { | ||
39 | margin-top: 64px; | ||
40 | font-size: 32px; | ||
41 | color: #333333; | ||
42 | width: 520px; | ||
43 | padding-bottom: 244px; | ||
44 | } | ||
45 | } | ||
46 | |||
47 | .btn-wrap { | ||
48 | position: absolute; | ||
49 | left: 0; | ||
50 | right: 0; | ||
51 | bottom: 48px; | ||
52 | margin: 0 auto; | ||
53 | |||
54 | .b1 { | ||
55 | @include cb(320px, 84px); | ||
56 | } | ||
57 | |||
58 | .b2 { | ||
59 | margin: 36px auto 0; | ||
60 | font-size: 28px; | ||
61 | color: #999999; | ||
62 | text-align: center; | ||
63 | } | ||
64 | } | ||
65 | |||
66 | |||
67 | |||
68 | } |
1 | <view class="comp-item"> | ||
2 | <view class="cspace"></view> | ||
3 | <view class="cont"> | ||
4 | <view class="tit"> | ||
5 | <text>只有通过审核的会员才可参与签到</text> | ||
6 | </view> | ||
7 | <view class="tips"> | ||
8 | <text></text> | ||
9 | </view> | ||
10 | </view> | ||
11 | <view class="btn-wrap"> | ||
12 | <button class="b1" bindtap="onInnerButtonHandler">马上去验证</button> | ||
13 | <view class="b2" bindtap="hideMask">以后再说</view> | ||
14 | </view> | ||
15 | </view> |
1 | module.exports = { | 1 | module.exports = { |
2 | mockApi: 'http://mock.simonfungc.com', | 2 | mockApi: 'http://mock.simonfungc.com', |
3 | Dev: { | 3 | Dev: { |
4 | baseApi: 'https://ow.go.qudone.com/zlzmapi' | 4 | baseApi: 'https://ow.go.qudone.com/zlzmapi', |
5 | }, | 5 | commonApi: 'https://api.k.wxpai.cn/bizproxy' |
6 | Test: { | 6 | }, |
7 | baseApi: 'https://test-api.xxx.com' | 7 | Test: { |
8 | }, | 8 | baseApi: 'https://test-api.xxx.com' |
9 | Slave: { | 9 | }, |
10 | baseApi: 'https://slave-api.xxx.com' | 10 | Slave: { |
11 | }, | 11 | baseApi: 'https://slave-api.xxx.com' |
12 | Prod: { | 12 | }, |
13 | baseApi: 'https://api.k.wxpai.cn/bizproxy/zlzmapi' | 13 | Prod: { |
14 | } | 14 | baseApi: 'https://api.k.wxpai.cn/bizproxy/zlzmapi', |
15 | commonApi: 'https://api.k.wxpai.cn/bizproxy' | ||
16 | } | ||
15 | } | 17 | } | ... | ... |
... | @@ -33,4 +33,9 @@ module.exports = { | ... | @@ -33,4 +33,9 @@ module.exports = { |
33 | signInfo: '/sign/info', // post 签到信息 用户注册接口 | 33 | signInfo: '/sign/info', // post 签到信息 用户注册接口 |
34 | sign: '/sign', // post 签到动作 用户注册接口 | 34 | sign: '/sign', // post 签到动作 用户注册接口 |
35 | sginRecord: '/sgin/record', // post 签到记录 用户注册接口 | 35 | sginRecord: '/sgin/record', // post 签到记录 用户注册接口 |
36 | |||
37 | provinceQuery: 'https://ow.go.qudone.com/warubiEyeCreamApi/app/store/province', // post 省 | ||
38 | cityQuery: 'https://ow.go.qudone.com/warubiEyeCreamApi/app/store/city', // post 省 | ||
39 | |||
40 | uploadFile: '/kdapi/file/upload' //上传图片通用接口 | ||
36 | } | 41 | } | ... | ... |
... | @@ -104,6 +104,13 @@ const fetch = function ({ | ... | @@ -104,6 +104,13 @@ const fetch = function ({ |
104 | if (isMock && mode != 'log') { | 104 | if (isMock && mode != 'log') { |
105 | baseUrl = config.MOCKAPI; //环境配置 | 105 | baseUrl = config.MOCKAPI; //环境配置 |
106 | } | 106 | } |
107 | if (mode == "common") { | ||
108 | console.log("config.NET_CONFIG.commonApi:", config.NET_CONFIG.commonApi); | ||
109 | baseUrl = config.NET_CONFIG.commonApi | ||
110 | } | ||
111 | if (mode == "custom") { | ||
112 | baseUrl = "" | ||
113 | } | ||
107 | checkSessionId(sid).then((result) => { | 114 | checkSessionId(sid).then((result) => { |
108 | wx.request({ | 115 | wx.request({ |
109 | url: baseUrl + url, //请求地址 | 116 | url: baseUrl + url, //请求地址 | ... | ... |
src/image/icon/icon-arrow-right.png
0 → 100644
699 Bytes
src/image/icon/icon-default-avatar.png
0 → 100644
12.5 KB
src/image/icon/icon-default-qrcode.png
0 → 100644
102 KB
src/image/icon/icon-histiory.png
0 → 100644
1.11 KB
src/image/icon/icon-id-card-default.png
0 → 100644
5.22 KB
src/image/icon/icon-id-card.png
0 → 100644
57.9 KB
src/image/icon/icon-medal.png
0 → 100644
2.47 KB
src/image/icon/icon-plus.png
0 → 100644
2.12 KB
src/image/icon/icon-rank-rewrad.png
0 → 100644
14.5 KB
src/image/icon/icon-upload.png
0 → 100644
2.25 KB
src/image/rank/rank-c1.png
0 → 100644
48.5 KB
1 | import { | ||
2 | getBindtapData, | ||
3 | checkMobile | ||
4 | } from '../../utils/util'; | ||
5 | |||
1 | let app = getApp(); | 6 | let app = getApp(); |
2 | Page({ | 7 | Page({ |
3 | data: { | 8 | data: { |
4 | authorizeVisible: false, | 9 | authorizeVisible: false, |
10 | commonTipsCompVisible: false, | ||
11 | innerTitle: "留言提交成功!", | ||
12 | innerText: "感谢您宝贵的意见\n我们将尽快回电或回复信息", | ||
13 | maxImg: 9, // 上传数量 | ||
14 | files: [], // 上传文件列表 | ||
15 | name: "", | ||
16 | phone: "", | ||
17 | messageContant: "", // 单词拼写错误 | ||
18 | |||
19 | |||
5 | }, | 20 | }, |
6 | onShareAppMessage() {}, | 21 | onShareAppMessage() {}, |
7 | showAuth() { | 22 | showAuth() { |
... | @@ -9,5 +24,229 @@ Page({ | ... | @@ -9,5 +24,229 @@ Page({ |
9 | authorizeVisible: true | 24 | authorizeVisible: true |
10 | }) | 25 | }) |
11 | }, | 26 | }, |
12 | onLoad(options) {} | 27 | onLoad(options) { |
28 | this.initData(); | ||
29 | }, | ||
30 | initData() { | ||
31 | this.setData({ | ||
32 | commonTipsCompVisible: true | ||
33 | }) | ||
34 | }, | ||
35 | /** | ||
36 | * 提交表单 | ||
37 | */ | ||
38 | onSubmitHandler() { | ||
39 | let { | ||
40 | name, | ||
41 | phone, | ||
42 | messageContant, | ||
43 | files | ||
44 | } = this.data; | ||
45 | |||
46 | let pics = []; | ||
47 | files.forEach(element => { | ||
48 | pics.push(element.path) | ||
49 | }); | ||
50 | // 校验 | ||
51 | if (!name) { | ||
52 | wx.showToast({ | ||
53 | title: "请输入用户姓名", | ||
54 | icon: 'none' | ||
55 | }) | ||
56 | return; | ||
57 | } | ||
58 | if (!phone) { | ||
59 | wx.showToast({ | ||
60 | title: "请输入联系方式", | ||
61 | icon: 'none' | ||
62 | }) | ||
63 | return; | ||
64 | } | ||
65 | if (!checkMobile(phone)) { | ||
66 | wx.showToast({ | ||
67 | title: "请输入正确联系方式", | ||
68 | icon: 'none' | ||
69 | }) | ||
70 | return; | ||
71 | } | ||
72 | if (!messageContant) { | ||
73 | wx.showToast({ | ||
74 | title: "请输入联系方式", | ||
75 | icon: 'none' | ||
76 | }) | ||
77 | return; | ||
78 | } | ||
79 | if (pics.length <= 0) { | ||
80 | wx.showToast({ | ||
81 | title: "请上传图片", | ||
82 | icon: 'none' | ||
83 | }) | ||
84 | return; | ||
85 | } | ||
86 | |||
87 | |||
88 | // 上传图片到服务器 | ||
89 | this.uploadToCustomService(pics).then((result) => { | ||
90 | // 提交表单 | ||
91 | app.post({ | ||
92 | url: app.api.messageSave, | ||
93 | data: { | ||
94 | name: name, | ||
95 | phone: phone, | ||
96 | messageContant: messageContant, | ||
97 | images: result.join(','), | ||
98 | } | ||
99 | }).then((result2) => { | ||
100 | this.setData({ | ||
101 | commonTipsCompVisible: true | ||
102 | }) | ||
103 | }); | ||
104 | }) | ||
105 | }, | ||
106 | |||
107 | /** | ||
108 | * 上传到自定义服务器 | ||
109 | * urlList 需要上传的图片地址 | ||
110 | */ | ||
111 | uploadToCustomService(urlList) { | ||
112 | let _this = this; | ||
113 | return new Promise((resolve, reject) => { | ||
114 | // promise列表 | ||
115 | let p = []; | ||
116 | // 用promise上传音频 | ||
117 | urlList.forEach(element => { | ||
118 | let myPromise = new Promise((resolve2, reject2) => { | ||
119 | _this.uploadfileMultiple(element).then((result2) => { | ||
120 | resolve2(result2) | ||
121 | }).catch((err) => { | ||
122 | // _this.tip("声音上传失败") | ||
123 | reject2(); | ||
124 | }); | ||
125 | }); | ||
126 | p.push(myPromise); | ||
127 | }); | ||
128 | Promise.all(p).then(uploadFiles => { | ||
129 | resolve(uploadFiles) | ||
130 | }, reason => { | ||
131 | reject(); | ||
132 | }); | ||
133 | }); | ||
134 | }, | ||
135 | /** | ||
136 | * 多文件上传 | ||
137 | * @param {*} filePath | ||
138 | */ | ||
139 | uploadfileMultiple(filePath) { | ||
140 | let _this = this; | ||
141 | return new Promise((resolve, reject) => { | ||
142 | wx.uploadFile({ | ||
143 | url: app.config.NET_CONFIG.commonApi + app.api.uploadFile, | ||
144 | filePath: filePath, | ||
145 | name: 'file', | ||
146 | // header: {}, // 设置请求的 header | ||
147 | header: { | ||
148 | 'content-type': 'multipart/form-data' | ||
149 | }, | ||
150 | formData: { | ||
151 | path: '/weapp/zhiliang-light/' | ||
152 | }, | ||
153 | // HTTP 请求中其他额外的 form data | ||
154 | success(res) { | ||
155 | let result = JSON.parse(res.data).content; | ||
156 | resolve(result); | ||
157 | }, | ||
158 | fail() { | ||
159 | reject() | ||
160 | }, | ||
161 | complete: function () {} | ||
162 | }) | ||
163 | }); | ||
164 | }, | ||
165 | |||
166 | |||
167 | /** | ||
168 | * 调起微信图片上传 | ||
169 | */ | ||
170 | onUploadHandler() { | ||
171 | let _this = this; | ||
172 | let count = _this.data.maxImg - _this.data.length; | ||
173 | wx.chooseImage({ | ||
174 | sizeType: ['original', 'compressed'], | ||
175 | sourceType: ['album'], | ||
176 | count: count, | ||
177 | success(res) { | ||
178 | // tempFilePath可以作为img标签的src属性显示图片 | ||
179 | const tempFiles = res.tempFiles | ||
180 | let maxImg = _this.data.maxImg; | ||
181 | let files = _this.data.files; | ||
182 | files = files.concat(tempFiles); | ||
183 | if (files.length > maxImg) { | ||
184 | files.splice(0, maxImg); | ||
185 | } | ||
186 | _this.setData({ | ||
187 | files | ||
188 | }); | ||
189 | } | ||
190 | }) | ||
191 | }, | ||
192 | /** | ||
193 | * 删除选中图片 | ||
194 | */ | ||
195 | remove(evt) { | ||
196 | let index = getBindtapData(evt, "index"); | ||
197 | let files = this.data.files; | ||
198 | files.splice(index, 1); | ||
199 | this.setData({ | ||
200 | files | ||
201 | }) | ||
202 | }, | ||
203 | /** | ||
204 | * 绑定键盘输入 | ||
205 | */ | ||
206 | bindNameInput(e) { | ||
207 | this.setData({ | ||
208 | name: e.detail.value | ||
209 | }); | ||
210 | }, | ||
211 | /** | ||
212 | * 绑定键盘输入 | ||
213 | */ | ||
214 | bindPhoneInput(e) { | ||
215 | this.setData({ | ||
216 | phone: e.detail.value | ||
217 | }); | ||
218 | }, | ||
219 | /** | ||
220 | * 绑定键盘输入 | ||
221 | */ | ||
222 | bindMessageContantInput(e) { | ||
223 | this.setData({ | ||
224 | messageContant: e.detail.value | ||
225 | }); | ||
226 | }, | ||
227 | // 隐藏蒙层 | ||
228 | hideMask() { | ||
229 | this.setData({ | ||
230 | commonTipsCompVisible: false | ||
231 | }) | ||
232 | }, | ||
233 | // 子组件事件 | ||
234 | evtcomp(evt) { | ||
235 | let { | ||
236 | name, | ||
237 | data | ||
238 | } = evt.detail; | ||
239 | switch (name) { | ||
240 | |||
241 | case "_evt_common_comp_button": | ||
242 | this.hideMask(); | ||
243 | wx.navigateBack({ | ||
244 | delta: 1 | ||
245 | }); | ||
246 | break; | ||
247 | |||
248 | default: | ||
249 | break; | ||
250 | } | ||
251 | }, | ||
13 | }) | 252 | }) | ... | ... |
... | @@ -4,6 +4,8 @@ | ... | @@ -4,6 +4,8 @@ |
4 | $contentWidth:690px; | 4 | $contentWidth:690px; |
5 | 5 | ||
6 | .page { | 6 | .page { |
7 | padding-bottom: $pageBottom; | ||
8 | |||
7 | .bgc {} | 9 | .bgc {} |
8 | 10 | ||
9 | .bg {} | 11 | .bg {} |
... | @@ -16,12 +18,16 @@ $contentWidth:690px; | ... | @@ -16,12 +18,16 @@ $contentWidth:690px; |
16 | .content { | 18 | .content { |
17 | position: relative; | 19 | position: relative; |
18 | 20 | ||
21 | // 表单 | ||
19 | .form { | 22 | .form { |
20 | color: #333333; | 23 | color: #333333; |
24 | |||
21 | &-item { | 25 | &-item { |
26 | height: 72px; | ||
22 | font-size: 28px; | 27 | font-size: 28px; |
23 | display: flex; | 28 | display: flex; |
24 | justify-content: space-between; | 29 | justify-content: space-between; |
30 | align-items: center; | ||
25 | margin: 30px auto; | 31 | margin: 30px auto; |
26 | 32 | ||
27 | .label { | 33 | .label { |
... | @@ -33,6 +39,16 @@ $contentWidth:690px; | ... | @@ -33,6 +39,16 @@ $contentWidth:690px; |
33 | .val { | 39 | .val { |
34 | flex: 1; | 40 | flex: 1; |
35 | color: #333333; | 41 | color: #333333; |
42 | background: #F8F8F8; | ||
43 | // background-color: wheat; | ||
44 | @extend .bb; | ||
45 | padding: 0px 20px; | ||
46 | border-radius: 8px; | ||
47 | |||
48 | } | ||
49 | |||
50 | input { | ||
51 | height: 72px; | ||
36 | } | 52 | } |
37 | 53 | ||
38 | .net { | 54 | .net { |
... | @@ -48,26 +64,114 @@ $contentWidth:690px; | ... | @@ -48,26 +64,114 @@ $contentWidth:690px; |
48 | margin-right: 10px; | 64 | margin-right: 10px; |
49 | } | 65 | } |
50 | } | 66 | } |
51 | |||
52 | |||
53 | } | ||
54 | |||
55 | .upload{ | ||
56 | margin-top: 30px; | ||
57 | .tips{ | ||
58 | font-size: 28px; | ||
59 | color: #666666; | ||
60 | } | ||
61 | .upload{} | ||
62 | } | 67 | } |
63 | 68 | ||
64 | .textarea { | 69 | .textarea { |
65 | background: #F8F8F8; | ||
66 | @extend .bb; | ||
67 | padding: 20px; | 70 | padding: 20px; |
71 | width: 620px; | ||
72 | @extend .bb; | ||
73 | background: #F8F8F8; | ||
68 | font-size: 28px; | 74 | font-size: 28px; |
69 | } | 75 | } |
70 | } | 76 | } |
77 | |||
78 | // 提交 | ||
79 | .submit-btn { | ||
80 | @include cb(320px, 84px); | ||
81 | margin: 120px auto 0; | ||
82 | } | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | |||
87 | // 图片上传 | ||
88 | .upload { | ||
89 | margin-top: 30px; | ||
90 | |||
91 | .tips { | ||
92 | font-size: 28px; | ||
93 | color: #666666; | ||
94 | } | ||
95 | |||
96 | .upload { | ||
97 | |||
98 | margin: 0 auto; | ||
99 | width: $contentWidth; | ||
100 | border-radius: 8px; | ||
101 | background-color: #ffffff; | ||
102 | |||
103 | &-input { | ||
104 | @extend .bb; | ||
105 | padding: 30px; | ||
106 | font-size: 30px; | ||
107 | line-height: 1.35; | ||
108 | color: #333333; | ||
109 | |||
110 | textarea { | ||
111 | width: $contentWidth; | ||
112 | min-height: 200px; | ||
113 | // background-color: wheat; | ||
114 | } | ||
115 | } | ||
116 | |||
117 | &-file { | ||
118 | display: flex; | ||
119 | flex-wrap: wrap; | ||
120 | margin: 20px auto 0; | ||
121 | |||
122 | &-item { | ||
123 | position: relative; | ||
124 | width: 33%; | ||
125 | @extend .bb; | ||
126 | margin-bottom: 12px; | ||
127 | |||
128 | .thumb { | ||
129 | width: 190px; | ||
130 | height: 190px; | ||
131 | } | ||
132 | |||
133 | .remove { | ||
134 | position: absolute; | ||
135 | right: 2px; | ||
136 | top: -28px; | ||
137 | font-size: 40rpx; | ||
138 | } | ||
139 | } | ||
140 | } | ||
141 | |||
142 | &-tag { | ||
143 | position: relative; | ||
144 | margin-top: 20px; | ||
145 | padding: 8px; | ||
146 | @extend .bb; | ||
147 | |||
148 | &-item { | ||
149 | display: inline-block; | ||
150 | position: relative; | ||
151 | padding: 12px 32px; | ||
152 | border-radius: 40px; | ||
153 | background-color: #f7f7f7; | ||
154 | font-size: 26px; | ||
155 | font-weight: 500; | ||
156 | text-align: center; | ||
157 | color: #1477bd; | ||
158 | margin: 10px; | ||
159 | border: solid 2.5px #1477bd; | ||
160 | background-color: #e6f5ff; | ||
161 | } | ||
162 | } | ||
163 | |||
164 | &-submit { | ||
165 | margin: 80px auto 0; | ||
166 | width: 450px; | ||
167 | height: 88px; | ||
168 | line-height: 88px; | ||
169 | border-radius: 44px; | ||
170 | background-image: linear-gradient(95deg, #2baedf, #1376bc); | ||
171 | |||
172 | font-size: 36px; | ||
173 | text-align: center; | ||
174 | color: #ffffff; | ||
71 | } | 175 | } |
72 | } | 176 | } |
73 | } | 177 | } | ... | ... |
... | @@ -8,23 +8,35 @@ | ... | @@ -8,23 +8,35 @@ |
8 | <view class="form"> | 8 | <view class="form"> |
9 | <view class="form-item"> | 9 | <view class="form-item"> |
10 | <view class="label">用户姓名</view> | 10 | <view class="label">用户姓名</view> |
11 | <view class="val">深圳市龙岗区龙信工业区A栋</view> | 11 | <input class="val" bindinput="bindNameInput" placeholder="请输入姓名" /> |
12 | </view> | 12 | </view> |
13 | <view class="form-item"> | 13 | <view class="form-item"> |
14 | <view class="label">联系方式</view> | 14 | <view class="label">联系方式</view> |
15 | <view class="val">深圳市龙岗区龙信工业区A栋</view> | 15 | <input class="val" bindinput="bindPhoneInput" placeholder="请输入联系方式" type="number" /> |
16 | </view> | 16 | </view> |
17 | <view class="form-item"></view> | 17 | <textarea class="textarea" bindinput="bindMessageContantInput" maxlength="500" placeholder="不超过500字"></textarea> |
18 | <textarea class="textarea" placeholder="不超过500字"></textarea> | 18 | <!-- 图片上传 --> |
19 | <view class="upload"> | 19 | <view class="upload"> |
20 | <view class="tips">上传照片</view> | 20 | <view class="tips">上传照片</view> |
21 | <!-- <view class="up"></view> --> | 21 | <view class="upload-file"> |
22 | <view class="upload-file-item" wx:for="{{files}}" wx:key="{{index}}"> | ||
23 | <image class="thumb" src="{{item.path}}" mode="aspectFill" /> | ||
24 | <span class="iconfont iconclose1 remove" data-index="{{index}}" bindtap="remove"></span> | ||
25 | </view> | ||
26 | <view class="upload-file-item" wx:if="{{files.length < maxImg}}"> | ||
27 | <image class="thumb" src="../../image/icon/icon-upload.png" mode="aspectFill" bindtap="onUploadHandler" /> | ||
28 | </view> | ||
29 | </view> | ||
22 | </view> | 30 | </view> |
23 | </view> | 31 | </view> |
24 | </view> | 32 | </view> |
33 | <view class="submit-btn" bindtap="onSubmitHandler">提交</view> | ||
25 | </view> | 34 | </view> |
26 | </view> | 35 | </view> |
27 | </view> | 36 | </view> |
28 | <van-popup show="{{ authorizeVisible }}"> | 37 | <van-popup show="{{ authorizeVisible }}"> |
29 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 38 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
30 | </van-popup> | 39 | </van-popup> |
40 | <van-popup show="{{ commonTipsCompVisible }}"> | ||
41 | <common-tips-comp bind:evtcomp="evtcomp" inner-title="{{innerTitle}}" inner-text="{{innerText}}"></common-tips-comp> | ||
42 | </van-popup> | ... | ... |
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
1 | let app = getApp(); | 5 | let app = getApp(); |
2 | Page({ | 6 | Page({ |
3 | data: { | 7 | data: { |
4 | authorizeVisible: false, | 8 | authorizeVisible: false, |
9 | contactInfo: {} | ||
5 | }, | 10 | }, |
6 | onShareAppMessage() {}, | 11 | onShareAppMessage() {}, |
7 | showAuth() { | 12 | showAuth() { |
... | @@ -9,5 +14,38 @@ Page({ | ... | @@ -9,5 +14,38 @@ Page({ |
9 | authorizeVisible: true | 14 | authorizeVisible: true |
10 | }) | 15 | }) |
11 | }, | 16 | }, |
12 | onLoad(options) {} | 17 | onLoad(options) { |
18 | this.initData(); | ||
19 | }, | ||
20 | initData() { | ||
21 | this.queryContact(); | ||
22 | }, | ||
23 | // 去联系我们表单页面 | ||
24 | onContactUserTableHandler() { | ||
25 | app.router.push({ | ||
26 | path: "contactTable" | ||
27 | }) | ||
28 | }, | ||
29 | // 打电话 | ||
30 | onMakePhoneCallHandler(evt) { | ||
31 | let phoneNumber = getBindtapData(evt); | ||
32 | wx.makePhoneCall({ | ||
33 | phoneNumber: phoneNumber | ||
34 | }) | ||
35 | }, | ||
36 | // 联系我们 | ||
37 | queryContact() { | ||
38 | return new Promise((resolve, reject) => { | ||
39 | app.post({ | ||
40 | url: app.api.contact, | ||
41 | sid: false | ||
42 | }).then((result) => { | ||
43 | this.setData({ | ||
44 | contactInfo: result | ||
45 | }) | ||
46 | console.log("result:", result); | ||
47 | }) | ||
48 | resolve(); | ||
49 | }); | ||
50 | } | ||
13 | }) | 51 | }) | ... | ... |
... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
5 | <view class="top-space"></view> | 5 | <view class="top-space"></view> |
6 | <view class="content"> | 6 | <view class="content"> |
7 | <!-- banner --> | 7 | <!-- banner --> |
8 | <view class="banner"> | 8 | <view class="banner" bindtap="onContactUserTableHandler"> |
9 | <image class="image" mode="widthFix" src="../../image/contact/contact-c1.png" /> | 9 | <image class="image" mode="widthFix" src="../../image/contact/contact-c1.png" /> |
10 | </view> | 10 | </view> |
11 | <!-- 表单 --> | 11 | <!-- 表单 --> |
... | @@ -13,29 +13,29 @@ | ... | @@ -13,29 +13,29 @@ |
13 | <view class="form"> | 13 | <view class="form"> |
14 | <view class="form-item"> | 14 | <view class="form-item"> |
15 | <view class="label">生产地址</view> | 15 | <view class="label">生产地址</view> |
16 | <view class="val">深圳市龙岗区龙信工业区A栋</view> | 16 | <text class="val">{{contactInfo.contactCompany}}</text> |
17 | </view> | 17 | </view> |
18 | <view class="form-item"> | 18 | <view class="form-item"> |
19 | <view class="label">电话</view> | 19 | <view class="label">电话</view> |
20 | <view class="val">0755-28839576</view> | 20 | <text class="val">{{contactInfo.contactTel}}</text> |
21 | <view class="exts"> | 21 | <view class="exts" bindtap="onMakePhoneCallHandler" data-data="{{contactInfo.contactTel}}"> |
22 | <image class="icon" mode="aspectFit" src="../../image/contact/contact-c2.png" /> | 22 | <image class="icon" mode="aspectFit" src="../../image/contact/contact-c2.png" /> |
23 | </view> | 23 | </view> |
24 | </view> | 24 | </view> |
25 | <view class="form-item"> | 25 | <view class="form-item"> |
26 | <view class="label">手机</view> | 26 | <view class="label">手机</view> |
27 | <view class="val">0755-28839576</view> | 27 | <text class="val">{{contactInfo.contactPhone}}</text> |
28 | <view class="exts"> | 28 | <view class="exts" bindtap="onMakePhoneCallHandler" data-data="{{contactInfo.contactPhone}}"> |
29 | <image class="icon" mode="aspectFit" src="../../image/contact/contact-c2.png" /> | 29 | <image class="icon" mode="aspectFit" src="../../image/contact/contact-c2.png" /> |
30 | </view> | 30 | </view> |
31 | </view> | 31 | </view> |
32 | <view class="form-item"> | 32 | <view class="form-item"> |
33 | <view class="label">网址</view> | 33 | <view class="label">网址</view> |
34 | <view class="val net">www.zgzlzm.com</view> | 34 | <text class="val net">{{contactInfo.contactNetwork}}</text> |
35 | </view> | 35 | </view> |
36 | <view class="form-item"> | 36 | <view class="form-item"> |
37 | <view class="label">E-mail</view> | 37 | <view class="label">E-mail</view> |
38 | <view class="val net">www.zgzlzm.com</view> | 38 | <text class="val net">{{contactInfo.contactEmail}}</text> |
39 | </view> | 39 | </view> |
40 | </view> | 40 | </view> |
41 | </view> | 41 | </view> | ... | ... |
... | @@ -103,6 +103,11 @@ Page({ | ... | @@ -103,6 +103,11 @@ Page({ |
103 | } | 103 | } |
104 | }) | 104 | }) |
105 | }, | 105 | }, |
106 | hideMask() { | ||
107 | this.setData({ | ||
108 | productDetailVisible: false | ||
109 | }) | ||
110 | }, | ||
106 | // 子组件事件 | 111 | // 子组件事件 |
107 | evtcomp(evt) { | 112 | evtcomp(evt) { |
108 | let { | 113 | let { |
... | @@ -112,9 +117,7 @@ Page({ | ... | @@ -112,9 +117,7 @@ Page({ |
112 | switch (name) { | 117 | switch (name) { |
113 | 118 | ||
114 | case "_evt_hide_product_detail_mask": | 119 | case "_evt_hide_product_detail_mask": |
115 | this.setData({ | 120 | this.hideMask(); |
116 | productDetailVisible: false | ||
117 | }) | ||
118 | break; | 121 | break; |
119 | 122 | ||
120 | default: | 123 | default: | ... | ... |
1 | @import '../../assets/scss/mixins'; | 1 | @import '../../assets/scss/mixins'; |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | $contentWidth:690px; | ||
5 | |||
4 | .page { | 6 | .page { |
5 | .bgc {} | 7 | padding-bottom: $pageBottom; |
8 | |||
9 | .bgc { | ||
10 | background: #3680EB; | ||
11 | } | ||
6 | 12 | ||
7 | .bg {} | 13 | .bg {} |
8 | 14 | ||
9 | .main { | 15 | .main { |
16 | font-size: 28px; | ||
17 | |||
10 | .top-space { | 18 | .top-space { |
11 | height: 0px; | 19 | height: 40px; |
12 | } | 20 | } |
13 | 21 | ||
14 | .content { | 22 | .content { |
15 | position: relative; | 23 | position: relative; |
24 | |||
25 | .card { | ||
26 | margin: 0 auto; | ||
27 | padding: 20px 0 74px; | ||
28 | width: $contentWidth; | ||
29 | background: #FFFFFF; | ||
30 | box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.10); | ||
31 | border-radius: 10px; | ||
32 | text-align: center; | ||
33 | font-size: 32px; | ||
34 | |||
35 | .avatar { | ||
36 | width: 120px; | ||
37 | height: 120px; | ||
38 | border-radius: 120px; | ||
39 | } | ||
40 | |||
41 | .nickname { | ||
42 | margin: 8px 0 0; | ||
43 | font-size: 36px; | ||
44 | color: #3680EB; | ||
45 | } | ||
46 | |||
47 | .qrcode { | ||
48 | margin-top: 40px; | ||
49 | width: 440px; | ||
50 | height: 440px; | ||
51 | } | ||
52 | |||
53 | .t1 { | ||
54 | margin-top: 20px; | ||
55 | color: #666666; | ||
56 | } | ||
57 | |||
58 | .t2 { | ||
59 | margin-top: 40px; | ||
60 | } | ||
61 | } | ||
62 | |||
63 | .tips { | ||
64 | margin: 20px auto 0; | ||
65 | color: #FFFFFF; | ||
66 | text-align: center; | ||
67 | } | ||
68 | |||
69 | .btn-wrap { | ||
70 | margin-top: 40px; | ||
71 | |||
72 | .btn { | ||
73 | margin: 0 auto; | ||
74 | @include btc(320px, 84px); | ||
75 | border-radius: 8px; | ||
76 | background: #FFFFFF; | ||
77 | color: #3680EB; | ||
78 | font-size: 32px; | ||
79 | } | ||
80 | } | ||
16 | } | 81 | } |
17 | } | 82 | } |
18 | } | 83 | } | ... | ... |
... | @@ -3,9 +3,21 @@ | ... | @@ -3,9 +3,21 @@ |
3 | <view class="app__bg bg"></view> | 3 | <view class="app__bg bg"></view> |
4 | <view class="app__content main"> | 4 | <view class="app__content main"> |
5 | <view class="top-space"></view> | 5 | <view class="top-space"></view> |
6 | <view class="content"></view> | 6 | <view class="content"> |
7 | <view class="card"> | ||
8 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
9 | <view class="nickname">昵称填充</view> | ||
10 | <image class="qrcode" mode="widthFix" src="../../image/icon/icon-default-qrcode.png" /> | ||
11 | <view class="t1">深士照明</view> | ||
12 | <view class="t1 t2">扫码即获专属积分,兑换超值奖品</view> | ||
13 | </view> | ||
14 | <view class="tips">分享邀请好友加入,赢取推广积分</view> | ||
15 | <view class="btn-wrap"> | ||
16 | <view class="btn">保存图片</view> | ||
17 | </view> | ||
18 | </view> | ||
7 | </view> | 19 | </view> |
8 | </view> | 20 | </view> |
9 | <van-popup show="{{ authorizeVisible }}" > | 21 | <van-popup show="{{ authorizeVisible }}"> |
10 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 22 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
11 | </van-popup> | 23 | </van-popup> | ... | ... |
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
1 | let app = getApp(); | 5 | let app = getApp(); |
2 | Page({ | 6 | Page({ |
3 | data: { | 7 | data: { |
4 | authorizeVisible: false, | 8 | authorizeVisible: false, |
9 | navIndex: 0, | ||
5 | }, | 10 | }, |
6 | onShareAppMessage() {}, | 11 | onShareAppMessage() {}, |
7 | showAuth() { | 12 | showAuth() { |
... | @@ -9,5 +14,27 @@ Page({ | ... | @@ -9,5 +14,27 @@ Page({ |
9 | authorizeVisible: true | 14 | authorizeVisible: true |
10 | }) | 15 | }) |
11 | }, | 16 | }, |
12 | onLoad(options) {} | 17 | onLoad(options) {}, |
18 | initData() { | ||
19 | |||
20 | }, | ||
21 | |||
22 | /** | ||
23 | * 选择导航 | ||
24 | * @param {*} evt | ||
25 | */ | ||
26 | onNavSelectHandler(evt) { | ||
27 | let navIndex = this.data.navIndex; | ||
28 | let curIndex = getBindtapData(evt, "index"); | ||
29 | if (navIndex != curIndex) { | ||
30 | this.setData({ | ||
31 | navIndex: curIndex | ||
32 | }) | ||
33 | } | ||
34 | }, | ||
35 | |||
36 | // 滚动到底部 分页加载 | ||
37 | onRankScrolltolower(e) { | ||
38 | |||
39 | } | ||
13 | }) | 40 | }) | ... | ... |
1 | @import '../../assets/scss/mixins'; | 1 | @import '../../assets/scss/mixins'; |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | $contentWidth:690px; | ||
5 | |||
4 | .page { | 6 | .page { |
5 | .bgc {} | 7 | padding-bottom: $pageBottom; |
8 | |||
9 | .bgc { | ||
10 | background: #3680EB; | ||
11 | } | ||
6 | 12 | ||
7 | .bg {} | 13 | .bg { |
14 | position: absolute; | ||
15 | width: 750px; | ||
16 | height: 1162px; | ||
17 | } | ||
8 | 18 | ||
9 | .main { | 19 | .main { |
20 | font-size: 28px; | ||
21 | color: #333333; | ||
22 | |||
10 | .top-space { | 23 | .top-space { |
11 | height: 0px; | 24 | height: 20px; |
12 | } | 25 | } |
13 | 26 | ||
14 | .content { | 27 | .content { |
15 | position: relative; | 28 | position: relative; |
29 | |||
30 | // 导航 | ||
31 | .nav { | ||
32 | display: flex; | ||
33 | justify-content: space-between; | ||
34 | position: relative; | ||
35 | margin: 0 auto; | ||
36 | width: $contentWidth; | ||
37 | |||
38 | &-item { | ||
39 | width: 50%; | ||
40 | |||
41 | .tit { | ||
42 | text-align: center; | ||
43 | font-size: 32px; | ||
44 | color: rgba($color: #FFFFFF, $alpha: 0.5); | ||
45 | } | ||
46 | |||
47 | .line { | ||
48 | margin: 12px auto 0; | ||
49 | width: 0px; | ||
50 | height: 6px; | ||
51 | border-radius: 4px; | ||
52 | background: #FFFFFF; | ||
53 | transition: width 0.2s ease; | ||
54 | } | ||
55 | } | ||
56 | |||
57 | &-item-act { | ||
58 | .tit { | ||
59 | color: rgba($color: #FFFFFF, $alpha: 1); | ||
60 | } | ||
61 | |||
62 | .line { | ||
63 | width: 60px; | ||
64 | } | ||
65 | } | ||
66 | } | ||
67 | |||
68 | // 排行榜 | ||
69 | .rank { | ||
70 | margin: 20px auto 0; | ||
71 | min-height: 1000px; | ||
72 | |||
73 | // 功能区 | ||
74 | &-func { | ||
75 | position: relative; | ||
76 | display: flex; | ||
77 | justify-content: space-between; | ||
78 | |||
79 | &-item { | ||
80 | width: 50%; | ||
81 | |||
82 | // .pubish { | ||
83 | display: flex; | ||
84 | align-items: center; | ||
85 | flex-wrap: wrap; | ||
86 | |||
87 | .t1 { | ||
88 | color: #666666; | ||
89 | font-size: 24px; | ||
90 | padding: 5px 0; | ||
91 | } | ||
92 | |||
93 | .t2 {} | ||
94 | |||
95 | .c1 { | ||
96 | color: #FF7900; | ||
97 | } | ||
98 | |||
99 | .c2 { | ||
100 | color: #3680EB; | ||
101 | } | ||
102 | |||
103 | // } | ||
104 | |||
105 | .mode { | ||
106 | width: 220px; | ||
107 | height: 56px; | ||
108 | background: #F5F8FE; | ||
109 | border-radius: 28px; | ||
110 | font-size: 26px; | ||
111 | color: #3F85EB; | ||
112 | @extend .bb; | ||
113 | padding: 10px 32px; | ||
114 | } | ||
115 | } | ||
116 | } | ||
117 | |||
118 | // 标题 | ||
119 | .tit { | ||
120 | width: 630px; | ||
121 | height: 40px; | ||
122 | font-size: 20px; | ||
123 | color: #3680EB; | ||
124 | background: rgba($color: #3680EB, $alpha: 0.05); | ||
125 | border-radius: 20px; | ||
126 | margin: 26px auto 0; | ||
127 | display: flex; | ||
128 | |||
129 | .tt { | ||
130 | height: 40px; | ||
131 | line-height: 40px; | ||
132 | } | ||
133 | |||
134 | .t1 { | ||
135 | margin-left: 18px; | ||
136 | } | ||
137 | |||
138 | .t2 { | ||
139 | margin-left: 172px; | ||
140 | } | ||
141 | |||
142 | .t3 { | ||
143 | margin-left: 238px; | ||
144 | } | ||
145 | } | ||
146 | |||
147 | // 排行item | ||
148 | .item-wrap { | ||
149 | margin: 16px auto 0; | ||
150 | height: 630px; | ||
151 | } | ||
152 | |||
153 | // 省略号 | ||
154 | .etc { | ||
155 | text-align: center; | ||
156 | height: 82px; | ||
157 | line-height: 82px; | ||
158 | font-size: 32px; | ||
159 | color: #333333; | ||
160 | } | ||
161 | |||
162 | .my-rank { | ||
163 | background: #F5F8FE; | ||
164 | |||
165 | .rank-item { | ||
166 | height: 112px; | ||
167 | // border-bottom: none; | ||
168 | } | ||
169 | } | ||
170 | |||
171 | // 排行item | ||
172 | .rank-item { | ||
173 | display: flex; | ||
174 | justify-content: space-between; | ||
175 | border-bottom: solid 1px #dddddd; | ||
176 | $itemHeight: 104px; | ||
177 | height: $itemHeight; | ||
178 | |||
179 | .no { | ||
180 | width: 72px; | ||
181 | padding-right: 76px; | ||
182 | @extend .fcc; | ||
183 | // text-align: center; | ||
184 | // height: $itemHeight; | ||
185 | // line-height: $itemHeight; | ||
186 | |||
187 | .medal { | ||
188 | width: 52px; | ||
189 | height: 68px; | ||
190 | } | ||
191 | } | ||
192 | |||
193 | .user { | ||
194 | flex: 1; | ||
195 | display: flex; | ||
196 | align-items: center; | ||
197 | font-size: 32px; | ||
198 | |||
199 | .avatar { | ||
200 | width: 72px; | ||
201 | height: 72px; | ||
202 | margin-right: 12px; | ||
203 | } | ||
204 | } | ||
205 | |||
206 | .integral { | ||
207 | color: #666666; | ||
208 | width: 124px; | ||
209 | display: flex; | ||
210 | align-items: center; | ||
211 | // @extend .fcc; | ||
212 | // height: $itemHeight; | ||
213 | // line-height: $itemHeight; | ||
214 | } | ||
215 | } | ||
216 | |||
217 | .rank-item-first { | ||
218 | .integral { | ||
219 | color: #FF7900; | ||
220 | } | ||
221 | } | ||
222 | |||
223 | } | ||
224 | |||
225 | // 按钮容器 | ||
226 | .btn-wrap { | ||
227 | position: relative; | ||
228 | margin: 20px auto 0; | ||
229 | |||
230 | .btn { | ||
231 | position: relative; | ||
232 | width: 220px; | ||
233 | height: 64px; | ||
234 | line-height: 64px; | ||
235 | border-radius: 42px; | ||
236 | background: #FFFFFF; | ||
237 | margin: 0 auto; | ||
238 | color: #3680EB; | ||
239 | text-align: right; | ||
240 | padding-right: 32px; | ||
241 | @extend .bb; | ||
242 | |||
243 | .integral { | ||
244 | position: absolute; | ||
245 | left: -52px; | ||
246 | top: -20px; | ||
247 | width: 148px; | ||
248 | height: 108px; | ||
249 | } | ||
250 | } | ||
251 | } | ||
16 | } | 252 | } |
17 | } | 253 | } |
18 | } | 254 | } | ... | ... |
1 | <view class="page"> | 1 | <view class="page"> |
2 | <view class="app__bgc bgc"></view> | 2 | <view class="app__bgc bgc"></view> |
3 | <view class="app__bg bg"></view> | 3 | <!-- <view class="app__bg bg"></view> --> |
4 | <image class="bg" mode="widthFix" src="../../image/rank/rank-c1.png" /> | ||
4 | <view class="app__content main"> | 5 | <view class="app__content main"> |
5 | <view class="top-space"></view> | 6 | <view class="top-space"></view> |
6 | <view class="content"></view> | 7 | <view class="content"> |
8 | <!-- 导航 --> | ||
9 | <view class="nav"> | ||
10 | <view bindtap="onNavSelectHandler" data-index="0" class="nav-item {{navIndex == 0 ? 'nav-item-act':''}}"> | ||
11 | <view class="tit">推广积分排行</view> | ||
12 | <view class="line"></view> | ||
13 | </view> | ||
14 | <view bindtap="onNavSelectHandler" data-index="1" class="nav-item {{navIndex == 1 ? 'nav-item-act':''}}"> | ||
15 | <view class="tit">总积分排行</view> | ||
16 | <view class="line"></view> | ||
17 | </view> | ||
18 | </view> | ||
19 | <!-- 排行 --> | ||
20 | <view class="border rank"> | ||
21 | <!-- 功能区 --> | ||
22 | <view class="rank-func"> | ||
23 | <view class="rank-func-item"> | ||
24 | <view class="pubish"> | ||
25 | <view class="t1"> | ||
26 | 本轮周期: | ||
27 | <span>7.1-7.14</span> | ||
28 | </view> | ||
29 | <!-- <view class="t1 t2"> | ||
30 | 本轮奖品: | ||
31 | <span class="c1">88元红包</span> | ||
32 | </view> --> | ||
33 | <view class="t1 t2"> | ||
34 | 我的名次: | ||
35 | <span class="c2">12</span> | ||
36 | 名 | ||
37 | </view> | ||
38 | </view> | ||
39 | </view> | ||
40 | <view class="rank-func-item pubish fje"> | ||
41 | <view class="mode">查看历史排行</view> | ||
42 | </view> | ||
43 | </view> | ||
44 | <!-- 标题 --> | ||
45 | <view class="tit"> | ||
46 | <view class="tt t1">名次</view> | ||
47 | <view class="tt t2">名称</view> | ||
48 | <view class="tt t3">积分</view> | ||
49 | </view> | ||
50 | <!-- 排行item --> | ||
51 | <scroll-view bindscrolltolower="onRankScrolltolower" scroll-y="{{true}}" class="item-wrap"> | ||
52 | <view class="rank-item rank-item-first"> | ||
53 | <view class="no"> | ||
54 | <image class="medal" mode="aspectFit" src="../../image/icon/icon-medal.png" /> | ||
55 | </view> | ||
56 | <view class="user"> | ||
57 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
58 | nickname | ||
59 | </view> | ||
60 | <view class="integral">1000</view> | ||
61 | </view> | ||
62 | <view class="rank-item"> | ||
63 | <view class="no">2</view> | ||
64 | <view class="user"> | ||
65 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
66 | nickname | ||
67 | </view> | ||
68 | <view class="integral">1000</view> | ||
69 | </view> | ||
70 | <view class="rank-item"> | ||
71 | <view class="no">2</view> | ||
72 | <view class="user"> | ||
73 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
74 | nickname | ||
75 | </view> | ||
76 | <view class="integral">1000</view> | ||
77 | </view> | ||
78 | <view class="rank-item"> | ||
79 | <view class="no">2</view> | ||
80 | <view class="user"> | ||
81 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
82 | nickname | ||
83 | </view> | ||
84 | <view class="integral">1000</view> | ||
85 | </view> | ||
86 | <view class="rank-item"> | ||
87 | <view class="no">2</view> | ||
88 | <view class="user"> | ||
89 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
90 | nickname | ||
91 | </view> | ||
92 | <view class="integral">1000</view> | ||
93 | </view> | ||
94 | <view class="rank-item"> | ||
95 | <view class="no">2</view> | ||
96 | <view class="user"> | ||
97 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
98 | nickname | ||
99 | </view> | ||
100 | <view class="integral">1000</view> | ||
101 | </view> | ||
102 | <view class="rank-item"> | ||
103 | <view class="no">2</view> | ||
104 | <view class="user"> | ||
105 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
106 | nickname | ||
107 | </view> | ||
108 | <view class="integral">1000</view> | ||
109 | </view> | ||
110 | </scroll-view> | ||
111 | <!-- 省略号 --> | ||
112 | <view class="etc">...</view> | ||
113 | <!-- 我的排名 --> | ||
114 | <view class="my-rank"> | ||
115 | <view class="rank-item"> | ||
116 | <view class="no"> | ||
117 | 1 | ||
118 | <!-- <image class="medal" mode="aspectFit" src="../../image/icon/icon-medal.png" /> --> | ||
119 | </view> | ||
120 | <view class="user"> | ||
121 | <image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" /> | ||
122 | nickname | ||
123 | </view> | ||
124 | <view class="integral">300</view> | ||
125 | </view> | ||
126 | </view> | ||
127 | </view> | ||
128 | <!-- 我的奖励按钮 --> | ||
129 | <view class="btn-wrap"> | ||
130 | <view class="btn"> | ||
131 | <image class="integral" mode="aspectFit" src="../../image/icon/icon-rank-rewrad.png" /> | ||
132 | 我的奖励 | ||
133 | </view> | ||
134 | </view> | ||
135 | </view> | ||
7 | </view> | 136 | </view> |
8 | </view> | 137 | </view> |
9 | <van-popup show="{{ authorizeVisible }}" > | 138 | <van-popup show="{{ authorizeVisible }}"> |
10 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 139 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
11 | </van-popup> | 140 | </van-popup> | ... | ... |
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
1 | let app = getApp(); | 5 | let app = getApp(); |
2 | Page({ | 6 | Page({ |
3 | data: { | 7 | data: { |
4 | authorizeVisible: false, | 8 | authorizeVisible: false, |
5 | userInfo: {}, | 9 | commonTipsCompVisible: false, |
10 | signTipsCompVisible: false, | ||
11 | innerTitle: "留言提交成功!", | ||
12 | innerText: "感谢您宝贵的意见\n我们将尽快回电或回复信息", | ||
13 | // innerButton: "", | ||
14 | userInfo: {}, // 用户数据 | ||
15 | signInfo: [], // 签到数据 | ||
16 | signNum: 0, // 签到天数 | ||
6 | }, | 17 | }, |
7 | onShareAppMessage() {}, | 18 | onShareAppMessage() {}, |
8 | showAuth() { | 19 | showAuth() { |
... | @@ -17,8 +28,70 @@ Page({ | ... | @@ -17,8 +28,70 @@ Page({ |
17 | this.initData(); | 28 | this.initData(); |
18 | }, | 29 | }, |
19 | initData() { | 30 | initData() { |
20 | this.queryMember(); | 31 | this.queryMember().then((result) => { |
32 | this.querySignInfo(); | ||
33 | }); | ||
34 | }, | ||
35 | |||
36 | /** | ||
37 | * 点击签到 | ||
38 | */ | ||
39 | onSignHandler(evt) { | ||
40 | console.log("onSignHandler"); | ||
41 | return new Promise((resolve, reject) => { | ||
42 | app.post({ | ||
43 | toast: false, | ||
44 | url: app.api.sign, | ||
45 | |||
46 | }).then((result) => { | ||
47 | this.querySignInfo().then((result2) => { | ||
48 | wx.showModal({ | ||
49 | content: '签到成功', | ||
50 | showCancel: false, | ||
51 | success(res) {} | ||
52 | }) | ||
53 | }) | ||
54 | }).catch((err) => { | ||
55 | let { | ||
56 | code | ||
57 | } = err; | ||
58 | // 用户未审核 | ||
59 | if (code == 1002) { | ||
60 | this.setData({ | ||
61 | signTipsCompVisible: true | ||
62 | }) | ||
63 | } | ||
64 | }); | ||
65 | }); | ||
21 | }, | 66 | }, |
67 | |||
68 | /** | ||
69 | * 我的二维码 | ||
70 | */ | ||
71 | onMyQrcodeHandler(evt) { | ||
72 | app.router.push({ | ||
73 | path: "myQrcode" | ||
74 | }) | ||
75 | }, | ||
76 | |||
77 | /** | ||
78 | * 排行榜 | ||
79 | */ | ||
80 | onRankHandler(evt) { | ||
81 | app.router.push({ | ||
82 | path: "rank" | ||
83 | }) | ||
84 | }, | ||
85 | |||
86 | /** | ||
87 | * 点击联系我们 | ||
88 | */ | ||
89 | onContactUsHandler(evt) { | ||
90 | app.router.push({ | ||
91 | path: "contact" | ||
92 | }) | ||
93 | }, | ||
94 | |||
22 | /** | 95 | /** |
23 | * 获取会员信息 | 96 | * 获取会员信息 |
24 | */ | 97 | */ |
... | @@ -36,6 +109,49 @@ Page({ | ... | @@ -36,6 +109,49 @@ Page({ |
36 | }); | 109 | }); |
37 | }, | 110 | }, |
38 | 111 | ||
112 | /** | ||
113 | * 签到信息 | ||
114 | */ | ||
115 | querySignInfo() { | ||
116 | return new Promise((resolve, reject) => { | ||
117 | app.post({ | ||
118 | url: app.api.signInfo, | ||
119 | data: {} | ||
120 | }).then((result) => { | ||
121 | let signNum = result.signRecord && result.signRecord.length || 0; | ||
122 | console.log("signNum:", signNum); | ||
123 | let resultList = result.signRecord || []; | ||
124 | let signInfo = []; | ||
125 | for (let index = 0; index < 7; index++) { | ||
126 | signInfo.push(resultList[index] ? resultList[index] : ""); | ||
127 | } | ||
128 | this.setData({ | ||
129 | signInfo: signInfo, | ||
130 | signNum: signNum | ||
131 | }) | ||
132 | console.log("signInfo:", signInfo); | ||
133 | resolve(); | ||
134 | }) | ||
135 | }); | ||
136 | }, | ||
137 | |||
138 | /** | ||
139 | * 去验证 | ||
140 | */ | ||
141 | toVipLogin() { | ||
142 | app.router.push({ | ||
143 | path: "vipLogin" | ||
144 | }) | ||
145 | }, | ||
146 | |||
147 | // 隐藏蒙层 | ||
148 | hideMask() { | ||
149 | this.setData({ | ||
150 | authorizeVisible: false, | ||
151 | commonTipsCompVisible: false, | ||
152 | signTipsCompVisible: false | ||
153 | }) | ||
154 | }, | ||
39 | // 子组件事件 | 155 | // 子组件事件 |
40 | evtcomp(evt) { | 156 | evtcomp(evt) { |
41 | let { | 157 | let { |
... | @@ -44,11 +160,26 @@ Page({ | ... | @@ -44,11 +160,26 @@ Page({ |
44 | } = evt.detail; | 160 | } = evt.detail; |
45 | switch (name) { | 161 | switch (name) { |
46 | 162 | ||
163 | // 授权完毕 | ||
47 | case "_evt_auth_complete": | 164 | case "_evt_auth_complete": |
48 | this.initData(); | 165 | this.initData(); |
166 | this.hideMask(); | ||
167 | break; | ||
168 | |||
169 | // 通用弹窗组件按钮 | ||
170 | case "_evt_common_comp_button": | ||
171 | this.hideMask(); | ||
172 | break; | ||
173 | |||
174 | // 去验证 | ||
175 | case "_evt_to_verify": | ||
176 | this.hideMask(); | ||
177 | this.toVipLogin(); | ||
49 | break; | 178 | break; |
50 | 179 | ||
180 | // 隐藏弹窗 | ||
51 | case "_evt_hide_mask": | 181 | case "_evt_hide_mask": |
182 | this.hideMask(); | ||
52 | break; | 183 | break; |
53 | 184 | ||
54 | default: | 185 | default: | ... | ... |
... | @@ -10,20 +10,22 @@ | ... | @@ -10,20 +10,22 @@ |
10 | <view class="user-info"> | 10 | <view class="user-info"> |
11 | <image class="avatar" mode="aspectFill" src="{{userInfo.avatar}}" /> | 11 | <image class="avatar" mode="aspectFill" src="{{userInfo.avatar}}" /> |
12 | <view class="wrap1"> | 12 | <view class="wrap1"> |
13 | <view class="name">{{userInfo.realName}}</view> | 13 | <view class="name">{{userInfo.realName ? userInfo.realName : userInfo.nickname}}</view> |
14 | <view wx:if="{{userInfo.auditStatus == 'authorization'}}" class="vip vip-check">积分会员</view> | 14 | <view wx:if="{{userInfo.auditStatus == 'authorization'}}" class="vip vip-check"> |
15 | <view wx:else class="vip">未验证 ></view> | 15 | 积分会员 |
16 | </view> | ||
17 | <view wx:else class="vip" bindtap="toVipLogin">未验证 ></view> | ||
16 | </view> | 18 | </view> |
17 | </view> | 19 | </view> |
18 | <!-- 右边栏 --> | 20 | <!-- 右边栏 --> |
19 | <view class="user-data"> | 21 | <view class="user-data"> |
20 | <view class="wrap"> | 22 | <view class="wrap"> |
21 | <view class="t1">1345</view> | 23 | <view class="t1">{{userInfo.memberPoints}}</view> |
22 | <view class="t2">我的积分</view> | 24 | <view class="t2">我的积分</view> |
23 | </view> | 25 | </view> |
24 | <view class="line"></view> | 26 | <view class="line"></view> |
25 | <view class="wrap"> | 27 | <view class="wrap"> |
26 | <view class="t1">20</view> | 28 | <view class="t1">{{userInfo.promotionNum}}</view> |
27 | <view class="t2">推广数据</view> | 29 | <view class="t2">推广数据</view> |
28 | </view> | 30 | </view> |
29 | </view> | 31 | </view> |
... | @@ -44,30 +46,18 @@ | ... | @@ -44,30 +46,18 @@ |
44 | </view> | 46 | </view> |
45 | <!-- 7天签到 --> | 47 | <!-- 7天签到 --> |
46 | <view class="check"> | 48 | <view class="check"> |
47 | <view class="check-item check-item-act"> | 49 | <view wx:for="{{signInfo}}" wx:key="{{index}}" class="check-item"> |
48 | <view class="no">1</view> | 50 | <view class="no">{{index+1}}</view> |
49 | <view class="icon"> | ||
50 | <image mode="aspectFit" src="../../image/icon/icon-check.png" /> | ||
51 | <!-- <image mode="aspectFit" src="../../image/icon/icon-integral.png" /> --> | ||
52 | <!-- <image mode="aspectFit" src="../../image/icon/icon-red-package.png" /> --> | ||
53 | </view> | ||
54 | </view> | ||
55 | <view class="check-item "> | ||
56 | <view class="no">2</view> | ||
57 | <view class="icon"> | 51 | <view class="icon"> |
58 | <image mode="aspectFit" src="../../image/icon/icon-integral.png" /> | 52 | <image wx:if="{{item}}" mode="aspectFit" src="../../image/icon/icon-check.png" /> |
59 | </view> | 53 | <image wx:elif="{{index == signInfo.length -1}}" mode="aspectFit" src="../../image/icon/icon-red-package.png" /> |
60 | </view> | 54 | <image wx:else mode="aspectFit" src="../../image/icon/icon-integral.png" /> |
61 | <view class="check-item "> | ||
62 | <view class="no">3</view> | ||
63 | <view class="icon"> | ||
64 | <image mode="aspectFit" src="../../image/icon/icon-red-package.png" /> | ||
65 | </view> | 55 | </view> |
66 | </view> | 56 | </view> |
67 | </view> | 57 | </view> |
68 | <!-- 签到按钮 --> | 58 | <!-- 签到按钮 --> |
69 | <!-- <view class="sign-btn ">签到 (第4天)</view> --> | 59 | <view wx:if="{{userInfo.isSign == 1}}" class="sign-btn sign-btn-disable">已签到</view> |
70 | <view class="sign-btn sign-btn-disable">已签到</view> | 60 | <view wx:else class="sign-btn" bindtap="onSignHandler">签到 (第{{signNum}}天)</view> |
71 | </view> | 61 | </view> |
72 | <!-- 订单区 --> | 62 | <!-- 订单区 --> |
73 | <view class="border order "> | 63 | <view class="border order "> |
... | @@ -105,12 +95,12 @@ | ... | @@ -105,12 +95,12 @@ |
105 | <!-- 功能区 --> | 95 | <!-- 功能区 --> |
106 | <view class="border func"> | 96 | <view class="border func"> |
107 | <view class="my-qrcode"> | 97 | <view class="my-qrcode"> |
108 | <image class="qrcode" mode="widthFix" src="../../image/icon/icon-qrcode.png" /> | 98 | <image bindtap="onMyQrcodeHandler" class="qrcode" mode="widthFix" src="../../image/icon/icon-qrcode.png" /> |
109 | <view class="t1">我的二维码</view> | 99 | <view class="t1">我的二维码</view> |
110 | </view> | 100 | </view> |
111 | <!-- 功能区 --> | 101 | <!-- 功能区 --> |
112 | <view class="func-wrap"> | 102 | <view class="func-wrap"> |
113 | <view class="func-wrap-item"> | 103 | <view bindtap="onRankHandler" class="func-wrap-item"> |
114 | <view class="icon-wrap"> | 104 | <view class="icon-wrap"> |
115 | <image class="icon" mode="aspectFit" src="../../image/icon/icon-integral-rank.png" /> | 105 | <image class="icon" mode="aspectFit" src="../../image/icon/icon-integral-rank.png" /> |
116 | </view> | 106 | </view> |
... | @@ -128,7 +118,7 @@ | ... | @@ -128,7 +118,7 @@ |
128 | </view> | 118 | </view> |
129 | <view class="txt">我的消息</view> | 119 | <view class="txt">我的消息</view> |
130 | </view> | 120 | </view> |
131 | <view class="func-wrap-item"> | 121 | <view bindtap="onContactUsHandler" class="func-wrap-item"> |
132 | <view class="icon-wrap"> | 122 | <view class="icon-wrap"> |
133 | <image class="icon" mode="aspectFit" src="../../image/icon//icon-concat-us.png" /> | 123 | <image class="icon" mode="aspectFit" src="../../image/icon//icon-concat-us.png" /> |
134 | </view> | 124 | </view> |
... | @@ -143,3 +133,9 @@ | ... | @@ -143,3 +133,9 @@ |
143 | <van-popup show="{{ authorizeVisible }}"> | 133 | <van-popup show="{{ authorizeVisible }}"> |
144 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 134 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
145 | </van-popup> | 135 | </van-popup> |
136 | <van-popup show="{{ commonTipsCompVisible }}"> | ||
137 | <common-tips-comp bind:evtcomp="evtcomp" inner-title="{{innerTitle}}" inner-text="{{innerText}}"></common-tips-comp> | ||
138 | </van-popup> | ||
139 | <van-popup show="{{ signTipsCompVisible }}"> | ||
140 | <sign-tips-comp bind:evtcomp="evtcomp"></sign-tips-comp> | ||
141 | </van-popup> | ... | ... |
1 | let Date = require('../../utils/date.js'); | ||
2 | let Utils = require('../../utils/util.js'); | ||
3 | |||
1 | let app = getApp(); | 4 | let app = getApp(); |
2 | Page({ | 5 | Page({ |
3 | data: { | 6 | data: { |
4 | authorizeVisible: false, | 7 | authorizeVisible: false, |
8 | // form start | ||
9 | name: "", | ||
10 | mobile: "", | ||
11 | verifyCode: "", | ||
12 | imageUrl: "", | ||
13 | auth_time: 0, | ||
14 | sendAuthCode: true, | ||
15 | membersShipIndex: 0, | ||
16 | membersShipList: [{ | ||
17 | value: "", | ||
18 | label: "请选择", | ||
19 | }, | ||
20 | { | ||
21 | value: "总代理", | ||
22 | label: "总代理", | ||
23 | }, | ||
24 | { | ||
25 | value: "经销商", | ||
26 | label: "经销商", | ||
27 | }, | ||
28 | { | ||
29 | value: "专业电工", | ||
30 | label: "专业电工", | ||
31 | }, | ||
32 | { | ||
33 | value: "其他用户", | ||
34 | label: "其他用户", | ||
35 | } | ||
36 | ], | ||
37 | maxImg: 1, // 上传数量 | ||
38 | files: [], // 上传文件列表 | ||
39 | // provinceId: "", | ||
40 | // cityId: "", | ||
41 | // provinceList: [], | ||
42 | // cityList: [], | ||
43 | // form end | ||
5 | }, | 44 | }, |
6 | onShareAppMessage() {}, | 45 | onShareAppMessage() {}, |
7 | showAuth() { | 46 | showAuth() { |
... | @@ -9,5 +48,235 @@ Page({ | ... | @@ -9,5 +48,235 @@ Page({ |
9 | authorizeVisible: true | 48 | authorizeVisible: true |
10 | }) | 49 | }) |
11 | }, | 50 | }, |
12 | onLoad(options) {} | 51 | onLoad(options) { |
52 | this.initData(); | ||
53 | }, | ||
54 | initData() { | ||
55 | |||
56 | }, | ||
57 | |||
58 | /** | ||
59 | * 会员身份 | ||
60 | */ | ||
61 | onSelectMembersShipHandler() { | ||
62 | |||
63 | }, | ||
64 | |||
65 | // getProvince() { | ||
66 | // return new Promise((resolve, reject) => { | ||
67 | // app.post({ | ||
68 | // mode: "custom", | ||
69 | // url: app.api.provinceQuery | ||
70 | // }).then((result) => { | ||
71 | // this.setData({ | ||
72 | // provinceList: result | ||
73 | // }) | ||
74 | // console.log("provinceList:",result); | ||
75 | // }) | ||
76 | // }); | ||
77 | // }, | ||
78 | // getCity() { | ||
79 | // return new Promise((resolve, reject) => { | ||
80 | // app.post({ | ||
81 | // url: app.api.cityQuery, | ||
82 | // data: { | ||
83 | // parentId: this.data.provinceId | ||
84 | // } | ||
85 | // }).then((result) => { | ||
86 | // this.setData({ | ||
87 | // cityList: result | ||
88 | // }) | ||
89 | // }) | ||
90 | // }); | ||
91 | // }, | ||
92 | |||
93 | /** | ||
94 | * 参考 contact-table同名方法 | ||
95 | * 提交表单 | ||
96 | * | ||
97 | */ | ||
98 | onSubmitHandler() { | ||
99 | let { | ||
100 | name, | ||
101 | phone, | ||
102 | verifyCode, | ||
103 | files | ||
104 | } = this.data; | ||
105 | |||
106 | app.router.push({ | ||
107 | path: "vipVerify" | ||
108 | }) | ||
109 | }, | ||
110 | |||
111 | /** | ||
112 | * 调起微信图片上传 | ||
113 | */ | ||
114 | onUploadHandler() { | ||
115 | let _this = this; | ||
116 | let count = _this.data.maxImg - _this.data.length; | ||
117 | wx.chooseImage({ | ||
118 | sizeType: ['original', 'compressed'], | ||
119 | sourceType: ['album'], | ||
120 | count: 1, | ||
121 | success(res) { | ||
122 | // tempFilePath可以作为img标签的src属性显示图片 | ||
123 | const tempFiles = res.tempFiles | ||
124 | let maxImg = _this.data.maxImg; | ||
125 | let files = _this.data.files; | ||
126 | files = files.concat(tempFiles); | ||
127 | if (files.length > maxImg) { | ||
128 | files.splice(0, maxImg); | ||
129 | } | ||
130 | _this.setData({ | ||
131 | files | ||
132 | }); | ||
133 | console.log("files:", files); | ||
134 | console.log("files[0]:", files[0]); | ||
135 | } | ||
136 | }) | ||
137 | }, | ||
138 | |||
139 | /** | ||
140 | * 上传到自定义服务器 | ||
141 | * urlList 需要上传的图片地址 | ||
142 | */ | ||
143 | uploadToCustomService(urlList) { | ||
144 | let _this = this; | ||
145 | return new Promise((resolve, reject) => { | ||
146 | // promise列表 | ||
147 | let p = []; | ||
148 | // 用promise上传音频 | ||
149 | urlList.forEach(element => { | ||
150 | let myPromise = new Promise((resolve2, reject2) => { | ||
151 | _this.uploadfileMultiple(element).then((result2) => { | ||
152 | resolve2(result2) | ||
153 | }).catch((err) => { | ||
154 | // _this.tip("声音上传失败") | ||
155 | reject2(); | ||
156 | }); | ||
157 | }); | ||
158 | p.push(myPromise); | ||
159 | }); | ||
160 | Promise.all(p).then(uploadFiles => { | ||
161 | resolve(uploadFiles) | ||
162 | }, reason => { | ||
163 | reject(); | ||
164 | }); | ||
165 | }); | ||
166 | }, | ||
167 | /** | ||
168 | * 多文件上传 | ||
169 | * @param {*} filePath | ||
170 | */ | ||
171 | uploadfileMultiple(filePath) { | ||
172 | let _this = this; | ||
173 | return new Promise((resolve, reject) => { | ||
174 | wx.uploadFile({ | ||
175 | url: app.config.NET_CONFIG.commonApi + app.api.uploadFile, | ||
176 | filePath: filePath, | ||
177 | name: 'file', | ||
178 | // header: {}, // 设置请求的 header | ||
179 | header: { | ||
180 | 'content-type': 'multipart/form-data' | ||
181 | }, | ||
182 | formData: { | ||
183 | path: '/weapp/zhiliang-light/' | ||
184 | }, | ||
185 | // HTTP 请求中其他额外的 form data | ||
186 | success(res) { | ||
187 | let result = JSON.parse(res.data).content; | ||
188 | resolve(result); | ||
189 | }, | ||
190 | fail() { | ||
191 | reject() | ||
192 | }, | ||
193 | complete: function () {} | ||
194 | }) | ||
195 | }); | ||
196 | }, | ||
197 | |||
198 | // 获取验证码 | ||
199 | reqGetSmsRequest() { | ||
200 | if (!this.data.sendAuthCode) return; | ||
201 | let mobile = this.data.mobile | ||
202 | if (!mobile || !Utils.checkMobile(mobile)) { | ||
203 | this.showLog("请输入正确的手机号码"); | ||
204 | return | ||
205 | } | ||
206 | this.getAuthCode(); | ||
207 | app.post({ | ||
208 | url: app.api.memberPhone, | ||
209 | data: { | ||
210 | picVerifyCode: "", | ||
211 | mobile: mobile, | ||
212 | forRegister: 1 | ||
213 | } | ||
214 | }).then((result) => { | ||
215 | wx.showToast({ | ||
216 | title: "短信发送成功", | ||
217 | icon: "none" | ||
218 | }) | ||
219 | }); | ||
220 | }, | ||
221 | // 倒数 | ||
222 | getAuthCode() { | ||
223 | let _this = this; | ||
224 | _this.setData({ | ||
225 | sendAuthCode: false, | ||
226 | auth_time: 60 | ||
227 | }) | ||
228 | var auth_timetimer = setInterval(() => { | ||
229 | _this.setData({ | ||
230 | auth_time: _this.data.auth_time - 1 | ||
231 | }) | ||
232 | if (_this.data.auth_time <= 0) { | ||
233 | _this.setData({ | ||
234 | sendAuthCode: true | ||
235 | }); | ||
236 | clearInterval(auth_timetimer) | ||
237 | } | ||
238 | }, 1000) | ||
239 | }, | ||
240 | bindMobileInput(e) { | ||
241 | this.setData({ | ||
242 | "mobile": e.detail.value | ||
243 | }) | ||
244 | }, | ||
245 | bindNameInput(e) { | ||
246 | this.setData({ | ||
247 | name: e.detail.value | ||
248 | }) | ||
249 | }, | ||
250 | bindVerifyCodeInput(e) { | ||
251 | this.setData({ | ||
252 | verifyCode: e.detail.value | ||
253 | }) | ||
254 | }, | ||
255 | bindMembersShipChange(e) { | ||
256 | let index = e.detail.value; | ||
257 | this.setData({ | ||
258 | membersShipIndex: index | ||
259 | }) | ||
260 | }, | ||
261 | |||
262 | hideMask() { | ||
263 | // this.setData({ | ||
264 | // productDetailVisible: false | ||
265 | // }) | ||
266 | }, | ||
267 | // 子组件事件 | ||
268 | evtcomp(evt) { | ||
269 | let { | ||
270 | name, | ||
271 | data | ||
272 | } = evt.detail; | ||
273 | switch (name) { | ||
274 | |||
275 | case "_evt_hide_mask": | ||
276 | break; | ||
277 | |||
278 | default: | ||
279 | break; | ||
280 | } | ||
281 | }, | ||
13 | }) | 282 | }) | ... | ... |
... | @@ -2,17 +2,128 @@ | ... | @@ -2,17 +2,128 @@ |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | .page { | 4 | .page { |
5 | .bgc {} | 5 | padding-bottom: $pageBottom; |
6 | |||
7 | .bgc { | ||
8 | background-color: #f0f0f0; | ||
9 | } | ||
6 | 10 | ||
7 | .bg {} | 11 | .bg {} |
8 | 12 | ||
9 | .main { | 13 | .main { |
10 | .top-space { | 14 | .top-space { |
11 | height: 0px; | 15 | height: 40px; |
12 | } | 16 | } |
13 | 17 | ||
14 | .content { | 18 | .content { |
15 | position: relative; | 19 | position: relative; |
20 | |||
21 | // 表单 | ||
22 | .form { | ||
23 | &-item { | ||
24 | @extend .bb; | ||
25 | padding: 24px 30px; | ||
26 | background: #fff; | ||
27 | font-size: 28px; | ||
28 | display: flex; | ||
29 | align-items: center; | ||
30 | margin-bottom: 20px; | ||
31 | |||
32 | .label { | ||
33 | min-width: 150px; | ||
34 | } | ||
35 | |||
36 | .cont { | ||
37 | flex: 1; | ||
38 | @extend .bb; | ||
39 | padding-left: 20px; | ||
40 | } | ||
41 | |||
42 | .address { | ||
43 | display: flex; | ||
44 | .area { | ||
45 | width: 220px; | ||
46 | color: #333333; | ||
47 | @include ellipsis(1); | ||
48 | } | ||
49 | |||
50 | .line { | ||
51 | width: 2px; | ||
52 | height: 40px; | ||
53 | background: #D8D8D8; | ||
54 | margin: 0 40px; | ||
55 | } | ||
56 | } | ||
57 | |||
58 | .exts { | ||
59 | @extend .fcc; | ||
60 | @extend .bb; | ||
61 | // padding: 20px 0px 20px 20px; | ||
62 | |||
63 | .icon { | ||
64 | width: 16px; | ||
65 | height: 28px; | ||
66 | } | ||
67 | |||
68 | .code { | ||
69 | font-size: 28px; | ||
70 | color: #3680EB; | ||
71 | } | ||
72 | } | ||
73 | } | ||
74 | |||
75 | &-item-textarea { | ||
76 | align-items: flex-start; | ||
77 | |||
78 | .cont { | ||
79 | margin-top: 4px; | ||
80 | height: auto; | ||
81 | min-height: 120px; | ||
82 | } | ||
83 | } | ||
84 | |||
85 | } | ||
86 | |||
87 | // 上传 | ||
88 | .upload { | ||
89 | background: #fff; | ||
90 | |||
91 | &-tit { | ||
92 | @extend .bb; | ||
93 | padding: 24px 30px; | ||
94 | font-size: 24px; | ||
95 | color: #666666; | ||
96 | } | ||
97 | |||
98 | &-wrap { | ||
99 | display: flex; | ||
100 | justify-content: space-between; | ||
101 | @extend .bb; | ||
102 | padding: 32px 66px 66px; | ||
103 | |||
104 | &-item { | ||
105 | text-align: center; | ||
106 | |||
107 | .image { | ||
108 | width: 240px; | ||
109 | height: 152px; | ||
110 | } | ||
111 | |||
112 | .tips { | ||
113 | font-size: 24px; | ||
114 | color: #666666; | ||
115 | margin-top: 24px; | ||
116 | } | ||
117 | } | ||
118 | } | ||
119 | |||
120 | } | ||
121 | |||
122 | // 提交按钮 | ||
123 | .submit-btn { | ||
124 | @include cb(320px, 84px); | ||
125 | margin: 40px auto 0; | ||
126 | } | ||
16 | } | 127 | } |
17 | } | 128 | } |
18 | } | 129 | } | ... | ... |
... | @@ -3,9 +3,68 @@ | ... | @@ -3,9 +3,68 @@ |
3 | <view class="app__bg bg"></view> | 3 | <view class="app__bg bg"></view> |
4 | <view class="app__content main"> | 4 | <view class="app__content main"> |
5 | <view class="top-space"></view> | 5 | <view class="top-space"></view> |
6 | <view class="content"></view> | 6 | <view class="content"> |
7 | <view class="table"> | ||
8 | <!-- 表单 --> | ||
9 | <view class="form"> | ||
10 | <view class="form-item"> | ||
11 | <view class="label">真实姓名</view> | ||
12 | <input class="cont" value="{{name}}" bindinput="bindNameInput" placeholder="请输入" /> | ||
13 | </view> | ||
14 | <picker value="{{membersShipIndex}}" range="{{membersShipList}}" range-key="label" bindchange="bindMembersShipChange"> | ||
15 | <view class="form-item"> | ||
16 | <view class="label">会员身份</view> | ||
17 | <!-- <input class="cont" placeholder="请输入" /> --> | ||
18 | <span class="cont"> | ||
19 | {{membersShipList[membersShipIndex].label ? membersShipList[membersShipIndex].label : '请选择'}} | ||
20 | </span> | ||
21 | <view class="exts" bindtap="onSelectMembersShipHandler" data-data="{{contactInfo.contactTel}}"> | ||
22 | <image class="icon" mode="aspectFit" src="../../image/icon/icon-arrow-right.png" /> | ||
23 | </view> | ||
24 | </view> | ||
25 | </picker> | ||
26 | <view class="form-item"> | ||
27 | <view class="label">区域</view> | ||
28 | <view class="cont address"> | ||
29 | <view class="area">省份</view> | ||
30 | <view class="line"></view> | ||
31 | <view class="area">城市</view> | ||
32 | </view> | ||
33 | </view> | ||
34 | <view class="form-item"> | ||
35 | <view class="label">手机号码</view> | ||
36 | <input class="cont" value="{{mobile}}" bindinput="bindMobileInput" type="number" placeholder="请输入" /> | ||
37 | </view> | ||
38 | <view class="form-item"> | ||
39 | <view class="label">验证码</view> | ||
40 | <input class="cont" bindinput="bindVerifyCodeInput" type="number" placeholder="请输入" /> | ||
41 | <view value="{{verifyCode}}" class="exts" bindtap="onSelectMembersShipHandler" data-data="{{contactInfo.contactTel}}"> | ||
42 | <view bindtap="reqGetSmsRequest" class="code"> | ||
43 | {{sendAuthCode ? "获取验证码": auth_time+"(s)"}} | ||
44 | </view> | ||
45 | </view> | ||
46 | </view> | ||
47 | </view> | ||
48 | <!-- 上传 --> | ||
49 | <view class="upload"> | ||
50 | <view class="upload-tit">请上传身份证或电工证,审核后,可签到及兑换积分</view> | ||
51 | <view class="upload-wrap"> | ||
52 | <view class="upload-wrap-item"> | ||
53 | <image class="image" bindtap="onUploadHandler" mode="aspectFit" src="{{files[0] && files[0].path?files[0].path:'../../image/icon/icon-plus.png'}}" /> | ||
54 | <view class="tips">身份证正面</view> | ||
55 | </view> | ||
56 | <view class="upload-wrap-item"> | ||
57 | <image class="image" mode="aspectFit" src="../../image/icon/icon-id-card.png" /> | ||
58 | <view class="tips">示例</view> | ||
59 | </view> | ||
60 | </view> | ||
61 | </view> | ||
62 | <!-- 提交按钮 --> | ||
63 | <view class="submit-btn" bindtap="onSubmitHandler">确认提交</view> | ||
64 | </view> | ||
65 | </view> | ||
7 | </view> | 66 | </view> |
8 | </view> | 67 | </view> |
9 | <van-popup show="{{ authorizeVisible }}" > | 68 | <van-popup show="{{ authorizeVisible }}"> |
10 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 69 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
11 | </van-popup> | 70 | </van-popup> | ... | ... |
1 | @import '../../assets/scss/mixins'; | 1 | @import '../../assets/scss/mixins'; |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | |||
4 | .page { | 5 | .page { |
6 | |||
7 | padding-bottom: $pageBottom; | ||
8 | color: #333333; | ||
9 | |||
5 | .bgc {} | 10 | .bgc {} |
6 | 11 | ||
7 | .bg {} | 12 | .bg {} |
8 | 13 | ||
9 | .main { | 14 | .main { |
10 | .top-space { | 15 | .top-space { |
11 | height: 0px; | 16 | height: 100px; |
12 | } | 17 | } |
13 | 18 | ||
14 | .content { | 19 | .content { |
15 | position: relative; | 20 | position: relative; |
21 | |||
22 | .tit { | ||
23 | text-align: center; | ||
24 | font-size: 44px; | ||
25 | color: #333333; | ||
26 | } | ||
27 | |||
28 | .form { | ||
29 | margin: 80px auto 0; | ||
30 | font-size: 28px; | ||
31 | |||
32 | &-item { | ||
33 | font-size: 28px; | ||
34 | display: flex; | ||
35 | margin: 0 auto 16px; | ||
36 | |||
37 | .label { | ||
38 | width: 120px; | ||
39 | color: #666666; | ||
40 | } | ||
41 | |||
42 | .val { | ||
43 | flex: 1; | ||
44 | @extend .bb; | ||
45 | padding-left: 20px; | ||
46 | } | ||
47 | } | ||
48 | |||
49 | .id-card { | ||
50 | margin: 44px 0 0; | ||
51 | // width: 338px; | ||
52 | // height: 226px; | ||
53 | |||
54 | &-image { | ||
55 | width: 338px; | ||
56 | height: 226px; | ||
57 | } | ||
58 | } | ||
59 | |||
60 | .error-tips { | ||
61 | text-align: center; | ||
62 | margin: 40px 0 0; | ||
63 | height: 68px; | ||
64 | line-height: 68px; | ||
65 | background: rgba($color: #E02020, $alpha: 0.1); | ||
66 | color: #E02020; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | .btn-wrap { | ||
71 | .btn { | ||
72 | @include cb(320px, 84px); | ||
73 | margin: 120px auto 0; | ||
74 | } | ||
75 | } | ||
76 | |||
16 | } | 77 | } |
17 | } | 78 | } |
18 | } | 79 | } |
80 | |||
81 | .border { | ||
82 | padding: 40px 30px; | ||
83 | } | ... | ... |
... | @@ -3,9 +3,37 @@ | ... | @@ -3,9 +3,37 @@ |
3 | <view class="app__bg bg"></view> | 3 | <view class="app__bg bg"></view> |
4 | <view class="app__content main"> | 4 | <view class="app__content main"> |
5 | <view class="top-space"></view> | 5 | <view class="top-space"></view> |
6 | <view class="content"></view> | 6 | <view class="content"> |
7 | <view class="tit">信息审核中,请耐心等待</view> | ||
8 | <view class="border form"> | ||
9 | <view class="form-item"> | ||
10 | <view class="label">真实姓名</view> | ||
11 | <view class="val">xxx</view> | ||
12 | </view> | ||
13 | <view class="form-item"> | ||
14 | <view class="label">会员身份</view> | ||
15 | <view class="val">专业电工</view> | ||
16 | </view> | ||
17 | <view class="form-item"> | ||
18 | <view class="label">地区</view> | ||
19 | <view class="val">广东省深圳市</view> | ||
20 | </view> | ||
21 | <view class="form-item"> | ||
22 | <view class="label">手机号码</view> | ||
23 | <view class="val">15012341234</view> | ||
24 | </view> | ||
25 | <view class="id-card"> | ||
26 | <image class="id-card-image" mode="aspectFit" src="../../image/icon/icon-id-card-default.png" /> | ||
27 | </view> | ||
28 | <view class="error-tips">失败原因:证件不符</view> | ||
29 | </view> | ||
30 | <view class="btn-wrap"> | ||
31 | <view wx:if="{{1>0}}" class="btn">修改信息</view> | ||
32 | <view wx:else class="btn">重新提交</view> | ||
33 | </view> | ||
34 | </view> | ||
7 | </view> | 35 | </view> |
8 | </view> | 36 | </view> |
9 | <van-popup show="{{ authorizeVisible }}" > | 37 | <van-popup show="{{ authorizeVisible }}"> |
10 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | 38 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> |
11 | </van-popup> | 39 | </van-popup> | ... | ... |
-
Please register or sign in to post a comment