| // pages/irrigation/irrigation.js | 
| const { get, post } = require('../../api/request'); | 
| const app = getApp(); | 
|   | 
| Page({ | 
|   /** | 
|    * 页面的初始数据 | 
|    */ | 
|   data: { | 
|     currentTab: 0, // 当前选中的标签页索引 | 
|     activeList: [], // 进行中的轮灌列表 | 
|     completedList: [], // 已完成的轮灌列表 | 
|     currentList: [], // 当前显示的列表 | 
|     isRefreshing: false, // 是否正在刷新 | 
|     isWXRefreshing: false, // 微信原生下拉刷新状态 | 
|     projectId: null // Added to store projectId | 
|   }, | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面加载 | 
|    */ | 
|   onLoad: function (options) { | 
|     // 获取项目ID | 
|     if (options.projectId) { | 
|       this.setData({ | 
|         projectId: options.projectId | 
|       }); | 
|     } | 
|     this.loadIrrigationData(); | 
|     this.loadCompletedIrrigationData(); | 
|   }, | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面显示 | 
|    */ | 
|   onShow: function () { | 
|     this.loadIrrigationData(); | 
|     this.loadCompletedIrrigationData(); | 
|   }, | 
|   | 
|   /** | 
|    * 加载轮灌数据 | 
|    */ | 
|   loadIrrigationData: function () { | 
|     get({ | 
|       url: '/wx/plan/getNotCompletePlans' | 
|     }).then(res => { | 
|       if (res.success) { | 
|         const activeList = res.content.map(item => ({ | 
|           id: item.planId, | 
|           title: item.planName, | 
|           projectName: item.projectName || '未分配项目', | 
|           status: item.planState, | 
|           planStartTime: item.planStartTime, | 
|           planStopTime: item.planStopTime, | 
|           duration: item.duration, | 
|           startupMode: item.startupMode | 
|         })); | 
|   | 
|         console.log('轮灌计划数据:', activeList); | 
|   | 
|         this.setData({ | 
|           activeList: activeList, | 
|           currentList: this.data.currentTab === 0 ? activeList : this.data.completedList, | 
|           isRefreshing: false, | 
|           isWXRefreshing: false | 
|         }); | 
|       } else { | 
|         wx.showToast({ | 
|           title: res.msg || '加载失败', | 
|           icon: 'none' | 
|         }); | 
|       } | 
|     }).catch(err => { | 
|       wx.showToast({ | 
|         title: '加载失败', | 
|         icon: 'none' | 
|       }); | 
|       this.setData({ | 
|         isRefreshing: false, | 
|         isWXRefreshing: false | 
|       }); | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 加载已完成的轮灌数据 | 
|    */ | 
|   loadCompletedIrrigationData: function () { | 
|     get({ | 
|       url: '/wx/plan/getCompletedPlans' | 
|     }).then(res => { | 
|       if (res.success) { | 
|         const completedList = res.content.map(item => ({ | 
|           id: item.planId, | 
|           title: item.planName, | 
|           projectName: item.projectName || '未分配项目', | 
|           status: item.planState, | 
|           planStartTime: item.planStartTime, | 
|           planStopTime: item.planStopTime, | 
|           duration: item.duration, | 
|           startupMode: item.startupMode | 
|         })); | 
|   | 
|         console.log('已完成轮灌计划数据:', completedList); | 
|   | 
|         this.setData({ | 
|           completedList: completedList, | 
|           currentList: this.data.currentTab === 1 ? completedList : this.data.activeList, | 
|           isRefreshing: false, | 
|           isWXRefreshing: false | 
|         }); | 
|       } else { | 
|         wx.showToast({ | 
|           title: res.msg || '加载失败', | 
|           icon: 'none' | 
|         }); | 
|       } | 
|     }).catch(err => { | 
|       wx.showToast({ | 
|         title: '加载失败', | 
|         icon: 'none' | 
|       }); | 
|       this.setData({ | 
|         isRefreshing: false, | 
|         isWXRefreshing: false | 
|       }); | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 切换标签页 | 
|    */ | 
|   switchTab: function (e) { | 
|     const index = parseInt(e.currentTarget.dataset.index); | 
|     if (this.data.currentTab === index) { | 
|       return; | 
|     } | 
|      | 
|     const activeList = this.data.activeList || []; | 
|     const completedList = this.data.completedList || []; | 
|      | 
|     this.setData({ | 
|       currentTab: index, | 
|       currentList: index === 0 ? activeList : completedList | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 点击列表项 | 
|    */ | 
|   onItemTap: function (e) { | 
|     const id = e.currentTarget.dataset.id; | 
|     const status = e.currentTarget.dataset.status; | 
|      | 
|     // 导航到灌溉详情页面,并传递参数 | 
|     wx.navigateTo({ | 
|       url: `/pages/irrigationDetail/irrigationDetail?id=${id}&fromList=true` | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 点击发布按钮 | 
|    */ | 
|   onPublish: function (e) { | 
|     const id = e.currentTarget.dataset.id; | 
|     wx.showModal({ | 
|       title: '确认发布', | 
|       content: '确定要发布该轮灌计划吗?', | 
|       success: (res) => { | 
|         if (res.confirm) { | 
|           // 调用发布接口 | 
|           post({ | 
|             url: '/wx/plan/publishPlan', | 
|             data: { | 
|               planId: id, | 
|               operatorId: app.globalData.clientId | 
|             }, | 
|             isShowLoding: true | 
|           }).then(res => { | 
|             if (res.success) { | 
|               wx.showToast({ | 
|                 title: '发布成功', | 
|                 icon: 'success' | 
|               }); | 
|               // 刷新数据 | 
|               this.loadIrrigationData(); | 
|             } else { | 
|               wx.showToast({ | 
|                 title: res.msg || '发布失败', | 
|                 icon: 'none' | 
|               }); | 
|             } | 
|           }).catch(err => { | 
|             console.error('发布失败:', err); | 
|             wx.showToast({ | 
|               title: '发布失败', | 
|               icon: 'none' | 
|             }); | 
|           }); | 
|         } | 
|       } | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 点击终止按钮 | 
|    */ | 
|   onStop: function (e) { | 
|     const id = e.currentTarget.dataset.id; | 
|     wx.showModal({ | 
|       title: '确认终止', | 
|       content: '确定要终止该轮灌计划吗?', | 
|       success: (res) => { | 
|         if (res.confirm) { | 
|           // 这里应该调用API终止轮灌计划 | 
|           wx.showToast({ | 
|             title: '已终止', | 
|             icon: 'success' | 
|           }); | 
|           // 刷新数据 | 
|           this.loadIrrigationData(); | 
|         } | 
|       } | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 点击立即执行按钮 | 
|    */ | 
|   onExecute: function (e) { | 
|     const id = e.currentTarget.dataset.id; | 
|     wx.showModal({ | 
|       title: '确认执行', | 
|       content: '确定要立即执行该轮灌计划吗?', | 
|       success: (res) => { | 
|         if (res.confirm) { | 
|           // 这里应该调用API立即执行轮灌计划 | 
|           wx.showToast({ | 
|             title: '执行成功', | 
|             icon: 'success' | 
|           }); | 
|           // 刷新数据 | 
|           this.loadIrrigationData(); | 
|         } | 
|       } | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 点击新建轮灌按钮 | 
|    */ | 
|   onAddIrrigation: function () { | 
|     wx.navigateTo({ | 
|       url: '/pages/createIrrigation/createIrrigation?projectId=' + this.data.projectId | 
|     }); | 
|   }, | 
|   | 
|   /** | 
|    * 阻止事件冒泡 | 
|    */ | 
|   stopPropagation: function (e) { | 
|     // 阻止事件冒泡 | 
|     return false; | 
|   }, | 
|   | 
|   /** | 
|    * 开始下拉刷新 | 
|    */ | 
|   startPullDownRefresh: function() { | 
|     if (!this.data.isWXRefreshing) { | 
|       this.setData({ | 
|         isRefreshing: true | 
|       }); | 
|       this.loadIrrigationData(); | 
|       this.loadCompletedIrrigationData(); | 
|     } | 
|   }, | 
|   | 
|   /** | 
|    * 页面相关事件处理函数--监听用户下拉动作 | 
|    */ | 
|   onPullDownRefresh: function () { | 
|     this.setData({ | 
|       isWXRefreshing: true | 
|     }); | 
|     this.loadIrrigationData(); | 
|     this.loadCompletedIrrigationData(); | 
|   } | 
| })  |