写一个elementui 数据列表,可以在列表中修改数据内容
时间: 2024-05-08 21:20:18 浏览: 49
好的,以下是一个使用ElementUI实现可编辑数据列表的示例代码:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<el-table-column label="姓名" prop="name"></el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table-column label="性别" prop="gender"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" @click="handleEdit(scope.$index)">编辑</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog :visible.sync="dialogVisible" title="编辑数据">
<el-form :model="editData">
<el-form-item label="姓名" prop="name">
<el-input v-model="editData.name"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model="editData.age"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="editData.gender">
<el-radio label="男"></el-radio>
<el-radio label="女"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmEdit">确定</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: "张三", age: 18, gender: "男" },
{ name: "李四", age: 25, gender: "女" },
{ name: "王五", age: 30, gender: "男" }
],
dialogVisible: false,
editData: {}
};
},
methods: {
handleEdit(index) {
this.editData = Object.assign({}, this.tableData[index]);
this.dialogVisible = true;
},
confirmEdit() {
// 验证数据
this.$refs['editForm'].validate((valid) => {
if (valid) {
// 更新列表数据
Object.assign(this.tableData[index], this.editData);
this.dialogVisible = false;
} else {
console.log('error submit!!');
return false;
}
});
}
}
};
</script>
```
在上面的示例中,我们使用`<el-table>`标签来显示数据列表,列表包含了姓名、年龄、性别和操作四列。在操作列中,我们使用了`<el-button>`按钮来实现编辑数据的功能。
当用户点击编辑按钮时,我们会弹出一个对话框,其中包含了一个表单`<el-form>`,用于编辑数据。我们使用了`v-model`指令来将表单输入的值与`editData`对象中对应的属性绑定起来。当用户点击确定按钮时,我们会先验证表单数据的有效性,如果通过了验证,就会将修改后的数据同步到列表中,然后关闭对话框。
需要注意的是,以上代码中的验证数据部分使用了ElementUI提供的表单验证机制,需要在表单元素上添加`prop`属性和相应的验证规则。
阅读全文