king
2021-09-29 7acac704eadabff7bab8f640f6035935f57e5381
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({