element -ui之<el-table>

  在vue的后台项目中,我们经常会用到element-ui这个ui框架,里边很多的组件都是很好用的,特别是表格  el-table  组件,除了常用到的 el-table-column中的 prop、width、label、以及align之外我们还经常会用到slot进行自定义显示的内容;

  例如: <el-table-column>

       <template slot-scope='scope'>

        {{scope.row.type?scope.row.type: '---'}}

       </temloate>

     </el-table-column>  

  在使用slot-scope的时候需要注意,如果表格有经过 v-if 进行切换的话,这样对slot-scope的数据渲染会有一定的影响,致使不能加载,所以最好使用  v-show 来进行切换

 

  如果在表格宽度比较宽的情况下,会遇到某一个单元格的宽度比较小,而不成单行容下内容的情况,这时候我们若想让其单行隐藏成  ... 的形式,那么我们可以给这一列单独加上                          :show-overflow-tooltip = 'true',当我们把鼠标放在上边的时候就会有类似title的属性作用,弹出整个的单元格内容;

 

  此外,有时候我们在使用  <el-table>的时候,若要设置表头的样式,我们可以使用  :header-cell-style='{  }',来进行设定;

 

  在使用的过程中,遇到过这样的问题,一个页面同时使用两个table的时候,会有时候某个表格的最下边会多出来一行边框,以及某一行出现的这样的情况,这是组件自己加了  一个:before元素,设定了宽度但是内容content = ''的原因造成了,出现这样的问题,一般就要手动了找到是哪个元素默认添加的,然后在 scss中重新设定一下,并将其高度设置为0即可

 

 

  el-table中存在合并行和合并列的情况,假如按照官网的方式,将第一列的前五个合并为一个单元格,并将第一列的第六行第七行荷合并为一个单元格,那么我们可以这样进行处理:

    method( row,  column,  rowIndex,   columnIndex){

      if( columnIndex ===  0){

        if( rowIndex ===0){

          return{  rowspan: 5, colspan: 0 }

        } else if( rowIndex === 5 ){

          return{  rowspan: 2, colspan: 0 }

        } else {

          return{  rowspan: 0, colspan: 0 }

        }

      } 

    }  

   然而这样写,页面总是会出出现一些意想不到的效果;

   method(  row,  column,  rowIndex,   columnIndex){

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

       return{  rowspan: 5, colspan: 0 }

     }

     

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

       return{  rowspan: 2, colspan: 0 }

     }

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

       return{  rowspan: 0, colspan: 0 }

     }

   }

    这样的效果也是可以起到效果的,而且并不会出现意料之外的惊喜

posted @ 2018-12-07 09:37  mumengchun  阅读(3603)  评论(0编辑  收藏  举报