<template>
|
<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="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" v-for="item in dataList" :key="item.id">
|
<div class="head df_sb">
|
<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 v-if="item.type == 4" class="ite">
|
<span>合同单号:</span>
|
<span>{{ item.contractNum }}</span>
|
</div>
|
<div v-else class="ite">
|
<span>运输单号:</span>
|
<span>{{ item.billCode }}</span>
|
</div>
|
<div class="ite">
|
<span>驾驶员:</span>
|
<span>{{ item.driverName }}</span>
|
</div>
|
<div class="ite">
|
<span>手机号:</span>
|
<span>{{ item.drivierPhone }}</span>
|
</div>
|
<div class="ite">
|
<span>总运输量:</span>
|
<span>{{ item.totalNum }}万支</span>
|
</div>
|
<div v-if="item.type != 4" class="ite" style="width: 66%">
|
<span>运输公司:</span>
|
<span>{{ item.carrierName }}</span>
|
</div>
|
</div>
|
<div class="footer df_sb">
|
<div v-if="item.type != 4" class="detail">运单详情</div>
|
<div v-else></div>
|
<el-button type="primary" @click="handleCall(item)">叫号</el-button>
|
</div>
|
</div>
|
</div>
|
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
|
</pagination>
|
</div>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import Pagination from '@/components/common/Pagination'
|
import { platformCallList, platformCallNumber, platformInPark } from '@/api'
|
import { statusMap } from '../config'
|
import { Message } from 'element-ui'
|
export default {
|
components: {
|
GlobalWindow,
|
Pagination
|
},
|
data() {
|
return {
|
statusMap,
|
isShowModal: false,
|
subLoading: false,
|
pagination: {
|
total: 0,
|
pageSize: 10,
|
page: 1
|
},
|
carCodeFront: '',
|
title: '',
|
callType: '1',
|
activePlat: {},
|
dataList: []
|
|
}
|
},
|
methods: {
|
handleCall(item) {
|
const { activePlat, callType } = this
|
if (callType == 1) { // 入园叫号
|
platformInPark({
|
jobId: item.id,
|
platformId: activePlat.id
|
}).then(() => {
|
Message.success('叫号成功')
|
this.getList()
|
})
|
} else {
|
platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => {
|
Message.success('叫号成功')
|
this.$emit('success')
|
this.getList()
|
})
|
}
|
},
|
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()
|
},
|
handlePageChange(e) {
|
this.pagination.page = e
|
this.getList()
|
},
|
handleSub() {
|
const { param } = this
|
this.subLoading = true
|
PlatformEdit({
|
...param
|
}).then(res => {
|
this.subLoading = false
|
this.isShowEdit = false
|
this.$tip.success('提交成功')
|
this.getList()
|
}, () => {
|
this.subLoading = false
|
})
|
}
|
}
|
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import "@/assets/style/variables.scss";
|
|
.queuing_modal {
|
padding: 10px 30px;
|
|
.list {
|
.item {
|
background: #f4fafb;
|
border-radius: 2px;
|
border: 1px solid #dfe2e8;
|
margin-bottom: 10px;
|
padding: 16px;
|
|
.head {
|
margin-bottom: 15px;
|
|
.plate {
|
width: 90px;
|
text-align: center;
|
font-size: 15px;
|
color: #111111;
|
padding: 4px 5px;
|
font-weight: 700;
|
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;
|
}
|
}
|
}
|
}
|
}
|
</style>
|