Authored by htoooth

add detial

@@ -41,10 +41,6 @@ export default { @@ -41,10 +41,6 @@ export default {
41 }); 41 });
42 }, 42 },
43 43
44 - getQueueInfo(uid) {  
45 -  
46 - },  
47 -  
48 /** 44 /**
49 * 增加助力 45 * 增加助力
50 * 46 *
@@ -63,5 +59,37 @@ export default { @@ -63,5 +59,37 @@ export default {
63 limitProductCode 59 limitProductCode
64 } 60 }
65 }); 61 });
  62 + },
  63 +
  64 + addQueue({userId, helpUserId, helpUserName, helpUserImgUrl, limitProductCode, activityId}) {
  65 + return api.post({
  66 + url: '',
  67 + data: {
  68 + method: 'app.drawline.addQueue',
  69 + userId,
  70 + helpUserId,
  71 + helpUserName,
  72 + helpUserImgUrl,
  73 + limitProductCode,
  74 + activityId
  75 + }
  76 + });
  77 + },
  78 +
  79 + /**
  80 + * 分享过该商品,记录一下
  81 + * @param {} uid
  82 + * @param {*} limitProductCode
  83 + */
  84 + addShareAction(uid, limitProductCode) {
  85 + return api.post({
  86 + url: '',
  87 + data: {
  88 + method: 'app.limitProduct.addShareInfo',
  89 + uid,
  90 + limitProductCode,
  91 + isShare: 'Y'
  92 + }
  93 + });
66 } 94 }
67 }; 95 };
@@ -54,7 +54,6 @@ Page({ @@ -54,7 +54,6 @@ Page({
54 refreshText: '加载中...' 54 refreshText: '加载中...'
55 }); 55 });
56 56
57 -  
58 this.getList(this.data.tabSelected, 1, 20, false).then(() => { 57 this.getList(this.data.tabSelected, 1, 20, false).then(() => {
59 wx.stopPullDownRefresh(); 58 wx.stopPullDownRefresh();
60 this.setData({ 59 this.setData({
@@ -5,6 +5,8 @@ import { @@ -5,6 +5,8 @@ import {
5 Actionsheet 5 Actionsheet
6 } from '../../../vendors/zanui/index'; 6 } from '../../../vendors/zanui/index';
7 7
  8 +import {stringify} from '../../../vendors/query-stringify';
  9 +
8 let app = getApp(); 10 let app = getApp();
9 let router = global.router; 11 let router = global.router;
10 12
@@ -25,6 +27,13 @@ const SHOW_STATUS = { @@ -25,6 +27,13 @@ const SHOW_STATUS = {
25 USED: 7 27 USED: 7
26 }; 28 };
27 29
  30 +const QUEUE_TYPE = {
  31 + READY: 0,
  32 + START: 1,
  33 + ACTIVATE: 2,
  34 + END: 3,
  35 +};
  36 +
28 const PRODUCT_SOURCE_TYPE = { 37 const PRODUCT_SOURCE_TYPE = {
29 UNKONWN: 0, 38 UNKONWN: 0,
30 ORIGIN: 1, 39 ORIGIN: 1,
@@ -41,10 +50,9 @@ const ASSIS_STATUS = { @@ -41,10 +50,9 @@ const ASSIS_STATUS = {
41 const QUEUE_STATUS = { 50 const QUEUE_STATUS = {
42 UNKONWN: 0, 51 UNKONWN: 0,
43 UN_QUEUE: 1, 52 UN_QUEUE: 1,
44 - QUEUE_PROCESSING: 2,  
45 - QUEUE_END: 3,  
46 - QUEUE_ACTION: 4,  
47 - WAIT_FOR_BUY: 5 53 + QUEUE_START: 2,
  54 + QUEUE_PROCESSING: 3,
  55 + QUEUE_END: 4
48 }; 56 };
49 57
50 const ASSIS_SUCCESS = { 58 const ASSIS_SUCCESS = {
@@ -57,7 +65,7 @@ const QUEUE_SUCCESS = { @@ -57,7 +65,7 @@ const QUEUE_SUCCESS = {
57 unknown: 0, 65 unknown: 0,
58 ok: 1, 66 ok: 1,
59 repeat: 2 67 repeat: 2
60 -} 68 +};
61 69
62 let { 70 let {
63 windowHeight 71 windowHeight
@@ -74,12 +82,13 @@ Page(Object.assign({ @@ -74,12 +82,13 @@ Page(Object.assign({
74 defaultImage: '', 82 defaultImage: '',
75 productDesc: [], 83 productDesc: [],
76 snapData: {}, 84 snapData: {},
77 - originUid: '',  
78 avatarList: [], 85 avatarList: [],
79 uid: '', 86 uid: '',
  87 + originUid: '',
80 88
81 limitProductType: LIMIT_TYPE.ASSIS, 89 limitProductType: LIMIT_TYPE.ASSIS,
82 showStatus: SHOW_STATUS.SHARE, 90 showStatus: SHOW_STATUS.SHARE,
  91 + queueType: QUEUE_TYPE.READY,
83 productSourceType: PRODUCT_SOURCE_TYPE.SHARE, 92 productSourceType: PRODUCT_SOURCE_TYPE.SHARE,
84 assisStatus: ASSIS_STATUS.UN_ASSIS, 93 assisStatus: ASSIS_STATUS.UN_ASSIS,
85 queueStatus: QUEUE_STATUS.UN_QUEUE, 94 queueStatus: QUEUE_STATUS.UN_QUEUE,
@@ -87,6 +96,8 @@ Page(Object.assign({ @@ -87,6 +96,8 @@ Page(Object.assign({
87 assisLimit: 0, 96 assisLimit: 0,
88 assisSuccess: ASSIS_SUCCESS.unknown, 97 assisSuccess: ASSIS_SUCCESS.unknown,
89 queueSuccess: QUEUE_SUCCESS.unknown, 98 queueSuccess: QUEUE_SUCCESS.unknown,
  99 + error: false,
  100 + activityId: '',
90 101
91 actionSheet: { 102 actionSheet: {
92 componentId: 'shareActionSheet', 103 componentId: 'shareActionSheet',
@@ -219,8 +230,10 @@ Page(Object.assign({ @@ -219,8 +230,10 @@ Page(Object.assign({
219 saleTime: res.data.saleTime, 230 saleTime: res.data.saleTime,
220 reminderNum: res.data.reminderNum, 231 reminderNum: res.data.reminderNum,
221 limitProductTyp: res.data.limitProductType, 232 limitProductTyp: res.data.limitProductType,
222 - showStatus: res.data.showStatus,  
223 - assisLimit: res.data.helpLimit, 233 + showStatus: res.data.showStatus ? res.data.showStatus : 0,
  234 + assisLimit: res.data.helpLimit ? res.data.helpLimit : 0,
  235 + queueType: res.data.queueType ? res.data.queueType : '',
  236 + activityId: res.data.activityId ? res.data.activityId : '',
224 defaultImage, 237 defaultImage,
225 productDesc, 238 productDesc,
226 snapData, 239 snapData,
@@ -251,55 +264,153 @@ Page(Object.assign({ @@ -251,55 +264,153 @@ Page(Object.assign({
251 } 264 }
252 265
253 this.setData({ 266 this.setData({
254 - avatarList: result.data, 267 + avatarList: result.list || [],
255 assisStatus 268 assisStatus
256 }); 269 });
257 270
258 }); 271 });
259 - } else {  
260 - return detailModel.getQueueInfo(uid).then(result => { 272 + } else if (this.data.limitProductType === LIMIT_TYPE.QUEUE) {
  273 + let queueType = this.data.queueType;
  274 + let queueStatus = QUEUE_STATUS.QUEUE_END;
  275 +
  276 + switch (queueType) {
  277 + case QUEUE_TYPE.READY: {
  278 + queueStatus = QUEUE_STATUS.UN_QUEUE;
  279 + break;
  280 + }
  281 + case QUEUE_TYPE.START: {
  282 + queueStatus = QUEUE_STATUS.START;
  283 + break;
  284 + }
  285 + case QUEUE_TYPE.ACTIVATE: {
  286 + queueStatus = QUEUE_STATUS.QUEUE_PROCESSING;
  287 + break;
  288 + }
  289 + case QUEUE_TYPE.END: {
  290 + queueStatus = QUEUE_STATUS.QUEUE_END;
  291 + break;
  292 + }
  293 + default: {
  294 + queueStatus = QUEUE_STATUS.QUEUE_END;
  295 + break;
  296 + }
  297 + }
261 298
  299 + this.setData({
  300 + queueStatus
262 }); 301 });
263 } 302 }
264 }, 303 },
265 assisShare() { 304 assisShare() {
  305 + if (!app.getUnionID()) {
  306 + this.goLogin();
  307 + return;
  308 + }
  309 +
266 this.share(); 310 this.share();
267 }, 311 },
268 assisAction() { 312 assisAction() {
  313 + let userInfo = app.getUserInfo();
  314 +
  315 + detailModel.addAssist({
  316 + userId: this.data.originUid,
  317 + helpUserId: app.getUnionID(),
  318 + helpUserName: userInfo.nickName,
  319 + helpUserImgUrl: userInfo.avatarUrl,
  320 + limitProductCode: this.data.limitProductCode
  321 + }).then(result => {
  322 + if (result.code !== 200 || result.code !== 401) {
  323 + this.showError();
  324 + return;
  325 + }
269 326
  327 + if (result.code === 401) {
270 this.setData({ 328 this.setData({
271 assisSuccess: ASSIS_SUCCESS.ok 329 assisSuccess: ASSIS_SUCCESS.ok
272 }); 330 });
  331 + return;
  332 + }
  333 +
  334 + this.setData({
  335 + setData: ASSIS_SUCCESS.ok
  336 + });
  337 + }).catch(this.showError.bind(this));
273 338
274 - // this.setData({  
275 - // assisSuccess: ASSIS_SUCCESS.repeat  
276 - // });  
277 }, 339 },
278 queueAction() { 340 queueAction() {
  341 + let userInfo = app.getUserInfo();
  342 +
  343 + detailModel.addQueue({
  344 + userId: this.data.originUid,
  345 + helpUserId: app.getUnionID(),
  346 + helpUserName: userInfo.nickName,
  347 + helpUserImgUrl: userInfo.avatarUrl,
  348 + limitProductCode: this.data.limitProductCode,
  349 + activityId: this.data.activityId
  350 + }).then(result => {
  351 + if (result.code !== 200 || result.code !== 401) {
  352 + this.showError();
  353 + return;
  354 + }
  355 +
  356 + if (result.code === 401) {
279 this.setData({ 357 this.setData({
280 - queueSuccess: QUEUE_SUCCESS.ok 358 + queueSuccess: QUEUE_SUCCESS.repeat
281 }); 359 });
  360 + return;
  361 + }
282 362
283 - // this.setData({  
284 - // queueSuccess: QUEUE_SUCCESS.repeat  
285 - // }); 363 + this.setData({
  364 + queueSuccess: QUEUE_SUCCESS.ok
  365 + });
  366 + }).catch(this.showError.bind(this));
286 }, 367 },
287 queueCancel() { 368 queueCancel() {
288 - 369 + this.onLoad();
289 }, 370 },
290 assisCancel() { 371 assisCancel() {
291 - 372 + this.onLoad();
292 }, 373 },
293 buyNow() { 374 buyNow() {
294 - 375 + router.goUrl(`/pages/goodsDetail/goodsDetail?app=yohobuy&productSkn=${this.data.productSkn}`);
295 }, 376 },
296 goList() { 377 goList() {
297 - 378 + router.go('home');
298 }, 379 },
299 restartSelfShare() { 380 restartSelfShare() {
300 - 381 + this.onLoad();
301 }, 382 },
302 goQueueList() { 383 goQueueList() {
  384 + router.go('queueList', {
  385 + uid: this.data.originUid || this.data.uid,
  386 + limitProductCode: this.data.limitProductCode,
  387 + activityId: this.data.activityId
  388 + });
  389 + },
  390 + showError() {
  391 + this.setData({
  392 + error: true
  393 + });
  394 + },
  395 + cancelError() {
  396 + this.setData({
  397 + error: false
  398 + });
  399 + },
  400 + goLogin() {
  401 + let data = {};
303 402
  403 + if (this.data.originUid) {
  404 + data.originUid = this.data.originUid;
304 } 405 }
  406 +
  407 + if (this.data.limitProductCode) {
  408 + data.limitProductCode = this.data.limitProductCode;
  409 + }
  410 +
  411 + let refer = encodeURIComponent(`/pages/product/detail/detail?${stringify(data)}`);
  412 +
  413 + router.go('userCenter', {refer});
  414 + }
  415 +
305 }, Actionsheet)); 416 }, Actionsheet));
@@ -130,13 +130,20 @@ @@ -130,13 +130,20 @@
130 <block wx:if="{{productSourceType === 1}}"> 130 <block wx:if="{{productSourceType === 1}}">
131 <action-bar wx:if="{{queueStatus === 1}}"> 131 <action-bar wx:if="{{queueStatus === 1}}">
132 <view class="bottom1-action"> 132 <view class="bottom1-action">
133 - <view class="action-btn" bindtap="assisShare">参加排队</view> 133 + <view class="action-btn3">即将开售</view>
134 <view class="help">?</view> 134 <view class="help">?</view>
135 </view> 135 </view>
136 </action-bar> 136 </action-bar>
137 137
138 <action-bar wx:if="{{queueStatus === 2}}"> 138 <action-bar wx:if="{{queueStatus === 2}}">
139 <view class="bottom1-action"> 139 <view class="bottom1-action">
  140 + <view class="action-btn" bindtap="goQueueList">参加排队</view>
  141 + <view class="help">?</view>
  142 + </view>
  143 + </action-bar>
  144 +
  145 + <action-bar wx:if="{{queueStatus === 3}}">
  146 + <view class="bottom1-action">
140 <view class="action-list"> 147 <view class="action-list">
141 <view class="action-btn3" bindtap="goQueueList">排队中,查看详情</view> 148 <view class="action-btn3" bindtap="goQueueList">排队中,查看详情</view>
142 <view class="action-btn" bindtap="assisShare">邀请好友助力排队</view> 149 <view class="action-btn" bindtap="assisShare">邀请好友助力排队</view>
@@ -144,7 +151,7 @@ @@ -144,7 +151,7 @@
144 </view> 151 </view>
145 </action-bar> 152 </action-bar>
146 153
147 - <action-bar wx:if="{{queueStatus === 3}}"> 154 + <action-bar wx:if="{{queueStatus === 4}}">
148 <view class="bottom1-action"> 155 <view class="bottom1-action">
149 <view class="action-list"> 156 <view class="action-list">
150 <view class="action-btn3" bindtap="goQueueList">活动结束,点击查看排队详情</view> 157 <view class="action-btn3" bindtap="goQueueList">活动结束,点击查看排队详情</view>
@@ -155,21 +162,35 @@ @@ -155,21 +162,35 @@
155 </block> 162 </block>
156 163
157 <block wx:if="{{productSourceType === 2}}"> 164 <block wx:if="{{productSourceType === 2}}">
158 - <action-bar> 165 + <action-bar wx:if="{{queueStatus === 1}}">
  166 + <view class="bottom1-action">
  167 + <view class="action-btn3">即将开售</view>
  168 + <view class="help">?</view>
  169 + </view>
  170 + </action-bar>
  171 +
  172 + <action-bar wx:if="{{assisStatus === 3}}">
159 <view class="top-assis-action"> 173 <view class="top-assis-action">
160 <view class="top-title" >你的好友邀请你为ta助力参加排队</view> 174 <view class="top-title" >你的好友邀请你为ta助力参加排队</view>
161 <view class="top-action"> 175 <view class="top-action">
162 - <view class="top-ok" bindtap="queueAction">帮ta助力</view>  
163 - <view class="top-cancel" bindtap="queueCancel"><text decode="{{true}}">&ensp;取消&ensp;</text></view> 176 + <view class="top-ok" bindtap="aqueueAction">帮ta助力</view>
  177 + <view class="top-cancel" bindtap="queueCancel">取消</view>
164 </view> 178 </view>
165 </view> 179 </view>
166 </action-bar> 180 </action-bar>
167 181
168 - <action-bar>  
169 - <view class="top-assis-action">  
170 - <view class="top-title" >你的好友已助力成功</view>  
171 - <view class="top-action1">  
172 - <view class="top-ok" bindtap="restartSelfShare" >我也要参加</view> 182 + <action-bar wx:if="{{queueStatus === 4}}">
  183 + <view class="bottom1-action">
  184 + <view class="action-list">
  185 + <view class="action-btn3" bindtap="goQueueList">活动结束,点击查看排队详情</view>
  186 + </view>
  187 + </view>
  188 + </action-bar>
  189 +
  190 + <action-bar wx:else>
  191 + <view class="bottom1-action">
  192 + <view class="action-list">
  193 + <view class="action-btn3" bindtap="goQueueList">活动结束,点击查看排队详情</view>
173 </view> 194 </view>
174 </view> 195 </view>
175 </action-bar> 196 </action-bar>
@@ -247,4 +268,21 @@ @@ -247,4 +268,21 @@
247 </view> 268 </view>
248 </yoho-alert> 269 </yoho-alert>
249 270
  271 +<yoho-alert wx:if="{{error}}">
  272 + <view class="modal-content">
  273 + <view class="modal-title">
  274 + <view class="sub-title">助力失败</view>
  275 + <view class="sub-title2">
  276 + <view>请重新助力</view>
  277 + </view>
  278 + </view>
  279 +
  280 + <view class="modal-ok" bindtap="cancelError">
  281 + 确定
  282 + </view>
  283 +
  284 + </view>
  285 + </view>
  286 +</yoho-alert>
  287 +
250 <template is="zan-actionsheet" data="{{...actionSheet}}" /> 288 <template is="zan-actionsheet" data="{{...actionSheet}}" />