render-header 渲染表头
普通情况—— 一级
html
<el-table
border
class="table-wrap"
:data="list"
:header-cell-class-name="() => 'blue-header-row'"
:header-row-style="{ height: '40px' }"
highlight-current-row
:max-height="maxHeight"
:row-style="{ height: '40px' }"
:scrollbar-always-on="true"
show-summary
size="small"
:summary-method="getSummaries"
>
<el-table-column
v-for="item in columns"
:key="item.dataKey"
align="center"
:label="item.title"
:prop="item.dataKey"
show-overflow-tooltip
:width="item.width"
/>
</el-table>
js
columns: [
{
dataKey: 'index',
title: '序号',
width: 48,
cellRenderer: ({ rowIndex }) => h('span', rowIndex + 1),
},
{
dataKey: 'begin_0date',
title: '日期',
width: 80,
},
{
dataKey: 'this_renew',
title: '充值总金额',
width: 80,
},
{
dataKey: 'this_renew_1',
title: '现金交费',
width: 80,
},
{
dataKey: 'this_renew_2',
title: '线上充值',
width: 80,
},
{
dataKey: 'this_renew_3',
title: '因错退还',
width: 80,
},
{
dataKey: 'this_patch',
title: '补贴金额',
width: 80,
},
{
dataKey: 'this_cost',
title: '消费金额',
width: 80,
},
{
dataKey: 'retmoney',
title: '退款金额',
width: 80,
},
{
dataKey: 'pre_money',
title: '卡金额',
width: 80,
},
],
表头层级关系(二层)
html:
<el-table
v-loading="listLoading"
border
:data="list"
:header-cell-class-name="() => 'blue-header-row'"
:header-row-style="{ height: '40px' }"
:height="maxHeight"
highlight-current-row
:row-style="{ height: '40px' }"
:scrollbar-always-on="true"
show-summary
size="small"
:summary-method="getSummaries"
>
<el-table-column
v-for="item in columns"
:key="item.dataKey"
align="center"
:label="item.title"
:prop="item.dataKey"
:render-header="item.headerCellRenderer"
show-overflow-tooltip
:width="item.width"
>
<template v-if="item.hasChildren">
<el-table-column
v-for="_item in item.children"
:key="_item.dataKey"
align="center"
:label="_item.title"
:prop="_item.dataKey"
:render-header="_item.headerCellRenderer"
show-overflow-tooltip
:width="_item.width"
/>
</template>
</el-table-column>
</el-table>
js
columns: [
{
key: 'index',
dataKey: 'index',
title: '序号',
width: 48,
align: 'center',
},
{
key: 'typeparentcode',
dataKey: 'typeparentcode',
title: '一级分类部门',
width: 100,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'typecode',
dataKey: 'typecode',
title: '二级分类部门',
width: 100,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'begin_date',
dataKey: 'begin_date',
title: '开始日期',
width: 80,
align: 'center',
},
{
key: 'end_date',
dataKey: 'end_date',
title: '结束日期',
width: 80,
align: 'center',
},
{
key: 'pre_money',
dataKey: 'pre_money',
title: '期初金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
期初
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
// render: (h, param) => {
// return param.row.pre_money
// },
},
{
key: 'renew',
hasChildren: true,
title: '充值',
children: [
{
key: 'this_renew',
dataKey: 'this_renew',
title: '个人',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'this_renew_bt',
dataKey: 'this_renew_bt',
title: '补贴',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
],
},
{
key: 'sum',
hasChildren: true,
title: '消费',
children: [
{
key: 'food_sum',
dataKey: 'food_sum',
title: '饭堂',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'shop_sum',
dataKey: 'shop_sum',
title: '小卖部',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
],
},
{
key: 'retmoney_sum',
hasChildren: true,
title: '退款',
children: [
{
key: 'retmoney',
dataKey: 'retmoney',
title: '个人',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'retmoney_bt',
dataKey: 'retmoney_bt',
title: '补贴',
width: 70,
align: 'center',
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
],
},
{
key: 'this_remain',
dataKey: 'this_remain',
title: '期末金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
期末
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'one_count',
dataKey: 'one_count',
title: '早餐次数',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
早餐
<br />
次数
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'one_sum',
dataKey: 'one_sum',
title: '早餐金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
早餐
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'two_count',
dataKey: 'two_count',
title: '午餐次数',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
午餐
<br />
次数
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'two_sum',
dataKey: 'two_sum',
title: '午餐金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
午餐
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'three_count',
dataKey: 'three_count',
title: '晚餐次数',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
晚餐
<br />
次数
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'three_sum',
dataKey: 'three_sum',
title: '晚餐金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
晚餐
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'four_count',
dataKey: 'four_count',
title: '夜宵次数',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
夜宵
<br />
次数
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'four_sum',
dataKey: 'four_sum',
title: '夜宵金额',
width: 70,
align: 'center',
headerCellRenderer: () => (
<span>
夜宵
<br />
金额
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'cost_sum',
hasChildren: true,
title: '总消费(包含小卖部)',
children: [
{
key: 'this_cost',
dataKey: 'this_cost',
title: '个人',
width: 75,
align: 'center',
headerCellRenderer: () => <span>个人</span>,
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
{
key: 'this_cost_bt',
dataKey: 'this_cost_bt',
title: '补贴',
width: 75,
align: 'center',
headerCellRenderer: () => <span>补贴</span>,
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
],
},
{
key: 'depmens',
dataKey: 'depmens',
title: '部门人数',
width: 75,
align: 'center',
headerCellRenderer: () => (
<span>
部门
<br />
人数
</span>
),
cellRenderer: ({ cellData }) => (
<text-tooltip
class="wid100"
content={cellData}
ref-name="supplierName"
/>
),
},
],