vue-将表格里的状态值转化为文字并给其添加相对应的颜色(使用ElemnetUI)----使用过滤器

vue

后端返回的数据的状态值是数值0,1,2,3,4,5;需要将其转化为相对应的文字和颜色,如图所示:

HTML: 

<el-table-column

  prop="caseStatus"

  label="状态">

  <template slot-scope="scope">

    <span :class="scope.row.caseStatus | caseStatusColorFilter">{{ scope.row.caseStatus | caseStatusFilter}}</span>

  </template>

</el-table-column>

 

JS:

  

const caseStatusMap = [

  {

    code: \'0\',

    name: \'收集中\',

    color: \'status-yellow\'

  },

  {

    code: \'1\',

    name: \'待标注\',

    color: \'status-default\'

  },

  {

    code: \'2\',

    name: \'待复审\',

    color: \'status-default\'

  },

  {

    code: \'3\',

    name: \'待审核\',

    color: \'status-default\'

  },

  {

    code: \'4\',

    name: \'被退回\',

    color: \'status-red\'

  },

  {

    code: \'5\',

    name: \'复查通过\',

    color: \'status-green\'

  }

]

 

// 过滤器

filters: {

  // 将数值转化为文字

  caseStatusFilter (val) {

    let value = null

    caseStatusMap.forEach(arg => {

      if (arg.code == val) {

        value = arg.name

      }

    })

    return value

  },

  // 颜色过滤

  caseStatusColorFilter (val) {

    let col = null

    caseStatusMap.forEach(arg => {

      if (arg.code == val) {

        col = arg.color

      }

    })

    return col

  }

}

  

CSS: 

  .status-red{

    color: red;

  }

  .status-yellow{

    color: orange;

  }

  .status-green{

    color: green;

  }

  .status-default{

    color: #000;

  }

以上是 vue-将表格里的状态值转化为文字并给其添加相对应的颜色(使用ElemnetUI)----使用过滤器 的全部内容, 来源链接: utcz.com/z/376263.html

回到顶部