浏览代码

bug 修复

lilei 3 年之前
父节点
当前提交
5eac29050f
共有 2 个文件被更改,包括 43 次插入115 次删除
  1. 42 114
      src/libs/JGPrint.js
  2. 1 1
      src/views/allocationManagement/storeTransferOut/detail.vue

+ 42 - 114
src/libs/JGPrint.js

@@ -34,53 +34,7 @@ export const JGPrintTag = function (html, width, height, data) {
   LODOP.SET_PRINT_PAGESIZE(1, width, height)
   LODOP.PRINT()
 }
-// 打印控件
-// export const JGPrint = function (data, type, printerType) {
-//   if (!data) {
-//     return
-//   }
-//   // 针式打印
-//   if (printerType == 'NEEDLE') {
-//     const LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'))
-//     console.log(LODOP, 'LODOP')
-//     if (!LODOP) {
-//       confirm({
-//         title: '提示?',
-//         content: h => <div>打印控件未安装,请先下载并安装。安装完成后,刷新页面即可打印。</div>,
-//         okText: '立即下载',
-//         okType: 'danger',
-//         cancelText: '暂不打印',
-//         onOk () {
-//           window.open('http://www.lodop.net/demolist/CLodop_Setup_for_Win32NT.zip')
-//         }
-//       })
-//       return
-//     }
-//     LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
-//     LODOP.SET_PRINT_MODE('POS_BASEON_PAPER', true) // 可使输出以纸张边缘为基点
-//     LODOP.ADD_PRINT_HTM('0', '0', 'RightMargin:0cm', 'BottomMargin:0cm', data)
-//     LODOP.SET_PRINT_PAGESIZE(3, 2090, 45, '') // 这里3表示纵向打印且纸高“按内容的高度”;2140表示纸宽214.0mm;60表示页底空白6.0mm
-//     // LODOP.SET_PRINT_PAGESIZE(1, 2090, 1000, '')
-//     // LODOP.ADD_PRINT_HTM('0', '0', '595pt', 1000, data)
-//     if (type == 'preview') {
-//       LODOP.PREVIEW()
-//     }
-//     if (type == 'print') {
-//       LODOP.PRINT()
-//     }
-//   } else {
-//     // 喷墨打印
-//     const url = window.URL.createObjectURL(new Blob([data], { type: 'application/pdf' }))
-//     document.getElementById('print').innerHTML = '<iframe id="printfsqd" name="printfsqd" src="' + url + '" hidden></iframe>'
-//     if (type == 'preview') { //  预览
-//       window.open(url)
-//     } else if (type == 'print') { //  打印
-//       window.frames['printfsqd'].focus()
-//       window.frames['printfsqd'].print()
-//     }
-//   }
-// }
-
+ 
 export const demoGetBASE64 = function (dataArray) {
   var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
   var strData = ''
@@ -94,30 +48,6 @@ export const demoGetBASE64 = function (dataArray) {
   }
   return strData
 }
-// 下载pdf
-export const demoDownloadPDF = function (data) {
-  // if (!(/^https?:/i.test(url))) return
-  // if (window.XMLHttpRequest) var xhr = new XMLHttpRequest(); else var xhr = new ActiveXObject('MSXML2.XMLHTTP')
-  // xhr.open('GET', url, false) // 同步方式
-  // if (xhr.overrideMimeType) {
-  //   try {
-  //     xhr.responseType = 'arraybuffer'
-  //     var arrybuffer = true
-  //   } catch (err) {
-  //     xhr.overrideMimeType('text/plain; charset=x-user-defined')
-  //   }
-  // }
-  // xhr.send(null)
-  // var data = xhr.response || xhr.responseBody
-  var arrybuffer = true
-  if (typeof Uint8Array !== 'undefined') {
-    if (arrybuffer) var dataArray = new Uint8Array(data); else {
-      var dataArray = new Uint8Array(data.length)
-      for (var i = 0; i < dataArray.length; i++) { dataArray[i] = data.charCodeAt(i) }
-    }
-  }
-  return demoGetBASE64(dataArray)
-}
 
 // 导出下载excel
 export const downloadExcel = function (data, fileName) {
@@ -140,42 +70,6 @@ export const downloadExcel = function (data, fileName) {
   }
 }
 
-/*
-  *printerType: 打印机类型
-  *type: 打印预览,打印,导出
-  *url: 数据请求接口
-  *params: 请求参数
-  *fileName: 导出文件名称
-  *callback: 回调函数
-*/
-// export const hdPrint = function (printerType, type, url, params, fileName, callback) {
-//   // 打印时需要传打印机类型
-//   if (type !== 'export') {
-//     params.type = printerType
-//   }
-//   url(params).then(res => {
-//     if (res.type == 'application/json') {
-//       var reader = new FileReader()
-//       reader.addEventListener('loadend', function () {
-//         const obj = JSON.parse(reader.result)
-//         notification.error({
-//           message: '提示',
-//           description: obj.message
-//         })
-//       })
-//       reader.readAsText(res)
-//     } else {
-//       if (type == 'export') { //  导出
-//         downloadExcel(res, fileName)
-//       } else { // 打印
-//         JGPrint(res, type, printerType)
-//       }
-//     }
-//     callback()
-//   })
-// }
-
-
 /*
   *printerType: 打印机类型
   *type: 打印预览,打印,导出
@@ -218,6 +112,34 @@ export const hdPrint = function (printerType, type, url, params, fileName, callb
   })
 }
 
+// pdf blob 转 base64
+export const blobToBaseByPdf = function(data,callback){
+  const reader = new FileReader()
+  reader.readAsDataURL(new Blob([data], { type: 'application/pdf' }))
+  reader.addEventListener('load', () => {
+    callback(reader.result)
+  })
+}
+// base64 转 blob,多个pdf 合并成一个
+ export const dataURItoBlobByPdf = function (data,callback) {
+    let byteLen = 0 
+    for(let i=0;i<data.length;i++){
+      let byteString = atob(data[i]); //base64 解码
+      byteLen = byteLen + byteString.length
+    }
+    let arrayBuffer = new ArrayBuffer(byteLen); //创建缓冲数组
+    let intArray = new Uint8Array(arrayBuffer); //创建视图
+    
+    for(let i=0;i<data.length;i++){
+      let byteString = atob(data[i]); //base64 解码
+      for (let i = 0; i < byteLen; i++) {
+          intArray[i] = byteString.charCodeAt(i);
+      }
+    }
+    console.log(intArray)
+    blobToBaseByPdf(intArray,callback)
+}
+
 // 打印控件
 export const jGPrint = function (data, type, printerType) {
   if (!data) {
@@ -248,13 +170,19 @@ export const jGPrint = function (data, type, printerType) {
     LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
     // LODOP.SET_PRINT_MODE('POS_BASEON_PAPER', true) // 可使输出以纸张边缘为基点
     if (type == 'preview') { //  预览
-      const reader = new FileReader()
-      reader.readAsDataURL(new Blob([data], { type: 'application/pdf' }))
-      reader.addEventListener('load', () => {
-        LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', reader.result.split('base64,')[1])
-        LODOP.SET_PRINT_PAGESIZE(3,2090,65,"");
-        LODOP.PREVIEW()
-      })
+      // blobToBaseByPdf(data,function(result){
+      //     LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', result.split('base64,')[1])
+      //     LODOP.SET_PRINT_PAGESIZE(3,2090,65,"");
+      //     LODOP.PREVIEW()
+      // })
+      // dataURItoBlobByPdf(data.data,function(result){
+      //   LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', result.split('base64,')[1])
+      //   LODOP.SET_PRINT_PAGESIZE(3,2090,65,"");
+      //   LODOP.PREVIEW()
+      // })
+      LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', data.data[0])
+      LODOP.SET_PRINT_PAGESIZE(3,2090,65,"");
+      LODOP.PREVIEW()
     } else if (type == 'print') { //  打印
       const dlen = data.data.length
       for(let i=0;i<dlen;i++){

+ 1 - 1
src/views/allocationManagement/storeTransferOut/detail.vue

@@ -28,7 +28,7 @@
               <a-descriptions-item label="业务状态">{{ (basicInfoData&&basicInfoData.stateDictValue) || '--' }}</a-descriptions-item>
               <a-descriptions-item label="财务状态">{{ (basicInfoData&&basicInfoData.settleStateDictValue) || '--' }}</a-descriptions-item>
               <a-descriptions-item label="调拨类型">{{ (basicInfoData&&basicInfoData.callOutTypeName) || '--' }}</a-descriptions-item>
-              <a-descriptions-item label="备注">{{ (basicInfoData&&basicInfoData.remarks) || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="备注">{{ (basicInfoData&&basicInfoData.remark) || '--' }}</a-descriptions-item>
             </a-descriptions>
           </a-collapse-panel>
         </a-collapse>