需求:默认界面中会有一个表单,可通过表单下面的添加按钮进行添加表单操作,在填写完表单提交时需要校验多个表单中的必填字段是否为空
界面代码如下:
<div v-for="(item, index) in tempVillagerDtoList" :key=(index)>
<el-form label-width="100px" class="ruleJourney" ref="ruleJourney" :rules="rulesJourney" :model="item">
<el-form-item label="时间" prop="proDate">
<el-date-picker style="width: 230px;" v-model="item.proDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="地点" prop="site">
<el-input v-model="item.site" maxlength="18"></el-input>
</el-form-item>
<el-form-item label="事件" prop="event">
<el-input type="textarea" rows="4.5" placeholder="输入内容" style="width: 80%;" v-model="item.event" maxlength="200"></el-input>
</el-form-item>
</el-form>
<el-button class="emptybtn" @click="handlecalce(index)">删除</el-button>
<div style="margin-left: 90px;">
<el-button type="primary" @click="handleAddpeople">+再加一条轨迹</el-button>
</div>
js代码如下:
export default {
data() {
return {
// 表单参数
formParams: {
deptId: null, //单位id
deptName: null, //单位名称
branchId: null, //部门id
branchName: null, //部门名称
employeeId: null, //职工id
employeeName: null, //职工姓名
phone: null, //手机号
idNo: null, //身份证
processTrajectoryList: [], //流程轨迹
visit: null, //发病与就诊
resolved: null, //已采取措施
},
rulesJourney: {
proDate: [{ required: true, message: "请选择时间", trigger: "change" }],
site: [{ required: true, message: "请选择地点", trigger: "change" }],
event: [{ required: true, message: "请选择事件", trigger: "change" }],
},
},
methods: {
/** 提交 */
submitForm() {
let arr = [];
this.$refs["ruleJourney"].forEach((item) => {
item.validate((valid) => arr.push(valid));
});
let validateState = arr.every((item) => {
return item;
});
if(validateState){
console.log("校验成功")
}
}