多状态映射不同样式(scss语法)

如设计图中,不同状态的卡片的标题对应着不同的背景色以及不同的标签样式,所以需要根据卡片的状态值来动态改变卡片的样式。

示例代码如下:

js 复制代码
<view class="card" v-for="(item, index) in list" :key="index">
    <view :class="['card-title', classMap[item.fine_type]]">
        <view>{{item.created_date}}</view>
        <view class="tag">{{item.type_text}}</view>
    </view>
    ...
</view>
js 复制代码
data() {
    return {
        classMap: {
            0: 'fine-status0',
            1: 'fine-status1',
            2: 'fine-status2',
            3: 'fine-status3',
            4: 'fine-status4',
        },
        ...
    }
}
js 复制代码
<style lang="scss">
    $fine-statuses: (
        0: (
            title-bgc: linear-gradient(90deg, #FFEBDC 0%, rgba(255, 241, 232, 0) 100%),
            tag-bgc: #FFF0E5,
            tag-color: #FF9B54
        ),
        1: (
            title-bgc: linear-gradient(90deg, #FFF7E9 0%, rgba(255, 247, 233, 0) 100%),
            tag-bgc: #FFF3E7,
            tag-color: #FF8000
        ),
        2: (
            title-bgc: linear-gradient(90deg, #FFF3F1 0%, rgba(255, 243, 241, 0) 100%),
            tag-bgc: #FFF1EF,
            tag-color: #FF5B3F
        ),
        3: (
            title-bgc: linear-gradient(90deg, #FFF9E7 0%, rgba(255, 249, 231, 0) 100%),
            tag-bgc: #FFF7DD,
            tag-color: #D9B31D
        ),
        4: (
            title-bgc: linear-gradient(90deg, #FFF1F4 0%, rgba(255, 241, 244, 0) 100%),
            tag-bgc: #FFE8ED,
            tag-color: #F94A6F
        )
    );

    // 动态生成 fine-status 样式
    @each $key, $value in $fine-statuses {
        .fine-status#{$key} {
            background: map-get($value, title-bgc);

            .tag {
                background: map-get($value, tag-bgc);
                color: map-get($value, tag-color);
            }
        }
    }
</style>
相关推荐
Tachyon.xue1 天前
Vue 3 项目集成 Element Plus + Tailwind CSS 详细教程
前端·css·vue.js
FuckPatience1 天前
Vue 中‘$‘符号含义
前端·javascript·vue.js
这里是杨杨吖1 天前
SpringBoot+Vue医院预约挂号系统 附带详细运行指导视频
vue.js·spring boot·医院·预约挂号
光影少年1 天前
vue打包优化方案都有哪些?
前端·javascript·vue.js
木易 士心1 天前
Ref 和 Reactive 响应式原理剖析与代码实现
前端·javascript·vue.js
被巨款砸中1 天前
一篇文章讲清Prompt、Agent、MCP、Function Calling
前端·vue.js·人工智能·web
卷Java1 天前
饼状图修复总结
java·spring boot·uni-app·echarts
闲蛋小超人笑嘻嘻1 天前
find数组方法详解||Vue3 + uni-app + Wot Design(wd-picker)使用自定义插槽内容写一个下拉选择器
前端·javascript·uni-app
2501_916007471 天前
前端开发工具都有哪些?常用前端开发工具清单与场景化推荐
android·ios·小程序·https·uni-app·iphone·webview
rggrgerj2 天前
Vue3 组件完全指南代码
前端·javascript·vue.js