vue可视化大屏数据对比自适配展示卡片小组件

个人近期偏爱半透色的卡片底色,能更好的适用于各种风格的背景图或者背景色,主要是我司UI也爱设计透明度不高的卡片。

//使用实例 dom
<xthink-data :x-list="List1[0]" ref="infoList1Ref1"></xthink-data>


//data
List1:[{
        title_image_index: 0,
        bottom_line_index: 0,
        x_title:'标题一',
        numList: [10, 20],
        xinfo_list: ['调整前', '调整后'],
      }],
<template>
    <div class="x_box_cav">
        <div class="x_title">
            <img class="icon" :src="xImage" alt="">
            <el-tooltip class="item" effect="dark" :content= 'xList.x_title' placement="top-start">
                <a>{{xList.x_title}}</a>
            </el-tooltip>
        </div>
        <div class="x_number">
            <div class="num_left" :style="{fontSize:fontSize}">{{xList.numList[0]}}</div>
            <div class="num_right" :style="{fontSize:fontSize}">{{xList.numList[1]}}</div>
        </div>
        <div class="x_text">
            <div class="txt_left">{{xList.xinfo_list[0]}}</div>
            <div class="txt_right">{{xList.xinfo_list[1]}}</div>
        </div>
    </div>
</template>

<script>
export default {
    name: "XthinkData",
    data() {
        return {
            xImage: require("../component/img.png"),
            fontSize: '18px',
        }
    },
    props: {
        xList:{
            type: Object,
            default(){
                return []
            }
        },
    },
    created() {
        this.changeFont();
    },
    mounted() {
        setTimeout(()=>{
            this.changeFont();
        },500)
    },
    watch:{
        xList() {
            this.changeFont();
        },
    },
    methods: {
//字体大小自适应
        changeFont() {
            if((this.xList.numList[0].toString().length >= 8 ||this.xList.numList[1].toString().length >= 8)
               &&(this.xList.numList[0].toString().length < 10 ||this.xList.numList[1].toString().length < 10)){
                this.fontSize = '18px';
            }else if((this.xList.numList[0].toString()).length >= 10 ||(this.xList.numList[1].toString()).length >= 10
                &&(this.xList.numList[0].toString().length < 12 ||this.xList.numList[1].toString().length < 12)){
                this.fontSize = '16px';
            }else if((this.xList.numList[0].toString()).length >= 12||(this.xList.numList[1].toString()).length >= 12){
                this.fontSize = '14px';
            }
        },
        update_father_data(){
            // 更新 父组件传进来的数据
            this.$forceUpdate()
        }
    },
}
</script>

<style scoped lang="scss">
.x_box_cav{
    background: #25344e80;//卡片背景色
    margin: 3px;
    border-radius: 6px;
    .x_title{
        //padding: 5px;
        height: 28px;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        img{
            width: 25px;
            background-size: 100%;
        }
        a{
            padding-left: 10px;
            color: #ffffff;
            opacity: 0.8;
            font-size: 16px;
        }
    }
    .x_number{
        height: 30px;
        padding-top: 6px;
        display: flex;
        justify-content: space-around;
        .num_left{
            width: 50%;
            padding-left: 6px;
            font-weight: bold;
            color: #00fcff;
            text-align: center;
        }
        .num_right{
             width: 50%;
             padding-left: 6px;
             font-weight: bold;
            color: #65d215;
            text-align: center;
         }
    }
    .x_text{
        height: 25px;
        display: flex;
        justify-content: space-around;
        padding-bottom: 4px;
        .txt_left{
            width: 50%;
            font-size: 14px;
            color: #cafeff;
            text-align: left;
            padding-left: 5%;
        }
        .txt_right{
            width: 50%;
            font-size: 14px;
            color: #ddffc6;
            text-align: left;
            padding-left: 5%;
        }
    }
}
</style>

图片下载:https://download.csdn.net/download/galaxyJING/88616393

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于Vue数据,可以采用CSS3的缩放属性进行等比缩放实现。阿里DataV和腾讯云图等大厂的数据项目都采用了这种方案。在实际项目中,可以在mounted生命周期中监听窗口的变,使用window.addEventListener('resize')来触发缩放操作。\[1\]\[2\] 在进行大之前,需要了解幕的比例。常见的幕比例有16:9,如1920*1080(1080P)、2k、4k等。在确定了实际幕比例后,可以选择一个设计稿尺寸进行设计,并严格按照设计稿的像素进行前端开发。下列应方案可以应同比例下的所有分辨率幕。\[3\] 综上所述,对于Vue数据,可以使用CSS3的缩放属性进行等比缩放,并在mounted生命周期中监听窗口变进行缩放操作。在设计阶段需要确定实际幕比例,并按照设计稿的像素进行前端开发。 #### 引用[.reference_title] - *1* *3* [vue应完美方案](https://blog.csdn.net/u013180541/article/details/127302298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue 数据](https://blog.csdn.net/qq_38427709/article/details/116857143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LXXgalaxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值