From 4c9fdc87987140e8b2c3f0dfc2f6608cdb6be774 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 21 十月 2026 17:39:24 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/appear/index.vue |   85 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 77 insertions(+), 8 deletions(-)

diff --git a/src/views/business/appear/index.vue b/src/views/business/appear/index.vue
index 58e7a2e..47bff4c 100644
--- a/src/views/business/appear/index.vue
+++ b/src/views/business/appear/index.vue
@@ -75,14 +75,16 @@
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">缂栬緫</el-button>
           <el-button size="mini" type="text" icon="el-icon-check" @click="handleApprove(scope.row)"
             v-if="scope.row.reportStatus == '2' && scope.row.delFlag == 0">纭</el-button>
-          <!-- 绉婚櫎杞繍鎸夐挳 -->
-          <el-button v-if="scope.row.serviceTransport.length" size="mini" type="primary"
-            @click="goToTransportDetail(scope.row.name)">鏌ョ湅杞繍鍗�</el-button>
-          <el-button v-if="
-            scope.row.reportStatus == 3 &&
-            !scope.row.serviceTransport.length &&
-            scope.row.isTransport == 2
-          " size="mini" type="success" @click="Createatransferorder(scope.row)">鍒涘缓杞繍鍗�</el-button>
+          <el-button
+            size="mini"
+            icon="el-icon-truck"
+            :type="getTransportStatustype(scope.row)"
+            @click="handleTransport(scope.row)"
+            v-if="shouldShowTransportButton(scope.row)"
+            :disabled="!canGoToTransport(scope.row)"
+          >
+            {{ getTransportButtonText(scope.row) }}
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -880,6 +882,73 @@
       return "鏈煡";
     },
 
+    /** 鍒ゆ柇鏄惁闇�瑕佹樉绀鸿浆杩愭寜閽� */
+    shouldShowTransportButton(row) {
+      // 闄ゅ凡褰掓。妗堜緥澶栧潎鏄剧ず杞繍鎸夐挳
+      return row.reportStatus != "4";
+    },
+
+    /** 鍒ゆ柇鏄惁鍙互璺宠浆鍒拌浆杩愬崟 */
+    canGoToTransport(row) {
+      return row.isTransport == "2" && row.serviceTransport;
+    },
+
+    /** 鑾峰彇杞繍鎸夐挳鏂囨湰 */
+    getTransportButtonText(row) {
+      if (row.isTransport == "2") {
+        if (
+          row.serviceTransport &&
+          Array.isArray(row.serviceTransport) &&
+          row.serviceTransport.length > 0
+        ) {
+          return "鏌ョ湅杞繍鍗�";
+        } else {
+          return "鍒涘缓杞繍鍗�";
+        }
+      }
+      return "鏃犻渶杞繍";
+    },
+
+    /** 鑾峰彇杞繍鎸夐挳鏍峰紡 */
+    getTransportStatustype(row) {
+      if (row.isTransport == "1") {
+        return "info";
+      }
+      if (
+        row.serviceTransport &&
+        Array.isArray(row.serviceTransport) &&
+        row.serviceTransport.length > 0
+      ) {
+        return "primary";
+      }
+      return "success";
+    },
+
+    /** 澶勭悊杞繍鎿嶄綔 */
+    async handleTransport(row) {
+      try {
+        const caseData = row;
+        if (caseData.isTransport == "2") {
+          if (
+            caseData.serviceTransport &&
+            Array.isArray(caseData.serviceTransport) &&
+            caseData.serviceTransport.length > 0
+          ) {
+            // 宸叉湁杞繍鍗曪紝璺宠浆鍒拌浆杩愬崟璇︽儏椤�
+            this.goToTransportDetail(caseData.name);
+          } else {
+            // 娌℃湁杞繍鍗曪紝璺宠浆鍒板垱寤鸿浆杩愬崟椤甸潰
+            this.Createatransferorder(caseData);
+          }
+        } else {
+          this.$message.warning("璇ユ渚嬩笉闇�瑕佽浆杩�");
+        }
+      } catch (error) {
+        console.error("鑾峰彇妗堜緥淇℃伅澶辫触:", error);
+        this.$message.error("鑾峰彇妗堜緥淇℃伅澶辫触");
+      }
+    },
+
     /** 璺宠浆鍒板垱寤鸿浆杩愬崟椤甸潰 */
     Createatransferorder(res) {
       console.log(res);

--
Gitblit v1.9.3