Files
sgy-web/pages/recruit/index.js
2023-07-14 16:44:05 +08:00

363 lines
9.6 KiB
JavaScript

// pages/recruit/index.js
Page({
/**
* 页面的初始数据
*/
data: {
recruitData : '',
type : 'flowPath', //flowPath 参与流程 clockIn 打卡
followState : false,
followStype : '', //是关闭还是跳转
loginCode : '',
subscribe : '', //是否关注
calendarData : [], //日历表
canSign : '', //是否可以签到
selectMonth : '', //当前月
lastMonth : '', //选择下个月
nextMonth : '', //选择上个月
signDayNumber : '', //累计打卡天数
signDayCount : '', //总打卡天数
signWaterNumber: '', //总打卡给水滴
skinData : '', //体验对比分析
dailyData : [], //日常任务
dailyId : '', // 日常任务列表id
dailyTitle : '', // 日常任务列表标题
dailyState : false, //日常分享列表弹出
nameState : false, //粘贴地址弹框
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.invite != undefined) {
getApp().globalData.inviteText = options.invite
}
if(options.is_experience != undefined) {
getApp().globalData.isExperience = options.is_experience
}
if(options.experience_area_id != undefined) {
getApp().globalData.experienceAreaId = options.experience_area_id
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
wx.login({
success: res => {
this.setData({
loginCode: res.code
})
}
})
// 获取体验官首页
this.recruitInfo();
},
/**
* 体验官首页
*/
recruitInfo() {
wx.$api.recruit.index({
invite : getApp().globalData.inviteText || '',
is_experience : getApp().globalData.isExperience || ''
}).then(res => {
this.setData({
recruitData: res.data
})
// 0可以申请 1需要面检测 5签收-查看物流 6打卡 7第二次面 8完成
if(res.data.can.status == 6 || res.data.can.status == 7 || res.data.can.status == 8) {
// 获取日历
this.signInfo();
// 获取日常任务
this.dailyInfo();
// 显示打卡数据
this.setData({
type : 'clockIn'
})
}
if(res.data.can.status == 8) {
// 获取两次报告对比
this.skinInfo();
}
}).catch(err => {})
},
/**
* 申请
*/
applyGo() {
if(wx.getStorageSync("token") != ''){
// 0可以申请 1需要面检测 5签收-查看物流 6打卡 7第二次面
if(this.data.recruitData.can.status == 0) {
this.setData({
followStype : 'experience'
})
if(!this.data.recruitData.is_subscribe) {
this.setData({
followState: true
})
return
}
// 申请体验官
wx.navigateTo({
url: './referto/referto?id=' + this.data.recruitData.experience_id
})
} else if(this.data.recruitData.can.status == 5) {
var data = JSON.stringify(this.data.recruitData.express)
// 查看物流
wx.navigateTo({
url: `/pages/order/logistic/logistic?newData=` + encodeURIComponent(data)
})
} else if(this.data.recruitData.can.status == 6) {
// 日历打卡
} else {
// 面部检测
wx.navigateTo({
url: '/pages/index/assess/assess?type=1'
})
}
return
}
// 去登录
wx.navigateTo({
url: "/pages/login/index"
})
},
rejectGo() {
wx.showModal({
title: '驳回原因提示',
showCancel: false,
content: this.data.recruitData.can.remark,
success: res => {}
})
},
/**
* 获取code
*/
followCode() {
wx.getUserProfile({
desc : "获取你的昵称、头像、地区及性别",
success : e => {
if(e.errMsg == "getUserProfile:ok"){
wx.$api.recruit.wechatMini({
code :this.data.loginCode,
iv : e.iv,
encryptedData: e.encryptedData
}).then(res => {
// subscribe == 0未关注公众号
//subscribe == 1已关注公众号
this.setData({
subscribe: res.data.subscribe
})
}).catch(err => {})
}
},
fail: err => {
return;
}
})
},
/**
* 日历
*/
signInfo() {
wx.$api.recruit.signCalendar({
date : this.data.selectMonth,
experience_id: this.data.recruitData.experience_id
}).then(res => {
this.setData({
calendarData : res.data.calendar,
lastMonth : res.data.lastMonth,
nextMonth : res.data.nextMonth,
selectMonth : res.data.nowMonth,
canSign : res.data.canSign,
signDayNumber: res.data.signDayNumber,
signDayCount : res.data.signDayCount,
signWaterNumber : res.data.signWaterNumber
})
}).catch(err => {})
},
/**
* 日历数量加减
*/
couponNumber(e){
let val = e.currentTarget.dataset.type
if (val == 'plus'){
this.setData({
selectMonth: this.data.lastMonth
})
}else{
this.setData({
selectMonth: this.data.nextMonth
})
}
// 获取日历
this.signInfo();
},
/**
* 签到弹出
*/
tapPop() {
if(!this.data.recruitData.is_subscribe) {
this.setData({
followState: true
})
return
}
wx.navigateTo({
url: './signWrite/signWrite?experienceId=' + this.data.recruitData.experience_id + '&signDayNumber=' + this.data.signDayNumber
})
},
/**
* 签到跳走
*/
tapGo() {
if(this.data.followStype == 'close') {
this.setData({
followState: !this.data.followState
})
return
}
// 微信公众号入库
this.followCode();
this.setData({
followState: !this.data.followState
})
if(this.data.followStype == 'experience') {
// 申请体验官
wx.navigateTo({
url: './referto/referto?id=' + this.data.recruitData.experience_id
})
} else {
// 填写打卡心得
wx.navigateTo({
url: './signWrite/signWrite?experienceId=' + this.data.recruitData.experience_id + '&signDayNumber=' + this.data.signDayNumber
})
}
},
/**
* 打开日常任务弹框
*/
dailyBind() {
this.setData({
dailyState: true
})
},
/**
* 日常任务
*/
dailyInfo() {
wx.$api.recruit.dailyCreate().then(res => {
this.setData({
dailyData: res.data
})
}).catch(err => {})
},
/**
* 日常任务分享
*/
shareTap(e) {
this.setData({
dailyId: e.currentTarget.dataset.id,
dailyTitle: e.currentTarget.dataset.title,
dailyState: false,
nameState: true
})
},
/**
* 关闭日常任务分享
*/
dailyClose() {
this.setData({
dailyState: false
})
},
/**
* 复制分享地址
*/
freeform(val) {
let data = {
category_id : this.data.dailyId,
url : val.detail.value.url,
city_id : this.data.recruitData.experience_id
}
wx.$api.recruit.dailyPost(data).then(res => {
wx.showToast({
title : '提交成功',
icon : "none"
})
this.setData({
nameState: false
})
// 获取日常任务
this.dailyInfo();
}).catch(() =>{})
},
/**
* 关闭复制分享地址
*/
establish() {
this.setData({
nameState: false
})
},
/**
* 分享记录
*/
recordTap() {
wx.navigateTo({
url: '/pages/recruit/dailyList/dailyList',
})
this.setData({
dailyState: false
})
},
/**
* 两次报告对比
*/
skinInfo() {
wx.$api.recruit.skinDiff().then(res => {
this.setData({
skinData: res.data
})
}).catch(err => {})
},
/**
* 公众号弹出
*/
followHide() {
this.setData({
followState: !this.data.followState,
followStype: 'close'
})
}
})