// 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 => { // 确保将planState转换为字符串 const planState = String(item.planState); return { id: item.planId, title: item.planName, projectName: item.projectName || '未分配项目', status: 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 => { // 确保将planState转换为字符串 const planState = String(item.planState); return { id: item.planId, title: item.planName, projectName: item.projectName || '未分配项目', status: 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; console.log('点击项目状态:', status, '类型:', typeof status); // 判断计划状态,如果是1(未发布),则提示用户 if (status === '1' || status === 1) { wx.showModal({ title: '提示', content: '当前计划未发布,请发布后查看', showCancel: false, confirmText: '确认' }); return; } // 导航到灌溉详情页面,并传递参数 wx.navigateTo({ url: `/pages/irrigationDetail/irrigationDetail?planId=${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) { this.postStop(id) } } }); }, /** * 点击删除按钮 */ onDelete: function (e) { const id = e.currentTarget.dataset.id; wx.showModal({ title: '确认删除', content: '确定要删除该轮灌计划吗?', success: (res) => { if (res.confirm) { // 调用删除接口 post({ url: '/wx/plan/deletePlan', 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' }); }); } } }); }, //终止轮灌计划 postStop(planID){ post({ url: '/wx/plan/terminatePlan', data: { planId: planID, 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' }); }); }, /** * 点击立即执行按钮 */ 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(); } })