// 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:0, //祈祷时间 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, jmEnergy2: true, showInjectBkc: false, //显示注入能量按钮动画 inPrayer: true }, 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({jmEnergy2: 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}) // 获取已经祈祷时间 const now = new Date(); const startTime = new Date(res.data.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(res.data.data.prayerEndTime) const TimeDiff = endTime.getTime() - nowTime.getTime(); // 判断是否正在祈祷 if (res.data.data.isInPrayer) { this.setData({ prayTime: formattedTime, energy: Math.floor(TimeDiff / 360000), }) } } }).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(){ if(this.data.userInfo.isInPrayer){ this.setData({ showIsPray:!this.data.showIsPray }) }else{ this.setData({ showPray:!this.data.showPray, prayerContent:'' }) } 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)=>{ console.log('能量注入成功'); }) 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){ // 获取已经祈祷时间 const now = new Date(); const startTime = new Date(res.data.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(res.data.data.prayerEndTime) const TimeDiff = endTime.getTime() - nowTime.getTime(); // 判断是否正在祈祷 if (res.data.data.isInPrayer) { this.setData({ prayTime: formattedTime, energy: Math.floor(TimeDiff / 360000), }) } 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 }) } // 能量集满显示提示 if(res.data.data.crystallineEnergy >= 100){ this.setData({jmEnergy: true}) } this.setData({ userInfo:res.data.data, hours:hours, minute:minute, pendantEnergy:pendantEnergy }) // 判断运势加持是否结束 const endSeconds = new Date(res.data.data.pendantLuckyEndTime) const nowSeconds = new Date() if (endSeconds > nowSeconds) { this.getYsTime(res.data.data.pendantLuckyStartTime) } this.getXxObj() // console.log(this.data.userInfo); } }).catch((err)=>{ console.log(err); }) }, // 计算运势已加持时间 getYsTime(milliseconds){ const statrSeconds = new Date(milliseconds) 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}) }, go2Jlai(){ wx.navigateTo({ 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){ Toast({ context: this, selector: '#t-toast', message: '祈祷成功', }); } this.getUserInfo() this.openPray() }).catch((err) => { console.log('祈祷失败',err); }) this.setData({showTiming: false}) }, btnCancel(){ console.log('111'); req.patchRequest('/api/user/curt/prayer/stop',{}).then((res)=>{ Toast({ context: this, selector: '#t-toast', message: '已结束祈祷', }); this.openPray() this.getUserInfo() }) }, 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() const time = setInterval(() => { this.getUserInfo() this.getUserLoverInfo() }, 1000); this.setData({ setInterval: time }) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { this.getUserInfo() clearInterval(this.data.setInterval) }, /** * 生命周期函数--监听页面卸载 */ onUnload() { this.getUserInfo() clearInterval(this.data.setInterval) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, ToastDialog(e) { this.setData({ visible: !this.data.visible }); } , onVisibleChange(e) { this.setData({ visible: e.detail.visible, }); } })