WXL
4 天以前 c4599aa279fd2f90b741608392e056fbae2282d5
src/views/business/course/components/MedicalAssessmentStage.vue
@@ -7,17 +7,20 @@
        <span>器官评估表</span>
      </div>
      <!-- 捐献决定表单 -->
      <el-form>
        <el-form-item label-width="100px" label="捐献决定">
          <el-checkbox-group v-model="organdecisionValues" @change="handleOrganDecisionChange" :disabled="!isEdit">
            <el-checkbox v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.value">{{ dict.label }}
            </el-checkbox>
          </el-checkbox-group>
          <el-input v-if="showOtherInput" v-model="organdecisionOther" placeholder="请输入其他捐献决定的具体内容"
            style="margin-top: 10px; width: 300px;" :readonly="!isEdit" @input="handleOtherDecisionInput"></el-input>
        </el-form-item>
      </el-form>
      <!-- 捐献决定(只读展示) -->
      <el-descriptions title="捐献决定" :column="descriptionColumn" border size="small">
        <el-descriptions-item label="捐献决定">
          <template v-if="organdecisionValues && organdecisionValues.length">
            <el-tag v-for="(v, i) in organdecisionValues" :key="i" size="small" style="margin-right: 8px;">
              {{ getOrganLabel(v) }}
            </el-tag>
          </template>
          <template v-else>-</template>
        </el-descriptions-item>
        <el-descriptions-item v-if="showOtherInput" label="其他捐献决定">
          {{ organdecisionOther || '-' }}
        </el-descriptions-item>
      </el-descriptions>
      <!-- 器官评估表格 -->
      <el-table :data="filteredOrganAssessmentList" v-loading="assessmentLoading" style="width: 100%"
@@ -32,29 +35,16 @@
                <el-tab-pane v-for="(assessment, index) in getOrganAssessments(scope.row)"
                  :key="`${scope.row.organno}_${index}`" :label="`第${index + 1}次评估`" :name="String(index)">
                  <organ-assessment-form :organ-data="scope.row" :assessment-index="index"
                    :readonly="!canAssessOrgan(scope.row)" :current-user="currentUser"
                    :readonly="true" :current-user="currentUser"
                    @update-assessment="handleUpdateAssessment" @delete-assessment="handleDeleteAssessment"
                    @save-assessment="handleSaveAssessment" />
                </el-tab-pane>
                <!-- 添加评估按钮 -->
                <el-tab-pane name="add" v-if="canAssessOrgan(scope.row) && isEdit">
                  <template slot="label">
                    <el-button type="text" icon="el-icon-plus" @click.stop="handleAddNewAssessment(scope.row)"
                      size="mini">
                      新增评估
                    </el-button>
                  </template>
                  <div class="add-assessment-prompt">
                    <el-empty description="点击上方按钮添加新的评估"></el-empty>
                  </div>
                </el-tab-pane>
                <!-- 评估汇总Tab -->
                <el-tab-pane label="评估汇总" name="summary">
                  <div class="assessment-summary">
                    <!-- 基本信息汇总 -->
                    <el-descriptions title="基本信息汇总" :column="2" border>
                    <el-descriptions title="基本信息汇总" :column="descriptionColumn" border>
                      <el-descriptions-item label="器官类型">
                        <span class="summary-item">{{
                          getOrganLabel(scope.row.organno)
@@ -96,7 +86,7 @@
                              </el-tag>
                            </div>
                            <el-descriptions :column="2" border class="detail-descriptions">
                            <el-descriptions :column="descriptionColumn" border class="detail-descriptions">
                              <!-- 评估时间 -->
                              <el-descriptions-item label="评估时间" :span="2">
                                <span class="time-text">
@@ -163,7 +153,7 @@
                    <!-- 器官基本信息卡片 -->
                    <el-card header="器官信息" style="margin-top: 20px;" class="organ-info-card">
                      <el-descriptions :column="2" border>
                      <el-descriptions :column="descriptionColumn" border>
                        <el-descriptions-item label="获取前活检">
                          <el-tag :type="scope.row.isbiopsybefore == '1'
                              ? 'success'
@@ -252,30 +242,8 @@
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
          <template slot-scope="scope">
            <el-button v-if="canAssessOrgan(scope.row) && isEdit" size="mini" type="text"
              @click="handleToggleExpand(scope.row)">
              {{
                expandedRowKeys.includes(scope.row.organno) ? "收起" : "详情"
              }}
            </el-button>
            <el-button v-else-if="!isEdit" size="mini" type="text" @click="handleToggleExpand(scope.row)">
              {{
                expandedRowKeys.includes(scope.row.organno) ? "收起" : "查看"
              }}
            </el-button>
            <el-button v-else size="mini" type="text" disabled>无权限</el-button>
          </template>
        </el-table-column>
      </el-table>
    </el-card>
    <!-- 整体保存按钮 -->
    <div class="footer-actions" v-if="isEdit">
      <el-button type="primary" @click="handleSaveAll" :loading="saveLoading">保存评估表</el-button>
      <el-button type="success" @click="accomplish" :loading="saveLoading">评估完成</el-button>
    </div>
    <!-- 文件预览弹窗 -->
    <FilePreviewDialog :visible="attachmentVisible" :file="currentPreviewFile" @close="attachmentVisible = false" />
@@ -291,10 +259,12 @@
import CaseBasicInfo from "@/components/CaseBasicInfo";
import FilePreviewDialog from "@/components/FilePreviewDialog";
import OrganAssessmentForm from "@/components/assessInfoComponents/OrganAssessmentForm.vue";
import readonlyDescriptionsMixin from "./readonlyDescriptionsMixin";
export default {
  name: "AssessmentDetail",
  components: { OrganAssessmentForm, FilePreviewDialog, CaseBasicInfo },
  mixins: [readonlyDescriptionsMixin],
  dicts: ["sys_user_sex", "sys_Organ", "sys_0_1"],
   props: {
    infoid: {
@@ -419,7 +389,7 @@
  created() {
    this.caseId = this.infoid;
    this.isEdit = true;
    this.isEdit = false;
    this.getAssessmentDetail();
  },
  methods: {