From dc082351978a1e9f75d7a1471a0ca7ebeac552a5 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期一, 01 六月 2026 11:07:50 +0800
Subject: [PATCH] opo维护

---
 src/views/business/transfer/index.vue |  172 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 111 insertions(+), 61 deletions(-)

diff --git a/src/views/business/transfer/index.vue b/src/views/business/transfer/index.vue
index 2a3dffe..cb73d73 100644
--- a/src/views/business/transfer/index.vue
+++ b/src/views/business/transfer/index.vue
@@ -8,7 +8,7 @@
         :inline="true"
         label-width="80px"
       >
-        <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
+        <el-form-item label="涓婃姤鍖婚櫌" prop="caseNo">
           <el-input
             v-model="queryParams.caseNo"
             placeholder="璇疯緭鍏ユ渚嬬紪鍙�"
@@ -17,7 +17,7 @@
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="鎮h�呭鍚�" prop="patName">
+        <el-form-item label="濮撳悕" prop="patName">
           <el-input
             v-model="queryParams.patName"
             placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
@@ -41,7 +41,7 @@
             <el-option label="鏆傚瓨" :value="5" />
           </el-select>
         </el-form-item>
-        <el-form-item label="鍒涘缓鏃堕棿">
+        <el-form-item label="杞繍鏃堕棿">
           <el-date-picker
             v-model="dateRange"
             style="width: 240px"
@@ -149,12 +149,7 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="搴忓彿" type="index" width="60" align="center" />
 
-      <el-table-column
-        label="妗堜緥缂栧彿"
-        align="center"
-        prop="caseNo"
-        width="140"
-      />
+      <el-table-column label="缂栧彿" align="center" prop="caseNo" width="140" />
       <el-table-column label="鎮h�呬俊鎭�" align="center" width="260">
         <template slot-scope="scope">
           <div class="donor-info">
@@ -177,24 +172,6 @@
         show-overflow-tooltip
       />
       <el-table-column
-        label="娌荤枟鍖婚櫌"
-        align="center"
-        prop="treatmentHospitalName"
-        width="150"
-      />
-      <el-table-column
-        label="璁″垝杞繍鏃堕棿"
-        align="center"
-        prop="transportStartTime"
-        width="160"
-      />
-      <el-table-column
-        label="璐熻矗鍗忚皟鍛�"
-        align="center"
-        prop="contactPerson"
-        width="100"
-      />
-      <el-table-column
         label="杞繍鐘舵��"
         align="center"
         prop="transitStatus"
@@ -206,6 +183,25 @@
           </el-tag>
         </template>
       </el-table-column>
+      <el-table-column
+        label="璁″垝杞繍鏃堕棿"
+        align="center"
+        prop="transportStartTime"
+        width="160"
+      />
+      <el-table-column
+        label="鍗忚皟鍛�"
+        align="center"
+        prop="contactPerson"
+        width="100"
+      />
+
+      <el-table-column
+        label="涓婃姤鍖婚櫌"
+        align="center"
+        prop="treatmentHospitalName"
+        width="150"
+      />
       <el-table-column
         label="鍒涘缓鏃堕棿"
         align="center"
@@ -221,34 +217,49 @@
       >
         <template slot-scope="scope">
           <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-view"
+            size="small"
+            type="primary"
             @click="handleDetail(scope.row)"
             >璇︽儏</el-button
           >
           <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
+            size="small"
+            type="primary"
+            style="margin-bottom: 10px;"
+            plain
             @click="handleUpdate(scope.row)"
             >缂栬緫</el-button
           >
           <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-video-play"
+            size="small"
+            type="primary"
+            plain
             @click="handleStartTransport(scope.row)"
             v-if="scope.row.transitStatus === 1"
             >寮�濮嬭浆杩�</el-button
           >
           <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-check"
+            size="small"
+            type="success"
+            plain
             @click="handleCompleteTransport(scope.row)"
             v-if="scope.row.transitStatus === 2"
             >瀹屾垚杞繍</el-button
+          ><el-button
+            size="small"
+            type="danger"
+            plain
+            @click="cancelTransport(scope.row)"
+            v-if="scope.row.transitStatus === 2"
+            >鍙栨秷杞繍</el-button
+          >
+          <el-button
+            size="small"
+            type="warning"
+            plain
+            @click="recoverTransport(scope.row)"
+            v-if="scope.row.transitStatus === 4"
+            >鎭㈠杞繍</el-button
           >
         </template>
       </el-table-column>
@@ -430,9 +441,7 @@
     >
       <div class="action-confirm">
         <p>
-          纭畾瑕亄{ actionText }}杞繍鍗� "{{
-             currentTransport.id
-          }}" 鍚楋紵
+          纭畾瑕亄{ actionText }}杞繍鍗� "{{ currentTransport.patName }}" 鍚楋紵
         </p>
       </div>
       <div slot="footer" class="dialog-footer">
@@ -450,7 +459,9 @@
   transportEdit,
   transportDel,
   transportInfo,
-  donateList
+  donateInfo,
+  donateList,
+  donateEdit
 } from "@/api/businessApi/index";
 import TransportDetail from "./transportDetail";
 import TransportEdit from "./TransportEdit";
@@ -519,15 +530,15 @@
         pageNum: 1,
         pageSize: 10,
         caseNo: undefined,
-        patName: undefined,
+        patName: undefined
         // 鍙煡璇㈠凡鍚屾剰涓旈渶瑕佽浆杩愮殑妗堜緥
         // reportStatus: "3", // 宸插悓鎰�
-        isTransport: "2" // 闇�瑕佽浆杩�
+        // isTransport: "2" // 闇�瑕佽浆杩�
       }
     };
   },
   created() {
-    this.getList();
+    // this.getList();
     this.checkAutoCreate();
   },
   methods: {
@@ -567,26 +578,31 @@
     },
     checkAutoCreate() {
       const query = this.$route.query;
+      // 涓婃姤璺宠浆杩囨潵杩涜澶勭悊
       if (query.autoCreate === "true") {
-        // 鑷姩鎵撳紑妗堜緥閫夋嫨寮规
-        this.selectCaseOpen = true;
-        this.resetCaseSearch();
-
         // 濡傛灉鏈夌壒瀹氱殑妗堜緥缂栧彿锛屽彲浠ラ鍏堟悳绱�
         if (query.caseNo) {
+          // this.selectCaseOpen = true;
+          this.resetCaseSearch(1);
           this.caseQueryParams.caseNo = query.caseNo;
-          this.searchCaseList();
+          this.searchCaseList(1);
+        } else {
+          this.queryParams.patName = query.patName;
         }
       }
+      this.getList();
     },
     /** 鎼滅储鍙敤妗堜緥 */
-    async searchCaseList() {
+    async searchCaseList(type) {
       this.caseLoading = true;
       try {
         const response = await donateList(this.caseQueryParams);
         if (response.code === 200) {
           this.availableCaseList = response.rows || response.data || [];
           this.caseTotal = response.total || 0;
+          if (type == 1 && response.data[0]) {
+            this.selectCase(response.data[0]);
+          }
         } else {
           this.$modal.msgError(response.msg || "鑾峰彇妗堜緥鍒楄〃澶辫触");
         }
@@ -599,7 +615,7 @@
     },
 
     /** 閲嶇疆妗堜緥鎼滅储 */
-    resetCaseSearch() {
+    resetCaseSearch(type) {
       this.caseQueryParams = {
         pageNum: 1,
         pageSize: 10,
@@ -608,7 +624,12 @@
         // reportStatus: "3",
         isTransport: "2"
       };
-      this.searchCaseList();
+      if (!type) {
+        this.searchCaseList();
+      } else {
+        // 璺ㄩ〉闈㈡柊澧炲彇娑堥檺鍒�
+        this.caseQueryParams.isTransport = null;
+      }
     },
 
     /** 鍒ゆ柇妗堜緥鏄惁宸叉湁杞繍鍗� */
@@ -636,7 +657,7 @@
 
       // 鎵撳紑杞繍鍗曠紪杈戦〉闈紝骞朵紶鍏ラ�変腑鐨勬渚�
       this.currentTransport = this.convertCaseToTransport(caseData);
-      console.log(this.currentTransport,'currentTransport');
+      console.log(this.currentTransport, "currentTransport");
 
       this.isEditing = false;
       this.editOpen = true;
@@ -644,7 +665,7 @@
 
     /** 灏嗘渚嬩俊鎭浆鎹负杞繍鍗曟牸寮� */
     convertCaseToTransport(caseData) {
-      console.log(caseData,'2');
+      console.log(caseData, "2");
 
       return {
         caseNo: caseData.caseNo,
@@ -658,6 +679,8 @@
         // 鍏朵粬瀛楁鍙互鏍规嵁闇�瑕佷粠妗堜緥涓幏鍙�
         transportStartPlace: caseData.treatmenthospitalname || "",
         contactPerson: caseData.coordinatorName || "",
+        icuDoctor: caseData.icuDoctor,
+        icuDoctorPhone: caseData.icuDoctorPhone,
         transitStatus: 1, // 榛樿寰呰浆杩�
         // 娓呯┖鍏朵粬瀛楁
         id: undefined,
@@ -712,7 +735,7 @@
 
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map(item =>  item.id);
+      this.ids = selection.map(item => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
@@ -740,7 +763,7 @@
     /** 璇︽儏鎸夐挳鎿嶄綔 */
     handleDetail(row) {
       this.currentTransport = row;
-      this.detailTitle = `杞繍鍗曡鎯� - ${ row.id}`;
+      this.detailTitle = `杞繍鍗曡鎯� - ${row.id}`;
       this.detailOpen = true;
     },
 
@@ -787,25 +810,52 @@
       this.actionTitle = "瀹屾垚杞繍";
       this.actionText = "瀹屾垚";
       this.actionOpen = true;
+    } /** 瀹屾垚杞繍鎿嶄綔 */,
+    async cancelTransport(row) {
+      this.currentTransport = row;
+      this.actionTitle = "鍙栨秷杞繍";
+      this.actionText = "鍙栨秷";
+      this.actionOpen = true;
+    } /** 瀹屾垚杞繍鎿嶄綔 */,
+    async recoverTransport(row) {
+      this.currentTransport = row;
+      this.actionTitle = "鎭㈠杞繍";
+      this.actionText = "鎭㈠";
+      this.actionOpen = true;
     },
 
     /** 纭鎿嶄綔 */
     async confirmAction() {
       try {
         let requestData = {
-          id: this.currentTransport.id
+          ...this.currentTransport
         };
 
         if (this.actionText === "寮�濮�") {
           requestData.transitStatus = 2; // 璁剧疆涓鸿浆杩愪腑
         } else if (this.actionText === "瀹屾垚") {
           requestData.transitStatus = 3; // 璁剧疆涓鸿浆杩愬畬鎴�
+        } else if (this.actionText === "鍙栨秷") {
+          requestData.transitStatus = 4; // 璁剧疆涓鸿浆杩愬彇娑�
+        } else if (this.actionText === "鎭㈠") {
+          requestData.transitStatus = 2; // 璁剧疆涓鸿浆杩愪腑
         }
-
+        requestData.annexfilesList.forEach(item => {
+          item.id = null;
+        });
         const response = await transportEdit(requestData);
 
-        if (response.code === 200) {
+        if (response.code == 200) {
           this.$modal.msgSuccess(`${this.actionText}杞繍鎴愬姛`);
+          if (requestData.transitStatus == 3) {
+            const resappear = await donateInfo(requestData.reportId);
+            if (resappear.code) {
+              let obj = resappear.data;
+              obj.isDonate = 1;
+              await donateEdit(obj);
+              this.$modal.msgSuccess(`瀵瑰簲涓婃姤妗堜緥宸茶繘鍏ユ寮忔渚嬫祦绋媊);
+            }
+          }
           this.getList();
         } else {
           this.$modal.msgError(response.msg || `${this.actionText}杞繍澶辫触`);

--
Gitblit v1.9.3