这个编辑按钮功能展示的数据为什么会不全,已确认状态下的数据展示不全。

This commit is contained in:
wangjian963
2026-03-19 17:50:06 +08:00
parent 83747d8626
commit dc2e4098ae
3 changed files with 133 additions and 30 deletions

View File

@@ -134,7 +134,7 @@
</el-table-column>
<el-table-column label="结束" width="70" align="center">
<template #default="scope">
<el-checkbox :model-value="scope.row.consultationStatus >= 40" disabled />
<el-checkbox :model-value="scope.row.consultationStatus === 40" disabled />
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right" align="center">
@@ -387,22 +387,36 @@ const queryParams = reactive({
const formData = ref({
id: null,
consultationId: '',
patientId: null,
patientName: '',
genderEnum: null,
age: null,
patientBusNo: '',
patientIdentifierNo: '',
requestingPhysician: '',
consultationDate: '',
encounterId: null,
departmentId: null,
department: '',
provisionalDiagnosis: '',
consultationPurpose: '',
requestingPhysicianId: null,
requestingPhysician: '',
invitedObject: '',
consultationDate: '',
consultationRequestDate: null,
consultationPurpose: '',
provisionalDiagnosis: '',
consultationActivityId: null,
consultationActivityName: '',
consultationUrgency: '',
consultationStatus: 0,
consultationOpinion: '',
consultingPhysicians: '',
signingPhysicianId: null,
signingPhysicianName: '',
signingTime: null,
invitedPhysiciansText: '',
attendingPhysician: '',
representDepartment: '',
signPhysician: '',
signTime: null,
consultationRequestDate: null
signTime: null
})
const formRules = {
@@ -513,15 +527,83 @@ const handleEdit = (row) => {
ElMessage.warning('已结束的会诊申请不可编辑')
return
}
isViewMode.value = false
formData.value = { ...row }
// 确保所有字段都复制到formData中
formData.value = {
id: row.id || null,
consultationId: row.consultationId || '',
patientId: row.patientId || null,
patientName: row.patientName || '',
genderEnum: row.genderEnum || null,
age: row.age || null,
patientBusNo: row.patientBusNo || '',
patientIdentifierNo: row.patientIdentifierNo || '',
encounterId: row.encounterId || null,
departmentId: row.departmentId || null,
department: row.department || '',
requestingPhysicianId: row.requestingPhysicianId || null,
requestingPhysician: row.requestingPhysician || '',
invitedObject: row.invitedObject || '',
consultationDate: row.consultationDate || '',
consultationRequestDate: row.consultationRequestDate || null,
consultationPurpose: row.consultationPurpose || '',
provisionalDiagnosis: row.provisionalDiagnosis || '',
consultationActivityId: row.consultationActivityId || null,
consultationActivityName: row.consultationActivityName || '',
consultationUrgency: row.consultationUrgency || '',
consultationStatus: row.consultationStatus || 0,
consultationOpinion: row.consultationOpinion || '',
consultingPhysicians: row.consultingPhysicians || '',
signingPhysicianId: row.signingPhysicianId || null,
signingPhysicianName: row.signingPhysicianName || '',
signingTime: row.signingTime || null,
invitedPhysiciansText: row.invitedPhysiciansText || '',
attendingPhysician: row.attendingPhysician || '',
representDepartment: row.representDepartment || '',
signPhysician: row.signPhysician || '',
signTime: row.signTime || null
}
dialogVisible.value = true
}
const handleView = (row) => {
isViewMode.value = true
formData.value = { ...row }
// 确保所有字段都复制到formData中
formData.value = {
id: row.id || null,
consultationId: row.consultationId || '',
patientId: row.patientId || null,
patientName: row.patientName || '',
genderEnum: row.genderEnum || null,
age: row.age || null,
patientBusNo: row.patientBusNo || '',
patientIdentifierNo: row.patientIdentifierNo || '',
encounterId: row.encounterId || null,
departmentId: row.departmentId || null,
department: row.department || '',
requestingPhysicianId: row.requestingPhysicianId || null,
requestingPhysician: row.requestingPhysician || '',
invitedObject: row.invitedObject || '',
consultationDate: row.consultationDate || '',
consultationRequestDate: row.consultationRequestDate || null,
consultationPurpose: row.consultationPurpose || '',
provisionalDiagnosis: row.provisionalDiagnosis || '',
consultationActivityId: row.consultationActivityId || null,
consultationActivityName: row.consultationActivityName || '',
consultationUrgency: row.consultationUrgency || '',
consultationStatus: row.consultationStatus || 0,
consultationOpinion: row.consultationOpinion || '',
consultingPhysicians: row.consultingPhysicians || '',
signingPhysicianId: row.signingPhysicianId || null,
signingPhysicianName: row.signingPhysicianName || '',
signingTime: row.signingTime || null,
invitedPhysiciansText: row.invitedPhysiciansText || '',
attendingPhysician: row.attendingPhysician || '',
representDepartment: row.representDepartment || '',
signPhysician: row.signPhysician || '',
signTime: row.signTime || null
}
dialogVisible.value = true
}
@@ -530,22 +612,36 @@ const handleDialogClose = () => {
formData.value = {
id: null,
consultationId: '',
patientId: null,
patientName: '',
genderEnum: null,
age: null,
patientBusNo: '',
patientIdentifierNo: '',
requestingPhysician: '',
consultationDate: '',
encounterId: null,
departmentId: null,
department: '',
provisionalDiagnosis: '',
consultationPurpose: '',
requestingPhysicianId: null,
requestingPhysician: '',
invitedObject: '',
consultationDate: '',
consultationRequestDate: null,
consultationPurpose: '',
provisionalDiagnosis: '',
consultationActivityId: null,
consultationActivityName: '',
consultationUrgency: '',
consultationStatus: 0,
consultationOpinion: '',
consultingPhysicians: '',
signingPhysicianId: null,
signingPhysicianName: '',
signingTime: null,
invitedPhysiciansText: '',
attendingPhysician: '',
representDepartment: '',
signPhysician: '',
signTime: null,
consultationRequestDate: null
signTime: null
}
}

View File

@@ -136,7 +136,7 @@
</el-form-item>
<el-form-item label="会诊确认参加医师">
<el-input v-model="formData.confirmingPhysician" type="textarea" disabled />
<el-input v-model="formData.confirmingPhysicianText" type="textarea" :rows="3" disabled />
</el-form-item>
<el-form-item label="会诊意见" required>
@@ -249,6 +249,7 @@ const formData = ref({
consultationPurpose: '',
provisionalDiagnosis: '',
confirmingPhysician: '',
confirmingPhysicianText: '', // 显示所有参与确认的医师
consultationOpinion: '',
confirmingPhysicianName: '',
confirmingDeptName: '',
@@ -311,7 +312,7 @@ const applyRowToForm = (row) => {
})
return
}
formData.value = {
id: row.id,
consultationRequestId: row.consultationRequestId,
@@ -329,6 +330,7 @@ const applyRowToForm = (row) => {
consultationPurpose: row.consultationPurpose,
provisionalDiagnosis: row.provisionalDiagnosis,
confirmingPhysician: row.confirmingPhysician || '',
confirmingPhysicianText: '', // 初始化为空稍后根据opinionList设置
consultationOpinion: '', // 先清空,后面从 opinionList 中获取
confirmingPhysicianName: row.confirmingPhysicianName || '',
confirmingDeptName: row.confirmingDeptName || '',
@@ -338,17 +340,22 @@ const applyRowToForm = (row) => {
submittingTime: row.submittingTime,
consultationStatus: row.consultationStatus
}
// 从会诊意见列表中获取当前医生的信息
// 从会诊意见列表中获取所有确认医师的信息,并生成显示文本
if (opinionList.value.length > 0) {
// 生成所有参与确认医师的文本(格式:科室-医生姓名;科室-医生姓名)
const allConfirmingPhysicians = opinionList.value.map(op => `${op.deptName}-${op.physicianName}`).join('')
formData.value.confirmingPhysicianText = allConfirmingPhysicians
// 从会诊意见列表中获取当前医生的信息
const currentPhysicianId = userStore.practitionerId || userStore.user?.practitionerId
const myOpinion = opinionList.value.find(op => op.physicianId === currentPhysicianId)
if (myOpinion) {
// 如果当前医生已确认,回显其信息
formData.value.confirmingPhysicianName = myOpinion.physicianName
formData.value.confirmingDeptName = myOpinion.deptName
// 回显会诊意见(去掉前缀"科室-医生"
if (myOpinion.opinion) {
// 格式:科室-医生:意见内容
@@ -361,7 +368,7 @@ const applyRowToForm = (row) => {
formData.value.consultationOpinion = opinionText
}
}
if (myOpinion.isSigned) {
formData.value.signature = myOpinion.physicianName
formData.value.signatureDate = myOpinion.signatureTime

View File

@@ -47,7 +47,7 @@
</el-table-column>
<el-table-column label="操作" width="180" align="center" fixed="right">
<template #default="{ row }">
<!-- 新开状态显示提交和删除按钮 -->
<!-- 新开状态显示提交和作废按钮 -->
<template v-if="row.consultationStatus === 0">
<el-button type="primary" size="small" @click="handleSubmitRow(row)">
提交
@@ -1062,10 +1062,10 @@ const handleCancel = async () => {
}
};
// 删除
// 作废
const handleDeleteRow = async (row) => {
try {
await ElMessageBox.confirm('确定要删除这条会诊申请吗?', '提示', {
await ElMessageBox.confirm('确定要作废这条会诊申请吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
@@ -1073,21 +1073,21 @@ const handleDeleteRow = async (row) => {
const res = await cancelConsultation({
consultationId: row.consultationId,
cancelReason: '删除',
cancelReason: '作废',
});
if (res.code === 200) {
ElMessage.success('删除成功');
ElMessage.success('作废成功');
loadConsultationList();
if (selectedRow.value?.consultationId === row.consultationId) {
handleNew();
}
} else {
ElMessage.error(res.msg || '删除失败');
ElMessage.error(res.msg || '作废失败');
}
} catch (error) {
if (error !== 'cancel') {
console.error('删除失败:', error);
console.error('作废失败:', error);
}
}
};