医生备注优化
This commit is contained in:
@@ -417,23 +417,6 @@
|
||||
<div class="form-section">
|
||||
<div class="section-title">诊断详情</div>
|
||||
|
||||
<el-form-item label="舌苔照片">
|
||||
<material-picker
|
||||
v-model="formData.tongue_images"
|
||||
:limit="9"
|
||||
type="image"
|
||||
/>
|
||||
<div class="form-tips">支持上传多张舌苔照片,最多9张</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="检查报告">
|
||||
<material-picker
|
||||
v-model="formData.report_files"
|
||||
:limit="10"
|
||||
type="image"
|
||||
/>
|
||||
<div class="form-tips">支持上传检查报告、病历、彩超等影像科检查图片,最多10个文件</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="舌苔" prop="tongue_coating">
|
||||
<el-input v-model="formData.tongue_coating" placeholder="请输入舌苔情况" />
|
||||
@@ -549,8 +532,6 @@ const formData = ref({
|
||||
allergy_history: 0,
|
||||
family_history: 0,
|
||||
pregnancy_history: 0,
|
||||
tongue_images: [],
|
||||
report_files: [],
|
||||
symptoms: '',
|
||||
tongue_coating: '',
|
||||
pulse: '',
|
||||
|
||||
@@ -493,25 +493,6 @@
|
||||
<!-- 诊断信息 -->
|
||||
<el-divider content-position="left">诊断信息</el-divider>
|
||||
|
||||
<el-form-item label="舌苔照片">
|
||||
<material-picker
|
||||
v-model="formData.tongue_images"
|
||||
:limit="9"
|
||||
type="image"
|
||||
:exclude-domain="true"
|
||||
/>
|
||||
<div class="form-tips">支持上传多张舌苔照片,最多9张</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="检查报告">
|
||||
<material-picker
|
||||
v-model="formData.report_files"
|
||||
:limit="10"
|
||||
type="image"
|
||||
:exclude-domain="true"
|
||||
/>
|
||||
<div class="form-tips">支持上传检查报告、病历、彩超等影像科检查图片,最多10个文件</div>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
@@ -529,8 +510,11 @@
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="医生备注" name="doctorNote" :disabled="!formData.id" lazy>
|
||||
<div v-if="formData.id" class="p-4">
|
||||
<NoteTimeline v-if="diagNotes.length" :notes="diagNotes" />
|
||||
<el-empty v-else description="暂无备注记录" :image-size="48" />
|
||||
<NoteTimeline
|
||||
:notes="diagNotes"
|
||||
:diagnosis-id="Number(formData.id)"
|
||||
@refresh="fetchDiagNotes"
|
||||
/>
|
||||
</div>
|
||||
<el-empty v-else description="请先保存诊单后查看" />
|
||||
</el-tab-pane>
|
||||
@@ -567,40 +551,6 @@
|
||||
<!-- 病历记录标签页(开方后自动显示) -->
|
||||
<el-tab-pane label="处方" name="bingli" :disabled="!formData.id" v-if="hasPermission(['tcm.diagnosis/chufang'])">
|
||||
<div v-if="formData.id" class="bingli-tab-content">
|
||||
<!-- 诊断信息:舌苔照片、检查报告 -->
|
||||
<div class="bingli-diagnosis-section">
|
||||
<el-divider content-position="left">诊断信息</el-divider>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<div class="bingli-label">舌苔照片</div>
|
||||
<div v-if="formData.tongue_images?.length" class="bingli-images">
|
||||
<el-image
|
||||
v-for="(img, idx) in formData.tongue_images"
|
||||
:key="idx"
|
||||
:src="getImageUrl(img)"
|
||||
:preview-src-list="(formData.tongue_images || []).map((u: string) => getImageUrl(u))"
|
||||
class="bingli-img"
|
||||
fit="cover"
|
||||
/>
|
||||
</div>
|
||||
<span v-else class="bingli-empty">暂无</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="bingli-label">检查报告</div>
|
||||
<div v-if="formData.report_files?.length" class="bingli-images">
|
||||
<el-image
|
||||
v-for="(file, idx) in formData.report_files"
|
||||
:key="idx"
|
||||
:src="getImageUrl(file)"
|
||||
:preview-src-list="(formData.report_files || []).map((u: string) => getImageUrl(u))"
|
||||
class="bingli-img"
|
||||
fit="cover"
|
||||
/>
|
||||
</div>
|
||||
<span v-else class="bingli-empty">暂无</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<!-- 病历记录列表 -->
|
||||
<case-record-list
|
||||
ref="caseRecordListRef"
|
||||
@@ -712,10 +662,6 @@ import AppointmentRecordPanel from './components/AppointmentRecordPanel.vue'
|
||||
import NoteTimeline from '@/views/patient/reception/components/NoteTimeline.vue'
|
||||
import TcmPrescription from '@/components/tcm-prescription/index.vue'
|
||||
import { getDoctorNotes } from '@/api/patient'
|
||||
import {
|
||||
DIAGNOSIS_TONGUE_IMAGES_UPDATED,
|
||||
type DiagnosisTongueImagesUpdatedDetail
|
||||
} from '@/utils/diagnosis-sync-events'
|
||||
|
||||
const emit = defineEmits(['success'])
|
||||
const appStore = useAppStore()
|
||||
@@ -744,11 +690,16 @@ const drawerTitle = computed(() => {
|
||||
|
||||
const diagNotes = ref<any[]>([])
|
||||
|
||||
const fetchDiagNotes = async () => {
|
||||
if (!formData.value.id) return
|
||||
try {
|
||||
diagNotes.value = await getDoctorNotes({ diagnosis_id: Number(formData.value.id) }) || []
|
||||
} catch { diagNotes.value = [] }
|
||||
}
|
||||
|
||||
watch(() => activeTab.value, async (tab) => {
|
||||
if (tab === 'doctorNote' && formData.value.id) {
|
||||
try {
|
||||
diagNotes.value = await getDoctorNotes({ diagnosis_id: Number(formData.value.id) }) || []
|
||||
} catch { diagNotes.value = [] }
|
||||
await fetchDiagNotes()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -772,21 +723,6 @@ watch([visible, activeTab], () => {
|
||||
}
|
||||
})
|
||||
|
||||
function onTongueImagesSyncedFromCall(e: Event) {
|
||||
if (!visible.value) return
|
||||
const d = (e as CustomEvent<DiagnosisTongueImagesUpdatedDetail>).detail
|
||||
if (!d?.diagnosisId || !Array.isArray(d.tongue_images)) return
|
||||
if (Number(formData.value.id) !== Number(d.diagnosisId)) return
|
||||
formData.value.tongue_images = [...d.tongue_images]
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
window.addEventListener(DIAGNOSIS_TONGUE_IMAGES_UPDATED, onTongueImagesSyncedFromCall as EventListener)
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
window.removeEventListener(DIAGNOSIS_TONGUE_IMAGES_UPDATED, onTongueImagesSyncedFromCall as EventListener)
|
||||
})
|
||||
|
||||
const formData = ref({
|
||||
id: '',
|
||||
@@ -831,8 +767,6 @@ const formData = ref({
|
||||
family_history: 0,
|
||||
pregnancy_history: 0,
|
||||
assistant_id: undefined as number | undefined,
|
||||
tongue_images: [] as string[],
|
||||
report_files: [],
|
||||
symptoms: '',
|
||||
tongue_coating: '',
|
||||
pulse: '',
|
||||
@@ -1263,8 +1197,6 @@ const handleClose = () => {
|
||||
family_history: 0,
|
||||
pregnancy_history: 0,
|
||||
assistant_id: undefined as number | undefined,
|
||||
tongue_images: [] as string[],
|
||||
report_files: [],
|
||||
symptoms: '',
|
||||
tongue_coating: '',
|
||||
pulse: '',
|
||||
|
||||
Reference in New Issue
Block a user