From 4a18149d7ca9a0ea3ad569297f34e928c59e2025 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 21 三月 2020 20:30:08 +0800
Subject: [PATCH] 2020-03-21

---
 src/tabviews/zshare/actionList/index.jsx |  179 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 132 insertions(+), 47 deletions(-)

diff --git a/src/tabviews/zshare/actionList/index.jsx b/src/tabviews/zshare/actionList/index.jsx
index ed8ab47..942dd60 100644
--- a/src/tabviews/zshare/actionList/index.jsx
+++ b/src/tabviews/zshare/actionList/index.jsx
@@ -225,7 +225,61 @@
       formdata[_data.key] = _data.value
     })
 
-    if (!btn.verify || !btn.verify.Template || !btn.verify.linkUrl) {
+    // btn.verify.printFunc = `
+    //   let _data = data[0]
+    //   _data = JSON.parse(_data)
+
+    //   let socket = new WebSocket(_data.wsaddr)
+      
+    //   // 鎵撳紑Socket
+    //   socket.onopen = () => {
+    //     notification.success({
+    //       top: 92,
+    //       message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+    //       duration: 2
+    //     })
+    //     socket.send(JSON.stringify(_data.data))
+    //   }
+    //   // 鐩戝惉娑堟伅
+    //   socket.onmessage = (event) => {
+    //     let data = ''
+
+    //     if (event.data) {
+    //       try {
+    //         data = JSON.parse(event.data)
+    //       } catch {
+    //         notification.warning({
+    //           top: 92,
+    //           message: event.data,
+    //           duration: 10
+    //         })
+    //         data = ''
+    //       }
+    //     }
+
+    //     if (data && data.message && !data.status) {
+    //       notification.warning({
+    //         top: 92,
+    //         message: data.message,
+    //         duration: 10
+    //       })
+    //     }
+    //   }
+
+    //   socket.onerror = () => {
+    //     notification.warning({
+    //       top: 92,
+    //       message: '鏃犳硶杩炴帴鍒�:' + _data.wsaddr,
+    //       duration: 10
+    //     })
+    //   }
+    // `
+
+    if (
+      !btn.verify ||
+      (btn.verify.printMode === 'normal' && (!btn.verify.Template || !btn.verify.linkUrl)) ||
+      (btn.verify.printMode === 'custom' && !btn.verify.printFunc)
+    ) {
       notification.warning({
         top: 92,
         message: '璇峰畬鍠勬墦鍗伴獙璇佷俊鎭紒',
@@ -235,7 +289,7 @@
     }
 
     let printlist = []
-    let templates = [btn.verify.Template]
+    let templates = [btn.verify.Template || '']
     let printCount = 1
 
     if (formdata.printCount && typeof(formdata.printCount) === 'number' && formdata.printCount >= 1) {
@@ -263,34 +317,45 @@
             }
           })
         }
-        resolve('getTemp')
+
+        if (btn.verify.printMode === 'custom') {
+          this.execCustomPrint(btn, printlist)
+        } else {
+          resolve('getTemp')
+        }
       } else {
         this.getprintdata(btn, data, formdata, formlist).then(result => {
-          result.list.forEach(item => {
-            let _cell = item.data
-
-            if (_cell.TemplateID) {
-              templates.push(_cell.TemplateID)
-            } else {
-              _cell.TemplateID = btn.verify.Template
-            }
-
-            let _count = printCount
-
-            if (item.count && typeof(item.count) === 'number' && item.count >= 1) {
-              _count = item.count
-            }
-
-            for (let i = 0; i < _count; i++) {
-              printlist.push({...formdata, ..._cell})
-            }
-          })
+          if (result.next === 'getTemp') {
+            result.list.forEach(item => {
+              let _cell = item.data
+  
+              if (_cell.TemplateID) {
+                templates.push(_cell.TemplateID)
+              } else {
+                _cell.TemplateID = btn.verify.Template
+              }
+  
+              let _count = printCount
+  
+              if (item.count && typeof(item.count) === 'number' && item.count >= 1) {
+                _count = item.count
+              }
+  
+              for (let i = 0; i < _count; i++) {
+                printlist.push({...formdata, ..._cell})
+              }
+            })
+          } else if (result.next === 'customPrint') {
+            this.execCustomPrint(btn, result.list)
+          }
           
           resolve(result.next)
         })
       }
     }).then(res => {
+      // 鑾峰彇鎵撳嵃妯℃澘 getTemp
       if (!res) return
+      if (res !== 'getTemp') return false
 
       templates = Array.from(new Set(templates)) // 鍘婚噸
 
@@ -345,6 +410,18 @@
         this.execError(errorMsg, btn)
       }
     })
+  }
+
+  execCustomPrint = (btn, printdata) => {
+    this.setState({loadingUuid: ''})
+
+    try {
+      // eslint-disable-next-line
+      let func = new Function('data', 'notification', btn.verify.printFunc)  // 鏈�鍚庝竴涓弬鏁板綋鍑芥暟浣撴潵鎵ц锛屽墠闈㈢殑鍙傛暟褰撴垚鍑芥暟浣撶殑鍙傛暟銆�
+      func(printdata, notification)
+    } catch (e) {
+      console.warn(e)
+    }
   }
 
   getprintdata = (btn, data, formdata, formlist) => {
@@ -411,15 +488,20 @@
             let errorMsg = ''
             result.forEach(res => {
               if (res.status) {
-                res.data.forEach(_item => {
-                  _list.push({data: _item, count: res.printCount})
-                })
+                if (btn.verify.printMode === 'custom') {
+                  // _list.push(res.data)
+                  _list.push('{"status": true,"message": "","ErrCode": "","ErrMesg": "", "wsaddr": "ws://127.0.0.1:13529","wstype": "local/server","data": [{"cmd": "print","requestID": "202003091036391803ACEAAE08DF7454599AEA243D8959F","version": "1.0","task": {"taskID": "202003091036391803ACEAAE08DF7454599AEA243D8959F","preview": false,"printer": "Microsoft Print To PDF", "documents": [{"documentID": "05512003090002A243D8959F","contents": [{"data": {"Bill": "05512003090002","ReturnProduct": ""},"templateURL": "http://css.positecgroup.com/template/warespaceprint01/2020010810525789956968_U000000001.srt","ectype": "jdpop"}]}]}}	]}')
+                } else {
+                  res.data.forEach(_item => {
+                    _list.push({data: _item, count: res.printCount})
+                  })
+                }
               } else {
                 errorMsg = res
               }
             })
             if (!errorMsg) {
-              resolve({next: 'getTemp', list: _list})
+              resolve({next: btn.verify.printMode === 'custom' ? 'customPrint' : 'getTemp', list: _list})
             } else {
               this.execError(errorMsg, btn)
               resolve({next: false, list: _list})
@@ -507,13 +589,17 @@
 
         return Api.genericInterface(_callbackparam)
       } else if (response.status) {
-        response.data.forEach(_item => {
-          _list.push({data: _item, count: response.printCount})
-        })
+        if (btn.verify.printMode === 'custom') {
+          _list.push(response.data)
+        } else {
+          response.data.forEach(_item => {
+            _list.push({data: _item, count: response.printCount})
+          })
+        }
 
         // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹�
         if (params.length === 0) {
-          _resolve({next: 'getTemp', list: _list})
+          _resolve({next: btn.verify.printMode === 'custom' ? 'customPrint' : 'getTemp', list: _list})
         } else {
           this.printOuterLoopRequest(params, btn, _list, _resolve)
         }
@@ -525,13 +611,17 @@
       if (!response) return
 
       if (response.status) {
-        response.data.forEach(_item => {
-          _list.push({data: _item, count: response.printCount})
-        })
+        if (btn.verify.printMode === 'custom') {
+          _list.push(response.data)
+        } else {
+          response.data.forEach(_item => {
+            _list.push({data: _item, count: response.printCount})
+          })
+        }
 
         // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹�
         if (params.length === 0) {
-          _resolve({next: 'getTemp', list: _list})
+          _resolve({next: btn.verify.printMode === 'custom' ? 'customPrint' : 'getTemp', list: _list})
         } else {
           this.printOuterLoopRequest(params, btn, _list, _resolve)
         }
@@ -550,12 +640,16 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
-        res.data.forEach(_item => {
-          _list.push({data: _item, count: res.printCount})
-        })
+        if (btn.verify.printMode === 'custom') {
+          _list.push(res.data)
+        } else {
+          res.data.forEach(_item => {
+            _list.push({data: _item, count: res.printCount})
+          })
+        }
 
         if (params.length === 0) {
-          _resolve({next: 'getTemp', list: _list})
+          _resolve({next: btn.verify.printMode === 'custom' ? 'customPrint' : 'getTemp', list: _list})
         } else {
           this.printInnerLoopRequest(params, btn, _list, _resolve)
         }
@@ -1353,15 +1447,6 @@
       })
     } else if (res && res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず
 
-    // } else if (res.Relogin === 'true') { // 鍒囨崲鐢ㄦ埛鍔熻兘
-    //   sessionStorage.setItem('avatar', res.icon || '')
-    //   sessionStorage.setItem('UserID', res.UserID)
-    //   sessionStorage.setItem('SessionUid', Utils.getuuid())
-    //   sessionStorage.setItem('LoginUID', res.LoginUID)
-    //   sessionStorage.setItem('User_Name', res.UserName)
-      
-    //   window.location.reload()
-    //   return
     }
     
     if (btn.OpenType === 'pop' && btn.setting && btn.setting.finish !== 'unclose') {

--
Gitblit v1.8.0