38fe5e71 by simon

no message

1 parent c631d055
Showing 48 changed files with 1926 additions and 85 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 <view class="comp-item">
2 <view class="cspace"></view>
3 <view class="cont">
4 <view class="tit">{{innerTitle}}</view>
5 <view class="tips">
6 <text>{{innerText}}</text>
7 </view>
8 </view>
9 <button class="btn" bindtap="onInnerButtonHandler">{{innerButton}}</button>
10 </view>
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 commonApi: 'https://api.k.wxpai.cn/bizproxy'
5 }, 6 },
6 Test: { 7 Test: {
7 baseApi: 'https://test-api.xxx.com' 8 baseApi: 'https://test-api.xxx.com'
...@@ -10,6 +11,7 @@ module.exports = { ...@@ -10,6 +11,7 @@ module.exports = {
10 baseApi: 'https://slave-api.xxx.com' 11 baseApi: 'https://slave-api.xxx.com'
11 }, 12 },
12 Prod: { 13 Prod: {
13 baseApi: 'https://api.k.wxpai.cn/bizproxy/zlzmapi' 14 baseApi: 'https://api.k.wxpai.cn/bizproxy/zlzmapi',
15 commonApi: 'https://api.k.wxpai.cn/bizproxy'
14 } 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, //请求地址
......
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 }
67 }
51 68
69 .textarea {
70 padding: 20px;
71 width: 620px;
72 @extend .bb;
73 background: #F8F8F8;
74 font-size: 28px;
75 }
76 }
52 77
78 // 提交
79 .submit-btn {
80 @include cb(320px, 84px);
81 margin: 120px auto 0;
82 }
53 } 83 }
84 }
85 }
54 86
55 .upload{ 87 // 图片上传
88 .upload {
56 margin-top: 30px; 89 margin-top: 30px;
57 .tips{ 90
91 .tips {
58 font-size: 28px; 92 font-size: 28px;
59 color: #666666; 93 color: #666666;
60 } 94 }
61 .upload{} 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 }
62 } 115 }
63 116
64 .textarea { 117 &-file {
65 background: #F8F8F8; 118 display: flex;
119 flex-wrap: wrap;
120 margin: 20px auto 0;
121
122 &-item {
123 position: relative;
124 width: 33%;
66 @extend .bb; 125 @extend .bb;
67 padding: 20px; 126 margin-bottom: 12px;
68 font-size: 28px; 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;
69 } 161 }
70 } 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>
22 </view> 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" />
23 </view> 28 </view>
24 </view> 29 </view>
25 </view> 30 </view>
26 </view> 31 </view>
32 </view>
33 <view class="submit-btn" bindtap="onSubmitHandler">提交</view>
34 </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 { 1 {
2 "navigationBarTitleText": "more" 2 "navigationBarTitleText": "我的二维码"
3 } 3 }
......
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 { 1 {
2 "navigationBarTitleText": "more" 2 "navigationBarTitleText": "积分排行"
3 } 3 }
......
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;
6 8
7 .bg {} 9 .bgc {
10 background: #3680EB;
11 }
12
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 });
21 }, 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 });
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:
......
...@@ -52,6 +52,7 @@ $contentWidth: 690px; ...@@ -52,6 +52,7 @@ $contentWidth: 690px;
52 } 52 }
53 53
54 .vip { 54 .vip {
55 display: inline-block;
55 font-size: 24px; 56 font-size: 24px;
56 margin-top: 8px; 57 margin-top: 8px;
57 background: #FF7B21; 58 background: #FF7B21;
......
...@@ -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 })
......
1 { 1 {
2 "navigationBarTitleText": "more" 2 "navigationBarTitleText": "会员信息验证"
3 } 3 }
......
...@@ -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 { 1 {
2 "navigationBarTitleText": "more" 2 "navigationBarTitleText": "会员信息验证"
3 } 3 }
......
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;
16 } 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;
17 } 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
77 }
78 }
79 }
80
81 .border {
82 padding: 40px 30px;
18 } 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>
......