Browse Source

电子病历树状图筛选

DESKTOP-MINPJAU\Administrator 3 years ago
parent
commit
e487118efa

+ 20 - 1
src/components/zhu-yuan-yi-sheng/emr/EmrSidebar.vue

@@ -1,4 +1,5 @@
 <template>
+  <el-input v-model="filterText" placeholder="节点过滤" @input="filterChange" clearable/>
   <el-radio-group v-model="templateType" @change="typeChange">
     <el-radio-button :label="0">全院模板</el-radio-button>
     <el-radio-button :label="1">科室模板</el-radio-button>
@@ -8,6 +9,8 @@
            :props="defaultProps"
            @node-click="handleNodeClick"
            node-key="_id"
+           ref="treeRef"
+           :filter-node-method="filterNode"
            default-expand-all>
   </el-tree>
 </template>
@@ -21,6 +24,8 @@ const emit = defineEmits(['nodeClick', 'typeChange'])
 
 let treeData = $ref([])
 let returnData = $ref([])
+let filterText = $ref('')
+let treeRef = $ref('')
 
 const defaultProps = {
   children: 'children',
@@ -51,7 +56,21 @@ const queryHistory = async (times) => {
   treeData = returnData.patientTree
 }
 
-defineExpose({queryHistory})
+const filterChange = (val) => {
+  treeRef.filter(val)
+}
+
+const filterNode = (value, data) => {
+  if (!value) return true
+  return data.name.includes(value)
+}
+
+const changeTemplateType = (val) => {
+  templateType = val
+  typeChange(val)
+}
+
+defineExpose({queryHistory, changeTemplateType})
 
 onMounted(() => {
   nextTick(() => {

+ 15 - 0
src/components/zhu-yuan-yi-sheng/emr/EmrSnippet.vue

@@ -1,8 +1,11 @@
 <template>
+  <el-input v-model="filterText" placeholder="节点过滤" @input="filterChange" clearable/>
   <el-tree :data="snippetData"
            :props="defaultProps"
            @node-click="handleNodeClick"
            node-key="_id"
+           ref="treeRef"
+           :filter-node-method="filterNode"
            @node-contextmenu="fragmentPreview"
            :expand-on-click-node="false"
            default-expand-all/>
@@ -27,6 +30,9 @@ const emit = defineEmits(['nodeClick'])
 let snippetData = $ref([])
 let dialog = $ref(false)
 let selectedData = $ref({})
+let filterText = $ref('')
+let treeRef = $ref('')
+
 const defaultProps = {
   children: 'children',
   label: 'name',
@@ -35,6 +41,15 @@ const defaultProps = {
 const emrRef = ref(null)
 const currentEmr = ref(null)
 
+const filterChange = (val) => {
+  treeRef.filter(val)
+}
+
+const filterNode = (value, data) => {
+  if (!value) return true
+  return data.name.includes(value)
+}
+
 const handleNodeClick = (node, object, event) => {
   if (node.content) {
     emit('nodeClick', node)

+ 17 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/index.vue

@@ -59,6 +59,7 @@ import {uuid} from "@/utils/getUuid";
 import {BizException, ExceptionEnum} from "@/utils/BizException";
 import router from '@/router'
 import EmrSnippet from "@/components/zhu-yuan-yi-sheng/emr/EmrSnippet.vue";
+import sleep from "@/utils/sleep";
 
 const emit = defineEmits(['refreshPage'])
 
@@ -100,6 +101,16 @@ const refreshPage = () => {
   emit('refreshPage', '电子病历')
 }
 
+const clearData = async () => {
+  loaded = true
+  documentId = ''
+  categoryCode = ''
+  templateName = ''
+  patientId = ''
+  categroyId = ''
+  await sleep(500)
+  loaded = false
+}
 
 const clickSaveData = () => {
 
@@ -121,6 +132,7 @@ const clickSaveData = () => {
     data.name = value
     await currentEmr.value.saveDocument(data)
     isEditorChange = false
+    // clearData()
   }).catch(() => {
 
   })
@@ -212,6 +224,7 @@ const editorEvents = ({name}) => {
   } else if (name === 'contentchange') {
     // 判断内容是否改变
     isEditorChange = true
+    emrSidebarRef.changeTemplateType(2)
   }
 }
 
@@ -231,6 +244,10 @@ const clickSnippet = ({content, styles}) => {
   currentEmr.value.insertSnippet(content, styles, patientData)
 }
 
+const fillInUserInformation = () => {
+  console.log(patientData)
+}
+
 onMounted(() => {
 
   nextTick(async () => {