| | |
| | | */ |
| | | data: { |
| | | intakeId: 0, |
| | | showDialog: true, |
| | | showDialog: false, |
| | | vcId: "", |
| | | activeIndex: -1, |
| | | datetimeVisible: false, |
| | | datetime: new Date().getTime(), |
| | | dateStartTime: new Date().getTime(), |
| | | dateEndTime: new Date().getTime() + 24 * 60 * 60 * 1000, |
| | | datetimeText: '', |
| | | allCardPoints: [], // 所有虚拟卡 |
| | | irrigateProfile: [], //获取所选灌溉方式的详细数据 |
| | | dialog_mode: true, |
| | | dialog_time: false, |
| | | dialog_water: false, |
| | | group_time: false, |
| | | openTime: "", |
| | | isShowOpenTime: "false" |
| | | group_time: false, //是否显示选择分钟或小时的单选框 |
| | | openTime: "", //计划开泵的开始时间 |
| | | openTimeText: "", |
| | | isShowOpenTime: "false", |
| | | isOpenTiming: false, //是否是计划开阀时间样式的开阀 |
| | | postMinutes: 0, //定灌溉时长的时间 |
| | | showForceConfirm: false, |
| | | showErrorDialog: false, //错误提示 |
| | | errorData: "", |
| | | confirmBtn: { |
| | | content: '确认' |
| | | }, |
| | | radioValue: "0", //开阀方式选中的类型 |
| | | costiomTime: "", //自定义灌溉时间 |
| | | waterAmount: 0, //定量开阀的水量 |
| | | costiomWater: "", //输入的自定义水量 |
| | | isWXRefreshing: false, |
| | | intakeName: "" //扫码开阀从首页传来的取水口名称 |
| | | }, |
| | | openValva(event) { |
| | | const { |
| | |
| | | if (item.isAlarmValue === true) { |
| | | //金额报警 |
| | | wx.navigateTo({ |
| | | url: '/pages/rechargeMoney/rechargMoney?vcId=' + item.vcId, |
| | | url: '/pages/rechargeMoney/rechargMoney?vcId=' + item.id, |
| | | }) |
| | | } else if (item.inUse === false) { |
| | | // 选择虚拟卡后 |
| | | this.setData({ |
| | | vcId: item.vcId, |
| | | showDialog: true, |
| | | dialog_mode: true, |
| | | dialog_time: false, |
| | | dialog_water: false |
| | | vcId: item.id, |
| | | }) |
| | | if (this.data.intakeName) { |
| | | //扫码开阀逻辑 |
| | | this.postOpenValva(false); |
| | | } else { |
| | | // 选择虚拟卡后 |
| | | this.initDialogData(); |
| | | } |
| | | |
| | | } |
| | | }, |
| | | handleAutoIrrigation() {}, |
| | | //立即开泵 |
| | | postOpenValva() { |
| | | const app = getApp(); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | operator: app.globalData.sessionId //操作员 |
| | | }; |
| | | post({ |
| | | url: "wx/valve/open_wx", |
| | | data: data |
| | | }).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 === "1002") { |
| | | wx.showToast({ |
| | | title: '开泵失败', |
| | | icon: 'error', |
| | | duration: 3000 // 提示的持续时间,单位毫秒 |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | postTimeOpen() {}, |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | const { |
| | | intakeId |
| | | intakeId, |
| | | intakeName |
| | | } = options; |
| | | this.setData({ |
| | | intakeId |
| | | intakeId: intakeId, |
| | | intakeName: intakeName |
| | | }) |
| | | console.log('intakeId:' + this.data.intakeId); |
| | | this.getCardList(); |
| | |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | console.log("onShow>>>>" + this.data.isShowOpenTime) |
| | | }, |
| | | |
| | | /** |
| | |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | this.setData({ |
| | | isWXRefreshing: true |
| | | }); |
| | | this.getCardList(); |
| | | }, |
| | | |
| | | /** |
| | |
| | | }); |
| | | // 更新列表数据 |
| | | this.setData({ |
| | | allCardPoints: updatedList |
| | | allCardPoints: updatedList, |
| | | isWXRefreshing: false |
| | | }); |
| | | }, |
| | | handleClost() { |
| | |
| | | showDialog: false |
| | | }) |
| | | }, |
| | | handleMoneyWrapperTap: function (e) { |
| | | //选择时间后的处理 |
| | | handleTimeWrapperTap(e) { |
| | | const index = e.currentTarget.dataset.index; |
| | | console.log(index) |
| | | if (index !== undefined) { |
| | | let minutes; |
| | | if (this.data.irrigateProfile[index].unit === "1") { |
| | | minutes = this.hourToMinutes(this.data.irrigateProfile[index].defaultValue) |
| | | } else { |
| | | minutes = this.data.irrigateProfile[index].defaultValue; |
| | | } |
| | | this.setData({ |
| | | activeIndex: parseInt(index), |
| | | postMinutes: minutes, |
| | | costiomTime: "", |
| | | group_time: false, |
| | | }); |
| | | } |
| | | }, |
| | | // 选择水量后的处理 |
| | | handleWaterWrapperTap(e) { |
| | | const index = e.currentTarget.dataset.index; |
| | | console.log(index) |
| | | if (index !== undefined) { |
| | | this.data.waterAmount = parseInt(this.data.irrigateProfile[index].defaultValue) |
| | | this.setData({ |
| | | activeIndex: parseInt(index), |
| | | costiomWater: "" |
| | | }); |
| | | } |
| | | }, |
| | |
| | | handleSetDuration() { |
| | | this.getIrrigateProfileData(1); |
| | | }, |
| | | onGroupChange(event) { |
| | | onGroupOpenTimeChange(event) { |
| | | const { |
| | | value |
| | | } = event.detail; |
| | | console.log('Failed to add item:' + value); |
| | | console.log('onGroupOpenTimeChange:' + value); |
| | | if (value == 1) { |
| | | this.showPicker(); |
| | | this.setData({ |
| | | isOpenTiming: true, |
| | | radioValue: value, |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isShowOpenTime: false |
| | | isShowOpenTime: false, |
| | | isOpenTiming: false, |
| | | radioValue: value, |
| | | }) |
| | | } |
| | | }, |
| | | //显示时间选择器 |
| | | showPicker(e) { |
| | | this.setData({ |
| | | datetime: new Date().getTime(), |
| | | datetimeVisible: true, |
| | | isShowOpenTime: true |
| | | }); |
| | | }, |
| | | onTimeInputChange() { |
| | | this.setData({ |
| | | group_time: true |
| | | }) |
| | | onTimeInputChange(data) { |
| | | console.log(data.detail.value) |
| | | if (data.detail.value !== "") { |
| | | this.setData({ |
| | | group_time: true, |
| | | activeIndex: -1, |
| | | postMinutes: parseInt(data.detail.value) |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | group_time: false, |
| | | postMinutes: 0, |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | onConfirm(e) { |
| | | const { |
| | | value |
| | | } = e?.detail; |
| | | console.log(value); |
| | | this.setData({ |
| | | openTime: "开阀时间:" + value |
| | | openTime: value, |
| | | openTimeText: "计划开阀时间:" + value |
| | | }) |
| | | }, |
| | | handleSetWaterVolume() { |
| | |
| | | dialog_mode: true, |
| | | group_time: false |
| | | }) |
| | | } |
| | | }, |
| | | //立即开泵 |
| | | postOpenValva(isforce) { |
| | | wx.showLoading({ |
| | | title: '正在开阀请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const app = getApp(); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | intakeName: this.data.intakeName, //取水口名称 |
| | | operator: app.globalData.sessionId, //操作员 |
| | | forceOpen: !!isforce // 使用逻辑非操作符 !! 来确保 isForce 是布尔值 |
| | | }; |
| | | post({ |
| | | url: "wx/valve/open_wx", |
| | | data: data |
| | | }).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({ |
| | | // showDialog: false, |
| | | // showForceConfirm: true |
| | | // }) |
| | | // } else { |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg |
| | | }) |
| | | // } |
| | | }); |
| | | }, |
| | | //定时关阀式开阀 |
| | | timeClose() { |
| | | const app = getApp(); |
| | | wx.showLoading({ |
| | | title: '正在开阀请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | minutes: this.data.postMinutes, //分钟 |
| | | operator: app.globalData.sessionId //操作员 |
| | | }; |
| | | post({ |
| | | url: "wx/valve/timed_close", |
| | | data: data |
| | | }).then(response => { |
| | | // 处理成功响应 |
| | | console.log('请求成功:', response); |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | //完成后回到首页 |
| | | wx.reLaunch({ |
| | | url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写 |
| | | }); |
| | | }).catch(error => { |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg |
| | | }) |
| | | }); |
| | | }, |
| | | //定时关阀式计划开阀 |
| | | timeClosePlaned() { |
| | | const app = getApp(); |
| | | wx.showLoading({ |
| | | title: '正在通信请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | minutes: this.data.postMinutes, //分钟 |
| | | operator: app.globalData.sessionId, //操作员 |
| | | plannedOpenTime: this.data.openTime |
| | | }; |
| | | post({ |
| | | url: "wx/valve/timed_close", |
| | | data: data |
| | | }).then(response => { |
| | | // 处理成功响应 |
| | | console.log('请求成功:', response); |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | //完成后回到首页 |
| | | wx.reLaunch({ |
| | | url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写 |
| | | }); |
| | | }).catch(error => { |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg |
| | | }) |
| | | }); |
| | | }, |
| | | //定量开阀 |
| | | quantifyOpen() { |
| | | const app = getApp(); |
| | | wx.showLoading({ |
| | | title: '正在开阀请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | waterAmount: this.data.waterAmount, //水量 |
| | | operator: app.globalData.sessionId //操作员 |
| | | }; |
| | | post({ |
| | | url: "wx/valve/quantify_close", |
| | | data: data |
| | | }).then(response => { |
| | | // 处理成功响应 |
| | | console.log('请求成功:', response); |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | //完成后回到首页 |
| | | wx.reLaunch({ |
| | | url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写 |
| | | }); |
| | | }).catch(error => { |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg |
| | | }) |
| | | }); |
| | | }, |
| | | //定量开阀式计划开阀 |
| | | quantifyOpenTime() { |
| | | const app = getApp(); |
| | | wx.showLoading({ |
| | | title: '正在通信请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const data = { |
| | | intakeId: this.data.intakeId, //取水口ID |
| | | vcId: this.data.vcId, //虚拟卡ID |
| | | waterAmount: this.data.waterAmount, //水量 |
| | | operator: app.globalData.sessionId, //操作员 |
| | | plannedOpenTime: this.data.openTime |
| | | }; |
| | | post({ |
| | | url: "wx/valve/planed_open_quantify_close", |
| | | data: data |
| | | }).then(response => { |
| | | // 处理成功响应 |
| | | console.log('请求成功:', response); |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | //完成后回到首页 |
| | | wx.reLaunch({ |
| | | url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写 |
| | | }); |
| | | }).catch(error => { |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg |
| | | }) |
| | | }); |
| | | }, |
| | | // 通过小时转换成分钟 |
| | | hourToMinutes(hours) { |
| | | // 检查输入是否合法 |
| | | if (isNaN(hours) || hours < 0) { |
| | | console.error('请输入有效的小时数'); |
| | | return null; |
| | | } |
| | | // 将小时转换为分钟 |
| | | const minutes = hours * 60; |
| | | return minutes; |
| | | }, |
| | | minutesToHours(minutes) { |
| | | // 检查输入是否合法 |
| | | if (isNaN(minutes) || hours < 0) { |
| | | console.error('请输入有效的小时数'); |
| | | return null; |
| | | } |
| | | // 将小时转换为分钟 |
| | | const hours = minutes / 60; |
| | | return hours; |
| | | }, |
| | | //定时开泵按钮 |
| | | btnOpenOnTime() { |
| | | if (this.data.postMinutes > 0) { |
| | | if (this.data.isOpenTiming) { |
| | | this.timeClosePlaned(); |
| | | } else { |
| | | this.timeClose(); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | icon: 'error', |
| | | title: '请选择或输入灌溉时间!', |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | cancelDialog() { |
| | | this.setData({ |
| | | showForceConfirm: false |
| | | }); |
| | | }, |
| | | //强制开阀 |
| | | confirmForceDialog() { |
| | | this.postOpenValva(this.data.forceIntakeId, true); |
| | | }, |
| | | //关闭错误提示 |
| | | closeErrorDialog() { |
| | | this.setData({ |
| | | showErrorDialog: false |
| | | }) |
| | | }, |
| | | hidePicker() { |
| | | this.setData({ |
| | | isShowOpenTime: false, |
| | | isOpenTiming: false, |
| | | radioValue: "0" |
| | | }) |
| | | }, |
| | | //初始化所有开泵的参数 |
| | | initDialogData() { |
| | | this.setData({ |
| | | isShowOpenTime: "false", |
| | | isOpenTiming: false, //是否是计划开阀时间样式的开阀 |
| | | postMinutes: 0, //定灌溉时长的时间 |
| | | showForceConfirm: false, |
| | | showErrorDialog: false, //错误提示 |
| | | showDialog: true, |
| | | dialog_mode: true, |
| | | dialog_time: false, |
| | | dialog_water: false, |
| | | openTimeText: "", |
| | | openTime: "" |
| | | }) |
| | | }, |
| | | //定灌溉时长自定义输入时间时修改时间单位0:分钟,1:小时 |
| | | onGroupOpenTimeTypeChange(event) { |
| | | let value = event.detail.value; |
| | | if (value === "1") { |
| | | this.setData({ |
| | | postMinutes: this.hourToMinutes(this.data.postMinutes) |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | postMinutes: this.minutesToHours(this.data.postMinutes) |
| | | }) |
| | | } |
| | | }, |
| | | //输入自定义水量的监听 |
| | | onWaterInputChange(data) { |
| | | console.log(data.detail.value) |
| | | if (data.detail.value !== "") { |
| | | this.setData({ |
| | | activeIndex: -1, |
| | | waterAmount: parseInt(data.detail.value) |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | waterAmount: 0, |
| | | }) |
| | | } |
| | | }, |
| | | // 定量开泵按钮 |
| | | btnOpenOnWater() { |
| | | if (this.data.waterAmount > 0) { |
| | | if (this.data.isOpenTiming) { |
| | | this.quantifyOpenTime(); |
| | | } else { |
| | | this.quantifyOpen(); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | icon: 'error', |
| | | title: '请选择或输入灌溉时间!', |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | }) |