From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 14 十月 2025 16:34:22 +0800
Subject: [PATCH] 改bug

---
 admin/src/views/platform/queueUp.vue |  325 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 299 insertions(+), 26 deletions(-)

diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 785983c..14057e8 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -1,78 +1,351 @@
 <template>
   <div class="main_app">
-    <div class="mb20 main_header">
-      <div class="platgroup_tabs">
-        <div
-          class="tab"
-          :class="{ active: activeGroup.id === item.id }"
-          @click="platgroupClick(item)"
-          v-for="(item, i) in PlatGroupList"
-          :key="i"
-        >
+    <div class="main_header">
+      <div class="platgroup_tabs pt20">
+        <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
+          v-for="(item, i) in PlatGroupList" :key="i">
           {{ item.name }}
         </div>
+      </div>
     </div>
+    <div class="df_sb">
+      <QueryForm v-model="filters" :query-form-config="queryQueueUpConfig" @handleQuery="getList(1)" @clear="clear">
+      </QueryForm>
+      <div>
+        <el-button @click="openSign" type="primary" style="align-self: flex-start;">杞﹁締绛惧埌</el-button>
+      </div>
     </div>
+    <div class="common-header">
+      <div class="static_wrap">
+        <span>绛夊緟锛�<span class="num">{{ staticParam.waitNum }}</span></span>
+        <span class="mr30">{{ }}</span>
+        <span>鎸傝捣锛�<span class="red">{{ staticParam.exceptionNum }}</span></span>
+        <span></span>
+      </div>
+    </div>
+    <el-table :height="tableHeightNew" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
+      <el-table-column type="index" label="搴忓彿" width="80" />
+      <el-table-column label="杞︾墝鍙�" width="130">
+        <template slot-scope="{ row }">
+          <div class="plate_id">
+            <span>{{ row.carCodeFront.slice(0, 1) }}</span>
+            <span>{{ row.carCodeFront.slice(1, 2) }}</span>
+            <span>路</span>
+            <span>{{ row.carCodeFront.slice(2) }}</span>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="carrierName" label="杩愯緭鍏徃" show-overflow-tooltip min-width="140">
+        <template v-slot="scope">
+          <span>{{ scope.row.carrierName || '-' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractNum" label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="120">
+        <template v-slot="scope">
+          <span>{{ scope.row.billCode || scope.row.contractNum || '-' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110">
+        <template v-slot="scope">
+          <span>{{ scope.row.totalNum || '-' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="椹鹃┒鍛�" min-width="130">
+        <template slot-scope="{ row }">
+          <span class="mr10">{{ row.driverName }}</span>
+          <span>{{ row.drivierPhone }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
+      <el-table-column label="鐘舵��" align="center" width="80">
+        <template slot-scope="{ row }">
+          <!-- <span v-if="row.status == 2" class="red">鏈堝彴绛夊緟</span> -->
+          <span v-if="row.status == 2" class="red">绛夊緟鍙彿</span>
+          <span v-if="row.status == 3" class="primaryColor">鍏ュ洯绛夊緟</span>
+          <span v-if="row.status == 7" class="primaryColor">杞Щ涓�</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="鎿嶄綔" align="center" width="200" fixed="right">
+        <template slot-scope="{ row }">
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
+            v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
+          <el-button type="text" @click="jiaji(row.id)">鍔犳��</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- <el-table v-else class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
+      <el-table-column type="index" label="搴忓彿" width="80" />
+      <el-table-column label="杞︾墝鍙�" width="130">
+        <template slot-scope="{ row }">
+          <div class="plate_id">
+            <span>{{ row.carCodeFront.slice(0, 1) }}</span>
+            <span>{{ row.carCodeFront.slice(1, 2) }}</span>
+            <span>路</span>
+            <span>{{ row.carCodeFront.slice(2) }}</span>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="120" />
+      <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110" />
+      <el-table-column label="椹鹃┒鍛�" min-width="130">
+        <template slot-scope="{ row }">
+          <span class="mr10">{{ row.driverName }}</span>
+          <span>{{ row.drivierPhone }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
+      <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
+        <template slot-scope="{ row }">
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
+            v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
+        </template>
+      </el-table-column>
+    </el-table> -->
+    <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination" />
+
+    <!--  -->
+    <PlatformSign ref="PlatformSignRef" v-if="isPlatformSign" @success="getPlatGroupList"
+      @close="isPlatformSign = false" />
+    <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
+    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
   </div>
 </template>
 
 <script>
+import Pagination from '@/components/common/Pagination'
+import QueryForm from '@/components/common/QueryForm'
 import {
-  getPlatformGroupList
+  getPlatformGroupList,
+  platformLineUpPage,
+  getPlatformGroupWork,
+  jobUrge
 } from '@/api'
+import { queryQueueUpConfig } from './config'
+import WaybillDetail from './components/WaybillDetail.vue'
+import DriverDetail from '@/views/task/driverDetail.vue'
+import PlatformSign from './components/PlatformSign.vue'
+import BaseComputHeight from '@/components/base/BaseComputHeight'
 export default {
-  data () {
+  extends: BaseComputHeight,
+  components: {
+    Pagination,
+    QueryForm,
+    PlatformSign,
+    WaybillDetail,
+    DriverDetail
+  },
+  data() {
     return {
       filters: {},
-      activeGroup: {},
+      activeGroup: {
+        type: 2
+      },
       PlatGroupList: [],
-
-      isShowSet: false, // 鏈堝彴閰嶇疆
-      setParam: {},
+      staticParam: {},
+      dataList: [],
+      loading: false,
+      isShowDriver: false,
+      isPlatformSign: false,
+      pagination: {
+        pageSize: 10,
+        page: 1,
+        total: 0,
+      },
+      queryQueueUpConfig,
       isShowDetail: false, // 杩愬崟璇︽儏
       detail: {}
     }
   },
-  created () {
+  created() {
     this.getPlatGroupList()
   },
   methods: {
-    getPlatGroupList () {
+    openSign() {
+      this.isPlatformSign = true
+      this.$nextTick(() => {
+        this.$refs.PlatformSignRef.isShowModal = true
+        this.$refs.PlatformSignRef.activePlat = this.activeGroup
+        this.$refs.PlatformSignRef.carCodeFront = ''
+        this.$refs.PlatformSignRef.pagination = {
+          total: 0,
+          pageSize: 10,
+          page: 1
+        }
+        this.$refs.PlatformSignRef.getList()
+      })
+    },
+    jiaji(id) {
+      this.$dialog.exportConfirm('纭鍔犳�ュ悧锛�')
+        .then(() => {
+          jobUrge({ id })
+            .then(res => {
+              this.getPlatGroupList()
+            })
+        })
+        .catch(() => {})
+    },
+    getPlatGroupList() {
       getPlatformGroupList({
         queryData: 1,
         queryType: 1
       }).then(res => {
         this.PlatGroupList = res || []
-        if (this.activeGroup && this.activeGroup.id) {
-          this.activeGroup = res.find(item => item.id === this.activeGroup.id)
-        } else {
-          this.activeGroup = res[0]
+        if (res && res.length > 0) {
+          if (this.activeGroup && this.activeGroup.id) {
+            this.activeGroup = res.find(item => item.id === this.activeGroup.id)
+          } else {
+            this.activeGroup = res[0]
+          }
+
+          this.getPlatformGroupWork()
+          this.getList()
         }
       })
     },
-    platgroupClick (item) {
-      this.activeGroup = { ...item }
+    getList() {
+      const { activeGroup, pagination, filters } = this
+      this.loading = true
+      platformLineUpPage({
+        model: { platformGroupId: activeGroup.id, ...filters, callType: 3 },
+        capacity: pagination.pageSize,
+        page: pagination.page,
+      }).then(res => {
+        this.loading = false
+        this.dataList = res.records || []
+        this.pagination.total = res.total || 0
+      }, () => {
+        this.loading = false
+      })
     },
-    getList () { },
-    clear () { }
+    getPlatformGroupWork() {
+      const { activeGroup } = this
+      getPlatformGroupWork(activeGroup.id).then(res => {
+        this.staticParam = res || {}
+      })
+    },
+    handleSizeChange(e) {
+      this.pagination.pageSize = e
+      this.getList(1)
+    },
+    handlePageChange(e) {
+      this.pagination.page = e
+      this.getList()
+    },
+    platgroupClick(item) {
+      this.activeGroup = { ...item }
+      this.pagination.page = 1
+      this.filters = {}
+      this.getPlatformGroupWork()
+      this.getList()
+    },
+    clear() {
+      this.pagination.page = 1
+      this.filters = {}
+      this.getList()
+    },
+    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()
+      })
+    },
   }
 }
 </script>
 
 <style lang="scss" scoped>
 @import "@/assets/style/variables.scss";
+
+.main_app {
+  padding: 0 20px;
+
+  .doumee-filter {
+    padding-top: 20px;
+    border: 0;
+  }
+}
+
+.common-header {
+  background-color: #fff;
+  /* position: relative; */
+  /* z-index: 999; */
+  /* top: -10; */
+  /* margin: -20px; */
+  padding: 0 20px;
+
+  /* border: 1px solid red; */
+  .static_wrap {
+    height: 50px;
+    line-height: 50px;
+    color: #666666;
+    font-size: 15px;
+    padding: 0 20px;
+    background: #F4FAFB;
+    border-radius: 2px 2px 0px 0px;
+    /* margin-bottom: 36px; */
+
+    .num {
+      color: #111111;
+    }
+  }
+}
+
+.plate_id {
+  display: flex;
+  width: 120px;
+  font-weight: 600;
+  height: 30px;
+  line-height: 30px;
+  font-size: 16px;
+  color: #111111;
+  border-radius: 4px;
+  border: 1px solid #dfdede;
+
+  span {
+    &:nth-of-type(1) {
+      background: $primary-color;
+      padding: 0 6px;
+      color: #fff
+    }
+
+    &:nth-of-type(2) {
+      padding-left: 2px;
+    }
+
+    &:nth-of-type(4) {
+      padding-right: 3px;
+    }
+  }
+}
+
+
 .main_header {
   .platgroup_tabs {
     flex: 1;
     display: flex;
     border-bottom: 1px solid #dfe2e8;
+
     .tab {
       color: #666666;
       margin-right: 40px;
       cursor: pointer;
-      padding-bottom: 18px;
+      padding-bottom: 14px;
       border-bottom: 2px solid #fff;
     }
+
     .active {
       font-weight: 500;
       font-size: 15px;

--
Gitblit v1.9.3