init
This commit is contained in:
276
pages_tool/member/public/js/signin.js
Normal file
276
pages_tool/member/public/js/signin.js
Normal file
@@ -0,0 +1,276 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showSignDays: [], // 一共展示的天数
|
||||
rule: [{}],
|
||||
hasSign: 0, //今天是否签到
|
||||
signDaysSeries: 0, //连续签到次数
|
||||
MonthData: [], //本月日期信息
|
||||
signList: [],
|
||||
back: '', //返回页
|
||||
redirect: '', //返回方式
|
||||
successTip: {},
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
isActive: "", //判断点击
|
||||
signState: 1,
|
||||
headimg: '',
|
||||
point: 0,
|
||||
growth: 0,
|
||||
signPoint: 0,
|
||||
signGrowth: 0,
|
||||
rewardRuleDay: [],
|
||||
cycle: 0,
|
||||
reward: {}
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
setTimeout( () => {
|
||||
if (!this.addonIsExist.membersignin) {
|
||||
this.$util.showToast({
|
||||
title: '商家未开启会员签到',
|
||||
mask: true,
|
||||
duration: 2000
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$util.redirectTo('/pages/index/index');
|
||||
}, 2000);
|
||||
}
|
||||
},1000);
|
||||
|
||||
if (option.back) this.back = option.back;
|
||||
if (option.redirect) this.redirect = option.redirect;
|
||||
|
||||
this.getSignState();
|
||||
},
|
||||
onShow() {
|
||||
if (!this.storeToken) {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.login.open('/pages_tool/member/signin');
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.headimg = this.memberInfo.headimg;
|
||||
this.signDaysSeries = this.memberInfo.sign_days_series;
|
||||
|
||||
this.getSignPointData();
|
||||
this.getSignGrowthData();
|
||||
this.setPublicShare();
|
||||
|
||||
this.getIsSign();
|
||||
},
|
||||
methods: {
|
||||
// 获取签到累积积分
|
||||
getSignPointData() {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/memberaccount/sum',
|
||||
data: {
|
||||
account_type: 'point',
|
||||
from_type: 'signin'
|
||||
},
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.signPoint = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 获取签到累积成长值
|
||||
getSignGrowthData() {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/memberaccount/sum',
|
||||
data: {
|
||||
account_type: 'growth',
|
||||
from_type: 'signin'
|
||||
},
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.signGrowth = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 签到是否开启
|
||||
getSignState() {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/membersignin/getSignStatus',
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.signState = res.data.is_use;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
navigateBack() {
|
||||
if (this.back != '') {
|
||||
this.$util.redirectTo(this.back, {}, this.redirect);
|
||||
} else {
|
||||
this.$util.redirectTo('/pages/member/index');
|
||||
}
|
||||
},
|
||||
//获取rule
|
||||
getRule() {
|
||||
this.rewardRuleDay = [];
|
||||
this.$api.sendRequest({
|
||||
url: '/api/membersignin/award',
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
|
||||
this.cycle = res.data.cycle || 0;
|
||||
this.rule = res.data.reward || [];
|
||||
let default_point = 0;
|
||||
if (this.rule.length > 0) {
|
||||
this.rule.forEach((item, index) => {
|
||||
if (item.day == 1) {
|
||||
default_point = item.point;
|
||||
} else {
|
||||
this.rewardRuleDay.push(parseInt(item.day));
|
||||
this.reward[item.day] = item.point;
|
||||
}
|
||||
});
|
||||
}
|
||||
//展示7天
|
||||
var showSignDays = [];
|
||||
var start_day = 1;
|
||||
var end_day = 7;
|
||||
var total_day = res.data.cycle;
|
||||
if (this.signDaysSeries > 5) {
|
||||
start_day = this.signDaysSeries - 5;
|
||||
}
|
||||
if (total_day >= (this.signDaysSeries + 1)) {
|
||||
end_day = this.signDaysSeries + 1;
|
||||
}
|
||||
if (this.signDaysSeries <= 5) {
|
||||
end_day = 8 - start_day;
|
||||
}
|
||||
|
||||
if ((end_day - start_day) < 7 && total_day >= start_day + 6) {
|
||||
end_day = start_day + 6;
|
||||
}
|
||||
if (total_day == this.signDaysSeries) {
|
||||
start_day = this.signDaysSeries - 6;
|
||||
end_day = this.signDaysSeries;
|
||||
}
|
||||
|
||||
for (let i = 1; i <= res.data.cycle; i++) {
|
||||
if (i >= start_day && i <= end_day) {
|
||||
showSignDays.push({
|
||||
day: i,
|
||||
is_last: 0,
|
||||
point: default_point
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (showSignDays && showSignDays.length) {
|
||||
showSignDays[showSignDays.length - 1]['is_last'] = 1;
|
||||
}
|
||||
|
||||
for (let i in showSignDays) {
|
||||
let item = showSignDays[i];
|
||||
if (this.$util.inArray(item.day, this.rewardRuleDay) != -1) {
|
||||
showSignDays[i]['point'] = parseInt(this.reward[item.day]) + parseInt(default_point);
|
||||
}
|
||||
}
|
||||
|
||||
this.showSignDays = showSignDays;
|
||||
this.$refs.loadingCover.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
//判断当前是否签到
|
||||
getIsSign() {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/membersignin/issign',
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.hasSign = res.data;
|
||||
this.getRule();
|
||||
this.getSignPointData();
|
||||
this.getSignGrowthData();
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
//签到
|
||||
sign() {
|
||||
if (this.signState == 0) {
|
||||
this.$util.showToast({
|
||||
title: '签到未开启'
|
||||
})
|
||||
}
|
||||
|
||||
if (!this.hasSign && this.signState == 1) {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/membersignin/signin',
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.successTip = res.data;
|
||||
this.$refs.uniPopup.open()
|
||||
this.getRule();
|
||||
this.getSignPointData();
|
||||
this.getSignGrowthData();
|
||||
this.hasSign = 1;
|
||||
this.signDaysSeries = this.signDaysSeries + 1;
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: res.message
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
close() {
|
||||
this.$refs.uniPopup.close()
|
||||
},
|
||||
/**
|
||||
* 设置公众号分享
|
||||
*/
|
||||
setPublicShare() {
|
||||
let shareUrl = this.$config.h5Domain + '/pages_tool/member/signin';
|
||||
|
||||
this.$util.setPublicShare({
|
||||
title: '签到有礼',
|
||||
desc: '天天签到,积分好礼送不停',
|
||||
link: shareUrl,
|
||||
imgUrl: ''
|
||||
},
|
||||
res => {
|
||||
// console.log('公众号分享成功');
|
||||
// this.share();
|
||||
}
|
||||
);
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
pointTomorrow: function() {
|
||||
var signDaysSeries = this.signDaysSeries + 1;
|
||||
var point = this.rule[0].point ? parseInt(this.rule[0].point) : 0;
|
||||
for (let i = 1; i < this.rule.length; i++) {
|
||||
let reward = this.rule[i];
|
||||
if (reward.day == signDaysSeries && reward.point) point += parseInt(reward.point);
|
||||
}
|
||||
return point;
|
||||
},
|
||||
showDay: function() {
|
||||
return parseInt(this.signDaysSeries / 7) * 7 + 1;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 自定义分享内容
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
var path = '/pages_tool/member/signin';
|
||||
return {
|
||||
title: '签到有礼,天天签到,积分好礼送不停',
|
||||
imageUrl: '',
|
||||
path: path,
|
||||
success: res => {},
|
||||
fail: res => {},
|
||||
complete: res => {}
|
||||
};
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user