agri-app/pages/home/addAgri.vue

180 lines
4.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view>
<uni-popup ref="addForm" mode="center" >
<!-- 新增修改运行时间的弹窗 -->
<view class="modal-container">
<view class="modal-title">{{ `添加大棚` }}</view>
<uni-forms ref="form" :model="formData" :rules="rules" label-width="180rpx" validateTrigger="blur">
<uni-forms-item label="大棚名称:" name="agriName" required>
<uni-easyinput type="text" v-model="formData.agriName" placeholder="请输入大棚名称" />
</uni-forms-item>
<uni-forms-item label="设备imei" name="imei" required>
<uni-easyinput v-model="formData.imei" placeholder="在此输入设备imei号" >
<template #right>
<yt-scanCode @getScanCode="getScanCode"></yt-scanCode>
</template>
</uni-easyinput>
</uni-forms-item>
</uni-forms>
<view class="modal-input-wrap" >
<text class="modal-label"></text>
<uni-icons type="info" size="15" color="#666"/>
<text class="modal-text">可直接点击右侧扫描设备二维码;<br>
如若失效亦可手动输入设备imei号。</text>
</view>
<view class="modal-btn-wrap">
<button class="modal-btn cancel" @click="close">取消</button>
<button class="modal-btn confirm" @click="confirm"></button>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import UniPopup from "../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue";
import {addAgriMobile} from "../../api/system/assets/agri";
export default {
name: "addAgri",
components: {UniPopup},
data() {
return {
formData: {
agriName: null,
imei: null,
sourceCode:0
},
rules: {
agriName: {
rules:[
{
required: true,
errorMessage: '请输入温室名称!',
}
]
},
// 对name字段进行必填验证
imei: {
// name 字段的校验规则
rules:[
// 校验 name 不能为空
{
required: true,
errorMessage: '请输入设备imei',
},
// 对name字段进行长度验证
{
minLength: 15,
maxLength: 15,
errorMessage: '{label}不合法!需为 {maxLength} 位!',
},
{
pattern: /^\d{15}$/, // 核心正则
errorMessage: '请输入15位纯数字编号'
}
],
// 当前表单域的字段中文名,可不填写
label:'设备imei'
}
}
}
},
methods:{
close() {
this.$refs.addForm.close();
},
confirm() {
this.$refs.form.validate().then(res => {
if (!res) {
addAgriMobile(this.formData).then((response) => {
if (response.code===200) {
uni.showModal({
title: `${response.data.code===1?"✅":"⚠️"}操作提示`,
content: `${response.data.msg}`,
showCancal: false,
confirmText: '确定',
})
}
})
}
this.close();
}).catch(err => {
console.log('表单错误信息:', err);
})
},
open() {
this.$refs.addForm.open();
},
getScanCode(res){
this.imei = res;
}
}
}
</script>
<style scoped >
/* 新增:弹窗样式 */
.modal-container {
width: 600rpx;
background: #fff;
border-radius: 16rpx;
padding: 30rpx 20rpx;
}
.modal-title {
font-size: 30rpx;
font-weight: 500;
text-align: center;
margin-bottom: 40rpx;
color: #333;
}
.modal-input-wrap {
display: flex;
align-items: center;
margin-bottom: 16rpx;
font-size: 28rpx;
margin-left: 20rpx;
}
.modal-input-wrap:nth-child(2) {
margin-bottom: 35rpx;
}
.modal-label {
width: 140rpx;
color: #666;
}
.modal-btn-wrap {
display: flex;
gap: 20rpx;
margin-top: 40rpx;
}
.modal-btn {
flex: 1;
height: 70rpx;
border-radius: 8rpx;
font-size: 28rpx;
}
.modal-btn.cancel {
background: #f5f5f5;
color: #666;
}
.modal-btn.confirm {
background: #007aff;
color: #fff;
}
.modal-text {
font-size: 22rpx;
color: #6C6C6C;
margin-left: 6rpx;
}
/deep/ .uni-forms-item__label {
padding: 0!important;
margin-left: 20rpx;
width: 154rpx!important;
}
/deep/ .uni-forms-item:nth-child(2) {
margin-bottom: 24rpx;
}
</style>