Browse Source

add refund_info components & meituan_coupon_deduction_amount key

tid1731
刘嘉炜 10 months ago
parent
commit
ad55230e0c
  1. 56
      src/components/order_refund/info.vue
  2. 4
      src/components/order_refund/modal.vue
  3. 16
      src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue
  4. 24
      src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue
  5. 42
      src/subpackage/order/pages/curriculum/detail/detail.vue
  6. 49
      src/subpackage/order/pages/retail/detail/detail.vue
  7. 31
      src/subpackage/order/pages/stored_value_card/detail/detail.vue
  8. 32
      src/subpackage/order/pages/timing/detail.vue
  9. 16
      src/subpackage/order/pages/ym_card/detail/detail.vue

56
src/components/order_refund/info.vue

@ -0,0 +1,56 @@
<template>
<view class="refund-info">
<view class="ri-name">退款信息{{ nameKey || '' }}</view>
<view class="ri-line">
<view class="ri-name">退款金额</view>
<view class="ri-value">{{ refund_price }}</view>
</view>
<view class="ri-line">
<view class="ri-name">退款单号</view>
<view class="ri-value">{{ refund_no }}</view>
</view>
<view class="ri-line">
<view class="ri-name">退款时间</view>
<view class="ri-value">{{ refund_time }}</view>
</view>
<view class="ri-line">
<view class="ri-name">退款原因</view>
<view class="ri-value">{{ refund_reason }}</view>
</view>
</view>
</template>
<script>
export default {
props: {
nameKey: { default: '' },
refund_price: { default: '-' },
refund_no: { default: '-' },
refund_time: { default: '-' },
refund_reason: { default: '-' },
}
}
</script>
<style lang="scss">
.refund-info{
padding: 30upx;
border-radius: 10upx;
background: #fff;
.ri-name{
flex-shrink: 0;
@include flcw(28upx, 40upx, #9C9C9F);
&+.ri-line{
margin-top: 16upx;
}
}
.ri-line{
@include ctf(space-between);
.ri-value{
flex-grow: 1;
@include flcw(28upx, 60upx, #1A1A1A);
@include tHide;
}
}
}
</style>

4
src/components/order_refund/modal.vue

@ -19,7 +19,7 @@
<view class="oi-right">
<input
class="or-ipt"
type="number"
type="digit"
v-model="iptInfo.refund_amount"
:disabled="refundInfo.refund_times > 0"
:class="{ 'or-disabled': refundInfo.refund_times > 0 }"
@ -34,7 +34,7 @@
</view>
<view class="oi-right">
<input
class="or-ipt" type="number"
class="or-ipt" type="digit"
v-model="iptInfo.refund_integral"
:disabled="refundInfo.refund_times > 0"
:class="{ 'or-disabled': refundInfo.refund_times > 0 }"

16
src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue

@ -161,6 +161,18 @@
<view>微信交易号<text>{{orderInfo.trade_no || ''}}</text></view>
</view>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in orderInfo.refunds" :key="i" style="padding: 24rpx 24rpx 0;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<!-- 退款按钮 -->
<order-refund-fixed
:pay_amount="orderInfo.pay_amount || 0"
@ -246,9 +258,11 @@ import deviceServer from '../../../js/device_server';
import deviceApi from '../../../js/device_api';
import { mapState } from 'vuex';
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
components: {
'order-refund-fixed': orderRefundFixed
'order-refund-fixed': orderRefundFixed,
'order-refund-info': orderRefundInfo,
},
props: {
orderInfo: {

24
src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue

@ -98,6 +98,12 @@
<view>优惠券优惠</view>
<view>-¥{{orderInfo.coupons_amount || 0}}</view>
</view>
<view class="rs-line"
v-if="orderInfo.extension&&orderInfo.extension.meituan_args&&orderInfo.extension.meituan_args.meituan_coupon_deduction_amount"
>
<view>团购券抵扣</view>
<view>-¥{{ orderInfo.extension.meituan_args.meituan_coupon_deduction_amount || 0}}</view>
</view>
</view>
<view class="rb-total">
<view>合计支付<text></text><text>{{orderInfo.pay_amount || 0}}</text></view>
@ -135,6 +141,18 @@
</view>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in orderInfo.refunds" :key="i" style="padding: 24rpx 24rpx 0;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<order-refund-fixed
:pay_amount="orderInfo.pay_amount || 0"
:refund_amount="orderInfo.refund_amount || 0"
@ -145,10 +163,12 @@
</template>
<script>
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundFixed from '@/components/order_refund/fixed.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
components: {
'order-refund-fixed': orderRefundFixed
'order-refund-fixed': orderRefundFixed,
'order-refund-info': orderRefundInfo
},
props: {
orderInfo: {

42
src/subpackage/order/pages/curriculum/detail/detail.vue

@ -86,20 +86,19 @@
<a-line :value="orderInfo.trade_no || '-'">
<block slot="name">交易流水</block>
</a-line>
<block v-if="orderInfo.order_status == 3">
<a-line :value="orderInfo.refund_no || '-'">
<block slot="name">退款单号</block>
</a-line>
<a-line :value="orderInfo.refund_time || '-'">
<block slot="name">退款时间</block>
</a-line>
<a-line :value="'¥' + (orderInfo.refund_amount || '0')">
<block slot="name">退款金额</block>
</a-line>
</block>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in refundList" :key="i" style="padding: 0 0 24rpx;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<!-- 课程订单只支持一次退款refund_times 写死为1间接 -->
<order-refund-fixed
:pay_amount="orderInfo.pay_amount || 0"
:refund_amount="orderInfo.refund_amount || 0"
@ -120,12 +119,18 @@ import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundModal from '@/components/order_refund/modal.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
computed: {
course_period_nums_give(){
let { orderInfo } = this;
let _num = orderInfo.course_period_nums_give || 0;
return (_num + '').replace('-', '')
},
refundTimes(){
// 退refund_times + 1
let _num = this.refundList?.length || 0;
return _num + 1;
}
},
// (' 0- 1- 2- 3-退 4-')
@ -133,13 +138,14 @@ export default {
'a-line': a_line,
'order-refund-fixed': orderRefundFixed,
'order-refund-modal': orderRefundModal,
'order-refund-info': orderRefundInfo
},
data(){
return {
orderInfo: {
user_info: {}
},
refundTimes: -1, // 退
refundList: [], // 退
}
},
onLoad(options){
@ -181,14 +187,16 @@ export default {
}
})
.catch(util.hideLoad)
.finally(_=>setTimeout(_=>this.getInfo(order_no), 1200));
.finally(_=>setTimeout(_=>{
this.getInfo(order_no);
this.getRefundTimes(order_no);
}, 1200));
},
async getRefundTimes(order_no){
try{
let _refundRes = await this.$store.dispatch('getOrderRefundList', order_no);
let _refundLs = _refundRes?.data?.data?.list || [];
this.refundTimes = _refundLs.length;
console.log('refundRes', _refundRes);
this.refundList = _refundLs;
}catch(err){
console.warn('getRefundTimes err', err);
}

49
src/subpackage/order/pages/retail/detail/detail.vue

@ -78,32 +78,16 @@
<p-line :keyname="'支付方式'" :value="orderInfo.extension ? orderInfo.extension.pay_type_text || '-' : '-'"></p-line>
<p-line :keyname="'支付时间'" :value="orderInfo.pay_time || '-'"></p-line>
</view>
<!-- <view v-if="orderInfo.refunds&&orderInfo.refunds.length">
<view class="rc-refund-info" v-for="(item, index) in orderInfo.refunds" :key="index">
<view class="rpi-tit">退款信息{{ index + 1 }}</view>
<p-line :keyname="'退款金额:'" :value="item.refund_amount ? '¥' + item.refund_amount : '¥0'"></p-line>
<p-line :keyname="'退款单号:'" :value="item.refund_no || '-'"></p-line>
<p-line :keyname="'退款时间:'" :value="item.refund_time || '-'"></p-line>
<p-line :keyname="'退款原因:'" :value="item.refund_reason || '-'"></p-line>
</view>
</view> -->
<!-- <view v-if="orderInfo.refund_no">
<view class="rc-refund-info">
<view class="rpi-tit">退款信息</view>
<p-line :keyname="'退款金额:'" :value="orderInfo.refund_amount ? '¥' + orderInfo.refund_amount : '¥0'"></p-line>
<p-line :keyname="'退款单号:'" :value="orderInfo.refund_no || '-'"></p-line>
<p-line :keyname="'退款时间:'" :value="orderInfo.refund_time || '-'"></p-line>
<p-line :keyname="'退款原因:'" :value="orderInfo.refund_reason || '商家主动退款'"></p-line>
</view>
</view> -->
<view v-if="refundList.length">
<view class="rc-refund-info" v-for="(item, index) in refundList" :key="index">
<view class="rpi-tit">退款信息{{ index + 1 }}</view>
<p-line :keyname="'退款金额:'" :value="`¥${item.amount}`"></p-line>
<p-line :keyname="'退款单号:'" :value="item.refund_no || '-'"></p-line>
<p-line :keyname="'退款时间:'" :value="item.refund_time || '-'"></p-line>
<p-line :keyname="'退款原因:'" :value="item.reason || '商家主动退款'"></p-line>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in refundList" :key="i" style="padding: 24rpx 0 0;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<order-refund-fixed
@ -127,6 +111,7 @@ import s_line from '../../../components/s_line/s_line.vue';
import p_line from '../../../components/p_line/p_line.vue';
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundModal from '@/components/order_refund/modal.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
import { mapState } from 'vuex';
export default {
components: {
@ -134,6 +119,7 @@ export default {
'p-line': p_line,
'order-refund-fixed': orderRefundFixed,
'order-refund-modal': orderRefundModal,
'order-refund-info': orderRefundInfo
},
data(){
return {
@ -397,15 +383,4 @@ export default {
color: #1A1A1A;
}
}
.rc-refund-info{
padding: 30upx;
margin-top: 24upx;
background-color: #fff;
.rpi-tit{
margin-bottom: 16upx;
line-height: 44upx;
font-size: 28upx;
color: #9C9C9F;
}
}
</style>

31
src/subpackage/order/pages/stored_value_card/detail/detail.vue

@ -65,24 +65,17 @@
</view>
</view>
<view class="svc-box" v-for="(e, i) in orderInfo.refunds" :key="i">
<view class="svc-line">
<view class="sl-txt" style="margin-bottom: 20rpx;"><text>退款信息{{i+1}}</text></view>
</view>
<view class="svc-line">
<view class="sl-txt"><text>退款金额</text>{{ e.amount || 0 }}</view>
</view>
<view class="svc-line">
<view class="sl-txt"><text>退款单号</text>{{ e.refund_no || '-' }}</view>
</view>
<view class="svc-line">
<view class="sl-txt"><text>退款时间</text>{{ e.refund_time || '-' }}</view>
</view>
<view class="svc-line">
<view class="sl-txt"><text>退款原因</text>{{ e.reason || '-' }}</view>
</view>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in orderInfo.refunds" :key="i" style="padding: 24upx 0upx 0upx;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<order-refund-fixed
:pay_amount="orderInfo.pay_amount || 0"
:refund_amount="orderInfo.refund_amount || 0"
@ -103,11 +96,13 @@ import server from '../../../js/server';
import util from '../../../../../utils/util';
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundModal from '@/components/order_refund/modal.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
components: {
's-line': s_line,
'order-refund-fixed': orderRefundFixed,
'order-refund-modal': orderRefundModal,
'order-refund-info': orderRefundInfo
},
computed: {
cardInfo(){

32
src/subpackage/order/pages/timing/detail.vue

@ -58,21 +58,26 @@
</view>
</view>
<view class="td-box" v-if="orderInfo.pay_status == 4">
<view class="tb-title">退款信息</view>
<view class="tb-line">
<view>退款原因<text>{{orderInfo.refund_reason || '-'}}</text></view>
<view>退款时间<text>{{orderInfo.refund_time || '-'}}</text></view>
<view>退款单号<text>{{orderInfo.refund_no || '-'}}</text></view>
</view>
<!-- 退款列表 -->
<view v-for="(e, i) in refundList" :key="i" style="padding: 24rpx 24rpx 0;">
<order-refund-info
:refund_price="e.amount || 0"
:refund_no="e.refund_no || '-'"
:refund_time="e.refund_time || '-'"
:refund_reason="e.reason || '-'"
:nameKey="i + 1"
></order-refund-info>
</view>
<view class="td-btn" @click="isEndBill = true" v-if="orderInfo.pay_status == 0&&orderInfo.early_end_timing==false">结束计费</view>
<view class="td-btn" @click="completeBtn" v-if="orderInfo.pay_status == 0&&orderInfo.early_end_timing==true">完结订单</view>
<!-- 退款按钮拦 -->
<order-refund-fixed
:pay_amount="orderInfo.pay_amount || 0"
:refund_amount="orderInfo.refund_amount || 0"
:refund_times="refundTimes"
:refund_times="(refundList&&refundList.length) || 0"
@click:button="refunndBtn"
></order-refund-fixed>
@ -98,11 +103,13 @@ import { mapState } from 'vuex';
import end_billing_modal from '@/components/end_billing_modal/end_billing_modal.vue';
import orderRefundFixed from '@/components/order_refund/fixed.vue'
import orderRefundModal from '@/components/order_refund/modal.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
components: {
'end-billing-modal': end_billing_modal,
'order-refund-fixed': orderRefundFixed,
'order-refund-modal': orderRefundModal,
'order-refund-info': orderRefundInfo
},
computed: {
...mapState(['brandInfo']),
@ -123,7 +130,7 @@ export default {
return {
isEndBill: false,
orderInfo: {},
refundTimes: -1, // 退
refundList: [], // 退
}
},
onLoad(options){
@ -135,14 +142,14 @@ export default {
},
methods: {
refunndBtn(){
let { orderInfo, refundTimes } = this;
let { orderInfo, refundList } = this;
this.$refs.orderRefundModal.show({
stadium_name: orderInfo?.stadium_name ?? '',
order_no: orderInfo?.order_no ?? '',
mobile: orderInfo?.mobile ?? '',
refundable_amount: orderInfo?.extension?.refundable_amount ?? 0,
refundable_integral: orderInfo?.extension?.refundable_integral ?? 0,
refund_times: refundTimes,
refund_times: refundList?.length || -1,
confirm: e => {
this.orderRefund({
order_no: orderInfo?.order_no || '',
@ -178,8 +185,7 @@ export default {
try{
let _refundRes = await this.$store.dispatch('getOrderRefundList', order_no);
let _refundLs = _refundRes?.data?.data?.list || [];
this.refundTimes = _refundLs.length;
console.log('refundRes', _refundRes);
this.refundList = _refundLs;
}catch(err){
console.warn('getRefundTimes err', err);
}

16
src/subpackage/order/pages/ym_card/detail/detail.vue

@ -56,9 +56,9 @@
</view>
<order-refund-fixed
:pay_amount="1"
:pay_amount="_extension.refundable_amount || 0"
:refund_amount="0"
:refund_times="0"
:refund_times="(refundList&&refundList.length) || 0"
@click:button="refunndBtn"
></order-refund-fixed>
@ -103,7 +103,8 @@ export default {
extension: {}
},
optionsQuery: {},
refundInfo: {}
refundInfo: {},
refundList: []
}
},
onLoad(options){
@ -118,14 +119,14 @@ export default {
},
methods: {
refunndBtn(){
let { orderInfo, _extension } = this;
let { orderInfo, _extension, refundList } = this;
this.$refs.orderRefundModal.show({
stadium_name: _extension?.name ?? '',
order_no: orderInfo?.order_no ?? '',
mobile: orderInfo?.mobile ?? '',
refundable_amount: +_extension?.pay_amount || 0,
refundable_amount: +_extension?.refundable_amount || 0,
refundable_integral: 0,
refund_times: 0,
refund_times: refundList?.length || 0,
confirm: e => {
this.userMonthlyCardRefundFixed({
order_no: orderInfo?.order_no || '',
@ -138,7 +139,8 @@ export default {
async getRefundInfo(order_no){
try{
let _refundRes = await this.$store.dispatch('getOrderRefundList', order_no);
let _ls = _refundRes?.data?.data?.list || [];
this.refundList = _ls;
console.log('refundRes', _refundRes);
}catch(err){
console.warn('getRefundTimes err', err);

Loading…
Cancel
Save