el-table循环生成列,如何给第一列,加上fixed
时间: 2024-10-15 15:08:08 浏览: 27
在Vue的Element UI库中,`el-table`是一个用于显示表格的数据组件。如果你想在循环生成列的情况下给第一列设置固定的宽度(`fixed`),可以这样做:
首先,在数据结构中为每个表头添加一个布尔值属性,比如`isFirstColumn`,然后在模板渲染中判断这个属性。
```html
<template>
<el-table :data="tableData">
<el-table-column v-for="(column, index) in columns" :key="index" :prop="column.prop" :label="column.label">
<template #default="{ row }">
{{ row[column.prop] }}
</template>
<!-- 当前列是第一列时,设置 fixed 属性 -->
<template slot-scope="scope" v-if="index === 0 && column.isFirstColumn">
<el-table-column type="fixed" :width="column.fixedWidth">...</el-table-column>
</template>
<template v-else>...</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: ...,
columns: [
{ prop: 'firstColumn', label: '固定列标题', isFirstColumn: true, fixedWidth: '200px' }, // 第一列配置
{ prop: 'otherColumns', ... }, // 其他列...
],
};
},
};
</script>
```
在这里,我们在循环遍历`columns`数组的时候,检查当前列是否是第一列(`index === 0`)且设置了`isFirstColumn`为`true`,如果是,则嵌套一个`el-table-column`并设置其`type`为`fixed`,同时提供固定的宽度`fixedWidth`。
阅读全文