From 79381dee96e536d3e1b5401397182b20d219297f Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期五, 11 七月 2025 13:51:27 +0800 Subject: [PATCH] fix:修改取水输入限制 --- pages/device/index.vue | 62 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 13 deletions(-) diff --git a/pages/device/index.vue b/pages/device/index.vue index 52aab37..10df413 100644 --- a/pages/device/index.vue +++ b/pages/device/index.vue @@ -16,7 +16,7 @@ </view> <view class="info-addr" @click="openMap(item.lat,item.lon)"> <text class="addr-text">地址:{{item.address}}</text> - <view> + <view class="addr-icon"> <image src="../../static/images/icon-point.svg" alt=''></image> <text>{{item.distanceValue}}km</text> </view> @@ -28,11 +28,12 @@ </view> <uni-popup ref="qushuiDialog" type="dialog"> <uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="请输入取水量" + :before-close="true" @confirm="dialogConfirm" @close="dialogClose" > <view> - <input v-model="qushuiNum" placeholder="请输入取水量(L)" /> + <input v-model="qushuiNum" placeholder="请输入取水量(m³)" /> </view> </uni-popup-dialog> </uni-popup> @@ -42,13 +43,13 @@ <script setup> import{ ref, onMounted } from 'vue' import Navbar from '../../components/navbar/navbar.vue' - import { getFacitily } from '@/api/index.js' + import { getFacitily, getWater } from '@/api/index.js' import { BASE_URL } from '../../config/index.js' const userLocation = ref() const facitilyList = ref([]) const qushuiDialog = ref() - const facitilyId = ref() + const facilityId = ref() const qushuiNum = ref() const getFacitilyList = () => { @@ -67,19 +68,50 @@ // 取水 const handleQushui = (id) => { - facitilyId.value = id + facilityId.value = id qushuiDialog.value.open() } // 取消 const dialogClose = () => { - facitilyId.value = '' + facilityId.value = '' qushuiNum.value = '' + qushuiDialog.value.close() } // 确认 const dialogConfirm = () => { - + let reg = /^(0|([1-9][0-9]*))(\.[\d]+)?$/ + if(!reg.test(qushuiNum.value)) { + uni.showToast({ + title:'取水量为大于零的数字', + icon:'none' + }) + return + } + const data = { + facilityId: facilityId.value, + amount: Number(qushuiNum.value) + } + getWater(data).then(res => { + if(res.code === 200) { + uni.showToast({ + title:res.data, + icon:'success' + }) + dialogClose() + }else{ + uni.showToast({ + title:res.msg, + icon:'error' + }) + } + }).catch(err => { + uni.showToast({ + title:'指令发送失败,请稍后重试', + icon:'error' + }) + }) } //打开地图导航 @@ -102,6 +134,7 @@ lon: res.longitude } uni.setStorageSync('userLocation',JSON.stringify(userLocation.value)) + getFacitilyList() }, fail:(err) =>{ locationToast() @@ -112,7 +145,7 @@ const locationToast = () => { uni.showModal({ title: "请求授权当前位置", - content: "请求获取您的位置,加载附近饮水设备信息!", + content: "请求获取您的位置,加载附近取水设备信息!", confirmText: "前往设置", success: (res) => { if (res.confirm) { @@ -198,21 +231,24 @@ align-items:center; .addr-text{ width:340rpx; + flex-shrink: 0; height:80rpx; color: #6a6e75; font-size:26rpx; } - view{ + .addr-icon{ + width: 150rpx; + flex-shrink: 0; display: flex; - justify-content: space-between; align-items:center; + justify-content: flex-end; image{ - width:50rpx; - height:50rpx; + width: 40rpx; + height: 40rpx; } text{ color: #6a6e75; - font-size:26rpx; + font-size:22rpx; } } } -- Gitblit v1.9.3