15、VUE Element table中遇到的问题

1,关于表格分页total的赋值

total一定要是数值类型,如果数据库返回的是字符串,使用Number(val)进行转换。

2,推荐某列赋值,通过scope.row进行赋值;而不是使用默认prop进行默认赋值,假设某列值需要转换。

【PS: 不要在取数返回后,通过循环的方式修改数据结构;浪费效率;如果修改用列表行的值(scope.row)对form表单赋值,数据格式下发的时候,你还需要再转回来。数据直接拿过来使用就行,如果不能直接使用,就通过以下的代码进行转换。】

使用场景: 选择图片大小,数据库存的值为width:200,height:150,列表显示格式为200*150

<el-table-column  prop="width" label="Size">
<template slot-scope='scope'>
<p>{{scope.row.width+"*"+scope.row.height}}</p>
</template>
</el-table-column>

扩展,也可以写成方法进行调用

<el-table-column  prop="width" label="Size">
<template slot-scope='scope'>
<p>{{getSize(scope.row.width, scope.row.height)}}</p>
</template>
</el-table-column>

getSize为methods里面的方法

getSize(width, height) {
    return width + "*" + height;
}

PS:据小白自己目前的理解,Element并未提供获取行的索引,scope.$index可以取到。小白也不是很理解Element这块的设计,scope.row都给了,为什么不能在里面加上行的索引。如若有看到,还请留言答复,多谢!

3,表格某列显示状态 status,赋值为number类型,赋值失败。

解决办法:

第一种方法: :active-value=1 :inactive-value=0 直接写上数字;使用v-bind时,也可以这么写:active-value="1" :inactive-value="0"。

第二种方法:采用迂回战略,先给开关附上变量,变量的值是number类型,就可以正常选中了;

<template>  
  <el-table :data="myData" style="width: 100%" min-height="250" border>  
    <el-table-column prop="state" label="状态">  
      <template slot-scope="scope" >  
        <el-switch v-model='scope.row.state' :active-value='onVal' :inactive-value='offVal' >  
        </el-switch>  
      </template>  
    </el-table-column>  
  </el-table>  
</template>  
  
<script>  
  export default {  
    data() {  
      return {  
        onVal: 1,  
        offVal: 0,  
        myData: [{ state: 1 }, { state: 0 }, { state: 1 }, { state: 1 }]  
      }  
    }  
  }  
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容