diff --git a/src/views/Department-entry/Drawer-Template.vue b/src/views/Department-entry/Drawer-Template.vue new file mode 100644 index 0000000..8e190a0 --- /dev/null +++ b/src/views/Department-entry/Drawer-Template.vue @@ -0,0 +1,172 @@ + + + \ No newline at end of file diff --git a/src/views/Department-entry/Medical-examination-vehicle.vue b/src/views/Department-entry/Medical-examination-vehicle.vue index b1b6a7f..b2d5105 100644 --- a/src/views/Department-entry/Medical-examination-vehicle.vue +++ b/src/views/Department-entry/Medical-examination-vehicle.vue @@ -255,7 +255,14 @@
-
检查所见
+
+ + 检查所见 + + 诊断模板 + + +
+ + + @@ -35,6 +33,7 @@ import { PatientitemsApi } from '@/api/inspect/inspectpatientitems' import { PatientApi } from '@/api/inspect/inspectpatient' import { ElLoading, ElMessage } from 'element-plus' import { Refresh } from '@element-plus/icons-vue' +import TemplateDrawer from '@/views/Department-entry/Drawer-Template.vue' const props = defineProps({ patient: { @@ -75,7 +74,6 @@ const checkPatientStatus = () => { if (props.patient?.status) { // 同时处理字符串和数字类型的状态值 isReadOnly.value = String(props.patient.status) === '1' - console.log('患者状态:', props.patient.status, '只读模式:', isReadOnly.value) } } @@ -132,7 +130,6 @@ const formatSummaryData = () => { // 从DOM中获取各个标签页的数据 const getDataFromDOM = () => { - console.log('尝试从DOM中获取数据...') try { const parentDoc = window.parent ? window.parent.document : document @@ -160,7 +157,6 @@ const getDataFromDOM = () => { for (const selector of selectorList) { const element = parentDoc.querySelector(selector) if (element) { - console.log(`找到元素 ${selector}:`, element) return element.value || '' } } @@ -177,28 +173,15 @@ const getDataFromDOM = () => { const urineSummary = getElementValue(selectors.urine) const biochemicalSummary = getElementValue(selectors.biochemical) - console.log('从DOM获取的数据:') - console.log('一般检查小结:', generalSummary) - console.log('超声检查所见:', ultrasoundFinding) - console.log('超声检查结果:', ultrasoundDiagnosis) - console.log('心电图检查所见:', ecgFinding) - console.log('心电图检查结果:', ecgDiagnosis) - console.log('血常规小结:', bloodSummary) - console.log('尿常规小结:', urineSummary) - console.log('生化小结:', biochemicalSummary) - // 如果没有找到一般检查小结,尝试从体检小结文本框获取 if (!generalSummary) { - console.log('尝试从体检小结文本框获取数据...') const generalTextarea = parentDoc.querySelector('#体检小结') || parentDoc.querySelector('.体检小结') || parentDoc.querySelector('[placeholder*="体检小结"]') if (generalTextarea) { - console.log('找到体检小结文本框:', generalTextarea) const generalText = generalTextarea.value || '' - console.log('体检小结内容:', generalText) // 更新汇总数据 return { @@ -242,17 +225,14 @@ const loadPatientItems = async () => { background: 'rgba(255, 255, 255, 0.7)' }) - console.log('当前患者信息:', props.patient) // 检查患者状态 checkPatientStatus() // 优先使用props中的conclusionData if (props.conclusionData) { - console.log('从props获取conclusionData:', props.conclusionData) summaryData.value = props.conclusionData } else if (window.parent?.conclusionData) { - console.log('父窗口conclusionData:', window.parent.conclusionData) const parentData = window.parent.conclusionData // 复制父组件的数据到本地 @@ -271,20 +251,17 @@ const loadPatientItems = async () => { biochemical: { summary: parentData.biochemical?.summary || '' } } - console.log('从父窗口获取的汇总数据:', summaryData.value) } else { console.warn('父窗口中没有找到conclusionData,尝试从全局变量获取') // 尝试从全局变量获取 if (window.conclusionData) { - console.log('从全局变量获取conclusionData:', window.conclusionData) summaryData.value = window.conclusionData } else { console.warn('全局变量中没有找到conclusionData,尝试从props获取') // 尝试从props中获取数据 if (props.reportData && props.reportData.conclusionData) { - console.log('从props.reportData中获取数据:', props.reportData.conclusionData) summaryData.value = props.reportData.conclusionData } else { // 尝试直接从父组件的DOM中获取数据 @@ -301,7 +278,6 @@ const loadPatientItems = async () => { // 格式化汇总数据并设置为可编辑文本 const formattedText = formatSummaryData() - console.log('格式化后的文本:', formattedText) editableSummary.value = formattedText loading.close() } catch (error) { @@ -336,7 +312,6 @@ const saveSummary = async () => { summaryResult: editableSummary.value } - console.log('保存汇总数据:', saveData) // 调用API保存数据 const response = await PatientApi.updatemedicalSn(saveData) @@ -371,8 +346,6 @@ const queryPatientData = async () => { try { const response = await PatientApi.getByMedicalSn(props.patient.medicalSn) if (response && response.code === 200 && response.data) { - console.log('查询到的患者数据:', response.data) - // 更新患者信息 if (response.data.summaryResult) { editableSummary.value = response.data.summaryResult @@ -381,7 +354,6 @@ const queryPatientData = async () => { // 如果患者状态已更新,检查是否需要设置只读 if (response.data.status) { isReadOnly.value = response.data.status === 2 - console.log('更新后的患者状态:', response.data.status, '只读模式:', isReadOnly.value) } } } catch (error) { @@ -407,6 +379,29 @@ watch(() => props.patient, (newVal) => { } }, { deep: true, immediate: true }) +// 抽屉可见性控制 +const drawerVisible = ref(false) + +// 打开模板抽屉 +const openTemplateDrawer = () => { + if (isReadOnly.value) { + ElMessage.warning('已检查患者不可修改汇总内容') + return + } + drawerVisible.value = true +} + +// 插入选中的模板内容 +const insertTemplate = (templateContent) => { + if (isReadOnly.value) return + + // 在当前光标位置或末尾插入模板内容 + editableSummary.value += templateContent + + // 可选:插入后关闭抽屉 + drawerVisible.value = false +} + // 暴露保存汇总方法给父组件调用 defineExpose({ saveSummary }) diff --git a/src/views/inspect/inspecttemplate/TemplateForm.vue b/src/views/inspect/inspecttemplate/TemplateForm.vue index 49ebec8..652a08e 100644 --- a/src/views/inspect/inspecttemplate/TemplateForm.vue +++ b/src/views/inspect/inspecttemplate/TemplateForm.vue @@ -10,6 +10,18 @@ + + + + + + + + + + + + diff --git a/src/views/inspect/inspecttemplate/index.vue b/src/views/inspect/inspecttemplate/index.vue index 9b93d25..6f90c28 100644 --- a/src/views/inspect/inspecttemplate/index.vue +++ b/src/views/inspect/inspecttemplate/index.vue @@ -71,6 +71,7 @@ +