vue封装信号强度

图标下载链接: https://pan.baidu.com/s/1828AidkCKU1KTkw1SvBwQg?pwd=4k7n

共五格信号

信号5为绿色,信号4为绿色,信号3为黄色,信号2为黄色,信号1为红色,信号0为灰色。

子组件

/components/SignalStrength/index.vue

复制代码
<!-- 信号强度 -->
<template>
    <div class="signal-strength">
        <img v-if="strength === 5" :src="url5" />
        <img v-else-if="strength === 4" :src="url4" />
        <img v-else-if="strength === 3" :src="url3" />
        <img v-else-if="strength === 2" :src="url2" />
        <img v-else-if="strength === 1" :src="url1" />
        <img v-else :src="url0" />
    </div>
</template>
  
<script lang="ts">
import signal0 from "/@/assets/signal-0.png"
import signal1 from "/@/assets/signal-1.png"
import signal2 from "/@/assets/signal-2.png"
import signal3 from "/@/assets/signal-3.png"
import signal4 from "/@/assets/signal-4.png"
import signal5 from "/@/assets/signal-5.png"
export default {
    name: 'SignalStrength',
    props: {
        // 信号强度,默认满格信号
        strength: {
            type: Number,
            default: 5,
            validator: function (value: number) {
                // 必须为不大于5的整数
                if (value > 5 || value < 0) {
                    return false
                } else {
                    return true
                }
            }
        }
    },
    data() {
        return {
            url0: signal0,
            url1: signal1,
            url2: signal2,
            url3: signal3,
            url4: signal4,
            url5: signal5
        }
    }
}
</script>
  
<style lang="scss" scoped>
.signal-strength {
    width: 16px;
    height: 16px;

    img {
        width: 100%;
        height: 100%;
        -webkit-user-drag: none;
        user-select: none;
    }
}
</style>

父组件

strength属性只有5个值,根据信号范围判断

复制代码
<SignalStrength :strength="1||2||3||4||5" />

效果图

相关推荐
信创DevOps先锋5 分钟前
本土化突围:Gitee如何重新定义企业级项目管理工具价值
前端·gitee·jquery
圣光SG17 分钟前
Java类与对象及面向对象基础核心详细笔记
java·前端·数据库
Jinuss26 分钟前
源码分析之React中的useImperativeHandle
开发语言·前端·javascript
ZC跨境爬虫38 分钟前
CSS核心知识点与定位实战全解析(结合Playwright爬虫案例)
前端·css·爬虫
一 乐39 分钟前
剧场管理系统|基于springboot + vue剧场管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·剧场管理系统
Jinuss40 分钟前
源码分析之React中的forwardRef解读
前端·javascript·react.js
mengsi5542 分钟前
Antigravity IDE 在浏览器上 verify 成功但本地 IDE 没反应 “开启Tun依然无济于事” —— 解决方案
前端·ide·chrome·antigravity
UNdE CKEY1 小时前
Spring Boot+Vue项目从零入手
vue.js·spring boot·后端
南风知我意9571 小时前
JavaScript 惰性函数深度解析:从原理到实践的极致性能优化
开发语言·javascript·性能优化
Можно1 小时前
pages.json 和 manifest.json 有什么作用?uni-app 核心配置文件详解
前端·小程序·uni-app