Browse Source

add order api

account
刘嘉炜 4 years ago
parent
commit
a4ec24dacd
  1. 2
      src/components/order_list/a_line/a_line.vue
  2. 92
      src/components/order_list/competition/competition.vue
  3. 2
      src/components/order_list/locker/locker.vue
  4. 8
      src/components/order_list/spectacular_monent/spectacular_monent.vue
  5. 4
      src/js/api.js
  6. 20
      src/pages/order_list/order_list.vue
  7. 3
      src/subpackage/order/js/api.js
  8. 129
      src/subpackage/order/pages/events/detail/detail.vue
  9. 203
      src/subpackage/order/pages/locker/detail/detail.vue
  10. 2
      src/subpackage/order/pages/order_manage/order_manage.vue
  11. BIN
      src/subpackage/order/static/images/close.png
  12. 14
      src/utils/util.js

2
src/components/order_list/a_line/a_line.vue

@ -56,7 +56,7 @@ export default {
line-height: 52upx; line-height: 52upx;
font-size: 28upx; font-size: 28upx;
color: #1a1a1a; color: #1a1a1a;
@include textHide(1);
@include textHide(2);
} }
} }

92
src/components/order_list/competition/competition.vue

@ -0,0 +1,92 @@
<template>
<view class="competition-container" @click="toInfo">
<a-header :source="orderInfo.extension.show_name || '-'" :status="getStatusTxt(orderInfo.order_status)">
<view slot="line" class="cc-header-line">下单时间{{ orderInfo.pay_time || '-' }}</view>
</a-header>
<view class="cc-info">
<a-line :value="orderInfo.order_no || '-'">
<block slot="name">订单编号</block>
</a-line>
<a-line :value="orderInfo.match_name || '-'">
<block slot="name">赛事主题</block>
</a-line>
<a-line :value="orderInfo.match_type == 'personal' ? '个人' : orderInfo.match_type == 'team' ? '' : '团队' ">
<block slot="name">赛事类型</block>
</a-line>
<a-line :value="orderInfo.match_info.match_addr || '-'">
<block slot="name">赛事地址</block>
</a-line>
</view>
<view class="cc-total">
<view class="ct-view"><text class="cv-text">支付金额</text>{{ orderInfo.pay_amount || '0' }}</view>
</view>
</view>
</template>
<script>
import util from '../../../utils/util';
import a_header from '../a_header/a_header.vue';
import a_line from '../a_line/a_line.vue';
export default {
components: {
'a-header': a_header,
'a-line': a_line,
},
props: {
orderInfo: {
default: {
extension: {},
match_info: {}
},
type: Object
}
},
methods: {
getStatusTxt(status){
let _obj = { // -> 6/ -> 11 / -> 9
'cancel' : '已取消', // /
'no_pay' : '待付款', //
'signing' : '进行中', //
'matching' : '进行中', //
'done' : '已取消', //
'auto_refund' : '已退款', //退-/ 退
'back_refund' : '已退款', //退-退
};
return _obj[status] || '-'
},
toInfo(){
let { orderInfo } = this;
util.routeTo(`/subpackage/order/pages/events/detail/detail?order_id=${orderInfo.id}`, 'nT');
}
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.competition-container{
background-color: #fff;
padding: 0 20upx 20upx;
border-radius: 10upx;
.cc-header-line{
margin-top: 12upx;
font-size: 24upx;
line-height: 34upx;
color: #9A9A9D;
}
}
.cc-total{
padding: 10upx 0;
@include centerFlex(flex-end);
.ct-view{
font-weight: 500;
font-size: 28upx;
color: #333;
@include textHide(1);
.cv-text{
font-weight: 400;
color: #9A9A9D;
}
}
}
</style>

2
src/components/order_list/locker/locker.vue

@ -1,5 +1,5 @@
<template> <template>
<view class="locker-container">
<view class="locker-container" @click="toInfo">
<a-header :source="orderInfo.source" :status="status_txt(orderInfo.pay_status)"> <a-header :source="orderInfo.source" :status="status_txt(orderInfo.pay_status)">
<view slot="line" class="lc-line"> <view slot="line" class="lc-line">
<image class="ll-img" mode="aspectFit" src="/static/images/icon/location.png"></image> <image class="ll-img" mode="aspectFit" src="/static/images/icon/location.png"></image>

8
src/components/order_list/spectacular_monent/spectacular_monent.vue

@ -1,7 +1,7 @@
<template> <template>
<view class="value-card-container" @click="toInfo"> <view class="value-card-container" @click="toInfo">
<a-header :source="orderInfo.source || '-'" :status="getStatusTxt(orderInfo.pay_status)"> <a-header :source="orderInfo.source || '-'" :status="getStatusTxt(orderInfo.pay_status)">
<view slot="line" class="hc-line" style="margin-top: 12upx;font-size: 24upx;line-height: 34upx;color: #9A9A9D;">购买时间{{ orderInfo.pay_time || '-' }}</view>
<view slot="line" class="hc-line" style="">购买时间{{ orderInfo.pay_time || '-' }}</view>
</a-header> </a-header>
<view class="vcc-info"> <view class="vcc-info">
@ -69,6 +69,12 @@ export default {
.vcc-info{ .vcc-info{
padding-top: 20upx; padding-top: 20upx;
} }
.hc-line{
margin-top: 12upx;
line-height: 34upx;
font-size: 24upx;
color: #9A9A9D;
}
} }
.vcc-total{ .vcc-total{
padding: 10upx 0; padding: 10upx 0;

4
src/js/api.js

@ -36,7 +36,9 @@ export const API = {
venueCourseOrderList: `${ORIGIN}/admin/venueCourse/orderList`, // 课程订单 - 列表 venueCourseOrderList: `${ORIGIN}/admin/venueCourse/orderList`, // 课程订单 - 列表
userValueCardList: `${ORIGIN}/admin/userValueCard/list`, // 用户储值卡-扣费_copy userValueCardList: `${ORIGIN}/admin/userValueCard/list`, // 用户储值卡-扣费_copy
momentOrderList: `${ORIGIN}/admin/perfect/moment/order/list`, // 后台-高光时刻订单列表_copy momentOrderList: `${ORIGIN}/admin/perfect/moment/order/list`, // 后台-高光时刻订单列表_copy
hardwareOrderList: `${ORIGIN}/admin/stadium/hardware/order/list`, // 硬件管理-订单列表_copy
// hardwareOrderList: `${ORIGIN}/admin/stadium/hardware/order/list`, // 硬件管理-订单列表_copy
hardwareOrderList: `${ORIGIN}/admin/assistant/hardware/order/list`, // 硬件管理-订单列表_copy
appointmentOrderList: `${ORIGIN}/admin/gameAppointment/orderList`, // 赛事订单列表_copy
// 营业额统计 // 营业额统计

20
src/pages/order_list/order_list.vue

@ -59,27 +59,16 @@
<club-rental :order-info="e" v-if="orderType == 16"></club-rental> <club-rental :order-info="e" v-if="orderType == 16"></club-rental>
<device :order-info="e" v-if="isDevice()&&!isNotDeviceTemp()" :order-type="orderType"></device> <device :order-info="e" v-if="isDevice()&&!isNotDeviceTemp()" :order-type="orderType"></device>
<locker :order-info="e" v-if="orderType == 7"></locker> <locker :order-info="e" v-if="orderType == 7"></locker>
<competition :order-info="e" v-if="orderType == 14"></competition>
</view> </view>
<!-- <view class="ool-item"> <!-- <view class="ool-item">
<mall></mall> <mall></mall>
</view> </view>
<view class="ool-item"> <view class="ool-item">
<locker></locker>
</view>
<view class="ool-item">
<rent-and-sale></rent-and-sale> <rent-and-sale></rent-and-sale>
</view>
<view class="ool-item">
<device></device>
</view> --> </view> -->
<!-- <view class="ool-item">
<spectacular-monent></spectacular-monent>
</view>
<view class="ool-item">
<value-card></value-card>
</view> -->
</view> </view>
<!-- 分类tab --> <!-- 分类tab -->
<view class="ox-dark-mask" v-if="isShowClassify" @click="hideClassify"> <view class="ox-dark-mask" v-if="isShowClassify" @click="hideClassify">
@ -141,6 +130,7 @@
import rent_and_sale from '../../components/order_list/rent_and_sale/rent_and_sale.vue'; import rent_and_sale from '../../components/order_list/rent_and_sale/rent_and_sale.vue';
import mall from '../../components/order_list/mall/mall.vue'; import mall from '../../components/order_list/mall/mall.vue';
import device from '../../components/order_list/device/device.vue'; // // import device from '../../components/order_list/device/device.vue'; // //
import competition from '../../components/order_list/competition/competition.vue'; //
import util from '../../utils/util'; import util from '../../utils/util';
import { servers } from '../../js/server'; import { servers } from '../../js/server';
@ -164,6 +154,7 @@
'rent-and-sale': rent_and_sale, 'rent-and-sale': rent_and_sale,
'mall': mall, 'mall': mall,
'device': device, 'device': device,
'competition': competition,
}, },
computed:{ computed:{
isStoreInfo(){ isStoreInfo(){
@ -407,6 +398,7 @@
if(type == 18)return API.userValueCardList; // if(type == 18)return API.userValueCardList; //
if(type == 15)return API.momentOrderList; // if(type == 15)return API.momentOrderList; //
if(this.isDevice())return API.hardwareOrderList; // if(this.isDevice())return API.hardwareOrderList; //
if(type == 14)return API.appointmentOrderList; //
}, },
// //
isDevice(){ isDevice(){
@ -519,6 +511,8 @@
return '咖啡机订单列表'; return '咖啡机订单列表';
case 7: case 7:
return '储物柜订单列表'; return '储物柜订单列表';
case 14:
return '赛事订单列表';
default: default:
return '订单' return '订单'
} }
@ -552,6 +546,8 @@
return [ {id: '1,4', name: '全部'}, {id: 1, name: '交易成功'}, {id: 4, name: '退款完成 '}]; return [ {id: '1,4', name: '全部'}, {id: 1, name: '交易成功'}, {id: 4, name: '退款完成 '}];
case 7: // status 1,2,4 1 2 退 4 case 7: // status 1,2,4 1 2 退 4
return [ {id: '1,2,4', name: '全部'}, {id: 1, name: '寄存中'}, {id: 2, name: '已完成'}, {id: 4, name: '退款完成 '}]; return [ {id: '1,2,4', name: '全部'}, {id: 1, name: '寄存中'}, {id: 2, name: '已完成'}, {id: 4, name: '退款完成 '}];
case 14: // 1,2,4 1= 4=退 2=
return [ {id: '1,2,4', name: '全部'}, {id: 1, name: '进行中'}, {id: 2, name: '已完成'}, {id: 4, name: '已退款 '}];
default: default:
return [] return []
} }

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

@ -11,6 +11,9 @@ export const ORDER_API = {
hardwareOrderInfo:`${ORIGIN}/admin/stadium/hardware/order/details`, // 硬件管理-订单详情_copy hardwareOrderInfo:`${ORIGIN}/admin/stadium/hardware/order/details`, // 硬件管理-订单详情_copy
rentballRefundDeposit:`${ORIGIN}/admin/stadium/rentball/order/refundDeposit`, // 退押金-后台 rentballRefundDeposit:`${ORIGIN}/admin/stadium/rentball/order/refundDeposit`, // 退押金-后台
hardwareOrderGet:`${ORIGIN}/admin/assistant/hardware/order/get`, // 硬件订单详情 储物柜/售货柜/水阀/咖啡机/租售柜 hardwareOrderGet:`${ORIGIN}/admin/assistant/hardware/order/get`, // 硬件订单详情 储物柜/售货柜/水阀/咖啡机/租售柜
lockEndBill:`${ORIGIN}/admin/stadium/locker/endBill`, // 储物柜-结束计费
currentUser:`${ORIGIN}/admin/assistant/currentUser`, // 获取当前用户信息
appointmentOrderInfo:`${ORIGIN}/admin/gameAppointment/orderInfo`, // 赛事订单详情
} }
export default ORDER_API; export default ORDER_API;

129
src/subpackage/order/pages/events/detail/detail.vue

@ -1,44 +1,55 @@
<template> <template>
<view class="events-detail"> <view class="events-detail">
<o-header></o-header>
<o-header
:logo='orderInfo.extension.show_logo || "-"'
:source='orderInfo.extension.show_name || "-"'
:phone='orderInfo.user_info.mobile || "-"'
:name='orderInfo.user_info.nickname || "-"'
:status='getStatusTxt(orderInfo.order_status)'
></o-header>
<!-- 个人 --> <!-- 个人 -->
<block v-if="false">
<block v-if="orderInfo&&orderInfo.match_type == 'personal'">
<view class="ed-type-box"> <view class="ed-type-box">
<view class="ed-tit">保险信息</view> <view class="ed-tit">保险信息</view>
<a-line :value="'阿拉斯加山脉'">
<a-line :value="orderInfo.safe_name || '-'">
<block slot="name">姓名</block> <block slot="name">姓名</block>
</a-line> </a-line>
<a-line :value="'4409531656666'">
<a-line :value="orderInfo.safe_id_card || '-'">
<block slot="name">身份证号码</block> <block slot="name">身份证号码</block>
</a-line> </a-line>
</view> </view>
<view class="ed-box">
<view class="ed-box" v-if="orderInfo.match_info.match_has_ext_msg&&orderInfo.match_ext_msg">
<view class="ed-tit">参赛资料</view> <view class="ed-tit">参赛资料</view>
<a-line :value="'阿拉斯加山脉'">
<a-line :value="orderInfo.match_ext_msg.name || '-'">
<block slot="name">姓名</block> <block slot="name">姓名</block>
</a-line> </a-line>
<a-line :value="'18316535485'">
<a-line :value="orderInfo.match_ext_msg.phone || '-'">
<block slot="name">手机号码</block> <block slot="name">手机号码</block>
</a-line> </a-line>
<a-line :value="'男'">
<a-line :value="orderInfo.match_ext_msg.gender==0?'女': orderInfo.match_ext_msg.gender==1?'男': '-'">
<block slot="name">性别</block> <block slot="name">性别</block>
</a-line> </a-line>
<a-line :value="'60kg'">
<a-line :value="(orderInfo.match_ext_msg.weight || 0) + 'kg'">
<block slot="name">体重</block> <block slot="name">体重</block>
</a-line> </a-line>
<block v-if="orderInfo.match_ext_msg.cert_img&&orderInfo.match_ext_msg.cert_img.length">
<view class="ed-tit">资质证书</view> <view class="ed-tit">资质证书</view>
<view class="ed-img-list"> <view class="ed-img-list">
<image></image>
<image></image>
<image></image>
<image></image>
<image></image>
<image
v-for="(e, i) in orderInfo.match_ext_msg.cert_img"
:key="i"
mode="aspectFit"
@click="previewImg(e)"
:src="e"
></image>
</view> </view>
</block>
</view> </view>
</block> </block>
<!-- 团队 --> <!-- 团队 -->
<block>
<block v-if="orderInfo&&orderInfo.match_type == 'team'">
<view class="ed-type-box"> <view class="ed-type-box">
<view class="ed-tit">团队负责人信息</view> <view class="ed-tit">团队负责人信息</view>
<a-line :value="'阿拉斯加山脉'"> <a-line :value="'阿拉斯加山脉'">
@ -62,43 +73,48 @@
</block> </block>
<view class="ed-box"> <view class="ed-box">
<view class="ed-tit">赛事信息</view> <view class="ed-tit">赛事信息</view>
<a-line :value="'欧轩科技篮球赛事'">
<a-line :value="orderInfo.match_info.match_name || '-'">
<block slot="name">赛事名称</block> <block slot="name">赛事名称</block>
</a-line> </a-line>
<a-line :value="'个人赛'">
<a-line :value="orderInfo.match_info.match_type =='personal'?'个人':orderInfo.match_info.match_type =='team'?'团队':''">
<block slot="name">赛事类型</block> <block slot="name">赛事类型</block>
</a-line> </a-line>
<a-line :value="'广州市白云区永泰路'">
<a-line :value="orderInfo.match_info.match_addr || '-'">
<block slot="name">赛事地址</block> <block slot="name">赛事地址</block>
</a-line> </a-line>
<a-line :value="'2020/09/25 7:00 ~ 2020/-9/25 15:00'">
<a-line :value="orderInfo.match_info.match_star_time + '~' + orderInfo.match_info.match_end_time">
<block slot="name">活动时间</block> <block slot="name">活动时间</block>
</a-line> </a-line>
<a-line :value="'55/人'">
<a-line :value="orderInfo.match_info.match_fee + '/人'">
<block slot="name">活动费用</block> <block slot="name">活动费用</block>
</a-line> </a-line>
</view> </view>
<view class="ed-box"> <view class="ed-box">
<view class="ed-tit">赛事信息</view> <view class="ed-tit">赛事信息</view>
<s-line :keyname="'金额小计'" :value="'¥99.99'"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥99.99'"></s-line>
<s-line :keyname="'折扣金额'" :value="'¥99.99'"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥99.99'"></s-line>
<s-line :keyname="'金额小计'" :value="'¥' + (orderInfo.amount || 0)"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥' + (orderInfo.deduction_amount || 0)"></s-line>
<s-line :keyname="'折扣金额'" :value="'¥' + (orderInfo.discount_amount || 0)"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥' + (orderInfo.coupons_amount || 0)"></s-line>
<view class="total-line"> <view class="total-line">
<text>合计支付</text>98.99
<text>合计支付</text>{{orderInfo.pay_amount || 0}}
</view> </view>
</view> </view>
<view class="ed-box"> <view class="ed-box">
<view class="ed-tit">支付详情</view> <view class="ed-tit">支付详情</view>
<p-line :keyname="'订单编号'" :value="'sc20 0822 0815 6894'" isbtn></p-line>
<p-line :keyname="'支付方式'" :value="'微信支付'"></p-line>
<p-line :keyname="'支付时间'" :value="'2020-08-22 10:12:25'"></p-line>
<p-line :keyname="'交易流水号'" :value="'202009181255364564612622'"></p-line>
<p-line :keyname="'退款编号'" :value="'kc20201230181914997632'"></p-line>
<p-line :keyname="'退款时间'" :value="'2020-12-30 18:19:14'"></p-line>
<p-line :keyname="'退款金额'" :value="'¥2300'"></p-line>
<p-line :keyname="'退款原因'" :value="'自动退款,赛程报名人数未达到最低报名人数条件'"></p-line>
<p-line :keyname="'订单编号'" :value="orderInfo.order_no || '-'" isbtn></p-line>
<p-line :keyname="'支付方式'" :value="payTypeTxt(orderInfo.pay_type)"></p-line>
<p-line :keyname="'支付时间'" :value="orderInfo.pay_time || '-'"></p-line>
<p-line :keyname="'交易流水号'" :value="orderInfo.trade_no || '-'"></p-line>
<block v-if="orderInfo.order_status == 'auto_refund' || orderInfo.order_status == 'back_refund'">
<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 || '0')"></p-line>
<p-line :keyname="'退款原因'" :value="orderInfo.refund_reason || '-'"></p-line>
</block>
</view> </view>
</view> </view>
</template> </template>
@ -118,6 +134,52 @@ export default {
's-line': s_line, 's-line': s_line,
'p-line': p_line, 'p-line': p_line,
}, },
data(){
return {
orderInfo: {
extension: {},
user_info: {},
match_ext_msg: {},
match_info: {},
}
}
},
onLoad(options){
this.getInfo(options.order_id)
},
methods: {
//
payTypeTxt: util.order_pay_type_txt,
previewImg(e){
uni.previewImage({
urls: [img]
})
},
getStatusTxt(status){
let _obj = { // -> 6/ -> 11 / -> 9
'cancel' : '已取消', // /
'no_pay' : '待付款', //
'signing' : '进行中', //
'matching' : '进行中', //
'done' : '已取消', //
'auto_refund' : '已退款', //退-/ 退
'back_refund' : '已退款', //退-退
};
return _obj[status] || '-'
},
getInfo(order_id){
util.showLoad();
server.get({
url: ORDER_API.appointmentOrderInfo,
data: { id: order_id },
failMsg: '加载失败!'
})
.then(res=>{
util.hideLoad();
this.orderInfo = res || {};
})
},
}
} }
</script> </script>
@ -161,7 +223,6 @@ export default {
margin-bottom: 30upx; margin-bottom: 30upx;
width: 180upx; width: 180upx;
height: 180upx; height: 180upx;
background-color: skyblue;
} }
} }
.eb-btn{ .eb-btn{

203
src/subpackage/order/pages/locker/detail/detail.vue

@ -1,95 +1,104 @@
<template> <template>
<view class="locker-order-info"> <view class="locker-order-info">
<o-header></o-header>
<o-header
:logo='orderInfo.stadium_logo'
:source='orderInfo.stadium_name'
:phone='orderInfo.mobile'
:name='orderInfo.nickname'
:status='pay_txt(orderInfo.pay_status)'
></o-header>
<view class="loi-box"> <view class="loi-box">
<view class="lb-tit">租用详情</view> <view class="lb-tit">租用详情</view>
<a-line :value="'欧轩智能储物柜'">
<a-line :value="orderInfo.hardware_name || '-'">
<block slot="name">设备名称</block> <block slot="name">设备名称</block>
</a-line> </a-line>
<a-line :value="'7号柜'">
<a-line :value="orderInfo.cabinet_name || '-'">
<block slot="name">柜子编号</block> <block slot="name">柜子编号</block>
</a-line> </a-line>
<a-line :value="'2020-01-10 15:02:24 '">
<a-line :value="orderInfo.start_time || '-'">
<block slot="name">租借时间</block> <block slot="name">租借时间</block>
</a-line> </a-line>
<a-line :value="'2020-01-10 17:37:33'">
<a-line :value="orderInfo.end_time || '-'">
<block slot="name">归还时间</block> <block slot="name">归还时间</block>
</a-line> </a-line>
<a-line :value="'2小时35分9秒'" value-color="#019874">
<a-line :value="orderInfo.duration || '-'" value-color="#019874">
<block slot="name">租借时长</block> <block slot="name">租借时长</block>
</a-line> </a-line>
</view> </view>
<view class="loi-box"> <view class="loi-box">
<view class="lb-tit">费用详情</view> <view class="lb-tit">费用详情</view>
<view class="lb-section">
<view class="lb-section" v-if="orderInfo.late_status">
<view class="ls-header"> <view class="ls-header">
<view class="over-time"><text>超时时长</text>1小时35分9秒 </view>
<view class="over-price">缴欠费金额<text>4</text> 超时费用计算标准1/小时</view>
<view class="over-time"><text>超时时长</text>{{ orderInfo.late_duration || '-' }}</view>
<view class="over-price">缴欠费金额<text>{{ orderInfo.late_amount || 0 }}</text> 超时费用计算标准{{ orderInfo.late_price_hint || '-' }}</view>
</view> </view>
<view class="lb-price"> <view class="lb-price">
<s-line :keyname="'商品金额小计'" :value="'¥6'"></s-line>
<s-line :keyname="'金额折扣'" :value="'¥6'"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥6'"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥6'"></s-line>
<view class="lp-total"><text>合计支付</text>5</view>
<s-line :keyname="'商品金额小计'" :value="'¥' + (orderInfo.late_amount || 0)"></s-line>
<s-line :keyname="'金额折扣'" :value="'¥' + (orderInfo.late_discount_amount || 0)"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥' + (orderInfo.late_deduction_amount || 0)"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥' + (orderInfo.late_coupons_amount || 0)"></s-line>
<view class="lp-total"><text>合计支付</text>{{ orderInfo.late_pay_amount || 0 }}</view>
</view> </view>
<view class="lb-line"></view> <view class="lb-line"></view>
<view class="lb-pay-info"> <view class="lb-pay-info">
<p-line :keyname="'下单时间'" :value="'2020-08-22 10:30:40'" isbtn></p-line>
<p-line :keyname="'订单编号'" :value="'sc20 0822 0815 6894'"></p-line>
<p-line :keyname="'支付方式'" :value="'会员卡支付'"></p-line>
<p-line :keyname="'交易流水号'" :value="'202009181255364564612622'"></p-line>
<p-line :keyname="'下单时间'" :value="orderInfo.start_time || '-'" isbtn></p-line>
<p-line :keyname="'订单编号'" :value="orderInfo.order_no || '-'"></p-line>
<p-line :keyname="'支付方式'" :value="status_txt(orderInfo.pay_type)"></p-line>
<p-line :keyname="'交易流水号'" :value="orderInfo.trade_no || '-'"></p-line>
</view> </view>
</view> </view>
<view class="lb-section"> <view class="lb-section">
<view class="ls-header"> <view class="ls-header">
<view class="prestore-line"> <view class="prestore-line">
<view>预寄存时长1小时</view>
<view>预寄存时长数量2</view>
<view>预寄存时长{{ orderInfo.dimension || '-' }}</view>
<view>预寄存时长数量{{ orderInfo.locker_price_number || 0 }}</view>
</view> </view>
<view class="prestore-line"> <view class="prestore-line">
<view>收费标准2/小时 </view>
<view>合计预寄存时长2小时 </view>
<view>收费标准{{ orderInfo.locker_price_hint || '-' }}</view>
<view>合计预寄存时长{{ orderInfo.duration || '-' }} </view>
</view> </view>
</view> </view>
<view class="lb-price"> <view class="lb-price">
<s-line :keyname="'商品金额小计'" :value="'¥6'"></s-line>
<s-line :keyname="'金额折扣'" :value="'¥6'"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥6'"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥6'"></s-line>
<view class="lp-total"><text>合计支付</text>5</view>
<s-line :keyname="'商品金额小计'" :value="'¥' + orderInfo.amount || 0"></s-line>
<s-line :keyname="'金额折扣'" :value="'¥' + (orderInfo.discount_amount || 0)"></s-line>
<s-line :keyname="'积分抵扣'" :value="'¥' + (orderInfo.deduction_amount || 0)"></s-line>
<s-line :keyname="'优惠券优惠'" :value="'¥' + (orderInfo.coupons_amount || 0)"></s-line>
<view class="lp-total"><text>合计支付</text>{{ orderInfo.pay_amount || 0 }}</view>
</view> </view>
<view class="lb-line"></view> <view class="lb-line"></view>
<view class="lb-pay-info"> <view class="lb-pay-info">
<p-line :keyname="'下单时间'" :value="'2020-08-22 10:30:40'" ></p-line>
<p-line :keyname="'订单编号'" :value="'sc20 0822 0815 6894'" isbtn></p-line>
<p-line :keyname="'支付方式'" :value="'会员卡支付'"></p-line>
<p-line :keyname="'交易流水号'" :value="'202009181255364564612622'"></p-line>
<p-line :keyname="'下单时间'" :value="orderInfo.start_time || '-'" isbtn></p-line>
<p-line :keyname="'订单编号'" :value="orderInfo.order_no || '-'"></p-line>
<p-line :keyname="'支付方式'" :value="status_txt(orderInfo.pay_type)"></p-line>
<p-line :keyname="'交易流水号'" :value="orderInfo.trade_no || '-'"></p-line>
</view>
</view> </view>
</view> </view>
<view class="loi-fixd-bar">
<view @click="endBtn">结束计费</view>
</view> </view>
<view class="loi-btn">结束计费</view>
<view class="loi-mask">
<view class="lm-content">
<view class="loi-mask" v-if="isEndModal" @click="closeEndModal">
<view class="lm-content" @click.stop="_=>false">
<image class="lm-close" mode="aspectFit" src="/subpackage/order/static/images/close.png" @click="closeEndModal"></image>
<view class="lc-tit">结束计费</view> <view class="lc-tit">结束计费</view>
<view class="lc-info"> <view class="lc-info">
<a-line :value="'张贺语'">
<a-line :value="userInfo.username || '-'">
<block slot="name">操作人</block> <block slot="name">操作人</block>
</a-line> </a-line>
<a-line :value="'1小时25分9秒'" value-color="#019874">
<a-line :value="orderInfo.total_duration || '-'" value-color="#019874">
<block slot="name">时长合计</block> <block slot="name">时长合计</block>
</a-line> </a-line>
<a-line :value="'¥100.2'" value-color="#ff873e">
<a-line :value="orderInfo.late_amount || '-'" value-color="#ff873e">
<block slot="name">金额合计</block> <block slot="name">金额合计</block>
</a-line> </a-line>
</view> </view>
<view class="lc-ipt"> <view class="lc-ipt">
<view class="li-txt"><text>*</text>请输入金额</view> <view class="li-txt"><text>*</text>请输入金额</view>
<view class="li-frame"><input /></view>
<view class="li-frame"><input v-model="iptPrice" /></view>
</view> </view>
<view class="lc-btn">确认</view>
<view class="lc-btn" @click="confirmEndBtn">确认</view>
</view> </view>
</view> </view>
</view> </view>
@ -100,12 +109,101 @@ import header from '../../../components/header/header.vue';
import a_line from '../../../../../components/order_list/a_line/a_line.vue'; import a_line from '../../../../../components/order_list/a_line/a_line.vue';
import s_line from '../../../components/s_line/s_line.vue'; import s_line from '../../../components/s_line/s_line.vue';
import p_line from '../../../components/p_line/p_line.vue'; import p_line from '../../../components/p_line/p_line.vue';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
import util from '../../../../../utils/util';
export default { export default {
components: { components: {
'o-header': header, 'o-header': header,
'a-line': a_line, 'a-line': a_line,
's-line': s_line, 's-line': s_line,
'p-line': p_line, 'p-line': p_line,
},
data(){
return {
orderInfo: {},
isEndModal: false,
iptPrice: '',
userInfo: {},
}
},
onLoad(options){
this.getInfo(options.order_no);
},
methods: {
//
status_txt: util.order_pay_type_txt,
pay_txt(status){
// status 1,2,4 1 2 退 4
let _obj = {
1: '寄存中',
2: '已完成',
4: '已退款'
};
return _obj[status] || '-'
},
openEndModal(){
this.isEndModal = true;
},
closeEndModal(){
this.isEndModal = false;
},
endBtn:util.debounce(function(){
this.getCurUserInfo();
}, 300, true),
refreshInfo(){
let { orderInfo } = this;
this.closeEndModal();
this.getInfo(orderInfo.order_no);
},
getInfo(order_no){
util.showLoad();
server.get({
url: ORDER_API.hardwareOrderGet,
data: { order_no },
failMsg: '加载失败!'
})
.then(res=>{
util.hideLoad();
this.orderInfo = res || {};
})
},
getCurUserInfo(){
util.showLoad();
server.get({
url: ORDER_API.currentUser,
data: { },
failMsg: '加载用户信息失败!'
})
.then(res=>{
util.hideLoad();
let _data = res || {};
this.userInfo = _data;
if(_data&&_data.id)this.openEndModal();
console.warn('用户信息', res);
})
},
confirmEndBtn: util.debounce(function(){
let { orderInfo, iptPrice } = this;
if(iptPrice == '')return util.showNone('请输入金额!');
util.showLoad();
server.get({
url: ORDER_API.lockEndBill,
data: { order_no: orderInfo.order_no, amount: iptPrice },
isDefaultGet: false
})
.then(res=>{
util.hideLoad();
if(res.data.code == 0){
util.showNone(res.data.message || '操作成功!');
setTimeout(this.refreshInfo, 1200);
console.warn(res)
}else{
util.showNone(res.data.message || '操作失败!');
}
console.warn(res);
})
}, 300, true),
} }
} }
</script> </script>
@ -113,9 +211,9 @@ export default {
<style lang="scss"> <style lang="scss">
@import '~style/public.scss'; @import '~style/public.scss';
.locker-order-info{ .locker-order-info{
padding-bottom: 0upx;
padding-bottom: calc( 0upx + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
padding-bottom: calc( 0upx + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
padding-bottom: 142upx;
padding-bottom: calc( 142upx + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
padding-bottom: calc( 142upx + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
} }
.loi-box{ .loi-box{
margin-bottom: 24upx; margin-bottom: 24upx;
@ -194,9 +292,16 @@ export default {
} }
} }
.loi-btn{
margin: 0 auto;
width: 702upx;
.loi-fixd-bar{
position: fixed;
left: 0;
bottom: 0;
width: 100%;
padding: 10upx 24upx;
padding-bottom: calc( 10upx + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
padding-bottom: calc( 10upx + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
background-color: #f2f2f7;
>view{
text-align: center; text-align: center;
line-height: 112upx; line-height: 112upx;
border-radius: 10upx; border-radius: 10upx;
@ -204,6 +309,7 @@ export default {
background-color: $themeColor; background-color: $themeColor;
color: #fff; color: #fff;
} }
}
.loi-mask{ .loi-mask{
position: fixed; position: fixed;
left: 0; left: 0;
@ -220,6 +326,13 @@ export default {
width: 620upx; width: 620upx;
background-color: #fff; background-color: #fff;
border-radius: 10upx; border-radius: 10upx;
.lm-close{
position: absolute;
right: 30upx;
top: 30upx;
width: 34upx;
height: 34upx;
}
.lc-tit{ .lc-tit{
margin-bottom: 34upx; margin-bottom: 34upx;
text-align: center; text-align: center;

2
src/subpackage/order/pages/order_manage/order_manage.vue

@ -38,7 +38,7 @@ export default {
util.routeTo(getTabRoutePath() + `?order_type=${ele.orderType}`,'nT'); util.routeTo(getTabRoutePath() + `?order_type=${ele.orderType}`,'nT');
}, },
isFinish(key){ isFinish(key){
let _endKeyArr = [1, 2, 3, 4, 5, 7, 9, 10, 11, 14, 16, 15, 13 ]
let _endKeyArr = [1, 2, 3, 4, 5, 7, 9, 10, 11, 14, 16, 15, 13, 6 ]
return _endKeyArr.includes(key); return _endKeyArr.includes(key);
} }
} }

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

After

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

14
src/utils/util.js

@ -363,6 +363,17 @@ function $_emit(name, data){
function getFilterJson(obj){ function getFilterJson(obj){
return obj return obj
} }
function order_pay_type_txt(status){
let _obj = {
0: '微信支付',
1: '支付宝支付',
2: '会员卡支付',
3: '商家主动',
};
return _obj[status] || '-'
}
export default { export default {
formatTime, formatTime,
formatNumber, formatNumber,
@ -393,5 +404,6 @@ export default {
changeLowerCase, changeLowerCase,
isProfile, isProfile,
$_once, $_once,
$_emit
$_emit,
order_pay_type_txt
} }
Loading…
Cancel
Save