From c8e9849cb5f24848df0174c13bfbbff37bb08a5a Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 七月 2026 15:45:30 +0800
Subject: [PATCH] 维护

---
 src/views/business/decide/DecideInfo.vue |  202 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 165 insertions(+), 37 deletions(-)

diff --git a/src/views/business/decide/DecideInfo.vue b/src/views/business/decide/DecideInfo.vue
index cdc5db6..9522c29 100644
--- a/src/views/business/decide/DecideInfo.vue
+++ b/src/views/business/decide/DecideInfo.vue
@@ -54,26 +54,9 @@
     <el-card v-if="activeJudgmentType === 'brain'" class="detail-card">
       <div slot="header" class="clearfix">
         <span class="detail-title">鑴戞浜″垽瀹氫俊鎭�</span>
+
         <el-button
-          v-if="isEdit"
-          style="float: right; margin-left: 10px;"
-          type="success"
-          @click="handleSave"
-          :loading="saveLoading"
-        >
-          淇濆瓨淇℃伅
-        </el-button>
-        <el-button
-          v-if="isEdit"
-          style="float: right; margin-left: 10px;"
-          type="success"
-          @click="accomplish"
-          :loading="saveLoading"
-        >
-          瀹屾垚鍒ゅ畾
-        </el-button>
-        <el-button
-          v-else
+          v-if="!isEdit"
           style="float: right; margin-left: 10px;"
           type="primary"
           @click="handleEdit"
@@ -111,6 +94,41 @@
           <el-col :span="8">
             <el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="deathjudgedoctt">
               <el-input v-model="form.deathjudgedoctt" :readonly="!isEdit" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="鍏朵粬鍒ゅ畾鍖荤敓">
+              <div
+                v-for="(doctor, index) in brainExtraDoctors"
+                :key="index"
+                style="display: flex; align-items: center; margin-bottom: 8px;"
+              >
+                <el-input
+                  v-model="brainExtraDoctors[index]"
+                  placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                  style="flex: 1; margin-right: 10px;"
+                  :readonly="!isEdit"
+                />
+                <el-button
+                  v-if="isEdit"
+                  type="danger"
+                  icon="el-icon-minus"
+                  circle
+                  size="mini"
+                  @click="removeBrainDoctor(index)"
+                />
+              </div>
+              <el-button
+                v-if="isEdit"
+                type="primary"
+                icon="el-icon-plus"
+                size="small"
+                @click="addBrainDoctor"
+              >
+                娣诲姞鍖荤敓
+              </el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -268,7 +286,7 @@
 
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="蹇冩浜℃椂闂�" prop="heartdeathtime">
+            <el-form-item label="蹇冩浜″垽瀹氬畬鎴愭椂闂�" prop="heartdeathtime">
               <el-date-picker
                 v-model="form.heartdeathtime"
                 type="datetime"
@@ -292,6 +310,41 @@
                 v-model="form.heartdeathjudgedoctt"
                 :readonly="!isEdit"
               />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="鍏朵粬鍒ゅ畾鍖荤敓">
+              <div
+                v-for="(doctor, index) in heartExtraDoctors"
+                :key="index"
+                style="display: flex; align-items: center; margin-bottom: 8px;"
+              >
+                <el-input
+                  v-model="heartExtraDoctors[index]"
+                  placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                  style="flex: 1; margin-right: 10px;"
+                  :readonly="!isEdit"
+                />
+                <el-button
+                  v-if="isEdit"
+                  type="danger"
+                  icon="el-icon-minus"
+                  circle
+                  size="mini"
+                  @click="removeHeartDoctor(index)"
+                />
+              </div>
+              <el-button
+                v-if="isEdit"
+                type="primary"
+                icon="el-icon-plus"
+                size="small"
+                @click="addHeartDoctor"
+              >
+                娣诲姞鍖荤敓
+              </el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -414,7 +467,25 @@
         </el-tabs>
       </div>
     </el-card>
-
+    <!-- 搴曢儴鎿嶄綔鎸夐挳 -->
+    <div style="text-align: center; margin: 30px 0;">
+      <el-button
+        v-if="isEdit"
+        type="primary"
+        @click="handleSave"
+        :loading="saveLoading"
+      >
+        淇濆瓨淇℃伅
+      </el-button>
+      <el-button
+        v-if="isEdit"
+        type="success"
+        @click="accomplish"
+        :loading="saveLoading"
+      >
+        瀹屾垚鍒ゅ畾
+      </el-button>
+    </div>
     <!-- 涓婁紶瀵硅瘽妗嗭紙鑴戞浜★級 -->
     <el-dialog
       :title="`涓婁紶${getCurrentBrainDeathTypeLabel}璇勪及琛╜"
@@ -529,10 +600,11 @@
   data() {
     return {
       caseId: null,
-      isEdit: false,
+      isEdit: true,
       saveLoading: false,
       infoid: undefined,
-
+      brainExtraDoctors: [], // 鑴戞浜″叾浠栧垽瀹氬尰鐢�
+      heartExtraDoctors: [], // 蹇冩浜″叾浠栧垽瀹氬尰鐢�
       // 鍒ゅ畾绫诲瀷鏍囩
       activeJudgmentType: "brain", // 榛樿鏄剧ず鑴戞浜�
       // 棰勮鐩稿叧
@@ -568,7 +640,7 @@
         responsibleuserid: "",
         responsibleusername: "",
         recordstate: "0",
-        remark: ""
+        extContent: ""
       },
       // 琛ㄥ崟楠岃瘉瑙勫垯
       rules: {
@@ -588,7 +660,11 @@
           { required: false, message: "蹇冩浜″師鍥犱笉鑳戒负绌�", trigger: "blur" }
         ],
         heartdeathtime: [
-          { required: false, message: "蹇冩浜℃椂闂翠笉鑳戒负绌�", trigger: "change" }
+          {
+            required: false,
+            message: "蹇冩浜″垽瀹氬畬鎴愭椂闂翠笉鑳戒负绌�",
+            trigger: "change"
+          }
         ],
         heartdeathjudgedocto: [
           {
@@ -621,12 +697,14 @@
         { value: "3", label: "鐭綔浼忔湡浣撴劅璇卞彂鐢典綅璇勪及琛�" },
         { value: "4", label: "缁忛澶氭櫘鍕掕秴澹拌瘎浼拌褰�" },
         { value: "5", label: "鍗仴濮旇剳鎹熶激璐ㄦ帶涓績 - 涓村簥缁煎悎璇勪及琛�" },
-        { value: "6", label: "UW璇勫垎琛�" }
+        { value: "7", label: "AT鍓�" },
+        { value: "8", label: "AT鍚�" },
+        { value: "6", label: "UW璇勫垎琛�(鑴戞浜�)" }
       ],
       // 蹇冩浜¤瘎浼拌〃绫诲瀷瀹氫箟
       heartDeathAttachmentTypes: [
         { value: "heart_1", label: "蹇冩浜″垽瀹氳〃" },
-        { value: "heart_2", label: "蹇冪數鍥捐瘎浼拌〃" }
+        { value: "heart_2", label: "UW璇勫垎琛�(蹇冩浜�)" }
       ],
 
       // 闄勪欢鍒楄〃鏁版嵁
@@ -651,7 +729,7 @@
   created() {
     this.infoid = this.$route.query.infoid;
     this.caseId = this.infoid;
-    this.isEdit = this.$route.query.isEdit === "true";
+
     this.activeJudgmentType = this.$route.query.type;
     // 浠庤矾鐢卞弬鏁拌幏鍙栭粯璁ゆ樉绀虹被鍨�
     if (this.$route.query.judgmentType) {
@@ -667,7 +745,32 @@
       this.activeJudgmentType = tab.name;
       // 鍙互鍦ㄨ繖閲屾坊鍔犲叾浠栧垏鎹㈤�昏緫
     },
+    addBrainDoctor() {
+      this.brainExtraDoctors.push("");
+    },
+    removeBrainDoctor(index) {
+      this.brainExtraDoctors.splice(index, 1);
+    },
+    addHeartDoctor() {
+      this.heartExtraDoctors.push("");
+    },
+    removeHeartDoctor(index) {
+      this.heartExtraDoctors.splice(index, 1);
+    },
 
+    // 搴忓垪鍖栭澶栧尰鐢熷垪琛ㄤ负瀛楃涓诧紙鐢ㄤ腑鏂囬�楀彿鍒嗛殧锛�
+    serializeExtraDoctors(list) {
+      return list.filter(name => name && name.trim()).join("锛�");
+    },
+
+    // 浠庡瓧绗︿覆瑙f瀽鍑哄尰鐢熷垪琛紙鎸変腑鏂囬�楀彿鎷嗗垎锛�
+    parseExtraDoctors(str) {
+      if (!str) return [];
+      return str
+        .split("锛�")
+        .map(s => s.trim())
+        .filter(s => s);
+    },
     // 鐢熸垚鎹愮尞鑰呯紪鍙�
     generateDonorNo() {
       const timestamp = Date.now().toString();
@@ -678,13 +781,8 @@
     async getDetail(infoid) {
       try {
         const response = await queryDathInfoBaseInfo({ infoid });
-        let realData = {};
 
-        if (response && response.data) {
-          realData = response.data[0];
-        } else if (response) {
-          realData = response;
-        }
+        let realData = response?.data?.[0] || response || {};
 
         // 鏄犲皠瀛楁鍒拌〃鍗�
         this.form = {
@@ -703,7 +801,18 @@
         if (realData.rememberAnnex) {
           this.parseAttachmentData(realData.rememberAnnex, "brain");
         }
-
+        if (realData.extContent) {
+          const parts = realData.extContent.split(" | ");
+          parts.forEach(part => {
+            if (part.includes("鑴戞浜″叾浠栧尰鐢燂細")) {
+              const doctorsStr = part.replace("鑴戞浜″叾浠栧尰鐢燂細", "");
+              this.brainExtraDoctors = this.parseExtraDoctors(doctorsStr);
+            } else if (part.includes("蹇冩浜″叾浠栧尰鐢燂細")) {
+              const doctorsStr = part.replace("蹇冩浜″叾浠栧尰鐢燂細", "");
+              this.heartExtraDoctors = this.parseExtraDoctors(doctorsStr);
+            }
+          });
+        }
         // 瑙f瀽蹇冩浜¢檮浠朵俊鎭�
         if (realData.heartdeathjudgeannex) {
           this.parseAttachmentData(realData.heartdeathjudgeannex, "heart");
@@ -1097,13 +1206,32 @@
           this.saveLoading = true;
 
           try {
+            // 鏋勫缓棰濆鍖荤敓瀛楃涓�
+            const brainExtraStr = this.serializeExtraDoctors(
+              this.brainExtraDoctors
+            );
+            const heartExtraStr = this.serializeExtraDoctors(
+              this.heartExtraDoctors
+            );
+
+            let extContent = this.form.extContent || "";
+            // 濡傛灉宸叉湁澶囨敞锛岀敤 ' | ' 鍒嗛殧锛涘惁鍒欑洿鎺ヨ祴鍊�
+            if (brainExtraStr) {
+              extContent +=
+                (extContent ? " | " : "") + "鑴戞浜″叾浠栧尰鐢燂細" + brainExtraStr;
+            }
+            if (heartExtraStr) {
+              extContent +=
+                (extContent ? " | " : "") + "蹇冩浜″叾浠栧尰鐢燂細" + heartExtraStr;
+            }
             // 鏋勫缓鎻愪氦鏁版嵁
             const submitData = {
               ...this.form,
               infoid: this.infoid,
               // 纭繚闄勪欢鏁版嵁鏈�鏂�
-              rememberAnnex: this.buildBrainDeathAttachmentJson(),
-              heartdeathjudgeannex: this.buildHeartDeathAttachmentJson()
+              rememberannex: this.buildBrainDeathAttachmentJson(),
+              heartdeathjudgeannex: this.buildHeartDeathAttachmentJson(),
+              extContent: extContent // 浣跨敤鍚堝苟鍚庣殑 extContent
             };
             if (submitData.state == 1 || !submitData.state) {
               submitData.state = 2;

--
Gitblit v1.9.3