element ui,table的column使用for循环渲染

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"
              />
            ),
          },
        ],

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值