el-table表格每一行前三列固定为一列,后几列要可以动态新增或删除行,代码要怎么实现
时间: 2024-04-08 15:30:52 浏览: 56
你可以使用 Element UI 中的 `el-table` 组件来实现固定前三列的需求,并结合动态新增或删除行的功能。以下是一个示例代码:
```html
<template>
<el-table :data="tableData" style="width: 100%">
<el-table-column fixed="left" label="列1" width="100">
<template slot-scope="scope">
<span>{{ scope.row.column1 }}</span>
</template>
</el-table-column>
<el-table-column fixed="left" label="列2" width="100">
<template slot-scope="scope">
<span>{{ scope.row.column2 }}</span>
</template>
</el-table-column>
<el-table-column fixed="left" label="列3" width="100">
<template slot-scope="scope">
<span>{{ scope.row.column3 }}</span>
</template>
</el-table-column>
<!-- 动态新增或删除的列 -->
<el-table-column v-for="(column, index) in dynamicColumns" :key="index" :label="column.label">
<template slot-scope="scope">
<span>{{ scope.row[column.prop] }}</span>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ column1: '数据1', column2: '数据2', column3: '数据3', dynamicColumn1: '动态列1', dynamicColumn2: '动态列2' },
{ column1: '数据4', column2: '数据5', column3: '数据6', dynamicColumn1: '动态列3', dynamicColumn2: '动态列4' },
// 更多数据行...
],
dynamicColumns: [
{ label: '动态列1', prop: 'dynamicColumn1' },
{ label: '动态列2', prop: 'dynamicColumn2' },
// 更多动态列...
]
};
}
};
</script>
```
在上述代码中,我们使用了 `el-table-column` 组件来定义表格的列。前三列使用 `fixed="left"` 来固定在左侧,后续的列根据 `dynamicColumns` 数组的数据来动态渲染。你可以根据实际需求修改表格的数据和动态列的配置。
希望这个示例能够帮助到你实现所需的功能!
阅读全文