结合element完成分列分级树形折叠分级表单

结合element完成分列分级树形折叠分级表单

分为一级部门、二级部门、三级部门
合并如图展示所示:
在这里插入图片描述

<template>
  <div id="app">
    <el-table
      :data="tableData"
      :span-method="spanTable"
      border
      :row-class-name="tableRowClassName"
      fit
      header-align="center"
      :row-style="{padding:'0px'}"
      :cell-style="{padding:'0px'}"
    >
      <template v-for="(column,key) in columns">
        <el-table-column
          v-if="column.span==true"
          :key="key"
          :prop="column.prop"
          align="center"
          :label="column.label"
        >
          <template slot-scope="scope">
            <div v-if="scope.row[column.prop] && scope.row[column.prop]!=summaryFlag && scope.row[column.prop]!=otherColumnValue ">
              <el-button
                type="text"
                size="mini"
                @click="toggleRowData(spanColumn[key],scope.row)"
              ><i
                v-if="getRowSpan(key,scope.row).oriSpan>1"
                :class="toggleStatus(spanColumn[key],scope.row[column.prop])?'el-icon-circle-plus': 'el-icon-remove'"
              ></i>{
   {
   
                scope.row[column.prop]
              }}
              </el-button>
            </div>
            <div v-else>
              {
   {
    scope.row[column.prop] }}
            </div>
          </template>
        </el-table-column>
        <el-table-column
          v-else
          :key="key"
          :prop="column.prop"
          align="center"
          :label="column.label"
        >
        </el-table-column>
      </template>
    </el-table>
  </div>
</template>
<script>
export default {
   
  name: 'App',
  props: {
   
    salaryList: {
   
      type: Array,
      default() {
   
        return []
      }
    }
  },
  data() {
   
    return {
   
      tableData: [], // 表格数据
      otherColumnValue: '-',
      columns: [
        {
   
          label: '一级单元(事业部)',
          prop: 'first',
          span: true
        },
        {
   
          label: '二级单元(部门)',
          prop: 'second',
          span: true
        },
        {
   
          label: '三级单元',
          prop: 'third',
          span: true
        },
        {
   
          label: '人月总数',
          prop: 'personelMonthTotal',
          summary: true
        },
        {
   
          label: '人月数',
          prop: 'personelMonthCount',
          summary: true
        }
      ],
      spanColumn: [], // 展开的行
      rowSpanMaps: null,
      existCache: {
   },
      toggleMap: null,
      loadData: [ // 数据格式
        {
   
          first: '第一事业部',
          secend: '第一支撑室',
          thrid: 'it运维部',
          identificationF: 1,
          identificationS: 1,
          identificationT: 1,
          assessType: '1'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值