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

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

View File

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

View File

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