前端根据不同的状态码使盒子展示不同的背景色、字体色、图标功能实现

一、前言/背景数据

后端返回的详情对象内部有status四个状态1:待提交,2:待审核,3:已审核 4:已撤销

二、场景

根据不同的状态判断,页面展示不同的背景色、字体色、图标

三、实现方案

js实现代码:

  data() {
    return {
      // 顶部动态展示数据
      headerData: {
        // 待提交
        1: {
          bgc: "#EEF7FF",
          color: "#51A6FF",
          icon: require("../../../../assets/image/icon_tijiao.png"),
        },
        // 待审核
        2: {
          bgc: "#FFF4E7",
          color: "#EF8F22",
          icon: require("../../../../assets/image/icon_shenhe.png"),
        },
        // 已审核
        3: {
          bgc: "#F0FBF5",
          color: "#3FD27B",
          icon: require("../../../../assets/image/check-circle.png"),
        },
        // 已撤销
        4: {
          bgc: "#F7F9FF",
          color: "#8A96A0",
          icon: require("../../../../assets/image/icon_chexiao.png"),
        },
      },
    };
  },

再data内部定义一个对象,对象内部分别写入四个状态码,每个状态码包含不同数据展示不同内容的属性;其中bgc代表背景色属性,color设置font-color字体色,icon代表图标路径;

dom实现代码:

 <el-row  v-if="detailInfo.status"   :style="`color:${headerData[detailInfo.status].color}`"   >
      <el-col  :span="21" :style="`background-color:${headerData[detailInfo.status].bgc}`" >
         <span>耳缺记录</span>
      </el-col>
      <el-col  :span="3"  :style="`background-color:${headerData[detailInfo.status].bgc}`"    >
         <span>{{ earStatus[detailInfo.status] }}</span>
         <img :src="headerData[detailInfo.status].icon" class="img" alt="" />
      </el-col>
    </el-row>

如果出现报错为题,在盒子最外层添加判断: v-if=“detailInfo.status”,解决在dom渲染过程中的报错问题;如果detailInfo.status内部有值,再走一下dom渲染等操作

场景二

根据不同的机型展示不同的背景图

html
<div class="login-page" :style="bacImage"></div>
js
data() {
    return {
      bacImageUrl: "", //动态背景图片  
    };
},
computed: {
    bacImage() {
       return {
          backgroundImage: "url(" + this.bacImageUrl + ")",
       };
    },
 },
 methods:{
    getModelsInfo(){
       //此处省略调取接口数据直接进行判断
       switch (res.data.robotType) {
          case "T1":
            this.bacImageUrl = require("../assets/images/home/T5.png");
            break;
          case "T2":
            this.bacImageUrl = require("../assets/images/home/T9-C.png");
            break;
          case "T3":
            this.bacImageUrl = require("../assets/images/home/T9-R.png");
            break;
        }
    }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值