// pages/waterIntake/waterIntake.js
|
//常用取水口列表页
|
const {
|
get,
|
post
|
} = require('../../api/request.js');
|
Page({
|
data: {
|
currentTab: 0, // 当前显示的表格,默认为第一个表格
|
searchQuery: "",
|
commonWaterPoints: [], // 常用取水口数据
|
allWaterPoints: [], // 所有取水口数据
|
searchData: [{
|
intakeNum: "1111111"
|
}, {
|
intakeNum: "2222222"
|
}],
|
isRefreshing_all: false,
|
isRefreshing_common: false,
|
showConfirm: false,
|
waterIntakeName: "",
|
choseItem: null,
|
errorData: '', //错误内容
|
showErrorDialog: false,
|
confirmBtn: {
|
content: '确认'
|
},
|
showForceConfirm: false,
|
forceIntakeId: "", //强制开阀的取水口id
|
inputValue:"",
|
useTestData: false // 新增: 是否使用测试数据的标志
|
},
|
|
// 切换 Tabs
|
switchTab: function (e) {
|
const tab = parseInt(e.currentTarget.dataset.tab);
|
this.setData({
|
currentTab: tab
|
});
|
},
|
onInput(e) {
|
this.setData({
|
searchQuery: e.detail.value // 将输入框的值存储到 inputValue
|
});
|
},
|
onSearch: function () {
|
const query = this.data.searchQuery;
|
if (query) {
|
this.getallWaterPoints(query)
|
// 在这里进行搜索操作,更新 allWaterPoints 数据
|
} else {
|
this.setData({
|
allWaterPoints: []
|
})
|
}
|
},
|
|
/**
|
* 跳转到选择虚拟卡界面
|
* @param {} event
|
*/
|
choseCard(event) {
|
this.setData({
|
choseItem: event.currentTarget.dataset.item,
|
allWaterPoints: []
|
})
|
this.toOpenCard();
|
},
|
//开泵通信
|
/**
|
*
|
* @param {*} intakeId 取水口id
|
* @param {*} isforce 是否强制开阀
|
*/
|
postOpenValva(intakeId, isforce) {
|
this.setData({
|
inputValue:""
|
})
|
console.log("intakeId:" + intakeId + " isforce:" + isforce)
|
wx.showLoading({
|
title: '正在开阀请稍候...', // 加载提示文字
|
mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false
|
});
|
const app = getApp();
|
const data = {
|
intakeId: intakeId, //取水口ID
|
// vcId: vcId, //虚拟卡ID
|
operator: app.globalData.sessionId, //操作员
|
forceOpen: !!isforce // 使用逻辑非操作符 !! 来确保 isForce 是布尔值
|
};
|
post({
|
url: "wx/valve/open_wx",
|
data: data,
|
timeout: 180000
|
}).then(response => {
|
|
// 处理成功响应
|
console.log('请求成功:', response);
|
// 加载完成后隐藏加载动画
|
wx.hideLoading();
|
//完成后回到首页
|
wx.reLaunch({
|
url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写
|
});
|
|
}).catch(error => {
|
// 加载完成后隐藏加载动画
|
wx.hideLoading();
|
// 处理错误响应
|
console.error('请求失败:', error);
|
if (error.code === "10005") {
|
this.setData({
|
forceIntakeId: intakeId,
|
showForceConfirm: true
|
})
|
} else {
|
this.setData({
|
showErrorDialog: true,
|
errorData: error.msg
|
})
|
}
|
});
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad(options) {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面初次渲染完成
|
*/
|
onReady() {
|
this.getcommonWaterPoints();
|
},
|
|
/**
|
* 生命周期函数--监听页面显示
|
*/
|
onShow() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面隐藏
|
*/
|
onHide() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面卸载
|
*/
|
onUnload() {
|
|
},
|
|
|
|
|
/**
|
* 页面上拉触底事件的处理函数
|
*/
|
onReachBottom() {
|
|
},
|
|
/**
|
* 用户点击右上角分享
|
*/
|
onShareAppMessage() {
|
|
},
|
/**
|
*在所有取水口搜索
|
*/
|
getallWaterPoints: function (intakeNum) {
|
// 如果设置了使用测试数据,则直接使用测试数据
|
if (this.data.useTestData) {
|
if (intakeNum) {
|
// 模拟搜索功能,返回匹配的测试数据
|
const testData = this.generateTestSearchData(intakeNum);
|
if (testData) {
|
this.setData({
|
allWaterPoints: [testData]
|
});
|
} else {
|
wx.showToast({
|
title: '没有搜索到取水口',
|
icon: 'error',
|
});
|
}
|
}
|
return;
|
}
|
|
let params = {
|
url: 'wx/intake/all_intakes'
|
};
|
if (intakeNum) {
|
params.data = {
|
intakeNum: intakeNum
|
};
|
}
|
get(params)
|
.then((data) => {
|
this.setData({
|
isRefreshing_all: false
|
});
|
if (data.success && data.code === "0001") {
|
if (!data.content) {
|
wx.showToast({
|
title: '没有搜索到取水口',
|
icon: 'error',
|
})
|
}else{
|
this.setData({
|
allWaterPoints:[data.content]
|
});
|
}
|
|
} else {
|
wx.showToast({
|
title: data.msg,
|
})
|
}
|
console.log('Failed to add item:');
|
})
|
.catch((error) => {
|
this.setData({
|
isRefreshing_all: false
|
});
|
wx.showToast({
|
title: error.msg,
|
icon: 'error',
|
duration: 3000 // 提示的持续时间,单位毫秒
|
})
|
console.error('Failed to add item:', error);
|
});
|
},
|
|
/**
|
* 生成模拟的搜索结果数据
|
* @param {string} intakeNum 搜索的取水口编号
|
* @returns {object|null} 匹配的取水口对象,如果没有匹配则返回null
|
*/
|
generateTestSearchData(intakeNum) {
|
// 创建一个测试数据数组
|
const testDataArray = [
|
{ intakeId: "test001", intakeNum: "1001", isOnLine: true },
|
{ intakeId: "test002", intakeNum: "1002", isOnLine: false },
|
{ intakeId: "test003", intakeNum: "1003", isOnLine: true },
|
{ intakeId: "test004", intakeNum: "2001", isOnLine: true },
|
{ intakeId: "test005", intakeNum: "2002", isOnLine: false }
|
];
|
|
// 查找匹配的数据
|
return testDataArray.find(item => item.intakeNum.includes(intakeNum));
|
},
|
|
//获取常用取水口
|
getcommonWaterPoints() {
|
// 如果设置了使用测试数据,则直接使用测试数据
|
if (this.data.useTestData) {
|
const testData = this.generateTestCommonWaterPoints();
|
this.setData({
|
commonWaterPoints: testData,
|
isRefreshing_common: false
|
});
|
return;
|
}
|
|
get({
|
url: 'wx/intake/used_intakes',
|
data: {
|
operatorId: getApp().globalData.clientId
|
}
|
})
|
.then((data) => {
|
this.setData({
|
isRefreshing_common: false
|
});
|
if (data.success && data.code === "0001") {
|
this.setData({
|
commonWaterPoints: data.content
|
});
|
} else {
|
wx.showToast({
|
title: data.msg,
|
})
|
}
|
console.log('Failed to add item:');
|
})
|
.catch((error) => {
|
this.setData({
|
isRefreshing_common: false
|
});
|
wx.showToast({
|
title: error.msg,
|
icon: 'error',
|
duration: 3000 // 提示的持续时间,单位毫秒
|
})
|
console.error('Failed to add item:', error);
|
});
|
},
|
|
/**
|
* 生成测试的常用取水口数据
|
* @returns {Array} 常用取水口测试数据数组
|
*/
|
generateTestCommonWaterPoints() {
|
return [
|
{ intakeId: "test001", intakeNum: "取水口A", isOnLine: true },
|
{ intakeId: "test002", intakeNum: "取水口B", isOnLine: false },
|
{ intakeId: "test003", intakeNum: "取水口C", isOnLine: true },
|
{ intakeId: "test004", intakeNum: "取水口D", isOnLine: false },
|
{ intakeId: "test005", intakeNum: "取水口E", isOnLine: true },
|
{ intakeId: "test005", intakeNum: "取水口1", isOnLine: true },
|
{ intakeId: "test005", intakeNum: "取水口2", isOnLine: true },
|
{ intakeId: "test005", intakeNum: "取水口3", isOnLine: true },
|
{ intakeId: "test005", intakeNum: "取水口4", isOnLine: true }
|
|
];
|
},
|
|
/**
|
* 页面相关事件处理函数--监听用户下拉动作
|
*/
|
onPullDownRefresh_all() {
|
this.getallWaterPoints();
|
},
|
onPullDownRefresh_common() {
|
this.getcommonWaterPoints();
|
},
|
confirmDialog() {
|
this.setData({
|
showConfirm: false
|
})
|
this.toOpenCard();
|
},
|
closeDialog() {
|
this.setData({
|
showConfirm: false
|
})
|
},
|
closeErrorDialog() {
|
this.setData({
|
showErrorDialog: false
|
})
|
},
|
cancelDialog() {
|
this.setData({
|
showForceConfirm: false
|
});
|
},
|
//强制开阀
|
confirmForceDialog() {
|
this.postOpenValva(this.data.forceIntakeId, true);
|
},
|
closeSearch(){
|
this.setData({
|
allWaterPoints:[],
|
inputValue:""
|
})
|
},
|
toOpenCard(){
|
wx.navigateTo({
|
url: '/pages/openCard/openCard?intakeId='+this.data.choseItem.intakeId,
|
})
|
}
|
})
|