Browse Source

住院电子发票优化

lihong 5 months ago
parent
commit
16ef86dffb
1 changed files with 60 additions and 14 deletions
  1. 60 14
      src/views/hospitalization/zfsf/CashierProcessInfo.vue

+ 60 - 14
src/views/hospitalization/zfsf/CashierProcessInfo.vue

@@ -129,9 +129,9 @@
                       <template #default="scope">
                         <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='0'" icon="Printer" type="success" @click="selectPrintZyFp(scope.row)">打印</el-button>
                         <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Upload" title="上传电子发票" type="primary" @click="uploadZyFp(scope.row,3)"></el-button>
-                        <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Download" title="下载电子发票" type="primary" @click="downDzFp(scope.row,3)"></el-button>
+                        <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Download" title="下载电子发票" type="primary" @click="openDzfp(scope.row,3)"></el-button>
                         <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Delete" title="作废电子发票" type="danger" @click="uploadZyFp(scope.row,4)"></el-button>
-                        <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Download" title="下载已作废电子发票" type="danger" @click="downDzFp(scope.row,4)"></el-button>
+                        <el-button v-if="scope.row.inpatientNo !=null && fpVersion==='1'" icon="Download" title="下载已作废电子发票" type="danger" @click="downDzFp(scope.row,4,'0')"></el-button>
                       </template>
                     </el-table-column>
                     <el-table-column  property="ledgerSn" label="账页" />
@@ -396,6 +396,19 @@
       </div>
     </template>
   </el-dialog>
+  <el-dialog
+      v-model="dzfpVisible"
+      width="400"
+      title="下载电子发票"
+      @closed="clearSelectDzfp"
+  >
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button type="success" @click="downDzFp(selectDzfpRow,selectDzfpTypeFlag,'1')">打印电子发票二维码</el-button>
+        <el-button type="primary" @click="downDzFp(selectDzfpRow,selectDzfpTypeFlag,'0')">下载电子发票pdf文件</el-button>
+      </div>
+    </template>
+  </el-dialog>
 </template>
 
 <script setup >
@@ -439,6 +452,7 @@ const patientInfo = ref({
   wardName : ''
 }
 )
+const dzfpVisible = ref(false)
 const setShowFlag = ref(false)
 const patientBaseListRef = ref(null)
 const posTransactionRef = ref(null)
@@ -956,6 +970,14 @@ const selectPrintZyFp = (row)=>{
   })
 }
 
+const selectDzfpRow = ref({})
+const selectDzfpTypeFlag = ref(null)
+const openDzfp = (row,typeFlag)=>{
+  selectDzfpRow.value = row
+  selectDzfpTypeFlag.value = typeFlag
+  dzfpVisible.value = true
+}
+
 const uploadZyFp=(row,typeFlag)=>{
   row['typeFlag'] = typeFlag
   let typeFlagStr = typeFlag == 3 ? '上传' : '作废'
@@ -970,20 +992,44 @@ const uploadZyFp=(row,typeFlag)=>{
       })
 }
 
-const downDzFp = (row,typeFlag)=>{
+const clearSelectDzfp = ()=>{
+  selectDzfpRow.value = {}
+  selectDzfpTypeFlag.value = null
+}
+
+const downDzFp = (row,typeFlag,type)=>{
   row['typeFlag'] = typeFlag
   downDzInvoice(row).then(res=>{
-    const link = document.createElement("a");
-    // 获取数据量
-    const blob = new Blob([base64ToArrayBuffer(res.pdfFileStr)]);
-    // 下载文件
-    const objectUrl = URL.createObjectURL(blob);
-    link.href = objectUrl;
-    var timestamp = Date.parse(new Date());
-    link.download = timestamp + ".pdf";
-    link.click();
-    URL.revokeObjectURL(objectUrl);
-    link.remove();
+    if(stringIsBlank(type) || type === '0'){
+      const link = document.createElement("a");
+      // 获取数据量
+      const blob = new Blob([base64ToArrayBuffer(res.pdfFileStr)]);
+      // 下载文件
+      const objectUrl = URL.createObjectURL(blob);
+      link.href = objectUrl;
+      var timestamp = Date.parse(new Date());
+      link.download = timestamp + ".pdf";
+      link.click();
+      URL.revokeObjectURL(objectUrl);
+      link.remove();
+    }else {
+      //打印二维码
+      let height = "70mm"
+      let  bkimgWidth = "110mm"
+      let LODOP = getLodop()
+      LODOP.PRINT_INITA(6, 0, bkimgWidth, height, "泰和住院电子发票二维码打印");
+      //设置默认打印机
+      LODOP.SET_PRINTER_INDEX(-1);
+      LODOP.SET_SHOW_MODE("BKIMG_WIDTH", bkimgWidth);
+      LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", height);
+      LODOP.SET_PRINT_PAGESIZE(1,bkimgWidth, height, "CreateCustomPage");
+      LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "住院电子发票二维码");//对新建的纸张重命名
+      LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
+      LODOP.ADD_PRINT_TEXT("6mm", "3mm", "60mm", "3mm", "湖南泰和医院管理有限公司发票二维码");
+      LODOP.ADD_PRINT_IMAGE("10mm", "3mm", "50mm", "50mm", "data:image/png;base64,"+res.qrcode);
+      LODOP.PRINT();
+    }
+    dzfpVisible.value = false
   })
 }