关于vue绑定class属性

这里是想制作一个根据不同的事情紧急程度改变其前面圆环的颜色来达到表现不同的紧急程度
数据库如下:
在这里插入图片描述
Urgengy表示紧急程度,分为三类:紧急,轻松,和较紧急

<van-icon name="circle" @click="deltask(value.roomid)" :class="{
            A:value.Urgency == 3,
            B:value.Urgency == 2,
            c:value.Urgency == 1
          }"/>

通过绑定不同类型(其内部是一个数组,当循环进行时,会根据不同的value值来进行判断其使用那种类名,猜想其内部应该是封装了一个v-if函数,当传入数组时就激活进行判断)

.A{
    color: red;
}

.B{
    color: rgb(0, 102, 255);
}

.c{
    color: rgb(0, 255, 0);
}

实现效果如下
在这里插入图片描述
维修员完整代码

<template>
  <div class="body">

    <div class="line">

    </div>
    <div class="top">
      <div class="left" @click="back()">
        <div class="lefticon">{{lefticon}}</div>
        <div class="lefttxt">{{lefttxt}}</div>
      </div>
      <div class="title">{{title}}</div>
    </div>

    <div class="reject" v-show="isstart">
      <div class="repid">
        <div>工号:</div>
        <input type="text" v-model="repid">
      </div>
      <div class="buildid">
        <div>楼层号:</div>
        <input type="text" v-model="dormid">
      </div>
        <input type="button" value="进入" class="start" @click="start()">
      </div>

    <div class="centent" v-show="!isstart" v-for="value,index in task" :key='value._id'>
      <div class="tasktitle" >
        <div class="tasktitleleft">{{index+1}}</div>
        <div class="tasktitleicon">
          <van-icon name="circle" @click="deltask(value.roomid)" :class="{
            A:value.Urgency == 3,
            B:value.Urgency == 2,
            c:value.Urgency == 1
          }"/>
        </div>
        <div class="tasktitleright">
          <div @click="show()">{{value.tasks.title}}</div>
          <div class="taskdetails" v-show="isshow">
            <div class="roomid">
              <div>宿舍号:</div>
              <div>{{value.roomid}}</div>
            </div>
            <div class="roomtask">
              <div>{{value.tasks.task}}</div>
            </div>
          </div>
        </div>
      </div>
      
    </div>
  </div>
</template>

<script>

export default {
    name:'repairman',
    data() {
      return {
        title:'修理任务',
        lefticon:'<',
        lefttxt:'返回',
        isstart:true,
        dormid:'1',
        repid:"478",
        task:[],
        isshow:false,
        urgent:'',
      }
    },
    methods: {
      back(){
        this.$router.push('/indexlogin')
      },
      start(){
        if((this.repid == '')&&(this.dormid == '')){
          alert('请输入工号和楼号')
        }else{
          this.$axios({
          method:'get',
          url:'/getrepdata',
          params:{
            dormid:this.dormid,
            repid:this.repid
          }
          }).then(res=>{
            this.task = res.data
            this.isstart = false
            // console.log(this.task)
          })
        }
      },
      show(){
        this.isshow = !this.isshow

      },
      deltask(id){
        this.$axios({
          method:'post',
          url:'/deltask',
          data:{
            roomid:id
          }
        }).then((res)=>{
          this.$router.go(0)
        })
      }
    },
}

</script>

<style>
  @import url('../../assets/css/repairman.css');
</style>
*{
    margin: 0;
    padding: 0;
}


.topbuttoncontent{
    overflow: hidden;
    text-align: center;
}


.topbuttoncontent .firstbutton{
    float: left;
    background-color:rgb(255, 157, 76);
    width: 2.4rem;
    height: .8rem;
    border: none;
    font-family: '楷体';
    font-size: .33rem;
    color: rgb(4, 128, 128);
    margin-top: 0 auto;
    margin-left: .1rem;
    margin-bottom: .1rem;
    border-radius: .08rem;
    margin-top: .04rem;
}

.topbuttoncontent .firstbutton:hover{
    box-shadow: 3px 3px 10px rgba(48, 48, 48, 0.555);
}

.falseshow{
    /* 检测组件大小 */
    
    width: 8rem;
    height: 6rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);

}

.falseshow .van-field__control{
    font-size: .33rem;
}

.falseshow .van-button{
    font-size: .33rem;
    height: 1rem;
}

.van-tab {
    font-size: .23rem;
    
}


.chargebody .imgA{
    /* 检查样式是否执行 */
    /* background-color: red;
    width: 8px;
    height: 8px; */
}

.chargebody .imgB{
    /* background-color: blue;
    width: 8px;
    height: 8px; */
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值