| | |
| | | <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" /> --> |
| | | <!-- 公共信息模块(独立显示) --> |
| | | |
| | | <!-- 判定类型标签页 --> |
| | |
| | | <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"> |
| | |
| | | :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)" |
| | |
| | | </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" |
| | |
| | | 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> |
| | |
| | | <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"> |
| | |
| | | :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)" |
| | |
| | | </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" |
| | |
| | | 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> |
| | |
| | | </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、jpg、png、doc、docx、xls、xlsx格式文件,单个文件不超过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、jpg、png、doc、docx、xls、xlsx格式文件,单个文件不超过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" |
| | |
| | | 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, |