管灌系统农户端微信小程序(嘉峪关应用)
pages/irrigation/irrigation.js
@@ -1,4 +1,7 @@
// pages/irrigation/irrigation.js
const { get, post } = require('../../api/request');
const app = getApp();
Page({
  /**
   * 页面的初始数据
@@ -9,14 +12,22 @@
    completedList: [], // 已完成的轮灌列表
    currentList: [], // 当前显示的列表
    isRefreshing: false, // 是否正在刷新
    isWXRefreshing: 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();
  },
  /**
@@ -24,100 +35,105 @@
   */
  onShow: function () {
    this.loadIrrigationData();
    this.loadCompletedIrrigationData();
  },
  /**
   * 加载轮灌数据
   */
  loadIrrigationData: function () {
    // 这里应该调用API获取数据
    // 模拟数据
    const mockData = {
      activeList: [
        {
          id: '1',
          title: 'LG-2023-001',
          status: '未发布',
          irrigationTime: '2023-05-20 08:00 - 17:00'
        },
        {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },
        {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },  {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },  {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },
        {
          id: '3',
          title: 'LG-2023-003',
          status: '执行中',
          irrigationTime: '2023-05-18 07:30 - 16:30',
          irrigatedTime: '3小时25分钟',
          irrigatedGroups: '1组、2组、3组'
        },   {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },
        {
          id: '3',
          title: 'LG-2023-003',
          status: '执行中',
          irrigationTime: '2023-05-18 07:30 - 16:30',
          irrigatedTime: '3小时25分钟',
          irrigatedGroups: '1组、2组、3组'
        },   {
          id: '2',
          title: 'LG-2023-002',
          status: '已发布',
          irrigationTime: '2023-05-22 09:00 - 18:00'
        },
        {
          id: '3',
          title: 'LG-2023-003',
          status: '执行中',
          irrigationTime: '2023-05-18 07:30 - 16:30',
          irrigatedTime: '3小时25分钟',
          irrigatedGroups: '1组、2组、3组'
        }
      ]
      // completedList: [
      //   {
      //     id: '4',
      //     title: 'LG-2023-004',
      //     status: '已完成',
      //     irrigationTime: '2023-05-10 10:00 - 19:00'
      //   }
      // ]
    };
    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
          };
        });
    // 模拟网络请求延迟
    setTimeout(() => {
      this.setData({
        activeList: mockData.activeList || [],
        completedList: mockData.completedList || [],
        currentList: this.data.currentTab === 0 ? mockData.activeList || [] : mockData.completedList || [],
        isRefreshing: false, // 结束刷新状态
        isWXRefreshing: false // 结束微信原生下拉刷新状态
        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'
      });
    }, 1000);
      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
      });
    });
  },
  /**
@@ -145,9 +161,22 @@
    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?id=${id}&fromList=true`
      url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true`
    });
  },
@@ -161,13 +190,35 @@
      content: '确定要发布该轮灌计划吗?',
      success: (res) => {
        if (res.confirm) {
          // 这里应该调用API发布轮灌计划
          wx.showToast({
            title: '发布成功',
            icon: 'success'
          // 调用发布接口
          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'
            });
          });
          // 刷新数据
          this.loadIrrigationData();
        }
      }
    });
@@ -183,17 +234,42 @@
      content: '确定要终止该轮灌计划吗?',
      success: (res) => {
        if (res.confirm) {
          // 这里应该调用API终止轮灌计划
          wx.showToast({
            title: '已终止',
            icon: 'success'
          });
          // 刷新数据
          this.loadIrrigationData();
            this.postStop(id)
        }
      }
    });
  },
  //终止轮灌计划
   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'
        });
      });
   },
  /**
   * 点击立即执行按钮
@@ -222,7 +298,7 @@
   */
  onAddIrrigation: function () {
    wx.navigateTo({
      url: '/pages/createIrrigation/createIrrigation'
      url: '/pages/createIrrigation/createIrrigation?projectId=' + this.data.projectId
    });
  },
@@ -243,6 +319,7 @@
        isRefreshing: true
      });
      this.loadIrrigationData();
      this.loadCompletedIrrigationData();
    }
  },
@@ -254,5 +331,6 @@
      isWXRefreshing: true
    });
    this.loadIrrigationData();
    this.loadCompletedIrrigationData();
  }
})