| | |
| | | |
| | | <div class="form-row"> |
| | | <el-form-item label="手术医生" prop="operationdoctor" class="col-1-3"> |
| | | <el-input v-model="form.operationdoctor" /> |
| | | <el-input v-model="form.operationdoctor" :disabled="isReadOnly" /> |
| | | </el-form-item> |
| | | <el-form-item label="手术开始时间" prop="operationbegtime" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.operationbegtime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | <el-form-item label="手术结束时间" prop="operationendtime" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.operationendtime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | > |
| | | <el-date-picker |
| | | v-model="form.abdominalaortacannulatime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | > |
| | | <el-date-picker |
| | | v-model="form.abdominalaortaperfusiontime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | <el-form-item label="门静脉插管时间" prop="portalveincannulatime" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.portalveincannulatime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | <el-form-item label="门静脉灌注时间" prop="portalveinperfusiontime" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.portalveinperfusiontime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | <el-form-item label="进手术室时间" prop="coordinatorInOperating" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.coordinatorInOperating" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | <el-form-item label="出手术室时间" prop="coordinatorOutOperating" class="col-1-3"> |
| | | <el-date-picker |
| | | v-model="form.coordinatorOutOperating" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | |
| | | </el-form-item> |
| | | </el-col> --> |
| | | <el-form-item label="是否默哀缅怀" prop="isspendremember" class="col-1-3"> |
| | | <el-select v-model="form.isspendremember" style="width: 100%"> |
| | | <el-select v-model="form.isspendremember" :disabled="isReadOnly" style="width: 100%"> |
| | | <el-option label="是" :value="1" /> |
| | | <el-option label="否" :value="0" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="恢复遗体仪容" prop="isrestoreremains" class="col-1-3"> |
| | | <el-select v-model="form.isrestoreremains" style="width: 100%"> |
| | | <el-select v-model="form.isrestoreremains" :disabled="isReadOnly" style="width: 100%"> |
| | | <el-option label="是" :value="1" /> |
| | | <el-option label="否" :value="0" /> |
| | | </el-select> |
| | |
| | | |
| | | <div class="form-row"> |
| | | <el-form-item label="负责人姓名" prop="responsibleusername" class="col-1-3"> |
| | | <el-input v-model="form.responsibleusername" /> |
| | | <el-input v-model="form.responsibleusername" :disabled="isReadOnly" /> |
| | | </el-form-item> |
| | | <el-form-item label="协调员一" prop="coordinatedusernameo" class="col-1-3"> |
| | | <el-input v-model="form.coordinatedusernameo" /> |
| | | <el-input v-model="form.coordinatedusernameo" :disabled="isReadOnly" /> |
| | | </el-form-item> |
| | | <el-form-item label="协调员二" prop="coordinatedusernamet" class="col-1-3"> |
| | | <el-input v-model="form.coordinatedusernamet" /> |
| | | <el-input v-model="form.coordinatedusernamet" :disabled="isReadOnly" /> |
| | | </el-form-item> |
| | | </div> |
| | | |
| | |
| | | <el-form-item label="获取机构名称" prop="gainhospitalname" class="col-1-3"> |
| | | <el-input |
| | | v-model="form.gainhospitalname" |
| | | :disabled="isReadOnly" |
| | | placeholder="请输入获取机构名称" |
| | | /> |
| | | </el-form-item> |
| | |
| | | <el-form-item label-width="100px" label="捐献器官"> |
| | | <el-checkbox-group |
| | | v-model="selectedOrgans" |
| | | :disabled="isReadOnly" |
| | | @change="handleOrganSelectionChange" |
| | | > |
| | | <el-checkbox |
| | |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="scope.row.organStartTime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择获取开始时间" |
| | |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="scope.row.organgettime" |
| | | :disabled="isReadOnly" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择器官离体时间" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-autocomplete |
| | | v-model="scope.row.gainhospitalname" |
| | | :disabled="isReadOnly" |
| | | :fetch-suggestions="queryHospitalSearch" |
| | | placeholder="请选择或输入获取医院" |
| | | style="width: 100%" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.organgetdoct" |
| | | :disabled="isReadOnly" |
| | | placeholder="获取医师" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column |
| | | <el-table-column |
| | | label="获取状态" |
| | | align="center" |
| | | width="120" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.organstate" |
| | | :disabled="isReadOnly" |
| | | placeholder="请选择获取状态" |
| | | style="width: 100%" |
| | | > |
| | |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="说明" |
| | | align="center" |
| | | prop="notgetreason" |
| | |
| | | <el-input |
| | | type="textarea" |
| | | clearable |
| | | :disabled="isReadOnly" |
| | | v-model="scope.row.notgetreason" |
| | | placeholder="请输入未获取说明" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | v-if="!isReadOnly" |
| | | label="操作" |
| | | align="center" |
| | | width="120" |
| | |
| | | > |
| | | <div style="margin-bottom: 10px; text-align: right;"> |
| | | <el-button |
| | | v-if="!isReadOnly" |
| | | size="mini" |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | |
| | | <el-select |
| | | v-model="scope.row.fileType" |
| | | size="small" |
| | | :disabled="isReadOnly" |
| | | @change="updateAttachmentCategory(scope.row, $event)" |
| | | placeholder="选择分类" |
| | | > |
| | |
| | | >预览</el-button |
| | | > |
| | | <el-button |
| | | v-if="!isReadOnly" |
| | | size="mini" |
| | | type="danger" |
| | | @click="handleRemoveAttachmentByFile(scope.row)" |
| | |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-card> |
| | | <div style="text-align: center; margin: 30px 0;"> |
| | | <div v-if="!isReadOnly" style="text-align: center; margin: 30px 0;"> |
| | | <el-button type="primary" @click="handleSave" :loading="saveLoading"> |
| | | 保存 |
| | | </el-button> |
| | |
| | | <el-input v-model="currentRecord.organname" readonly /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="获取状态"> |
| | | <el-select v-model="currentRecord.organstate" style="width: 100%"> |
| | | <el-option |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | |
| | | |
| | | <script> |
| | | import { witnessList, witnessadd, witnessedit } from "@/api/businessApi"; |
| | | import { getDonatebaseinfo } from "@/api/project/donatebaseinfo"; |
| | | import FilePreviewDialog from "@/components/FilePreviewDialog"; |
| | | import CaseBasicInfo from "@/components/CaseBasicInfo"; |
| | | import { getToken } from "@/utils/auth"; |
| | |
| | | }; |
| | | }, |
| | | computed: { |
| | | // 查看模式:只读,禁用表单并隐藏保存按钮 |
| | | isReadOnly() { |
| | | return this.$route.query.mode === "view"; |
| | | }, |
| | | // 当前用户信息 |
| | | currentUser() { |
| | | return JSON.parse(sessionStorage.getItem("user") || "{}"); |
| | |
| | | record => |
| | | !record.organStartTime || |
| | | !record.organgettime || |
| | | !record.gainhospitalno || |
| | | !record.gainhospitalname || |
| | | !record.organgetdoct |
| | | ).length; |
| | | }, |
| | |
| | | }, |
| | | // 保存基本信息 |
| | | async handleSave() { |
| | | if (this.saveLoading) return; |
| | | this.$refs.form.validate(async valid => { |
| | | if (valid) { |
| | | this.saveLoading = true; |
| | | try { |
| | | // 新增时校验是否已有相同患者 |
| | | if (!this.form.id) { |
| | | const exists = await this.checkPatientExists(); |
| | | if (exists) { |
| | | this.$message.warning("该患者已存在,请勿重复添加"); |
| | | return; |
| | | } |
| | | } |
| | | console.log(this.procurementData.serviceDonationwitnessorgans); |
| | | |
| | | const saveData = { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 新增时校验是否已有相同患者(按住院号) |
| | | async checkPatientExists() { |
| | | let inpatientno = this.form.inpatientno; |
| | | if (!inpatientno && this.caseId) { |
| | | try { |
| | | const caseRes = await getDonatebaseinfo(this.caseId); |
| | | inpatientno = (caseRes.data && caseRes.data.inpatientno) || ""; |
| | | } catch (e) { |
| | | inpatientno = ""; |
| | | } |
| | | } |
| | | if (!inpatientno) return false; |
| | | try { |
| | | const res = await witnessList({ inpatientno, pageNum: 1, pageSize: 1 }); |
| | | const list = res.data || []; |
| | | return list.some(item => item && item.id != null && item.id !== ""); |
| | | } catch (e) { |
| | | return false; |
| | | } |
| | | }, |
| | | // 保存获取记录 |
| | | async handleSaveProcurement() { |
| | | if (!this.form.id) { |