管灌系统农户端微信小程序(嘉峪关应用)
pages/groupDetail/groupDetail.js
@@ -1,80 +1,164 @@
const app = getApp();
const { get } = require('../../api/request');
Page({
  /**
   * 页面的初始数据
   */
  data: {
    projectId: '',
    projectName: '',
    groupId: '',
    groupName: '',
    valveList: [
      // 模拟数据,实际应从API获取
      { id: '1', name: '阀控器1', status: 'online', location: '位置A' },
      { id: '2', name: '阀控器2', status: 'offline', location: '位置B' },
      { id: '3', name: '阀控器3', status: 'online', location: '位置C' },
      { id: '4', name: '阀控器4', status: 'online', location: '位置D' },
      { id: '5', name: '阀控器5', status: 'offline', location: '位置E' }
    ],
    loading: false
    groupId: '',
    waterOutletList: [],
    refreshing: false,
    isIrrigating: false // 是否正在灌溉中
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('接收到的参数:', options);
    if (options) {
      // 直接使用传递的isIrrigating参数,而不是根据status判断
      const isIrrigating = options.isIrrigating === 'true';
      console.log('灌溉状态判断:', options.status, '是否正在灌溉:', isIrrigating);
      // 处理接收到的参数
      this.setData({
        projectId: options.projectId || '',
        projectName: options.projectName || '',
        groupName: options.groupName || '',
        groupId: options.groupId || '',
        groupName: options.groupName || ''
        isIrrigating: isIrrigating
      });
      
      wx.setNavigationBarTitle({
        title: this.data.groupName || '轮灌组详情'
      });
      console.log('设置后的数据:', this.data);
      
      // 获取阀控器列表
      this.fetchValveList();
      this.loadWaterOutletData();
    }
  },
  /**
   * 获取阀控器列表
   * 加载取水口数据
   */
  fetchValveList: function () {
    this.setData({ loading: true });
  loadWaterOutletData: function() {
    this.setData({
      refreshing: true
    });
    
    // 这里应该是实际的API请求
    // 模拟API请求延迟
    setTimeout(() => {
      this.setData({ loading: false });
      // 实际数据已在data中初始化,这里只是模拟请求完成
    }, 1000);
    get({
      url: '/wx/irrigation/getGroupDetails',
      data: {
        groupId: this.data.groupId
      },
      isShowLoding: true
    }).then(res => {
      console.log('轮灌组详情接口返回:', res);
      if (res.success) {
        this.handleGroupDetailsResponse(res);
      } else {
        wx.showToast({
          title: res.msg || '获取数据失败',
          icon: 'none'
        });
        this.setData({
          refreshing: false
        });
      }
    }).catch(err => {
      console.error('请求失败:', err);
      wx.showToast({
        title: '网络错误',
        icon: 'none'
      });
      this.setData({
        refreshing: false
      });
    });
  },
  /**
   * 处理轮灌组详情响应数据
   */
  handleGroupDetailsResponse: function(response) {
    const data = response.content;
    
    // 实际API请求示例
    // wx.request({
    //   url: 'your-api-url',
    //   data: {
    //     projectId: this.data.projectId,
    //     groupId: this.data.groupId
    //   },
    //   success: (res) => {
    //     this.setData({
    //       valveList: res.data,
    //       loading: false
    //     });
    //   },
    //   fail: () => {
    //     this.setData({ loading: false });
    //     wx.showToast({
    //       title: '获取数据失败',
    //       icon: 'none'
    //     });
    //   }
    // });
    // 处理取水口数据
    const waterOutletList = data.intakes.map(item => {
      return {
        id: item.rtuAddr, // 使用rtuAddr作为ID
        name: item.intakeName,
        rtuAddr: item.rtuAddr,
        status: item.isOnLine ? 'online' : 'offline'
      };
    });
    this.setData({
      projectName: data.projectName || this.data.projectName,
      groupName: data.groupName || this.data.groupName,
      waterOutletList: waterOutletList,
      refreshing: false
    });
    console.log('设置取水口数据完成:', this.data.waterOutletList);
  },
  /**
   * 下拉刷新处理函数
   */
  onRefresh: function() {
    this.loadWaterOutletData();
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  },
  /**