加一个全部编辑按钮不点编辑显示渲染数值,点击编辑时显示输入框可修改<template> <a-table :columns="columns" :data-source="dataSource" row-key="key" :editable="true"> <template slot="heJin_AI" slot-scope="text, record, index"> <a-input v-if="record.heJin_AI" v-model="record.heJin_AI.heJin_Mn1" /> <a-input v-if="record.heJin_AI" v-model="record.heJin_AI.heJin_Mn2" /> <a-input v-if="record.heJin_AI" v-model="record.heJin_AI.heJin_Mn3" /> </template> <template slot="heJin_CCC" slot-scope="text, record, index"> <a-input v-if="record.heJin_CCC" v-model="record.heJin_CCC.heJin_CCC1" /> <a-input v-if="record.heJin_CCC" v-model="record.heJin_CCC.heJin_CCC2" /> <a-input v-if="record.heJin_CCC" v-model="record.heJin_CCC.heJin_CCC3" /> </template> <template slot="operation" slot-scope="text, record, index"> <template v-for="item in columns"> <a-icon type="minus-square" v-if="item.editable" @click="addRow(item.key)" /> <span v-else></span> </template> </template> </a-table> </template> <script> export default { data() { return { dataSource: [ { key: '1', id: 1, heJin_AI: { heJin_Mn1: '数据1', heJin_Mn2: '数据2', heJin_Mn3: '数据3', }, }, { key: '2', id: 2, heJin_AI: { heJin_Mn1: '数据3', heJin_Mn2: '数据4', heJin_Mn3: '数据5', }, }, { key: '3', id: 3, heJin_CCC: { heJin_CCC1: '数据33333', heJin_CCC2: '数据44444', heJin_CCC3: '数据555555', }, }, ], columns: [ { title: '操作', dataIndex: 'operation', scopedSlots: { customRender: 'operation' }, align: 'center', }, { title: 'ID', dataIndex: 'id', key: 'id', }, { title: 'heJin_AI', dataIndex: 'heJin_AI', key: 'heJin_AI', scopedSlots: { customRender: 'heJin_AI' }, editable: true, }, { title: 'heJin_CCC', dataIndex: 'heJin_CCC', key: 'heJin_CCC', scopedSlots: { customRender: 'heJin_CCC' }, editable: false, }, ], } }, methods: { addRow(key) { console.log(key) const maxKey = Math.max(...this.dataSource.map((item) => parseInt(item.key))) const newRow = { key: (maxKey + 1).toString(), id: maxKey + 1, heJin_AI: { heJin_Mn1: '', heJin_Mn2: '', heJin_Mn3: '', }, heJin_CCC: { heJin_CCC1: '', heJin_CCC2: '', heJin_CCC3: '', }, } this.dataSource = [...this.dataSource, newRow] console.log(this.dataSource) }, }, } </script> <style> </style>
时间: 2024-03-19 19:43:20 浏览: 66
react-table-hoc-draggable-columns:用于可拖动列的ReactTable HOC
感谢提供代码。根据您的代码,我了解到您正在使用Ant Design Vue中的a-table组件来实现表格的渲染和编辑功能。在该组件中,您可以使用`editable`属性来控制表格中哪些列可以进行编辑。同时,您还可以在表格中添加一个按钮或其他交互元素,通过点击来触发编辑模式。
如果您想要实现一个“全部编辑”按钮,可以考虑在该按钮的点击事件中,动态修改`editable`属性的值,将所有列都设置为可编辑状态。具体实现代码如下:
```
<template>
<div>
<a-button type="primary" @click="toggleEditable">全部编辑</a-button>
<a-table :columns="columns" :data-source="dataSource" row-key="key" :editable="editable">
<!-- 表格内容 -->
</a-table>
</div>
</template>
<script>
export default {
data() {
return {
dataSource: [
// 表格数据
],
columns: [
// 表格列定义
],
editable: false, // 初始时表格不可编辑
}
},
methods: {
toggleEditable() {
// 切换表格的编辑状态
this.editable = !this.editable;
},
},
}
</script>
```
在上述代码中,我们添加了一个`toggleEditable`方法,用于切换表格的编辑状态。该方法通过修改`editable`属性的值来控制表格的可编辑性。在实际应用中,您可以根据具体的需求来调整代码逻辑,实现更加灵活和易用的编辑功能。
阅读全文