用vue封装一个可以跨行跨列多级不规则的表格组件
时间: 2023-10-15 18:07:05 浏览: 166
封装Vue Element的table表格组件的示例详解
可以使用 Vue.js 和 CSS Grid 来实现一个可以跨行跨列多级不规则的表格组件。下面是一个简单的示例:
```vue
<template>
<div class="grid-table">
<div v-for="row in rows" :key="row.id" class="grid-row">
<div v-for="cell in row.cells" :key="cell.id" :style="cell.style" :class="cell.class">
{{ cell.content }}
</div>
</div>
</div>
</template>
<script>
export default {
props: {
rows: {
type: Array,
required: true
}
}
};
</script>
<style scoped>
.grid-table {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-auto-rows: 50px;
grid-gap: 1px;
}
.grid-row {
display: contents;
}
.grid-row > div {
display: flex;
align-items: center;
justify-content: center;
background-color: #f2f2f2;
border: 1px solid #ccc;
}
</style>
```
在这个示例中,我们使用了 CSS Grid 布局来实现表格的布局。通过 `grid-template-columns` 属性,我们设置了列的宽度。通过 `grid-auto-rows` 属性,我们设置了行的高度。每个单元格使用一个 `<div>` 元素来表示,并通过 `v-for` 指令遍历数据渲染出来。
你可以将数据以属性的形式传递给这个组件,其中 `rows` 是一个包含行和单元格数据的数组。每个单元格可以设置相应的样式和内容。
注意,这只是一个简单的示例,你可能需要根据实际需求进行适当的修改和扩展。
阅读全文