动态表格定制化table element

项目背景:vue+elementUI
image
table每行数据 上有一行 当前数据解读 有点类似el-table里面的展开行 但是还是有区别的

//数据结构  数据结构可能根据本人的需求调整 
 tableData:[{
		 date: '2016-05-02',
		 name: '王小虎',
		 address: '上海市普陀区金沙江路 1518 弄',
		 addressss: '上海市普陀区金沙江路 1518 弄',
	 }, {
		 date: '2016-05-04',
		 name: '王小虎',
		 address: '上海市普陀区金沙江路 1517 弄',
		 addressss: '上海市普陀区金沙江路 1518 弄',
	 }, {
		 date: '2016-05-01',
		 name: '王小虎',
		 address: '上海市普陀区金沙江路 1519 弄',
		 addressss: '上海市普陀区金沙江路 1518 弄',
	 }, {
		 date: '2016-05-03',
		 name: '王小虎',
		 address: '上海市普陀区金沙江路 1516 弄',
		 addressss: '上海市普陀区金沙江路 1518 弄',
	 }]

实现需求的方式往往不只有一个,有兴趣的小伙伴可以试试多种方式实现,欢迎来骚扰小编

小编实现的方式是 使用原生的th标签 借用element table的标签样式 来实现的

<table cellspacing="0" cellpadding="0" border="0" class="el-table__header" style="width: 1076px;font-size:12px">
              <thead class="has-gutter">
                <tr class="">
                  <th colspan="1" rowspan="1" class="el-table_2_column_5 is-leaf"><div class="cell">日期</div></th>
                  <th colspan="1" rowspan="1" class="el-table_2_column_6 is-leaf"><div class="cell">姓名</div></th>
                  <th colspan="1" rowspan="1" class="el-table_2_column_7 is-leaf"><div class="cell">姓名</div></th>
                  <th colspan="1" rowspan="1" class="el-table_2_column_8 is-leaf"><div class="cell">操作</div></th>
                  <th class="gutter" style="width: 0px; display: none;"></th>
                  </tr>
              </thead>
              <tbody>
                <template v-for="(i,index) in tableData" >
                  <tr class="el-table__row" :key="index" style="height:35px;text-align:left">
                    <td rowspan="1" colspan="5" class="el-table_3_column_9  "><div class="cell">
                        <div class="spanitem" style="display: flex;">
                          <div style="width: 25%;">2016-05-02</div>
                          <div style="width: 25%;">王小虎</div>
                          <div style="width: 25%;">上海市普陀区金沙江路 1518 弄</div>
                        </div>
                      </div>
                    </td>
                  </tr>
                  <tr class="el-table__row" :key="index+i.date" style="height:70px;text-align:center">
                    <td rowspan="1" colspan="1" class="el-table_4_column_13  "><div class="cell"><div ><i  class="el-icon-time"></i><span style="margin-left: 10px;">2016-05-04</span></div></div></td>
                    <td rowspan="1" colspan="1" class="el-table_4_column_14  "><div class="cell"><span class="el-tag el-tag--medium el-tag--light">王小虎</span></div></td>
                    <td rowspan="1" colspan="1" class="el-table_4_column_15  "><div class="cell"><span class="el-tag el-tag--medium el-tag--light">上海市普陀区金沙江路 1518 弄</span></div></td>
                    <td rowspan="1" colspan="1" class="el-table_4_column_16  "><div class="cell"><button type="button" class="el-button el-button--default el-button--mini"><span>编辑</span></button></div>
                    </td>
                  </tr>
                </template>
              </tbody>
            </table>
/*用来覆盖 element的自带样式*/
/deep/ .el-table__row:nth-child(odd){
  padding: 0;
  background-color: #f5f7fa;
}
/deep/ .el-table__row:nth-child(odd) td{
  padding: 0;
}
/deep/ .el-table__row:nth-child(even)::hover{
  background-color: #fff;
}
posted @ 2021-07-13 16:46  xiao旭  阅读(325)  评论(0编辑  收藏  举报