项目场景:
有的功能需要设置必填项,当然也需要判断是不是添上了,还需要加上提示框
问题描述
1.如何设置必填项
2.如何设置弹窗提示
3.如何将二者结合起来实现点击时既可以判断必填项也可以弹出提示框
原因分析:
其他两个我没有什么问题,在将二者结合起来的时候判断的位置要加对,还有else也要放对位置
解决方案:
1.设置必填项
:rules=" "这里绑定你需要设置必填项的方法名
ref=" " 这里绑定你进行判断的方法名
方法的数组里设置的属性required: false,代表不是必填项
required: true代表是必填
以下有效果图
<el-form :model="queryInfos" :rules="addqueryInfos" ref="insertPriceList" label-width="100px" label-position="left">
<el-row :gutter="3" v-if="update">
<el-col :span="6">
<el-form-item label="人员编号" prop="psnNo">
<el-input v-model="queryInfos.psnNo"></el-input>
</el-form-item>
</el-col>
</el-from>
addqueryInfos: {
iptOtpNo: [{
required: false,
message: '请输门诊编号',
trigger: 'blur'
}],
sheetId: [{
required: false,
message: '请输入处方编号',
trigger: 'blur'
}],
epcId: [{
required: false,
message: '请输入处方ID号',
trigger: 'blur'
}],
paName: [{
required: false,
message: '请输入患者姓名',
trigger: 'blur'
}],
psnNo: [{
required: true,
message: '请输入人员编号',
trigger: 'blur'
}],
psnCertType: [{
required: true,
message: '请输入证件类型',
trigger: 'blur'
}],
certno: [{
required: true,
message: '请输入证件号码',
trigger: 'blur'
}],
},
dialog: false,
2.设置提示弹框
async insertPriceList(queryInfos) {
//新增处方信息和药品信息
this.$refs.insertPriceList.validate((valid) => {
if (valid) { //必填项的判断,点击确定和取消这里会自动判断,确定就会执行下面的语句,但是
this.$confirm("您确定【提交】?", "提示", { //这里配合data里的addqueryInfos进行使用可以达到非空判断+提示框的效果
confirmButtonText: "确定",
cancelButtonText: "取消",
}).then(() => {
}
}).catch(()=>{});//注意这里,这里是重点,加上之后那两个确定取消才会被正常使用,不加功能不影响!!!!!但是前端控制台会报错!!!
}
})
},
3.将二者结合起来
一定要注意判断的位置还有你交互代码的位置以及else的位置,三个位置错的话效果会有偏差
async insertPriceList(queryInfos) {
//新增处方信息和药品信息
this.$refs.insertPriceList.validate((valid) => {
if (valid) { //必填项的判断,点击确定和取消这里会自动判断,确定就会执行下面的语句,但是
this.$confirm("您确定【提交】?", "提示", { //这里配合data里的addqueryInfos进行使用可以达到非空判断+提示框的效果
confirmButtonText: "确定",
cancelButtonText: "取消",
}).then(() => {
const {
data: results,
} = this.$http.post('/medicine/putMedicine', this.queryInfos)
this.$message.success('处方新增成功!')
for (var i = 0; i < this.baseForm.addForm.length; i++) {
if (this.baseForm.addForm[i].regName != "") { //后端是数组,前端是list集合所以需要把遍历到的信息存到数组里,然后调用此功能时将数据插入到集合中
this.getData()
this.submit()
this.update = false
this.$nextTick(() => {
this.update = true
})
}
}
this.getData()
}).catch(()=>{});//注意这里,这里是重点!!!
} else {
this.$message.error('新增失败,请检查!!!')
}
})
},