Page({
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
planCode: '',
|
projectName: '',
|
startTime: '',
|
stopTime: '',
|
isRefreshing: false,
|
groupList: [],
|
planId: '',
|
planStatusText: '',
|
planStatusClass: '',
|
failureCount: 0,
|
realStopTime: '',
|
originalStatus: '',
|
currentStatus: null
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad: function (options) {
|
if (options.planId) {
|
this.setData({
|
planId: options.planId
|
});
|
|
// 获取最新状态
|
this.fetchPlanLatestState(options.planId).then(res => {
|
if (res.success) {
|
const currentStatus = res.content;
|
this.setData({
|
currentStatus: currentStatus,
|
originalStatus: currentStatus
|
});
|
|
// 根据最新状态调用相应的接口
|
if (currentStatus === 5) {
|
this.fetchTerminatedIrrigationData(options.planId);
|
} else {
|
this.fetchNormalIrrigationData(options.planId);
|
}
|
} else {
|
wx.showToast({
|
title: res.msg || '获取状态失败',
|
icon: 'none'
|
});
|
}
|
}).catch(err => {
|
console.error('获取状态失败:', err);
|
wx.showToast({
|
title: '获取状态失败',
|
icon: 'none'
|
});
|
});
|
} else {
|
wx.showToast({
|
title: '缺少计划ID',
|
icon: 'none'
|
});
|
setTimeout(() => {
|
wx.navigateBack();
|
}, 1500);
|
}
|
},
|
|
/**
|
* 获取常规灌溉计划详细数据
|
*/
|
fetchNormalIrrigationData: 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'
|
});
|
});
|
},
|
|
/**
|
* 获取已终止灌溉计划详细数据
|
*/
|
fetchTerminatedIrrigationData: function(planId) {
|
const { get } = require('../../api/request');
|
|
const data = {
|
planId: planId || this.data.planId,
|
};
|
|
get({
|
url: 'wx/plan/getTerminateResults',
|
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'
|
});
|
});
|
},
|
|
/**
|
* 获取计划最新状态
|
*/
|
fetchPlanLatestState: function(planId) {
|
const { get } = require('../../api/request');
|
|
const data = {
|
planId: planId || this.data.planId,
|
};
|
|
return get({
|
url: 'wx/plan/getPlanLatestState',
|
isShowLoding: true,
|
useParams: true,
|
data: data
|
});
|
},
|
|
/**
|
* 处理接口返回的数据
|
*/
|
processIrrigationData: function(data) {
|
console.log('灌溉计划详情数据:', data);
|
|
// 处理轮灌组状态
|
const statusMap = {
|
2: {status: 'pending', statusText: '未开始'},
|
3: {status: 'in_progress', statusText: '灌溉中'},
|
4: {status: 'completed', statusText: '已结束'},
|
5: {status: 'terminated', statusText: '中途关阀'},
|
6: {status: 'canceled', 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: data.planName,
|
projectName: data.projectName,
|
startTime: data.planStartTime,
|
stopTime: data.planStopTime,
|
realStopTime: data.realStopTime || '',
|
groupList: groupList,
|
planStatusText: planStatusText,
|
planStatusClass: planStatusClass,
|
failureCount: data.failureCount || 0
|
});
|
},
|
|
/**
|
* 生命周期函数--监听页面初次渲染完成
|
*/
|
onReady: function () {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面显示
|
*/
|
onShow: function () {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面隐藏
|
*/
|
onHide: function () {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面卸载
|
*/
|
onUnload: function () {
|
|
},
|
|
/**
|
* 下拉刷新处理函数
|
*/
|
onPullDownRefresh: function () {
|
this.setData({
|
isRefreshing: true
|
});
|
|
// 获取最新状态并刷新数据
|
this.fetchPlanLatestState(this.data.planId).then(res => {
|
if (res.success) {
|
const currentStatus = res.content;
|
this.setData({
|
currentStatus: currentStatus
|
});
|
|
if (currentStatus === 5) {
|
this.fetchTerminatedIrrigationData(this.data.planId);
|
} else {
|
this.fetchNormalIrrigationData(this.data.planId);
|
}
|
} else {
|
wx.showToast({
|
title: res.msg || '获取状态失败',
|
icon: 'none'
|
});
|
}
|
|
// 完成刷新
|
this.setData({
|
isRefreshing: false
|
});
|
}).catch(err => {
|
console.error('获取状态失败:', err);
|
wx.showToast({
|
title: '获取状态失败',
|
icon: 'none'
|
});
|
this.setData({
|
isRefreshing: false
|
});
|
});
|
},
|
|
/**
|
* 页面上拉触底事件的处理函数
|
*/
|
onReachBottom: function () {
|
|
},
|
|
/**
|
* 用户点击右上角分享
|
*/
|
onShareAppMessage: function () {
|
|
},
|
|
/**
|
* 导航到轮灌组详情页面
|
*/
|
navigateToGroupDetail: function (e) {
|
const { projectName, groupName, groupId, status } = e.currentTarget.dataset;
|
wx.navigateTo({
|
url: `/pages/groupDetail/groupDetail?projectName=${projectName}&groupName=${groupName}&groupId=${groupId}&status=${status}`
|
});
|
}
|
})
|