12 changed files with 1031 additions and 38 deletions
-
12src/pages.json
-
2src/subpackage/order/components/order_list/header.vue
-
68src/subpackage/order/components/search_bar.vue
-
7src/subpackage/order/js/api.js
-
18src/subpackage/order/js/handle.js
-
261src/subpackage/order/pages/booking_card/modules/refund_modal.vue
-
84src/subpackage/order/pages/booking_card/modules/time_zone.vue
-
153src/subpackage/order/pages/booking_card/order_info.vue
-
155src/subpackage/order/pages/booking_card/order_list.vue
-
116src/subpackage/order/pages/booking_card/search.vue
-
191src/subpackage/order/pages/booking_card/use_record.vue
-
2src/subpackage/order/pages/timekeeping/modules/order_search/search_bar.vue
@ -0,0 +1,68 @@ |
|||
<template> |
|||
<view class="search-bar"> |
|||
<view class="sb-box"> |
|||
<image class="sb-search-icon" mode="aspectFit" src="/subpackage/order/static/images/search.png"></image> |
|||
<input class="sb-ipt" :placeholder="placeholder" v-model="searchTxt" confirm-type="search" @confirm="iptConfirm" /> |
|||
<image class="sb-clear-icon" v-if="searchTxt!=''" mode="aspectFit" src="/subpackage/order/static/images/round_close.png" @click="clearSearch"></image> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
placeholder: { |
|||
type: String, |
|||
default: '请输入订单号' |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
searchTxt: '' |
|||
} |
|||
}, |
|||
methods: { |
|||
iptConfirm(){ |
|||
this.$emit('confirm:search', this.searchTxt); |
|||
}, |
|||
clearSearch(){ |
|||
this.searchTxt = ''; |
|||
this.$emit('click:clear', ''); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.search-bar{ |
|||
margin-bottom: 24upx; |
|||
height: 144upx; |
|||
background-color: #fff; |
|||
@include ctf(center); |
|||
.sb-box{ |
|||
padding: 0 20upx; |
|||
height: 92upx; |
|||
width: 702upx; |
|||
border-radius: 10upx; |
|||
background-color: #f2f2f7; |
|||
@include ctf(center); |
|||
.sb-search-icon{ |
|||
margin-right: 20upx; |
|||
flex-shrink: 0; |
|||
width: 40upx; |
|||
height: 40upx; |
|||
} |
|||
.sb-clear-icon{ |
|||
flex-shrink: 0; |
|||
margin-right: 0; |
|||
margin-left: 20upx; |
|||
width: 32upx; |
|||
height: 32upx; |
|||
} |
|||
.sb-ipt{ |
|||
flex-grow: 1; |
|||
@include flcw(32upx, 44upx, #1A1A1A); |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,18 @@ |
|||
import { formatDate } from '@/utils/util'; |
|||
|
|||
// 初始化默认时间
|
|||
export function initPeriod({ beforeDays, afterDays }) { |
|||
let _dateTimeStemp = new Date().getTime(); |
|||
let _daysTimeStemp = (beforeDays || afterDays || 0) * 24 * 60 * 60 * 1000; |
|||
let _curDate = formatDate({}); |
|||
if (beforeDays) return { |
|||
start: formatDate({ date: _dateTimeStemp - _daysTimeStemp }), |
|||
end: _curDate |
|||
} |
|||
if (afterDays) return { |
|||
start: _curDate, |
|||
end: formatDate({ date: _dateTimeStemp + _daysTimeStemp }) |
|||
} |
|||
return {}; |
|||
|
|||
} |
@ -0,0 +1,261 @@ |
|||
<template> |
|||
<view class="order-refund-modal"> |
|||
<view class="orm-mask" v-show="isShow"> |
|||
<view class="om-content"> |
|||
<image class="oc-close" mode="aspectFit" src="/subpackage/order/static/images/close.png" @click="hide"></image> |
|||
<view class="oc-title">退款</view> |
|||
<view class="oc-section"> |
|||
<view class="os-info"> |
|||
<view class="oi-name">{{ refundInfo.stadium_name || '' }}</view> |
|||
<view class="oi-line">订单编号:{{ refundInfo.order_no || '' }}</view> |
|||
<view class="oi-line">手机号码:{{ refundInfo.mobile || '' }}</view> |
|||
|
|||
<view class="os-ipts"> |
|||
<view class="oi-item"> |
|||
<view class="oi-name"> |
|||
<text class="on-txt">*</text> |
|||
退款金额 |
|||
</view> |
|||
<view class="oi-right"> |
|||
<input |
|||
class="or-ipt" |
|||
type="digit" |
|||
v-model="iptInfo.refund_amount" |
|||
:disabled="refundInfo.refund_times > 0" |
|||
:class="{ 'or-disabled': refundInfo.refund_times > 0 }" |
|||
/> |
|||
<view class="or-tip">可退{{ refundInfo.refundable_amount || 0 }}元</view> |
|||
</view> |
|||
</view> |
|||
<view class="oi-item"> |
|||
<view class="oi-name"> |
|||
<text class="on-txt">*</text> |
|||
退款积分 |
|||
</view> |
|||
<view class="oi-right"> |
|||
<input |
|||
class="or-ipt" type="digit" |
|||
v-model="iptInfo.refund_integral" |
|||
:disabled="refundInfo.refund_times > 0" |
|||
:class="{ 'or-disabled': refundInfo.refund_times > 0 }" |
|||
/> |
|||
<view class="or-tip">可退{{ refundInfo.refundable_integral || 0 }}积分</view> |
|||
</view> |
|||
</view> |
|||
<view class="oi-item"> |
|||
<view class="oi-name"> |
|||
<text class="on-txt">*</text> |
|||
扣减时间 |
|||
</view> |
|||
<view class="oi-right"> |
|||
<input |
|||
class="or-ipt" type="digit" |
|||
v-model="iptInfo.refund_time" |
|||
:disabled="refundInfo.refund_times > 0" |
|||
:class="{ 'or-disabled': refundInfo.refund_times > 0 }" |
|||
/> |
|||
<view class="or-tip">可扣减时间{{ refundInfo.refundable_time || 0 }}小时</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="os-remark"> |
|||
<view class="or-txt">备注:</view> |
|||
<view class="or-txt">订场卡订单退款后,根据输入的扣减时间,将会从订场卡剩余可用时间里扣减相对应的时间。</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="oc-btns"> |
|||
<view class="ob-item" @click="cancelBtn">取消</view> |
|||
<view class="ob-item" @click="confirmBtn">确认</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
/** |
|||
* PM: |
|||
* 什么状态下都能退 |
|||
* 全部订单都能退两次, 所有订单最多只能退2次款 |
|||
* 只要订单金额是未全退的,都能退 |
|||
* 0元订单不能退 |
|||
* |
|||
*/ |
|||
import { mapState } from 'vuex'; |
|||
import { showModal } from '@/utils/util'; |
|||
export default { |
|||
computed: { |
|||
...mapState([ 'brandInfo' ]) |
|||
}, |
|||
data() { |
|||
return { |
|||
isShow: false, |
|||
refundInfo: { |
|||
/** |
|||
* @param {String} stadium_name 店铺名称 |
|||
* @param {String} order_no 订单编号 |
|||
* @param {String} mobile 手机号码 |
|||
* @param {String} refundable_amount 退款金额 |
|||
* @param {String} refundable_integral 退款积分 |
|||
* @param {String} refundable_hours 可退时间 |
|||
* @param {Number} refund_times 退款次数 |
|||
* @param {Function} cancel 取消回调 |
|||
* @param {Function} confirm 确认回调 |
|||
*/ |
|||
}, |
|||
iptInfo: { |
|||
refund_amount: '', |
|||
refund_integral: '', |
|||
refund_time: '' |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
show(initData){ |
|||
let { brandInfo } = this; |
|||
if(!brandInfo?.permission?.['1018']){ |
|||
this.isShow = true; |
|||
this.init(initData); |
|||
}else{ |
|||
showModal({ |
|||
content: '您没有退款权限', |
|||
}) |
|||
} |
|||
|
|||
}, |
|||
init(data){ |
|||
this.iptInfo.refund_amount = data?.refundable_amount || '0'; |
|||
this.iptInfo.refund_integral = data?.refundable_integral || '0'; |
|||
this.iptInfo.refund_time = data?.refundable_hours || '0'; |
|||
this.refundInfo = data; |
|||
}, |
|||
hide(){ |
|||
this.isShow = false; |
|||
}, |
|||
cancelBtn() { |
|||
this.hide(); |
|||
this.$emit('click:cancel'); |
|||
this.refundInfo?.cancel?.(0); |
|||
}, |
|||
confirmBtn() { |
|||
let { iptInfo, refundInfo } = this; |
|||
|
|||
this.$emit('click:confirm'); |
|||
this.refundInfo?.confirm?.({ |
|||
refund_amount: +iptInfo?.refund_amount || 0, |
|||
refund_integral: +iptInfo?.refund_integral || 0, |
|||
refund_time: +iptInfo?.refund_time || 0, |
|||
}); |
|||
this.hide(); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.order-refund-modal{} |
|||
|
|||
.orm-mask{ |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
background: rgba(0,0,0,.5); |
|||
z-index: 10; |
|||
} |
|||
.om-content{ |
|||
position: absolute; |
|||
top: 50%; |
|||
left: 50%; |
|||
transform: translate(-50%, -50%); |
|||
padding-bottom: 80upx; |
|||
width: 620upx; |
|||
border-radius: 10px; |
|||
background: #fff; |
|||
.oc-close{ |
|||
position: absolute; |
|||
top: 30upx; |
|||
right: 30upx; |
|||
width: 34upx; |
|||
height: 34upx; |
|||
} |
|||
.oc-title{ |
|||
padding-top: 78upx; |
|||
text-align: center; |
|||
@include flcw(32upx, 44upx, #333, 500); |
|||
} |
|||
.oc-section{ |
|||
padding: 30upx 30upx 0; |
|||
@include ctf(center); |
|||
.os-info{ |
|||
.oi-name{ |
|||
@include flcw(28upx, 48upx, #333); |
|||
} |
|||
.oi-line{ |
|||
@include flcw(28upx, 48upx, #9C9C9F); |
|||
} |
|||
.os-ipts{ |
|||
padding-top: 34upx; |
|||
.oi-item{ |
|||
display: flex; |
|||
align-items: flex-start; |
|||
.oi-name{ |
|||
@include flcw(28upx, 56upx, #333333); |
|||
.on-txt{ |
|||
color: #EA5061; |
|||
} |
|||
} |
|||
.oi-right{ |
|||
margin-left: 16upx; |
|||
flex-shrink: 0; |
|||
width: 312upx; |
|||
.or-ipt{ |
|||
display: block; |
|||
box-sizing: border-box; |
|||
padding: 0 20upx; |
|||
width: 100%; |
|||
height: 56upx; |
|||
border-radius: 10upx; |
|||
border: 2upx solid #D8D8D8; |
|||
@include flcw(28upx, 48upx, #9C9C9F); |
|||
&.or-disabled{ |
|||
background: #cecece; |
|||
color: #9C9C9F; |
|||
} |
|||
} |
|||
.or-tip{ |
|||
padding-left: 8upx; |
|||
@include flcw(24upx, 48upx, #EA5061); |
|||
@include tHide; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.os-remark{ |
|||
.or-txt{ |
|||
@include flcw(28upx, 48upx, #1A1A1A); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.oc-btns{ |
|||
margin-top: 32upx; |
|||
padding: 0 54upx; |
|||
@include ctf(space-between); |
|||
.ob-item{ |
|||
width: 240upx; |
|||
height: 88upx; |
|||
text-align: center; |
|||
border: 2upx solid $mColor; |
|||
border-radius: 10upx; |
|||
@include flcw(32upx, 84upx, $mColor, 500); |
|||
&+.ob-item{ |
|||
background: $mColor; |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,84 @@ |
|||
<template> |
|||
<view class="time-zone"> |
|||
<picker mode="date" @change="startTimeChange"> |
|||
<view class="tz-box"> |
|||
<input disabled class="tb-ipt" placeholder="选择时间" :value="timeStart" /> |
|||
<view class="tb-icon"></view> |
|||
</view> |
|||
</picker> |
|||
|
|||
<text class="tz-txt">至</text> |
|||
|
|||
<picker mode="date" @change="endTimeChange"> |
|||
<view class="tz-box"> |
|||
<input disabled class="tb-ipt" placeholder="选择时间" :value="timeEnd" /> |
|||
<view class="tb-icon"></view> |
|||
</view> |
|||
</picker> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { showNone } from "@/utils/util"; |
|||
export default { |
|||
data(){ |
|||
return { |
|||
timeStart: '', |
|||
timeEnd: '' |
|||
} |
|||
}, |
|||
methods: { |
|||
startTimeChange(e){ |
|||
let { timeEnd } = this; |
|||
let _curTime = e?.detail?.value || ''; |
|||
let _startTimeStamps = new Date(_curTime.replace(/\-/g, '/')).getTime(); |
|||
let _endTimeStamps = new Date(timeEnd.replace(/\-/g, '/')).getTime(); |
|||
if(_endTimeStamps && _startTimeStamps > _endTimeStamps)return showNone('开始时间不能大于结束时间'); |
|||
this.timeStart = _curTime; |
|||
this.$emit('change:time', { start: _curTime, end: timeEnd }); |
|||
}, |
|||
endTimeChange(e){ |
|||
let { timeStart } = this; |
|||
let _curTime = e?.detail?.value || ''; |
|||
let _startTimeStamps = new Date(timeStart.replace(/\-/g, '/')).getTime(); |
|||
let _endTimeStamps = new Date(_curTime.replace(/\-/g, '/')).getTime(); |
|||
if(_startTimeStamps && _startTimeStamps > _endTimeStamps)return showNone('结束时间不能小于开始时间'); |
|||
this.timeEnd = _curTime; |
|||
this.$emit('change:time', { start: timeStart, end: _curTime }); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.time-zone{ |
|||
padding: 26upx 30upx; |
|||
background: #fff; |
|||
@include ctf(space-between); |
|||
.tz-box{ |
|||
width: 312upx; |
|||
height: 92upx; |
|||
padding: 0 20upx; |
|||
background: #F2F2F7; |
|||
border-radius: 10upx; |
|||
@include ctf; |
|||
.tb-ipt{ |
|||
flex-grow: 1; |
|||
height: 100%; |
|||
@include flcw(32upx, 44upx, #333333); |
|||
|
|||
} |
|||
.tb-icon{ |
|||
flex-shrink: 0; |
|||
width: 0; |
|||
height: 0; |
|||
border-left: 12upx solid transparent; |
|||
border-right: 12upx solid transparent; |
|||
border-top: 12upx solid #333333; |
|||
} |
|||
} |
|||
.tz-txt{ |
|||
@include flcw(28upx, 40upx, #9A9A9D); |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,116 @@ |
|||
<template> |
|||
<view class="order-search"> |
|||
<search-bar |
|||
placeholder="请输入订单号/手机号码" |
|||
@confirm:search="searchOrder" |
|||
></search-bar> |
|||
<view class="os-list"> |
|||
<block v-for="(e, i) in orderLs" :key="i"> |
|||
<view class="tl-item"> |
|||
<item-temp |
|||
:stadium="e.brand_name" |
|||
:status="e.pay_status_text" |
|||
@click:item="itemClick(e)" |
|||
> |
|||
<kv-line label="订单号:">{{ e.order_no || '-' }}</kv-line> |
|||
<kv-line label="订场卡名称:">{{ e.card_info_name || '-' }}</kv-line> |
|||
<kv-line label="手机号码:">{{ e.mobile || '-' }}</kv-line> |
|||
<kv-line label="支付时间:">{{ e.pay_time || '-' }}</kv-line> |
|||
<kv-line label="来源:">{{ e.source || '-' }}</kv-line> |
|||
</item-temp> |
|||
</view> |
|||
</block> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import search_bar from '../../components/search_bar.vue'; |
|||
import itemTemp from "../../components/order_list/item_temp.vue"; |
|||
import kvLine from "../../components/kv_line.vue"; |
|||
|
|||
import { ORDER_API } from '../../js/api'; |
|||
import server from '../../js/server'; |
|||
import { showLoad, hideLoad, showNone, routeTo } from '@/utils/util'; |
|||
export default { |
|||
components: { |
|||
'search-bar': search_bar, |
|||
itemTemp, |
|||
kvLine, |
|||
}, |
|||
data() { |
|||
return { |
|||
brand_id: '', |
|||
orderLs: [], |
|||
page: 1, |
|||
searchTxt: '' |
|||
} |
|||
}, |
|||
onLoad(options) { |
|||
let _bid = options?.brand_id || ''; |
|||
this.brand_id = _bid; |
|||
}, |
|||
onReachBottom(){ |
|||
let { page, brand_id, searchTxt } = this; |
|||
this.cardOrderList({ |
|||
brand_id: brand_id ?? '', |
|||
key: searchTxt ?? '', |
|||
page: ++page |
|||
}) |
|||
}, |
|||
methods: { |
|||
itemClick(e){ |
|||
let _qryStr = `brand_id=${e.brand_id ?? ''}&order_no=${e.order_no ?? ''}`; |
|||
routeTo(`/subpackage/order/pages/booking_card/order_info?${_qryStr}`, 'nT'); |
|||
}, |
|||
searchOrder(value){ |
|||
let { brand_id } = this; |
|||
this.searchTxt = value; |
|||
this.page = 1; |
|||
this.cardOrderList({ brand_id: +brand_id, key: value }); |
|||
}, |
|||
// 订场卡订单 - 列表 |
|||
cardOrderList({ brand_id, stadium_id = '', status = '', key = '', begin = '', end = '', page = 1, page_size = 10 }){ |
|||
showLoad(); |
|||
return server.post({ |
|||
url: ORDER_API.cardOrderList, |
|||
data: { |
|||
brand_id: +brand_id, stadium_id, |
|||
status, key, |
|||
begin, end, |
|||
page, page_size |
|||
}, |
|||
isDefaultGet: false, |
|||
}) |
|||
.then(res => { |
|||
hideLoad(); |
|||
let _data = res?.data || {}; |
|||
if(_data.code === 0){ |
|||
let _ls = _data?.data?.list || []; |
|||
if(page === 1)return this.orderLs = _ls; |
|||
if(_ls.length <= 0)return showNone('没有更多!'); |
|||
this.orderLs = [...this.orderLs, ..._ls]; |
|||
this.page = page; |
|||
}else{ |
|||
return Promise.reject(_data); |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
hideLoad(); |
|||
showModal({ content: err.message || '加载列表失败!' }) |
|||
console.warn('subpackage order bookingcard order list cardSoldList err --->', err); |
|||
}) |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.os-list{ |
|||
padding: 24upx; |
|||
@include isPd(24upx); |
|||
.tl-item + .tl-item{ |
|||
margin-top: 24upx; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,191 @@ |
|||
<template> |
|||
<view class="use-record"> |
|||
<time-zone @change:time="timeChange"></time-zone> |
|||
<view class="ur-ls"> |
|||
<view class="ul-item" v-for="(e, i) in usageLs" :key="i"> |
|||
<view class="ui-tit-bar"> |
|||
<view class="utb-status">{{ e.usage_type || '-' }}</view> |
|||
<view class="utb-time" :class="{ 'ut-active': e.card_hours_usage > 0 }">{{ e.card_hours_usage || '-' }}小时</view> |
|||
</view> |
|||
<view class="ui-lines"> |
|||
<view class="uli-item"> |
|||
<view class="ui-label">操作人:</view> |
|||
<view class="ui-value">{{ e.source || '-' }}</view> |
|||
</view> |
|||
<view class="uli-item"> |
|||
<view class="ui-label">余额:</view> |
|||
<view class="ui-value">{{ e.card_hours_surplus || '0' }}小时</view> |
|||
</view> |
|||
<view class="uli-item" v-if="e.link_order_no"> |
|||
<view class="ui-label">订单号:</view> |
|||
<view class="ui-num" @click="toOrderInfo(e)"> |
|||
<view class="un-txt">{{ e.link_order_no || '-' }}</view> |
|||
<!-- <image class="un-icon" mode="aspectFit" src="/subpackage/booking_card/static/images/arrow_green.png"></image> --> |
|||
</view> |
|||
</view> |
|||
<view class="uli-item"> |
|||
<view class="ui-label">使用时间:</view> |
|||
<view class="ui-value">{{ e.created_at || '-' }}</view> |
|||
</view> |
|||
<view class="uli-item"> |
|||
<view class="ui-label">说明:</view> |
|||
<view class="ui-value">{{ e.desc || '-' }}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import time_zone from "./modules/time_zone.vue"; |
|||
|
|||
import { ORDER_API } from '../../js/api'; |
|||
import server from '../../js/server'; |
|||
import { showLoad, hideLoad, showNone, routeTo } from '@/utils/util'; |
|||
|
|||
export default { |
|||
components: { |
|||
"time-zone": time_zone |
|||
}, |
|||
data(){ |
|||
return { |
|||
usageLs: [], |
|||
times: { |
|||
start: '', |
|||
end: '' |
|||
}, |
|||
page: 1, |
|||
optionsQuery: {} |
|||
} |
|||
}, |
|||
onLoad(options){ |
|||
this.getUsercardUsage({ |
|||
brand_id: options?.brand_id || '', |
|||
card_no: options?.card_no || '' |
|||
}) |
|||
this.optionsQuery = options || {}; |
|||
}, |
|||
onReachBottom(){ |
|||
let { page, times, optionsQuery } = this; |
|||
this.getUsercardUsage({ |
|||
brand_id: optionsQuery?.brand_id || '', |
|||
card_no: optionsQuery?.card_no || '', |
|||
page: ++page, |
|||
start_time: times.start, |
|||
end_time: times.end |
|||
}) |
|||
}, |
|||
methods: { |
|||
toOrderInfo(e){ |
|||
// if(!e.link_order_no)return; |
|||
// let _qryStr = `order_no=${e.link_order_no}&brand_id=${e.brand_id || ''}&stadium_id=${ e.stadium_id || '' }`; |
|||
// // 20241127 后端: usage_type === '抵扣' || usage_type === '退款' 的话就跳转订场订单 其他就是订场卡 |
|||
// let _pathStr = '/subpackage/booking_card/pages/mine/detail'; |
|||
// if(['抵扣', '退款' ].includes(e.usage_type))_pathStr = `/pages/venue/venue_order_detail/venue_order_detail`; |
|||
// routeTo(`${_pathStr}?${_qryStr}`, 'nT'); |
|||
}, |
|||
timeChange(e){ |
|||
let { optionsQuery } = this; |
|||
let { start, end } = e; |
|||
this.times = { start, end }; |
|||
this.usageLs = []; |
|||
this.page = 1; |
|||
this.getUsercardUsage({ |
|||
brand_id: optionsQuery?.brand_id || '', |
|||
card_no: optionsQuery?.card_no || '', |
|||
start_time: start, |
|||
end_time: end |
|||
}) |
|||
}, |
|||
getUsercardUsage({ brand_id = '', card_no = '', page = 1, page_size = 10, start_time = '', end_time = '' }){ |
|||
showLoad(); |
|||
return server.get({ |
|||
url: ORDER_API.cardSoldUsage, |
|||
data: { brand_id, card_no, page, page_size, start_time, end_time }, |
|||
failMsg: '获取记录失败' |
|||
}) |
|||
.then(res => { |
|||
hideLoad(); |
|||
let _ls = res.list || []; |
|||
// let _ls = res?.list || []; |
|||
if(page === 1)return this.usageLs = _ls; |
|||
if(!_ls.length)return showNone('没有更多!'); |
|||
this.page = page; |
|||
return this.usageLs = [...this.usageLs, ..._ls]; |
|||
|
|||
}) |
|||
.catch(err => { |
|||
hideLoad(); |
|||
console.warn('subpackage order booking card use record getUsercardUsage err --->', err); |
|||
// return Promise.reject(err); |
|||
}) |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.use-record{ |
|||
@include isPd(24upx); |
|||
} |
|||
.ur-ls{ |
|||
padding-top: 24upx; |
|||
.ul-item{ |
|||
padding: 28upx; |
|||
background: #fff; |
|||
& + .ul-item{ |
|||
margin-top: 24upx; |
|||
} |
|||
.ui-tit-bar{ |
|||
padding-bottom: 30upx; |
|||
border-bottom: 1px solid #E5E5E5; |
|||
@include ctf(space-between); |
|||
.utb-status{ |
|||
max-width: 50%; |
|||
@include tHide; |
|||
@include flcw(32upx, 44upx, #333333); |
|||
} |
|||
.utb-time{ |
|||
max-width: 50%; |
|||
@include tHide; |
|||
@include flcw(32upx, 44upx, #9A9A9D); |
|||
&.ut-active{ |
|||
color: #FF873D; |
|||
} |
|||
} |
|||
} |
|||
.ui-lines{ |
|||
padding: 16upx 20upx; |
|||
.uli-item{ |
|||
@include ctf; |
|||
&+&{ |
|||
margin-top: 24upx; |
|||
} |
|||
.ui-label{ |
|||
flex-shrink: 0; |
|||
@include flcw(28upx, 52upx, #9A9A9D); |
|||
} |
|||
.ui-value{ |
|||
@include tHide; |
|||
@include flcw(28upx, 52upx, #333333); |
|||
|
|||
} |
|||
.ui-num{ |
|||
@include ctf; |
|||
.un-txt{ |
|||
@include tHide; |
|||
@include flcw(28upx, 52upx, $mColor); |
|||
} |
|||
.un-icon{ |
|||
flex-shrink: 0; |
|||
margin-left: 16upx; |
|||
width: 24upx; |
|||
height: 24upx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue