// pages/irrigation/irrigation.js
|
const { get, post } = require('../../api/request');
|
const app = getApp();
|
|
Page({
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
currentTab: 0, // 当前选中的标签页索引
|
activeList: [], // 进行中的轮灌列表
|
completedList: [], // 已完成的轮灌列表
|
currentList: [], // 当前显示的列表
|
isRefreshing: 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();
|
},
|
|
/**
|
* 生命周期函数--监听页面显示
|
*/
|
onShow: function () {
|
this.loadIrrigationData();
|
this.loadCompletedIrrigationData();
|
},
|
|
/**
|
* 加载轮灌数据
|
*/
|
loadIrrigationData: function () {
|
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
|
};
|
});
|
|
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'
|
});
|
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
|
});
|
});
|
},
|
|
/**
|
* 切换标签页
|
*/
|
switchTab: function (e) {
|
const index = parseInt(e.currentTarget.dataset.index);
|
if (this.data.currentTab === index) {
|
return;
|
}
|
|
const activeList = this.data.activeList || [];
|
const completedList = this.data.completedList || [];
|
|
this.setData({
|
currentTab: index,
|
currentList: index === 0 ? activeList : completedList
|
});
|
},
|
|
/**
|
* 点击列表项
|
*/
|
onItemTap: function (e) {
|
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?planId=${id}&fromList=true`
|
});
|
},
|
|
/**
|
* 点击发布按钮
|
*/
|
onPublish: function (e) {
|
const id = e.currentTarget.dataset.id;
|
wx.showModal({
|
title: '确认发布',
|
content: '确定要发布该轮灌计划吗?',
|
success: (res) => {
|
if (res.confirm) {
|
// 调用发布接口
|
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'
|
});
|
});
|
}
|
}
|
});
|
},
|
|
/**
|
* 点击终止按钮
|
*/
|
onStop: function (e) {
|
const id = e.currentTarget.dataset.id;
|
wx.showModal({
|
title: '确认终止',
|
content: '确定要终止该轮灌计划吗?',
|
success: (res) => {
|
if (res.confirm) {
|
this.postStop(id)
|
}
|
}
|
});
|
},
|
|
/**
|
* 点击删除按钮
|
*/
|
onDelete: function (e) {
|
const id = e.currentTarget.dataset.id;
|
wx.showModal({
|
title: '确认删除',
|
content: '确定要删除该轮灌计划吗?',
|
success: (res) => {
|
if (res.confirm) {
|
// 调用删除接口
|
post({
|
url: '/wx/plan/deletePlan',
|
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'
|
});
|
});
|
}
|
}
|
});
|
},
|
|
//终止轮灌计划
|
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'
|
});
|
});
|
},
|
|
/**
|
* 点击立即执行按钮
|
*/
|
onExecute: function (e) {
|
const id = e.currentTarget.dataset.id;
|
wx.showModal({
|
title: '确认执行',
|
content: '确定要立即执行该轮灌计划吗?',
|
success: (res) => {
|
if (res.confirm) {
|
// 这里应该调用API立即执行轮灌计划
|
wx.showToast({
|
title: '执行成功',
|
icon: 'success'
|
});
|
// 刷新数据
|
this.loadIrrigationData();
|
}
|
}
|
});
|
},
|
|
/**
|
* 点击新建轮灌按钮
|
*/
|
onAddIrrigation: function () {
|
wx.navigateTo({
|
url: '/pages/createIrrigation/createIrrigation?projectId=' + this.data.projectId
|
});
|
},
|
|
/**
|
* 阻止事件冒泡
|
*/
|
stopPropagation: function (e) {
|
// 阻止事件冒泡
|
return false;
|
},
|
|
/**
|
* 开始下拉刷新
|
*/
|
startPullDownRefresh: function() {
|
if (!this.data.isWXRefreshing) {
|
this.setData({
|
isRefreshing: true
|
});
|
this.loadIrrigationData();
|
this.loadCompletedIrrigationData();
|
}
|
},
|
|
/**
|
* 页面相关事件处理函数--监听用户下拉动作
|
*/
|
onPullDownRefresh: function () {
|
this.setData({
|
isWXRefreshing: true
|
});
|
this.loadIrrigationData();
|
this.loadCompletedIrrigationData();
|
}
|
})
|