<template>
|
<view class="main_app">
|
<!-- -->
|
<view class="box_list">
|
<view class="box_list_item" v-for="(item, index) in datalist" :key="index" @click="handleDetail(item.id)">
|
<view class="box_list_item_head">
|
<text>{{item.driverName}}的入园预约</text>
|
<text class="loading" :class="{red: item.status == 3}">{{ statusMap[item.status] }}</text>
|
</view>
|
<view class="box_list_item_nr">
|
<view class="box_list_item_nr_item">
|
<text>合同编号:</text>
|
<text>{{item.contractNum}}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>到场时间:</text>
|
<text>{{item.arriveDate.slice(5,16)}}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>司机姓名:</text>
|
<text>{{item.driverName}} {{item.driverPhone}}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text>车辆信息:</text>
|
<text>{{item.carCodeFront}}</text>
|
</view>
|
<view class="box_list_item_nr_item">
|
<text class="placeholder9">{{item.createDate.slice(0,16)}}提交</text>
|
</view>
|
</view>
|
</view>
|
<view v-if="datalist.length === 0" style="text-align: center">
|
<image
|
src="@/static/empty.png"
|
style="width: 320rpx; margin: 120px auto 0"
|
mode="widthFix"
|
/>
|
<view class="placeholder9 fs24">暂无数据</view>
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import {
|
driverApplyRecord
|
} from "@/api"
|
export default {
|
data() {
|
return {
|
isShowCar: false,
|
isShowDate: false,
|
param: {},
|
page: 1,
|
capacity: 20,
|
total: 0,
|
datalist: [],
|
statusMap: {
|
0: '待审批',
|
1: '审批中',
|
2: '已通过',
|
3: '已拒绝',
|
4: '已取消',
|
}
|
}
|
},
|
onShow() {
|
this.page = 1
|
this.getList()
|
},
|
onReachBottom() {
|
const {
|
total,
|
datalist
|
} = this
|
if (datalist.length < total) {
|
this.page = this.page + 1
|
this.getList()
|
} else {
|
this.showToast('暂无更多数据')
|
}
|
},
|
methods: {
|
getList() {
|
const {
|
page,
|
capacity
|
} = this
|
driverApplyRecord({
|
page,
|
capacity,
|
model: {}
|
}).then(res => {
|
this.datalist = [...this.datalist, ...res.data.records]
|
this.total = res.data.total
|
})
|
},
|
handleDetail(id) {
|
uni.navigateTo({
|
url: `/pages/driver/reservedDetail?id=${id}`
|
})
|
},
|
confirmDate(e) {
|
console.log(e.value)
|
this.param.aa = dayjs(e.value).format('YYYY-MM-DD')
|
this.isShowDate = false
|
},
|
seletedCar(e) {
|
console.log(e.value)
|
this.param.aa = dayjs(e.value).format('YYYY-MM-DD')
|
this.isShowDate = false
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss">
|
page {
|
background: #f7f7f7;
|
}
|
|
.main_app {
|
background: #f7f7f7;
|
padding: 0;
|
}
|
|
.app_header {
|
display: flex;
|
align-items: center;
|
margin: 0 -15rpx;
|
background-color: #fff;
|
|
.item {
|
width: 360rpx;
|
height: 72rpx;
|
margin: 15rpx;
|
padding: 0 30rpx;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
align-items: center;
|
}
|
}
|
|
.box_list {
|
width: 100%;
|
padding: 30rpx;
|
box-sizing: border-box;
|
|
.box_list_item {
|
width: 100%;
|
margin-bottom: 20rpx;
|
|
&:last-child {
|
margin: 0 !important;
|
}
|
|
.box_list_item_head {
|
width: 100%;
|
height: 100rpx;
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
|
border-radius: 8rpx 8rpx 0rpx 0rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
|
.loading {
|
color: #4c99a8;
|
}
|
|
.success {
|
color: #03c68f;
|
}
|
|
.error {
|
color: #e0312a;
|
}
|
|
text {
|
&:nth-child(1) {
|
font-size: 32rpx;
|
font-weight: 600;
|
color: #222222;
|
}
|
|
&:nth-child(2) {
|
font-size: 26rpx;
|
font-weight: 400;
|
}
|
}
|
}
|
|
.box_list_item_nr {
|
padding: 30rpx 30rpx 10rpx;
|
width: 100%;
|
box-sizing: border-box;
|
background-color: #ffffff;
|
|
.box_list_item_nr_item {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
margin-bottom: 16rpx;
|
|
text {
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #666666;
|
}
|
}
|
}
|
}
|
}
|
</style>
|