From 7f67f2e6fbb7d47249fef0905a40a66f13ae2f2b Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 21 八月 2026 10:05:32 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/transfer/TransportEdit.vue |  710 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 469 insertions(+), 241 deletions(-)

diff --git a/src/views/business/transfer/TransportEdit.vue b/src/views/business/transfer/TransportEdit.vue
index a42de59..3dc9bac 100644
--- a/src/views/business/transfer/TransportEdit.vue
+++ b/src/views/business/transfer/TransportEdit.vue
@@ -7,143 +7,181 @@
     :close-on-click-modal="false"
     @close="handleClose"
   >
+    <!-- 妗堜緥淇℃伅灞曠ず鍖哄煙 -->
+    <div v-if="selectedCase && !isEdit" class="selected-case-info">
+      <el-alert
+        title="鍏宠仈妗堜緥淇℃伅"
+        type="success"
+        :closable="false"
+        style="margin-bottom: 16px;"
+      />
+      <el-card shadow="never" class="case-info-card">
+        <el-descriptions :column="2" border>
+          <el-descriptions-item label="妗堜緥缂栧彿">{{
+            selectedCase.caseNo
+          }}</el-descriptions-item>
+          <el-descriptions-item label="鎮h�呭鍚�">{{
+            selectedCase.name
+          }}</el-descriptions-item>
+          <el-descriptions-item label="鎬у埆">
+            <dict-tag
+              :options="dict.type.sys_user_sex"
+              :value="selectedCase.sex"
+            />
+          </el-descriptions-item>
+          <el-descriptions-item label="骞撮緞">{{
+            selectedCase.age
+          }}</el-descriptions-item>
+          <el-descriptions-item label="鐤剧梾璇婃柇">{{
+            selectedCase.diagnosisname
+          }}</el-descriptions-item>
+          <el-descriptions-item label="娌荤枟鍖婚櫌">{{
+            selectedCase.treatmenthospitalname
+          }}</el-descriptions-item>
+        </el-descriptions>
+      </el-card>
+    </div>
+
     <el-form
       ref="editForm"
       :model="formData"
       :rules="formRules"
       label-width="120px"
+      class="paper-form"
     >
       <!-- 鍩虹淇℃伅 -->
-      <el-card class="form-section" shadow="never">
+      <el-card class="form-section paper-card" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-document" style="color: #409EFF; margin-right: 8px;"></i>
+          <i
+            class="el-icon-document"
+            style="color: #409EFF; margin-right: 8px;"
+          ></i>
           <span>鍩虹淇℃伅</span>
         </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="杞繍鍗曞彿" prop="reportId">
-              <el-input
-                v-model="formData.reportId"
-                :disabled="isEdit"
-                placeholder="绯荤粺鑷姩鐢熸垚"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
-              <el-input
-                v-model="formData.caseNo"
-                placeholder="璇疯緭鍏ユ渚嬬紪鍙�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+        <div class="form-row">
+          <el-form-item label="妗堜緥缂栧彿" prop="caseNo" class="col-half">
+            <el-input
+              v-model="formData.caseNo"
+              :disabled="true"
+              placeholder="鑷姩浠庢渚嬭幏鍙�"
+            />
+          </el-form-item>
+        </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="鎮h�呭鍚�" prop="patName">
-              <el-input
-                v-model="formData.patName"
-                placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎬у埆" prop="sex">
-              <el-select
-                v-model="formData.sex"
-                placeholder="璇烽�夋嫨鎬у埆"
-                style="width: 100%"
-              >
-                <el-option label="鐢�" value="1" />
-                <el-option label="濂�" value="2" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
+        <div class="form-row">
+          <el-form-item label="鎮h�呭鍚�" prop="patName" class="col-half">
+            <el-input
+              v-model="formData.patName"
+              :disabled="true"
+              placeholder="鑷姩浠庢渚嬭幏鍙�"
+            />
+          </el-form-item>
+          <el-form-item label="鎬у埆" prop="sex" class="col-half">
+            <el-select
+              v-model="formData.sex"
+              :disabled="true"
+              placeholder="璇烽�夋嫨鎬у埆"
+              style="width: 100%"
+            >
+              <el-option label="鐢�" value="1" />
+              <el-option label="濂�" value="2" />
+            </el-select>
+          </el-form-item>
+        </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="骞撮緞" prop="age">
-              <el-input-number
-                v-model="formData.age"
-                :min="0"
-                :max="120"
-                placeholder="璇疯緭鍏ュ勾榫�"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname">
-              <el-input
-                v-model="formData.diagnosisname"
-                placeholder="璇疯緭鍏ョ柧鐥呰瘖鏂悕绉�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+        <div class="form-row">
+          <el-form-item label="骞撮緞" prop="age" class="col-half">
+            <el-input-number
+              v-model="formData.age"
+              :min="0"
+              :max="120"
+              :disabled="true"
+              placeholder="鑷姩浠庢渚嬭幏鍙�"
+              style="width: 100%"
+            />
+          </el-form-item>
+          <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname" class="col-half">
+            <el-input
+              v-model="formData.diagnosisname"
+              :disabled="true"
+              placeholder="鑷姩浠庢渚嬭幏鍙�"
+            />
+          </el-form-item>
+        </div>
       </el-card>
 
       <!-- 鍖婚櫌淇℃伅 -->
-      <el-card class="form-section" shadow="never">
+      <el-card class="form-section paper-card" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-office-building" style="color: #67C23A; margin-right: 8px;"></i>
+          <i
+            class="el-icon-office-building"
+            style="color: #67C23A; margin-right: 8px;"
+          ></i>
           <span>鍖婚櫌淇℃伅</span>
         </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="娌荤枟鍖婚櫌" prop="treatmentHospitalName">
-              <el-input
-                v-model="formData.treatmentHospitalName"
-                placeholder="璇疯緭鍏ユ不鐤楀尰闄㈠悕绉�"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="娌荤枟绉戝" prop="treatmentDeptName">
-              <el-input
-                v-model="formData.treatmentDeptName"
-                placeholder="璇疯緭鍏ユ不鐤楃瀹ゅ悕绉�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+        <div class="form-row">
+          <el-form-item label="娌荤枟鍖婚櫌" prop="treatmentHospitalName" class="col-half">
+            <el-input
+              v-model="formData.treatmentHospitalName"
+              :disabled="true"
+              placeholder="鑷姩浠庢渚嬭幏鍙�"
+            />
+          </el-form-item>
+          <el-form-item label="娌荤枟绉戝" prop="treatmentDeptName" class="col-half">
+            <el-input
+              v-model="formData.treatmentDeptName"
+              placeholder="璇疯緭鍏ユ不鐤楃瀹ゅ悕绉�"
+            />
+          </el-form-item>
+        </div>
+        <div class="form-row">
+          <el-form-item label="ICU璇勪及鍖荤敓" prop="icuDoctor" class="col-half">
+            <el-input
+              v-model="formData.icuDoctor"
+              placeholder="璇疯緭鍏CU璇勪及鍖荤敓"
+            />
+          </el-form-item>
+          <el-form-item label="ICU鍖荤敓鐢佃瘽" prop="icuDoctorPhone" class="col-half">
+            <el-input
+              v-model="formData.icuDoctorPhone"
+              placeholder="璇疯緭鍏CU鍖荤敓鎵嬫満鍙�"
+            />
+          </el-form-item>
+        </div>
       </el-card>
 
       <!-- 杞繍淇℃伅 -->
-      <el-card class="form-section" shadow="never">
+      <el-card class="form-section paper-card" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-location-information" style="color: #E6A23C; margin-right: 8px;"></i>
+          <i
+            class="el-icon-location-information"
+            style="color: #E6A23C; margin-right: 8px;"
+          ></i>
           <span>杞繍淇℃伅</span>
         </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="鍑哄彂鍦扮偣" prop="transportStartPlace">
-              <el-input
-                v-model="formData.transportStartPlace"
-                placeholder="璇疯緭鍏ュ嚭鍙戝湴鐐�"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍑哄彂鏃堕棿" prop="transportStartTime">
-              <el-date-picker
-                v-model="formData.transportStartTime"
-                type="datetime"
-                placeholder="閫夋嫨鍑哄彂鏃堕棿"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+        <div class="form-row">
+          <el-form-item label="鍑哄彂鍦扮偣" prop="transportStartPlace" class="col-half">
+            <el-input
+              v-model="formData.transportStartPlace"
+              placeholder="璇疯緭鍏ュ嚭鍙戝湴鐐�"
+            />
+          </el-form-item>
+          <el-form-item label="鍑哄彂鏃堕棿" prop="transportStartTime" class="col-half">
+            <el-date-picker
+              v-model="formData.transportStartTime"
+              type="datetime"
+              placeholder="閫夋嫨鍑哄彂鏃堕棿"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              style="width: 100%"
+            />
+          </el-form-item>
+        </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
+        <div class="form-row">
+          <!-- <el-col :span="12">
             <el-form-item label="杞繍鐘舵��" prop="transitStatus">
               <el-select
                 v-model="formData.transitStatus"
@@ -157,50 +195,48 @@
                 <el-option label="鏆傚瓨" :value="5" />
               </el-select>
             </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="璐熻矗鍗忚皟鍛�" prop="contactPerson">
-              <el-input
-                v-model="formData.contactPerson"
-                placeholder="璇疯緭鍏ュ崗璋冨憳濮撳悕"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+          </el-col> -->
+          <el-form-item label="璐熻矗鍗忚皟鍛�" prop="contactPerson" class="col-half">
+            <el-input
+              v-model="formData.contactPerson"
+              placeholder="璇疯緭鍏ュ崗璋冨憳濮撳悕"
+            />
+          </el-form-item>
+        </div>
       </el-card>
 
       <!-- 鍖绘姢浜哄憳淇℃伅 -->
-      <el-card class="form-section" shadow="never">
+      <el-card class="form-section paper-card" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-user" style="color: #F56C6C; margin-right: 8px;"></i>
+          <i
+            class="el-icon-user"
+            style="color: #F56C6C; margin-right: 8px;"
+          ></i>
           <span>鍖绘姢浜哄憳淇℃伅</span>
         </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="鎬ヨ瘖绉戝尰鐢�" prop="doctor">
-              <el-input
-                v-model="formData.doctor"
-                placeholder="璇疯緭鍏ユ�ヨ瘖绉戝尰鐢�"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
+        <div class="form-row">
+          <el-form-item label="杞繍鍖荤敓" prop="doctor" class="col-half">
+            <el-input
+              v-model="formData.doctor"
+              placeholder="璇疯緭鍏ヨ浆杩愬尰鐢�"
+            />
+          </el-form-item>
+          <!-- <el-col :span="12">
             <el-form-item label="鍖荤敓鐢佃瘽" prop="doctorPhone">
               <el-input
                 v-model="formData.doctorPhone"
                 placeholder="璇疯緭鍏ュ尰鐢熸墜鏈哄彿"
               />
             </el-form-item>
-          </el-col>
-        </el-row>
+          </el-col> -->
+          <el-form-item label="杞繍鎶ゅ+" prop="nurse" class="col-half">
+            <el-input v-model="formData.nurse" placeholder="璇疯緭鍏ユ姢澹鍚�" />
+          </el-form-item>
+        </div>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="鎶ゅ+" prop="nurse">
-              <el-input v-model="formData.nurse" placeholder="璇疯緭鍏ユ姢澹鍚�" />
-            </el-form-item>
-          </el-col>
+        <!-- <el-row :gutter="20">
+
           <el-col :span="12">
             <el-form-item label="鎶ゅ+鐢佃瘽" prop="nursePhone">
               <el-input
@@ -209,51 +245,33 @@
               />
             </el-form-item>
           </el-col>
-        </el-row>
+        </el-row> -->
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="椹鹃┒鍛�" prop="driver">
-              <el-input
-                v-model="formData.driver"
-                placeholder="璇疯緭鍏ラ┚椹跺憳濮撳悕"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
+        <div class="form-row">
+          <el-form-item label="杞繍椹鹃┒鍛�" prop="driver" class="col-half">
+            <el-input
+              v-model="formData.driver"
+              placeholder="璇疯緭鍏ラ┚椹跺憳濮撳悕"
+            />
+          </el-form-item>
+          <!-- <el-col :span="12">
             <el-form-item label="椹鹃┒鍛樼數璇�" prop="driverPhone">
               <el-input
                 v-model="formData.driverPhone"
                 placeholder="璇疯緭鍏ラ┚椹跺憳鎵嬫満鍙�"
               />
             </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="ICU璇勪及鍖荤敓" prop="icuDoctor">
-              <el-input
-                v-model="formData.icuDoctor"
-                placeholder="璇疯緭鍏CU璇勪及鍖荤敓"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="ICU鍖荤敓鐢佃瘽" prop="icuDoctorPhone">
-              <el-input
-                v-model="formData.icuDoctorPhone"
-                placeholder="璇疯緭鍏CU鍖荤敓鎵嬫満鍙�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+          </el-col> -->
+        </div>
       </el-card>
 
       <!-- 闄勪欢淇℃伅 -->
       <el-card class="form-section" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-folder" style="color: #909399; margin-right: 8px;"></i>
+          <i
+            class="el-icon-folder"
+            style="color: #909399; margin-right: 8px;"
+          ></i>
           <span>闄勪欢淇℃伅</span>
         </div>
 
@@ -261,7 +279,9 @@
           <div class="attachment-header">
             <i class="el-icon-paperclip"></i>
             <span class="attachment-title">闄勪欢涓婁紶</span>
-            <span class="attachment-tip">鏀寔涓婁紶妫�楠屾姤鍛婂崟绛夋枃浠� (鏈�澶歿{ attachmentLimit }}涓�)</span>
+            <span class="attachment-tip"
+              >鏀寔涓婁紶妫�楠屾姤鍛婂崟绛夋枃浠� (鏈�澶歿{ attachmentLimit }}涓�)</span
+            >
           </div>
 
           <!-- 浣跨敤 UploadAttachment 缁勪欢 -->
@@ -278,18 +298,32 @@
         </div>
 
         <!-- 闄勪欢鍒楄〃 -->
-        <div class="attachment-list" v-if="formData.annexfilesList && formData.annexfilesList.length > 0">
-          <div class="list-title">宸蹭笂浼犻檮浠� ({{ formData.annexfilesList.length }})</div>
-          <el-table :data="formData.annexfilesList" style="width: 100%" size="small">
+        <div
+          class="attachment-list"
+          v-if="formData.annexfilesList && formData.annexfilesList.length > 0"
+        >
+          <div class="list-title">
+            宸蹭笂浼犻檮浠� ({{ formData.annexfilesList.length }})
+          </div>
+          <el-table
+            :data="formData.annexfilesList"
+            style="width: 100%"
+            size="small"
+          >
             <el-table-column label="鏂囦欢鍚�" min-width="200">
               <template slot-scope="scope">
-                <i class="el-icon-document" style="margin-right: 8px; color: #409EFF;"></i>
+                <i
+                  class="el-icon-document"
+                  style="margin-right: 8px; color: #409EFF;"
+                ></i>
                 <span class="file-name">{{ scope.row.fileName }}</span>
               </template>
             </el-table-column>
             <el-table-column label="鏂囦欢绫诲瀷" width="100">
               <template slot-scope="scope">
-                <el-tag size="small">{{ getFileType(scope.row.fileName) }}</el-tag>
+                <el-tag size="small">{{
+                  getFileType(scope.row.fileName)
+                }}</el-tag>
               </template>
             </el-table-column>
             <el-table-column label="鍒涘缓鏃堕棿" width="160">
@@ -297,7 +331,7 @@
                 <span>{{ formatDateTime(scope.row.createTime) }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="鎿嶄綔" width="180">
+            <el-table-column label="鎿嶄綔" width="266">
               <template slot-scope="scope">
                 <el-button
                   size="mini"
@@ -327,27 +361,34 @@
       </el-card>
 
       <!-- 澶囨敞淇℃伅 -->
-      <el-card class="form-section" shadow="never">
+      <el-card class="form-section paper-card" shadow="never">
         <div slot="header" class="section-header">
-          <i class="el-icon-edit" style="color: #409EFF; margin-right: 8px;"></i>
+          <i
+            class="el-icon-edit"
+            style="color: #409EFF; margin-right: 8px;"
+          ></i>
           <span>澶囨敞淇℃伅</span>
         </div>
-        <el-form-item prop="remark">
-          <el-input
-            v-model="formData.remark"
-            type="textarea"
-            :rows="4"
-            placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
-            maxlength="500"
-            show-word-limit
-          />
-        </el-form-item>
+        <div class="form-row">
+          <el-form-item prop="remark" class="col-full">
+            <el-input
+              v-model="formData.remark"
+              type="textarea"
+              :rows="4"
+              placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
+              maxlength="500"
+              show-word-limit
+            />
+          </el-form-item>
+        </div>
       </el-card>
     </el-form>
 
     <div slot="footer" class="dialog-footer">
       <el-button @click="handleClose">鍙栨秷</el-button>
-      <el-button type="primary" :loading="saveLoading" @click="handleSave">淇濆瓨</el-button>
+      <el-button type="primary" :loading="saveLoading" @click="handleSave"
+        >淇濆瓨</el-button
+      >
     </div>
 
     <!-- 鏂囦欢棰勮寮圭獥 -->
@@ -361,7 +402,13 @@
 </template>
 
 <script>
-import { transportAdd, transportEdit } from "@/api/businessApi/index";
+import {
+  transportAdd,
+  transportEdit,
+  donateInfo,
+  donateList,
+  donateEdit
+} from "@/api/businessApi/index";
 import UploadAttachment from "@/components/UploadAttachment";
 import FilePreviewDialog from "@/components/FilePreviewDialog";
 import dayjs from "dayjs";
@@ -372,6 +419,7 @@
     UploadAttachment,
     FilePreviewDialog
   },
+  dicts: ["sys_user_sex", "sys_BloodType"],
   props: {
     editOpen: {
       type: Boolean,
@@ -384,6 +432,10 @@
     isEdit: {
       type: Boolean,
       default: false
+    },
+    selectedCase: {
+      type: Object,
+      default: null
     }
   },
   data() {
@@ -428,9 +480,22 @@
   watch: {
     editOpen(val) {
       if (val) {
-        this.formData = this.isEdit
-          ? { ...this.getDefaultFormData(), ...this.transportData }
-          : this.getDefaultFormData();
+        if (this.isEdit) {
+          // 缂栬緫妯″紡锛屼娇鐢ㄤ紶鍏ョ殑杞繍鍗曟暟鎹�
+
+          this.formData = {
+            ...this.getDefaultFormData(),
+            ...this.transportData
+          };
+        } else {
+          // 鏂板妯″紡
+          this.formData = this.getDefaultFormData();
+
+          // 濡傛灉鏈夐�変腑鐨勬渚嬶紝鐢ㄦ渚嬩俊鎭~鍏呰〃鍗�
+          if (this.selectedCase) {
+            this.fillFormWithCaseData(this.selectedCase);
+          }
+        }
 
         this.initAttachmentList();
 
@@ -438,6 +503,15 @@
           this.$refs.editForm && this.$refs.editForm.clearValidate();
         });
       }
+    },
+
+    selectedCase: {
+      handler(newVal) {
+        if (newVal && !this.isEdit) {
+          this.fillFormWithCaseData(newVal);
+        }
+      },
+      deep: true
     }
   },
   methods: {
@@ -445,7 +519,6 @@
     getDefaultFormData() {
       return {
         id: undefined,
-        reportId: undefined,
         caseNo: undefined,
         patName: undefined,
         sex: undefined,
@@ -456,7 +529,7 @@
         transportStartPlace: undefined,
         transportStartTime: undefined,
         contactPerson: undefined,
-        transitStatus: 1,
+        transitStatus: 2,
         doctor: undefined,
         doctorPhone: undefined,
         nurse: undefined,
@@ -475,16 +548,36 @@
       };
     },
 
+    /** 鐢ㄦ渚嬫暟鎹~鍏呰〃鍗� */
+    fillFormWithCaseData(caseData) {
+      this.formData = {
+        ...this.formData,
+        caseNo: caseData.caseNo || "",
+        patName: caseData.name || "",
+        sex: caseData.sex || "",
+        age: caseData.age || "",
+        reportId: caseData.id || null,
+        diagnosisname: caseData.diagnosisname || "",
+        treatmentHospitalName: caseData.treatmenthospitalname || "",
+        treatmentDeptName: caseData.treatmentdeptname || "",
+        // 鍙互璁剧疆涓�浜涢粯璁ゅ��
+        transportStartPlace: caseData.treatmenthospitalname || "",
+        contactPerson: caseData.coordinatorName || ""
+      };
+    },
+
     /** 鍒濆鍖栭檮浠跺垪琛� */
     initAttachmentList() {
       if (this.isEdit && this.transportData.annexfilesList) {
         this.formData.annexfilesList = [...this.transportData.annexfilesList];
-        this.attachmentFileList = this.transportData.annexfilesList.map(item => ({
-          uid: item.id || Math.random(),
-          name: item.fileName,
-          url: item.path || item.fileUrl,
-          status: 'success'
-        }));
+        this.attachmentFileList = this.transportData.annexfilesList.map(
+          item => ({
+            uid: item.id || Math.random(),
+            name: item.fileName,
+            url: item.path || item.fileUrl,
+            status: "success"
+          })
+        );
       } else {
         this.formData.annexfilesList = [];
         this.attachmentFileList = [];
@@ -499,8 +592,8 @@
     /** 闄勪欢绉婚櫎澶勭悊 */
     handleAttachmentRemove(file) {
       if (file.url) {
-        const index = this.formData.annexfilesList.findIndex(item =>
-          item.path === file.url || item.fileUrl === file.url
+        const index = this.formData.annexfilesList.findIndex(
+          item => item.path === file.url || item.fileUrl === file.url
         );
         if (index > -1) {
           this.formData.annexfilesList.splice(index, 1);
@@ -512,7 +605,7 @@
     handleRemoveAttachment(index) {
       this.formData.annexfilesList.splice(index, 1);
       this.attachmentFileList.splice(index, 1);
-      this.$message.success('闄勪欢鍒犻櫎鎴愬姛');
+      this.$message.success("闄勪欢鍒犻櫎鎴愬姛");
     },
 
     /** 涓婁紶鎴愬姛澶勭悊 */
@@ -523,21 +616,21 @@
           path: response.data || file.url,
           fileUrl: response.data || file.url,
           type: this.getFileExtension(file.name),
-          createTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+          createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
           transportId: this.formData.id,
           delFlag: 0,
-          caseNo:this.formData.caseNo
+          caseNo: this.formData.caseNo
         };
 
         this.formData.annexfilesList.push(attachmentObj);
-        this.$message.success('鏂囦欢涓婁紶鎴愬姛');
+        this.$message.success("鏂囦欢涓婁紶鎴愬姛");
       }
     },
 
     /** 涓婁紶閿欒澶勭悊 */
     handleUploadError({ file, fileList, error }) {
-      console.error('闄勪欢涓婁紶澶辫触:', error);
-      this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+      console.error("闄勪欢涓婁紶澶辫触:", error);
+      this.$message.error("鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯");
     },
 
     /** 鏂囦欢棰勮 */
@@ -556,53 +649,59 @@
       const fileName = file.fileName;
 
       if (fileUrl) {
-        const link = document.createElement('a');
+        const link = document.createElement("a");
         link.href = fileUrl;
         link.download = fileName;
-        link.style.display = 'none';
+        link.style.display = "none";
         document.body.appendChild(link);
         link.click();
         document.body.removeChild(link);
-        this.$message.success('寮�濮嬩笅杞芥枃浠�');
+        this.$message.success("寮�濮嬩笅杞芥枃浠�");
       } else {
-        this.$message.warning('鏂囦欢璺緞涓嶅瓨鍦紝鏃犳硶涓嬭浇');
+        this.$message.warning("鏂囦欢璺緞涓嶅瓨鍦紝鏃犳硶涓嬭浇");
       }
     },
 
     /** 鑾峰彇鏂囦欢绫诲瀷 */
     getFileType(fileName) {
-      if (!fileName) return 'other';
+      if (!fileName) return "other";
 
-      const extension = fileName.split('.').pop().toLowerCase();
-      const imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'];
-      const pdfTypes = ['pdf'];
-      const officeTypes = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx'];
+      const extension = fileName
+        .split(".")
+        .pop()
+        .toLowerCase();
+      const imageTypes = ["jpg", "jpeg", "png", "gif", "bmp", "webp"];
+      const pdfTypes = ["pdf"];
+      const officeTypes = ["doc", "docx", "xls", "xlsx", "ppt", "pptx"];
 
-      if (imageTypes.includes(extension)) return 'image';
-      if (pdfTypes.includes(extension)) return 'pdf';
-      if (officeTypes.includes(extension)) return 'office';
-      return 'other';
+      if (imageTypes.includes(extension)) return "image";
+      if (pdfTypes.includes(extension)) return "pdf";
+      if (officeTypes.includes(extension)) return "office";
+      return "other";
     },
 
     /** 鑾峰彇鏂囦欢鎵╁睍鍚� */
     getFileExtension(filename) {
-      return filename.split('.').pop().toLowerCase();
+      return filename
+        .split(".")
+        .pop()
+        .toLowerCase();
     },
 
     /** 鏃ユ湡鏃堕棿鏍煎紡鍖� */
     formatDateTime(dateTime) {
-      if (!dateTime) return '';
+      if (!dateTime) return "";
 
       try {
         const date = new Date(dateTime);
         if (isNaN(date.getTime())) return dateTime;
 
         const year = date.getFullYear();
-        const month = String(date.getMonth() + 1).padStart(2, '0');
-        const day = String(date.getDate()).padStart(2, '0');
-        const hours = String(date.getHours()).padStart(2, '0');
-        const minutes = String(date.getMinutes()).padStart(2, '0');
-        const seconds = String(date.getSeconds()).padStart(2, '0');
+        const month = String(date.getMonth() + 1).padStart(2, "0");
+        const day = String(date.getDate()).padStart(2, "0");
+        const hours = String(date.getHours()).padStart(2, "0");
+        const minutes = String(date.getMinutes()).padStart(2, "0");
+        const seconds = String(date.getSeconds()).padStart(2, "0");
 
         return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
       } catch (error) {
@@ -621,17 +720,21 @@
         const valid = await this.$refs.editForm.validate();
         if (!valid) return;
 
-        const pendingFiles = this.attachmentFileList.filter(item => item.status !== 'success');
+        const pendingFiles = this.attachmentFileList.filter(
+          item => item.status !== "success"
+        );
         if (pendingFiles.length > 0) {
-          this.$message.warning('杩樻湁鏂囦欢鏈笂浼犲畬鎴愶紝璇峰厛涓婁紶鎵�鏈夋枃浠舵垨绉婚櫎鏈笂浼犵殑鏂囦欢');
+          this.$message.warning(
+            "杩樻湁鏂囦欢鏈笂浼犲畬鎴愶紝璇峰厛涓婁紶鎵�鏈夋枃浠舵垨绉婚櫎鏈笂浼犵殑鏂囦欢"
+          );
           return;
         }
 
         this.saveLoading = true;
 
         const requestData = { ...this.formData };
-        let response;
 
+        let response;
         if (this.isEdit) {
           response = await transportEdit(requestData);
         } else {
@@ -642,6 +745,16 @@
           this.$message.success(this.isEdit ? "淇敼鎴愬姛" : "鏂板缓鎴愬姛");
           this.handleClose();
           this.$emit("save-success");
+
+          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(`瀵瑰簲涓婃姤妗堜緥宸茶繘鍏ユ寮忔渚嬫祦绋媊);
+            }
+          }
         } else {
           this.$message.error(response.msg || "鎿嶄綔澶辫触");
         }
@@ -709,13 +822,128 @@
   font-size: 13px;
 }
 
-.file-path {
-  font-size: 12px;
-  color: #909399;
+/* 妗堜緥淇℃伅灞曠ず鏍峰紡 */
+.selected-case-info {
+  margin-bottom: 20px;
 }
 
-::v-deep .el-card__header {
-  background: #f5f7fa;
-  border-bottom: 1px solid #ebeef5;
+.case-info-card {
+  border-left: 4px solid #67c23a;
+}
+
+/* ===== 绾歌川琛ㄦ牸缃戞牸鏍峰紡 ===== */
+.paper-card >>> .el-card__body {
+  padding: 16px;
+}
+
+.paper-form {
+  border-left: 1px solid #d0d3db;
+  background: #fff;
+  /* 瓒呭灞忛檺鍒惰〃鍗曟渶澶у搴︼紝鍙充晶鐣欑櫧锛岄伩鍏嶅瓧娈靛垎甯冭繃寮� */
+  max-width: 1400px;
+}
+
+.paper-form >>> .form-row {
+  display: flex;
+  width: 100%;
+  border-top: 1px solid #d0d3db;
+  /* 涓婄Щ1px涓庝笂涓�琛岀殑border-bottom閲嶅彔锛屼袱琛屼箣闂村彧鏄剧ず涓�鏉�1px缁嗙嚎 */
+  margin-top: -1px;
+}
+.paper-form >>> .form-row:first-child {
+  margin-top: 0;
+}
+
+/* 琛屽熬绌虹櫧濉厖锛氫笉婊℃暣琛岀殑鍙充晶鑷姩琛ヤ竴涓┖鐧芥牸瀛愶紝缃戞牸淇濇寔闂悎锛堝彸渚ч�傚綋鐣欑櫧锛� */
+.paper-form >>> .form-row::after {
+  content: "";
+  flex: 1 1 0;
+  min-height: 42px;
+  background: linear-gradient(to left, #d0d3db 1px, transparent 1px),
+    linear-gradient(to top, #d0d3db 1px, transparent 1px);
+  background-color: #fff;
+}
+
+.paper-form >>> .el-form-item {
+  flex: 0 0 33.3333%;
+  display: flex;
+  margin: 0;
+  background: #fff;
+  border-right: 1px solid #d0d3db;
+  border-bottom: 1px solid #d0d3db;
+}
+.paper-form >>> .el-form-item::after,
+.paper-form >>> .el-form-item::before {
+  display: none;
+}
+
+.paper-form >>> .col-1-3 { flex: 0 0 33.3333%; }
+.paper-form >>> .col-half { flex: 0 0 50%; }
+.paper-form >>> .col-2-3 { flex: 0 0 66.6666%; }
+.paper-form >>> .col-full { flex: 0 0 100%; }
+
+.paper-form >>> .el-form-item__label {
+  flex: 0 0 150px;
+  width: 150px !important;
+  float: none;
+  padding: 0 8px !important;
+  background: #ecf5ff;
+  border-right: 1px solid #d0d3db;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  font-size: 13px;
+  font-weight: 600;
+  color: #2c3038;
+  line-height: 1.3;
+  white-space: nowrap;
+}
+.paper-form >>> .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
+  color: #f56c6c;
+  margin-right: 2px;
+}
+
+.paper-form >>> .el-form-item__content {
+  flex: 1;
+  margin-left: 0 !important;
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  padding: 6px 10px;
+  background: #fff;
+  min-height: 42px;
+  line-height: 1.4;
+}
+
+/* 鎺т欢瀹藉害閫備腑锛屼笉閾烘弧鏁存牸锛堝唴瀹圭煭鏃惰緭鍏ユ涓嶅啀鎷夊緱寰堥暱锛� */
+.paper-form >>> .el-form-item__content .el-input,
+.paper-form >>> .el-form-item__content .el-select,
+.paper-form >>> .el-form-item__content .el-cascader {
+  width: 220px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-date-editor {
+  width: 240px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-range-editor {
+  width: 360px;
+  max-width: 100%;
+}
+
+/* ===== TransportEdit 鐗规畩閫傞厤锛氳〃鍗曞唴鏈夊涓垎鍖� el-card锛屾瘡涓垎鍖哄悇鑷嫭绔嬫垚瀹屾暣缃戞牸 ===== */
+.paper-form {
+  border: none;
+  background: transparent;
+}
+.paper-form >>> .paper-card {
+  border: none;
+  box-shadow: none;
+}
+.paper-form >>> .paper-card >>> .el-card__body {
+  border-top: 1px solid #d0d3db;
+  border-left: 1px solid #d0d3db;
+  background: #fff;
 }
 </style>

--
Gitblit v1.9.3