From c4599aa279fd2f90b741608392e056fbae2282d5 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 20 八月 2026 17:16:54 +0800
Subject: [PATCH] 各表单布局调整

---
 src/views/business/course/components/DeathJudgmentStage.vue |  330 +++---------------------------------------------------
 1 files changed, 23 insertions(+), 307 deletions(-)

diff --git a/src/views/business/course/components/DeathJudgmentStage.vue b/src/views/business/course/components/DeathJudgmentStage.vue
index b71bcf0..e4a5555 100644
--- a/src/views/business/course/components/DeathJudgmentStage.vue
+++ b/src/views/business/course/components/DeathJudgmentStage.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="death-judgment-detail">
-    <!-- <case-basic-info :case-id="caseId" :show-attachment="true" /> -->
+    <!-- <case-basic-info :case-id="caseId" :show-attachment="true":column="3" /> -->
     <!-- 鍏叡淇℃伅妯″潡锛堢嫭绔嬫樉绀猴級 -->
 
     <!-- 鍒ゅ畾绫诲瀷鏍囩椤� -->
@@ -56,65 +56,15 @@
         <span class="detail-title">鑴戞浜″垽瀹氫俊鎭�</span>
       </div>
 
-      <el-form :model="form" ref="brainForm" :rules="rules" label-width="120px">
-        <el-row :gutter="20">
-          <el-col :span="8">
-            <el-form-item label="姝讳骸鍘熷洜" prop="deathreason">
-              <el-input v-model="form.deathreason" :readonly="!isEdit" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="8">
-            <el-form-item label="姝讳骸鏃堕棿" prop="deathtime">
-              <el-date-picker
-                v-model="form.deathtime"
-                type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                style="width: 100%"
-                :disabled="!isEdit"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="deathjudgedocto">
-              <el-input v-model="form.deathjudgedocto" :readonly="!isEdit" />
-            </el-form-item>
-          </el-col>
-          <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-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
+      <el-descriptions title="鑴戞浜″垽瀹氫俊鎭�" :column="descriptionColumn" border size="small">
+        <el-descriptions-item label="姝讳骸鍘熷洜">{{ form.deathreason || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="姝讳骸鏃堕棿">{{ form.deathtime || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍒ゅ畾鍖荤敓涓�">{{ form.deathjudgedocto || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍒ゅ畾鍖荤敓浜�">{{ form.deathjudgedoctt || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍏朵粬鍒ゅ畾鍖荤敓">
+          {{ brainExtraDoctors.filter(d => d && d.trim()).join('銆�') || '-' }}
+        </el-descriptions-item>
+      </el-descriptions>
 
       <!-- 鑴戞浜¤瘎浼拌〃闄勪欢 -->
       <div class="attachment-section">
@@ -131,21 +81,6 @@
             :name="type.value"
           >
             <div class="attachment-upload-section">
-              <div class="upload-header">
-                <span class="upload-title">{{ type.label }}</span>
-                <el-tooltip content="鐐瑰嚮涓婁紶璇ョ被鍨嬭瘎浼拌〃" placement="top">
-                  <el-button
-                    size="mini"
-                    type="primary"
-                    icon="el-icon-plus"
-                    @click="openUploadDialog(type.value)"
-                    :disabled="!isEdit"
-                  >
-                    娣诲姞璇勪及琛�
-                  </el-button>
-                </el-tooltip>
-              </div>
-
               <!-- 闄勪欢鍒楄〃 -->
               <el-table
                 :data="getAttachmentsByType(type.value)"
@@ -190,7 +125,7 @@
                   </template>
                 </el-table-column>
 
-                <el-table-column label="鎿嶄綔" width="180" align="center">
+                <el-table-column label="鎿嶄綔" width="140" align="center">
                   <template slot-scope="scope">
                     <el-button
                       size="mini"
@@ -205,15 +140,6 @@
                       icon="el-icon-download"
                       @click="handleDownload(scope.row)"
                       >涓嬭浇</el-button
-                    >
-                    <el-button
-                      v-if="isEdit"
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      style="color: #F56C6C;"
-                      @click="handleRemoveAttachment(scope.row)"
-                      >鍒犻櫎</el-button
                     >
                   </template>
                 </el-table-column>
@@ -238,99 +164,17 @@
     <el-card v-else 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-else
-          style="float: right; margin-left: 10px;"
-          type="primary"
-          @click="handleEdit"
-        >
-          缂栬緫淇℃伅
-        </el-button>
       </div>
 
-      <el-form :model="form" ref="heartForm" :rules="rules" label-width="120px">
-        <el-row :gutter="20">
-          <el-col :span="8">
-            <el-form-item label="蹇冩浜″師鍥�" prop="heartdeathreason">
-              <el-input v-model="form.heartdeathreason" :readonly="!isEdit" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="8">
-            <el-form-item label="蹇冩浜″垽瀹氬畬鎴愭椂闂�" prop="heartdeathtime">
-              <el-date-picker
-                v-model="form.heartdeathtime"
-                type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                style="width: 100%"
-                :disabled="!isEdit"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="heartdeathjudgedocto">
-              <el-input
-                v-model="form.heartdeathjudgedocto"
-                :readonly="!isEdit"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="heartdeathjudgedoctt">
-              <el-input
-                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>
-      </el-form>
+      <el-descriptions title="蹇冩浜″垽瀹氫俊鎭�" :column="descriptionColumn" border size="small">
+        <el-descriptions-item label="蹇冩浜″師鍥�">{{ form.heartdeathreason || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="蹇冩浜″垽瀹氬畬鎴愭椂闂�">{{ form.heartdeathtime || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍒ゅ畾鍖荤敓涓�">{{ form.heartdeathjudgedocto || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍒ゅ畾鍖荤敓浜�">{{ form.heartdeathjudgedoctt || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍏朵粬鍒ゅ畾鍖荤敓">
+          {{ heartExtraDoctors.filter(d => d && d.trim()).join('銆�') || '-' }}
+        </el-descriptions-item>
+      </el-descriptions>
 
       <!-- 蹇冩浜¤瘎浼拌〃闄勪欢 -->
       <div class="attachment-section">
@@ -347,21 +191,6 @@
             :name="type.value"
           >
             <div class="attachment-upload-section">
-              <div class="upload-header">
-                <span class="upload-title">{{ type.label }}</span>
-                <el-tooltip content="鐐瑰嚮涓婁紶璇ョ被鍨嬭瘎浼拌〃" placement="top">
-                  <el-button
-                    size="mini"
-                    type="primary"
-                    icon="el-icon-plus"
-                    @click="openHeartDeathUploadDialog(type.value)"
-                    :disabled="!isEdit"
-                  >
-                    娣诲姞璇勪及琛�
-                  </el-button>
-                </el-tooltip>
-              </div>
-
               <!-- 蹇冩浜¢檮浠跺垪琛� -->
               <el-table
                 :data="getHeartDeathAttachmentsByType(type.value)"
@@ -406,7 +235,7 @@
                   </template>
                 </el-table-column>
 
-                <el-table-column label="鎿嶄綔" width="180" align="center">
+                <el-table-column label="鎿嶄綔" width="140" align="center">
                   <template slot-scope="scope">
                     <el-button
                       size="mini"
@@ -421,15 +250,6 @@
                       icon="el-icon-download"
                       @click="handleDownload(scope.row)"
                       >涓嬭浇</el-button
-                    >
-                    <el-button
-                      v-if="isEdit"
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      style="color: #F56C6C;"
-                      @click="handleRemoveHeartDeathAttachment(scope.row)"
-                      >鍒犻櫎</el-button
                     >
                   </template>
                 </el-table-column>
@@ -449,112 +269,6 @@
         </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}璇勪及琛╜"
-      :visible.sync="uploadDialogVisible"
-      width="500px"
-      :close-on-click-modal="false"
-    >
-      <el-upload
-        ref="uploadRef"
-        class="upload-demo"
-        drag
-        :action="uploadAction"
-        :headers="headers"
-        multiple
-        :file-list="tempFileList"
-        :before-upload="beforeUpload"
-        :on-change="handleFileChange"
-        :on-remove="handleTempRemove"
-        :on-success="handleUploadSuccess"
-        :auto-upload="false"
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">
-          灏嗚瘎浼拌〃鏂囦欢鎷栧埌姝ゅ锛屾垨<em>鐐瑰嚮涓婁紶</em>
-        </div>
-        <div class="el-upload__tip" slot="tip">
-          鏀寔涓婁紶pdf銆乯pg銆乸ng銆乨oc銆乨ocx銆亁ls銆亁lsx鏍煎紡鏂囦欢锛屽崟涓枃浠朵笉瓒呰繃10MB
-        </div>
-      </el-upload>
-
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="uploadDialogVisible = false">鍙栨秷</el-button>
-        <el-button
-          type="primary"
-          @click="submitUpload"
-          :loading="uploadLoading"
-          :disabled="tempFileList.length === 0"
-        >
-          纭涓婁紶
-        </el-button>
-      </div>
-    </el-dialog>
-
-    <!-- 涓婁紶瀵硅瘽妗嗭紙蹇冩浜★級 -->
-    <el-dialog
-      :title="`涓婁紶${getCurrentHeartDeathTypeLabel}璇勪及琛╜"
-      :visible.sync="heartDeathUploadDialogVisible"
-      width="500px"
-      :close-on-click-modal="false"
-    >
-      <el-upload
-        ref="heartDeathUploadRef"
-        class="upload-demo"
-        drag
-        :action="uploadAction"
-        :headers="headers"
-        multiple
-        :file-list="tempHeartDeathFileList"
-        :before-upload="beforeUpload"
-        :on-change="handleHeartDeathFileChange"
-        :on-remove="handleHeartDeathTempRemove"
-        :on-success="handleHeartDeathUploadSuccess"
-        :auto-upload="false"
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">
-          灏嗚瘎浼拌〃鏂囦欢鎷栧埌姝ゅ锛屾垨<em>鐐瑰嚮涓婁紶</em>
-        </div>
-        <div class="el-upload__tip" slot="tip">
-          鏀寔涓婁紶pdf銆乯pg銆乸ng銆乨oc銆乨ocx銆亁ls銆亁lsx鏍煎紡鏂囦欢锛屽崟涓枃浠朵笉瓒呰繃10MB
-        </div>
-      </el-upload>
-
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="heartDeathUploadDialogVisible = false"
-          >鍙栨秷</el-button
-        >
-        <el-button
-          type="primary"
-          @click="submitHeartDeathUpload"
-          :loading="heartDeathUploadLoading"
-          :disabled="tempHeartDeathFileList.length === 0"
-        >
-          纭涓婁紶
-        </el-button>
-      </div>
-    </el-dialog>
     <!-- 闄勪欢棰勮 -->
     <FilePreviewDialog
       :visible="previewVisible"
@@ -574,10 +288,12 @@
 import { getToken } from "@/utils/auth";
 import CaseBasicInfo from "@/components/CaseBasicInfo";
 import FilePreviewDialog from "@/components/FilePreviewDialog";
+import readonlyDescriptionsMixin from "./readonlyDescriptionsMixin";
 
 export default {
   name: "DeathJudgmentDetail",
   components: { CaseBasicInfo, FilePreviewDialog },
+  mixins: [readonlyDescriptionsMixin],
   props: {
     infoid: {
       type: String,

--
Gitblit v1.9.3