From 7acac704eadabff7bab8f640f6035935f57e5381 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 29 九月 2021 15:57:46 +0800
Subject: [PATCH] 2021-09-29

---
 src/tabviews/zshare/actionList/printbutton/index.jsx |  196 ++++++++++++++++++++++++++-----------------------
 1 files changed, 104 insertions(+), 92 deletions(-)

diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx
index ffed630..1889cf8 100644
--- a/src/tabviews/zshare/actionList/printbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -364,8 +364,8 @@
 
     try {
       // eslint-disable-next-line
-      let func = new Function('data', 'form', 'printer', 'notification', btn.verify.printFunc)
-      func(printlist, formdata, btn.verify, notification)
+      let func = new Function('data', 'form', 'printer', 'notification', 'Api', 'systemType', btn.verify.printFunc)
+      func(printlist, formdata, btn.verify, notification, Api, window.GLOB.systemType)
 
       // 鑷畾涔夋墦鍗扮ず渚�
       // let defaultPrinter = printer.defaultPrinter || 'lackprinter'
@@ -376,8 +376,7 @@
       //   for (let i = 0; i < 32; i++) {
       //     uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
       //   }
-      //   uuid = uuid.join('')
-      //   return uuid
+      //   return uuid.join('')
       // }
       // if (printer.printerTypeList && printer.printerTypeList.length > 0) {
       //   printer.printerTypeList.forEach(cell => {
@@ -387,29 +386,43 @@
       //   })
       // }
 
-      // let jdList = []
-      // let otherList = []
-      // data.forEach(item => {
-      //   if (item.CustomData) {
-      //     item.CustomData = JSON.parse(item.CustomData.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))
-      //   }
-      //   if (item.PrintData) {
-      //     item.PrintData = JSON.parse(item.PrintData.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))
-      //     item.PrintData.data = {...form, ...item.PrintData.data}
-      //   }
+      // let jdList = [];
+      // let jdNewList = [];
+      // let otherList = [];
+      // let _map = new Map()
+      // data.forEach(m => {
+      //   if (!m.print_data || m.print_data.length === 0) return
         
-      //   if (!item.PrintData) {
-      //     return
-      //   }
+      //   m.print_data.forEach(n => {
+      //     if (n.InsideBill) {
+      //       if (_map.has(n.InsideBill)) {
+      //         return
+      //       }
+      //       _map.set(n.InsideBill, true)
+      //     }
+      //     if (n.CustomData) {
+      //       n.CustomData = JSON.parse(n.CustomData.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))
+      //     }
 
-      //   if (item.PrintData.ectype === 'jdpop') {
-      //     jdList.push(item)
-      //   } else {
-      //     otherList.push(item)
-      //   }
+      //     if (n.hasOwnProperty('StdTemplate')) {
+      //       jdNewList.push(n);
+      //       return
+      //     } else if (!n.PrintData) {
+      //       return
+      //     }
+
+      //     n.PrintData = JSON.parse(n.PrintData.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))
+      //     n.PrintData.data = {...form, ...n.PrintData.data}
+
+      //     if (n.PrintData.ectype === 'jdpop') {
+      //       jdList.push(n)
+      //     } else {
+      //       otherList.push(n)
+      //     }
+      //   })
       // })
 
-      // if (jdList.length === 0 && otherList.length === 0) {
+      // if (jdList.length === 0 && otherList.length === 0 && jdNewList.length === 0) {
       //   notification.warning({
       //     top: 92,
       //     message: '鏃犳墦鍗版暟鎹紒',
@@ -418,79 +431,88 @@
       //   return
       // }
 
-      // let execPrint = (list, linkUrl) => {
-      //   let printdata = {}
+      // let execPrint = (list, linkUrl, type) => {
+      //   let printdata = {};
+      //   let printerList = [];
 
-      //   list.forEach(res => {
-      //     let _printer = defaultPrinter
+      //   if (type === 'jd') {
+      //     printerList = list.map(m => {
+      //       let _printer = defaultPrinter;
 
-      //     if (res.printType && printers[res.printType]) {
-      //       _printer = printers[res.printType]
-      //     }
-
-      //     printdata[_printer] = printdata[_printer] || []
-
-      //     printdata[_printer].push(res)
-      //   })
-
-      //   let printerList = []
-
-      //   Object.keys(printdata).forEach(printer => {
-      //     let _documents = []
-      //     printdata[printer].forEach(item => {
-      //       let _cell = {
-      //         documentID: getuuid(),
-      //         contents: []
+      //       if (m.printType && printers[m.printType]) {
+      //         _printer = printers[m.printType];
       //       }
 
-      //       if (item.PrintData) {
-      //         _cell.contents.push(item.PrintData)
+      //       return {
+      //         orderType: "print", 
+      //         parameters: {
+      //           printName: _printer === 'lackprinter' ? '' : _printer,
+      //           tempUrl: m.StdTemplate,
+      //           customTempUrl: m.CusTemplate,
+      //           customData: [m.CustomData],
+      //           printData: [m.PrintData]
+      //         } 
       //       }
-      //       if (item.CustomData) {
-      //         _cell.contents.push(item.CustomData)
+      //     })
+      //   } else {
+      //     list.forEach(res => {
+      //       let _printer = defaultPrinter
+
+      //       if (res.printType && printers[res.printType]) {
+      //         _printer = printers[res.printType]
       //       }
 
-      //       for (let i = 0; i < item.printCount; i++) {
+      //       printdata[_printer] = printdata[_printer] || []
+
+      //       printdata[_printer].push(res)
+      //     })
+
+      //     Object.keys(printdata).forEach(printer => {
+      //       let _documents = []
+      //       printdata[printer].forEach(item => {
+      //         let _cell = {
+      //           documentID: getuuid(),
+      //           contents: []
+      //         }
+
+      //         if (item.PrintData) {
+      //           _cell.contents.push(item.PrintData)
+      //         }
+      //         if (item.CustomData) {
+      //           _cell.contents.push(item.CustomData)
+      //         }
+
       //         _documents.push(_cell)
-      //       }
+      //       })
+      //       printerList.push({
+      //         cmd: 'print',
+      //         requestID: '',
+      //         version: '',
+      //         task: {
+      //           taskID: getuuid(),
+      //           preview: false,
+      //           printer: printer === 'lackprinter' ? '' : printer,
+      //           documents: _documents
+      //         }
+      //       })
       //     })
-      //     printerList.push({
-      //       cmd: 'print',
-      //       requestID: '',
-      //       version: '',
-      //       task: {
-      //         taskID: getuuid(),
-      //         preview: false,
-      //         printer: printer,
-      //         documents: _documents
-      //       }
-      //     })
-      //   })
-
-      //   let lackItems = printerList.filter(cell => cell.task.printer === 'lackprinter')[0]
+      //   }
 
       //   let socket = new WebSocket('ws://' + linkUrl)
 
       //   // 鎵撳紑Socket
       //   socket.onopen = () =>{
-      //     if (lackItems) {
-      //       let request  = {
-      //         requestID: '',
-      //         version: '',
-      //         cmd: 'getPrinters'
-      //       }
-      //       socket.send(JSON.stringify(request))
-      //     } else {
-      //       printerList.forEach(cell => {
-      //         socket.send(JSON.stringify(cell).replace(/\\r/g,"\r").replace(/\\n/g,"\n"))
-      //       })
+      //       printerList.forEach((cell, i) => {
+      //         setTimeout(() => {
+      //           socket.send(JSON.stringify(cell).replace(/\\r/g,"\r").replace(/\\n/g,"\n"))
+      //       }, 1000 * i)
+      //       });
 
       //       notification.success({
       //         top: 92,
       //         message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
       //         duration: 2
       //       })
-      //     }
       //   }
       //   // 鐩戝惉娑堟伅
       //   socket.onmessage = (event) => {
@@ -509,20 +531,7 @@
       //       }
       //     }
 
-      //     if (data && data.cmd === 'getPrinters' && data.status) {
-      //       printerList.forEach(cell => {
-      //         if (cell.task.printer === 'lackprinter') {
-      //           cell.task.printer = data.defaultPrinter
-      //         }
-      //         socket.send(JSON.stringify(cell).replace(/\\r/g,"\r").replace(/\\n/g,"\n"))
-      //       })
-
-      //       notification.success({
-      //         top: 92,
-      //         message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
-      //         duration: 2
-      //       })
-      //     } else if (data && data.message && !data.status) {
+      //     if (data && data.message && !data.status) {
       //       notification.warning({
       //         top: 92,
       //         message: data.message,
@@ -540,6 +549,9 @@
       //   }
       // }
 
+      // if (jdNewList.length > 0) {
+      //   execPrint(jdNewList, '127.0.0.1:9113', 'jd');
+      // }
       // if (jdList.length > 0) {
       //   execPrint(jdList, '127.0.0.1:13529')
       // }
@@ -551,8 +563,8 @@
 
       try {
         // eslint-disable-next-line
-        let evalfunc = eval('(true && function (data, form, printer, notification) {' + btn.verify.printFunc + '})')
-        evalfunc(printlist, formdata, btn.verify, notification)
+        let evalfunc = eval('(true && function (data, form, printer, notification, Api, systemType) {' + btn.verify.printFunc + '})')
+        evalfunc(printlist, formdata, btn.verify, notification, Api, window.GLOB.systemType)
       } catch (error) {
         console.warn(error)
         notification.warning({

--
Gitblit v1.8.0