2025-04-01 21:35:30 +08:00
< template >
< view class = "page" >
< u -navbar :is-back ="false" title = "订单管理" :border-bottom ="false" :background ="bgc" title -color = ' # 2E4975 '
title - size = '36' height = '45' > < / u - n a v b a r >
< view class = "top_box" >
< view class = "left_text" >
时间范围
< / view >
< view class = "timebox" >
2026-04-02 01:48:12 +08:00
< view class = "left_time" hover -class = " is -hover " hover -stay -time = " 80 " @click ="time1=true" >
2025-04-01 21:35:30 +08:00
{ { firsTime } }
< / view >
-
2026-04-02 01:48:12 +08:00
< view class = "right_time" hover -class = " is -hover " hover -stay -time = " 80 " @click ="time2=true" >
2025-04-01 21:35:30 +08:00
{ { lasTime } }
< / view >
< / view >
< / view >
2026-04-02 01:48:12 +08:00
< view class = "top_box top_box_second" >
< view class = "left_text select_left" hover -class = " is -hover " hover -stay -time = " 80 " @click ="shows=true" >
2025-04-01 21:35:30 +08:00
{ { tit } }
< view class = "iconfont icon-xiangxia1" > < / view >
< / view >
< view class = "sear_ipt" >
2025-12-20 14:29:10 +08:00
< input type = "text" v-model ="searchKeyword" placeholder="请输入内容" class="input" placeholder-style="color:#C7CDD3" @input="search()" >
2025-04-01 21:35:30 +08:00
< / view >
< / view >
< view class = "tap" >
2026-04-28 14:01:46 +08:00
< view class = "tap_cont" : hover -class = " tabListLoading ? ' ' : ' is -hover ' " hover -stay -time = " 80 " : class = "[zhuangtai==''?'act1':'', tabListLoading?'tap_cont--disabled':'']" @click ="changeidx('')" >
2025-04-01 21:35:30 +08:00
全部
< / view >
2026-04-28 14:01:46 +08:00
< view class = "tap_cont" : hover -class = " tabListLoading ? ' ' : ' is -hover ' " hover -stay -time = " 80 " : class = "[zhuangtai=='PROCESSING'?'act1':'', tabListLoading?'tap_cont--disabled':'']" @click ="changeidx('PROCESSING')" >
2025-04-01 21:35:30 +08:00
进行中
< / view >
2026-04-28 14:01:46 +08:00
< view class = "tap_cont tap_cont_lg" : hover -class = " tabListLoading ? ' ' : ' is -hover ' " hover -stay -time = " 80 " : class = "[zhuangtai=='RIDE_WAIT_PAY'?'act1':'', tabListLoading?'tap_cont--disabled':'']" @click ="changeidx('RIDE_WAIT_PAY')" >
2025-06-13 17:00:24 +08:00
骑行待支付
2025-04-01 21:35:30 +08:00
< / view >
2026-04-28 14:01:46 +08:00
< view class = "tap_cont" : hover -class = " tabListLoading ? ' ' : ' is -hover ' " hover -stay -time = " 80 " : class = "[zhuangtai=='WAIT_VERIFY'?'act1':'', tabListLoading?'tap_cont--disabled':'']" @click ="changeidx('WAIT_VERIFY')" >
待审核
< / view >
< view class = "tap_cont" : hover -class = " tabListLoading ? ' ' : ' is -hover ' " hover -stay -time = " 80 " : class = "[zhuangtai=='FINISHED'?'act1':'', tabListLoading?'tap_cont--disabled':'']" @click ="changeidx('FINISHED')" >
2025-04-01 21:35:30 +08:00
已完成
< / view >
< / view >
< u -mask :show ="show" : z -index = ' 100 ' / >
2025-12-20 14:29:10 +08:00
< u -picker mode = "time" v -model = " time1 " :params ="params" @confirm ="confirm1" : default -time = ' pickertime ' > < / u - p i c k e r >
< u -picker mode = "time" v -model = " time2 " :params ="params" @confirm ="confirm2" : default -time = ' pickertime ' > < / u - p i c k e r >
2025-05-16 17:52:35 +08:00
< scroll -view class = "warp_box" @scrolltolower ="handqixing" scroll -y refresher -enabled @refresherrefresh ="onRefresh" :refresher-triggered ="isRefreshing" refresher -default -style = " black " >
2025-08-19 17:02:14 +08:00
< view class = "swiper-item" >
2026-04-02 01:48:12 +08:00
< view class = "card" hover -class = " card -hover " hover -stay -time = " 80 " v-for ="(item,index) in allList" :key="index" @click="toOrderDetail(item.deviceSn,item.id,item)" >
2025-04-01 21:35:30 +08:00
< view class = "line" > < / view >
< view class = "top_info" >
2026-04-02 01:48:12 +08:00
< view class = "top_info_left" >
2025-12-20 14:29:10 +08:00
< text v-if ="item.timeout == false" > {{ item.no }} < / text >
2026-04-02 01:48:12 +08:00
< text v -else class = "text-danger" > { { item . no } } < / text >
< text class = "text-danger" v-if ="item.timeout == true" > · 超时 < / text >
< zhima -no -deposit -badge class = "deposit-badge" v -if = " item.payChannelApiType = = = ChannelApiType.ZHIMA_DEPOSIT_ONLY.value " / >
2025-04-01 21:35:30 +08:00
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-processing" v-if ="item.status=='PROCESSING'" >
2025-04-01 21:35:30 +08:00
< view class = "yuan" > < / view >
进行中
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-wait-pay" v-if ="item.status== 'WAIT_PAY'" >
< view class = "yuan" > < / view >
2025-06-13 17:00:24 +08:00
押金待支付
2025-04-01 21:35:30 +08:00
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-finished" v-if ="item.status=='FINISHED'" >
< view class = "yuan" > < / view >
2025-04-01 21:35:30 +08:00
已完成
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-canceled" v-if ="item.status=='CANCELED'" >
< view class = "yuan" > < / view >
2025-04-30 18:03:27 +08:00
已取消
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-ride-wait-pay" v-if ="item.status=='RIDE_WAIT_PAY'" >
< view class = "yuan" > < / view >
2025-06-06 11:32:12 +08:00
骑行待支付
< / view >
2025-08-19 17:02:14 +08:00
< view class = "top_info_right status-wait-verify" v-if ="item.status=='WAIT_VERIFY'" >
< view class = "yuan" > < / view >
2025-06-06 11:32:12 +08:00
待审核
< / view >
2025-04-01 21:35:30 +08:00
< / view >
< view class = "lines" > < / view >
< view class = "order_info" >
< view class = "info_li" >
2025-04-30 18:03:27 +08:00
< view class = "half_info_li" v-if ="item.status=='PROCESSING'" >
2026-04-02 01:48:12 +08:00
实收金额 : < span class = "amount-text" > 0 元 < / span >
2025-04-30 18:03:27 +08:00
< / view >
< view class = "half_info_li" v-else >
2026-04-02 01:48:12 +08:00
实收金额 : < span class = "amount-text" > { { item . actualReceivedAmount . toFixed ( 2 ) } } < / span >
2025-04-30 18:03:27 +08:00
< / view >
2025-04-01 21:35:30 +08:00
< view class = "half_info_li" >
2025-04-30 18:03:27 +08:00
用户手机号 : < span > { { item . userPhone == null ? '--' : item . userPhone } } < / span >
2025-04-01 21:35:30 +08:00
< / view >
< / view >
< view class = "info_li" >
< view class = "half_info_li" >
2025-04-10 08:57:21 +08:00
车辆编号 : < span > { { item . deviceSn == null ? '--' : item . deviceSn } } < / span >
2025-04-01 21:35:30 +08:00
< / view >
2025-04-30 18:03:27 +08:00
< view class = "half_info_li" v-if ="item.deviceVehicleNum" >
车牌号 : < span > { { item . deviceVehicleNum } } < / span >
< / view >
< view class = "half_info_li" v-else >
车牌号 : < span > -- < / span >
2025-04-01 21:35:30 +08:00
< / view >
< / view >
< view class = "info_li" >
< view class = "half_info_li" >
订单费用 : < span > { { item . totalFee } } 元 < / span >
2025-04-30 18:03:27 +08:00
< / view >
2025-04-01 21:35:30 +08:00
< view class = "half_info_li" >
2026-04-02 01:48:12 +08:00
人工退款 : < span v-if ="item.payAdminRefund>0" class="text-danger" > {{ item.payAdminRefund.toFixed ( 2 ) }} 元 < / span >
2025-04-30 18:03:27 +08:00
< span v-else > 0.00元 < / span >
2025-04-01 21:35:30 +08:00
< / view >
< / view >
< view class = "info_li" >
2025-05-10 17:54:20 +08:00
< view class = "half_info_li" v-if ="item.startTime" >
2025-04-01 21:35:30 +08:00
开始时间 : < span > { { formatDate ( item . startTime ) } } < / span >
< / view >
2025-05-10 17:54:20 +08:00
< view class = "half_info_li" v-else >
开始时间 : < span > 无 < / span >
< / view >
2025-04-30 18:03:27 +08:00
< view class = "half_info_li" >
租赁时长 : < span > { { formatDatess ( item . startTime , item . endTime ) } } < / span >
2025-04-01 21:35:30 +08:00
< / view >
< / view >
< / view >
< / view >
2025-08-19 17:02:14 +08:00
< view class = "no-more-orders" >
2025-04-01 21:35:30 +08:00
当前没有更多订单啦 ...
< / view >
< / view >
< / s c r o l l - v i e w >
< u -select v-model ="shows" :list="list" title='添加方式' @confirm="searchconfirm" > < / u -select >
2026-04-02 01:48:12 +08:00
< TabBar : indexs = '3' > < / TabBar >
2025-04-01 21:35:30 +08:00
< / view >
< / template >
< script >
2026-03-11 20:16:17 +08:00
import { ChannelApiType } from '@/common/enums/channel' ;
2026-03-12 13:54:49 +08:00
import ZhimaNoDepositBadge from '@/components/zhima-no-deposit-badge/zhima-no-deposit-badge.vue' ;
import TabBar from '@/page_shanghu/components/tab-bar/tab-bar.vue' ;
2026-03-11 20:16:17 +08:00
2025-04-01 21:35:30 +08:00
let timerId ;
let timerId1 ;
export default {
components : {
2026-03-11 20:16:17 +08:00
TabBar ,
ZhimaNoDepositBadge
2025-04-01 21:35:30 +08:00
} ,
data ( ) {
return {
2026-03-11 20:16:17 +08:00
ChannelApiType ,
2025-04-01 21:35:30 +08:00
bgc : {
backgroundColor : "#F7FAFE" ,
} ,
params : {
year : true ,
month : true ,
day : true ,
hour : false ,
minute : false ,
second : false
} ,
pickertime : '' ,
time1 : false ,
time2 : false ,
lasTime : '' ,
firsTime : '' ,
searchKeyword : '' ,
curtitidx : '' ,
swiperHeight : 400 ,
allList : [ ] ,
ingList : [ ] ,
reprement : [ ] ,
alreadyList : [ ] ,
show : false ,
showfz : false ,
showgj : false ,
showtk : false ,
orderInfo : { } ,
2025-04-10 08:57:21 +08:00
initialValues : { } ,
2025-05-16 17:52:35 +08:00
isRefreshing : false ,
2025-04-01 21:35:30 +08:00
areaId : false ,
tit : '车牌号' ,
shows : false ,
list : [ {
value : '1' ,
label : '手机号'
} ,
{
value : '2' ,
label : '车牌号'
} ] ,
typeidx : '2' ,
passList : [ ] ,
dispatchFee : 0 ,
manageFee : 0 ,
ridingFee : 0 ,
appointmentFee : 0 ,
reason : '' ,
pageNum : 1 ,
isback : false ,
zhuangtai : '' ,
2025-04-10 08:57:21 +08:00
total : '' ,
2025-10-25 15:52:11 +08:00
wateringListone : [ ] ,
2025-12-20 14:29:10 +08:00
2026-04-28 14:01:46 +08:00
pageSize : 20 ,
/** tab 切换拉取列表进行中时禁止再次切换 */
tabListLoading : false
2025-04-01 21:35:30 +08:00
}
} ,
2025-04-10 08:57:21 +08:00
onLoad ( ) {
2025-04-01 21:35:30 +08:00
if ( uni . getStorageSync ( 'adminAreaid' ) ) {
this . areaId = uni . getStorageSync ( 'adminAreaid' )
this . orderList ( )
}
} ,
2025-04-10 08:57:21 +08:00
onShow ( ) {
2026-01-28 18:00:39 +08:00
this . $store . dispatch ( 'jiance' ) ;
2025-04-10 08:57:21 +08:00
} ,
2025-04-01 21:35:30 +08:00
watch : {
} ,
computed : {
userId ( ) {
2025-10-25 15:52:11 +08:00
return this . $store . getters . userId
2025-04-01 21:35:30 +08:00
} ,
} ,
computed : {
2025-04-30 18:03:27 +08:00
formattedPayedAmount ( ) {
// 假设item是组件的一个响应式对象
2025-06-06 16:53:36 +08:00
if ( ! this . item ) return '¥0.00'
const payedAmount = parseFloat ( this . item . payedAmount ) || 0
const payRefunded = parseFloat ( this . item . payRefunded ) || 0
const payRefunding = parseFloat ( this . item . payRefunding ) || 0
const actualAmount = payedAmount - ( payRefunded + payRefunding )
return ` ¥ ${ actualAmount . toFixed ( 2 ) } `
2025-04-30 18:03:27 +08:00
}
2025-04-01 21:35:30 +08:00
} ,
onReachBottom ( ) {
} ,
methods : {
2025-05-16 17:52:35 +08:00
// 下拉刷新
onRefresh ( ) {
this . isRefreshing = true
this . pageNum = 1
this . orderList ( )
setTimeout ( ( ) => {
this . isRefreshing = false
} , 1000 )
} ,
2025-04-30 18:03:27 +08:00
formatPayedAmount ( payedAmount , payRefunded , payRefunding ) {
2025-06-06 16:53:36 +08:00
if ( ! payedAmount ) return '0.00元'
const amount = parseFloat ( payedAmount ) || 0
const refunded = parseFloat ( payRefunded ) || 0
const refunding = parseFloat ( payRefunding ) || 0
const actualAmount = amount - ( refunded + refunding )
return ` ${ actualAmount . toFixed ( 2 ) } 元 `
2025-04-30 18:03:27 +08:00
} ,
2025-04-01 21:35:30 +08:00
handqixing ( ) {
2025-06-06 16:53:36 +08:00
console . log ( this . total , this . allList . length )
2025-04-01 21:35:30 +08:00
if ( this . total > this . allList . length ) {
this . orderList ( )
}
} ,
2025-04-30 18:03:27 +08:00
formatDatess ( startTime , endTime ) {
2025-06-06 16:53:36 +08:00
if ( ! startTime ) return "0秒" // 如果没有开始时间, 返回0
2025-04-30 18:03:27 +08:00
// 解析时间( 无效时间则返回0)
2025-06-06 16:53:36 +08:00
const start = new Date ( startTime )
const end = endTime ? new Date ( endTime ) : new Date ( )
if ( isNaN ( start . getTime ( ) ) || isNaN ( end . getTime ( ) ) ) return "0秒"
2025-04-30 18:03:27 +08:00
// 计算时间差(毫秒)
2025-06-06 16:53:36 +08:00
let diffMs = end - start
if ( diffMs < 0 ) return "0秒" // 结束时间早于开始时间
2025-04-30 18:03:27 +08:00
// 计算各时间单位
2025-06-06 16:53:36 +08:00
const diffDays = Math . floor ( diffMs / 86400000 ) // 天
diffMs %= 86400000
const diffHours = Math . floor ( diffMs / 3600000 ) // 小时
diffMs %= 3600000
const diffMinutes = Math . floor ( diffMs / 60000 ) // 分钟
diffMs %= 60000
const diffSeconds = Math . floor ( diffMs / 1000 ) // 秒
2025-04-30 18:03:27 +08:00
// 智能拼接结果( 忽略0值单位, 但至少显示"X秒")
2025-06-06 16:53:36 +08:00
const parts = [ ]
if ( diffDays > 0 ) parts . push ( ` ${ diffDays } 天 ` )
if ( diffHours > 0 ) parts . push ( ` ${ diffHours } 时 ` )
if ( diffMinutes > 0 ) parts . push ( ` ${ diffMinutes } 分 ` )
parts . push ( ` ${ diffSeconds } 秒 ` ) // 始终显示秒
return parts . join ( "" )
2025-04-30 18:03:27 +08:00
} ,
2025-04-01 21:35:30 +08:00
formatDate ( value ) {
if ( ! value ) return ''
let date = new Date ( value )
let month = date . getMonth ( ) + 1 // 月份从0开始计数, 所以加1
let day = date . getDate ( )
let hours = date . getHours ( )
let minutes = date . getMinutes ( )
// 确保月份、日期、小时和分钟都是两位数
month = month < 10 ? '0' + month : month
day = day < 10 ? '0' + day : day
hours = hours < 10 ? '0' + hours : hours
minutes = minutes < 10 ? '0' + minutes : minutes
return ` ${ month } - ${ day } ${ hours } : ${ minutes } `
} ,
searchconfirm ( e ) {
this . typeidx = e [ 0 ] . value
this . tit = e [ 0 ] . label
} ,
2025-10-25 15:52:11 +08:00
toOrderDetail ( id , orid , item ) {
2025-04-01 21:35:30 +08:00
uni . navigateTo ( {
2025-10-25 15:52:11 +08:00
url : '/page_shanghu/guanli/order_detail?id=' + id + '&orid=' + orid + '&ksitem=' + item . startTime + '&endtime=' + item . endTime
2025-04-01 21:35:30 +08:00
} )
} ,
checkAndUpdate ( key ) {
clearTimeout ( timerId )
timerId = setTimeout ( ( ) => {
let inputValue = parseFloat ( this . orderInfo [ key ] ) ;
let initialValue = parseFloat ( this . initialValues [ key ] ) ;
if ( inputValue > initialValue ) {
this . orderInfo [ key ] = initialValue ;
}
} , 500 )
} ,
showtks ( item ) {
this . orderInfo = item
this . show = true
this . showtk = true
this . initialValues . dispatchFee = this . orderInfo . dispatchFee
this . initialValues . manageFee = this . orderInfo . manageFee
this . initialValues . ridingFee = this . orderInfo . ridingFee
this . initialValues . appointmentFee = this . orderInfo . appointmentFee
} ,
closetk ( ) {
this . show = false
this . showtk = false
this . orderInfo = { }
} ,
showgjs ( item ) {
this . orderInfo = item
this . show = true
this . showgj = true
} ,
closegj ( ) {
this . show = false
this . showgj = false
this . orderInfo = { }
} ,
showfzs ( item ) {
this . orderInfo = item
this . show = true
this . showfz = true
} ,
orderList ( ) {
2025-04-10 08:57:21 +08:00
let data = { }
2025-04-01 21:35:30 +08:00
if ( this . typeidx == 1 ) {
data = {
2025-04-11 18:23:16 +08:00
userPhone : this . searchKeyword ,
2025-04-01 21:35:30 +08:00
status : this . zhuangtai ,
createDateRange : this . firsTime == '' ? '' : this . lasTime == '' ? '' : this . firsTime + ',' + this . lasTime ,
areaId : this . areaId ,
2025-12-20 14:29:10 +08:00
pageSize : this . pageSize ,
2025-04-12 18:01:40 +08:00
pageNum : this . pageNum ,
isAsc : 'desc' ,
orderByColumn : 'createTime'
2025-04-01 21:35:30 +08:00
} ;
} else if ( this . typeidx == 2 ) { // 修改条件为 this.typeidx == 2
data = {
2025-04-11 18:23:16 +08:00
deviceVehicleNum : this . searchKeyword ,
2025-04-01 21:35:30 +08:00
type : '1' ,
status : this . zhuangtai ,
createDateRange : this . firsTime == '' ? '' : this . lasTime == '' ? '' : this . firsTime + ',' + this . lasTime ,
areaId : this . areaId ,
2025-10-25 15:52:11 +08:00
pageSize : this . pageSize ,
2025-04-12 18:01:40 +08:00
pageNum : this . pageNum ,
isAsc : 'desc' ,
orderByColumn : 'createTime'
2025-04-01 21:35:30 +08:00
} ;
}
2026-04-28 14:01:46 +08:00
return this . $u . get ( '/bst/order/list?' , data ) . then ( ( res ) => {
2025-04-01 21:35:30 +08:00
if ( res . code === 200 ) {
this . total = res . total
if ( this . pageNum == 1 ) {
this . allList = res . rows
} else {
this . allList = this . allList . concat ( res . rows )
}
this . pageNum ++
this . curtitidx = 0
this . $forceUpdate ( )
}
} )
} ,
async changeidx ( idx ) {
2026-04-28 14:01:46 +08:00
if ( this . tabListLoading ) return
this . tabListLoading = true
2025-04-01 21:35:30 +08:00
this . zhuangtai = idx
this . pageNum = 1
this . allList = [ ]
this . ingList = [ ]
this . reprement = [ ]
this . alreadyList = [ ]
2026-04-28 14:01:46 +08:00
try {
await this . orderList ( )
} finally {
this . tabListLoading = false
}
2025-04-01 21:35:30 +08:00
} ,
confirm1 ( e ) {
console . log ( e , 'eeeeeeee' ) ;
this . firsTime = e . year + '-' + e . month + '-' + e . day
this . pageNum = 1
this . orderList ( )
} ,
confirm2 ( e ) {
this . lasTime = e . year + '-' + e . month + '-' + e . day
this . pageNum = 1
this . orderList ( )
} ,
search ( ) {
this . pageNum = 1
this . allList = [ ]
this . ingList = [ ]
this . reprement = [ ]
this . alreadyList = [ ]
2025-04-10 08:57:21 +08:00
clearTimeout ( timerId1 )
2025-04-01 21:35:30 +08:00
timerId1 = setTimeout ( ( ) => {
this . pageNum = 1
this . orderList ( )
} , 500 )
// 根据关键字过滤 this.classlist
} ,
}
}
< / script >
< style lang = "scss" >
2026-04-02 01:48:12 +08:00
page {
background - color : # F8F9FA ;
}
. page {
width : 750 rpx ;
background : # F8F9FA ;
padding - bottom : 24 rpx ;
box - sizing : border - box ;
}
. is - hover {
opacity : 0.88 ;
transform : scale ( 0.98 ) ;
}
. top _box {
width : 710 rpx ;
background : # FFFFFF ;
border - radius : 20 rpx ;
padding : 22 rpx 24 rpx ;
margin : 20 rpx auto 0 ;
box - shadow : 0 rpx 8 rpx 24 rpx rgba ( 0 , 0 , 0 , 0.05 ) ;
box - sizing : border - box ;
display : flex ;
align - items : center ;
}
. top _box _second {
margin - top : 16 rpx ;
}
. left _text {
width : 180 rpx ;
font - size : 28 rpx ;
font - weight : 600 ;
color : # 1 D2129 ;
display : flex ;
align - items : center ;
}
. select _left {
justify - content : flex - start ;
}
. sear _ipt {
flex : 1 ;
}
. sear _ipt . input {
width : 100 % ;
height : 72 rpx ;
line - height : 72 rpx ;
border : 2 rpx solid # E5E6EB ;
border - radius : 8 rpx ;
background : # FFFFFF ;
padding : 0 20 rpx ;
box - sizing : border - box ;
font - size : 26 rpx ;
color : # 4 E5969 ;
}
. timebox {
flex : 1 ;
display : flex ;
align - items : center ;
column - gap : 10 rpx ;
color : # 86909 C ;
font - size : 24 rpx ;
}
. left _time ,
. right _time {
flex : 1 ;
height : 72 rpx ;
line - height : 72 rpx ;
text - align : center ;
border : 2 rpx solid # E5E6EB ;
border - radius : 8 rpx ;
background : # FFFFFF ;
font - size : 26 rpx ;
color : # 4 E5969 ;
}
. tap {
width : 710 rpx ;
display : flex ;
align - items : center ;
flex - wrap : wrap ;
gap : 12 rpx ;
margin : 20 rpx auto 0 ;
}
. tap _cont {
height : 60 rpx ;
line - height : 60 rpx ;
padding : 0 24 rpx ;
border - radius : 999 rpx ;
border : 2 rpx solid # E5E6EB ;
background : # FFFFFF ;
color : # 4 E5969 ;
font - size : 24 rpx ;
font - weight : 500 ;
transition : all 0.25 s ease ;
}
. tap _cont _lg {
padding : 0 28 rpx ;
}
. tap . act1 {
2026-04-28 14:01:46 +08:00
background : # 2 C8AF0 ;
2026-04-02 01:48:12 +08:00
color : # FFFFFF ;
2026-04-28 14:01:46 +08:00
border - color : # 2 C8AF0 ;
2026-04-02 01:48:12 +08:00
box - shadow : 0 rpx 6 rpx 16 rpx rgba ( 47 , 84 , 235 , 0.25 ) ;
}
2026-04-28 14:01:46 +08:00
. tap _cont -- disabled {
opacity : 0.55 ;
pointer - events : none ;
}
2026-04-02 01:48:12 +08:00
. warp _box {
height : 61 vh ;
overflow : scroll ;
background : # F8F9FA ;
margin - top : 16 rpx ;
}
. swiper - item {
padding : 0 20 rpx 12 rpx ;
box - sizing : border - box ;
}
. card {
margin - bottom : 16 rpx ;
background : # FFFFFF ;
border - radius : 20 rpx ;
overflow : hidden ;
box - shadow : 0 rpx 8 rpx 24 rpx rgba ( 0 , 0 , 0 , 0.05 ) ;
transition : all 0.2 s ease ;
}
. card - hover {
transform : translateY ( 4 rpx ) ;
box - shadow : 0 rpx 4 rpx 16 rpx rgba ( 0 , 0 , 0 , 0.06 ) ;
}
. line {
height : 10 rpx ;
background : # F5F7FA ;
}
. top _info {
padding : 24 rpx 24 rpx 18 rpx ;
display : flex ;
align - items : center ;
}
. top _info _left {
flex : 1 ;
display : flex ;
align - items : center ;
font - size : 26 rpx ;
font - weight : 600 ;
color : # 1 D2129 ;
white - space : nowrap ;
overflow : hidden ;
text - overflow : ellipsis ;
}
. deposit - badge {
margin - left : 12 rpx ;
}
. top _info _right {
display : flex ;
align - items : center ;
padding : 6 rpx 14 rpx ;
border - radius : 999 rpx ;
font - size : 22 rpx ;
font - weight : 600 ;
}
. top _info _right . yuan {
width : 10 rpx ;
height : 10 rpx ;
border - radius : 50 % ;
margin - right : 8 rpx ;
}
. status - processing {
background : rgba ( 24 , 144 , 255 , 0.14 ) ;
color : # 1890 FF ;
}
. status - processing . yuan { background : # 1890 FF ; }
. status - finished {
background : rgba ( 54 , 211 , 153 , 0.14 ) ;
color : # 36 D399 ;
}
. status - finished . yuan { background : # 36 D399 ; }
. status - wait - pay ,
. status - canceled ,
. status - ride - wait - pay ,
. status - wait - verify {
background : rgba ( 78 , 89 , 105 , 0.14 ) ;
color : # 4 E5969 ;
}
. status - wait - pay . yuan ,
. status - canceled . yuan ,
. status - ride - wait - pay . yuan ,
. status - wait - verify . yuan { background : # 4 E5969 ; }
. lines {
height : 2 rpx ;
background : # EEF0F3 ;
margin : 0 24 rpx ;
}
. order _info {
padding : 20 rpx 24 rpx 24 rpx ;
display : flex ;
flex - direction : column ;
row - gap : 14 rpx ;
}
. info _li {
display : grid ;
grid - template - columns : 1 fr 1 fr ;
column - gap : 16 rpx ;
}
. half _info _li {
font - size : 24 rpx ;
color : # 4 E5969 ;
display : flex ;
align - items : center ;
min - width : 0 ;
}
. half _info _li span {
margin - left : 8 rpx ;
color : # 1 D2129 ;
font - weight : 500 ;
overflow : hidden ;
text - overflow : ellipsis ;
white - space : nowrap ;
}
. amount - text {
color : # FF4D4F ! important ;
font - size : 30 rpx ;
font - weight : 700 ! important ;
}
. text - danger {
color : # FF4D4F ! important ;
}
. no - more - orders {
width : 100 % ;
text - align : center ;
color : # 86909 C ;
margin : 24 rpx 0 20 rpx ;
font - size : 24 rpx ;
padding : 12 rpx 0 ;
}
2025-04-01 21:35:30 +08:00
< / style >