From d470e67ac1997882502b75cbfdaf359626cfaaa8 Mon Sep 17 00:00:00 2001 From: Liuyi <candymxq888@outlook.com> Date: 星期五, 20 十二月 2024 17:27:07 +0800 Subject: [PATCH] 测试修复小程序问题,添加水控机设备 --- pages/infoBreakdown/index.vue | 144 +++++++++++++++++++++++++++++------------------ 1 files changed, 88 insertions(+), 56 deletions(-) diff --git a/pages/infoBreakdown/index.vue b/pages/infoBreakdown/index.vue index 7155b05..ac131da 100644 --- a/pages/infoBreakdown/index.vue +++ b/pages/infoBreakdown/index.vue @@ -9,8 +9,40 @@ describe:'', url:'', }) - const test = ref() + //校验 + const formRef = ref() + const rules = ref({ + facilityCode: { + rules:[ + {required: true,errorMessage: '请扫描设备二维码获取'}] + }, + userPhone: { + rules:[ + {required: true,errorMessage: '请输入您的手机号'}, + {pattern: /^1[3-9]\d{9}$/, errorMessage: '手机号格式不正确'} + ] + }, + type: { + rules:[ + {required: true,errorMessage: '请选择设备类型'}] + }, + describe: { + rules:[ + {required: true,errorMessage: '请输入故障内容'}, + {maxLength:200,errorMessage: '请输入故障内容'}, + ] + }, + }) + const typeList = ref([ + {text:'温度',value:1}, + {text:'水压',value:2}, + {text:'网络',value:3}, + {text:'缺液',value:4}, + {text:'流量计',value:5}, + {text:'其他',value:6}, + ]) const uploadList = ref(['','','']) + const uploadListForm = ref(['','','']) function uploadImg(val){ uni.chooseImage({ success: async(res) =>{ @@ -28,6 +60,7 @@ console.log('success',success); let dataObj = JSON.parse(success.data) uploadList.value[val]= BASE_URL + '/upload' + dataObj.data.newFileName + uploadListForm.value[val]= dataObj.data.newFileName console.log('uploadList.value',uploadList.value) }, fail: (err) => { @@ -48,32 +81,35 @@ uni.scanCode({ scanType: ['qrCode'], success: function (res) { - console.log('条码内容:' + res.result); - form.value.facilityCode = res.result + let code = res.result.split('=')[1] + form.value.facilityCode = code + console.log('条码内容:' + res.result,'code',code); } }); } async function submit(){ - form.value.url = uploadList.value - //去掉数组中空字符串,数组转字符串 - form.value.url = form.value.url.filter(str => str !== '').join() - await infoBreakdownApi(form.value).then((res) =>{ - if(res.code == 200){ - uni.showToast({ - title: '上报成功', - duration: 2000, - }); - setTimeout(()=>{ - form.value = { - facilityCode:'', - userPhone:'', - type:'', - describe:'', - url:'', - } - uni.navigateBack() - },1000) - } + formRef.value.validate().then(async() =>{ + form.value.url = uploadListForm.value + //去掉数组中空字符串,数组转字符串 + form.value.url = form.value.url.filter(str => str !== '').join() + await infoBreakdownApi(form.value).then((res) =>{ + if(res.code == 200){ + uni.showToast({ + title: '上报成功', + duration: 2000, + }); + setTimeout(()=>{ + form.value = { + facilityCode:'', + userPhone:'', + type:'', + describe:'', + url:'', + } + uni.navigateBack() + },1000) + } + }) }) } </script> @@ -82,35 +118,33 @@ <navbar title="故障上报"></navbar> <view class="content"> <view class="main"> - <view class="title">请填写故障信息{{test}}</view> + <view class="title">请填写故障信息</view> <view class="info-box"> <view class="form-box"> - <form> - <view class="form-item"> - <view class="label">设备号:</view> - <input class="item-input" v-model="form.facilityCode" name="input" placeholder="请扫描或输入设备号" /> - <image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image> - </view> - <view class="form-item"> - <view class="label">联系方式:</view> - <input class="item-input" v-model="form.userPhone" name="input" placeholder="请输入您的手机号" /> - </view> - <view class="form-item"> - <view class="label">问题类型:</view> - <input class="item-input" name="input" v-model="form.type" placeholder="请输入数字" /> - </view> - <view class="form-item"> - <view class="label">问题描述:</view> - <input class="item-input" name="input" v-model="form.describe" placeholder="请输入故障内容" /> - </view> - </form> + <uni-forms ref="formRef" :model="form" :rules="rules" label-width=100> + <uni-forms-item label="设备号:" name="facilityCode"> + <view class="form-item"> + <input v-model="form.facilityCode" placeholder="请扫描设备二维码获取" /> + <image class="scan-img" @click="toScan()" src="../../static/images/addCard/code.svg" alt=""></image> + </view> + </uni-forms-item> + <uni-forms-item label="联系方式:" name="userPhone"> + <input v-model="form.userPhone" placeholder="请输入您的手机号" /> + </uni-forms-item> + <uni-forms-item label="问题类型:" name="type"> + <uni-data-select v-model="form.type" :localdata="typeList"></uni-data-select> + </uni-forms-item> + <uni-forms-item label="问题描述:" name="describe"> + <input type="textarea" v-model="form.describe" placeholder="请输入故障内容" /> + </uni-forms-item> + </uni-forms> </view> <view class="upload-box"> <view class="upload-title">选择照片</view> <view class="upload-img"> <block v-for="(item,index) in uploadList"> <view @click="uploadImg(index)" class="upload-img-item"> - <image v-if="item" :src="item"></image> + <image v-if="item" :src="item" mode="aspectFit"></image> <image v-else class="default-img" src="../../static/images/other/img-add.png" alt=""></image> </view> </block> @@ -157,21 +191,19 @@ .form-box{ height:500rpx; border-bottom:1rpx solid rgba(90, 128, 218, 0.4); + input{ + height:100%; + line-height:100%; + } .form-item{ + height:100%; + line-height:100%; display: flex; align-items: center; - border-bottom: 1rpx solid rgba(111, 111, 111, 0.1); - height:100rpx; - .label{ - width:180rpx; - } - input{ - width:340rpx; - } - image{ - margin-left:50rpx; - width:50rpx; - height:50rpx; + justify-content: space-around; + .scan-img{ + width:56rpx; + height:56rpx; } } } -- Gitblit v1.9.3