lighter 1 year ago
parent
commit
c95948a5e6

+ 28 - 0
src/components/medical-insurance/charge-list/Charge.vue

@@ -7,6 +7,7 @@ import {
   selectChargeList,
   selectPatOverviews
 } from "@/api/inpatient/charge-list";
+import {getLodop} from "@/utils/c-lodop";
 
 const props = defineProps({
   patNo: {
@@ -79,6 +80,28 @@ const selfpayUpload = () => {
   })
 }
 
+const execPrint = () => {
+  if (!briefPatInfo.value.patNo) {
+    ElMessage({
+      message: '请先选择住院历史记录。',
+      type: 'warning',
+      duration: 2500,
+      showClose: true
+    })
+    return
+  }
+  let LODOP = getLodop();
+  const prntStyle = `<style>table, table * {margin: 0;padding: 0;border-collapse: collapse;font-size: 12px}</style>`
+  const prntContent = document.getElementById('printArea').innerHTML
+  let pagePrint = prntStyle + '<body>' + prntContent + '</body>'
+  LODOP.PRINT_INIT('chargelist')
+  LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
+  LODOP.ADD_PRINT_TABLE('0mm', '3mm', '210mm', '230mm', pagePrint)
+  LODOP.SET_PRINT_STYLE('ItemType', 3)
+  LODOP.ADD_PRINT_TEXT('280mm', '180mm', '25mm', '10mm', '第#页/共&页')
+  // LODOP.PRINT();
+  LODOP.PREVIEW()
+}
 
 onMounted(() => {
   if (props.patNo && props.times) {
@@ -88,6 +111,11 @@ onMounted(() => {
     })
   }
 })
+
+defineExpose({
+  execPrint
+})
+
 </script>
 
 <template>

+ 5 - 77
src/components/medical-insurance/charge-list/Index.vue

@@ -5,21 +5,18 @@
             cancel-text="关闭"
             :confirm-click="execPrint"
   >
-    <Charge :patNo :times :showButton/>
+    <Charge ref="chargeList" :patNo :times :showButton/>
   </CyDialog>
 </template>
 
 <script setup>
 import {
   selectPatOverviews,
-  selectBriefPatInfo,
-  selectChargeList,
-  executeSelfpayUpload
 } from "@/api/inpatient/charge-list";
-import {ElMessage, ElMessageBox} from "element-plus";
-import {getLodop, initLodop} from '@/utils/c-lodop'
+import {initLodop} from '@/utils/c-lodop'
 import Charge from "./Charge.vue";
 import CyDialog from "@/components/cy/dialog/src/CyDialog.vue";
+import {useCompRef} from "@/utils/useCompRef";
 
 const props = defineProps({
   patNo: {
@@ -38,82 +35,13 @@ const props = defineProps({
   }
 })
 const emits = defineEmits(["close"])
-
+const chargeList = useCompRef(Charge)
 const patList = ref([])
-const briefPatInfo = ref({})
-const chargeListMap = ref({})
-const sumsMap = ref({})
 
 const currentPatNo = ref('')
-const fetchOverview = () => {
-  if (!currentPatNo.value) {
-    ElMessage({
-      message: '住院号不能为空!',
-      type: 'warning',
-      duration: 2500,
-      showClose: true
-    })
-    return
-  }
-  selectPatOverviews(currentPatNo.value).then(res => {
-    patList.value = res
-  })
-}
-
-const ajustDisdate = (disdate) => {
-  return disdate ? disdate : '<span style="color: green">● 在院</span>'
-}
-
-const fetchBriefPatInfo = (row) => {
-  selectBriefPatInfo(row).then(res => {
-    briefPatInfo.value = res
-    selectChargeList(row).then(rslt => {
-      chargeListMap.value = rslt.chargeList
-      sumsMap.value = rslt.sumsMap
-    })
-  })
-}
-
-const selfpayUpload = () => {
-  if (!briefPatInfo.value.patNo) {
-    ElMessage({
-      message: '请先选择住院历史记录。',
-      type: 'warning',
-      duration: 2500,
-      showClose: true
-    })
-    return
-  }
-  executeSelfpayUpload(briefPatInfo.value).then(res => {
-    ElMessageBox.alert(res, '上传完成', {
-      type: 'info',
-      showCancelButton: false,
-    })
-  })
-}
-
 
 const execPrint = () => {
-  if (!briefPatInfo.value.patNo) {
-    ElMessage({
-      message: '请先选择住院历史记录。',
-      type: 'warning',
-      duration: 2500,
-      showClose: true
-    })
-    return
-  }
-  let LODOP = getLodop();
-  const prntStyle = `<style>table, table * {margin: 0;padding: 0;border-collapse: collapse;font-size: 12px}</style>`
-  const prntContent = document.getElementById('printArea').innerHTML
-  let pagePrint = prntStyle + '<body>' + prntContent + '</body>'
-  LODOP.PRINT_INIT('chargelist')
-  LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
-  LODOP.ADD_PRINT_TABLE('0mm', '3mm', '210mm', '230mm', pagePrint)
-  LODOP.SET_PRINT_STYLE('ItemType', 3)
-  LODOP.ADD_PRINT_TEXT('280mm', '180mm', '25mm', '10mm', '第#页/共&页')
-  LODOP.PRINT();
-  // LODOP.PRINT_DESIGN()
+  chargeList.value.execPrint()
 }
 
 onMounted(() => {

+ 15 - 17
src/components/medical-insurance/read-electronic-si-card/index.vue

@@ -1,21 +1,19 @@
 <template>
-    <div style="margin-left: 4px">
-        <el-button type="success" icon="Grid" @click="beforeReadCard">读取电子凭证</el-button>
-        <el-dialog v-model="showSelectBiztype" title="请选择读卡业务" width="300px">
-            <el-radio-group v-model="currentBiztype">
-                <el-radio label="01101">门诊挂号</el-radio>
-                <el-radio label="01201">门诊问诊</el-radio>
-                <div style="height: 16px"></div>
-                <el-radio label="01203">门诊检查</el-radio>
-                <el-radio label="01204">门诊治疗</el-radio>
-                <div style="height: 16px"></div>
-                <el-radio label="01301">门诊结算</el-radio>
-            </el-radio-group>
-            <template #footer>
-                <el-button type="primary" @click="handleConfirmBiztype">确定</el-button>
-            </template>
-        </el-dialog>
-    </div>
+  <el-button type="success" icon="Grid" @click="beforeReadCard">读取电子凭证</el-button>
+  <el-dialog v-model="showSelectBiztype" title="请选择读卡业务" width="300px">
+    <el-radio-group v-model="currentBiztype">
+      <el-radio label="01101">门诊挂号</el-radio>
+      <el-radio label="01201">门诊问诊</el-radio>
+      <div style="height: 16px"></div>
+      <el-radio label="01203">门诊检查</el-radio>
+      <el-radio label="01204">门诊治疗</el-radio>
+      <div style="height: 16px"></div>
+      <el-radio label="01301">门诊结算</el-radio>
+    </el-radio-group>
+    <template #footer>
+      <el-button type="primary" @click="handleConfirmBiztype">确定</el-button>
+    </template>
+  </el-dialog>
 </template>
 
 <script>

+ 2 - 4
src/views/clinic/triage/Untriaged.vue

@@ -1,13 +1,12 @@
 <template>
-
   <div class="layout_container">
-    <header class="layout_display_flex">
+    <header>
       <el-button type="primary" icon="Refresh" @click="fetchUnTriagedPatient">刷新数据</el-button>
       <el-button type="primary" @click="openCardDiag" class="m-r_8px">重新绑卡</el-button>
       <ReadElectronicSiCard pat-no="triage" biztype="01101" @success="afterReadCard"/>
     </header>
     <div class="layout_main layout_el-table">
-      <el-table :data="patients" stripe highlight-current-row :height="tableHeight">
+      <el-table :data="patients" stripe highlight-current-row>
         <el-table-column fixed prop="ghNo" label="队列号" sortable width="100"></el-table-column>
         <el-table-column prop="patientId" label="id号" width="100"></el-table-column>
         <el-table-column prop="name" label="姓名" width="100"></el-table-column>
@@ -180,7 +179,6 @@ import {
 import {ElMessage, ElMessageBox} from 'element-plus'
 import ReadElectronicSiCard from '@/components/medical-insurance/read-electronic-si-card/index.vue'
 
-const tableHeight = window.innerHeight - 50
 const patients = ref([])
 const totalSize = ref(0)
 const showVital = ref(false)