ElementUI中el-table根据后端接口传递过来的数字状态、显示不同文字、不同颜色

简要讲解:根据在表格列的scoped-slot中,使用:class来绑定对应的类名赋值颜色 和内容方法赋值  主要代码:<div :class="binClass(status)">{{ binConter(status) }}</div>  

样式展示:

代码展示 html:

以在CSS样式中使用多个类名来设置不同状态下的边框颜色跟不同状态的不同内容,然后在表格列的scoped-slot中根据不同状态的值来绑定对应的类名

<el-table-column label="状态" prop="status">
  <template slot-scope="{ row }">
     <div :class="binClass(row.status)">{{ binConter(row.status) }}</div>
  </template>
</el-table-column>

methods处理: binClass返回不同的状态内容     binConter返回不同的class名称

methods: {
    binConter(v){
      //状态(0:草稿,1:未评估,2:已评估,3-申诉失败;4-申诉成功;)
       switch (v) {
          case 0:
            return '草稿';
          case 1:
            return '未评估';
          case 2:
            return '已评估';
          case 3:
            return '申诉失败';
          case 4:
            return '申诉成功';
          default:
            return '';
        }   
    } 
     //颜色
    binClass(v){
      switch (v) {
          case 0:
            return 'tagblue1';
          case 1:
            return 'tagblue2';
          case 2:
            return 'tagblue3';
          case 3:
            return 'tagblue4';
          case 4:
            return 'tagblue5';
          default:
            return '';
        }     
     }
}

不同状态展示不同颜色:

<style>
tagblue1 {
  border-radius: 12px;
  background-color: #F0F3FF;
  border: 1px solid #3A65FF;
  color: #3A65FF;
}
.tagblue2 {
  border-radius: 12px;
  background: #E8F8F3;
  border: 1px solid #21BD88;
  color: #21BD88;
}
.tagblue3 {
  border-radius: 12px;
  background-color: #F0F3FF;
  border: 1px solid #3A65FF;
  color: #3A65FF;
}
.tagblue4 {
  border-radius: 12px;
  background: #E8F8F3;
  border: 1px solid #FAA755;
  color: #FAA755;
}

</style>

以上则是 在Element UI表格中实现不同状态下内容边框不同颜色不同的效果(主要还是要以实际需求更改)。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以通过监听`el-tabs`的`tab-click`事件,在点击不同的标签页时,根据标签页的`id`属性去请求后端接口获取对应的内容并渲染到`el-tab-pane`。 以下是一个简单的示例代码: ```html <template> <div> <el-tabs v-model="activeTab" @tab-click="handleTabClick"> <el-tab-pane label="标签页1" name="1" :key="1"> <p>{{ content1 }}</p> </el-tab-pane> <el-tab-pane label="标签页2" name="2" :key="2"> <p>{{ content2 }}</p> </el-tab-pane> <el-tab-pane label="标签页3" name="3" :key="3"> <p>{{ content3 }}</p> </el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeTab: '1', content1: '', content2: '', content3: '' } }, methods: { handleTabClick(tab) { this.fetchContent(tab.name) }, fetchContent(tabId) { // 根据tabId发送请求获取对应的内容 // 这里假设请求返回数据是一个字符串 const url = `/api/content/${tabId}` axios.get(url).then(res => { switch (tabId) { case '1': this.content1 = res.data break case '2': this.content2 = res.data break case '3': this.content3 = res.data break default: break } }) } } } </script> ``` 上述代码,`el-tabs`组件绑定了`activeTab`属性,表示当前选的标签页的`name`属性值。在`tab-click`事件触发时,调用`handleTabClick`方法,根据当前标签页的`name`属性值去请求对应的内容。请求返回后,根据当前标签页的`name`属性值,更新相应的组件的数据,从而实现在`el-tab-pane`显示不同的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值