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/PlatformSign.vue |  253 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 253 insertions(+), 0 deletions(-)

diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
new file mode 100644
index 0000000..ca3075d
--- /dev/null
+++ b/admin/src/views/platform/components/PlatformSign.vue
@@ -0,0 +1,253 @@
+<template>
+  <GlobalWindow 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(1)">鏌ユ壘</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" :class="{ red: item.status == 0 }">{{ 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.type != 4" class="ite" style="width: 66%">
+              <span>杩愯緭鍏徃锛�</span>
+              <span>{{ item.carrierName }}</span>
+            </div>
+          </div>
+          <div class="footer df_sb">
+            <div @click="handleDetail(item)" v-if="item.billCode" class="detail">杩愬崟璇︽儏</div>
+            <div @click="subDetail(item)" v-else class="detail">棰勭害璇︽儏</div>
+            <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button>
+          </div>
+        </div>
+      </div>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
+      </pagination>
+    </div>
+    <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
+    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
+  </GlobalWindow>
+</template>
+
+<script>
+import GlobalWindow from '@/components/common/GlobalWindow'
+import Pagination from '@/components/common/Pagination'
+import WaybillDetailRef from "./WaybillDetail.vue"
+import DriverDetail from "@/views/task/driverDetail.vue"
+import { platformJobPage, platformJobSign } from '@/api'
+import { statusMap } from '../config'
+import { Message } from 'element-ui'
+export default {
+  components: {
+    GlobalWindow,
+    Pagination,
+    WaybillDetailRef,
+    DriverDetail
+  },
+  data() {
+    return {
+      statusMap,
+      isShowModal: false,
+      isShowDetail: false,
+      isShowDriver: false,
+      subLoading: false,
+      pagination: {
+        total: 0,
+        pageSize: 10,
+        page: 1
+      },
+      carCodeFront: '',
+      // activePlat: {},
+      dataList: []
+
+    }
+  },
+  methods: {
+    handleCall(item) {
+      // const activePlatform = this.activePlat
+      platformJobSign({ jobId: item.id, signType: '2' }).then(res => {
+        if (res.code == 200) {
+          Message.success('绛惧埌鎴愬姛')
+          this.$emit('success')
+          this.getList()
+        }
+      })
+    },
+    getList(page) {
+      const { activePlat, pagination, carCodeFront } = this
+      if (page) {
+        pagination.page = page
+      }
+      platformJobPage({
+        model: { platformGroupId: activePlat.id, queryStatus: '0,1', carCodeFront },
+        page: pagination.page,
+        capacity: pagination.pageSize
+      }).then(res => {
+        this.dataList = res.records
+        this.pagination.total = res.total
+      })
+    },
+    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()
+      })
+    },
+    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