使用element-ui中的el-form和el-table嵌套实现表格内容编辑并提交表格表单数据校验(可以对勾选到的表格内容必填校验+勾选框)
<template>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="活动名称">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-table :data="form.tableData" style="width: 100%;">
<el-table-column prop="date" label="日期" width="180"> </el-table-column>
<el-table-column prop="name" label="姓名" width="180"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button @click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-form-item>
<el-button type="primary" @click="submitForm('form')">提交</el-button>
<el-button @click="resetForm('form')">重置</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
tableData: [
{
date: '2016-05-02',
name: '王小虎',
},
{
date: '2016-05-04',
name: '张小刚',
},
],
},
};
},
methods: {
handleEdit(index, row) {
// 编辑逻辑
},
handleDelete(index, row) {
// 删除逻辑
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('提交成功!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
},
};
</script>
这个例子展示了如何在Vue.js中使用Element UI库的<el-form>
和<el-table>
组件来创建一个包含表单和嵌套表格的页面。用户可以编辑表格内容,提交整个表单,或者重置表单。提交表单时,会进行数据校验。
评论已关闭