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