| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <!-- --> |
| | | <view class="box_list"> |
| | | <view |
| | | class="box_list_item" |
| | | v-for="(item, index) in 3" |
| | | :key="index" |
| | | @click="handleDetail()" |
| | | > |
| | | <view class="box_list_item_head"> |
| | | <text>丁恩凯的劳务入园申请</text> |
| | | <text class="loading">待审核</text> |
| | | </view> |
| | | <view class="box_list_item_nr"> |
| | | <view class="box_list_item_nr_item"> |
| | | <text>被访问人:</text> |
| | | <text>人事部-王亚蓝</text> |
| | | </view> |
| | | <view class="box_list_item_nr_item"> |
| | | <text>进厂时间:</text> |
| | | <text>12-12 09:00</text> |
| | | </view> |
| | | <view class="box_list_item_nr_item"> |
| | | <text>离园时间:</text> |
| | | <text>12-12 12:00</text> |
| | | </view> |
| | | <view class="box_list_item_nr_item"> |
| | | <text>来访事由:</text> |
| | | <text>业务来往</text> |
| | | </view> |
| | | <view class="box_list_item_nr_item"> |
| | | <text>随行车辆:</text> |
| | | <text>皖A88888</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 选择车辆 --> |
| | | <u-picker |
| | | keyName="name" |
| | | closeOnClickOverlay |
| | | @close="isShowCar = false" |
| | | :show="isShowCar" |
| | | :columns="carList" |
| | | @confirm="seletedCar" |
| | | @cancel="isShowCar = false" |
| | | ></u-picker> |
| | | <!-- 日期 --> |
| | | <u-datetime-picker |
| | | :show="isShowDate" |
| | | :minDate="minDate" |
| | | @confirm="confirmDate" |
| | | @cancel="isShowDate = false" |
| | | mode="date" |
| | | ></u-datetime-picker> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | isShowCar: false, |
| | | isShowDate: false, |
| | | param: {}, |
| | | carList: [[{ name: 'aa', value: '11' }]], |
| | | timeList: [{ time: '08:30-09:00' }, { time: '08:30-09:00' }, { time: '08:30-09:00' }, { time: '08:30-09:00' }] |
| | | } |
| | | }, |
| | | methods: { |
| | | handleDetail() { |
| | | uni.navigateTo({ |
| | | url: "/pages/driver/reservedDetail" |
| | | }) |
| | | }, |
| | | 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"> |
| | | .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; |
| | | width: 100%; |
| | | box-sizing: border-box; |
| | | background-color: #ffffff; |
| | | .box_list_item_nr_item { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 20rpx; |
| | | text { |
| | | &:nth-child(1) { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | &:nth-child(2) { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </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 v-if="item.arriveDate">{{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" v-if="item.createDate">{{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.datalist = []
|
| | | 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> |