const app = getApp(); Page({ /** * 页面的初始数据 */ data: { projectName: '', groupName: '', 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({ projectName: options.projectName || '', groupName: options.groupName || '', groupId: options.groupId || '', isIrrigating: isIrrigating }); console.log('设置后的数据:', this.data); this.loadWaterOutletData(); } }, /** * 加载取水口数据 */ loadWaterOutletData: function() { this.setData({ refreshing: true }); console.log('开始加载轮灌组详情,groupId:', this.data.groupId); // 检查apiBaseUrl是否存在 if (!app.globalData.apiBaseUrl) { try { // 从config模块获取基础URL const config = require('../../api/config'); const { PROJECT_CONFIG } = require('../../utils/projectConfig'); // 获取当前选中的项目标识 const tag = wx.getStorageSync('projectTag') || app.globalData.tag || 'mq'; // 根据tag找到对应项目配置 let selectedProject = 'MQ'; // 默认为民勤项目 for (const key in PROJECT_CONFIG) { if (PROJECT_CONFIG[key].tag === tag) { selectedProject = key; break; } } // 设置apiBaseUrl app.globalData.apiBaseUrl = PROJECT_CONFIG[selectedProject].serverUrl; console.log('从配置中获取apiBaseUrl:', app.globalData.apiBaseUrl); } catch (error) { console.error('获取apiBaseUrl失败:', error); // 使用请求库中的方法 const { get } = require('../../api/request'); get({ url: '/wx/irrigation/getGroupDetails', data: { groupId: this.data.groupId }, isShowLoding: true }).then(res => { if (res.success) { this.handleGroupDetailsResponse(res); } else { wx.showToast({ title: res.msg || '获取数据失败', icon: 'none' }); } }).catch(err => { console.error('请求失败:', err); wx.showToast({ title: '网络错误', icon: 'none' }); }).finally(() => { this.setData({ refreshing: false }); }); return; // 已经使用请求库处理,直接返回 } } // 使用wx.request发送请求 wx.request({ url: `${app.globalData.apiBaseUrl}/wx/irrigation/getGroupDetails`, method: 'GET', data: { groupId: this.data.groupId }, header: { 'content-type': 'application/json', 'Authorization': wx.getStorageSync('token') || '', 'tag': wx.getStorageSync('projectTag') || app.globalData.tag || '', 'appId': app.globalData.AppID || '' }, success: (res) => { console.log('轮灌组详情接口返回:', res.data); if (res.data && res.data.success) { this.handleGroupDetailsResponse(res.data); } else { wx.showToast({ title: res.data.msg || '获取数据失败', icon: 'none' }); this.setData({ refreshing: false }); } }, fail: (err) => { console.error('请求失败:', err); // 尝试使用请求库重试 this.retryUsingRequestLib(); } }); }, /** * 使用请求库重试获取数据 */ retryUsingRequestLib: function() { console.log('使用请求库重试获取数据'); const { get } = require('../../api/request'); get({ url: '/wx/irrigation/getGroupDetails', data: { groupId: this.data.groupId }, isShowLoding: true }).then(res => { if (res.success) { this.handleGroupDetailsResponse(res); } else { wx.showToast({ title: res.msg || '获取数据失败', icon: 'none' }); } }).catch(err => { console.error('请求库重试失败:', err); wx.showToast({ title: '网络错误', icon: 'none' }); }).finally(() => { this.setData({ refreshing: false }); }); }, /** * 处理轮灌组详情响应数据 */ handleGroupDetailsResponse: function(response) { const data = response.content; // 处理取水口数据 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 () { }, /** * 返回上一页 */ goBack: function () { wx.navigateBack(); } });