Browse Source

add end balling api

tags/v1.1.30
刘嘉炜 3 years ago
parent
commit
7885fafc8a
  1. 27
      src/components/order_list/club_rental/club_rental.vue
  2. BIN
      src/static/images/code_null.png
  3. BIN
      src/static/images/icon/invite.png
  4. BIN
      src/static/images/icon/location.png
  5. BIN
      src/static/images/icon/people.png
  6. BIN
      src/static/images/icon/selected_ring.png
  7. BIN
      src/static/images/icon/success_tip.png
  8. BIN
      src/static/images/icon/x_close.png
  9. BIN
      src/static/images/write_off/mall.png
  10. BIN
      src/subpackage/device/static/images/i_voice_1.png
  11. BIN
      src/subpackage/device/static/images/i_voice_2.png
  12. BIN
      src/subpackage/device/static/images/i_voice_3.png
  13. BIN
      src/subpackage/device/static/images/i_voice_4.png
  14. BIN
      src/subpackage/device/static/images/in.png
  15. BIN
      src/subpackage/device/static/images/scan_code.png
  16. BIN
      src/subpackage/device/static/images/selected_987.png
  17. BIN
      src/subpackage/device/static/images/start.png
  18. BIN
      src/subpackage/device/static/images/sunblind.png
  19. BIN
      src/subpackage/device/static/images/sunblind_close.png
  20. BIN
      src/subpackage/device/static/images/sunblind_open.png
  21. BIN
      src/subpackage/device/static/images/timing.png
  22. BIN
      src/subpackage/device/static/images/windows.png
  23. 156
      src/subpackage/order/components/club_rental/end_billing/end_billing.vue
  24. 3
      src/subpackage/order/js/api.js
  25. 64
      src/subpackage/order/pages/club_rental/detail/detail.vue
  26. BIN
      src/subpackage/order/static/images/arrow.png
  27. BIN
      src/subpackage/order/static/images/down_arrow.png
  28. BIN
      src/subpackage/order/static/images/order_manage/order_1.png
  29. BIN
      src/subpackage/order/static/images/order_manage/order_10.png
  30. BIN
      src/subpackage/order/static/images/order_manage/order_12.png
  31. BIN
      src/subpackage/order/static/images/order_manage/order_13.png
  32. BIN
      src/subpackage/order/static/images/order_manage/order_14.png
  33. BIN
      src/subpackage/order/static/images/order_manage/order_15.png
  34. BIN
      src/subpackage/order/static/images/order_manage/order_16.png
  35. BIN
      src/subpackage/order/static/images/order_manage/order_17.png
  36. BIN
      src/subpackage/order/static/images/order_manage/order_2.png
  37. BIN
      src/subpackage/order/static/images/order_manage/order_3.png
  38. BIN
      src/subpackage/order/static/images/order_manage/order_4.png
  39. BIN
      src/subpackage/order/static/images/order_manage/order_5.png
  40. BIN
      src/subpackage/order/static/images/order_manage/order_6.png
  41. BIN
      src/subpackage/order/static/images/order_manage/order_7.png
  42. BIN
      src/subpackage/order/static/images/order_manage/order_8.png
  43. BIN
      src/subpackage/order/static/images/order_manage/order_9.png
  44. BIN
      src/subpackage/order/static/images/selected.png

27
src/components/order_list/club_rental/club_rental.vue

@ -31,9 +31,12 @@
</block>
</view>
<view class="vcc-total">
<view class="vcc-total" v-if="orderInfo.pay_status != 1">
<view class="vt-view"><text class="vv-text">合计支付</text>{{ orderInfo.pay_amount || '0' }}</view>
</view>
<view class="vcc-end-btn" v-if="orderInfo.order_type != 'deposit'&&orderInfo.pay_status == 1">
<view class="veb-item" @click.stop="toInfo(1)">结束计费</view>
</view>
</view>
</template>
@ -57,9 +60,9 @@ export default {
mounted(){
},
methods: {
toInfo(){
toInfo(isEnd = 0){
let { orderInfo } = this;
util.routeTo(`/subpackage/order/pages/club_rental/detail/detail?order_no=${orderInfo.order_no}`, 'nT');
util.routeTo(`/subpackage/order/pages/club_rental/detail/detail?order_no=${orderInfo.order_no}&is_end=${ isEnd }`, 'nT');
},
getStatusTxt(status = -1){
let _obj = {
@ -81,6 +84,9 @@ export default {
padding: 0 20upx 20upx;
border-radius: 10upx;
}
.vcc-info{
padding-top: 20upx;
}
.crc-line{
margin-top: 10upx;
@include centerFlex(flex-start);
@ -110,4 +116,19 @@ export default {
}
}
}
.vcc-end-btn{
padding-top: 20upx;
@include centerFlex(flex-end);
.veb-item{
width: 192upx;
height: 80upx;
line-height: 80upx;
text-align: center;
border-radius: 10upx;
font-size: 32upx;
font-weight: 500;
color: #fff;
background-color: $themeColor;
}
}
</style>

BIN
src/static/images/code_null.png

Before

Width: 380  |  Height: 380  |  Size: 7.7 KiB

After

Width: 380  |  Height: 380  |  Size: 7.4 KiB

BIN
src/static/images/icon/invite.png

Before

Width: 52  |  Height: 52  |  Size: 367 B

After

Width: 52  |  Height: 52  |  Size: 354 B

BIN
src/static/images/icon/location.png

Before

Width: 28  |  Height: 28  |  Size: 366 B

After

Width: 28  |  Height: 28  |  Size: 342 B

BIN
src/static/images/icon/people.png

Before

Width: 48  |  Height: 48  |  Size: 444 B

After

Width: 48  |  Height: 48  |  Size: 434 B

BIN
src/static/images/icon/selected_ring.png

Before

Width: 32  |  Height: 32  |  Size: 503 B

After

Width: 32  |  Height: 32  |  Size: 419 B

BIN
src/static/images/icon/success_tip.png

Before

Width: 100  |  Height: 102  |  Size: 1005 B

After

Width: 100  |  Height: 102  |  Size: 974 B

BIN
src/static/images/icon/x_close.png

Before

Width: 34  |  Height: 34  |  Size: 425 B

After

Width: 34  |  Height: 34  |  Size: 233 B

BIN
src/static/images/write_off/mall.png

Before

Width: 128  |  Height: 128  |  Size: 1.4 KiB

After

Width: 128  |  Height: 128  |  Size: 1.4 KiB

BIN
src/subpackage/device/static/images/i_voice_1.png

Before

Width: 200  |  Height: 200  |  Size: 9.9 KiB

After

Width: 200  |  Height: 200  |  Size: 2.4 KiB

BIN
src/subpackage/device/static/images/i_voice_2.png

Before

Width: 103  |  Height: 50  |  Size: 2.9 KiB

After

Width: 103  |  Height: 50  |  Size: 1001 B

BIN
src/subpackage/device/static/images/i_voice_3.png

Before

Width: 102  |  Height: 100  |  Size: 2.4 KiB

After

Width: 102  |  Height: 100  |  Size: 889 B

BIN
src/subpackage/device/static/images/i_voice_4.png

Before

Width: 103  |  Height: 50  |  Size: 2.9 KiB

After

Width: 103  |  Height: 50  |  Size: 1001 B

BIN
src/subpackage/device/static/images/in.png

Before

Width: 100  |  Height: 100  |  Size: 959 B

After

Width: 100  |  Height: 100  |  Size: 950 B

BIN
src/subpackage/device/static/images/scan_code.png

Before

Width: 48  |  Height: 48  |  Size: 553 B

After

Width: 48  |  Height: 48  |  Size: 293 B

BIN
src/subpackage/device/static/images/selected_987.png

Before

Width: 40  |  Height: 36  |  Size: 381 B

After

Width: 40  |  Height: 36  |  Size: 377 B

BIN
src/subpackage/device/static/images/start.png

Before

Width: 32  |  Height: 32  |  Size: 311 B

After

Width: 32  |  Height: 32  |  Size: 303 B

BIN
src/subpackage/device/static/images/sunblind.png

Before

Width: 676  |  Height: 570  |  Size: 26 KiB

After

Width: 676  |  Height: 570  |  Size: 4.9 KiB

BIN
src/subpackage/device/static/images/sunblind_close.png

Before

Width: 100  |  Height: 100  |  Size: 5.1 KiB

After

Width: 100  |  Height: 100  |  Size: 1.3 KiB

BIN
src/subpackage/device/static/images/sunblind_open.png

Before

Width: 100  |  Height: 100  |  Size: 5.2 KiB

After

Width: 100  |  Height: 100  |  Size: 1.2 KiB

BIN
src/subpackage/device/static/images/timing.png

Before

Width: 100  |  Height: 100  |  Size: 5.1 KiB

After

Width: 100  |  Height: 100  |  Size: 1.3 KiB

BIN
src/subpackage/device/static/images/windows.png

Before

Width: 1014  |  Height: 696  |  Size: 39 KiB

After

Width: 1014  |  Height: 696  |  Size: 6.5 KiB

156
src/subpackage/order/components/club_rental/end_billing/end_billing.vue

@ -0,0 +1,156 @@
<template>
<view class="end-billing">
<view class="end-mask" @click="close">
<view class="em-content" @click.stop="_=>false">
<image class="ec-close" src="/subpackage/order/static/images/close.png" @click="close"></image>
<view class="ec-main">
<view class="em-tit">结束计费</view>
<view class="em-line">订单号{{ orderInfo.order_no || '-' }}</view>
<view class="em-line">时长合计<text class="el-txt">{{ orderInfo.rent_duration || '-' }}</text></view>
<view class="em-settlement">
<view class="es-tit">结算金额()</view>
<view class="es-frame">
<input class="ef-ipt" type="number" v-model="amount" />
</view>
</view>
<view class="em-remark">
<view class="er-view">备注</view>
<view class="er-view">1请确保用户已将球归还到柜子后才手动帮用户结束计费</view>
<view class="er-view">2确认结束计费后将从用户押金里自动扣取相应费用剩余的押金将会原路退还给用户</view>
</view>
</view>
<view class="em-btns">
<view class="eb-btn" @click="close">取消</view>
<view class="eb-btn" @click="confirm">确认</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
orderInfo: {
type: Object,
default: {}
}
},
data(){
return {
amount: '',
}
},
methods: {
close(){
this.$emit('close');
},
confirm(){
let _amount = this.amount || 0;
this.$emit('confirm', { amount: +_amount });
}
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.end-mask{
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
background-color: rgba($color: #000000, $alpha: .5);
}
.em-content{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 78upx 56upx 130upx;
width: 620upx;
border-radius: 10upx;
background-color: #fff;
.ec-main {
.em-tit{
margin-bottom: 34upx;
line-height: 44upx;
text-align: center;
font-weight: 500;
font-size: 32upx;
color: #333;
}
.em-line{
line-height: 48upx;
font-size: 28upx;
color: #1a1a1a;
.el-txt{
color: $themeColor;
}
}
.em-settlement{
margin-top: 8upx;
margin-bottom: 28upx;
.es-tit{
margin-bottom: 8upx;
line-height: 48upx;
font-size: 28upx;
color: #1a1a1a;
}
.es-frame{
padding: 0 24upx;
height: 88upx;
border-radius: 10upx;
border: 2upx solid #D8D8D8;
border-radius: 10upx;
.ef-ipt{
height: 100%;
font-size: 28upx;
color: #333;
}
}
}
}
.em-remark{
.er-view{
line-height: 48upx;
font-size: 28upx;
color: #1a1a1a;
}
}
.em-btns{
padding-top: 52upx;
@include centerFlex(space-between);
.eb-btn{
height: 88upx;
width: 240upx;
border-radius: 10upx;
border: 2upx solid $themeColor;
line-height: 84upx;
text-align: center;
font-size: 32upx;
font-weight: 500;
color: $themeColor;
&+.eb-btn{
background-color: $themeColor;
color: #fff;
}
}
}
.ec-close{
position: absolute;
right: 30upx;
top: 30upx;
width: 34upx;
height: 34upx;
}
}
</style>

3
src/subpackage/order/js/api.js

@ -30,7 +30,8 @@ export const ORDER_API = {
ymCardUsage:`${ORIGIN}/admin/userMonthlyCard/usages`, // 用户年月卡使用记录-后台
// 20220725
userValueOrderGet:`${ORIGIN}/admin/userValueOrder/get`, // 储值卡订单详情
// 20220726
rentballEndBilling:`${ORIGIN}/admin/stadium/rentball/order/end`, // 结束订单-后台
}
export default ORDER_API;

64
src/subpackage/order/pages/club_rental/detail/detail.vue

@ -134,6 +134,15 @@
</view>
<view class="cr-btn" @click="depositRefundBtn" v-if="orderInfo.order_type == 'deposit'&&orderInfo.pay_status == 2">退押金</view>
<view class="cr-btn" @click="overBillingBtn" v-if="orderInfo.order_type != 'deposit'&&orderInfo.pay_status == 1">结束计费</view>
<!-- <view class="cr-btn" @click="overBillingBtn">结束计费</view> -->
<end-billing
v-if = 'isShowEndBilling'
@close = 'isShowEndBilling = false'
@confirm = 'endBillingBtn'
:orderInfo = 'orderInfo'
></end-billing>
</view>
</template>
@ -141,48 +150,87 @@
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
import a_line from '../../../../../components/order_list/a_line/a_line.vue';
import end_billing from '../../../components/club_rental/end_billing/end_billing.vue';
import util from '../../../../../utils/util';
// 1 2 退4
// 2,4
export default {
components: {
'a-line': a_line,
'end-billing': end_billing
},
data(){
return {
orderInfo: {
extension: {},
cabinet: {},
}
},
isShowEndBilling: false,
}
},
onLoad(options){
this.getOrderInfo(options.order_no);
this.getOrderInfo({
order_no: options.order_no,
isEndBilling: !!+options.is_end || false
});
},
methods: {
endBillingBtn: util.debounce(function(e){
this.isShowEndBilling = false;
util.showModal({
title: '提示',
content: `结算金额为${ e.amount || 0 }`,
showCancel: true,
success: mRes => {
if(mRes.confirm == true)this.endBillingReq(e.amount);
}
})
}, 300, true),
overBillingBtn: util.debounce(function(){
let { orderInfo } = this;
this.getOrderInfo({
order_no: orderInfo.order_no || '',
isEndBilling: true
});
}, 300, true),
endBillingReq(amount = 0){
util.showLoad();
let { orderInfo } = this;
server.post({
url: ORDER_API.rentballOrderEnd,
url: ORDER_API.rentballEndBilling,
data: {
order_no: orderInfo.order_no
order_no: orderInfo.order_no,
pay_amount: amount,
amount
},
isDefaultGet: false,
})
.then(res => {
util.hideLoad();
if(res.data.code == 0){
util.showNone(res.data.message || '操作成功!');
setTimeout(_=>this.getOrderInfo(orderInfo.order_no), 1200);
setTimeout(_=>{
this.getOrderInfo({ order_no: orderInfo.order_no });
util.previousPageFunction({ //
fnName: 'refreshList',
query: null
})
}, 1200);
}else{
util.showNone(res.data.message || '操作失败!');
}
})
.catch(util.hideLoad)
}),
},
payTypeTxt: util.order_pay_type_txt,
getOrderInfo(order_no = ''){
getOrderInfo({
order_no = '',
isEndBilling = false
}){
util.showLoad();
server.get({
url: ORDER_API.hardwareOrderInfo,
@ -193,6 +241,7 @@ export default {
util.hideLoad();
let _order = res || { extension: {} };
this.orderInfo = _order;
this.isShowEndBilling = isEndBilling;
})
},
depositRefundBtn: util.debounce(function(){
@ -348,4 +397,5 @@ export default {
background-color: $themeColor;
}
}
</style>

BIN
src/subpackage/order/static/images/arrow.png

Before

Width: 64  |  Height: 64  |  Size: 475 B

After

Width: 64  |  Height: 64  |  Size: 462 B

BIN
src/subpackage/order/static/images/down_arrow.png

Before

Width: 30  |  Height: 30  |  Size: 328 B

After

Width: 30  |  Height: 30  |  Size: 318 B

BIN
src/subpackage/order/static/images/order_manage/order_1.png

Before

Width: 120  |  Height: 120  |  Size: 888 B

After

Width: 120  |  Height: 120  |  Size: 856 B

BIN
src/subpackage/order/static/images/order_manage/order_10.png

Before

Width: 120  |  Height: 120  |  Size: 1.4 KiB

After

Width: 120  |  Height: 120  |  Size: 1.2 KiB

BIN
src/subpackage/order/static/images/order_manage/order_12.png

Before

Width: 120  |  Height: 120  |  Size: 2.0 KiB

After

Width: 120  |  Height: 120  |  Size: 1.6 KiB

BIN
src/subpackage/order/static/images/order_manage/order_13.png

Before

Width: 120  |  Height: 120  |  Size: 1.2 KiB

After

Width: 120  |  Height: 120  |  Size: 1.1 KiB

BIN
src/subpackage/order/static/images/order_manage/order_14.png

Before

Width: 120  |  Height: 120  |  Size: 807 B

After

Width: 120  |  Height: 120  |  Size: 804 B

BIN
src/subpackage/order/static/images/order_manage/order_15.png

Before

Width: 120  |  Height: 120  |  Size: 2.0 KiB

After

Width: 120  |  Height: 120  |  Size: 1.9 KiB

BIN
src/subpackage/order/static/images/order_manage/order_16.png

Before

Width: 120  |  Height: 120  |  Size: 1.9 KiB

After

Width: 120  |  Height: 120  |  Size: 1.9 KiB

BIN
src/subpackage/order/static/images/order_manage/order_17.png

Before

Width: 120  |  Height: 120  |  Size: 1.7 KiB

After

Width: 120  |  Height: 120  |  Size: 1.6 KiB

BIN
src/subpackage/order/static/images/order_manage/order_2.png

Before

Width: 120  |  Height: 120  |  Size: 787 B

After

Width: 120  |  Height: 120  |  Size: 767 B

BIN
src/subpackage/order/static/images/order_manage/order_3.png

Before

Width: 124  |  Height: 120  |  Size: 1.1 KiB

After

Width: 124  |  Height: 120  |  Size: 1.0 KiB

BIN
src/subpackage/order/static/images/order_manage/order_4.png

Before

Width: 120  |  Height: 120  |  Size: 1.3 KiB

After

Width: 120  |  Height: 120  |  Size: 1.3 KiB

BIN
src/subpackage/order/static/images/order_manage/order_5.png

Before

Width: 120  |  Height: 120  |  Size: 1.5 KiB

After

Width: 120  |  Height: 120  |  Size: 1.3 KiB

BIN
src/subpackage/order/static/images/order_manage/order_6.png

Before

Width: 120  |  Height: 120  |  Size: 1.4 KiB

After

Width: 120  |  Height: 120  |  Size: 1.2 KiB

BIN
src/subpackage/order/static/images/order_manage/order_7.png

Before

Width: 120  |  Height: 120  |  Size: 1.3 KiB

After

Width: 120  |  Height: 120  |  Size: 1.1 KiB

BIN
src/subpackage/order/static/images/order_manage/order_8.png

Before

Width: 120  |  Height: 120  |  Size: 1.4 KiB

After

Width: 120  |  Height: 120  |  Size: 1.3 KiB

BIN
src/subpackage/order/static/images/order_manage/order_9.png

Before

Width: 120  |  Height: 120  |  Size: 1.3 KiB

After

Width: 120  |  Height: 120  |  Size: 1.3 KiB

BIN
src/subpackage/order/static/images/selected.png

Before

Width: 32  |  Height: 32  |  Size: 470 B

After

Width: 32  |  Height: 32  |  Size: 400 B

Loading…
Cancel
Save