| | |
| | | <template> |
| | | <GlobalWindow |
| | | title="月台叫号-xx号月台" |
| | | :visible.sync="isShowModal" |
| | | width="800px" |
| | | :confirm-working="subLoading" |
| | | @confirm="handleSub" |
| | | > |
| | | <GlobalWindow :title="callType == 1 ? '叫号入园-' + title : '月台叫号-' + title" :visible.sync="isShowModal" |
| | | :showConfirm="false" width="800px"> |
| | | <div class="queuing_modal"> |
| | | <div class="df_ac mb20"> |
| | | <span>搜索车辆:</span> |
| | | <el-input |
| | | class="flex1 mr20" |
| | | v-model="param.aa" |
| | | placeholder="请输入车牌号" |
| | | ></el-input> |
| | | <el-button type="primary">查找</el-button> |
| | | <el-button>重置</el-button> |
| | | <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="请输入车牌号"></el-input> |
| | | <el-button type="primary" @click="getList">查找</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="item" v-for="item in dataList" :key="item.id"> |
| | | <div class="head df_sb"> |
| | | <div class="plate">皖A12122</div> |
| | | <div class="status">已签到</div> |
| | | <div v-if="item.carCodeFront" class="code"> |
| | | <span>{{ item.carCodeFront.slice(0, 1) }}</span> |
| | | <span>{{ item.carCodeFront.slice(1, 2) }}</span> |
| | | <span>·</span> |
| | | <span>{{ item.carCodeFront.slice(2) }}</span> |
| | | </div> |
| | | <div class="status">{{ statusMap[item.status] }}</div> |
| | | </div> |
| | | <div class="info"> |
| | | <div class="ite"> |
| | | <div v-if="item.billCode" class="ite"> |
| | | <span>运输单号:</span> |
| | | <span>12312</span> |
| | | <span>{{ item.billCode }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <span>合同单号:</span> |
| | | <span>{{ item.contractNum }}</span> |
| | | </div> |
| | | <div class="ite"> |
| | | <span>驾驶员:</span> |
| | | <span>12312</span> |
| | | <span>{{ item.driverName }}</span> |
| | | </div> |
| | | <div class="ite"> |
| | | <span>手机号:</span> |
| | | <span>12312</span> |
| | | <span>{{ item.drivierPhone }}</span> |
| | | </div> |
| | | <div class="ite"> |
| | | <span>总运输量:</span> |
| | | <span>12312</span> |
| | | <span>{{ item.totalNum || item.ioQty }}万支</span> |
| | | </div> |
| | | <div class="ite" style="width: 66%"> |
| | | <div v-if="item.billCode" class="ite" style="width: 66%"> |
| | | <span>运输公司:</span> |
| | | <span>12312</span> |
| | | <span>{{ item.carrierName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="footer df_sb"> |
| | | <div class="detail">运单详情</div> |
| | | <el-button type="primary">叫号</el-button> |
| | | <div v-if="item.billCode" @click="handleDetail(item)" class="detail">运单详情</div> |
| | | <div v-else class="detail" @click="subDetail(item)">预约详情</div> |
| | | <div style="display: flex; align-items: center;"> |
| | | <div style="margin-right: 15px; color: #207FF7; font-size: 13px; font-weight: 400;" v-if="item.signDate"> |
| | | 签到时间:{{item.signDate.substring(5, 10)}} {{item.signDate.substring(11, 16)}} |
| | | </div> |
| | | <el-button v-preventReClick :loading="loadingCall" type="primary" @click="handleCall(item)">叫号</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination"> |
| | | </pagination> |
| | | </div> |
| | | <!-- --> |
| | | <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" /> |
| | | <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getPlatform, PlatformEdit, PlatformDel } from '@/api' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { platformCallList, platformCallNumber, platformInPark } from '@/api' |
| | | import { statusMap } from '../config' |
| | | import { Message } from 'element-ui' |
| | | import WaybillDetail from './WaybillDetail.vue' |
| | | import DriverDetail from "@/views/task/driverDetail.vue" |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | GlobalWindow, |
| | | Pagination, |
| | | WaybillDetail, |
| | | DriverDetail |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | statusMap, |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: {} |
| | | pagination: { |
| | | total: 0, |
| | | pageSize: 10, |
| | | page: 1 |
| | | }, |
| | | carCodeFront: '', |
| | | title: '', |
| | | callType: '1', |
| | | activePlat: {}, |
| | | dataList: [], |
| | | isShowDetail: false, // 运单详情 |
| | | isShowDriver: false, // 预约详情 |
| | | loadingCall: false |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSub () { |
| | | handleCall(item) { |
| | | const { activePlat, callType } = this |
| | | this.loadingCall = true |
| | | if (callType == 1) { // 入园叫号 |
| | | platformInPark({ |
| | | jobId: item.id, |
| | | platformId: activePlat.id |
| | | }).then(() => { |
| | | this.loadingCall = false |
| | | Message.success('叫号成功') |
| | | this.$emit('success') |
| | | this.getList() |
| | | },() => {this.loadingCall = false}) |
| | | } else { |
| | | this.loadingCall = true |
| | | platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => { |
| | | this.loadingCall = false |
| | | Message.success('叫号成功') |
| | | this.$emit('success') |
| | | this.getList() |
| | | },()=> {this.loadingCall = false}) |
| | | } |
| | | }, |
| | | subDetail(row) { |
| | | this.isShowDriver = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DriverDetailRef.id = row.bookId |
| | | this.$refs.DriverDetailRef.type = row.objType |
| | | this.$refs.DriverDetailRef.getDetail() |
| | | this.$refs.DriverDetailRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.WaybillDetailRef.isShowModal = true |
| | | this.$refs.WaybillDetailRef.id = row.id |
| | | this.$refs.WaybillDetailRef.getDetail() |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { activePlat, pagination, carCodeFront, callType } = this |
| | | platformCallList({ |
| | | model: { callType, platformId: activePlat.id, carCodeFront }, |
| | | page: pagination.page, |
| | | capacity: pagination.pageSize |
| | | }).then(res => { |
| | | this.dataList = res.records |
| | | this.pagination.total = res.total |
| | | }) |
| | | }, |
| | | reset() { |
| | | this.carCodeFront = '' |
| | | this.pagination.page = 1 |
| | | this.pagination.pageSize = 10 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(e) { |
| | | this.pagination.pageSize = e |
| | | this.getList(1) |
| | | }, |
| | | handlePageChange(e) { |
| | | this.pagination.page = e |
| | | this.getList() |
| | | }, |
| | | handleSub() { |
| | | const { param } = this |
| | | this.subLoading = true |
| | | PlatformEdit({ |
| | |
| | | }, () => { |
| | | this.subLoading = false |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/variables.scss"; |
| | | .table-pagination { |
| | | bottom: 0px !important; |
| | | } |
| | | .queuing_modal { |
| | | padding: 10px 30px; |
| | | |
| | | .list { |
| | | .item { |
| | | background: #f4fafb; |
| | |
| | | border: 1px solid #dfe2e8; |
| | | margin-bottom: 10px; |
| | | padding: 16px; |
| | | |
| | | .head { |
| | | margin-bottom: 15px; |
| | | |
| | | .plate { |
| | | width: 90px; |
| | | text-align: center; |
| | |
| | | border: 1px solid #279baa; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .status { |
| | | color: $primaryColor; |
| | | } |
| | | |
| | | .code { |
| | | display: flex; |
| | | font-weight: 600; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | font-size: 15px; |
| | | color: #111111; |
| | | background-color: #fff; |
| | | border-radius: 4px; |
| | | border: 1px solid $primaryColor; |
| | | padding-right: 4px; |
| | | |
| | | span { |
| | | &:nth-of-type(1) { |
| | | background: $primaryColor; |
| | | padding: 0 8px; |
| | | color: #fff; |
| | | } |
| | | |
| | | &:nth-of-type(2) { |
| | | padding-left: 4px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .info { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .ite { |
| | | width: 33.3%; |
| | | margin-bottom: 8px; |
| | | |
| | | span { |
| | | &:nth-child(1) { |
| | | color: #666666; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .footer { |
| | | .detail { |
| | | color: $primaryColor; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |