<el-form inline label-position="top" ref="member" :model="formData">
<div v-for="(item, index) in formData.members" :key="index" style="display: flex">
<el-form-item label="姓名" :prop="'members.' + index + '.name'" :rules="[
{ required: true, message: '请输入姓名', trigger: 'blur' },
]">
<el-input placeholder="请输入真实姓名" v-model="item.name">
</el-input>
</el-form-item>
<el-form-item label="单位" :prop="'members.' + index + '.company'" :rules="[
{ required: true, message: '请输入单位', trigger: 'blur' },
]">
<el-input placeholder="请输入您的工作单位" v-model="item.company">
</el-input>
</el-form-item>
<el-form-item label="电话" :prop="'members.' + index + '.Iphone'" :rules="[
{ required: true, validator: validateIphone, trigger: 'blur' },
]">
<el-input placeholder="请输入联系电话" v-model="item.Iphone">
</el-input>
</el-form-item>
<el-form-item label="身份证" :prop="'members.' + index + '.idCard'" :rules="[
{ required: true, validator: validateidCard, trigger: 'blur' },
]">
<el-input placeholder="请输入身份证" v-model="item.idCard">
</el-input>
</el-form-item>
<div v-if="formData.members.length > 1" @click="remove(index)" class="icon">
<img src="../../assets/image/icon_delete@2x.png" />
</div>
</div>
</el-form>
<script>
data(){
return{
formData{
members: [{ name: "", company: "", Iphone: "", idCard: "" }],
}
}
}
methods:{
validateIphone(rule, value, callback) {
if (value === "") {
callback(new Error("请输入电话"));
} else {
const reg = /^(?:(?:\+|00)86)?1\d{10}$/;
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入正确格式"));
}
}
},
validateidCard(rule, value, callback) {
if (value === "") {
callback(new Error("请输入身份证号"));
} else {
const reg =
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/;
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入正确格式"));
}
}
},
add() {
this.formData.members.push({
name: "",
company: "",
Iphone: "",
idCard: "",
});
},
remove(index) {
if (this.formData.members.length > 1) {
this.formData.members.splice(index, 1);
} else {
this.formData.members[0] = {
name: "",
company: "",
Iphone: "",
idCard: "",
removable: false,
};
}
},
}
</script>