iview的step组件自定义样式

本文介绍了如何在Vue中使用Steps组件并结合v-for指令动态渲染步骤条。通过slot插槽功能,实现了根据不同字段改变每个step的title和content样式,如颜色和字体大小。示例代码展示了根据流程状态显示不同的提示文字,同时利用计算属性处理审批日志内容。通过这种方式,可以灵活地在组件内部定制样式,实现组件样式的穿透和个性化设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:当我们需要在step组件自己设置样式,该怎么做?样式穿透可以改变组件原有的样式,这是改变所有这个dom下的样式,当有step是循环生成的,每个step我要根据特定的字段生成不同样式呢?那可以在每个step组件中判断,那当要改变的样式是step绑定的title或者content呢?这是绑定的字符串呀,直接字符串放标签加样式,貌似解析不了。那就要用到强大的模板template加slot插槽功能。

代码:

 <Steps :current="currentLog" direction="vertical" size="small">
                <div v-for="(item, index) in processLogInfo" :key="index" style="height:80px">
                    <Step :title="item.nodeTitle">
                        <template slot="content">
                            <span>{{item.nickname}}</span>
                            <span v-if="item.flowState===null" style="color:#9ea7b4;font-weight:600;font-size:14px"> 待处理</span>
                            <span v-if="item.flowState==='1'" style="color:#3399ff;font-weight:600;font-size:14px"> 发起</span>
                            <span v-if="item.flowState==='2'" style="color:#00cc66;font-weight:600;font-size:14px"> 通过</span>
                            <span v-if="item.flowState==='3'" style="color:#ff3300;font-weight:600;font-size:14px"> 驳回</span>
                            <span>
                                {{stepContent(item)}}
                            </span>
                        </template>
                        <template slot="title">
                            <span style="color:red">你好啊</span>
                        </template>
                    </Step>
                </div>
            </Steps>

计算属性:

 computed: {
        // 处理审批日志内容
        stepContent() {
            return function(item) {
                let remark = ''
                let time = ''
                if (item.remark === null) {
                    remark = '无'
                } else {
                    remark = item.remark
                }
                if (item.createDate === null) {
                    time = '无'
                } else {
                    time = item.createDate
                }
                return `流程;意见:${remark};时间:${time}`
            }
        }
    },

貌似iview要自定义组件样式,都可以通过slot插槽来解决 

效果:

### iView Slider 组件的使用说明 iView 是一个基于 Vue.js 的高质量 UI 库,提供了丰富的组件来帮助开发者快速构建用户界面。其中 `Slider` 组件用于实现滑块功能,允许用户通过拖动滑块选择数值范围内的某个值。 以下是关于 iView 中 `Slider` 组件的具体用法: #### 基本属性和方法 `Slider` 组件支持多种配置选项,常见的有以下几种: - **v-model**: 双向绑定当前选中的值。 - **min**: 设置最小值,默认为 0[^3]。 - **max**: 设置最大值,默认为 100[^3]。 - **step**: 定义步长,即每次移动的距离,默认为 1[^3]。 - **range**: 是否启用双滑块模式,适用于定义区间的选择[^3]。 - **show-stops**: 显示间断点标记[^3]。 下面是一个简单的代码示例展示如何初始化并使用该组件: ```vue <template> <div> <!-- 单滑块 --> <i-slider v-model="value1"></i-slider> <!-- 双滑块 --> <i-slider v-model="value2" range></i-slider> <!-- 自定义参数 --> <i-slider v-model="value3" :min="10" :max="90" :step="5"> </i-slider> </div> </template> <script> export default { data() { return { value1: 20, value2: [30, 70], value3: 40 }; } }; </script> ``` 上述代码展示了三种不同类型的滑块设置:单滑块、双滑块以及自定义参数下的滑块应用实例[^3]。 #### 高级特性 除了基本的功能外,还可以进一步增强用户体验,比如添加事件监听器或者动态调整样式等操作。例如当滑块改变时触发回调函数可以这样写: ```javascript <i-slider v-model="value" @on-change="handleChange"></i-slider> methods:{ handleChange(newValue){ console.log('The new selected value is:', newValue); } } ``` 此段脚本会在用户完成一次滑动动作之后打印最新的选定值到控制台中去[^3]。 ### 注意事项 在实际项目开发过程中需要注意版本兼容性问题,因为不同的框架版本之间可能存在API差异。另外也要考虑到移动端设备上的触摸体验优化等问题[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值