| | |
| | | <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%" |
| | |
| | | <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) |
| | |
| | | </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"> |
| | |
| | | |
| | | <!-- 器官基本信息卡片 --> |
| | | <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' |
| | |
| | | </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" /> |
| | |
| | | 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: { |
| | |
| | | created() { |
| | | |
| | | this.caseId = this.infoid; |
| | | this.isEdit = true; |
| | | this.isEdit = false; |
| | | this.getAssessmentDetail(); |
| | | }, |
| | | methods: { |