#vue# 使用JS进行状态判断,并追加类名样式

news/2024/9/3 0:30:08 标签: vue, javascript, css, vue.js, elementui

#vue# 使用JS进行状态判断,并追加类名样式

需求:在很多情况下,我们需要做切换状态就会显示不同的样式

效果:例如像下面的图(按钮)一样,不同的状态下,方框里显示不同的背景颜色

 

 思路:(1)首先我们需要进行排版,排出一个按钮的样式,再写出3个背景颜色的样式

(2)通过接入数据接口,以及追加样式

(3)再写Js函数方法

<template>
     <button class="live-state" 
      :class="liveBackClass(item.live_status)" > 
     //item.live_status是数据接口数据来的
    //绑定一个函数方法,然后将拿到的状态码,进行传入
            {{ item.live_status | getStatusText }}
     </button>
</template>

<script>
import { liveList,recordList, recordShow } from '@/model/teacher/index';
import backplayItem from '@/components/backplay-item/index'
const eduModal = () => import('@/components/edu-modal/index')
import _ from '@/assets/js/utils'
export default {
    name: "index",
    components: {
        backplayItem,
        eduModal
    },
    data () {
       
    },
    methods:{
        liveBackClass(status) {  
            switch (status) { 
                case 1: // case就是后端数据里面,对于status状态的区分 
                    return "live-state-no-start"; // 这个就是传入状态以后,追加的样式
                case 2: 
                    return "live-state-ing";
                case 3:
                    return "live-state-end";
            }
        }
    },

    }
}
</script>
<style>
    .live-state { //先写出一个公共的样式,不要写背景颜色
    width: .56rem;
    height: .24rem;
    border-radius: 5px;
    line-height: .24rem;
    font-size: 14px;
    font-family: SourceHanSansSC-Regular, SourceHanSansSC;
    font-weight: 400;
    color: #FFFFFF;
    margin-top: 12px;
    margin-left: 20px;
 }

//下面三个是追加的样式

.live-state-no-start{
    background-color: #797979;
}
.live-state-ing{
    @extend .edu-active-bg-color;
}
.live-state-end{
    background-color: #979797;
}
</style>


http://www.niftyadmin.cn/n/615258.html

相关文章

#vue# v-for渲染出导航栏

需求&#xff1a;制作一个导航栏 效果&#xff1a; 点击前&#xff1a; 点击后&#xff1a; 后端接口 思路&#xff1a; 在实际的开发里&#xff0c;一般不会写死导航栏的内容&#xff0c;然后为了更加动态以及高效修改导航栏的情况下&#xff0c;我们最好是用v-for进行渲染…

#vue# 纯手写“页面数据为空时,显示空状态图片”

需求&#xff1a;在我们的页面&#xff0c;没有显示任何数据时&#xff0c;显示图片以及提示语 效果&#xff1a; 后端接口数据 思路&#xff1a; &#xff08;1&#xff09;只需要在页面里面加入一个div&#xff0c;当页面里面的数据为0时&#xff0c;就用v-show展示出来&am…

#vue# 实现计算器功能

需求&#xff1a;用vue实现一个简易的计算器 效果图&#xff1a; 思路&#xff1a; &#xff08;1&#xff09;首先将这个简易的计算器排版出来&#xff0c;主要是用到input、button、 select option&#xff08;下拉菜单&#xff09; 这些标签&#xff0c;再进行写相应的c…

#vue# js正则表达式——实现手机号校验效果

需求&#xff1a;输入错误的手机号&#xff0c;会有提示语&#xff0c;正确的手机号码会有正确的图标 效果&#xff1a; 思路&#xff1a; &#xff08;1&#xff09;排版&#xff08;不细讲&#xff09;&#xff0c;使用input 、button、span等标签&#xff0c;排版里面一个…

#vue# js实现正则表达式验证邮箱

需求&#xff1a;个人中心注册&#xff0c;输入邮箱&#xff0c;若有误&#xff0c;显示错误信息 效果&#xff1a; 思路&#xff1a; 除了邮箱的正则表达式为 let reg /^([a-zA-Z]|[0-9])(\w|\-)[a-zA-Z0-9]\.([a-zA-Z]{2,4})$/;if(!reg.test(this.变量名)) {} 思路与#vue…

#vue# mousedown、mouseup事件,JS实现密码框小眼睛显示与隐藏

需求&#xff1a; 密码框右侧小眼睛&#xff0c; 鼠标按下鼠标按键&#xff08;左、右键均可&#xff09;就显示出密码&#xff0c; 鼠标松开鼠标按键&#xff08;左、右键均可&#xff09;密码就隐藏 思路&#xff1a; &#xff08;1&#xff09;首先就是排版了&#xff08…

#前端# 万字总结!前端项目化超详细方法及思路!

#前端# 万字总结&#xff01;前端整个项目超详细方法及思路&#xff01; 文章目录#前端# 万字总结&#xff01;前端整个项目超详细方法及思路&#xff01;第一部分&#xff1a;web/pc端一、项目开始前的准备工作1、vue-cli搭建开发环境2、新建vue项目文件3、vue项目目录解析&am…

#vue# 接口封装!超详细超简单的请求接口方法

在前端开发中&#xff0c;请求接口&#xff0c;是必不可少的一个环节&#xff0c; 请求接口&#xff0c;通俗来说&#xff0c;就是我们通过请求服务器的数据&#xff0c;来达到响应式地渲染数据 那如何请求接口&#xff0c;才会更高效且简单呢&#xff1f; 以下方法可以参考借…