管灌系统农户端微信小程序(嘉峪关应用)
pages/irrigationDetail/irrigationDetail.js
@@ -4,52 +4,144 @@
   */
  data: {
    planCode: '',
    projectName: '',
    startTime: '',
    stopTime: '',
    isRefreshing: false,
    projects: []
    groupList: [],
    planId: '',
    planStatusText: '',
    planStatusClass: ''
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 模拟数据
    if (options.planId) {
      this.setData({
        planId: options.planId
      });
      this.fetchIrrigationData(options.planId);
    } else {
      wx.showToast({
        title: '缺少计划ID',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },
  /**
   * 获取灌溉计划数据
   */
  fetchIrrigationData: function(planId) {
    const { get } = require('../../api/request');
    const data = {
      planId: planId || this.data.planId,
    };
    get({
      url: 'wx/plan/getPublishResults',
      isShowLoding: true,
      useParams: true,
      data: data
    }).then(res => {
      if (res.success) {
        this.processIrrigationData(res.content);
      } else {
        wx.showToast({
          title: res.msg || '获取数据失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      console.error('请求失败:', err);
      wx.showToast({
        title: '请求失败',
        icon: 'none'
      });
    });
  },
  /**
   * 处理接口返回的数据
   */
  processIrrigationData: function(data) {
    console.log('灌溉计划详情数据:', data);
    // 处理轮灌组状态
    const statusMap = {
      2: {status: 'pending', statusText: '未开始'},
      3: {status: 'in_progress', statusText: '灌溉中'},
      4: {status: 'completed', statusText: '已结束'}
    };
    // 处理计划状态
    let planStatusText = '';
    let planStatusClass = '';
    // 根据计划的状态设置不同的文本和样式
    // 注意:接口返回的是state而不是planState
    console.log('计划状态值:', data.state, '类型:', typeof data.state);
    // 确保state是数字类型
    const planState = parseInt(data.state);
    switch(planState) {
      case 1:
        planStatusText = '草稿';
        planStatusClass = 'draft';
        break;
      case 2:
        planStatusText = '未执行';
        planStatusClass = 'published';
        break;
      case 3:
        planStatusText = '执行中';
        planStatusClass = 'executing';
        break;
      case 4:
        planStatusText = '已完成';
        planStatusClass = 'completed';
        break;
      case 5:
        planStatusText = '已终止';
        planStatusClass = 'terminated';
        break;
      default:
        planStatusText = '未知状态';
        planStatusClass = 'draft';
        console.log('未识别的计划状态值:', planState);
    }
    // 转换数据格式
    const groupList = data.groups.map(group => {
      const statusInfo = statusMap[group.state] || {status: 'unknown', statusText: '未知状态'};
      return {
        id: group.groupId,
        name: group.groupCode,
        status: statusInfo.status,
        statusText: statusInfo.statusText,
        startTime: group.startTime,
        endTime: group.stopTime,
        duration: group.duration,
        publishResult: group.publishResult || []
      };
    });
    this.setData({
      planCode: 'IRR-2024-001',
      startTime: '2024-03-20 08:00',
      projects: [{
        id: 1,
        name: '示例项目',
        groups: [
          {
            id: 1,
            name: '轮灌组1',
            status: 'pending',
            statusText: '待灌溉',
            startTime: '08:00',
            endTime: '09:00',
            duration: 60
          },
          {
            id: 2,
            name: '轮灌组2',
            status: 'in_progress',
            statusText: '灌溉中',
            startTime: '09:00',
            endTime: '10:00',
            duration: 60
          },
          {
            id: 3,
            name: '轮灌组3',
            status: 'completed',
            statusText: '已完成',
            startTime: '10:00',
            endTime: '11:00',
            duration: 60
          }
        ]
      }]
      planCode: data.planName,
      projectName: data.projectName,
      startTime: data.planStartTime,
      stopTime: data.planStopTime,
      groupList: groupList,
      planStatusText: planStatusText,
      planStatusClass: planStatusClass
    });
  },
@@ -89,7 +181,9 @@
      isRefreshing: true
    });
    // 模拟刷新数据
    this.fetchIrrigationData(this.data.planId);
    // 完成刷新
    setTimeout(() => {
      this.setData({
        isRefreshing: false