一、实现思路
需要要定义一个变量, 记录当前激活的步骤。通过数组的长度来循环数据,如果有就采用3元一次进行选择。
把循环里面的变量【name、status、time】, 全部替换为取出的那一项的值。然后继续下一次循环。
虚拟的数据都是请求来的, 组装为好渲染的格式。
二、实现步骤
①view部分展示
如果有看不懂的代码,请继续往下看,会有解释!!!
<view class="container" style="margin: 24rpx 0;">
<view class="overbold" style="margin-bottom: 40rpx;">审批</view>
<template v-for="(item,index) in funList.RenList">
<view :key="index" class="flex"
:style="{ marginBottom: index === funList.RenList.length - 1 ? '24rpx' : '68rpx' }">
<view class="img-box">
<image class="figure" :src="item.image" mode="aspectFill"></image>
<view v-if="index != funList.RenList.length - 1" class="line">
</view>
</view>
<view style="margin-left: 20rpx;">
<view class="flex" style="width: 518rpx;">
<view class="changwrod" style="margin-bottom: 8rpx;width: 60%;">{{ item.name }}</view>
<view v-if="item.status == 1" class="smallword" style="color: #999;">{{ item.time }}
</view>
</view>
<view v-if="item.status == 1" class="smallword" style="color: #31BA3E;">已通过</view>
<view v-if="item.status == 0" class="smallword" style="color: #666;">待审批</view>
</view>
</view>
</template>
</view>
代码解释:
代码解释:
funList.RenList:对象中的数组【考虑到后期交互,也可能单独拿出来】
:style="{ marginBottom: index === funList.RenList.length - 1 ? '24rpx' : '68rpx' }"
这段代码是一个动态的样式绑定,它根据条件来设置元素的 marginBottom 样式属性的值。
具体解释如下:
:style
是 Vue/uni-app 中用来动态绑定样式的语法。marginBottom
是 CSS 中的属性,用来设置元素的下边距。index === funList.RenList.length - 1
是一个条件判断表达式,表示如果当前元素的索引(index)等于 funList.RenList 数组的长度减 1。? '24rpx' : '68rpx'
是一个三元表达式,用于根据条件判断结果设置不同的值。如果条件为真,即当前元素是最后一个元素,那么设置下边距为 '24rpx';否则,设置下边距为 '68rpx'。换句话说,这段代码的作用是:如果当前元素是 funList.RenList 数组中的最后一个元素,则设置它的下边距为 '24rpx';否则,设置下边距为 '68rpx'。
②JavaScript 内容
funList: {
//。。。。。交互内容
RenList: [{
image: 'https://cdn.uviewui.com/uview/album/1.jpg',
name: "叶玲",
time: "2023.12.03 10:30",
status: 1 // 1已审核 0未审核
}, {
image: 'https://cdn.uviewui.com/uview/album/1.jpg',
name: "大耳朵",
time: "2023.12.03 10:30",
status: 0
}, {
image: 'https://cdn.uviewui.com/uview/album/1.jpg',
name: "叶玲",
time: "2023.12.03 10:30",
status: 1 // 1已审核 0未审核
}]
},
③css中样式展示
container{
padding: 32rpx;
background-color: #fff;
border-radius: 16rpx;
}
.overbold {
font-weight: bold;
color: #1A1A1A;
font-family: PingFang SC-Bold;
line-height: 48rpx;
font-size: 32rpx;
}
.img-box {
position: relative;
.figure {
width: 80rpx;
height: 80rpx;
border-radius: 8rpx;
}
//中间的间隔线
.line {
position: absolute;
left: 50%;
top: 130%;
transform: translate(-50%, -50%);
width: 6rpx;
height: 60rpx;
background-color: rgba(102, 102, 102, 0.5);
}
}
三、效果展示
以上就是实现审批流程的具体操作。