|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 生命周期函数--监听页面显示 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | // onShow: function () { | 
|---|
|  |  |  | //   // 设置页面为加载中状态 | 
|---|
|  |  |  | //   wx.showLoading({ | 
|---|
|  |  |  | //     title: '加载中', | 
|---|
|  |  |  | //     mask: true | 
|---|
|  |  |  | //   }); | 
|---|
|  |  |  | onShow: function () { | 
|---|
|  |  |  | // 检查全局变量,判断是否需要刷新列表并切换到当前计划 | 
|---|
|  |  |  | const app = getApp(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //   // 先加载当前页面所需的数据 | 
|---|
|  |  |  | //   const currentTab = this.data.currentTab; | 
|---|
|  |  |  | //   if (currentTab === 0) { | 
|---|
|  |  |  | //     // 当前标签是"当前灌溉计划",加载这个 | 
|---|
|  |  |  | //     this.loadIrrigationData() | 
|---|
|  |  |  | //       .then(() => { | 
|---|
|  |  |  | //         wx.hideLoading(); | 
|---|
|  |  |  | //       }) | 
|---|
|  |  |  | //       .catch(() => { | 
|---|
|  |  |  | //         wx.hideLoading(); | 
|---|
|  |  |  | //       }); | 
|---|
|  |  |  | //   } else { | 
|---|
|  |  |  | //     // 当前标签是"历史计划" | 
|---|
|  |  |  | //     // 只加载第一页数据,保留分页状态 | 
|---|
|  |  |  | //     if (this.data.completedList.length === 0) { | 
|---|
|  |  |  | //       // 如果历史列表为空,重置分页状态 | 
|---|
|  |  |  | //       this.setData({ | 
|---|
|  |  |  | //         pageCurr: 1, | 
|---|
|  |  |  | //         hasMoreData: true | 
|---|
|  |  |  | //       }); | 
|---|
|  |  |  | //     } | 
|---|
|  |  |  | // 刷新所有数据(当前计划和历史计划),确保数据最新 | 
|---|
|  |  |  | wx.showLoading({ | 
|---|
|  |  |  | title: '刷新数据中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 同时获取当前计划和历史计划数据 | 
|---|
|  |  |  | Promise.all([ | 
|---|
|  |  |  | this.loadIrrigationData(), | 
|---|
|  |  |  | this.loadCompletedIrrigationData(true) // 传入true表示是重新加载第一页 | 
|---|
|  |  |  | ]).then(() => { | 
|---|
|  |  |  | wx.hideLoading(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //     this.loadCompletedIrrigationData() | 
|---|
|  |  |  | //       .then(() => { | 
|---|
|  |  |  | //         wx.hideLoading(); | 
|---|
|  |  |  | //       }) | 
|---|
|  |  |  | //       .catch(() => { | 
|---|
|  |  |  | //         wx.hideLoading(); | 
|---|
|  |  |  | //       }); | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // 如果需要刷新并切换到当前计划 | 
|---|
|  |  |  | if (app.globalData.needRefreshIrrigationList) { | 
|---|
|  |  |  | // 重置全局变量 | 
|---|
|  |  |  | app.globalData.needRefreshIrrigationList = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | console.log('检测到需要刷新灌溉计划列表'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 切换到当前灌溉计划标签页 | 
|---|
|  |  |  | if (this.data.currentTab !== 0) { | 
|---|
|  |  |  | this.setData({ | 
|---|
|  |  |  | currentTab: 0, | 
|---|
|  |  |  | currentList: this.data.activeList | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).catch(() => { | 
|---|
|  |  |  | wx.hideLoading(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 加载轮灌数据 | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 加载已完成的轮灌数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | loadCompletedIrrigationData: function () { | 
|---|
|  |  |  | loadCompletedIrrigationData: function (isFirstPage) { | 
|---|
|  |  |  | // 如果正在加载或没有更多数据,则不再请求 | 
|---|
|  |  |  | if (this.data.loadingMore && !this.data.hasMoreData) { | 
|---|
|  |  |  | return Promise.resolve(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 如果是重新加载第一页,重置页码和状态 | 
|---|
|  |  |  | if (isFirstPage) { | 
|---|
|  |  |  | this.setData({ | 
|---|
|  |  |  | pageCurr: 1, | 
|---|
|  |  |  | hasMoreData: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 设置加载状态 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 导航到灌溉详情页面,并传递参数 | 
|---|
|  |  |  | wx.navigateTo({ | 
|---|
|  |  |  | url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true` | 
|---|
|  |  |  | url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true&status=${status}` | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | planId: id, | 
|---|
|  |  |  | operatorId: app.globalData.clientId | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | isShowLoding: true | 
|---|
|  |  |  | isShowLoding: true, | 
|---|
|  |  |  | timeout: 180000 | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.success) { | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).catch(err => { | 
|---|
|  |  |  | console.error('发布失败:', err); | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: '发布失败', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if(err.code==='1003'){ | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: err.msg || '发布失败', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: '发布失败', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | planId: planID, | 
|---|
|  |  |  | operatorId: app.globalData.clientId | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | isShowLoding: true | 
|---|
|  |  |  | isShowLoding: true, | 
|---|
|  |  |  | timeout: 180000 | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.success) { | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: '终止成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | // 刷新数据 | 
|---|
|  |  |  | this.loadIrrigationData(); | 
|---|
|  |  |  | // 同时刷新当前计划列表和历史计划列表 | 
|---|
|  |  |  | Promise.all([ | 
|---|
|  |  |  | this.loadIrrigationData(), | 
|---|
|  |  |  | this.loadCompletedIrrigationData(true) // 传入true表示重新加载第一页 | 
|---|
|  |  |  | ]).catch(err => { | 
|---|
|  |  |  | console.error('刷新数据失败:', err); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: res.msg || '终止失败', | 
|---|
|  |  |  | 
|---|
|  |  |  | console.error('加载更多历史数据失败:', err); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 从创建灌溉计划页面返回时,切换到当前计划列表并刷新数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | switchToCurrentPlans: function() { | 
|---|
|  |  |  | console.log('从创建页面返回,切换到当前计划列表并刷新'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 如果当前不在 "当前灌溉计划" 标签页,先切换到该标签页 | 
|---|
|  |  |  | if (this.data.currentTab !== 0) { | 
|---|
|  |  |  | this.setData({ | 
|---|
|  |  |  | currentTab: 0, | 
|---|
|  |  |  | currentList: this.data.activeList | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 显示加载提示 | 
|---|
|  |  |  | wx.showLoading({ | 
|---|
|  |  |  | title: '刷新数据中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 刷新当前灌溉计划数据 | 
|---|
|  |  |  | this.loadIrrigationData() | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | wx.hideLoading(); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(() => { | 
|---|
|  |  |  | wx.hideLoading(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|