【类 型】:feat
【原 因】: 【过 程】:订单退款页面 目前完成1:调用订单详情 2:设置申请退款金额 3:设置退款说明 【影 响】: # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动
This commit is contained in:
parent
fe539c3554
commit
814066dffc
239
pages/shop/refund.vue
Normal file
239
pages/shop/refund.vue
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!-- topbar -->
|
||||||
|
<u-navbar title="申请退款" bgColor="#d43030" :titleStyle="{ color: '#FFF'}" :autoBack="true" placeholder>
|
||||||
|
<view class="u-nav-slot" slot="left">
|
||||||
|
<u-icon name="arrow-left" color="#fff" size="19"></u-icon>
|
||||||
|
</view>
|
||||||
|
</u-navbar>
|
||||||
|
<!-- 申请订单 -->
|
||||||
|
<view class="m-l-24 m-r-24 m-t-24 p-24 bg-w rad8 boxshadow">
|
||||||
|
<view class="m-b-24 borderBDas flex msb mub">
|
||||||
|
<view class="fb fz36 l-h-18">申请订单</view>
|
||||||
|
<view class="fcb fz24 l-h-12">订单号:{{order_sn}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="m-t-24 flex msb">
|
||||||
|
<view class="flex3 ofh">
|
||||||
|
<scroll-view class="scroll-view_H" scroll-x="true">
|
||||||
|
<view class="scroll-view-item_H m-r-12" v-for="(ps,index) in order.product_snapshot"
|
||||||
|
:key="index">
|
||||||
|
<u--image :src="ps.spu_photo[0]" width="147rpx" height="110rpx" radius="4rpx" />
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
<view class="flex1 fcb fz24 flex mr md">
|
||||||
|
共{{order.total_num}}件
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="fz28 borderBDas p-b-12 p-t-12" v-if="order!==null">
|
||||||
|
<view class="flex msb l-h-18">
|
||||||
|
<view>商品小计</view>
|
||||||
|
<view>¥{{order.total_price | formatPrice}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex msb l-h-18">
|
||||||
|
<view>外送费</view>
|
||||||
|
<view>¥{{order.transport_price | formatPrice}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex msb l-h-18">
|
||||||
|
<view>打包服务费</view>
|
||||||
|
<view>¥{{order.pack_price | formatPrice}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex mr mac l-h-18 m-t-24">
|
||||||
|
<view class="fcb fz24">合计</view>
|
||||||
|
<view class="m-l-12 fz36 fb" v-if="fullPrice!==null">¥{{fullPrice | formatPrice}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 退款金额cell -->
|
||||||
|
<cell cellTit="申请退款金额" :required="true" @click="handledrRefund_priceShow" conClass="fcm"
|
||||||
|
:cellCon="requestRefund_price?'¥'+ requestRefund_price:''"></cell>
|
||||||
|
<!-- 退款说明cell -->
|
||||||
|
<cell cellTit="退款说明" :required="true" :cellCon="refund_remarkDescription | truncate(8)"
|
||||||
|
@click="handledrRefund_remarkShow"></cell>
|
||||||
|
<!-- 退款金额折叠层 -->
|
||||||
|
<u-popup :show="refund_priceShow" round="10" mode="bottom" @close="closeRefund_price" zIndex="10080"
|
||||||
|
:closeable="true">
|
||||||
|
<view class="p-24">
|
||||||
|
<!-- title -->
|
||||||
|
<view class="flex mc md">
|
||||||
|
<view class="fz32">申请金额</view>
|
||||||
|
</view>
|
||||||
|
<!-- form -->
|
||||||
|
<view class="ofa m-t-24 m-b-12 flex mub borderBDas" style="max-height: 60vh;">
|
||||||
|
<view class="fb fz32">¥</view>
|
||||||
|
<u-input placeholder="请输入金额" v-model="requestRefund_price" type="digit" border="false" />
|
||||||
|
</view>
|
||||||
|
<!-- 占位 -->
|
||||||
|
<view class="extra-space1"></view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<!-- 退款说明折叠层 -->
|
||||||
|
<u-popup :show="refund_remarkShow" round="10" mode="bottom" @close="closeRefund_remark" zIndex="10080"
|
||||||
|
:closeable="true">
|
||||||
|
<view class="p-24">
|
||||||
|
<!-- title -->
|
||||||
|
<view class="flex mc md">
|
||||||
|
<view class="fz32">退款说明</view>
|
||||||
|
</view>
|
||||||
|
<!-- list -->
|
||||||
|
<view class="ofa m-t-24 m-b-12 flex column" style="max-height: 60vh;">
|
||||||
|
<view v-for="(item,index) in refund_remark_presup" :key='index' @click="currentRemark=index"
|
||||||
|
class="flex mac msb fz28 borderBDas m-t-12" style="height: 60rpx;">
|
||||||
|
<view>{{item}}</view>
|
||||||
|
<view class="border rad-c radioBox" :class="currentRemark===index?'border-m bg-m':''">
|
||||||
|
<u-icon name="checkbox-mark" size="40rpx" color="#fff"
|
||||||
|
v-if="currentRemark===index"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex mac msb fz28 m-t-12" style="height: 60rpx;"
|
||||||
|
@click="currentRemark=refund_remark_presup.length+1">
|
||||||
|
<view class="flex mub">
|
||||||
|
<view>其他说明</view>
|
||||||
|
<view class="fz24 fcb m-l-12" v-if="currentRemark===refund_remark_presup.length+1">
|
||||||
|
{{ refund_remarkValue.length }}/{{ txtmaxlength }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="border rad-c radioBox"
|
||||||
|
:class="currentRemark===refund_remark_presup.length+1?'border-m bg-m':''">
|
||||||
|
<u-icon name="checkbox-mark" size="40rpx" color="#fff"
|
||||||
|
v-if="currentRemark===refund_remark_presup.length+1"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view @click="currentRemark=refund_remark_presup.length+1">
|
||||||
|
<u-input class="border" v-model="refund_remarkValue" type="textarea" placeholder="请填写您的退款说明"
|
||||||
|
:maxlength="txtmaxlength" :border="false" :auto-height="true" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 占位 -->
|
||||||
|
<view class="extra-space1"></view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
parseTime,
|
||||||
|
formatPrice,
|
||||||
|
truncate
|
||||||
|
} from '@/utils/index.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
order_sn: '', //订单号
|
||||||
|
refund_priceShow: false, //退款金额弹出层
|
||||||
|
requestRefund_price: null, //申请退款金额
|
||||||
|
|
||||||
|
refund_remark: '', //退款说明 提交时候的值
|
||||||
|
refund_remarkShow: false, //退款说明弹出层
|
||||||
|
currentRemark: -1, // 当前选中的退款有缘索引
|
||||||
|
refund_remarkValue: '', // 退款说明 其他输入的内容
|
||||||
|
txtmaxlength: 30, //退款说明 其他文本框最多字数限制
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.order_sn = options.order_sn // 从提交订单页面传递过来的订单号
|
||||||
|
this.requestRefund_price = this.fullPrice //默认申请退款金额 为订单的总金额
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
formatPrice, //格式化价格
|
||||||
|
handledrRefund_priceShow() {
|
||||||
|
if (!this.requestRefund_price) {
|
||||||
|
this.requestRefund_price = this.fullPrice
|
||||||
|
}
|
||||||
|
this.refund_priceShow = true
|
||||||
|
},
|
||||||
|
closeRefund_price() {
|
||||||
|
this.refund_priceShow = false
|
||||||
|
},
|
||||||
|
handledrRefund_remarkShow() {
|
||||||
|
this.refund_remarkShow = true
|
||||||
|
},
|
||||||
|
closeRefund_remark() {
|
||||||
|
this.refund_remarkShow = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
parseTime, //日期 格式化
|
||||||
|
formatPrice, //价格 格式化
|
||||||
|
truncate
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
requestRefund_price: {
|
||||||
|
handler(val) {
|
||||||
|
let refund_price = this.formatPrice(Number(val))
|
||||||
|
if (refund_price > this.fullPrice) { //限制退款金额 上限为订单的总金额
|
||||||
|
this.requestRefund_price = this.fullPrice
|
||||||
|
}else{
|
||||||
|
this.requestRefund_price = refund_price
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
//未付款订单
|
||||||
|
order() {
|
||||||
|
if (this.order_sn) {
|
||||||
|
return this.$store.state.orderList.find(item => item.order_sn === this.order_sn)
|
||||||
|
} else {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//订单总价格
|
||||||
|
fullPrice() {
|
||||||
|
if (this.order) {
|
||||||
|
return this.formatPrice(Number(this.order.transport_price) + Number(this.order.pack_price) + Number(
|
||||||
|
this
|
||||||
|
.order.total_price))
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
//商铺信息
|
||||||
|
shopCon() {
|
||||||
|
return this.$store.state.shopCon
|
||||||
|
},
|
||||||
|
//退款说明预设列表
|
||||||
|
refund_remark_presup() {
|
||||||
|
if (this.shopCon !== null && this.shopCon.refund_remark_presup !== '[]') {
|
||||||
|
return JSON.parse(this.shopCon.refund_remark_presup)
|
||||||
|
} else {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//退款说明缩略显示
|
||||||
|
refund_remarkDescription() {
|
||||||
|
if (this.currentRemark !== -1) {
|
||||||
|
if (this.currentRemark === this.refund_remark_presup.length + 1) {
|
||||||
|
if (this.refund_remarkValue) {
|
||||||
|
return this.refund_remarkValue
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return this.refund_remark_presup[this.currentRemark]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.scroll-view_H {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view-item_H {
|
||||||
|
display: inline-block;
|
||||||
|
height: 110rpx;
|
||||||
|
line-height: 110rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radioBox {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user