From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新
---
admin/src/views/platform/components/PlatformQueuing.vue | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 268 insertions(+), 0 deletions(-)
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
new file mode 100644
index 0000000..336c393
--- /dev/null
+++ b/admin/src/views/platform/components/PlatformQueuing.vue
@@ -0,0 +1,268 @@
+<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.billCode" class="ite">
+ <span>杩愯緭鍗曞彿锛�</span>
+ <span>{{ item.billCode }}</span>
+ </div>
+ <div v-else class="ite">
+ <span>鍚堝悓鍗曞彿锛�</span>
+ <span>{{ item.contractNum }}</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 || item.ioQty }}涓囨敮</span>
+ </div>
+ <div v-if="item.billCode" class="ite" style="width: 66%">
+ <span>杩愯緭鍏徃锛�</span>
+ <span>{{ item.carrierName }}</span>
+ </div>
+ </div>
+ <div class="footer df_sb">
+ <div v-if="item.billCode" @click="handleDetail(item)" class="detail">杩愬崟璇︽儏</div>
+ <div v-else class="detail" @click="subDetail(item)">棰勭害璇︽儏</div>
+ <el-button v-preventReClick :loading="loadingCall" type="primary" @click="handleCall(item)">鍙彿</el-button>
+ </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 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,
+ Pagination,
+ WaybillDetail,
+ DriverDetail
+ },
+ data() {
+ return {
+ statusMap,
+ isShowModal: false,
+ subLoading: false,
+ pagination: {
+ total: 0,
+ pageSize: 10,
+ page: 1
+ },
+ carCodeFront: '',
+ title: '',
+ callType: '1',
+ activePlat: {},
+ dataList: [],
+ isShowDetail: false, // 杩愬崟璇︽儏
+ isShowDriver: false, // 棰勭害璇︽儏
+ loadingCall: false
+
+ }
+ },
+ methods: {
+ 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({
+ ...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;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3