vue element ui复杂表头,复杂表格

40 篇文章 0 订阅
4 篇文章 0 订阅

效果图:

<template>

  <div>

    <el-table :data="tableData" :span-method="arraySpanMethod" style="width: 100%; margin-top: 20px"

      :header-cell-style="headerStyle">

      <el-table-column prop="id" label="123" ref="pj" colspan="2" align="center">

      </el-table-column>

      <el-table-column>

        <el-table-column prop="f1"> </el-table-column>

        <el-table-column prop="f2"> </el-table-column>

      </el-table-column>

      <el-table-column prop="rrr" label="444" align="center"> </el-table-column>

      <el-table-column prop="amount1" label="555" align="center">

        <el-table-column prop="amount1" label="666" align="center">

          <el-table-column prop="amount1" label="77" align="center">

          </el-table-column>

          <el-table-column prop="amount1" label="88" align="center">

          </el-table-column>

        </el-table-column>

        <el-table-column prop="amount1" label="99" align="center">

          <el-table-column prop="amount1" label="1111" align="center">

          </el-table-column>

          <el-table-column prop="amount1" label="222" align="center">

          </el-table-column>

        </el-table-column>

      </el-table-column>

      <el-table-column prop="amount3" label="cccc" align="center">

      </el-table-column>

    </el-table>

  </div>

</template>

<script>

  export default {

    name: "HelloWorld",

    data() {

      return {

        tableData: [

          {

            f1: "xxxxxx",

            id: "qqqqq",

            name: "王小虎",

            amount1: "234",

            amount2: "3.2",

            amount3: 10,

          },

          {

            f1: "sssss",

            id: "",

            name: "王小虎",

            amount1: "165",

            amount2: "4.43",

            amount3: 12,

          },

          {

            f1: "dddddddddd",

            id: "",

            name: "王小虎",

            amount1: "324",

            amount2: "1.9",

            amount3: 9,

          },

          {

            f1: "rrrrrrr",

            f2: "ddddd",

            id: "",

            name: "王小虎",

            amount1: "621",

            amount2: "2.2",

            amount3: 17,

          },

          {

            id: "",

            f2: "fffffffffff",

            name: "cccccccccccc",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f2: "22222222",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "rrrrrrr",

            name: "mmmmmm",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            f1: "xxxxxxx",

            id: "ggggggg",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f1: "nnnnnnnn",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f1: "vvvvvvvvvv",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f1: "ggg",

            f2: "bbbb",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f2: "hhhhhh",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

          {

            id: "",

            f2: "tttttttt",

            name: "王小虎",

            amount1: "539",

            amount2: "4.1",

            amount3: 15,

          },

        ],

      };

    },

    methods: {

      headerStyle({ column, rowIndex, columnIndex }) {

        if (rowIndex === 1 && columnIndex === 0) {

          return { display: "none" };

        }

        if (rowIndex === 1 && columnIndex === 1) {

          return { display: "none" };

        }

        if (rowIndex === 0 && columnIndex === 1) {

          return { display: "none" };

        }

        if (rowIndex === 0 && columnIndex === 0) {

          this.$nextTick(() => {

            document

              .getElementsByClassName(column.id)[0]

              .setAttribute("colSpan", 3);

          });

        }

      },

      arraySpanMethod({ rowIndex, columnIndex }) {

        if (columnIndex === 0) {

          if (rowIndex === 0) {

            return [6, 1];

          } 

          else if (rowIndex === 6) {

            return [1, 3];

          }

           else if (rowIndex === 7) {

            return [6, 1];

          }

           else {

            return [0, 0];

          }

        }

        if (columnIndex === 1) {

          if (rowIndex === 0 || rowIndex === 1 || rowIndex === 2) {

            return [1, 2];

          } else if (rowIndex === 3) {

            return [3, 1];

          } else if (rowIndex === 7 || rowIndex === 8 || rowIndex === 9) {

            return [1, 2];

          } else if (rowIndex === 10) {

            return [3, 1];

          } else {

            return [0, 0];

          }

        } else if (columnIndex === 2) {

          if (

            rowIndex === 0 ||

            rowIndex === 1 ||

            rowIndex === 2 ||

            rowIndex === 6 ||

            rowIndex === 7 ||

            rowIndex === 8 ||

            rowIndex === 9

          ) {

            return [0, 0];

          } else {

            return [1, 1];

          }

        }

      },

    },

  };

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qaakd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值