Jelajahi Sumber

打印,盘点打印优化

lilei 3 tahun lalu
induk
melakukan
cf69245a99

+ 8 - 4
src/api/checkWarehouse.js

@@ -174,10 +174,14 @@ export const checkWarehouseDetailExport = params => {
 }
 // 库存盘点 详情  打印
 export const checkWarehouseDetailPrint = params => {
-  return axios.request({
+  const data = {
     url: `checkWarehouse/detail/print/${params.printType}`,
     method: 'post',
-    data: params,
-    responseType: 'blob'
-  })
+    data: params
+  }
+  // 喷墨打印
+  if (params.type == 'INK') {
+    data.responseType = 'blob'
+  }
+  return axios.request(data)
 }

+ 7 - 4
src/libs/JGPrint.js

@@ -184,11 +184,12 @@ export const hdPrint = function (printerType, type, url, params, fileName, callb
     params.type = printerType
   }
   // 阵式预览和喷墨预览一样
-  if (type == 'preview' && printerType == 'NEEDLE') {
-    params.type = 'INK'
-    printerType = 'INK'
-  }
+  // if (type == 'preview' && printerType == 'NEEDLE') {
+  //   params.type = 'INK'
+  //   printerType = 'INK'
+  // }
   url(params).then(res => {
+    console.log(res, type, printerType)
     if (res.type == 'application/json') {
       var reader = new FileReader()
       reader.addEventListener('loadend', function () {
@@ -232,6 +233,8 @@ export const jGPrint = function (data, type, printerType) {
       return
     }
     
+    LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
+    // LODOP.SET_PRINT_MODE('POS_BASEON_PAPER', true) // 可使输出以纸张边缘为基点
     if (type == 'preview') { //  预览
       LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', data.data[data.data.length-1])
       LODOP.SET_PRINT_PAGESIZE(3,2090,65,"");

+ 6 - 33
src/views/inventoryManagement/inventoryChecking/detailModal.vue

@@ -155,7 +155,7 @@
 
 <script>
 import { commonMixin } from '@/utils/mixin'
-import { downloadExcel } from '@/libs/JGPrint.js'
+import { hdPrint } from '@/libs/JGPrint.js'
 import { STable } from '@/components'
 import printModal from './printModal.vue'
 import ProductType from '@/views/common/productType.js'
@@ -312,50 +312,23 @@ export default {
     },
     handleOk (objs) {
       const _this = this
-      let params
+      let params, type
       let url = checkWarehouseDetailPrint //  打印
       if (this.nowType == 'export') { //  导出
         url = checkWarehouseDetailExport
         params = { checkWarehouseSn: this.itemSn }
+        type = 'export'
       } else { //  打印
         params = JSON.parse(JSON.stringify(objs))
         params.printType = this.printerType
+        type = params.type
         delete params.type
       }
       _this.spinning = true
-      url(params).then(res => {
+      // 打印或导出
+      hdPrint(this.printerType, type, url, params, '库存盘点', function () {
         _this.spinning = false
-        if (res.type == 'application/json') {
-          var reader = new FileReader()
-          reader.addEventListener('loadend', function () {
-            const obj = JSON.parse(reader.result)
-            _this.$notification.error({
-              message: '提示',
-              description: obj.message
-            })
-          })
-          reader.readAsText(res)
-        } else {
-          if (this.nowType == 'export' || this.nowType == 'typeExport') {
-            downloadExcel(res, '库存盘点')
-          } else {
-            this.print(res, objs.type)
-          }
-        }
       })
-    },
-    print (data, type) {
-      if (!data) {
-        return
-      }
-      const url = window.URL.createObjectURL(new Blob([data], { type: 'application/pdf' }))
-      document.getElementById('print').innerHTML = '<iframe id="printficd" name="printficd" src="' + url + '" hidden></iframe>'
-      if (type == 'preview') { //  预览
-        window.open(url)
-      } else if (type == 'print') { //  打印
-        window.frames['printficd'].focus()
-        window.frames['printficd'].print()
-      }
     }
   },
   watch: {

+ 6 - 33
src/views/inventoryManagement/inventoryChecking/makeInventory.vue

@@ -202,7 +202,7 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import ProductType from '@/views/common/productType.js'
 import printModal from './printModal.vue'
-import { downloadExcel } from '@/libs/JGPrint.js'
+import { hdPrint } from '@/libs/JGPrint.js'
 import { checkWarehouseDetailList, checkWarehouseDetailCount, checkWarehouseInventory, checkWarehouseDetail, checkWarehouseDetailSave, checkWarehouseCheckZero, checkWarehouseWarehouse, checkWarehouseDetailExport, checkWarehouseDetailPrint } from '@/api/checkWarehouse'
 export default {
   name: 'MakeInventory',
@@ -422,50 +422,23 @@ export default {
     },
     handleOk (objs) {
       const _this = this
-      let params
+      let params, type
       let url = checkWarehouseDetailPrint //  打印
       if (this.nowType == 'export') { //  导出
         url = checkWarehouseDetailExport
+        type = 'export'
         params = { checkWarehouseSn: this.$route.params.sn, productScopeFlag: this.productScopeFlag }
       } else { //  打印
         params = JSON.parse(JSON.stringify(objs))
         params.printType = this.printerType
+        type = params.type
         delete params.type
       }
       _this.spinning = true
-      url(params).then(res => {
+      // 打印或导出
+      hdPrint(this.printerType, type, url, params, '库存盘点', function () {
         _this.spinning = false
-        if (res.type == 'application/json') {
-          var reader = new FileReader()
-          reader.addEventListener('loadend', function () {
-            const obj = JSON.parse(reader.result)
-            _this.$notification.error({
-              message: '提示',
-              description: obj.message
-            })
-          })
-          reader.readAsText(res)
-        } else {
-          if (this.nowType == 'export' || this.nowType == 'typeExport') {
-            downloadExcel(res, '库存盘点')
-          } else {
-            this.print(res, objs.type)
-          }
-        }
       })
-    },
-    print (data, type) {
-      if (!data) {
-        return
-      }
-      const url = window.URL.createObjectURL(new Blob([data], { type: 'application/pdf' }))
-      document.getElementById('print').innerHTML = '<iframe id="printficm" name="printficm" src="' + url + '" hidden></iframe>'
-      if (type == 'preview') { //  预览
-        window.open(url)
-      } else if (type == 'print') { //  打印
-        window.frames['printficm'].focus()
-        window.frames['printficm'].print()
-      }
     }
   },
   mounted () {