130 lines
6.5 KiB
Vue
130 lines
6.5 KiB
Vue
|
<template>
|
|||
|
<view class="waper">
|
|||
|
<u-navbar :autoBack="true" :placeholder="true" bgColor="#fff">
|
|||
|
<view slot='center' class="navbar_title">退款详情</view>
|
|||
|
</u-navbar>
|
|||
|
<view class="waper_box">
|
|||
|
<view class="list" v-for="(i, index) in list" :key="index" @click="toDetail(i.id)">
|
|||
|
<view class="title">
|
|||
|
<view>{{i.refundStatusName}}</view>
|
|||
|
<view>退款编号:{{i.refundCode}}</view>
|
|||
|
</view>
|
|||
|
<view class="content">
|
|||
|
<view class="money">
|
|||
|
<view class="left">退款金额:¥{{i.actualPrice}}({{i.refundQuantity}}张)</view>
|
|||
|
<view class="right" @click.stop="tabShow(index)">
|
|||
|
<view>{{i.show ? '收起' : '展开'}}</view>
|
|||
|
<view class="icon">
|
|||
|
<u-icon :name="i.show ? 'arrow-up' : 'arrow-down'" color="#999" size="26rpx"></u-icon>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="fee" v-show="i.show">手续费:¥{{i.totalFee}}</view>
|
|||
|
<view class="step" v-show="i.show">
|
|||
|
<view class="step_list step_active">
|
|||
|
<view class="text">申请退款</view>
|
|||
|
<view class="time">{{i.createTime}}</view>
|
|||
|
<view class="active">
|
|||
|
<image src="https://common/refund_active.png" mode=""></image>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view :class="'step_list' + (i.refundStatus > 1 ? ' step_active' : '')">
|
|||
|
<view class="text">退款待审核</view>
|
|||
|
<view class="active" v-if="i.refundStatus > 1">
|
|||
|
<image src="https://common/refund_active.png" mode=""></image>
|
|||
|
</view>
|
|||
|
<view class="icon" v-else></view>
|
|||
|
</view>
|
|||
|
<view :class="'step_list' + (i.refundStatus > 1 ? ' step_active' : '') + (i.updateTime ? '' : ' add_time')">
|
|||
|
<view class="text over_text" v-if="i.refundStatus == '100'">审核驳回</view>
|
|||
|
<view class="text over_text" v-if="i.refundStatus == '200'">退款成功,资金原路返回</view>
|
|||
|
<view class="text over_text" v-if="i.refundStatus == '2'">退款中,预计在1-3个工作日完成</view>
|
|||
|
<view class="text over_text" v-if="i.refundStatus == '4'">退款失败,请联系管理员</view>
|
|||
|
<view class="time" v-if="i.updateTime">{{i.updateTime}}</view>
|
|||
|
<view class="active" v-if="i.refundStatus > 1">
|
|||
|
<image src="https://common/refund_active.png" mode=""></image>
|
|||
|
</view>
|
|||
|
<view class="icon" v-else></view>
|
|||
|
<view class="msg" v-if="i.refundStatus == '100' && i.refundDescribe[1]">拒绝原因:{{i.refundDescribe}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
export default {
|
|||
|
data () {
|
|||
|
return {
|
|||
|
list: []
|
|||
|
}
|
|||
|
},
|
|||
|
async onLoad (options) {
|
|||
|
let info = await this.$http.getRefundListByOrderId(options.orderId);
|
|||
|
for (var i = 0; i < info.data.length; i ++) {
|
|||
|
info.data[i].show = true;
|
|||
|
}
|
|||
|
this.list = info.data;
|
|||
|
},
|
|||
|
methods: {
|
|||
|
tabShow (index) {
|
|||
|
this.list[index].show = !this.list[index].show;
|
|||
|
},
|
|||
|
toDetail (id) {
|
|||
|
uni.navigateTo({ url: '/pages/my/refundDetail?id=' + id })
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss">
|
|||
|
page{ background: #F6F6F6; }
|
|||
|
.waper_box{
|
|||
|
width: 100%; box-sizing: border-box; padding: 32rpx;
|
|||
|
.list{
|
|||
|
width: 100%; background: #fff; border-radius: 10rpx; box-sizing: border-box; padding: 32rpx 24rpx; margin-bottom: 24rpx;
|
|||
|
&:last-child{ margin-bottom: 0; }
|
|||
|
.title{
|
|||
|
padding-bottom: 24rpx; border-bottom: 2rpx solid rgba(0, 0, 0, 0.1);
|
|||
|
view{
|
|||
|
&:nth-child(1){ line-height: 46rpx; color: #333; font-size: 32rpx; font-weight: bold; }
|
|||
|
&:nth-child(2){ margin-top: 8rpx; line-height: 40rpx; font-size: 28rpx; color: #999; font-weight: 500; }
|
|||
|
}
|
|||
|
}
|
|||
|
.content{
|
|||
|
width: 100%; margin-top: 24rpx;
|
|||
|
.money{
|
|||
|
width: 100%; height: 40rpx; display: flex; justify-content: space-between; align-items: center;
|
|||
|
.left{ color: #666; font-size: 28rpx; font-weight: 500; }
|
|||
|
.right{
|
|||
|
color: #999; display: flex; align-items: center; font-size: 28rpx;
|
|||
|
.icon{ margin-left: 12rpx; }
|
|||
|
}
|
|||
|
}
|
|||
|
.fee{ margin-top: 24rpx; line-height: 40rpx; color: #666; font-size: 28rpx; font-weight: 500; }
|
|||
|
.step{
|
|||
|
width: 100%; margin-top: 32rpx;
|
|||
|
.step_list{
|
|||
|
width: 100%; padding-left: 44rpx; position: relative; margin-bottom: 32rpx;
|
|||
|
.text{ line-height: 40rpx; color: #333; font-size: 28rpx; font-weight: 500; }
|
|||
|
.time{ margin-top: 4rpx; line-height: 34rpx; color: #999; font-size: 24rpx; }
|
|||
|
&::after{ content: ""; width: 2rpx; height: 100%; background: #E8E8E8; position: absolute; left: 10rpx; top: calc(50% + 7rpx); z-index: 5; }
|
|||
|
&.step_active::after{ background: #03AE80; }
|
|||
|
&.step_active .over_text{ color: #03AE80; }
|
|||
|
&:nth-child(2)::after{ width: 0; }
|
|||
|
.icon{ width: 10rpx; height: 10rpx; background: #999; border-radius: 10rpx; position: absolute; left: 6rpx; top: 50%; transform: translateY(-50%); z-index: 6; }
|
|||
|
.active{ width: 20rpx; height: 20rpx; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
|
|||
|
.msg{ margin-top: 12rpx; color: #333; font-size: 26rpx; line-height: 36rpx; }
|
|||
|
&:last-child{
|
|||
|
margin-bottom: 0;
|
|||
|
&::after{ top: auto; bottom: calc(50% + 7rpx); }
|
|||
|
}
|
|||
|
&.add_time::after{ height: calc(100% + 30rpx); }
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|