vueelement中的table动态渲染实现(动态表头)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vueelement中的table动态渲染实现(动态表头)
通过在vue中使⽤element的table表格,实现数据动态渲染,并且动态渲染表头。
通过在⽗组件中引⼊⼦组件表格,然后向⼦组件传递表格数据和表头数据。
⼦组件table中template模板
<el-table
:data="this.tableData"
height="400px"
max-height="400px"
size="small"
row-class-name="row"
cell-class-name="column"
:row-style="setRowStyle"
:cell-style="setColumnStyle"
:highlight-current-row="true"
@cell-click="cellClick"
fit
>
<el-table-column
v-for="(item, index) in tableLabel"
:key="index"
:prop="item.prop"
:width="item.width"
:label="bel">
</el-table-column>
</el-table>
接收⽗组件传过来的数据
props: {
tableData: { // ⽗组件传递过来的表格数据
type: Array,
default: []
},
tableLabel: { // ⽗组件传递过来的表头数据
type: Array,
default: () => {
return []
}
}
}
⽗组件
<file-table
:tableData="tableData"
:tableLabel="tableLabel"
>
</file-table>
data() {
return {
// ⼦组件的表格数据
tableData: [
{id: 1, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 2, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 3, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 4, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 5, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 6, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 7, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 8, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 9, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 10, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 11, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 12, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05}
],
// ⼦组件的表头数据
tableLabel: [
{label: '', width: '40', prop: 'id'},
{label: '⽇期', width: '', prop: 'date'},
{label: '销售量', width: '', prop: 'sales'},
{label: '销售额', width: '', prop: 'sale'},
{label: '成本', width: '', prop: 'const'},
{label: '利润', width: '', prop: 'profit'}
]
}
}
问题:这种⽅式只能在⼀个组件中动态渲染,但是当我们需要操作每⼀列数据的时候,没法操作,因为element table再带的⽅法是每个单元格点击事件,⽽不符合我们需求,如何能实现表格动态渲染,并且每个组件都能使⽤,还能够实现操作的可控的列,下节分享。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。