Commit fb30f1a4 authored by wildfirecode13's avatar wildfirecode13

1

parent 6bfb0cd5
'use strict'; 'use strict';
import API from "/api"; import API from "/api";
import { import {
SHARE_CONFIG SHARE_CONFIG
} from '/tbcc-sdk/lib/constants'; } from '/tbcc-sdk/lib/constants';
const app = getApp(); const app = getApp();
const { const {
tbcc tbcc
} = app; } = app;
const { const {
commonToast, commonToast,
navigateToOutside, navigateToOutside,
getUserAddress, getUserAddress,
setClipboard setClipboard
} = tbcc.tb; } = tbcc.tb;
const { const {
PRIZE_TYPE_MAP, PRIZE_TYPE_MAP,
PRIZE_DRAW_STATUS_MAP PRIZE_DRAW_STATUS_MAP
} = tbcc.constants; } = tbcc.constants;
let flag = false; let flag = false;
Page({ Page({
data: { data: {
PRIZE_TYPE_MAP, PRIZE_TYPE_MAP,
PRIZE_DRAW_STATUS_MAP, PRIZE_DRAW_STATUS_MAP,
myPrizeList: null, //我的奖品 myPrizeList: null, //我的奖品
endTime: null, //到期时间 endTime: null, //到期时间
task: { task: {
image: { image: {
bg: '//yun.duiba.com.cn/aurora/assets/8fa7cea57cc7071bcc1cbada32f5bfaeb2203981.jpg', //背景图 bg: '//yun.duiba.com.cn/aurora/assets/8fa7cea57cc7071bcc1cbada32f5bfaeb2203981.jpg', //背景图
copyIcon: '//yun.duiba.com.cn/aurora/assets/721e5319d26a4edbb0282558fb87d9bda1de4887.png', //复制 copyIcon: '//yun.duiba.com.cn/aurora/assets/721e5319d26a4edbb0282558fb87d9bda1de4887.png', //复制
addressBth: '//yun.duiba.com.cn/aurora/assets/7ff6342492c2ce1a94ccfce39c88983b296b35fb.png', //填写地址(实物奖品) addressBth: '//yun.duiba.com.cn/aurora/assets/7ff6342492c2ce1a94ccfce39c88983b296b35fb.png', //填写地址(实物奖品)
getBth: '//yun.duiba.com.cn/aurora/assets/0725f0f5569ad12d37853ad5c40d163fbe247abf.png', //立即领取(除实物奖品外) getBth: '//yun.duiba.com.cn/aurora/assets/0725f0f5569ad12d37853ad5c40d163fbe247abf.png', //立即领取(除实物奖品外)
logisticsBth: '//yun.duiba.com.cn/aurora/assets/661f86ff3392cb3b56922b048acf74bebc07bb23.png', //查看物流 logisticsBth: '//yun.duiba.com.cn/aurora/assets/661f86ff3392cb3b56922b048acf74bebc07bb23.png', //查看物流
useBtn: '//yun.duiba.com.cn/aurora/assets/0829f92f771c5e9fdb05a258a46b2d038d3a9997.png', //去使用(除实物奖品外) useBtn: '//yun.duiba.com.cn/aurora/assets/0829f92f771c5e9fdb05a258a46b2d038d3a9997.png', //去使用(除实物奖品外)
gotBtn: '//yun.duiba.com.cn/aurora/assets/30fa200ba1dcd345247f957c16a03a9706895112.png', //已领取(优惠券) gotBtn: '//yun.duiba.com.cn/aurora/assets/30fa200ba1dcd345247f957c16a03a9706895112.png', //已领取(优惠券)
getAgainBtn: '//yun.duiba.com.cn/aurora/assets/f2bc6220c3b210a4b315ab1bfcc4ebeffcf854ba.png', //重新领取 getAgainBtn: '//yun.duiba.com.cn/aurora/assets/f2bc6220c3b210a4b315ab1bfcc4ebeffcf854ba.png', //重新领取
invalidBtn: '//yun.duiba.com.cn/aurora/assets/2790bbc504bd94bd7914771e5ba1202e9f011a1a.png', //已失效 invalidBtn: '//yun.duiba.com.cn/aurora/assets/2790bbc504bd94bd7914771e5ba1202e9f011a1a.png', //已失效
failBth: '//yun.duiba.com.cn/aurora/assets/7bdd43b0b86094c3cf121abb204824985a13035b.png', //领取失败 failBth: '//yun.duiba.com.cn/aurora/assets/7bdd43b0b86094c3cf121abb204824985a13035b.png', //领取失败
}, },
logisticsImage: { logisticsImage: {
shipped: '//yun.duiba.com.cn/aurora/assets/3a7b68ec171ee339ce619d19f6ae3f9c1e6d801a.png', // 已发货物理弹窗 shipped: '//yun.duiba.com.cn/aurora/assets/3a7b68ec171ee339ce619d19f6ae3f9c1e6d801a.png', // 已发货物理弹窗
notShipped: '//yun.duiba.com.cn/aurora/assets/ee0300d7b472c555ecf0b7b8d582fcf9189c2d19.png', // 待发货物流弹窗 notShipped: '//yun.duiba.com.cn/aurora/assets/ee0300d7b472c555ecf0b7b8d582fcf9189c2d19.png', // 待发货物流弹窗
copyIcon: '//yun.dui88.com/duiba-components-c-myprizemyprize_copy_code.png', //复制 copyIcon: '//yun.dui88.com/duiba-components-c-myprizemyprize_copy_code.png', //复制
}, },
btnStyle: { // 按钮自定义样式 btnStyle: { // 按钮自定义样式
width: '154rpx', width: '154rpx',
height: '49rpx', height: '49rpx',
} }
} }
}, },
onShow() { onShow() {
flag = false flag = false
this.getMyPrize(); this.getMyPrize();
}, },
onShareAppMessage() { onShareAppMessage() {
return SHARE_CONFIG; return SHARE_CONFIG;
}, },
// 到期时间 // 到期时间
getEndTime(prizeList = []) { getEndTime(prizeList = []) {
if (!prizeList || !prizeList.length) return null if (!prizeList || !prizeList.length) return null
const endTime = prizeList[0].expiredTime const endTime = prizeList[0].expiredTime
if (!endTime) return null; if (!endTime) return null;
const yy = new Date(endTime).getFullYear(); const yy = new Date(endTime).getFullYear();
const mm = new Date(endTime).getMonth() + 1; const mm = new Date(endTime).getMonth() + 1;
const dd = new Date(endTime).getDate(); const dd = new Date(endTime).getDate();
const t1 = `${yy}${mm}${dd}日`; const t1 = `${yy}${mm}${dd}日`;
// console.log(new Date(endTime).toLocaleDateString()) // console.log(new Date(endTime).toLocaleDateString())
// const t1 = new Date(endTime).toLocaleDateString() + '';//获取年月日 // const t1 = new Date(endTime).toLocaleDateString() + '';//获取年月日
const t2 = new Date(endTime).getHours() + ''; //获取时 const t2 = new Date(endTime).getHours() + ''; //获取时
const t3 = new Date(endTime).getMinutes() + ''; //获取分 const t3 = new Date(endTime).getMinutes() + ''; //获取分
const t4 = new Date(endTime).getSeconds() + ''; //获取秒 const t4 = new Date(endTime).getSeconds() + ''; //获取秒
console.log(endTime, new Date(endTime + 48 * 60 * 60 * 1000).toLocaleString(), 'endTime'); console.log(endTime, new Date(endTime + 48 * 60 * 60 * 1000).toLocaleString(), 'endTime');
console.log('endtime str',t1 + "" + t2.padStart(2, '0') + ":" + t3.padStart(2, '0') + ":" + t4.padStart(2, '0')) console.log('endtime str', t1 + "" + t2.padStart(2, '0') + ":" + t3.padStart(2, '0') + ":" + t4.padStart(2, '0'))
this.setData({ this.setData({
endTime: t1 + "" + t2.padStart(2, '0') + ":" + t3.padStart(2, '0') + ":" + t4.padStart(2, '0') endTime: t1 + "" + t2.padStart(2, '0') + ":" + t3.padStart(2, '0') + ":" + t4.padStart(2, '0')
}) })
}, },
/** /**
* 获取奖品列表 * 获取奖品列表
* @param {string} type 是否展示loading * @param {string} type 是否展示loading
*/ */
async getMyPrize(type) { async getMyPrize(type) {
const { const {
activityId activityId
} = app; } = app;
if (type != 'noLoading') { if (type != 'noLoading') {
my.showLoading(); my.showLoading();
} }
const { const {
success, success,
data, data,
message message
} = await API.getMyPrizeList({ } = await API.getMyPrizeList({
activityId activityId
}).catch(res => { }).catch(res => {
this.setData({ this.setData({
myPrizeList: [] myPrizeList: []
}) })
}) || {}; }) || {};
data.list.forEach(i => { data.list.forEach(i => {
// console.log('data list item', i); // console.log('data list item', i);
i.image = i.image || '//yun.duiba.com.cn/aurora/assets/00b4b751939da230055889445f00f22990ff5f88.png'; i.image = i.image || '//yun.duiba.com.cn/aurora/assets/00b4b751939da230055889445f00f22990ff5f88.png';
}); });
if (success && data && data.list) { if (success && data && data.list) {
this.setData({ this.setData({
myPrizeList: data.list myPrizeList: data.list
}) })
this.getEndTime(data.list) this.getEndTime(data.list)
} }
if (type != 'noLoading') { if (type != 'noLoading') {
my.hideLoading(); my.hideLoading();
} }
}, },
//领取奖品 //领取奖品
async handleClick(e) { async handleClick(e) {
const { const {
item item
} = e.target.dataset; } = e.target.dataset;
// 领取权益 // 领取权益
if (item.type === PRIZE_TYPE_MAP.EQUITY) return this.handleGetEquity(e) if (item.type === PRIZE_TYPE_MAP.EQUITY) return this.handleGetEquity(e)
// 领取实物 // 领取实物
if (item.type === PRIZE_TYPE_MAP.ENTITY) return this.handleGetEntity(e) if (item.type === PRIZE_TYPE_MAP.ENTITY) return this.handleGetEntity(e)
// 领取积分 // 领取积分
if (item.type === PRIZE_TYPE_MAP.INTEGRATION) return this.handleGetIntergation(e) if (item.type === PRIZE_TYPE_MAP.INTEGRATION) return this.handleGetIntergation(e)
}, },
/** /**
* 发奖 * 发奖
*/ */
async cloudTBIssue(params) { async cloudTBIssue(params) {
console.log('cloudTBIssue params',JSON.stringify(params)) console.log('cloudTBIssue params', JSON.stringify(params))
const { const {
cloud cloud
} = app; } = app;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
my.authorize({ my.authorize({
scopes: "scope.latourBenefit", scopes: "scope.latourBenefit",
success: async () => { success: async () => {
const result = await cloud.topApi const result = await cloud.topApi
.invoke({ .invoke({
api: "alibaba.latour.strategy.issue", api: "alibaba.latour.strategy.issue",
data: { data: {
channel: params.channel || "", channel: params.channel || "",
strategy_code: params.strategyCode || "", strategy_code: params.strategyCode || "",
selected_benefit_code: params.code || "", selected_benefit_code: params.code || "",
}, },
}) })
.catch((err) => { .catch((err) => {
commonToast('领取失败~') commonToast('领取失败~')
console.log("alibaba.latour.strategy.issue------catch", err); console.log("alibaba.latour.strategy.issue------catch", err);
});
console.log(result, "result");
commonToast('领取成功~')
resolve(result);
},
fail: (err) => {
console.log("scope.latourBenefit----fail", err);
commonToast('领取失败~')
reject(err);
},
}); });
}) console.log(result, "result");
}, commonToast('领取成功~')
resolve(result);
},
fail: (err) => {
console.log("scope.latourBenefit----fail", err);
commonToast('领取失败~')
reject(err);
},
});
})
},
// 优惠券 // 优惠券
async handleGetEquity(e) { async handleGetEquity(e) {
if (flag) { if (flag) {
return return
} }
flag = true; flag = true;
const { const {
item: { item: {
strategyCode, strategyCode,
code, code,
channel, channel,
id id
} }
} = e.target.dataset; } = e.target.dataset;
this.cloudTBIssue({ this.cloudTBIssue({
strategyCode, strategyCode,
code, code,
channel channel
}).then(()=>{ }).then(() => {
API.receivLaFeiPrize({id}).then((res)=>{ API.receivLaFeiPrize({ id }).then((res) => {
console.log('receivLaFeiPrize res',res) console.log('receivLaFeiPrize res', res)
this.getMyPrize() this.getMyPrize()
}) })
.catch((error)=>{ .catch((error) => {
console.log('receivLaFeiPrize error',error) console.log('receivLaFeiPrize error', error)
})
})
.catch(err=>{
API.receivLaFeiPrize({result:err})
}) })
// const { activityId } = app; })
// console.log(item, '领取权益') .catch(err => {
// const { success, data, message } = await API.receiveEnamePrize({ activityId, _id: item._id }).catch(res => { API.receivLaFeiPrize({ result: err })
// this.getMyPrize('noLoading') })
// commonToast(res && res.message) // const { activityId } = app;
// }) || {}; // console.log(item, '领取权益')
// if (success && data) { // const { success, data, message } = await API.receiveEnamePrize({ activityId, _id: item._id }).catch(res => {
// commonToast('领取成功') // this.getMyPrize('noLoading')
// this.getMyPrize() // commonToast(res && res.message)
// } // }) || {};
// if (success && data) {
// commonToast('领取成功')
// this.getMyPrize()
// }
setTimeout(() => { setTimeout(() => {
flag = false flag = false
}, 500) }, 500)
}, },
// 领取实物前询问 // 领取实物前询问
async handleGetEntity(e) { async handleGetEntity(e) {
my.confirm({
title: '领取奖品',
content: '是否允许访问您的粘贴板',
confirmButtonText: '确认',
cancelButtonText: '取消',
success: (result) => {
if (result.confirm) {
const text = 'zzzxxx'
commonToast('请前去钉钉领取,钉钉号为:' + text + '。钉钉号已经复制成功。', 3000);
setClipboard({
text: `${text}`
})
}
}, const text = 'zzzxxx'
fail: (result) =>{ setClipboard({
commonToast('访问剪贴板失败') text: `${text}`
} }).then(() => {
}); commonToast(' ' + text + '。钉钉号已经复制成功。', 3000);
}).catch(err=>{
console.log('handleGetEntity error',err)
})
// if (flag) { // my.confirm({
// return // title: '领取奖品',
// } // content: '是否允许访问您的粘贴板',
// // my.showLoading(); // confirmButtonText: '确认',
// flag = true; // cancelButtonText: '取消',
// const { activityId } = app; // success: (result) => {
// const { item } = e.target.dataset; // if (result.confirm) {
// const userAddress = await getUserAddress({ joinTag: " " }).catch((data) => { // const text = 'zzzxxx'
// flag = false // setClipboard({
// console.log('getUserAddress出错了,错误信息是', data); // text: `${text}`
// }) // })
// // my.hideLoading(); // commonToast('请前去钉钉领取,钉钉号为:' + text + '。钉钉号已经复制成功。', 3000);
// if (!userAddress) return // }
// // commonToast(' getUserAddress =>'+JSON.stringify( userAddress))
// const { name, telNumber, provinceName, cityName, cityCode, countyName, detailInfo, streetName } = userAddress || {};
// const params = {
// activityId,
// area: countyName,
// addressdetail: detailInfo,
// name,
// phone: telNumber,
// detailInfo,
// cityCode,
// cityName,
// city: cityName,
// province: provinceName,
// provinceName,
// countyName,
// streetName,
// _id: item._id
// }
// my.confirm({ // },
// title: '提示', // fail: (result) =>{
// content: '确认使用该收货地址:' + name + telNumber + userAddress.duibaAddress.address, // commonToast('访问剪贴板失败')
// confirmButtonText: '确定', // }
// cancelButtonText: '取消', // });
// success: (result) => {
// console.log(result)
// const { confirm } = result;
// if (confirm) {
// this.receiveObjectPrize(params);
// }
// },
// });
// flag = false
},
// 领取实物
async receiveObjectPrize(params) {
// commonToast('正在调用receiveObjectPrize'+JSON.stringify(params))
API.receiveObjectPrize(params).then((res) => {
// setTimeout(() => {
// commonToast(JSON.stringify(res))
// }, 5000);
const { // if (flag) {
success, // return
data, // }
message // // my.showLoading();
} = res; // flag = true;
if (success && data) { // const { activityId } = app;
commonToast('领取成功') // const { item } = e.target.dataset;
} else { // const userAddress = await getUserAddress({ joinTag: " " }).catch((data) => {
commonToast(message) // flag = false
} // console.log('getUserAddress出错了,错误信息是', data);
this.getMyPrize() // })
}, (rej) => { // // my.hideLoading();
commonToast(rej.message) // if (!userAddress) return
}); // // commonToast(' getUserAddress =>'+JSON.stringify( userAddress))
}, // const { name, telNumber, provinceName, cityName, cityCode, countyName, detailInfo, streetName } = userAddress || {};
// 积分 // const params = {
async handleGetIntergation(e) { // activityId,
if (flag) { // area: countyName,
return // addressdetail: detailInfo,
} // name,
flag = true; // phone: telNumber,
// 判断是否为会员 // detailInfo,
await this.getUserInfo() // cityCode,
const { // cityName,
isVip, // city: cityName,
vipLink // province: provinceName,
} = app; // provinceName,
if (!isVip) { // countyName,
commonToast('立即加入会员,即可领取奖品', 2000); // streetName,
setTimeout(() => { // _id: item._id
navigateToOutside(vipLink) // }
}, 1000)
flag = false // my.confirm({
return // title: '提示',
} // content: '确认使用该收货地址:' + name + telNumber + userAddress.duibaAddress.address,
const { // confirmButtonText: '确定',
activityId // cancelButtonText: '取消',
} = app; // success: (result) => {
const { // console.log(result)
item // const { confirm } = result;
} = e.target.dataset;
console.log(item, '领取积分') // if (confirm) {
const { // this.receiveObjectPrize(params);
success, // }
data, // },
message // });
} = await API.receiveEnamePrize({ // flag = false
activityId, },
_id: item._id // 领取实物
}) || {}; async receiveObjectPrize(params) {
if (success && data) { // commonToast('正在调用receiveObjectPrize'+JSON.stringify(params))
commonToast('领取成功') API.receiveObjectPrize(params).then((res) => {
} else { // setTimeout(() => {
commonToast(message) // commonToast(JSON.stringify(res))
} // }, 5000);
flag = false
this.getMyPrize() const {
}, success,
data,
message
} = res;
if (success && data) {
commonToast('领取成功')
} else {
commonToast(message)
}
this.getMyPrize()
}, (rej) => {
commonToast(rej.message)
});
},
// 积分
async handleGetIntergation(e) {
if (flag) {
return
}
flag = true;
// 判断是否为会员
await this.getUserInfo()
const {
isVip,
vipLink
} = app;
if (!isVip) {
commonToast('立即加入会员,即可领取奖品', 2000);
setTimeout(() => {
navigateToOutside(vipLink)
}, 1000)
flag = false
return
}
const {
activityId
} = app;
const {
item
} = e.target.dataset;
console.log(item, '领取积分')
const {
success,
data,
message
} = await API.receiveEnamePrize({
activityId,
_id: item._id
}) || {};
if (success && data) {
commonToast('领取成功')
} else {
commonToast(message)
}
flag = false
this.getMyPrize()
},
//获取用户vip信息 //获取用户vip信息
async getUserInfo() { async getUserInfo() {
const { const {
activityId activityId
} = app; } = app;
const { const {
success, success,
data, data,
message message
} = await API.getVipInfo({ } = await API.getVipInfo({
activityId activityId
}) || {}; }) || {};
console.log(data, '用户vip信息'); console.log(data, '用户vip信息');
if (success && data) { if (success && data) {
app.isVip = (data && data.isVip) || false; app.isVip = (data && data.isVip) || false;
app.vipLink = (data && data.url) || ''; app.vipLink = (data && data.url) || '';
} else { } else {
commonToast(message) commonToast(message)
} }
}, },
}); });
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment