lihong 3 ماه پیش
والد
کامیت
29b1693db8

+ 34 - 0
src/components/zfsf/PrintSelect.vue

@@ -0,0 +1,34 @@
+<template>
+  打印机:<el-select v-model="printer" placeholder="请选择打印机" style="width:150px" @change="codeChange">
+    <el-option v-for="item in printers" :key="item.code" :value="item.code" :label="item.name" ></el-option>
+  </el-select>
+</template>
+<script setup >
+import {onMounted} from "vue";
+const emit = defineEmits(['getPrintCode']);
+const printers = ref([])
+const printer = ref(null)
+const getPrinters = () => {
+  const count = LODOP.GET_PRINTER_COUNT();
+  for (let i = 0; i < count; i++) {
+    //根据设备序号获取设备名
+    const printerName = LODOP.GET_PRINTER_NAME(i);
+    printers.value.push({code: i, name: printerName})
+  }
+  printer.value = printers.value[0].code
+  codeChange()
+}
+
+const codeChange=()=>{
+  emit('getPrintCode',printer.value)
+}
+
+onMounted(() => {
+  setTimeout(() => {
+    getPrinters()
+  }, 500)
+})
+</script>
+<style scoped lang="scss">
+
+</style>

+ 7 - 1
src/views/hospitalization/zfsf/CashierProcessInfo.vue

@@ -46,6 +46,7 @@
               <el-button :disabled="qxFlag"  icon="Minus" type="danger"  @click="cancelCash">取消出纳</el-button>
               <el-button  type="primary" icon="RefreshLeft"  @click="chongZhiData" >清空</el-button>
               <el-button  type="primary" icon="Money"  @click="openPos" >智能POS工具包</el-button>
+              <PrintSelect @getPrintCode="selectPrintCode"></PrintSelect>
             </div>
           </div>
         </el-header>
@@ -439,6 +440,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import {getDateDiffToDay, getFormatDatetime} from "@/utils/date";
 import router from "@/router";
 import {queryHospitalName} from "@/api/zy-gl/zy-daily.js";
+import PrintSelect from "@/components/zfsf/PrintSelect.vue";
 
 const hospitalName = ref('')
 const zyFpPrintVisible = ref(false)
@@ -453,6 +455,10 @@ const patientInfo = ref({
   wardName : ''
 }
 )
+const printCode = ref(null)
+const selectPrintCode = (val)=>{
+  printCode.value = val
+}
 const dzfpVisible = ref(false)
 const setShowFlag = ref(false)
 const patientBaseListRef = ref(null)
@@ -1034,7 +1040,7 @@ const downDzFp = (row,typeFlag,type)=>{
       let  bkimgWidth = "80mm"
       LODOP.PRINT_INITA(6, 0, bkimgWidth, height, "泰和住院电子发票二维码打印");
       //设置默认打印机
-      LODOP.SET_PRINTER_INDEX(-1);
+      LODOP.SET_PRINTER_INDEX(printCode.value);
       LODOP.SET_SHOW_MODE("BKIMG_WIDTH", bkimgWidth);
       LODOP.SET_PRINT_PAGESIZE(3,bkimgWidth, height, "CreateCustomPage");
       LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "住院电子发票二维码");//对新建的纸张重命名

+ 6 - 9
src/views/hospitalization/zy-gl/AdmissionRegistration.vue

@@ -30,8 +30,7 @@
         >删除入院登记</el-button
       >
       <el-button type="primary" icon="Refresh" @click="clearPatient"
-        >清空</el-button
-      >
+        >清空</el-button>
     </header>
     <div class="layout_main">
       <div class="demo-collapse">
@@ -1166,14 +1165,12 @@ const uploadSfz = () => {
 };
 
 const toAdvancePaymentDeal = inpatientNo => {
-  if (stringNotBlank(inpatientNo)) {
     router.push({
       name: "advancePaymentDeal",
       query: {
         patNo: inpatientNo,
       },
     });
-  }
 };
 
 // 读卡结果
@@ -1507,9 +1504,7 @@ const saveAdmissData = () => {
     confirmButtonText: "确定",
   }).then(() => {
     saveAptientMi(admissFormData.value).then(res => {
-      if (!stringNotBlank(admissFormData.value.inpatientNo)) {
-        admissFormData.value.inpatientNo = res.inpatientNo;
-      }
+      admissFormData.value.inpatientNo = res.inpatientNo;
       let zyPatient = {
         admissDate: admissFormData.value.admissionDay,
         admissPhysician: admissFormData.value.reqDoctor,
@@ -1533,9 +1528,8 @@ const saveAdmissData = () => {
           type: "warning",
         })
           .then(() => {
-            let patNo = admissFormData.value.inpatientNo;
             clearPatient();
-            toAdvancePaymentDeal(patNo);
+            toAdvancePaymentDeal(res.inpatientNo);
           })
           .catch(() => {
             clearPatient();
@@ -1768,6 +1762,9 @@ const getSmallDept = async () => {
 const getBedList = () => {
   queryBedNumByCode(admissFormData.value.inpatientWard).then(res => {
     bedList.value = res;
+    if(bedList.value.length > 0){
+      admissFormData.value.bedNum = bedList.value[0].code
+    }
   });
 };
 

+ 23 - 59
src/views/hospitalization/zy-gl/AdvancePaymentDeal.vue

@@ -5,6 +5,7 @@
       <el-button  type="primary" icon="Delete"  @click="clearData" >清空</el-button>
       <el-button  type="success" icon="Plus"  @click="openSjh" >设置收据号</el-button>
       <el-button  type="danger" icon="Money"  @click="openPos" >智能POS工具包</el-button>
+      <PrintSelect @getPrintCode="selectPrintCode"></PrintSelect>
     </header>
     <div class="layout_main">
       <div class="demo-collapse">
@@ -224,7 +225,7 @@
         <div style="text-align:center;font-weight: 700;padding-top: -8mm">{{hospitalName}}</div>
         <div style="text-align:center;font-weight: 700;margin-top: 5px;">预交金收据</div>
         <div>
-          <span>收据日期:</span><span style="margin-left: 7mm;" id="printDate">{{getFormatDatetime(new Date(),'YYYY-MM-DD')}}</span>
+          <span>收据日期:</span><span style="margin-left: 7mm;" id="printDate">{{getFormatDatetime(new Date,'YYYY年MM月DD日')}}</span>
           <span style="margin-left: 54mm;">收据号:</span><span style="margin-left: 4mm;">{{printData.receiptNo}}</span><span
             style="margin-left: 2mm;">{{printData.cdFlag}}</span>
         </div>
@@ -294,6 +295,7 @@ import {stringIsBlank, stringNotBlank} from "@/utils/blank-utils.js";
 import {consume} from "@/api/zfsf/pos-transaction.js";
 import {getFormatDatetime} from "../../../utils/date.js";
 import {saveYjjSjh,queryYjjSjh} from '@/api/zfsf/sfbillno'
+import PrintSelect from "@/components/zfsf/PrintSelect.vue"
 const sjhVisible = ref(false)
 const currentNo = ref(null)
 const openSjh = ()=>{
@@ -330,7 +332,8 @@ const printData = ref({
 onActivated(async ()=>{
   const params = router.currentRoute.value.query;
   if(params && params.patNo){
-    await sleep(300);
+        await sleep(300);
+    formData.value.inpatientNo =params.patNo
     queryPatientList(params.patNo)
   }
 })
@@ -458,71 +461,32 @@ const printReal =(inpatientNo,receiptNo,flag)=>{
     printData.value.receiptNo = res.receiptNo
     printData.value.depoDate = getFormatDatetime(res.depoDate,'YYYY年MM月DD日')
     if(flag){
-      printData.value.cdFlag = '(重打)'
-    }else {
-      printData.value.cdFlag = ''
+      printData.value.cdFlag = '重打'
     }
     setTimeout(printSjNew,1000)
   })
 }
-
+const printCode = ref(null)
+const selectPrintCode = (val)=>{
+  printCode.value = val
+}
 function printSjNew(){
   let LODOP = getLodop();
   //设置默认打印机
-  LODOP.SET_PRINTER_INDEX(-1);
+  if(stringIsBlank(printCode.value)){
+    ElMessage.error('请选择打印机')
+    return
+  }
+  LODOP.SET_PRINTER_INDEX(printCode.value);
   LODOP.SET_PRINT_STYLE("FontSize", 9); //字体大小
-  LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "80mm");
-  LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "108mm");
-  LODOP.SET_PRINT_PAGESIZE(1, "80mm", "108mm", "CreateCustomPage");
+  LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "192mm");
+  LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "97mm");
+  LODOP.SET_PRINT_PAGESIZE(1, "192mm", "97mm", "CreateCustomPage");
   LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "住院预交金");//对新建的纸张重命名
-  LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
-  LODOP.ADD_PRINT_TEXT("1mm", "6mm", "75mm", "3mm", hospitalName.value+"预交金缴费凭证"+printData.value.cdFlag);
-  LODOP.ADD_PRINT_TEXT("6mm", "2mm", "30mm", "3mm", "姓名:"+printData.value.name);
-  LODOP.ADD_PRINT_TEXT("6mm", "32mm", "40mm", "3mm", "住院号:"+printData.value.inpatientNo);
-  LODOP.ADD_PRINT_TEXT("11mm", "2mm", "75mm", "3mm", "住院科室:"+printData.value.admissDeptName);
-  LODOP.ADD_PRINT_TEXT("16mm", "2mm", "75mm", "3mm", "收据号:"+printData.value.receiptNo);
-  LODOP.ADD_PRINT_TEXT("21mm", "2mm", "75mm", "3mm", "支付方式:"+printData.value.depoTypeName);
-  LODOP.ADD_PRINT_TEXT("27mm", "2mm", "80mm", "3mm", "-------------------------------------");
-  LODOP.ADD_PRINT_TEXT("32mm", "2mm", "35mm", "3mm", "金额:"+printData.value.depoAmount);
-  LODOP.ADD_PRINT_TEXT("32mm", "37mm", "45mm", "3mm", "大写金额:"+printData.value.depoAmountDx);
-  LODOP.ADD_PRINT_TEXT("38mm", "2mm", "75mm", "3mm", "收费员:"+printData.value.opIdCodeName);
-  LODOP.ADD_PRINT_TEXT("44mm", "2mm", "80mm", "3mm", "收费日期:"+printData.value.depoDate);
-  LODOP.ADD_PRINT_TEXT("50mm", "2mm", "80mm", "3mm", "-------------------------------------");
-  LODOP.ADD_PRINT_TEXT("56mm", "2mm", "80mm", "3mm", "1、此系临时收据,请妥善保管。出院时凭此");
-  LODOP.ADD_PRINT_TEXT("62mm", "2mm", "80mm", "3mm", "收据按实用医疗费用换取住院发票。");
-  LODOP.ADD_PRINT_TEXT("68mm", "2mm", "80mm", "3mm", "2、此收据遗失,请及时携带病人身份证和挂");
-  LODOP.ADD_PRINT_TEXT("72mm", "2mm", "80mm", "3mm", "失人身份证到出院结算处办理挂失手续。");
-  LODOP.ADD_PRINT_TEXT("78mm", "2mm", "80mm", "3mm", "如存在第三方肇事者预缴医疗费用,挂失时");
-  LODOP.ADD_PRINT_TEXT("84mm", "2mm", "80mm", "3mm", "另需公安机关出示证明。");
-  LODOP.ADD_PRINT_TEXT("90mm", "2mm", "80mm", "3mm", "3、如果您的缴费方式为银行卡支付,请您妥");
-  LODOP.ADD_PRINT_TEXT("96mm", "2mm", "80mm", "3mm", "善保管好缴费的刷卡单,并于办理出院退费");
-  LODOP.ADD_PRINT_TEXT("102mm", "2mm", "80mm", "3mm", "时带上缴费时所用银行卡。");
-  if(printData.value.cdFlag ===''){
-    LODOP.NewPageA();
-    LODOP.ADD_PRINT_TEXT("1mm", "6mm", "75mm", "3mm", hospitalName.value+"预交金缴费凭证"+printData.value.cdFlag);
-    LODOP.ADD_PRINT_TEXT("6mm", "2mm", "30mm", "3mm", "姓名:"+printData.value.name);
-    LODOP.ADD_PRINT_TEXT("6mm", "32mm", "40mm", "3mm", "住院号:"+printData.value.inpatientNo);
-    LODOP.ADD_PRINT_TEXT("11mm", "2mm", "75mm", "3mm", "住院科室:"+printData.value.admissDeptName);
-    LODOP.ADD_PRINT_TEXT("16mm", "2mm", "75mm", "3mm", "收据号:"+printData.value.receiptNo);
-    LODOP.ADD_PRINT_TEXT("21mm", "2mm", "75mm", "3mm", "支付方式:"+printData.value.depoTypeName);
-    LODOP.ADD_PRINT_TEXT("27mm", "2mm", "80mm", "3mm", "-------------------------------------");
-    LODOP.ADD_PRINT_TEXT("32mm", "2mm", "35mm", "3mm", "金额:"+printData.value.depoAmount);
-    LODOP.ADD_PRINT_TEXT("32mm", "37mm", "45mm", "3mm", "大写金额:"+printData.value.depoAmountDx);
-    LODOP.ADD_PRINT_TEXT("38mm", "2mm", "75mm", "3mm", "收费员:"+printData.value.opIdCodeName);
-    LODOP.ADD_PRINT_TEXT("44mm", "2mm", "80mm", "3mm", "收费日期:"+printData.value.depoDate);
-    LODOP.ADD_PRINT_TEXT("50mm", "2mm", "80mm", "3mm", "-------------------------------------");
-    LODOP.ADD_PRINT_TEXT("56mm", "2mm", "80mm", "3mm", "1、此系临时收据,请妥善保管。出院时凭此");
-    LODOP.ADD_PRINT_TEXT("62mm", "2mm", "80mm", "3mm", "收据按实用医疗费用换取住院发票。");
-    LODOP.ADD_PRINT_TEXT("68mm", "2mm", "80mm", "3mm", "2、此收据遗失,请及时携带病人身份证和挂");
-    LODOP.ADD_PRINT_TEXT("72mm", "2mm", "80mm", "3mm", "失人身份证到出院结算处办理挂失手续。");
-    LODOP.ADD_PRINT_TEXT("78mm", "2mm", "80mm", "3mm", "如存在第三方肇事者预缴医疗费用,挂失时");
-    LODOP.ADD_PRINT_TEXT("84mm", "2mm", "80mm", "3mm", "另需公安机关出示证明。");
-    LODOP.ADD_PRINT_TEXT("90mm", "2mm", "80mm", "3mm", "3、如果您的缴费方式为银行卡支付,请您妥");
-    LODOP.ADD_PRINT_TEXT("96mm", "2mm", "80mm", "3mm", "善保管好缴费的刷卡单,并于办理出院退费");
-    LODOP.ADD_PRINT_TEXT("102mm", "2mm", "80mm", "3mm", "时带上缴费时所用银行卡。");
-  }
-  LODOP.PREVIEW();
-  // LODOP.PRINT();;
+  let strStyle = "<style>table{width: 170mm;} table,td,th {border-width: 1px;border-style: solid;border-collapse: collapse;padding: 8px;}</style>"
+  LODOP.ADD_PRINT_HTM("0mm", "8mm", "120mm", "280mm", strStyle + document.getElementById("report_table_1").innerHTML);
+  LODOP.PRINT();
+  // LODOP.PREVIEW();
   clearPrintData()
 }
 
@@ -571,7 +535,7 @@ const openShouFee = ()=>{
     ElMessage.error('请先查询出要缴费的病人信息')
     return
   }
-  queryLastMzZyReq(formData.value.patientId).then(res=>{
+  queryLastMzZyReq({inpatientNo:formData.value.patientId}).then(res=>{
     if(res.deposit != null && res.deposit > 0){
       shouFeeForm.value.depoAmount = res.deposit
     }

+ 7 - 3
src/views/hospitalization/zy-gl/ZyDaily.vue

@@ -43,6 +43,7 @@
           <el-button type="danger" icon="Delete" @click="clearAllData">清空</el-button>
           <el-button type="success" icon="Printer" @click="printData(false)">打印</el-button>
           <el-button v-if="queryParam.type==='1'" type="success" icon="Check" @click="dcountCharge">结账处理</el-button>
+          <PrintSelect @getPrintCode="selectPrintCode"></PrintSelect>
         </el-col>
       </el-row>
     </header>
@@ -447,6 +448,7 @@ import {getLodop,initLodop} from "@/utils/c-lodop.js";
 import { getFormatDatetime } from "@/utils/date"
 import {shortcuts} from "@/data/shortcuts.js";
 import {ElMessage} from "element-plus";
+import PrintSelect from "@/components/zfsf/PrintSelect.vue";
 const printNum = ref(1)
 const hosName = ref('')
 const dateRange = ref([])
@@ -536,7 +538,7 @@ const printData = (clearFlag)=>{
     LODOP.PRINT_INITA(6, 0, "210mm", "297mm", "住院收费收入日报表");
     LODOP.SET_PRINT_STYLE("FontSize", 9); //字体大小
     //设置默认打印机
-    LODOP.SET_PRINTER_INDEX(-1);
+    LODOP.SET_PRINTER_INDEX(printCode.value);
     LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "210mm");
     LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "297mm");
     var strStyle = "<style>table{width: 96%;margin-top: 20px;margin-bottom: 10px;} table,td,th {border-width: 1px;border-style: solid;border-collapse: collapse}</style>";
@@ -548,8 +550,10 @@ const printData = (clearFlag)=>{
     //LODOP.PRINT();
   }
 }
-
-
+const printCode = ref(null)
+const selectPrintCode = (val)=>{
+  printCode.value = val
+}
 const activeName = ref('one')
 const style = ref({
   width: '920px',