版本提交
Showing
33 changed files
with
929 additions
and
325 deletions
... | @@ -24,10 +24,14 @@ App({ | ... | @@ -24,10 +24,14 @@ App({ |
24 | wxcode: store.getItem("wxcode"), | 24 | wxcode: store.getItem("wxcode"), |
25 | tlMemberCode: "", | 25 | tlMemberCode: "", |
26 | curCoupon: null, | 26 | curCoupon: null, |
27 | questionResult:null,//答题的结果 弹力值 elasticValue | 27 | questionResult: null, //答题的结果 弹力值 elasticValue |
28 | posterWishList: [], //海报用 | ||
29 | giftData: null, // 实物奖 userTabel prizeDetail用 | ||
28 | }, | 30 | }, |
29 | // 获取用户基本信息 | 31 | // 获取用户基本信息 |
30 | queryIndex() { | 32 | queryIndex(query = { |
33 | auth: true | ||
34 | }) { | ||
31 | return new Promise((resolve, reject) => { | 35 | return new Promise((resolve, reject) => { |
32 | this.post({ | 36 | this.post({ |
33 | url: this.api.index, | 37 | url: this.api.index, |
... | @@ -36,7 +40,7 @@ App({ | ... | @@ -36,7 +40,7 @@ App({ |
36 | }).then((result) => { | 40 | }).then((result) => { |
37 | this.globalData.indexInfo = result; | 41 | this.globalData.indexInfo = result; |
38 | this.globalData.userInfo = result.userInfo; | 42 | this.globalData.userInfo = result.userInfo; |
39 | if (result.isNeedAuth == 1) { | 43 | if (result.isNeedAuth == 1 && auth == true) { |
40 | //需要授权 | 44 | //需要授权 |
41 | this.router.push({ | 45 | this.router.push({ |
42 | path: "authorize" | 46 | path: "authorize" | ... | ... |
... | @@ -34,18 +34,22 @@ Component({ | ... | @@ -34,18 +34,22 @@ Component({ |
34 | provinceList: [], | 34 | provinceList: [], |
35 | cityList: [], | 35 | cityList: [], |
36 | districtList: [], | 36 | districtList: [], |
37 | provinceIndex: -1, | 37 | provinceIndex: 0, |
38 | cityIndex: -1, | 38 | cityIndex: 0, |
39 | districtIndex: -1, | 39 | districtIndex: 0, |
40 | addressList: [], | 40 | addressList: [], |
41 | total: 0, | 41 | total: 0, |
42 | curAddress: null | 42 | curAddress: null, |
43 | localCity: "" | ||
43 | }, | 44 | }, |
44 | methods: { | 45 | methods: { |
45 | /** | 46 | /** |
46 | * 请求门店地址 | 47 | * 请求门店地址 |
47 | */ | 48 | */ |
48 | queryShop() { | 49 | queryShop() { |
50 | this.setData({ | ||
51 | curAddress: "" | ||
52 | }) | ||
49 | return new Promise((resolve, reject) => { | 53 | return new Promise((resolve, reject) => { |
50 | let { | 54 | let { |
51 | location, | 55 | location, |
... | @@ -69,7 +73,8 @@ Component({ | ... | @@ -69,7 +73,8 @@ Component({ |
69 | }).then((result) => { | 73 | }).then((result) => { |
70 | this.setData({ | 74 | this.setData({ |
71 | addressList: result.list, | 75 | addressList: result.list, |
72 | total: result.total | 76 | total: result.total, |
77 | localCity: result.city | ||
73 | }) | 78 | }) |
74 | resolve(); | 79 | resolve(); |
75 | }) | 80 | }) |
... | @@ -95,6 +100,7 @@ Component({ | ... | @@ -95,6 +100,7 @@ Component({ |
95 | 100 | ||
96 | /** | 101 | /** |
97 | * 提交门店 | 102 | * 提交门店 |
103 | * 预约 | ||
98 | */ | 104 | */ |
99 | onSubmitHandler(evt) { | 105 | onSubmitHandler(evt) { |
100 | let curAddress = this.data.curAddress; | 106 | let curAddress = this.data.curAddress; |
... | @@ -147,6 +153,7 @@ Component({ | ... | @@ -147,6 +153,7 @@ Component({ |
147 | this.setData({ | 153 | this.setData({ |
148 | searchMode: 2 | 154 | searchMode: 2 |
149 | }); | 155 | }); |
156 | this.queryShop(); | ||
150 | }, | 157 | }, |
151 | 158 | ||
152 | // 转换为自动模式 | 159 | // 转换为自动模式 |
... | @@ -157,6 +164,7 @@ Component({ | ... | @@ -157,6 +164,7 @@ Component({ |
157 | cityId: "", | 164 | cityId: "", |
158 | districtId: "", | 165 | districtId: "", |
159 | }) | 166 | }) |
167 | this.queryShop(); | ||
160 | }, | 168 | }, |
161 | 169 | ||
162 | getProvince() { | 170 | getProvince() { |
... | @@ -180,7 +188,9 @@ Component({ | ... | @@ -180,7 +188,9 @@ Component({ |
180 | parentId: this.data.provinceId | 188 | parentId: this.data.provinceId |
181 | } | 189 | } |
182 | }).then((result) => { | 190 | }).then((result) => { |
183 | console.log("getCity result:", result); | 191 | this.setData({ |
192 | cityList: result | ||
193 | }) | ||
184 | }) | 194 | }) |
185 | }); | 195 | }); |
186 | }, | 196 | }, |
... | @@ -193,7 +203,9 @@ Component({ | ... | @@ -193,7 +203,9 @@ Component({ |
193 | parentId: this.data.cityId | 203 | parentId: this.data.cityId |
194 | } | 204 | } |
195 | }).then((result) => { | 205 | }).then((result) => { |
196 | console.log("getDistrict result:", result); | 206 | this.setData({ |
207 | districtList: result | ||
208 | }) | ||
197 | }) | 209 | }) |
198 | }); | 210 | }); |
199 | }, | 211 | }, |
... | @@ -204,10 +216,11 @@ Component({ | ... | @@ -204,10 +216,11 @@ Component({ |
204 | provinceIndex: index, | 216 | provinceIndex: index, |
205 | provinceId: this.data.provinceList[index].id, | 217 | provinceId: this.data.provinceList[index].id, |
206 | cityList: [], | 218 | cityList: [], |
219 | cityIndex: -1, | ||
207 | districtList: [], | 220 | districtList: [], |
221 | districtIndex: -1, | ||
208 | }) | 222 | }) |
209 | // 选市 | 223 | this.getCity(); |
210 | this.getCity() | ||
211 | }, | 224 | }, |
212 | 225 | ||
213 | bindPickerChangeCity(e) { | 226 | bindPickerChangeCity(e) { |
... | @@ -216,6 +229,7 @@ Component({ | ... | @@ -216,6 +229,7 @@ Component({ |
216 | cityIndex: index, | 229 | cityIndex: index, |
217 | cityId: this.data.cityList[index].id, | 230 | cityId: this.data.cityList[index].id, |
218 | districtList: [], | 231 | districtList: [], |
232 | districtIndex: -1, | ||
219 | }) | 233 | }) |
220 | this.getDistrict(); | 234 | this.getDistrict(); |
221 | }, | 235 | }, |
... | @@ -226,6 +240,7 @@ Component({ | ... | @@ -226,6 +240,7 @@ Component({ |
226 | districtIndex: index, | 240 | districtIndex: index, |
227 | districtId: this.data.districtList[index].id, | 241 | districtId: this.data.districtList[index].id, |
228 | }) | 242 | }) |
243 | this.queryShop(); | ||
229 | }, | 244 | }, |
230 | 245 | ||
231 | 246 | ... | ... |
... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
4 | <view wx:if="{{searchMode == 1}}" class="nav nav1"> | 4 | <view wx:if="{{searchMode == 1}}" class="nav nav1"> |
5 | <view class="place"> | 5 | <view class="place"> |
6 | 您当前所在城市: | 6 | 您当前所在城市: |
7 | <span class="city">深圳市</span> | 7 | <span class="city">{{localCity}}</span> |
8 | </view> | 8 | </view> |
9 | <view bindtap="onSearchHandModeHandler" data-data="1" class="btn">手动选择</view> | 9 | <view bindtap="onSearchHandModeHandler" data-data="1" class="btn">手动选择</view> |
10 | </view> | 10 | </view> | ... | ... |
... | @@ -361,7 +361,5 @@ let prizeTableQueryAssign = { | ... | @@ -361,7 +361,5 @@ let prizeTableQueryAssign = { |
361 | 361 | ||
362 | module.exports = { | 362 | module.exports = { |
363 | productMap: productMap, | 363 | productMap: productMap, |
364 | prizeTableQueryAssign: prizeTableQueryAssign, | ||
365 | prizeLiftQuery: prizeLiftQuery, | ||
366 | wishbillGiftQuery: wishbillGiftQuery | 364 | wishbillGiftQuery: wishbillGiftQuery |
367 | } | 365 | } | ... | ... |
... | @@ -11,43 +11,50 @@ function checkSessionId() { | ... | @@ -11,43 +11,50 @@ function checkSessionId() { |
11 | resolve(); | 11 | resolve(); |
12 | } else { | 12 | } else { |
13 | // 没有sessionId则获取并埋值 | 13 | // 没有sessionId则获取并埋值 |
14 | wx.login({ | 14 | login().then((result) => { |
15 | success: function (res) { | 15 | resolve(); |
16 | console.log("wxlogin:", res); | 16 | }).catch((err) => { |
17 | Store.setItem('wxcode', res.code); | 17 | reject(); |
18 | let baseUrl = config.NET_CONFIG.baseApi; | ||
19 | wx.request({ | ||
20 | url: baseUrl + '/warubiEyeCreamApi/app/login', | ||
21 | data: { | ||
22 | code: res.code | ||
23 | }, | ||
24 | method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | ||
25 | // header: {}, // 设置请求的 header | ||
26 | success: function (res2) { | ||
27 | let { | ||
28 | code, | ||
29 | content | ||
30 | } = res2.data; | ||
31 | if (code == 200 && content.sessionId) { | ||
32 | Store.setItem('sessionId', content.sessionId); | ||
33 | resolve(); | ||
34 | } else { | ||
35 | wx.showToast({ | ||
36 | title: errMsg, | ||
37 | icon: 'none' | ||
38 | }); | ||
39 | reject(); | ||
40 | } | ||
41 | // console.log("sid:", Store.getItem('sessionId')); | ||
42 | // resolve(); | ||
43 | } | ||
44 | }) | ||
45 | } | ||
46 | }); | 18 | }); |
47 | } | 19 | } |
48 | }); | 20 | }); |
49 | } | 21 | } |
50 | 22 | ||
23 | // 重新登陆 | ||
24 | function login() { | ||
25 | return new Promise((resolve, reject) => { | ||
26 | wx.login({ | ||
27 | success: function (res) { | ||
28 | Store.setItem('wxcode', res.code); | ||
29 | let baseUrl = config.NET_CONFIG.baseApi; | ||
30 | wx.request({ | ||
31 | url: baseUrl + '/warubiEyeCreamApi/app/login', | ||
32 | data: { | ||
33 | code: res.code | ||
34 | }, | ||
35 | method: 'POST', | ||
36 | success: function (res2) { | ||
37 | let { | ||
38 | code, | ||
39 | content | ||
40 | } = res2.data; | ||
41 | if (code == 200 && content.sessionId) { | ||
42 | Store.setItem('sessionId', content.sessionId); | ||
43 | resolve(); | ||
44 | } else { | ||
45 | wx.showToast({ | ||
46 | title: errMsg, | ||
47 | icon: 'none' | ||
48 | }); | ||
49 | reject(); | ||
50 | } | ||
51 | } | ||
52 | }) | ||
53 | } | ||
54 | }); | ||
55 | }); | ||
56 | } | ||
57 | |||
51 | const fetch = function ({ | 58 | const fetch = function ({ |
52 | loading = true, | 59 | loading = true, |
53 | toast = true, | 60 | toast = true, |
... | @@ -59,14 +66,7 @@ const fetch = function ({ | ... | @@ -59,14 +66,7 @@ const fetch = function ({ |
59 | data, | 66 | data, |
60 | method | 67 | method |
61 | }) { | 68 | }) { |
62 | // 自定义参数 | ||
63 | // const clientInfo = { | ||
64 | // user_id: 1 | ||
65 | // } | ||
66 | // 日志埋点不需要出现loading | ||
67 | if (loading && mode != 'log') wx.showLoading(); | 69 | if (loading && mode != 'log') wx.showLoading(); |
68 | // if (loading && mode != 'log') Util.showLoading(); | ||
69 | |||
70 | // 新建promise对象 | 70 | // 新建promise对象 |
71 | let promise = new Promise((resolve, reject) => { | 71 | let promise = new Promise((resolve, reject) => { |
72 | /** | 72 | /** |
... | @@ -77,63 +77,66 @@ const fetch = function ({ | ... | @@ -77,63 +77,66 @@ const fetch = function ({ |
77 | if (isMock && mode != 'log') { | 77 | if (isMock && mode != 'log') { |
78 | baseUrl = config.MOCKAPI; //环境配置 | 78 | baseUrl = config.MOCKAPI; //环境配置 |
79 | } | 79 | } |
80 | |||
81 | checkSessionId().then((result) => { | 80 | checkSessionId().then((result) => { |
82 | // if (sid) { | ||
83 | // url += "?sessionId=" + Store.getItem("sessionId") | ||
84 | // } | ||
85 | // url += "?sessionId=" + Store.getItem("sessionId") | ||
86 | // console.log("url:", url); | ||
87 | wx.request({ | 81 | wx.request({ |
88 | url: baseUrl + url, //请求地址 | 82 | url: baseUrl + url, //请求地址 |
89 | data: data, //自定义参数 | 83 | data: data, //自定义参数 |
90 | method: method || 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | 84 | method: method || 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT |
91 | header: { | 85 | header: { |
92 | sessionId: Store.getItem("sessionId") | 86 | sessionId: Store.getItem("sessionId") |
93 | }, // 设置请求的 header的默认参数,根据项目需求添加 | 87 | }, |
94 | // header: { | ||
95 | // 'clientInfo': JSON.stringify(clientInfo), | ||
96 | // 'Server-Token':'xxx' | ||
97 | // }, | ||
98 | success: function (result) { | 88 | success: function (result) { |
99 | // 日志上传不需要处理结果 | 89 | // 日志上传不需要处理结果 |
100 | if (mode == 'log') return; | 90 | if (mode == 'log') return; |
101 | let res = result.data; | 91 | let res = result.data; |
102 | // 登陆失效拦截,根据项目需要添加自己的配置 | 92 | // 登陆失效拦截,根据项目需要添加自己的配置 |
103 | if (res.code == 404) { | 93 | if (res.code == 404) { |
104 | // wx.showToast({ | ||
105 | // title: '当前登陆失效,请重新登陆', | ||
106 | // icon: 'none', | ||
107 | // mask: true, | ||
108 | // success: () => { | ||
109 | // return; | ||
110 | // } | ||
111 | // }) | ||
112 | //登陆失效的回调 | 94 | //登陆失效的回调 |
113 | Store.clear("sessionId"); | 95 | Store.clear("sessionId"); |
114 | wx.reLaunch({ | 96 | // wx.reLaunch({ |
115 | url: '/pages/authorize/authorize' | 97 | // url: '/pages/index/index' |
98 | // }) | ||
99 | // 404后拉取登陆后再做一次 | ||
100 | login().then((resultLogin) => { | ||
101 | wx.request({ | ||
102 | url: baseUrl + url, //请求地址 | ||
103 | data: data, //自定义参数 | ||
104 | method: method || 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | ||
105 | header: { | ||
106 | sessionId: Store.getItem("sessionId") | ||
107 | }, | ||
108 | success: function (result) { | ||
109 | // 日志上传不需要处理结果 | ||
110 | if (mode == 'log') return; | ||
111 | let res = result.data; | ||
112 | if (res.code === 200) { | ||
113 | if (loading) { | ||
114 | wx.hideLoading(); | ||
115 | } | ||
116 | resolve(res.content); | ||
117 | } else { | ||
118 | // 有些特殊状况不需要toast 需要弹窗 | ||
119 | if (toast) { | ||
120 | wx.showToast({ | ||
121 | title: res.errMsg || errMsg, | ||
122 | icon: 'none' | ||
123 | }) | ||
124 | } else { | ||
125 | wx.hideLoading(); | ||
126 | } | ||
127 | // 返回错误信息 | ||
128 | reject(res); | ||
129 | } | ||
130 | } | ||
131 | }); | ||
116 | }) | 132 | }) |
117 | return; | 133 | return; |
118 | |||
119 | // Router.push({ | ||
120 | // path: "authorize", | ||
121 | // openType: "reLaunch", | ||
122 | // query: { | ||
123 | // status: '404' | ||
124 | // } | ||
125 | // }) | ||
126 | } | 134 | } |
127 | // 内部统一的成功code拦截码 | 135 | // 内部统一的成功code拦截码 |
128 | if (res.code === 200) { | 136 | if (res.code === 200) { |
129 | if (loading) { | 137 | if (loading) { |
130 | wx.hideLoading(); | 138 | wx.hideLoading(); |
131 | } | 139 | } |
132 | // resolve(res); | ||
133 | // 直接返回content | ||
134 | // 再多封一层,把errMsg塞带content去 | ||
135 | // let content = res.content; | ||
136 | // content.errMsg = res.errMsg; | ||
137 | resolve(res.content); | 140 | resolve(res.content); |
138 | } else { | 141 | } else { |
139 | // 有些特殊状况不需要toast 需要弹窗 | 142 | // 有些特殊状况不需要toast 需要弹窗 | ... | ... |
... | @@ -4,14 +4,24 @@ let config = require('../../config'); | ... | @@ -4,14 +4,24 @@ let config = require('../../config'); |
4 | Page({ | 4 | Page({ |
5 | data: { | 5 | data: { |
6 | authorized: false, | 6 | authorized: false, |
7 | canIUse: wx.canIUse('button.open-type.getUserInfo') | 7 | canIUse: wx.canIUse('button.open-type.getUserInfo'), |
8 | redirect: "index", | ||
8 | }, | 9 | }, |
9 | onShareAppMessage() {}, | 10 | onShareAppMessage() {}, |
10 | onReady() { | 11 | onReady() { |
11 | wx.showLoading(); | 12 | wx.showLoading(); |
12 | this.autoAuth(); | 13 | this.autoAuth(); |
13 | }, | 14 | }, |
14 | onLoad(options) {}, | 15 | onLoad(options) { |
16 | let { | ||
17 | redirect | ||
18 | } = options; | ||
19 | if (redirect) { | ||
20 | this.setData({ | ||
21 | redirect | ||
22 | }) | ||
23 | } | ||
24 | }, | ||
15 | onShow() {}, | 25 | onShow() {}, |
16 | bindGetUserInfo(e) { | 26 | bindGetUserInfo(e) { |
17 | wx.showLoading(); | 27 | wx.showLoading(); |
... | @@ -52,7 +62,7 @@ Page({ | ... | @@ -52,7 +62,7 @@ Page({ |
52 | let _this = this; | 62 | let _this = this; |
53 | this.refreshIndexData().then((result) => { | 63 | this.refreshIndexData().then((result) => { |
54 | if (result.isNeedAuth == 1) { | 64 | if (result.isNeedAuth == 1) { |
55 | console.log("result.isNeedAuth:",result.isNeedAuth); | 65 | console.log("result.isNeedAuth:", result.isNeedAuth); |
56 | // 未授权 | 66 | // 未授权 |
57 | wx.login({ | 67 | wx.login({ |
58 | success: function (res) { | 68 | success: function (res) { |
... | @@ -64,7 +74,7 @@ Page({ | ... | @@ -64,7 +74,7 @@ Page({ |
64 | authorized: false | 74 | authorized: false |
65 | }) | 75 | }) |
66 | } else { | 76 | } else { |
67 | console.log("result.isNeedAuth:",result.isNeedAuth); | 77 | console.log("result.isNeedAuth:", result.isNeedAuth); |
68 | // 已经授权 | 78 | // 已经授权 |
69 | // setTimeout(() => { | 79 | // setTimeout(() => { |
70 | _this.toIndex(); | 80 | _this.toIndex(); |
... | @@ -75,9 +85,8 @@ Page({ | ... | @@ -75,9 +85,8 @@ Page({ |
75 | }, | 85 | }, |
76 | // 跳转到首页 | 86 | // 跳转到首页 |
77 | toIndex() { | 87 | toIndex() { |
78 | console.log("toIndex"); | ||
79 | app.router.push({ | 88 | app.router.push({ |
80 | path: "index", | 89 | path: this.data.redirect, |
81 | openType: "redirect" | 90 | openType: "redirect" |
82 | }) | 91 | }) |
83 | wx.hideLoading(); | 92 | wx.hideLoading(); | ... | ... |
... | @@ -10,23 +10,53 @@ import { | ... | @@ -10,23 +10,53 @@ import { |
10 | let app = getApp(); | 10 | let app = getApp(); |
11 | Page({ | 11 | Page({ |
12 | data: { | 12 | data: { |
13 | groupMemberCoopVisible: true, | 13 | groupMemberCoopVisible: false, |
14 | tipsCommonVisible: false, | ||
15 | tipsInnerText: "", | ||
14 | options: null, | 16 | options: null, |
15 | wishInfo: {}, | 17 | wishInfo: {}, |
16 | wishList: [] | 18 | wishList: [], |
19 | coopInfo: {}, | ||
20 | canShake: false, | ||
17 | }, | 21 | }, |
18 | onShareAppMessage() {}, | 22 | onShareAppMessage() {}, |
19 | onLoad(options) { | 23 | onLoad(options) { |
20 | this.setData({ | 24 | this.setData({ |
21 | options | 25 | options |
22 | }) | 26 | }) |
27 | }, | ||
28 | onShow() { | ||
23 | this.initData(); | 29 | this.initData(); |
24 | }, | 30 | }, |
25 | initData() { | 31 | initData() { |
26 | app.queryIndex().then((result) => { | 32 | app.queryIndex().then((result) => { |
27 | this.queryWishbillDetail(); | 33 | // 判断是否需要授权 |
34 | if (result.isNeedAuth) { | ||
35 | app.router.push({ | ||
36 | path: "authorize", | ||
37 | query: { | ||
38 | redirect: "coop" | ||
39 | } | ||
40 | }) | ||
41 | } else { | ||
42 | this.queryWishbillDetail(); | ||
43 | this.initShake(); | ||
44 | } | ||
28 | }) | 45 | }) |
29 | }, | 46 | }, |
47 | // 添加摇一摇 | ||
48 | initShake() { | ||
49 | let _this = this; | ||
50 | wx.onAccelerometerChange(function (res) { | ||
51 | if (!_this.data.canShake) { | ||
52 | return | ||
53 | } | ||
54 | if (res.x > 1) { //偏移量为2时触发,有的使用1 | ||
55 | // 触发摇一摇 | ||
56 | _this.queryWishbillAssist(); | ||
57 | } | ||
58 | }); | ||
59 | }, | ||
30 | // 我也要玩 | 60 | // 我也要玩 |
31 | onPlayTooHandler() { | 61 | onPlayTooHandler() { |
32 | app.router.push({ | 62 | app.router.push({ |
... | @@ -34,15 +64,70 @@ Page({ | ... | @@ -34,15 +64,70 @@ Page({ |
34 | path: "index" | 64 | path: "index" |
35 | }) | 65 | }) |
36 | }, | 66 | }, |
67 | // 助力 | ||
68 | queryWishbillAssist() { | ||
69 | this.setData({ | ||
70 | canShake: false | ||
71 | }) | ||
72 | app.post({ | ||
73 | url: app.api.wishbillAssist, | ||
74 | data: { | ||
75 | billCode: this.data.options.code | ||
76 | } | ||
77 | }).then((result) => { | ||
78 | console.log("queryWishbillAssist result:", result); | ||
79 | let status = result.status; | ||
80 | if (status == 1) { | ||
81 | // 助力成功 | ||
82 | // 合并数据 | ||
83 | let wishList = result.elasticValueList; | ||
84 | wishList.forEach(element => { | ||
85 | let product = productMap[element.prizeDefineCode + ""]; | ||
86 | element = Object.assign(element, product); | ||
87 | let progress = element.elasticValue / element.conditionElasticValue * 100; | ||
88 | if (progress > 100) progress = 100; | ||
89 | // 直接计算坐标 | ||
90 | let progressLeft = progress * 3.22 - 51; | ||
91 | element.progress = progress; | ||
92 | element.progressLeft = progressLeft; | ||
93 | }); | ||
94 | this.setData({ | ||
95 | coopInfo: result, | ||
96 | wishList: wishList | ||
97 | }) | ||
98 | } else if (status == 2) { | ||
99 | // 助力失败 | ||
100 | this.setData({ | ||
101 | tipsCommonVisible: true, | ||
102 | tipsInnerText: "已经为好友助力过啦~" | ||
103 | }) | ||
104 | } else if (status == 3) { | ||
105 | this.setData({ | ||
106 | tipsCommonVisible: true, | ||
107 | tipsInnerText: "不能为自己助力哦~" | ||
108 | }) | ||
109 | } else { | ||
110 | // 助力失败 | ||
111 | this.setData({ | ||
112 | groupMemberCoopVisible: true | ||
113 | }) | ||
114 | } | ||
115 | |||
116 | }) | ||
117 | }, | ||
37 | // 获取心愿单详情 | 118 | // 获取心愿单详情 |
38 | queryWishbillDetail() { | 119 | queryWishbillDetail() { |
39 | return new Promise((resolve, reject) => { | 120 | return new Promise((resolve, reject) => { |
40 | app.post({ | 121 | app.post({ |
41 | url: app.api.wishbillDetail, | 122 | url: app.api.wishbillDetail, |
42 | data: { | 123 | data: { |
43 | billCode: app.globalData.indexInfo.wishBillCode | 124 | billCode: this.data.options.code |
44 | } | 125 | } |
45 | }).then((result) => { | 126 | }).then((result) => { |
127 | let isAssist = result.isAssist; | ||
128 | this.setData({ | ||
129 | isAssist | ||
130 | }) | ||
46 | let wishList = result.wishGifts; | 131 | let wishList = result.wishGifts; |
47 | wishList.forEach(element => { | 132 | wishList.forEach(element => { |
48 | let product = productMap[element.prizeDefineCode + ""]; | 133 | let product = productMap[element.prizeDefineCode + ""]; |
... | @@ -60,9 +145,16 @@ Page({ | ... | @@ -60,9 +145,16 @@ Page({ |
60 | }) | 145 | }) |
61 | console.log("wishInfo:", this.data.wishInfo); | 146 | console.log("wishInfo:", this.data.wishInfo); |
62 | console.log("wishList:", this.data.wishList); | 147 | console.log("wishList:", this.data.wishList); |
148 | |||
63 | }) | 149 | }) |
64 | }); | 150 | }); |
65 | }, | 151 | }, |
152 | hideMask() { | ||
153 | this.setData({ | ||
154 | groupMemberCoopVisible: false, | ||
155 | tipsCommonVisible: false, | ||
156 | }) | ||
157 | }, | ||
66 | // 子组件事件 | 158 | // 子组件事件 |
67 | evtcomp(evt) { | 159 | evtcomp(evt) { |
68 | let { | 160 | let { |
... | @@ -71,7 +163,8 @@ Page({ | ... | @@ -71,7 +163,8 @@ Page({ |
71 | } = evt.detail; | 163 | } = evt.detail; |
72 | switch (name) { | 164 | switch (name) { |
73 | 165 | ||
74 | case "_evt_hide": | 166 | case "_evt_hide_mask": |
167 | this.hideMask(); | ||
75 | break; | 168 | break; |
76 | 169 | ||
77 | default: | 170 | default: | ... | ... |
... | @@ -2,6 +2,7 @@ | ... | @@ -2,6 +2,7 @@ |
2 | "navigationBarTitleText": "好友助力", | 2 | "navigationBarTitleText": "好友助力", |
3 | "usingComponents": { | 3 | "usingComponents": { |
4 | "tips-group-member-coop-comp": "../../component/tips-group-member-coop-comp/tips-group-member-coop-comp", | 4 | "tips-group-member-coop-comp": "../../component/tips-group-member-coop-comp/tips-group-member-coop-comp", |
5 | "tips-common-comp": "../../component/tips-common-comp/tips-common-comp", | ||
5 | "van-popup": "../../ui/vant-weapp/popup/index" | 6 | "van-popup": "../../ui/vant-weapp/popup/index" |
6 | } | 7 | } |
7 | } | 8 | } | ... | ... |
... | @@ -131,10 +131,7 @@ | ... | @@ -131,10 +131,7 @@ |
131 | .result-wrap { | 131 | .result-wrap { |
132 | position: relative; | 132 | position: relative; |
133 | 133 | ||
134 | .play-too-btn { | 134 | |
135 | @include cb(234px, 64px); | ||
136 | margin: 12px auto 0; | ||
137 | } | ||
138 | } | 135 | } |
139 | 136 | ||
140 | // 摇后结果 | 137 | // 摇后结果 |
... | @@ -295,6 +292,11 @@ | ... | @@ -295,6 +292,11 @@ |
295 | } | 292 | } |
296 | 293 | ||
297 | } | 294 | } |
295 | |||
296 | .play-too-btn { | ||
297 | @include cb(234px, 64px); | ||
298 | margin: 24px auto 0; | ||
299 | } | ||
298 | } | 300 | } |
299 | } | 301 | } |
300 | } | 302 | } | ... | ... |
... | @@ -8,7 +8,8 @@ | ... | @@ -8,7 +8,8 @@ |
8 | <view class="top-space"></view> | 8 | <view class="top-space"></view> |
9 | <view class="content"> | 9 | <view class="content"> |
10 | <!-- 摇一摇 --> | 10 | <!-- 摇一摇 --> |
11 | <view wx:if="{{1>10}}" class="shake"> | 11 | <!-- bindtap="queryWishbillAssist" --> |
12 | <view wx:if="{{coopInfo.isAssist != 1}}" class="shake"> | ||
12 | <image class="ebg" mode="widthFix" src="../../image/oss/coop/coop-c2.png" /> | 13 | <image class="ebg" mode="widthFix" src="../../image/oss/coop/coop-c2.png" /> |
13 | <view class="space1"></view> | 14 | <view class="space1"></view> |
14 | <view class="cont"> | 15 | <view class="cont"> |
... | @@ -22,6 +23,7 @@ | ... | @@ -22,6 +23,7 @@ |
22 | </view> | 23 | </view> |
23 | </view> | 24 | </view> |
24 | </view> | 25 | </view> |
26 | <view bindtap="onPlayTooHandler" class="play-too-btn">我也要玩</view> | ||
25 | </view> | 27 | </view> |
26 | <!-- 摇后结果 --> | 28 | <!-- 摇后结果 --> |
27 | <view wx:else class="result-wrap"> | 29 | <view wx:else class="result-wrap"> |
... | @@ -36,7 +38,7 @@ | ... | @@ -36,7 +38,7 @@ |
36 | </view> | 38 | </view> |
37 | </view> | 39 | </view> |
38 | <view class="tips2"> | 40 | <view class="tips2"> |
39 | <text class="t1">太厉害了\n您总共摇出了140弹力值</text> | 41 | <text class="t1">太厉害了\n您总共摇出了{{coopInfo.totalElasticValue}}弹力值</text> |
40 | </view> | 42 | </view> |
41 | <!-- 奖品 --> | 43 | <!-- 奖品 --> |
42 | <view class="wish"> | 44 | <view class="wish"> |
... | @@ -71,3 +73,7 @@ | ... | @@ -71,3 +73,7 @@ |
71 | <van-popup show="{{ groupMemberCoopVisible }}"> | 73 | <van-popup show="{{ groupMemberCoopVisible }}"> |
72 | <tips-group-member-coop-comp bind:evtcomp="evtcomp"></tips-group-member-coop-comp> | 74 | <tips-group-member-coop-comp bind:evtcomp="evtcomp"></tips-group-member-coop-comp> |
73 | </van-popup> | 75 | </van-popup> |
76 | |||
77 | <van-popup show="{{ tipsCommonVisible }}"> | ||
78 | <tips-common-comp bind:evtcomp="evtcomp" inner-text="{{tipsInnerText}}"></tips-common-comp> | ||
79 | </van-popup> | ... | ... |
1 | import { | 1 | import { |
2 | getBindtapData | 2 | wishbillGiftQuery |
3 | } from '../../const/custom-data'; | ||
4 | import { | ||
5 | getBindtapData, | ||
6 | pxToRpx | ||
3 | } from '../../utils/util'; | 7 | } from '../../utils/util'; |
4 | import Date from '../../utils/date'; | 8 | import Date from '../../utils/date'; |
9 | import QR from '../../utils/qrcode' | ||
10 | |||
5 | let app = getApp(); | 11 | let app = getApp(); |
6 | Page({ | 12 | Page({ |
7 | data: { | 13 | data: { |
8 | nearbyStoreVisible: true, | ||
9 | userInfo: {}, | 14 | userInfo: {}, |
10 | used: false, //优惠券已使用,另外的样式 | 15 | used: false, //优惠券已使用,另外的样式 |
11 | couponInfo: { | 16 | wishInfo: {}, |
12 | "couponId": "20839", | 17 | couponInfo: {}, |
13 | "couponCode": "RLLL1IHG", | 18 | nearbyStoreVisible: false, |
14 | "rule": "RLLL1IHG", | 19 | qrImagePath: "", |
15 | "startDate": 1564479217000, | 20 | location: {}, |
16 | "endDate": 1567094399000, | ||
17 | "type": 4, | ||
18 | "name": "眼部护理体验券-7月24日", | ||
19 | "state": 0, | ||
20 | "endDateStr": "19-08-29" | ||
21 | } | ||
22 | }, | 21 | }, |
23 | onShareAppMessage() {}, | 22 | onShareAppMessage() {}, |
24 | onLoad(options) { | 23 | onLoad(options) { |
24 | // let wishInfo = options; | ||
25 | let wishInfo = wishbillGiftQuery.order; | ||
26 | let couponInfo = wishInfo.coupon; | ||
27 | |||
28 | // 设置起止时间 | ||
29 | couponInfo.startDateStr = new Date(couponInfo.startDate).toString("yyyy.MM.dd"); | ||
30 | couponInfo.endDateStr = new Date(couponInfo.endDate).toString("yyyy.MM.dd"); | ||
31 | |||
32 | // 判断是否使用 | ||
33 | // 自提券 使用状态(0=未使用 1=已过期,2=已使用) | ||
34 | let used = couponInfo.state != 0; | ||
35 | // used = true; | ||
36 | |||
37 | // 设置数据 | ||
38 | this.setData({ | ||
39 | wishInfo: wishInfo, | ||
40 | couponInfo: couponInfo, | ||
41 | used: used | ||
42 | }) | ||
43 | this.initData(); | ||
44 | }, | ||
45 | initData() { | ||
25 | app.queryIndex().then((result) => { | 46 | app.queryIndex().then((result) => { |
26 | let couponInfo = this.data.couponInfo; | ||
27 | couponInfo.startDateStr = new Date(couponInfo.startDate).toString("yyyy.MM.dd"); | ||
28 | couponInfo.endDateStr = new Date(couponInfo.endDate).toString("yyyy.MM.dd"); | ||
29 | this.setData({ | 47 | this.setData({ |
30 | userInfo: app.globalData.userInfo, | 48 | userInfo: app.globalData.userInfo |
31 | couponInfo: couponInfo | ||
32 | }) | 49 | }) |
33 | this.initData(); | 50 | |
51 | // 设置二维码 | ||
52 | let couponInfo = this.data.couponInfo; | ||
53 | let qrSize = this.setCanvasSize(340); | ||
54 | console.log("couponInfo:", couponInfo); | ||
55 | let codeContent = couponInfo.couponCode || ''; | ||
56 | this.createQrCode(codeContent, 'qrcanvas', qrSize.w, qrSize.h); | ||
57 | |||
34 | }) | 58 | }) |
35 | }, | 59 | }, |
36 | initData() { | 60 | /** |
37 | // this.setData({ | 61 | * 请求门店地址 |
38 | // couponInfo: app.globalData.curCoupon | 62 | */ |
39 | // }) | 63 | queryShop() { |
64 | this.selectComponent("#nearbyStoreComp").queryShop().then((result) => { | ||
65 | this.setData({ | ||
66 | nearbyStoreVisible: true | ||
67 | }) | ||
68 | }) | ||
40 | }, | 69 | }, |
41 | // 查看可用门店 | 70 | // 查看可用门店 |
42 | onNearbyStoreHandler() { | 71 | onNearbyStoreHandler(evt) { |
43 | 72 | this.wxLocation(); | |
73 | }, | ||
74 | // 使用微信位置 | ||
75 | wxLocation() { | ||
76 | let _this = this; | ||
77 | wx.getLocation({ | ||
78 | type: 'wgs84', | ||
79 | success(res) { | ||
80 | _this.setData({ | ||
81 | location: res | ||
82 | }) | ||
83 | _this.queryShop(); | ||
84 | }, | ||
85 | fail(err) { | ||
86 | wx.getSetting({ | ||
87 | success: (res) => { | ||
88 | if (!res.authSetting['scope.userLocation']) { | ||
89 | // 未授权 | ||
90 | wx.showModal({ | ||
91 | title: '提示', | ||
92 | content: '小程序请求访问地理位置', | ||
93 | confirmText: '前往授权', | ||
94 | success(res) { | ||
95 | if (res.confirm) { | ||
96 | wx.openSetting({ | ||
97 | complete() { | ||
98 | //设置完后重拉一遍位置,拉不到就算了 | ||
99 | wx.getLocation({ | ||
100 | type: 'wgs84', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 | ||
101 | success: function (res) { | ||
102 | _this.setData({ | ||
103 | location: res | ||
104 | }) | ||
105 | _this.queryShop(); | ||
106 | }, | ||
107 | fail: function () { | ||
108 | _this.queryShop(); | ||
109 | } | ||
110 | }) | ||
111 | } | ||
112 | }) | ||
113 | } else if (res.cancel) { | ||
114 | // 模态窗取消 | ||
115 | _this.queryShop(); | ||
116 | } | ||
117 | } | ||
118 | }) | ||
119 | } | ||
120 | } | ||
121 | }) | ||
122 | } | ||
123 | }) | ||
44 | }, | 124 | }, |
125 | createQrCode(content, canvasId, cavW, cavH) { | ||
126 | //调用插件中的draw方法,绘制二维码图片 | ||
127 | QR.api.draw(content, canvasId, cavW, cavH); | ||
128 | this.canvasToTempImage(canvasId); | ||
129 | }, | ||
130 | //获取临时缓存图片路径,存入data中 | ||
131 | canvasToTempImage(canvasId) { | ||
132 | let that = this; | ||
133 | wx.canvasToTempFilePath({ | ||
134 | canvasId, // 这里canvasId即之前创建的canvas-id | ||
135 | success: function (res) { | ||
136 | let tempFilePath = res.tempFilePath; | ||
137 | console.log(tempFilePath); | ||
138 | that.setData({ // 如果采用mpvue,即 this.imagePath = tempFilePath | ||
139 | qrImagePath: tempFilePath, | ||
140 | }); | ||
141 | }, | ||
142 | fail: function (res) { | ||
143 | console.log(res); | ||
144 | } | ||
145 | }); | ||
146 | }, | ||
147 | //适配不同屏幕大小的canvas | ||
148 | setCanvasSize(sz) { | ||
149 | var size = {}; | ||
150 | try { | ||
151 | var res = wx.getSystemInfoSync(); | ||
152 | var scale = 750 / sz; //不同屏幕下canvas的适配比例;设计稿是750宽 | ||
153 | var width = res.windowWidth / scale; | ||
154 | var height = width; //canvas画布为正方形 | ||
155 | size.w = width; | ||
156 | size.h = height; | ||
157 | } catch (e) { | ||
158 | // Do something when catch error | ||
159 | console.log("获取设备信息失败" + e); | ||
160 | } | ||
161 | return size; | ||
162 | }, | ||
163 | |||
45 | hideMask() { | 164 | hideMask() { |
46 | this.setData({ | 165 | this.setData({ |
47 | nearbyStoreVisible: false | 166 | nearbyStoreVisible: false |
... | @@ -56,6 +175,18 @@ Page({ | ... | @@ -56,6 +175,18 @@ Page({ |
56 | switch (name) { | 175 | switch (name) { |
57 | 176 | ||
58 | case "_evt_hide": | 177 | case "_evt_hide": |
178 | this.hideMask(); | ||
179 | break; | ||
180 | |||
181 | // 提交完毕 | ||
182 | case "_evt_submit_store_complete": | ||
183 | // 刷新状态 | ||
184 | this.hideMask(); | ||
185 | wx.showModal({ | ||
186 | content: '预约成功', | ||
187 | showCancel: false, | ||
188 | success(res) {} | ||
189 | }); | ||
59 | break; | 190 | break; |
60 | 191 | ||
61 | default: | 192 | default: | ... | ... |
... | @@ -82,8 +82,17 @@ | ... | @@ -82,8 +82,17 @@ |
82 | .qrcode { | 82 | .qrcode { |
83 | width: 340px; | 83 | width: 340px; |
84 | height: 340px; | 84 | height: 340px; |
85 | background-color: wheat; | ||
86 | margin: 0 auto; | 85 | margin: 0 auto; |
86 | |||
87 | image { | ||
88 | width: 340px; | ||
89 | height: 340px; | ||
90 | } | ||
91 | |||
92 | canvas { | ||
93 | width: 340px; | ||
94 | height: 340px; | ||
95 | } | ||
87 | } | 96 | } |
88 | 97 | ||
89 | .code { | 98 | .code { |
... | @@ -110,14 +119,20 @@ | ... | @@ -110,14 +119,20 @@ |
110 | // 已使用 | 119 | // 已使用 |
111 | .used { | 120 | .used { |
112 | $alp: 0.3; | 121 | $alp: 0.3; |
122 | opacity: $alp; | ||
113 | 123 | ||
114 | .qrcode { | 124 | // .qrcode { |
115 | opacity: $alp; | 125 | // opacity: $alp; |
116 | } | 126 | // } |
127 | |||
128 | // .info { | ||
129 | // opacity: $alp; | ||
130 | // } | ||
131 | |||
132 | // .code{ | ||
133 | // opacity: $alp; | ||
134 | // } | ||
117 | 135 | ||
118 | .info { | ||
119 | opacity: $alp; | ||
120 | } | ||
121 | } | 136 | } |
122 | 137 | ||
123 | 138 | ... | ... |
... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
4 | <view class="decoration"> | 4 | <view class="decoration"> |
5 | <image class="d1" src="../../image/oss/my-card/my-card-d1.png" mode="widthFix" /> | 5 | <image class="d1" src="../../image/oss/my-card/my-card-d1.png" mode="widthFix" /> |
6 | <image class="d2" src="../../image/oss/my-card/my-card-d2.png" mode="widthFix" /> | 6 | <image class="d2" src="../../image/oss/my-card/my-card-d2.png" mode="widthFix" /> |
7 | <image class="d3" src="../../image/oss/question/question-c1.png" mode="widthFix" /> | 7 | <!-- <image class="d3" src="../../image/oss/question/question-c1.png" mode="widthFix" /> --> |
8 | </view> | 8 | </view> |
9 | <view class="app__content main"> | 9 | <view class="app__content main"> |
10 | <view class="top-space"></view> | 10 | <view class="top-space"></view> |
... | @@ -17,7 +17,10 @@ | ... | @@ -17,7 +17,10 @@ |
17 | <view class="cont {{used?'used':''}}"> | 17 | <view class="cont {{used?'used':''}}"> |
18 | <view class="space1"></view> | 18 | <view class="space1"></view> |
19 | <!-- 二维码 --> | 19 | <!-- 二维码 --> |
20 | <view class="qrcode"></view> | 20 | <view class="qrcode"> |
21 | <image wx:if="{{qrImagePath}}" class="image" mode="widthFix" src="{{qrImagePath}}" /> | ||
22 | <canvas wx:else canvas-id="qrcanvas" /> | ||
23 | </view> | ||
21 | <view class="code">{{couponInfo.couponCode}}</view> | 24 | <view class="code">{{couponInfo.couponCode}}</view> |
22 | <view class="info"> | 25 | <view class="info"> |
23 | <view class="c1">手机号:{{userInfo.mobile}}</view> | 26 | <view class="c1">手机号:{{userInfo.mobile}}</view> |
... | @@ -36,5 +39,5 @@ | ... | @@ -36,5 +39,5 @@ |
36 | </view> | 39 | </view> |
37 | </view> | 40 | </view> |
38 | <van-popup show="{{ nearbyStoreVisible }}" position="bottom" bind:click-overlay="hideMask"> | 41 | <van-popup show="{{ nearbyStoreVisible }}" position="bottom" bind:click-overlay="hideMask"> |
39 | <tips-nearby-store-comp bind:evtcomp="evtcomp" wish-info="{{curWish}}" status="{{status}}"></tips-nearby-store-comp> | 42 | <tips-nearby-store-comp id="nearbyStoreComp" bind:evtcomp="evtcomp" wish-info="{{wishInfo}}" location="{{location}}" selectedMode="{{false}}"></tips-nearby-store-comp> |
40 | </van-popup> | 43 | </van-popup> | ... | ... |
... | @@ -62,19 +62,24 @@ Page({ | ... | @@ -62,19 +62,24 @@ Page({ |
62 | initShake() { | 62 | initShake() { |
63 | let _this = this; | 63 | let _this = this; |
64 | wx.onAccelerometerChange(function (res) { | 64 | wx.onAccelerometerChange(function (res) { |
65 | if (this.data.isPageVisible && this.data.isPageVisible) { | 65 | if (!_this.data.isPageVisible || !_this.data.isPageVisible) { |
66 | if (res.x > 2) { //偏移量为2时触发,有的使用1 | 66 | return |
67 | wx.showModal({ | 67 | } |
68 | title: '提示', | 68 | if (res.x > 1) { //偏移量为2时触发,有的使用1 |
69 | content: '触发摇一摇', | 69 | _this.setData({ |
70 | success: res => { | 70 | tipsShakeVisible: false, |
71 | _this.setData({ | 71 | tipsCreateCompleteVisible: true |
72 | tipsShakeVisible: false, | 72 | }) |
73 | tipsCreateCompleteVisible: true | 73 | // wx.showModal({ |
74 | }) | 74 | // title: '提示', |
75 | } | 75 | // content: '触发摇一摇', |
76 | }) | 76 | // success: res => { |
77 | } | 77 | // _this.setData({ |
78 | // tipsShakeVisible: false, | ||
79 | // tipsCreateCompleteVisible: true | ||
80 | // }) | ||
81 | // } | ||
82 | // }) | ||
78 | } | 83 | } |
79 | }); | 84 | }); |
80 | }, | 85 | }, | ... | ... |
... | @@ -27,10 +27,10 @@ | ... | @@ -27,10 +27,10 @@ |
27 | <view class="content"> | 27 | <view class="content"> |
28 | <!-- <view class="btn" bindtap="onWishHandler">提交心愿单</view> --> | 28 | <!-- <view class="btn" bindtap="onWishHandler">提交心愿单</view> --> |
29 | <!-- 换一批按钮 --> | 29 | <!-- 换一批按钮 --> |
30 | <view class="change-btn" bindtap="onChangeStatusHandler"> | 30 | <!-- <view class="change-btn" bindtap="onChangeStatusHandler"> |
31 | <image class="icon" src="../../image/oss/create-wish/cw-exchange-btn.png" mode="widthFix" /> | 31 | <image class="icon" src="../../image/oss/create-wish/cw-exchange-btn.png" mode="widthFix" /> |
32 | 换一批 | 32 | 换一批 |
33 | </view> | 33 | </view> --> |
34 | <!-- 心愿单 --> | 34 | <!-- 心愿单 --> |
35 | <view class="wish-container"> | 35 | <view class="wish-container"> |
36 | <image class="ebg" mode="widthFix" src="../../image/oss/create-wish/cw-border.png" /> | 36 | <image class="ebg" mode="widthFix" src="../../image/oss/create-wish/cw-border.png" /> |
... | @@ -50,7 +50,9 @@ | ... | @@ -50,7 +50,9 @@ |
50 | </view> | 50 | </view> |
51 | </view> | 51 | </view> |
52 | <!-- 提交心愿单 --> | 52 | <!-- 提交心愿单 --> |
53 | <view bindtap="onSubmitHandler" class="btn submit-btn">提交心愿单</view> | 53 | <view bindtap="onSubmitHandler" class="btn submit-btn {{myWishList.length <= 0 ? 'disable' : ''}}"> |
54 | 提交心愿单 | ||
55 | </view> | ||
54 | </view> | 56 | </view> |
55 | </view> | 57 | </view> |
56 | </view> | 58 | </view> | ... | ... |
1 | let app = getApp(); | 1 | let app = getApp(); |
2 | Page({ | 2 | Page({ |
3 | data: { | 3 | data: { |
4 | authorized: true, | ||
5 | canIUse: wx.canIUse('button.open-type.getUserInfo'), | 4 | canIUse: wx.canIUse('button.open-type.getUserInfo'), |
6 | tipsRuleVisible: false, | 5 | tipsRuleVisible: false, |
6 | indexInfo: {} | ||
7 | }, | 7 | }, |
8 | onShareAppMessage() {}, | 8 | onShareAppMessage() {}, |
9 | onLoad(options) { | 9 | onLoad(options) { |
10 | this.initData(); | 10 | this.initData(); |
11 | }, | 11 | }, |
12 | initData() { | 12 | initData() { |
13 | app.queryIndex().then((result) => { | 13 | app.queryIndex({ |
14 | console.log("result:", result); | 14 | auth: false |
15 | }).then((result) => { | ||
16 | this.setData({ | ||
17 | indexInfo: app.globalData.indexInfo | ||
18 | }) | ||
15 | }) | 19 | }) |
16 | }, | 20 | }, |
17 | // 开始互动游戏 | 21 | // 开始互动游戏 |
... | @@ -51,4 +55,26 @@ Page({ | ... | @@ -51,4 +55,26 @@ Page({ |
51 | break; | 55 | break; |
52 | } | 56 | } |
53 | }, | 57 | }, |
58 | |||
59 | bindGetUserInfo(e) { | ||
60 | wx.showLoading(); | ||
61 | this.getUserInfo(e.detail); | ||
62 | }, | ||
63 | getUserInfo(e) { | ||
64 | let _this = this; | ||
65 | app.post({ | ||
66 | url: app.api.register, | ||
67 | sid: false, | ||
68 | data: { | ||
69 | encryptedData: e.encryptedData, | ||
70 | iv: e.iv, | ||
71 | code: app.globalData.wxcode, | ||
72 | tlMemberCode: app.globalData.tlMemberCode | ||
73 | } | ||
74 | }).then((res2) => { | ||
75 | wx.hideLoading(); | ||
76 | _this.onStartHandler(); | ||
77 | }).catch((err) => {}) | ||
78 | }, | ||
79 | |||
54 | }) | 80 | }) | ... | ... |
... | @@ -13,7 +13,12 @@ | ... | @@ -13,7 +13,12 @@ |
13 | <view class="top-space"></view> | 13 | <view class="top-space"></view> |
14 | <view class="content"> | 14 | <view class="content"> |
15 | <!-- 已授权 直接到下一步操作 --> | 15 | <!-- 已授权 直接到下一步操作 --> |
16 | <button class="btn" wx:if="{{authorized}}" bindtap="onStartHandler">马上测弹力值</button> | 16 | <!-- 需要授权 --> |
17 | <button wx:if="{{indexInfo.isNeedAuth == 1}}" bindgetuserinfo="bindGetUserInfo" class="btn"> | ||
18 | 马上测弹力值 | ||
19 | </button> | ||
20 | <!-- 已授权 --> | ||
21 | <button wx:else bindtap="onStartHandler" class="btn">马上测弹力值</button> | ||
17 | <!-- 未授权 拉起授权弹窗 --> | 22 | <!-- 未授权 拉起授权弹窗 --> |
18 | <!-- <button class="btn" wx:else open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">马上测弹力值2</button> --> | 23 | <!-- <button class="btn" wx:else open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">马上测弹力值2</button> --> |
19 | </view> | 24 | </view> | ... | ... |
... | @@ -22,8 +22,9 @@ | ... | @@ -22,8 +22,9 @@ |
22 | </view> | 22 | </view> |
23 | </view> | 23 | </view> |
24 | </view> | 24 | </view> |
25 | <view class="store-btn" bindtap="onNearbyStoreHandler"> | 25 | <!-- 查看门店需要 couponId --> |
26 | <!-- <view class="store-btn" bindtap="onNearbyStoreHandler"> | ||
26 | <span class="c1">附近门店查询</span> | 27 | <span class="c1">附近门店查询</span> |
27 | </view> | 28 | </view> --> |
28 | </view> | 29 | </view> |
29 | </view> | 30 | </view> | ... | ... |
... | @@ -6,6 +6,7 @@ Page({ | ... | @@ -6,6 +6,7 @@ Page({ |
6 | wxShareTitle: "", // 分享标题 | 6 | wxShareTitle: "", // 分享标题 |
7 | wxCodePath: "", // 微信二维码参数地址,分享链接公用 | 7 | wxCodePath: "", // 微信二维码参数地址,分享链接公用 |
8 | wxCodeUrl: "", // 微信二维码图片地址 | 8 | wxCodeUrl: "", // 微信二维码图片地址 |
9 | wishList: [], | ||
9 | }, | 10 | }, |
10 | onShareAppMessage() { | 11 | onShareAppMessage() { |
11 | if (res.from === 'button') { | 12 | if (res.from === 'button') { |
... | @@ -25,6 +26,10 @@ Page({ | ... | @@ -25,6 +26,10 @@ Page({ |
25 | } | 26 | } |
26 | }, | 27 | }, |
27 | onLoad(options) { | 28 | onLoad(options) { |
29 | |||
30 | // this.setData({ | ||
31 | // wishList: wishList | ||
32 | // }) | ||
28 | app.queryIndex().then((result) => { | 33 | app.queryIndex().then((result) => { |
29 | console.log("result:", result); | 34 | console.log("result:", result); |
30 | wx.showLoading({ | 35 | wx.showLoading({ |
... | @@ -149,55 +154,104 @@ Page({ | ... | @@ -149,55 +154,104 @@ Page({ |
149 | getPosterConfig() { | 154 | getPosterConfig() { |
150 | // 合成图片需要的数据 | 155 | // 合成图片需要的数据 |
151 | let { | 156 | let { |
152 | userInfo | 157 | userInfo, |
158 | posterWishList, | ||
153 | } = app.globalData; | 159 | } = app.globalData; |
154 | let codeUrl = this.data.wxCodeUrl; | 160 | let codeUrl = this.data.wxCodeUrl; |
161 | console.log("posterWishList:", posterWishList); | ||
162 | |||
163 | let images = [ | ||
164 | // 底图 | ||
165 | { | ||
166 | width: 700, | ||
167 | height: 921, | ||
168 | x: 0, | ||
169 | y: 0, | ||
170 | url: '../../image/draw/draw-c1.png', | ||
171 | }, | ||
172 | // 头像 | ||
173 | { | ||
174 | width: 102, | ||
175 | height: 102, | ||
176 | x: 35, | ||
177 | y: 779, | ||
178 | borderRadius: 102, | ||
179 | url: userInfo.avatar, | ||
180 | }, | ||
181 | // 小程序码 | ||
182 | { | ||
183 | width: 118, | ||
184 | height: 118, | ||
185 | x: 560, | ||
186 | y: 780, | ||
187 | url: codeUrl, | ||
188 | zIndex: 14 | ||
189 | } | ||
190 | ]; | ||
191 | |||
192 | let texts = [{ | ||
193 | x: 165, | ||
194 | y: 810, | ||
195 | width: 360, | ||
196 | lineHeight: 32, | ||
197 | fontSize: 26, | ||
198 | lineNum: 3, | ||
199 | baseLine: 'middle', | ||
200 | text: `${userInfo.nickname}正在参加丸美眼霜节心愿单活动,需要你的倾情相助!`, | ||
201 | color: '#666666', | ||
202 | zIndex: 111 | ||
203 | }]; | ||
204 | |||
205 | let originPoint = { | ||
206 | x: 55, | ||
207 | y: 160, | ||
208 | } | ||
209 | |||
210 | posterWishList.forEach((element, index) => { | ||
211 | // 产品背景 | ||
212 | let egb = { | ||
213 | width: 165, | ||
214 | height: 165, | ||
215 | x: originPoint.x + (215 * index), | ||
216 | y: originPoint.y, | ||
217 | url: '../../image/draw/draw-c2.png', | ||
218 | } | ||
219 | |||
220 | // 产品图 | ||
221 | let product = { | ||
222 | width: 165, | ||
223 | height: 165, | ||
224 | x: originPoint.x + (215 * index), | ||
225 | y: originPoint.y, | ||
226 | url: '../../image/prize/prize-' + element.tag + '.png', | ||
227 | } | ||
228 | |||
229 | let productDesc = { | ||
230 | x: originPoint.x + (215 * index), | ||
231 | y: originPoint.y + 165 + 12, | ||
232 | width: 165, | ||
233 | fontSize: 24, | ||
234 | lineHeight: 28, | ||
235 | lineNum: 3, | ||
236 | baseLine: 'top', | ||
237 | text: `${element.prizeName}`, | ||
238 | color: '#bc3239', | ||
239 | zIndex: 111 | ||
240 | } | ||
241 | |||
242 | images.push(egb); | ||
243 | images.push(product); | ||
244 | texts.push(productDesc); | ||
245 | }); | ||
246 | |||
155 | let posterData = { | 247 | let posterData = { |
156 | width: 700, | 248 | width: 700, |
157 | height: 921, | 249 | height: 921, |
158 | debug: false, | 250 | debug: false, |
159 | blocks: [], | 251 | blocks: [], |
160 | images: [ | 252 | images: images, |
161 | // 底图 | ||
162 | { | ||
163 | width: 700, | ||
164 | height: 921, | ||
165 | x: 0, | ||
166 | y: 0, | ||
167 | url: '../../image/draw/draw-c1.png', | ||
168 | }, | ||
169 | // 头像 | ||
170 | { | ||
171 | width: 102, | ||
172 | height: 102, | ||
173 | x: 35, | ||
174 | y: 779, | ||
175 | borderRadius: 102, | ||
176 | url: userInfo.avatar, | ||
177 | }, | ||
178 | // 小程序码 | ||
179 | { | ||
180 | width: 118, | ||
181 | height: 118, | ||
182 | x: 560, | ||
183 | y: 780, | ||
184 | url: codeUrl, | ||
185 | zIndex: 14 | ||
186 | } | ||
187 | ], | ||
188 | lines: [], | 253 | lines: [], |
189 | texts: [{ | 254 | texts: texts, |
190 | x: 165, | ||
191 | y: 810, | ||
192 | width: 360, | ||
193 | lineHeight: 32, | ||
194 | fontSize: 26, | ||
195 | lineNum: 3, | ||
196 | baseLine: 'middle', | ||
197 | text: `${userInfo.nickname}正在参加丸美眼霜节心愿单活动,需要你的倾情相助!`, | ||
198 | color: '#666666', | ||
199 | zIndex: 111 | ||
200 | }], | ||
201 | } | 255 | } |
202 | return posterData; | 256 | return posterData; |
203 | }, | 257 | }, | ... | ... |
1 | import { | ||
2 | wishbillGiftQuery | ||
3 | } from '../../const/custom-data'; | ||
4 | 1 | ||
5 | import { | 2 | import { |
6 | getBindtapData, | 3 | getBindtapData, |
7 | pxToRpx | 4 | pxToRpx, |
5 | getLocalDistance | ||
8 | } from '../../utils/util'; | 6 | } from '../../utils/util'; |
9 | import Date from '../../utils/date'; | 7 | import Date from '../../utils/date'; |
10 | |||
11 | import QR from '../../utils/qrcode' | 8 | import QR from '../../utils/qrcode' |
12 | 9 | ||
13 | |||
14 | let app = getApp(); | 10 | let app = getApp(); |
15 | Page({ | 11 | Page({ |
16 | data: { | 12 | data: { |
... | @@ -24,40 +20,67 @@ Page({ | ... | @@ -24,40 +20,67 @@ Page({ |
24 | }, | 20 | }, |
25 | onShareAppMessage() {}, | 21 | onShareAppMessage() {}, |
26 | onLoad(options) { | 22 | onLoad(options) { |
27 | // let wishInfo = options; | ||
28 | let wishInfo = wishbillGiftQuery.order; | ||
29 | let couponInfo = wishInfo.coupon; | ||
30 | 23 | ||
31 | // 设置起止时间 | 24 | let giftData = app.globalData.giftData; |
32 | couponInfo.startDateStr = new Date(couponInfo.startDate).toString("yyyy.MM.dd"); | 25 | let wishInfo = giftData.order; |
33 | couponInfo.endDateStr = new Date(couponInfo.endDate).toString("yyyy.MM.dd"); | 26 | let couponInfo = wishInfo.coupon; |
34 | |||
35 | // 判断是否使用 | ||
36 | // 自提券 使用状态(0=未使用 1=已过期,2=已使用) | ||
37 | let used = couponInfo.state != 0; | ||
38 | // used = true; | ||
39 | 27 | ||
40 | // 设置数据 | 28 | // 设置数据 |
41 | this.setData({ | 29 | this.setData({ |
42 | wishInfo: wishInfo, | 30 | wishInfo: wishInfo, |
43 | couponInfo: couponInfo, | 31 | couponInfo: couponInfo |
44 | used: used | ||
45 | }) | 32 | }) |
33 | |||
46 | this.initData(); | 34 | this.initData(); |
47 | }, | 35 | }, |
48 | initData() { | 36 | initData() { |
37 | let _this = this; | ||
49 | app.queryIndex().then((result) => { | 38 | app.queryIndex().then((result) => { |
50 | this.setData({ | 39 | this.setData({ |
51 | userInfo: app.globalData.userInfo | 40 | userInfo: app.globalData.userInfo |
52 | }) | 41 | }) |
53 | 42 | ||
43 | let wishInfo = this.data.wishInfo; | ||
44 | let couponInfo = wishInfo.coupon; | ||
45 | |||
54 | // 设置二维码 | 46 | // 设置二维码 |
55 | let couponInfo = this.data.couponInfo; | ||
56 | let qrSize = this.setCanvasSize(300); | 47 | let qrSize = this.setCanvasSize(300); |
57 | console.log("couponInfo:", couponInfo); | 48 | console.log("couponInfo:", couponInfo); |
58 | let codeContent = couponInfo.couponCode || ''; | 49 | let codeContent = couponInfo.couponCode || ''; |
59 | this.createQrCode(codeContent, 'qrcanvas', qrSize.w, qrSize.h); | 50 | this.createQrCode(codeContent, 'qrcanvas', qrSize.w, qrSize.h); |
60 | 51 | ||
52 | // 判断是否使用 | ||
53 | // 自提券 使用状态(0=未使用 1=已过期,2=已使用) | ||
54 | let used = couponInfo.state != 0; | ||
55 | |||
56 | // 设置起止时间 | ||
57 | couponInfo.startDateStr = new Date(couponInfo.startDate).toString("yyyy.MM.dd"); | ||
58 | couponInfo.endDateStr = new Date(couponInfo.endDate).toString("yyyy.MM.dd"); | ||
59 | |||
60 | // 设置数据 | ||
61 | this.setData({ | ||
62 | couponInfo: couponInfo, | ||
63 | used: used | ||
64 | }) | ||
65 | |||
66 | |||
67 | // 设置坐标 | ||
68 | wx.getLocation({ | ||
69 | type: 'gcj02', | ||
70 | success(res) { | ||
71 | let targetLocation = { | ||
72 | latitude: wishInfo.latitude, | ||
73 | longitude: wishInfo.longitude, | ||
74 | } | ||
75 | let distance = getLocalDistance(res, targetLocation).dis; | ||
76 | wishInfo.distance = distance; | ||
77 | console.log("distance:", distance); | ||
78 | _this.setData({ | ||
79 | wishInfo: wishInfo | ||
80 | }) | ||
81 | } | ||
82 | }) | ||
83 | |||
61 | }) | 84 | }) |
62 | }, | 85 | }, |
63 | /** | 86 | /** |
... | @@ -78,7 +101,7 @@ Page({ | ... | @@ -78,7 +101,7 @@ Page({ |
78 | wxLocation() { | 101 | wxLocation() { |
79 | let _this = this; | 102 | let _this = this; |
80 | wx.getLocation({ | 103 | wx.getLocation({ |
81 | type: 'wgs84', | 104 | type: 'gcj02', |
82 | success(res) { | 105 | success(res) { |
83 | _this.setData({ | 106 | _this.setData({ |
84 | location: res | 107 | location: res |
... | @@ -125,6 +148,27 @@ Page({ | ... | @@ -125,6 +148,27 @@ Page({ |
125 | } | 148 | } |
126 | }) | 149 | }) |
127 | }, | 150 | }, |
151 | |||
152 | /** | ||
153 | * 显示位置 | ||
154 | * @param {*} e | ||
155 | */ | ||
156 | onShowLocHandler(evt) { | ||
157 | let item = this.data.wishInfo; | ||
158 | console.log("item:", item); | ||
159 | |||
160 | wx.openLocation({ | ||
161 | latitude: item.latitude, // 纬度,范围为-90~90,负数表示南纬 | ||
162 | longitude: item.longitude, // 经度,范围为-180~180,负数表示西经 | ||
163 | scale: 18, // 缩放比例 | ||
164 | name: item.storeName, // 位置名 | ||
165 | address: item.storeAddress, // 地址的详细说明 | ||
166 | success: function (res) { | ||
167 | // success | ||
168 | } | ||
169 | }) | ||
170 | }, | ||
171 | |||
128 | createQrCode(content, canvasId, cavW, cavH) { | 172 | createQrCode(content, canvasId, cavW, cavH) { |
129 | //调用插件中的draw方法,绘制二维码图片 | 173 | //调用插件中的draw方法,绘制二维码图片 |
130 | QR.api.draw(content, canvasId, cavW, cavH); | 174 | QR.api.draw(content, canvasId, cavW, cavH); |
... | @@ -185,11 +229,29 @@ Page({ | ... | @@ -185,11 +229,29 @@ Page({ |
185 | case "_evt_submit_store_complete": | 229 | case "_evt_submit_store_complete": |
186 | // 刷新状态 | 230 | // 刷新状态 |
187 | this.hideMask(); | 231 | this.hideMask(); |
188 | wx.showModal({ | 232 | app.post({ |
189 | content: '预约成功', | 233 | url: app.api.wishbillGiftQuery, |
190 | showCancel: false, | 234 | data: { |
191 | success(res) {} | 235 | instanceCode: curData.instanceCode |
192 | }); | 236 | } |
237 | }).then((result) => { | ||
238 | |||
239 | // 重新拉取数据 | ||
240 | let giftData = result; | ||
241 | let wishInfo = giftData.order; | ||
242 | let couponInfo = wishInfo.coupon; | ||
243 | this.setData({ | ||
244 | wishInfo: wishInfo, | ||
245 | couponInfo: couponInfo | ||
246 | }) | ||
247 | this.initData(); | ||
248 | |||
249 | wx.showModal({ | ||
250 | content: '预约成功', | ||
251 | showCancel: false, | ||
252 | success(res) {} | ||
253 | }); | ||
254 | }) | ||
193 | break; | 255 | break; |
194 | 256 | ||
195 | default: | 257 | default: | ... | ... |
... | @@ -89,6 +89,11 @@ | ... | @@ -89,6 +89,11 @@ |
89 | width: 300px; | 89 | width: 300px; |
90 | height: 300px; | 90 | height: 300px; |
91 | } | 91 | } |
92 | |||
93 | canvas { | ||
94 | width: 300px; | ||
95 | height: 300px; | ||
96 | } | ||
92 | } | 97 | } |
93 | 98 | ||
94 | // 数字码 | 99 | // 数字码 |
... | @@ -134,7 +139,7 @@ | ... | @@ -134,7 +139,7 @@ |
134 | 139 | ||
135 | .info { | 140 | .info { |
136 | @extend .bb; | 141 | @extend .bb; |
137 | padding: 0 40px 0 20px; | 142 | padding: 0 0px 0 0px; |
138 | 143 | ||
139 | .tit { | 144 | .tit { |
140 | display: flex; | 145 | display: flex; |
... | @@ -142,7 +147,10 @@ | ... | @@ -142,7 +147,10 @@ |
142 | font-size: 24px; | 147 | font-size: 24px; |
143 | color: #333333; | 148 | color: #333333; |
144 | 149 | ||
145 | .name {} | 150 | .name { |
151 | max-width: 250px; | ||
152 | @include ellipsis(1); | ||
153 | } | ||
146 | 154 | ||
147 | .distance { | 155 | .distance { |
148 | margin-left: 16px; | 156 | margin-left: 16px; |
... | @@ -154,6 +162,7 @@ | ... | @@ -154,6 +162,7 @@ |
154 | font-size: 20px; | 162 | font-size: 20px; |
155 | color: #999999; | 163 | color: #999999; |
156 | margin-top: 10px; | 164 | margin-top: 10px; |
165 | @include ellipsis(2); | ||
157 | } | 166 | } |
158 | } | 167 | } |
159 | 168 | ... | ... |
1 | <canvas style="width: 300rpx;height: 300rpx;visibility: hidden;position:absolute;" canvas-id="qrcanvas" /> | ||
2 | <view class="page"> | 1 | <view class="page"> |
3 | <view class="app__bgc bgc"></view> | 2 | <view class="app__bgc bgc"></view> |
4 | <view class="app__bg bg"></view> | 3 | <view class="app__bg bg"></view> |
5 | <view class="decoration"> | 4 | <view class="decoration"> |
6 | <image class="d1" src="../../image/oss/my-card/my-card-d1.png" mode="widthFix" /> | 5 | <image class="d1" src="../../image/oss/my-card/my-card-d1.png" mode="widthFix" /> |
7 | <image class="d2" src="../../image/oss/my-card/my-card-d2.png" mode="widthFix" /> | 6 | <image class="d2" src="../../image/oss/my-card/my-card-d2.png" mode="widthFix" /> |
8 | <image class="d3" src="../../image/oss/question/question-c1.png" mode="widthFix" /> | 7 | <!-- <image class="d3" src="../../image/oss/question/question-c1.png" mode="widthFix" /> --> |
9 | </view> | 8 | </view> |
10 | <view class="app__content main"> | 9 | <view class="app__content main"> |
11 | <view class="top-space"></view> | 10 | <view class="top-space"></view> |
... | @@ -28,11 +27,12 @@ | ... | @@ -28,11 +27,12 @@ |
28 | </view> | 27 | </view> |
29 | <!-- 二维码 --> | 28 | <!-- 二维码 --> |
30 | <view class="qrcode"> | 29 | <view class="qrcode"> |
31 | <image class="image" mode="widthFix" src="{{qrImagePath}}" /> | 30 | <image wx:if="{{qrImagePath}}" class="image" mode="widthFix" src="{{qrImagePath}}" /> |
31 | <canvas wx:else canvas-id="qrcanvas" /> | ||
32 | </view> | 32 | </view> |
33 | <view class="code">{{couponInfo.couponCode}}</view> | 33 | <view class="code">{{couponInfo.couponCode}}</view> |
34 | <!-- 预约自提按钮 --> | 34 | <!-- 预约自提按钮 --> |
35 | <view wx:if="{{1<10}}" bindtap="onNearbyStoreHandler" class="reservation-btn"> | 35 | <view wx:if="{{!wishInfo.storeCode}}" bindtap="onNearbyStoreHandler" class="reservation-btn"> |
36 | 预约自提门店 | 36 | 预约自提门店 |
37 | </view> | 37 | </view> |
38 | <!-- 预约成功 --> | 38 | <!-- 预约成功 --> |
... | @@ -42,12 +42,14 @@ | ... | @@ -42,12 +42,14 @@ |
42 | <view class="pos"> | 42 | <view class="pos"> |
43 | <view class="info"> | 43 | <view class="info"> |
44 | <view class="tit"> | 44 | <view class="tit"> |
45 | <view class="name">坂田天虹店</view> | 45 | <view class="name">{{wishInfo.storeName}}</view> |
46 | <view class="distance">距您1.2公里</view> | 46 | <view wx:if="{{wishInfo.distance}}" class="distance"> |
47 | 距您{{wishInfo.distance}} | ||
48 | </view> | ||
47 | </view> | 49 | </view> |
48 | <view class="address">地址:安徽省安庆市大观区集贤南路43号八佰伴购物中心一楼</view> | 50 | <view class="address">{{wishInfo.storeAddress}}</view> |
49 | </view> | 51 | </view> |
50 | <view class="loc"> | 52 | <view bindtap="onShowLocHandler" data-data="{{item}}" class="loc"> |
51 | <image class="icon" mode="widthFix" src="../../image/oss/icon/icon-loc.png" /> | 53 | <image class="icon" mode="widthFix" src="../../image/oss/icon/icon-loc.png" /> |
52 | <view class="txt">导航</view> | 54 | <view class="txt">导航</view> |
53 | </view> | 55 | </view> | ... | ... |
... | @@ -4,7 +4,7 @@ let Utils = require('../../utils/util.js'); | ... | @@ -4,7 +4,7 @@ let Utils = require('../../utils/util.js'); |
4 | let app = getApp(); | 4 | let app = getApp(); |
5 | Page({ | 5 | Page({ |
6 | data: { | 6 | data: { |
7 | tipsInnerText:"", | 7 | tipsInnerText: "", |
8 | redirect: "createWish", // 注册完的重定向页面 | 8 | redirect: "createWish", // 注册完的重定向页面 |
9 | tipsRegisteredVisible: false, | 9 | tipsRegisteredVisible: false, |
10 | tipsCommonVisible: false, | 10 | tipsCommonVisible: false, |
... | @@ -13,8 +13,17 @@ Page({ | ... | @@ -13,8 +13,17 @@ Page({ |
13 | mobile: "", | 13 | mobile: "", |
14 | verifyCode: "", | 14 | verifyCode: "", |
15 | birthday: "", | 15 | birthday: "", |
16 | password: "qq123456", | 16 | password: "", |
17 | sex: 1, | 17 | sex: -1, |
18 | sexList: [{ | ||
19 | label: "女", | ||
20 | value: 0 | ||
21 | }, | ||
22 | { | ||
23 | label: "男", | ||
24 | value: 1 | ||
25 | }, | ||
26 | ], | ||
18 | isTerms: false, | 27 | isTerms: false, |
19 | // form end | 28 | // form end |
20 | auth_time: 0, | 29 | auth_time: 0, |
... | @@ -25,8 +34,7 @@ Page({ | ... | @@ -25,8 +34,7 @@ Page({ |
25 | onLoad(options) { | 34 | onLoad(options) { |
26 | this.initData(); | 35 | this.initData(); |
27 | }, | 36 | }, |
28 | initData() { | 37 | initData() {}, |
29 | }, | ||
30 | showLog(msg) { | 38 | showLog(msg) { |
31 | wx.showToast({ | 39 | wx.showToast({ |
32 | title: msg, | 40 | title: msg, |
... | @@ -74,18 +82,27 @@ Page({ | ... | @@ -74,18 +82,27 @@ Page({ |
74 | // 表单检查 | 82 | // 表单检查 |
75 | checkForm() { | 83 | checkForm() { |
76 | return new Promise((resolve, reject) => { | 84 | return new Promise((resolve, reject) => { |
77 | if (!this.data.name) { | 85 | if (!this.data.mobile) { |
78 | this.showLog("请输入姓名"); | ||
79 | reject(); | ||
80 | } else if (!this.data.mobile) { | ||
81 | this.showLog("请输入手机号码"); | 86 | this.showLog("请输入手机号码"); |
82 | reject(); | 87 | reject(); |
83 | } else if (!Utils.checkMobile(this.data.mobile)) { | 88 | } else if (!Utils.checkMobile(this.data.mobile)) { |
84 | this.showLog("请输正确手机号码"); | 89 | this.showLog("请输正确手机号码"); |
85 | reject(); | 90 | reject(); |
91 | } else if (!this.data.name) { | ||
92 | this.showLog("请输入姓名"); | ||
93 | reject(); | ||
94 | } else if (!this.data.birthday) { | ||
95 | this.showLog("请输入生日"); | ||
96 | reject(); | ||
97 | } else if (!this.data.password) { | ||
98 | this.showLog("请输入登陆密码"); | ||
99 | reject(); | ||
86 | } else if (!this.data.verifyCode) { | 100 | } else if (!this.data.verifyCode) { |
87 | this.showLog("请输入验证码"); | 101 | this.showLog("请输入验证码"); |
88 | reject(); | 102 | reject(); |
103 | } else if (this.data.sex != 0 && this.data.sex != 1) { | ||
104 | this.showLog("请选择性别"); | ||
105 | reject(); | ||
89 | } else if (!this.data.isTerms) { | 106 | } else if (!this.data.isTerms) { |
90 | this.showLog("请同意服务条款"); | 107 | this.showLog("请同意服务条款"); |
91 | reject(); | 108 | reject(); |
... | @@ -117,7 +134,7 @@ Page({ | ... | @@ -117,7 +134,7 @@ Page({ |
117 | app.post({ | 134 | app.post({ |
118 | url: app.api.mobileVerifyCode, | 135 | url: app.api.mobileVerifyCode, |
119 | data: { | 136 | data: { |
120 | picVerifyCode:"", | 137 | picVerifyCode: "", |
121 | mobile: mobile, | 138 | mobile: mobile, |
122 | forRegister: 1 | 139 | forRegister: 1 |
123 | } | 140 | } |
... | @@ -155,17 +172,22 @@ Page({ | ... | @@ -155,17 +172,22 @@ Page({ |
155 | }, | 172 | }, |
156 | bindNameInput(e) { | 173 | bindNameInput(e) { |
157 | this.setData({ | 174 | this.setData({ |
158 | "name": e.detail.value | 175 | name: e.detail.value |
159 | }) | 176 | }) |
160 | }, | 177 | }, |
161 | bindBirthdayInput(e) { | 178 | bindBirthdayInput(e) { |
162 | this.setData({ | 179 | this.setData({ |
163 | "birthday": e.detail.value | 180 | birthday: e.detail.value |
181 | }) | ||
182 | }, | ||
183 | bindPasswordInput(e) { | ||
184 | this.setData({ | ||
185 | password: e.detail.value | ||
164 | }) | 186 | }) |
165 | }, | 187 | }, |
166 | bindVerifyCodeInput(e) { | 188 | bindVerifyCodeInput(e) { |
167 | this.setData({ | 189 | this.setData({ |
168 | "verifyCode": e.detail.value | 190 | verifyCode: e.detail.value |
169 | }) | 191 | }) |
170 | }, | 192 | }, |
171 | bindBirthdayChange(e) { | 193 | bindBirthdayChange(e) { |
... | @@ -173,6 +195,13 @@ Page({ | ... | @@ -173,6 +195,13 @@ Page({ |
173 | birthday: e.detail.value | 195 | birthday: e.detail.value |
174 | }) | 196 | }) |
175 | }, | 197 | }, |
198 | onSexRadioChange(e) { | ||
199 | this.setData({ | ||
200 | sex: e.detail.value | ||
201 | }) | ||
202 | console.log("sex:", this.data.sex); | ||
203 | }, | ||
204 | |||
176 | // 子组件事件 | 205 | // 子组件事件 |
177 | evtcomp(evt) { | 206 | evtcomp(evt) { |
178 | let { | 207 | let { | ... | ... |
1 | { | 1 | { |
2 | "navigationBarTitleText": "登陆", | 2 | "navigationBarTitleText": "注册", |
3 | "usingComponents": { | 3 | "usingComponents": { |
4 | "tips-register-ed-comp": "../../component/tips-register-ed-comp/tips-register-ed-comp", | 4 | "tips-register-ed-comp": "../../component/tips-register-ed-comp/tips-register-ed-comp", |
5 | "tips-common-comp": "../../component/tips-common-comp/tips-common-comp", | 5 | "tips-common-comp": "../../component/tips-common-comp/tips-common-comp", | ... | ... |
... | @@ -73,10 +73,24 @@ $formWidth:560px; | ... | @@ -73,10 +73,24 @@ $formWidth:560px; |
73 | } | 73 | } |
74 | } | 74 | } |
75 | } | 75 | } |
76 | |||
77 | .radio-group { | ||
78 | font-size: 28px; | ||
79 | color: #ba3138; | ||
80 | color: #db9a9d; | ||
81 | |||
82 | radio .wx-radio-input { | ||
83 | /* 自定义样式.... */ | ||
84 | height: 32px; | ||
85 | width: 32px; | ||
86 | } | ||
87 | |||
88 | } | ||
76 | } | 89 | } |
77 | 90 | ||
78 | // 拼图 | 91 | // 拼图 |
79 | .puzzle { | 92 | .puzzle { |
93 | margin-top: 32px; | ||
80 | $borderRadius: 32px; | 94 | $borderRadius: 32px; |
81 | width: $formWidth; | 95 | width: $formWidth; |
82 | border-radius: $borderRadius; | 96 | border-radius: $borderRadius; | ... | ... |
... | @@ -34,6 +34,13 @@ | ... | @@ -34,6 +34,13 @@ |
34 | <input value="{{birthday}}" disabled="{{true}}" class="ipt-input" placeholder="生日" placeholder-class="placeholder" /> | 34 | <input value="{{birthday}}" disabled="{{true}}" class="ipt-input" placeholder="生日" placeholder-class="placeholder" /> |
35 | </view> | 35 | </view> |
36 | </picker> | 36 | </picker> |
37 | <!-- 登陆密码 --> | ||
38 | <view class="ipt"> | ||
39 | <view class="ipt-icon"> | ||
40 | <image class="icon" mode="widthFix" src="../../image/oss/register/reg-icon-verify.png" /> | ||
41 | </view> | ||
42 | <input password="{{true}}" value="{{password}}" bindinput="bindPasswordInput" class="ipt-input" placeholder="登陆密码" placeholder-class="placeholder" /> | ||
43 | </view> | ||
37 | <!-- 验证码 --> | 44 | <!-- 验证码 --> |
38 | <view class="ipt"> | 45 | <view class="ipt"> |
39 | <view class="ipt-icon"> | 46 | <view class="ipt-icon"> |
... | @@ -44,14 +51,21 @@ | ... | @@ -44,14 +51,21 @@ |
44 | {{sendAuthCode ? "获取验证码": auth_time+"(s)"}} | 51 | {{sendAuthCode ? "获取验证码": auth_time+"(s)"}} |
45 | </view> | 52 | </view> |
46 | </view> | 53 | </view> |
54 | <!-- 性别 --> | ||
55 | <radio-group class="radio-group" bindchange="onSexRadioChange"> | ||
56 | <label class="radio" wx:for="{{sexList}}" wx:key="{{index}}"> | ||
57 | <radio color="#ba3138" value="{{item.value}}" checked="{{item.checked}}" /> | ||
58 | {{item.label}} | ||
59 | </label> | ||
60 | </radio-group> | ||
47 | </view> | 61 | </view> |
48 | <!-- 滑动拼图 --> | 62 | <!-- 滑动拼图 --> |
49 | <view class="puzzle"> | 63 | <!-- <view class="puzzle"> |
50 | <view class="plz"> | 64 | <view class="plz"> |
51 | <image src="../../image/oss/register/plz-cont.png" mode="widthFix" /> | 65 | <image src="../../image/oss/register/plz-cont.png" mode="widthFix" /> |
52 | </view> | 66 | </view> |
53 | <view class="slider"></view> | 67 | <view class="slider"></view> |
54 | </view> | 68 | </view> --> |
55 | <!-- 条款/政策 --> | 69 | <!-- 条款/政策 --> |
56 | <view class="policy"> | 70 | <view class="policy"> |
57 | <span bindtap="onTermsHandler" class="check"> | 71 | <span bindtap="onTermsHandler" class="check"> | ... | ... |
1 | import { | ||
2 | prizeTableQueryAssign | ||
3 | } from '../../const/custom-data'; | ||
4 | 1 | ||
5 | import { | 2 | import { |
6 | getBindtapData, | 3 | getBindtapData, |
... | @@ -18,38 +15,110 @@ Page({ | ... | @@ -18,38 +15,110 @@ Page({ |
18 | region: [], | 15 | region: [], |
19 | regionStr: "", | 16 | regionStr: "", |
20 | prize: {}, | 17 | prize: {}, |
21 | wishInfo: {} | 18 | wishInfo: {}, |
19 | order: {}, | ||
22 | }, | 20 | }, |
23 | onShareAppMessage() {}, | 21 | onShareAppMessage() {}, |
24 | onLoad(options) { | 22 | onLoad(options) { |
25 | // let wishInfo = options; | 23 | // let wishInfo = options; |
26 | let wishInfo = prizeTableQueryAssign; | 24 | let wishInfo = app.globalData.giftData; |
27 | console.log("wishInfo:", wishInfo); | 25 | let order = wishInfo.order; |
26 | console.log("user-table wishInfo:", wishInfo); | ||
27 | console.log("user-table order:", order); | ||
28 | this.setData({ | 28 | this.setData({ |
29 | wishInfo: wishInfo | 29 | wishInfo: wishInfo, |
30 | order: order | ||
30 | }) | 31 | }) |
31 | if (wishInfo.associateMobile) { | 32 | if (order.associateMobile) { |
32 | // 如果初始化回显,则要设置 表单信息 | 33 | // 如果初始化回显,则要设置 表单信息 |
33 | // 显示省市区 | 34 | // 显示省市区 |
34 | this.setData({ | 35 | this.setData({ |
35 | receiverName: wishInfo.associateName, | 36 | receiverName: order.associateName, |
36 | receiverMobile: wishInfo.associateMobile, | 37 | receiverMobile: order.associateMobile, |
37 | receiverAddress: wishInfo.address, | 38 | receiverAddress: order.address, |
38 | regionStr: wishInfo.province + wishInfo.city + wishInfo.district, | 39 | regionStr: order.province + order.city + order.district, |
39 | }) | 40 | }) |
40 | this.setStatus(1); | 41 | this.setStatus(1); |
41 | } else { | 42 | } else { |
42 | this.setStatus(0); | 43 | this.setStatus(0); |
43 | } | 44 | } |
45 | }, | ||
46 | |||
47 | /** | ||
48 | * 提交表单按钮 | ||
49 | * @param {*} evt | ||
50 | */ | ||
51 | onSubmitHandler(evt) { | ||
52 | let _this = this; | ||
53 | this.checkTable().then((result) => { | ||
54 | wx.showModal({ | ||
55 | content: '提交确认?', | ||
56 | success(res) { | ||
57 | if (res.confirm) { | ||
58 | _this.doSubmit(); | ||
59 | } else if (res.cancel) {} | ||
60 | } | ||
61 | }) | ||
62 | }) | ||
63 | }, | ||
44 | 64 | ||
65 | // 检查表单 | ||
66 | checkTable() { | ||
67 | return new Promise((resolve, reject) => { | ||
68 | let wishInfo = this.data.wishInfo; | ||
69 | let order = wishInfo.order; | ||
70 | let { | ||
71 | receiverName, | ||
72 | receiverMobile, | ||
73 | receiverAddress, | ||
74 | region, | ||
75 | } = this.data; | ||
76 | let receiverProvince = region[0]; | ||
77 | let receiverCity = region[1]; | ||
78 | let receiverDistrict = region[2]; | ||
45 | 79 | ||
80 | let tips = ""; | ||
81 | if (!receiverName) { | ||
82 | tips = "请输入姓名"; | ||
83 | this.showTips(tips); | ||
84 | reject(); | ||
85 | return; | ||
86 | } | ||
87 | if (!receiverMobile) { | ||
88 | tips = "请输入手机号码"; | ||
89 | this.showTips(tips); | ||
90 | reject(); | ||
91 | return; | ||
92 | } | ||
93 | if (!checkMobile(receiverMobile)) { | ||
94 | tips = "请输入正确的手机号"; | ||
95 | this.showTips(tips); | ||
96 | reject(); | ||
97 | return; | ||
98 | } | ||
99 | if (!receiverProvince || !receiverCity || !receiverDistrict) { | ||
100 | tips = "请选择区域"; | ||
101 | this.showTips(tips); | ||
102 | reject(); | ||
103 | return; | ||
104 | } | ||
105 | if (!receiverAddress) { | ||
106 | tips = "请填写地址"; | ||
107 | this.showTips(tips); | ||
108 | reject(); | ||
109 | return; | ||
110 | } | ||
111 | resolve(); | ||
112 | }); | ||
46 | }, | 113 | }, |
114 | |||
47 | /** | 115 | /** |
48 | * 提交表单 | 116 | * 提交表单 |
49 | * @param {*} evt | 117 | * @param {*} evt |
50 | */ | 118 | */ |
51 | onSubmitHandler(evt) { | 119 | doSubmit() { |
52 | let wishInfo = this.data.wishInfo; | 120 | let wishInfo = this.data.wishInfo; |
121 | let order = wishInfo.order; | ||
53 | let { | 122 | let { |
54 | receiverName, | 123 | receiverName, |
55 | receiverMobile, | 124 | receiverMobile, |
... | @@ -60,33 +129,6 @@ Page({ | ... | @@ -60,33 +129,6 @@ Page({ |
60 | let receiverCity = region[1]; | 129 | let receiverCity = region[1]; |
61 | let receiverDistrict = region[2]; | 130 | let receiverDistrict = region[2]; |
62 | 131 | ||
63 | let tips = ""; | ||
64 | if (!receiverName) { | ||
65 | tips = "请输入姓名"; | ||
66 | this.showTips(tips); | ||
67 | return; | ||
68 | } | ||
69 | if (!receiverMobile) { | ||
70 | tips = "请输入手机号码"; | ||
71 | this.showTips(tips); | ||
72 | return; | ||
73 | } | ||
74 | if (!checkMobile(receiverMobile)) { | ||
75 | tips = "请输入正确的手机号"; | ||
76 | this.showTips(tips); | ||
77 | return; | ||
78 | } | ||
79 | if (!receiverProvince || !receiverCity || !receiverDistrict) { | ||
80 | tips = "请选择区域"; | ||
81 | this.showTips(tips); | ||
82 | return; | ||
83 | } | ||
84 | if (!receiverAddress) { | ||
85 | tips = "请填写地址"; | ||
86 | this.showTips(tips); | ||
87 | return; | ||
88 | } | ||
89 | |||
90 | 132 | ||
91 | let data = { | 133 | let data = { |
92 | instanceCode: wishInfo.instanceCode, | 134 | instanceCode: wishInfo.instanceCode, |
... | @@ -97,14 +139,26 @@ Page({ | ... | @@ -97,14 +139,26 @@ Page({ |
97 | district: receiverDistrict, | 139 | district: receiverDistrict, |
98 | address: receiverAddress, | 140 | address: receiverAddress, |
99 | } | 141 | } |
100 | console.log("data:", data); | ||
101 | 142 | ||
143 | // 提交完毕 | ||
102 | app.post({ | 144 | app.post({ |
103 | url: app.api.wishbillAddressSubmit, | 145 | url: app.api.wishbillAddressSubmit, |
104 | data: data | 146 | data: data |
105 | }).then((result) => { | 147 | }).then((result) => { |
106 | this.setStatus(1); | 148 | app.post({ |
149 | url: app.api.wishbillGiftQuery, | ||
150 | data: { | ||
151 | instanceCode: order.instanceCode | ||
152 | } | ||
153 | }).then((result) => { | ||
154 | order = result.order | ||
155 | this.setData({ | ||
156 | order: order | ||
157 | }) | ||
158 | this.setStatus(1); | ||
159 | }) | ||
107 | }) | 160 | }) |
161 | |||
108 | }, | 162 | }, |
109 | 163 | ||
110 | // 设置显示状态 0:填写 1:回显 | 164 | // 设置显示状态 0:填写 1:回显 |
... | @@ -116,16 +170,15 @@ Page({ | ... | @@ -116,16 +170,15 @@ Page({ |
116 | this.setData({ | 170 | this.setData({ |
117 | tableIndex: tableIndex | 171 | tableIndex: tableIndex |
118 | }) | 172 | }) |
173 | console.log("tableIndex:", tableIndex); | ||
119 | }, | 174 | }, |
120 | /** | 175 | /** |
121 | * 配置完整地址 | 176 | * 配置完整地址 |
122 | */ | 177 | */ |
123 | refreshFullAddress() { | 178 | refreshFullAddress() { |
124 | let { | 179 | let order = this.data.order; |
125 | receiverAddress, | 180 | let addressStr = `${order.province}${order.city}${order.district}${order.address}`; |
126 | regionStr, | 181 | console.log("addressStr:", addressStr); |
127 | } = this.data; | ||
128 | let addressStr = regionStr + receiverAddress; | ||
129 | this.setData({ | 182 | this.setData({ |
130 | addressStr: addressStr | 183 | addressStr: addressStr |
131 | }) | 184 | }) | ... | ... |
... | @@ -60,7 +60,7 @@ | ... | @@ -60,7 +60,7 @@ |
60 | </view> | 60 | </view> |
61 | <view class="ipt ipt2"> | 61 | <view class="ipt ipt2"> |
62 | <view class="label">地址</view> | 62 | <view class="label">地址</view> |
63 | <textarea value="{{receiverAddress}}" bindinput="bindAddressInput" class="input textarea" placeholder="请输入"></textarea> | 63 | <textarea value="{{receiverAddress}}" bindinput="bindAddressInput" class="input textarea" placeholder="请输入"></textarea> |
64 | </view> | 64 | </view> |
65 | </view> | 65 | </view> |
66 | <view bindtap="onSubmitHandler" class="submit-btn">确认提交</view> | 66 | <view bindtap="onSubmitHandler" class="submit-btn">确认提交</view> |
... | @@ -71,16 +71,16 @@ | ... | @@ -71,16 +71,16 @@ |
71 | <view class="tips">*感谢您提交的地址,我们将尽快为您送出以上礼品</view> | 71 | <view class="tips">*感谢您提交的地址,我们将尽快为您送出以上礼品</view> |
72 | <view class="form"> | 72 | <view class="form"> |
73 | <view class="form-item"> | 73 | <view class="form-item"> |
74 | <view class="label">{{wishInfo.associateName}}</view> | 74 | <view class="label">姓名</view> |
75 | <view class="val">林小美</view> | 75 | <view class="val">{{order.associateName}}</view> |
76 | </view> | 76 | </view> |
77 | <view class="form-item"> | 77 | <view class="form-item"> |
78 | <view class="label">电话</view> | 78 | <view class="label">电话</view> |
79 | <view class="val">{{wishInfo.associateMobile}}</view> | 79 | <view class="val">{{order.associateMobile}}</view> |
80 | </view> | 80 | </view> |
81 | <view class="form-item"> | 81 | <view class="form-item"> |
82 | <view class="label">地址</view> | 82 | <view class="label">地址</view> |
83 | <view class="val">{{regionStr}}{{wishInfo.addressStr}}</view> | 83 | <view class="val">{{addressStr}}</view> |
84 | </view> | 84 | </view> |
85 | </view> | 85 | </view> |
86 | <view bindtap="onWishHandler" class="submit-btn">返回首页</view> | 86 | <view bindtap="onWishHandler" class="submit-btn">返回首页</view> | ... | ... |
... | @@ -10,28 +10,30 @@ import { | ... | @@ -10,28 +10,30 @@ import { |
10 | let app = getApp(); | 10 | let app = getApp(); |
11 | Page({ | 11 | Page({ |
12 | data: { | 12 | data: { |
13 | isOverShare: true, //自定义分享 | ||
13 | tipsRuleVisible: false, | 14 | tipsRuleVisible: false, |
14 | tipsPirzeVisible: false, | 15 | tipsPirzeVisible: false, |
15 | userInfo: {}, | 16 | userInfo: {}, |
16 | wishInfo: {}, | 17 | wishInfo: {}, |
17 | wishList: [], | 18 | wishList: [], |
18 | helperInfo: {}, | 19 | helperInfo: {}, |
19 | // curWish: {}, | 20 | curWish: {}, |
20 | curWish: { | 21 | |
21 | "status": 1, | ||
22 | "order": { | ||
23 | "acceptType": 0, | ||
24 | "instanceCode": "162951b667a746188c83491bd5601164", | ||
25 | "prizeName": "丸美弹力蛋白眼精华素10g+10g", | ||
26 | "prizePic": "", | ||
27 | "commodityNo": "11059001" | ||
28 | }, | ||
29 | "coupon": null | ||
30 | }, | ||
31 | status: 1, // 1正常(有库存) 2无库存 | 22 | status: 1, // 1正常(有库存) 2无库存 |
32 | }, | 23 | }, |
33 | onShareAppMessage() {}, | 24 | onShareAppMessage(res) { |
34 | onLoad(options) { | 25 | if (res.from === 'button') { |
26 | // 来自页面内转发按钮 | ||
27 | console.log(res.target) | ||
28 | } | ||
29 | let userInfo = app.globalData.userInfo; | ||
30 | let title = `${userInfo.nickname}正在参加丸美眼霜节心愿单活动,需要你的倾情相助!`; | ||
31 | return { | ||
32 | title, | ||
33 | } | ||
34 | }, | ||
35 | onLoad(options) {}, | ||
36 | onShow() { | ||
35 | this.initData(); | 37 | this.initData(); |
36 | }, | 38 | }, |
37 | initData() { | 39 | initData() { |
... | @@ -77,15 +79,16 @@ Page({ | ... | @@ -77,15 +79,16 @@ Page({ |
77 | } | 79 | } |
78 | }).then((result) => { | 80 | }).then((result) => { |
79 | curData = Object.assign(curData, result); | 81 | curData = Object.assign(curData, result); |
80 | console.log("curData 222:", curData); | ||
81 | this.setData({ | 82 | this.setData({ |
82 | curWish: curData, | 83 | curWish: curData, |
83 | status: curData.status | 84 | status: curData.status |
84 | }) | 85 | }) |
86 | app.globalData.giftData = curData; | ||
87 | |||
85 | // 领取状态 | 88 | // 领取状态 |
86 | // 领取类型:0=未提交;1=邮寄(填写邮寄信息);2=自提(填门店预约信息) | 89 | // 领取类型:0=未提交;1=邮寄(填写邮寄信息);2=自提(填门店预约信息) |
87 | let acceptType = curData.order.acceptType; | 90 | let acceptType = curData.order.acceptType; |
88 | console.log("acceptType:",acceptType); | 91 | console.log("acceptType:", acceptType); |
89 | if (acceptType == 0) { | 92 | if (acceptType == 0) { |
90 | // 未提交,显示领取选择 | 93 | // 未提交,显示领取选择 |
91 | this.setData({ | 94 | this.setData({ |
... | @@ -122,6 +125,7 @@ Page({ | ... | @@ -122,6 +125,7 @@ Page({ |
122 | }, | 125 | }, |
123 | // 显示海报图 | 126 | // 显示海报图 |
124 | onCreatePosterHandler() { | 127 | onCreatePosterHandler() { |
128 | app.globalData.posterWishList = this.data.wishList; | ||
125 | app.router.push({ | 129 | app.router.push({ |
126 | path: "poster" | 130 | path: "poster" |
127 | }) | 131 | }) | ... | ... |
... | @@ -76,7 +76,7 @@ | ... | @@ -76,7 +76,7 @@ |
76 | </view> | 76 | </view> |
77 | <view class="btn-wrap"> | 77 | <view class="btn-wrap"> |
78 | <view bindtap="onRankHandler" class="btn btn2">弹力girl榜单</view> | 78 | <view bindtap="onRankHandler" class="btn btn2">弹力girl榜单</view> |
79 | <view bindtap="onShareHandler" class="btn">弹弹好友</view> | 79 | <button open-type="share" class="btn">弹弹好友</button> |
80 | </view> | 80 | </view> |
81 | </view> | 81 | </view> |
82 | <!-- 规则按钮 --> | 82 | <!-- 规则按钮 --> | ... | ... |
... | @@ -54,6 +54,7 @@ function push(path, option = {}) { | ... | @@ -54,6 +54,7 @@ function push(path, option = {}) { |
54 | query = {}, openType = 'navigate', duration = 0 | 54 | query = {}, openType = 'navigate', duration = 0 |
55 | } = option; | 55 | } = option; |
56 | // json 转换为 字符串拼接参数 | 56 | // json 转换为 字符串拼接参数 |
57 | console.log("query:", query); | ||
57 | let params = parse(query) | 58 | let params = parse(query) |
58 | // console.log("params:", params); | 59 | // console.log("params:", params); |
59 | if (params) { | 60 | if (params) { | ... | ... |
... | @@ -149,6 +149,43 @@ function getObjByListKeyValue(value, key, list) { | ... | @@ -149,6 +149,43 @@ function getObjByListKeyValue(value, key, list) { |
149 | return result; | 149 | return result; |
150 | } | 150 | } |
151 | 151 | ||
152 | function rad(d) { | ||
153 | return d * Math.PI / 180.0; | ||
154 | } | ||
155 | |||
156 | /** | ||
157 | * 获取微信距离 | ||
158 | * @param {*} locationRes 当前位置 | ||
159 | * @param {*} targetPosition 目标位置 | ||
160 | */ | ||
161 | function getLocalDistance(locationRes, targetPosition) { | ||
162 | var lat1 = locationRes.latitude; | ||
163 | var lng1 = locationRes.longitude; | ||
164 | var lat2 = targetPosition.latitude; | ||
165 | var lng2 = targetPosition.longitude; | ||
166 | var radLat1 = rad(lat1); | ||
167 | var radLat2 = rad(lat2); | ||
168 | var a = radLat1 - radLat2; | ||
169 | var b = rad(lng1) - rad(lng2); | ||
170 | var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); | ||
171 | s = s * 6378.137; | ||
172 | |||
173 | // s:单位米 | ||
174 | s = Math.round(s * 10000); | ||
175 | |||
176 | var kkm = 1000000, | ||
177 | km = 1000; | ||
178 | // dis:文字化单位 | ||
179 | var dis = s > kkm ? (s / kkm).toFixed(1) + "千公里" : (s > km ? (s / km).toFixed(1) + "公里" : s + "米"); | ||
180 | |||
181 | console.log("s:", s); | ||
182 | console.log("dis:", dis); | ||
183 | return { | ||
184 | s, | ||
185 | dis | ||
186 | }; | ||
187 | } | ||
188 | |||
152 | /** | 189 | /** |
153 | * 获取小程序码 | 190 | * 获取小程序码 |
154 | * path = "/pages/index/index?pa=1" | 191 | * path = "/pages/index/index?pa=1" |
... | @@ -232,5 +269,6 @@ module.exports = { | ... | @@ -232,5 +269,6 @@ module.exports = { |
232 | formatWeek: formatWeek, | 269 | formatWeek: formatWeek, |
233 | getBindtapData: getBindtapData, | 270 | getBindtapData: getBindtapData, |
234 | wxacodeGet: wxacodeGet, | 271 | wxacodeGet: wxacodeGet, |
235 | getObjByListKeyValue:getObjByListKeyValue, | 272 | getObjByListKeyValue: getObjByListKeyValue, |
273 | getLocalDistance: getLocalDistance | ||
236 | } | 274 | } | ... | ... |
-
Please register or sign in to post a comment