| | |
| | | <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> |
| | | </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> |
| | | <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> |