|
|
// pages/home/jl/index.js
|
|
|
const app = getApp();//新建页面时 默认引入
|
|
|
const req = app.xzjlReq();//初始化一个的request() 实例
|
|
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
singleShow:false,
|
|
|
loverShow:false,
|
|
|
xingxiangtu:{},
|
|
|
userInfo:{},
|
|
|
loverInfo:{},
|
|
|
hours:0,
|
|
|
minute:0,
|
|
|
minutes:0,
|
|
|
pickerValue: [0, 0],
|
|
|
swiperIndex: 0,
|
|
|
prayTime:'00:00:00', //祈祷时间
|
|
|
prayTimeStr: '选择祈祷时长' ,
|
|
|
prayerContent:'', //祈祷内容
|
|
|
showSexLogo:false,//不展示形象修改按钮
|
|
|
showPray:false, //显示祈祷弹层
|
|
|
showIsPray:false, //显示取消祈祷弹层
|
|
|
showEnergy:false, //显示赠送能量弹层
|
|
|
showEnergyToast:false, //显示赠送能量提示
|
|
|
showEnergySuccess:false, //赠送成功提示
|
|
|
showEnergyFail:false, //赠送成功提示
|
|
|
showInject:false, //显示注入能量
|
|
|
showInEnergy:false, //显示能量注入中
|
|
|
showScsEnergy:false, //显示注册成功提示
|
|
|
showTiming:false, //显示祈祷时间弹层
|
|
|
jmEnergy:false,
|
|
|
showInjectBkc: false, //显示注入能量按钮动画
|
|
|
inPrayer: true,
|
|
|
qdTime: null,
|
|
|
ysTime: ''
|
|
|
|
|
|
},
|
|
|
ShowOrNotLogoS(){
|
|
|
this.setData({singleShow:!this.data.singleShow})
|
|
|
},
|
|
|
ShowOrNotLogoL(){
|
|
|
this.setData({loverShow:!this.data.loverShow})
|
|
|
},
|
|
|
doSetXxtAnimal(){
|
|
|
this.doSetXxt('animal')
|
|
|
},
|
|
|
doSetXxtMale(){
|
|
|
this.doSetXxt('male')
|
|
|
},
|
|
|
showTiming(){this.setData({showTiming : !this.data.showTiming})},
|
|
|
doSetXxtFemale(){
|
|
|
this.doSetXxt('female')
|
|
|
},
|
|
|
closeJmEnergy(){
|
|
|
this.setData({jmEnergy: false})
|
|
|
},
|
|
|
doSetXxt(e){
|
|
|
req.patchRequest('/api/user/curt',{spriteType:e}).then((res)=>{
|
|
|
if(res.data.code==200){
|
|
|
}
|
|
|
this.getUserInfo()
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
doSetXxtAnimalS(){
|
|
|
this.doSetXxtS('animal')
|
|
|
},
|
|
|
doSetXxtMaleS(){
|
|
|
this.doSetXxtS('male')
|
|
|
},
|
|
|
doSetXxtFemaleS(){
|
|
|
this.doSetXxtS('female')
|
|
|
},
|
|
|
doSetXxtS(e){
|
|
|
req.patchRequest('/api/user/curt/lover',{spriteType:e}).then((res)=>{
|
|
|
if(res.data.code==200){
|
|
|
}
|
|
|
this.getUserLoverInfo()
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
/**获取形象对应的图片 */
|
|
|
getXxObj(){
|
|
|
const horoscopes = wx.getStorageSync('xy-static-img')
|
|
|
const userType = this.data.userInfo.constellation
|
|
|
const loveType = this.data.loverInfo.constellation
|
|
|
this.setData({
|
|
|
xingxiangtu: horoscopes[userType],
|
|
|
})
|
|
|
if (loveType) {
|
|
|
this.setData({
|
|
|
xingxiangtuLove: horoscopes[loveType],
|
|
|
})
|
|
|
}
|
|
|
|
|
|
},
|
|
|
ShowOrNotLogo(){
|
|
|
this.setData({showSexLogo:!this.data.showSexLogo})
|
|
|
},
|
|
|
getUserLoverInfo(){
|
|
|
req.getRequest('/api/user/curt/lover',{}).then((res)=>{
|
|
|
if(res.data.code==200){
|
|
|
this.setData({loverInfo:res.data.data})
|
|
|
|
|
|
if (res.data.data.prayerStartTime) {
|
|
|
this.getQdTime(res.data.data)
|
|
|
}
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
getTextValue(e){
|
|
|
console.log(e.detail.value);
|
|
|
this.setData({
|
|
|
prayerContent:e.detail.value
|
|
|
})
|
|
|
console.log(this.data.prayerContent);
|
|
|
},
|
|
|
openEnergy(){
|
|
|
this.setData({
|
|
|
showEnergy:!this.data.showEnergy
|
|
|
})
|
|
|
},
|
|
|
cancelEnergy(){
|
|
|
this.setData({
|
|
|
showEnergy:!this.data.showEnergy
|
|
|
})
|
|
|
},
|
|
|
cancelEnergyToast(){
|
|
|
this.setData({
|
|
|
showEnergyToast:false,
|
|
|
showEnergyFail:false
|
|
|
})
|
|
|
},
|
|
|
openPray(){
|
|
|
this.getUserInfo()
|
|
|
if(this.data.userInfo.isInPrayer){
|
|
|
this.setData({
|
|
|
showIsPray:!this.data.showIsPray
|
|
|
})
|
|
|
}else{
|
|
|
this.setData({
|
|
|
showPray:!this.data.showPray,
|
|
|
prayerContent:'',
|
|
|
prayTimeStr: '选择祈祷时长'
|
|
|
})
|
|
|
}
|
|
|
this.setData({showTiming: false})
|
|
|
},
|
|
|
onPickerChange(e){
|
|
|
console.log(e.detail.value);
|
|
|
const time = e.detail.value[0] + '小时' + e.detail.value[1] + '分钟'
|
|
|
this.setData({prayTimeStr: time})
|
|
|
if(e.detail.value[0] === this.data.hours){
|
|
|
this.setData({
|
|
|
minutes:this.data.minute
|
|
|
})
|
|
|
}else{
|
|
|
this.setData({
|
|
|
minutes:59
|
|
|
})
|
|
|
}
|
|
|
this.setData({
|
|
|
pickerValue: e.detail.value
|
|
|
})
|
|
|
},
|
|
|
openInject(){
|
|
|
console.log('注入能量');
|
|
|
this.setData({
|
|
|
showInjectBkc: true
|
|
|
})
|
|
|
const touchTimer = setTimeout(() => {
|
|
|
this.setData({
|
|
|
showInject:!this.data.showInject,
|
|
|
})
|
|
|
}, 3000);
|
|
|
this.setData({
|
|
|
touchTimer: touchTimer
|
|
|
})
|
|
|
},
|
|
|
closeInject(){
|
|
|
console.log('结束');
|
|
|
this.setData({showInjectBkc: false})
|
|
|
clearInterval(this.data.touchTimer)
|
|
|
},
|
|
|
clostBtnInject(){
|
|
|
this.setData({
|
|
|
showInject:!this.data.showInject
|
|
|
})
|
|
|
},
|
|
|
// 注入晶石
|
|
|
btnInject(){
|
|
|
// 判断之前加持是否已结束
|
|
|
if (this.data.userInfo.pendantLuckInBlessing) {
|
|
|
wx.showToast({
|
|
|
title: '吊坠能量加持未结束',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
return this.setData({
|
|
|
showInject: false
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 判断是否有能量
|
|
|
if (this.data.userInfo.crystallineEnergy) {
|
|
|
this.setData({
|
|
|
showInject:!this.data.showInject,
|
|
|
showInEnergy:!this.data.showInEnergy,
|
|
|
crystallineEnergy: this.data.userInfo.crystallineEnergy
|
|
|
})
|
|
|
req.patchRequest('/api/user/curt/inject-energy-to-pendant',{}).then((res)=>{
|
|
|
if (res.data.code === 200) {
|
|
|
console.log(res, '能量注入成功');
|
|
|
setTimeout(()=>{
|
|
|
this.setData({
|
|
|
showInEnergy:!this.data.showInEnergy,
|
|
|
showScsEnergy:true
|
|
|
})
|
|
|
this.getUserInfo()
|
|
|
},2000)
|
|
|
}
|
|
|
})
|
|
|
// 计算守护时长
|
|
|
const energy = (this.data.userInfo.pendantEnergy + this.data.userInfo.crystallineEnergy) * 4.8
|
|
|
let minute = 0
|
|
|
let hour = 0
|
|
|
if (energy >= 60) {
|
|
|
hour = Math.floor(energy / 60)
|
|
|
minute = Math.floor(energy - (hour * 60 ))
|
|
|
if (minute < 10) {
|
|
|
minute = '0' + minute
|
|
|
}
|
|
|
}
|
|
|
this.setData({
|
|
|
guarTime: `${hour}小时${minute}分钟`
|
|
|
})
|
|
|
}else{
|
|
|
console.log('没有能量');
|
|
|
this.setData({showInject: false})
|
|
|
wx.showToast({
|
|
|
title: '能量不足',
|
|
|
icon: 'error'
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
// 关闭注入弹层
|
|
|
closeEnergy(){this.setData({showScsEnergy:false})},
|
|
|
getUserInfo(){
|
|
|
req.getRequest('/api/user/curt',{}).then((res)=>{
|
|
|
if(res.data.code===200){
|
|
|
if (res.data.data.prayerStartTime) {
|
|
|
this.getQdTime(res.data.data)
|
|
|
}
|
|
|
|
|
|
// 获取可以祈祷的时间
|
|
|
const pendantEnergy = res.data.data.crystallineEnergy
|
|
|
const hours = Math.floor(pendantEnergy * 6 / 60); // 计算小时数
|
|
|
const minute = pendantEnergy * 6 - hours * 60
|
|
|
if(hours>0){
|
|
|
this.setData({
|
|
|
minutes:59
|
|
|
})
|
|
|
}
|
|
|
if(hours<=0){
|
|
|
this.setData({
|
|
|
minutes:minute
|
|
|
})
|
|
|
}
|
|
|
|
|
|
this.setData({
|
|
|
hours:hours,
|
|
|
minute:minute,
|
|
|
pendantEnergy:pendantEnergy
|
|
|
})
|
|
|
|
|
|
// 能量集满显示提示
|
|
|
if(res.data.data.crystallineEnergy >= 100){
|
|
|
this.setData({
|
|
|
jmEnergy: true
|
|
|
})
|
|
|
}
|
|
|
|
|
|
this.setData({
|
|
|
userInfo:res.data.data,
|
|
|
})
|
|
|
|
|
|
// 判断运势加持是否结束
|
|
|
const endSeconds = new Date(res.data.data.pendantLuckyEndTime)
|
|
|
const nowSeconds = new Date()
|
|
|
if (endSeconds > nowSeconds) {
|
|
|
this.getYsTime(res.data.data.pendantLuckyStartTime)
|
|
|
}
|
|
|
|
|
|
this.getXxObj()
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
|
|
|
// 计算运势已加持时间
|
|
|
getYsTime(milliseconds){
|
|
|
const statrSeconds = new Date(milliseconds)
|
|
|
|
|
|
const ysTime = setInterval(() => {
|
|
|
const nowSeconds = new Date()
|
|
|
|
|
|
const nowTime = nowSeconds - statrSeconds
|
|
|
|
|
|
const hours = Math.floor(nowTime / 1000 / 3600);
|
|
|
const minutes = Math.floor(nowTime / 1000 / 60 - (hours * 60)) ;
|
|
|
const seconds = Math.floor(nowTime / 1000 - (hours * 3600) - (minutes * 60));
|
|
|
|
|
|
const formattedHours = String(hours).padStart(2, '0');
|
|
|
const formattedMinutes = String(minutes).padStart(2, '0');
|
|
|
const formattedSeconds = String(seconds).padStart(2, '0');
|
|
|
|
|
|
const time = `${formattedHours}:${formattedMinutes}:${formattedSeconds}`
|
|
|
this.setData({ydTime: time})
|
|
|
}, 1000)
|
|
|
|
|
|
this.setData({ysTime: ysTime})
|
|
|
},
|
|
|
// 计算祈祷时间
|
|
|
getQdTime(data){
|
|
|
clearInterval(this.data.qdTime)
|
|
|
this.data.qdTime = setInterval(() => {
|
|
|
// 获取已经祈祷时间
|
|
|
const now = new Date();
|
|
|
const startTime = new Date(data.prayerStartTime)
|
|
|
const diff = now.getTime() - startTime.getTime();
|
|
|
const hour = Math.floor(diff / (1000 * 60 * 60));
|
|
|
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
|
|
|
const seconds = Math.floor((diff % (1000 * 60)) / 1000);
|
|
|
const formattedTime = `${hour.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
|
|
|
// 获取结束祈祷返回能量
|
|
|
const nowTime = new Date();
|
|
|
const endTime = new Date(data.prayerEndTime)
|
|
|
const TimeDiff = endTime.getTime() - nowTime.getTime();
|
|
|
|
|
|
// 判断是否正在祈祷
|
|
|
if (data.isInPrayer) {
|
|
|
this.setData({
|
|
|
prayTime: formattedTime,
|
|
|
energy: Math.floor(TimeDiff / 360000),
|
|
|
})
|
|
|
}
|
|
|
console.log('定时器执行');
|
|
|
|
|
|
}, 1000);
|
|
|
},
|
|
|
|
|
|
go2Jlai(){
|
|
|
wx.redirectTo({
|
|
|
url: '/pages/home/jl/jlai/jlai',
|
|
|
})
|
|
|
},
|
|
|
btnOK(){
|
|
|
const prayerEnergy = (this.data.pickerValue[0]*60 + this.data.pickerValue[1])/6
|
|
|
if(this.data.pickerValue[0] === 0 && this.data.pickerValue[1] <= 5){
|
|
|
return wx.showToast({
|
|
|
title: '祈祷时间不能小于五分钟',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
}
|
|
|
if(this.data.userInfo.crystallineEnergy < 1){
|
|
|
return wx.showToast({
|
|
|
title: '能量不足',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
}
|
|
|
if(this.data.prayerContent === ''){
|
|
|
return wx.showToast({
|
|
|
title: '祈祷内容不能为空',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
}
|
|
|
if(this.data.prayerContent.length > 11){
|
|
|
return wx.showToast({
|
|
|
title: '祈祷内容不能超过11个字',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
}
|
|
|
req.patchRequest('/api/user/curt/prayer',{
|
|
|
prayerContent:this.data.prayerContent,
|
|
|
prayerEnergy:prayerEnergy
|
|
|
}).then((res) => {
|
|
|
|
|
|
if (res.data.code === 1002) {
|
|
|
return wx.showToast({
|
|
|
title: 'Ta正在为你祈祷中,请在祈祷结束后再试试~',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
}
|
|
|
|
|
|
if(res.data.code === 200){
|
|
|
wx.showToast({
|
|
|
title: '祈祷成功',
|
|
|
icon: 'success'
|
|
|
})
|
|
|
}
|
|
|
|
|
|
this.getUserInfo()
|
|
|
this.openPray()
|
|
|
}).catch((err) => {
|
|
|
console.log('祈祷失败',err);
|
|
|
})
|
|
|
this.setData({showTiming: false})
|
|
|
},
|
|
|
btnCancel(){
|
|
|
// 更新数据后清除定时器
|
|
|
clearInterval(this.data.qdTime)
|
|
|
this.data.qdTime = null
|
|
|
console.log('清除定时器');
|
|
|
req.patchRequest('/api/user/curt/prayer/stop',{}).then((res)=>{
|
|
|
if(res.data.code === 200){
|
|
|
wx.showToast({
|
|
|
title: '已结束祈祷',
|
|
|
icon: 'success'
|
|
|
})
|
|
|
|
|
|
this.setData({prayTime : '00:00:00'})
|
|
|
this.openPray()
|
|
|
this.getUserInfo()
|
|
|
}else {
|
|
|
wx.showToast({
|
|
|
title: '结束祈祷失败',
|
|
|
icon: 'error'
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
btnShare(){
|
|
|
if (this.data.loverInfo.crystallineEnergy === 100) {
|
|
|
return this.setData({
|
|
|
showEnergy:!this.data.showEnergy,
|
|
|
showEnergyToast:!this.data.showEnergyToast,
|
|
|
toast: '对方能量已经满啦~'
|
|
|
})
|
|
|
}
|
|
|
if (this.data.userInfo.crystallineEnergy === 0) {
|
|
|
return this.setData({
|
|
|
showEnergy:!this.data.showEnergy,
|
|
|
showEnergyToast:!this.data.showEnergyToast,
|
|
|
toast: '你剩余的能量不足~'
|
|
|
})
|
|
|
}
|
|
|
req.patchRequest('/api/user/curt/give-crystalline-energy-to-lover',{}).then((res)=>{
|
|
|
console.log(res);
|
|
|
if(res.data.code === 200){
|
|
|
this.setData({
|
|
|
showEnergySuccess:!this.data.showEnergySuccess,
|
|
|
showEnergy:!this.data.showEnergy
|
|
|
})
|
|
|
this.getUserInfo()
|
|
|
this.getUserLoverInfo()
|
|
|
return setTimeout(()=>{
|
|
|
this.setData({
|
|
|
showEnergySuccess:!this.data.showEnergySuccess,
|
|
|
})
|
|
|
},2000)
|
|
|
}else if(res.data.code === 500){
|
|
|
return this.setData({
|
|
|
showEnergy:!this.data.showEnergy,
|
|
|
showEnergyToast:!this.data.showEnergyToast,
|
|
|
toast: '对方能量已经满啦~'
|
|
|
})
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log('111');
|
|
|
this.setData({
|
|
|
showEnergyFail:!this.data.showEnergyFail,
|
|
|
showEnergy:!this.data.showEnergy
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
|
|
|
// 切换轮播图
|
|
|
goLeftSwiper(){
|
|
|
if (this.data.swiperIndex === 0) {
|
|
|
this.setData({swiperIndex: 2})
|
|
|
}else {
|
|
|
this.setData({swiperIndex: this.data.swiperIndex - 1})
|
|
|
}
|
|
|
},
|
|
|
goRightSwiper(){
|
|
|
if (this.data.swiperIndex === 2){
|
|
|
this.setData({swiperIndex: 0})
|
|
|
}else {
|
|
|
this.setData({swiperIndex: this.data.swiperIndex + 1})
|
|
|
}
|
|
|
},
|
|
|
swiperChange(e){
|
|
|
this.setData({swiperIndex: e.detail.current})
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad(options) {
|
|
|
this.getUserInfo()
|
|
|
this.getUserLoverInfo()
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
*/
|
|
|
onReady() {
|
|
|
this.getXxObj()
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面显示
|
|
|
*/
|
|
|
onShow() {
|
|
|
this.getUserInfo()
|
|
|
this.getXxObj()
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
*/
|
|
|
onHide() {
|
|
|
this.getUserInfo()
|
|
|
clearInterval(this.data.qdTime)
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
*/
|
|
|
onUnload() {
|
|
|
this.getUserInfo()
|
|
|
clearInterval(this.data.setInterval)
|
|
|
clearInterval(this.data.qdTime)
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
*/
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
*/
|
|
|
onReachBottom() {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 用户点击右上角分享
|
|
|
*/
|
|
|
onShareAppMessage() {
|
|
|
},
|
|
|
|
|
|
ToastDialog(e) {
|
|
|
this.setData({ visible: !this.data.visible });
|
|
|
}
|
|
|
,
|
|
|
onVisibleChange(e) {
|
|
|
this.setData({
|
|
|
visible: e.detail.visible,
|
|
|
});
|
|
|
}
|
|
|
}) |