一、书写模式
//1.新建一个变量
let submitData={};
//2.遍历表单中的元素
for循环
for(let list of this.lists){
//3.必填项未填写时提示
if(list.required && !list.value){
this.$message.error('error message');
return null
}
//4.switch,case对特殊字段(处理为后端要求返回的数据)特殊处理,一般字段default处理
switch(list.id){
case "aaa":
submitData.aaa=list.value;
break;
defalut:
submitData[list.id]=list.value;
break;
}
}
//5.返回处理好的数据
return submitData;
注:必须使用for循环,如果使用forEach、map、filter等方法遍历,则无法 return ,即使没有填写,也只会提示,并不会阻止提交
二、例子
//提取用户输入的数据
submitData() {
let submitData = {
applytime: "",
applytype: 3,
asagrade: "",
}
for (let list of this.lists) {
//必填项未填时,提示
if (!list.value && list.required) {
this.$message.error(list.label + "必填");
return null;
}
switch (list.id) {
case "room":
submitData.roomid = list.value.id;
break;
case "operationorder":
submitData.operationorder = list.value ? list.value + "台" : "";
break;
default:
submitData[list.id] = list.value;
}
}
}
return submitData;
},