新增测试数据功能,允许在首页和取水口页面使用模拟数据进行测试,优化用户体验。
| | |
| | | showInfoDialog: false, |
| | | showTipDialog: false, |
| | | options: '', |
| | | showUnBind: false |
| | | showUnBind: false, |
| | | useTestData: false // 新增:是否使用测试数据的标志 |
| | | }, |
| | | |
| | | openValve: function (e) { |
| | |
| | | }).exec(); |
| | | }, |
| | | startPullDownRefresh() { |
| | | if (this.data.useTestData) { |
| | | this.setData({ |
| | | isRefreshing: true |
| | | }); |
| | | this.getOpenList(); |
| | | return; |
| | | } |
| | | |
| | | if (this.data.isLogin) { |
| | | if (!this.data.isWXRefreshing) { |
| | | var self = this; |
| | |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | // 直接加载测试数据 |
| | | if (this.data.useTestData) { |
| | | this.setData({ |
| | | isLogin: true, // 设置为已登录状态以便能看到测试数据 |
| | | userName: "测试用户", |
| | | userPhone: "135****6789" |
| | | }); |
| | | this.getOpenList(); |
| | | return; |
| | | } |
| | | |
| | | //判断本地是否保存sessionId |
| | | if (storage.isHasKeySync("sessionId")) { |
| | | const app = getApp(); |
| | |
| | | }); |
| | | }, |
| | | /** |
| | | * 生成测试数据 - 新增函数 |
| | | */ |
| | | generateTestData() { |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, '0'); |
| | | const day = String(now.getDate()).padStart(2, '0'); |
| | | const hours = String(now.getHours()).padStart(2, '0'); |
| | | const minutes = String(now.getMinutes()).padStart(2, '0'); |
| | | const seconds = String(now.getSeconds()).padStart(2, '0'); |
| | | |
| | | const dateString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | const orderBase = `TEST-${year}${month}${day}-`; |
| | | |
| | | const testData = [ |
| | | { |
| | | intakeNum: "取水口1", |
| | | isOnLine: true, |
| | | dt: dateString, |
| | | waterInstant: "1.23", |
| | | orderNo: orderBase + "001", |
| | | rtuAddr: "TEST-RTU-001", |
| | | vcNum: "TEST-VC-001", |
| | | planned: false, |
| | | time: this.extractTime(dateString), |
| | | deleteText: "删除", |
| | | displayText: "关阀", |
| | | isOpen: true |
| | | }, |
| | | { |
| | | intakeNum: "取水口2", |
| | | isOnLine: false, |
| | | dt: dateString, |
| | | waterInstant: "2.45", |
| | | orderNo: orderBase + "002", |
| | | rtuAddr: "TEST-RTU-002", |
| | | vcNum: "TEST-VC-002", |
| | | planned: false, |
| | | time: this.extractTime(dateString), |
| | | deleteText: "删除", |
| | | displayText: "关阀", |
| | | isOpen: true |
| | | }, |
| | | { |
| | | intakeNum: "取水口3", |
| | | isOnLine: true, |
| | | dt: dateString, |
| | | waterInstant: "3.67", |
| | | orderNo: orderBase + "003", |
| | | rtuAddr: "TEST-RTU-003", |
| | | vcNum: "TEST-VC-003", |
| | | planned: true, |
| | | time: this.extractTime(dateString), |
| | | deleteText: "删除", |
| | | displayText: "取消", |
| | | isOpen: true |
| | | } |
| | | ]; |
| | | return testData; |
| | | }, |
| | | /** |
| | | * 获取为关阀记录 |
| | | */ |
| | | getOpenList() { |
| | | if (this.data.isLogin) { |
| | | // 如果设置了使用测试数据,则直接使用测试数据 |
| | | if (this.data.useTestData) { |
| | | const testData = this.generateTestData(); |
| | | this.setData({ |
| | | listData: testData, |
| | | isRefreshing: false, |
| | | isWXRefreshing: false, |
| | | }); |
| | | this.updateDisplayText(); |
| | | return; |
| | | } |
| | | |
| | | const app = getApp(); |
| | | const params = { |
| | | url: 'wx/valve/get', |
| | |
| | | this.setData({ |
| | | showConfirm: false |
| | | }); |
| | | if (this.data.useTestData) { |
| | | // 测试数据模式下,模拟关阀操作 |
| | | wx.showLoading({ |
| | | title: '正在关阀请稍候...', |
| | | mask: true |
| | | }); |
| | | |
| | | // 模拟请求延迟 |
| | | setTimeout(() => { |
| | | wx.hideLoading(); |
| | | |
| | | // 从列表中移除被关闭的阀门 |
| | | const updatedList = this.data.listData.filter(item => |
| | | item.orderNo !== this.data.myItem.orderNo |
| | | ); |
| | | |
| | | this.setData({ |
| | | listData: updatedList, |
| | | showTipDialog: true, |
| | | tipData: "关阀命令下发成功,约20-60秒后可刷新快速关阀列表查看执行结果。" |
| | | }); |
| | | }, 1500); |
| | | return; |
| | | } |
| | | this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum); |
| | | }, |
| | | //根据session获取农户信息 |
| | |
| | | onDelete(e) { |
| | | const item = e.currentTarget.dataset.item; |
| | | const that = this; |
| | | |
| | | if (this.data.useTestData) { |
| | | // 测试数据模式下,模拟删除操作 |
| | | wx.showLoading({ |
| | | title: '正在强制删除请稍候...', |
| | | mask: true |
| | | }); |
| | | |
| | | // 模拟请求延迟 |
| | | setTimeout(() => { |
| | | wx.hideLoading(); |
| | | |
| | | // 从列表中移除被删除的项 |
| | | const updatedList = this.data.listData.filter(listItem => |
| | | listItem.orderNo !== item.orderNo |
| | | ); |
| | | |
| | | this.setData({ |
| | | listData: updatedList |
| | | }); |
| | | |
| | | wx.showToast({ |
| | | title: '删除成功', |
| | | icon: 'success', |
| | | duration: 2000 |
| | | }); |
| | | }, 1500); |
| | | return; |
| | | } |
| | | |
| | | wx.showLoading({ |
| | | title: '正在强制删除请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | |
| | | }, |
| | | showForceConfirm: false, |
| | | forceIntakeId: "", //强制开阀的取水口id |
| | | inputValue:"" |
| | | inputValue:"", |
| | | useTestData: false // 新增: 是否使用测试数据的标志 |
| | | }, |
| | | |
| | | // 切换 Tabs |
| | |
| | | *在所有取水口搜索 |
| | | */ |
| | | 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' |
| | | }; |
| | |
| | | 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: { |
| | |
| | | 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 } |
| | | |
| | | ]; |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |