diff --git a/.env.development b/.env.development index 7f48041..236a36a 100644 --- a/.env.development +++ b/.env.development @@ -7,5 +7,5 @@ VITE_API_URL2 = https://maxcessth.gatedge.cn:91 VITE_API_File1 = https://maxcessth.gatedge.cn -VITE_API_File = https://maxcess.gatedge.cn -VITE_API_URL = https://maxcess.gatedge.cn:91 \ No newline at end of file +VITE_API_File = https://maxcessth.gatedge.cn +VITE_API_URL = http://58.252.252.77:91 \ No newline at end of file diff --git a/.env.production b/.env.production index 904ced3..fae1a64 100644 --- a/.env.production +++ b/.env.production @@ -6,5 +6,5 @@ VITE_API_URL1 = http://58.252.252.77:90 VITE_API_URL2 = https://maxcessth.gatedge.cn:91 VITE_API_File1 = https://maxcessth.gatedge.cn -VITE_API_File = https://maxcessth.gatedge.cn -VITE_API_URL = https://maxcessth.gatedge.cn:91 \ No newline at end of file +VITE_API_File = https://maxcess.gatedge.cn +VITE_API_URL = http://58.252.252.77:90 \ No newline at end of file diff --git a/LodopFuncs.js b/LodopFuncs.js new file mode 100644 index 0000000..54fa2ca --- /dev/null +++ b/LodopFuncs.js @@ -0,0 +1,189 @@ +//==本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例,可直接使用,建议理解后融入自己程序== + +//用双端口加载主JS文件Lodop.js(或CLodopfuncs.js兼容老版本)以防其中某端口被占: +var MainJS ="CLodopfuncs.js", + URL_WS1 = "ws://localhost:8000/"+MainJS, //ws用8000/18000 + URL_WS2 = "ws://localhost:18000/"+MainJS, + URL_HTTP1 = "http://localhost:8000/"+MainJS, //http用8000/18000 + URL_HTTP2 = "http://localhost:18000/"+MainJS, + URL_HTTP3 = "https://localhost.lodop.net:8443/"+MainJS; //https用8000/8443 + +var CreatedOKLodopObject, CLodopIsLocal, LoadJsState; + +//==判断是否需要CLodop(那些不支持插件的浏览器):== +function needCLodop() { + try { + var ua = navigator.userAgent; + if (ua.match(/Windows\sPhone/i) || + ua.match(/iPhone|iPod|iPad/i) || + ua.match(/Android/i) || + ua.match(/Edge\D?\d+/i)) + return true; + var verTrident = ua.match(/Trident\D?\d+/i); + var verIE = ua.match(/MSIE\D?\d+/i); + var verOPR = ua.match(/OPR\D?\d+/i); + var verFF = ua.match(/Firefox\D?\d+/i); + var x64 = ua.match(/x64/i); + if ((!verTrident) && (!verIE) && (x64)) return true; + else if (verFF) { + verFF = verFF[0].match(/\d+/); + if ((verFF[0] >= 41) || (x64)) return true; + } else if (verOPR) { + verOPR = verOPR[0].match(/\d+/); + if (verOPR[0] >= 32) return true; + } else if ((!verTrident) && (!verIE)) { + var verChrome = ua.match(/Chrome\D?\d+/i); + if (verChrome) { + verChrome = verChrome[0].match(/\d+/); + if (verChrome[0] >= 41) return true; + } + } + return false; + } catch (err) { + return true; + } +} + +//==检查加载成功与否,如没成功则用http(s)再试== +//==低版本CLODOP6.561/Lodop7.043及前)用本方法== +function checkOrTryHttp() { + if (window.getCLodop) { + LoadJsState = "complete"; + return true; + } + if (LoadJsState == "loadingB" || LoadJsState == "complete") return; + LoadJsState = "loadingB"; + var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; + var JS1 = document.createElement("script") + ,JS2 = document.createElement("script") + ,JS3 = document.createElement("script"); + JS1.src = URL_HTTP1; + JS2.src = URL_HTTP2; + JS3.src = URL_HTTP3; + JS1.onload = JS2.onload = JS3.onload = JS2.onerror = JS3.onerror=function(){LoadJsState = "complete";} + JS1.onerror = function(e) { + if (window.location.protocol !== 'https:') + head.insertBefore(JS2, head.firstChild); else + head.insertBefore(JS3, head.firstChild); + } + head.insertBefore(JS1,head.firstChild); +} + +//==加载Lodop对象的主过程:== +(function loadCLodop(){ + if (!needCLodop()) return; + CLodopIsLocal = !!((URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i)); + LoadJsState = "loadingA"; + + if (!window.WebSocket && window.MozWebSocket) window.WebSocket=window.MozWebSocket; + //ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新: + try { + var WSK1=new WebSocket(URL_WS1); + WSK1.onopen = function(e) { setTimeout(checkOrTryHttp,200); } + WSK1.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} + WSK1.onerror = function(e) { + var WSK2=new WebSocket(URL_WS2); + WSK2.onopen = function(e) {setTimeout(checkOrTryHttp,200);} + WSK2.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} + WSK2.onerror= function(e) {checkOrTryHttp();} + } + } catch(e){ + checkOrTryHttp(); + } +})(); + +//==获取LODOP对象主过程,判断是否安装、需否升级:== +function getLodop(oOBJECT, oEMBED) { + var strFontTag = "
打印控件"; + var strLodopInstall = strFontTag + "未安装!点击这里执行安装"; + var strLodopUpdate = strFontTag + "需要升级!点击这里执行升级"; + var strLodop64Install = strFontTag + "未安装!点击这里执行安装"; + var strLodop64Update = strFontTag + "需要升级!点击这里执行升级"; + var strCLodopInstallA = "
Web打印服务CLodop未安装启动,点击这里下载执行安装"; + var strCLodopInstallB = "
(若此前已安装过,可点这里直接再次启动)"; + var strCLodopUpdate = "
Web打印服务CLodop需升级!点击这里执行升级"; + var strLodop7FontTag = "
Web打印服务Lodop7"; + var strLodop7HrefX86 = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7HrefARM = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7Install_X86 = strLodop7FontTag + "未安装启动," + strLodop7HrefX86; + var strLodop7Install_ARM = strLodop7FontTag + "未安装启动," + strLodop7HrefARM; + var strLodop7Update_X86 = strLodop7FontTag + "需升级," + strLodop7HrefX86; + var strLodop7Update_ARM = strLodop7FontTag + "需升级," + strLodop7HrefARM; + var strInstallOK = ",成功后请刷新本页面或重启浏览器。"; + var LODOP; + try { + var isWinIE = (/MSIE/i.test(navigator.userAgent)) || (/Trident/i.test(navigator.userAgent)); + var isWinIE64 = isWinIE && (/x64/i.test(navigator.userAgent)); + var isLinuxX86 = (/Linux/i.test(navigator.platform)) && (/x86/i.test(navigator.platform)); + var isLinuxARM = (/Linux/i.test(navigator.platform)) && (/aarch/i.test(navigator.platform)); + + if (needCLodop() || isLinuxX86 || isLinuxARM) { + try { + LODOP = window.getCLodop(); + } catch (err) {} + if (!LODOP && LoadJsState !== "complete") { + if (!LoadJsState) + alert("未曾加载Lodop主JS文件,请先调用loadCLodop过程."); else + alert("网页还没下载完毕,请稍等一下再操作."); + return; + } + var strAlertMessage; + if (!LODOP) { + if (isLinuxX86) + strAlertMessage = strLodop7Install_X86; + else if (isLinuxARM) + strAlertMessage = strLodop7Install_ARM; + else + strAlertMessage = strCLodopInstallA + (CLodopIsLocal ? strCLodopInstallB : ""); + document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + return; + } else { + if (isLinuxX86 && LODOP.CVERSION < "7.1.0.1") + strAlertMessage = strLodop7Update_X86; + else if (isLinuxARM && LODOP.CVERSION < "7.1.0.1") + strAlertMessage = strLodop7Update_ARM; + else if (CLODOP.CVERSION < "6.6.2.1") + strAlertMessage = strCLodopUpdate; + + if (strAlertMessage) + document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + } + } else { + //==如果页面有Lodop插件就直接使用,否则新建:== + if (oOBJECT || oEMBED) { + if (isWinIE) + LODOP = oOBJECT; + else + LODOP = oEMBED; + } else if (!CreatedOKLodopObject) { + LODOP = document.createElement("object"); + LODOP.setAttribute("width", 0); + LODOP.setAttribute("height", 0); + LODOP.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;"); + if (isWinIE) + LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA"); + else + LODOP.setAttribute("type", "application/x-print-lodop"); + document.documentElement.appendChild(LODOP); + CreatedOKLodopObject = LODOP; + } else + LODOP = CreatedOKLodopObject; + //==Lodop插件未安装时提示下载地址:== + if ((!LODOP) || (!LODOP.VERSION)) { + document.body.innerHTML = (isWinIE64 ? strLodop64Install : strLodopInstall) + strInstallOK + document.body.innerHTML; + return LODOP; + } + if (LODOP.VERSION < "6.2.2.6") { + document.body.innerHTML = (isWinIE64 ? strLodop64Update : strLodopUpdate) + strInstallOK + document.body.innerHTML; + } + } + //===如下空白位置适合调用统一功能(如注册语句、语言选择等):====================== + LODOP.SET_LICENSES("","8B7A45DAE7262E36A87452727380929E9FC","",""); + //=============================================================================== + return LODOP; + } catch (err) { + alert("getLodop出错:" + err); + } +} + +export { getLodop } diff --git a/index.html b/index.html index 896a252..b5f55a9 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ content="123" /> - + Maxcess SCEP diff --git a/lodop.js b/lodop.js index 7d69ccf..7613961 100644 --- a/lodop.js +++ b/lodop.js @@ -1,189 +1,196 @@ //==本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例,可直接使用,建议理解后融入自己程序== //用双端口加载主JS文件Lodop.js(或CLodopfuncs.js兼容老版本)以防其中某端口被占: -var MainJS ="CLodopfuncs.js", - URL_WS1 = "ws://localhost:8000/"+MainJS, //ws用8000/18000 - URL_WS2 = "ws://localhost:18000/"+MainJS, - URL_HTTP1 = "http://localhost:8000/"+MainJS, //http用8000/18000 - URL_HTTP2 = "http://localhost:18000/"+MainJS, - URL_HTTP3 = "https://localhost.lodop.net:8443/"+MainJS; //https用8000/8443 +var MainJS = 'CLodopfuncs.js', + URL_WS1 = 'ws://localhost:8000/' + MainJS, //ws用8000/18000 + URL_WS2 = 'ws://localhost:18000/' + MainJS, + URL_HTTP1 = 'http://localhost:8000/' + MainJS, //http用8000/18000 + URL_HTTP2 = 'http://localhost:18000/' + MainJS, + URL_HTTP3 = 'https://localhost.lodop.net:8443/' + MainJS; //https用8000/8443 var CreatedOKLodopObject, CLodopIsLocal, LoadJsState; //==判断是否需要CLodop(那些不支持插件的浏览器):== function needCLodop() { - try { - var ua = navigator.userAgent; - if (ua.match(/Windows\sPhone/i) || - ua.match(/iPhone|iPod|iPad/i) || - ua.match(/Android/i) || - ua.match(/Edge\D?\d+/i)) - return true; - var verTrident = ua.match(/Trident\D?\d+/i); - var verIE = ua.match(/MSIE\D?\d+/i); - var verOPR = ua.match(/OPR\D?\d+/i); - var verFF = ua.match(/Firefox\D?\d+/i); - var x64 = ua.match(/x64/i); - if ((!verTrident) && (!verIE) && (x64)) return true; - else if (verFF) { - verFF = verFF[0].match(/\d+/); - if ((verFF[0] >= 41) || (x64)) return true; - } else if (verOPR) { - verOPR = verOPR[0].match(/\d+/); - if (verOPR[0] >= 32) return true; - } else if ((!verTrident) && (!verIE)) { - var verChrome = ua.match(/Chrome\D?\d+/i); - if (verChrome) { - verChrome = verChrome[0].match(/\d+/); - if (verChrome[0] >= 41) return true; - } - } - return false; - } catch (err) { - return true; - } + try { + var ua = navigator.userAgent; + if (ua.match(/Windows\sPhone/i) || ua.match(/iPhone|iPod|iPad/i) || ua.match(/Android/i) || ua.match(/Edge\D?\d+/i)) return true; + var verTrident = ua.match(/Trident\D?\d+/i); + var verIE = ua.match(/MSIE\D?\d+/i); + var verOPR = ua.match(/OPR\D?\d+/i); + var verFF = ua.match(/Firefox\D?\d+/i); + var x64 = ua.match(/x64/i); + if (!verTrident && !verIE && x64) return true; + else if (verFF) { + verFF = verFF[0].match(/\d+/); + if (verFF[0] >= 41 || x64) return true; + } else if (verOPR) { + verOPR = verOPR[0].match(/\d+/); + if (verOPR[0] >= 32) return true; + } else if (!verTrident && !verIE) { + var verChrome = ua.match(/Chrome\D?\d+/i); + if (verChrome) { + verChrome = verChrome[0].match(/\d+/); + if (verChrome[0] >= 41) return true; + } + } + return false; + } catch (err) { + return true; + } } //==检查加载成功与否,如没成功则用http(s)再试== //==低版本CLODOP6.561/Lodop7.043及前)用本方法== function checkOrTryHttp() { - if (window.getCLodop) { - LoadJsState = "complete"; - return true; - } - if (LoadJsState == "loadingB" || LoadJsState == "complete") return; - LoadJsState = "loadingB"; - var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; - var JS1 = document.createElement("script") - ,JS2 = document.createElement("script") - ,JS3 = document.createElement("script"); - JS1.src = URL_HTTP1; - JS2.src = URL_HTTP2; - JS3.src = URL_HTTP3; - JS1.onload = JS2.onload = JS3.onload = JS2.onerror = JS3.onerror=function(){LoadJsState = "complete";} - JS1.onerror = function(e) { - if (window.location.protocol !== 'https:') - head.insertBefore(JS2, head.firstChild); else - head.insertBefore(JS3, head.firstChild); - } - head.insertBefore(JS1,head.firstChild); + if (window.getCLodop) { + LoadJsState = 'complete'; + return true; + } + if (LoadJsState == 'loadingB' || LoadJsState == 'complete') return; + LoadJsState = 'loadingB'; + var head = document.head || document.getElementsByTagName('head')[0] || document.documentElement; + var JS1 = document.createElement('script'), + JS2 = document.createElement('script'), + JS3 = document.createElement('script'); + JS1.src = URL_HTTP1; + JS2.src = URL_HTTP2; + JS3.src = URL_HTTP3; + JS1.onload = + JS2.onload = + JS3.onload = + JS2.onerror = + JS3.onerror = + function () { + LoadJsState = 'complete'; + }; + JS1.onerror = function (e) { + if (window.location.protocol !== 'https:') head.insertBefore(JS2, head.firstChild); + else head.insertBefore(JS3, head.firstChild); + }; + head.insertBefore(JS1, head.firstChild); } //==加载Lodop对象的主过程:== -(function loadCLodop(){ - if (!needCLodop()) return; - CLodopIsLocal = !!((URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i)); - LoadJsState = "loadingA"; - if (!window.WebSocket && window.MozWebSocket) window.WebSocket=window.MozWebSocket; - //ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新: - try { - var WSK1=new WebSocket(URL_WS1); - WSK1.onopen = function(e) { setTimeout("checkOrTryHttp()",200); } - WSK1.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} - WSK1.onerror = function(e) { - var WSK2=new WebSocket(URL_WS2); - WSK2.onopen = function(e) {setTimeout("checkOrTryHttp()",200);} - WSK2.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} - WSK2.onerror= function(e) {checkOrTryHttp();} - } - } catch(e){ - checkOrTryHttp(); - } +(function loadCLodop() { + if (!needCLodop()) return; + CLodopIsLocal = !!(URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i); + LoadJsState = 'loadingA'; + if (!window.WebSocket && window.MozWebSocket) window.WebSocket = window.MozWebSocket; + //ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新: + try { + var WSK1 = new WebSocket(URL_WS1); + WSK1.onopen = function (e) { + setTimeout('checkOrTryHttp()', 200); + }; + WSK1.onmessage = function (e) { + if (!window.getCLodop) eval(e.data); + }; + WSK1.onerror = function (e) { + var WSK2 = new WebSocket(URL_WS2); + WSK2.onopen = function (e) { + setTimeout('checkOrTryHttp()', 200); + }; + WSK2.onmessage = function (e) { + if (!window.getCLodop) eval(e.data); + }; + WSK2.onerror = function (e) { + checkOrTryHttp(); + }; + }; + } catch (e) { + checkOrTryHttp(); + } })(); //==获取LODOP对象主过程,判断是否安装、需否升级:== // eslint-disable-next-line @typescript-eslint/no-unused-vars,no-unused-vars function getLodop(oOBJECT, oEMBED) { - var strFontTag = "
打印控件"; - var strLodopInstall = strFontTag + "未安装!点击这里执行安装"; - var strLodopUpdate = strFontTag + "需要升级!点击这里执行升级"; - var strLodop64Install = strFontTag + "未安装!点击这里执行安装"; - var strLodop64Update = strFontTag + "需要升级!点击这里执行升级"; - var strCLodopInstallA = "
Web打印服务CLodop未安装启动,点击这里下载执行安装"; - var strCLodopInstallB = "
(若此前已安装过,可点这里直接再次启动)"; - var strCLodopUpdate = "
Web打印服务CLodop需升级!点击这里执行升级"; - var strLodop7FontTag = "
Web打印服务Lodop7"; - var strLodop7HrefX86 = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; - var strLodop7HrefARM = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; - var strLodop7Install_X86 = strLodop7FontTag + "未安装启动," + strLodop7HrefX86; - var strLodop7Install_ARM = strLodop7FontTag + "未安装启动," + strLodop7HrefARM; - var strLodop7Update_X86 = strLodop7FontTag + "需升级," + strLodop7HrefX86; - var strLodop7Update_ARM = strLodop7FontTag + "需升级," + strLodop7HrefARM; - var strInstallOK = ",成功后请刷新本页面或重启浏览器。"; - var LODOP; - try { - var isWinIE = (/MSIE/i.test(navigator.userAgent)) || (/Trident/i.test(navigator.userAgent)); - var isWinIE64 = isWinIE && (/x64/i.test(navigator.userAgent)); - var isLinuxX86 = (/Linux/i.test(navigator.platform)) && (/x86/i.test(navigator.platform)); - var isLinuxARM = (/Linux/i.test(navigator.platform)) && (/aarch/i.test(navigator.platform)); + alert("SET_LICENSES执行了"); + var strFontTag = "
打印控件"; + var strLodopInstall = strFontTag + "未安装!点击这里执行安装"; + var strLodopUpdate = strFontTag + "需要升级!点击这里执行升级"; + var strLodop64Install = strFontTag + "未安装!点击这里执行安装"; + var strLodop64Update = strFontTag + "需要升级!点击这里执行升级"; + var strCLodopInstallA = + "
Web打印服务CLodop未安装启动,点击这里下载执行安装"; + var strCLodopInstallB = "
(若此前已安装过,可点这里直接再次启动)"; + var strCLodopUpdate = + "
Web打印服务CLodop需升级!点击这里执行升级"; + var strLodop7FontTag = "
Web打印服务Lodop7"; + var strLodop7HrefX86 = + "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7HrefARM = + "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7Install_X86 = strLodop7FontTag + '未安装启动,' + strLodop7HrefX86; + var strLodop7Install_ARM = strLodop7FontTag + '未安装启动,' + strLodop7HrefARM; + var strLodop7Update_X86 = strLodop7FontTag + '需升级,' + strLodop7HrefX86; + var strLodop7Update_ARM = strLodop7FontTag + '需升级,' + strLodop7HrefARM; + var strInstallOK = ',成功后请刷新本页面或重启浏览器。'; + var LODOP; + try { + var isWinIE = /MSIE/i.test(navigator.userAgent) || /Trident/i.test(navigator.userAgent); + var isWinIE64 = isWinIE && /x64/i.test(navigator.userAgent); + var isLinuxX86 = /Linux/i.test(navigator.platform) && /x86/i.test(navigator.platform); + var isLinuxARM = /Linux/i.test(navigator.platform) && /aarch/i.test(navigator.platform); - if (needCLodop() || isLinuxX86 || isLinuxARM) { - try { - LODOP = window.getCLodop(); - } catch (err) { /* empty */ } - if (!LODOP && LoadJsState !== "complete") { - if (!LoadJsState) - alert("未曾加载Lodop主JS文件,请先调用loadCLodop过程."); else - alert("网页还没下载完毕,请稍等一下再操作."); - return; - } - var strAlertMessage; - if (!LODOP) { - if (isLinuxX86) - strAlertMessage = strLodop7Install_X86; - else if (isLinuxARM) - strAlertMessage = strLodop7Install_ARM; - else - strAlertMessage = strCLodopInstallA + (CLodopIsLocal ? strCLodopInstallB : ""); - document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; - return; - } else { - if (isLinuxX86 && LODOP.CVERSION < "7.1.0.1") - strAlertMessage = strLodop7Update_X86; - else if (isLinuxARM && LODOP.CVERSION < "7.1.0.1") - strAlertMessage = strLodop7Update_ARM; - else if (CLODOP.CVERSION < "6.6.2.3") - strAlertMessage = strCLodopUpdate; + if (needCLodop() || isLinuxX86 || isLinuxARM) { + try { + LODOP = window.getCLodop(); + } catch (err) { + /* empty */ + } + if (!LODOP && LoadJsState !== 'complete') { + if (!LoadJsState) alert('未曾加载Lodop主JS文件,请先调用loadCLodop过程.'); + else alert('网页还没下载完毕,请稍等一下再操作.'); + return; + } + var strAlertMessage; + if (!LODOP) { + if (isLinuxX86) strAlertMessage = strLodop7Install_X86; + else if (isLinuxARM) strAlertMessage = strLodop7Install_ARM; + else strAlertMessage = strCLodopInstallA + (CLodopIsLocal ? strCLodopInstallB : ''); + document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + return; + } else { + if (isLinuxX86 && LODOP.CVERSION < '7.1.0.1') strAlertMessage = strLodop7Update_X86; + else if (isLinuxARM && LODOP.CVERSION < '7.1.0.1') strAlertMessage = strLodop7Update_ARM; + else if (CLODOP.CVERSION < '6.6.2.3') strAlertMessage = strCLodopUpdate; - if (strAlertMessage) - document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; - } - } else { - //==如果页面有Lodop插件就直接使用,否则新建:== - if (oOBJECT || oEMBED) { - if (isWinIE) - LODOP = oOBJECT; - else - LODOP = oEMBED; - } else if (!CreatedOKLodopObject) { - LODOP = document.createElement("object"); - LODOP.setAttribute("width", 0); - LODOP.setAttribute("height", 0); - LODOP.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;"); - if (isWinIE) - LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA"); - else - LODOP.setAttribute("type", "application/x-print-lodop"); - document.documentElement.appendChild(LODOP); - CreatedOKLodopObject = LODOP; - } else - LODOP = CreatedOKLodopObject; - //==Lodop插件未安装时提示下载地址:== - if ((!LODOP) || (!LODOP.VERSION)) { - document.body.innerHTML = (isWinIE64 ? strLodop64Install : strLodopInstall) + strInstallOK + document.body.innerHTML; - return LODOP; - } - if (LODOP.VERSION < "6.2.2.6") { - document.body.innerHTML = (isWinIE64 ? strLodop64Update : strLodopUpdate) + strInstallOK + document.body.innerHTML; - } - } - //===如下空白位置适合调用统一功能(如注册语句、语言选择等):======================= - LODOP.SET_LICENSES("","EE0887D00FCC7D29375A695F728489A6","C94CEE276DB2187AE6B65D56B3FC2848",""); + if (strAlertMessage) document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + } + } else { + //==如果页面有Lodop插件就直接使用,否则新建:== + if (oOBJECT || oEMBED) { + if (isWinIE) LODOP = oOBJECT; + else LODOP = oEMBED; + } else if (!CreatedOKLodopObject) { + LODOP = document.createElement('object'); + LODOP.setAttribute('width', 0); + LODOP.setAttribute('height', 0); + LODOP.setAttribute('style', 'position:absolute;left:0px;top:-100px;width:0px;height:0px;'); + if (isWinIE) LODOP.setAttribute('classid', 'clsid:2105C259-1E0C-4534-8141-A753534CB4CA'); + else LODOP.setAttribute('type', 'application/x-print-lodop'); + document.documentElement.appendChild(LODOP); + CreatedOKLodopObject = LODOP; + } else LODOP = CreatedOKLodopObject; + //==Lodop插件未安装时提示下载地址:== + if (!LODOP || !LODOP.VERSION) { + document.body.innerHTML = (isWinIE64 ? strLodop64Install : strLodopInstall) + strInstallOK + document.body.innerHTML; + return LODOP; + } + if (LODOP.VERSION < '6.2.2.6') { + document.body.innerHTML = (isWinIE64 ? strLodop64Update : strLodopUpdate) + strInstallOK + document.body.innerHTML; + } + } + //===如下空白位置适合调用统一功能(如注册语句、语言选择等):======================= + alert("SET_LICENSES执行了"); + LODOP.SET_LICENSES("","8B7A45DAE7262E36A87452727380929E9FC","",""); + alert("SET_LICENSES执行了"); - //=============================================================================== - return LODOP; - } catch (err) { - alert("getLodop出错:" + err); - } + //=============================================================================== + return LODOP; + } catch (err) { + alert('getLodop出错:' + err); + } } - diff --git a/src/api/list/index.ts b/src/api/list/index.ts index 952d6c0..a96e3f6 100644 --- a/src/api/list/index.ts +++ b/src/api/list/index.ts @@ -133,5 +133,22 @@ export function listApi() { data, }); }, + //修改发票号和发票日期 + BatchSetFaPiao: (data: object) => { + return request({ + url: '/api/Admin/InvoiceOrder/BatchSetFaPiao', + method: 'post', + data, + }); + }, + + //删除某个发货订单明细 + DeleteOrderDetail: (data: object) => { + return request({ + url: '/api/Admin/InvoiceOrder/DeleteOrderDetail', + method: 'post', + data, + }); + }, }; } diff --git a/src/i18n/pages/materialReceiptNotice/en.ts b/src/i18n/pages/materialReceiptNotice/en.ts index 685469c..fe80d0a 100644 --- a/src/i18n/pages/materialReceiptNotice/en.ts +++ b/src/i18n/pages/materialReceiptNotice/en.ts @@ -58,6 +58,7 @@ export default { pleaseConfirmTheDateChange:' Please confirm the date change', passwordChangedFailed:'Password changed failed', shipmentQTY:'Shipment QTY', + prompt:'Tips', invoiceNumber:'Invoice number', invoiceNumber1:'Invoice #', deliveryNote1:'Delivery Note', @@ -77,14 +78,19 @@ export default { success:'Success', copy:'Copy', deleteText:'Delete', + deleteTextAll:'Delete All', scqd:'Please confirm the deletion of the delivery note?', + scqd1:'Please confirm the deletion of the Data?', receiver:'Receiver', sltzddh:'Delivery Note Number', qtxfph:'Input invoice #', fprq:'Invoice date#', qxzfprq:'Select Invoice date#', organizationCode:'Organization Code', - organizationName:'Organization Name' + organizationName:'Organization Name', + xgfphm:'Please confirm the Invoice No. modification.', + xgfprq:'Please confirm the Invoice date modification.', + cgtype:'PO Type' }, tiaoma:{ pno:'P/NO', diff --git a/src/i18n/pages/materialReceiptNotice/zh-cn.ts b/src/i18n/pages/materialReceiptNotice/zh-cn.ts index 9d677e1..35e0d47 100644 --- a/src/i18n/pages/materialReceiptNotice/zh-cn.ts +++ b/src/i18n/pages/materialReceiptNotice/zh-cn.ts @@ -78,14 +78,19 @@ export default { success:'成功', copy:'复制', deleteText:'删除', + deleteTextAll:'删除整单', scqd:'确定要删除该条送货单?', + scqd1:'确定要删除该条数据?', receiver:'接收人', sltzddh:'收料通知单单号', qtxfph:'请填写发票号', fprq:'发票日期', qxzfprq:'请选择发票日期', organizationCode:'组织代码', - organizationName:'组织名称' + organizationName:'组织名称', + xgfphm:'确定要修改此次发票号', + xgfprq:'确定要修改此次发票日期', + cgtype:'采购类型' }, tiaoma:{ pno:'物料编码', diff --git a/src/utils/LodopFuncs.js b/src/utils/LodopFuncs.js new file mode 100644 index 0000000..f9c9dbd --- /dev/null +++ b/src/utils/LodopFuncs.js @@ -0,0 +1,189 @@ +//==本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例,可直接使用,建议理解后融入自己程序== + +//用双端口加载主JS文件Lodop.js(或CLodopfuncs.js兼容老版本)以防其中某端口被占: +var MainJS ="CLodopfuncs.js", + URL_WS1 = "ws://localhost:8000/"+MainJS, //ws用8000/18000 + URL_WS2 = "ws://localhost:18000/"+MainJS, + URL_HTTP1 = "http://localhost:8000/"+MainJS, //http用8000/18000 + URL_HTTP2 = "http://localhost:18000/"+MainJS, + URL_HTTP3 = "https://localhost.lodop.net:8443/"+MainJS; //https用8000/8443 + +var CreatedOKLodopObject, CLodopIsLocal, LoadJsState; + +//==判断是否需要CLodop(那些不支持插件的浏览器):== +function needCLodop() { + try { + var ua = navigator.userAgent; + if (ua.match(/Windows\sPhone/i) || + ua.match(/iPhone|iPod|iPad/i) || + ua.match(/Android/i) || + ua.match(/Edge\D?\d+/i)) + return true; + var verTrident = ua.match(/Trident\D?\d+/i); + var verIE = ua.match(/MSIE\D?\d+/i); + var verOPR = ua.match(/OPR\D?\d+/i); + var verFF = ua.match(/Firefox\D?\d+/i); + var x64 = ua.match(/x64/i); + if ((!verTrident) && (!verIE) && (x64)) return true; + else if (verFF) { + verFF = verFF[0].match(/\d+/); + if ((verFF[0] >= 41) || (x64)) return true; + } else if (verOPR) { + verOPR = verOPR[0].match(/\d+/); + if (verOPR[0] >= 32) return true; + } else if ((!verTrident) && (!verIE)) { + var verChrome = ua.match(/Chrome\D?\d+/i); + if (verChrome) { + verChrome = verChrome[0].match(/\d+/); + if (verChrome[0] >= 41) return true; + } + } + return false; + } catch (err) { + return true; + } +} + +//==检查加载成功与否,如没成功则用http(s)再试== +//==低版本CLODOP6.561/Lodop7.043及前)用本方法== +function checkOrTryHttp() { + if (window.getCLodop) { + LoadJsState = "complete"; + return true; + } + if (LoadJsState == "loadingB" || LoadJsState == "complete") return; + LoadJsState = "loadingB"; + var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; + var JS1 = document.createElement("script") + ,JS2 = document.createElement("script") + ,JS3 = document.createElement("script"); + JS1.src = URL_HTTP1; + JS2.src = URL_HTTP2; + JS3.src = URL_HTTP3; + JS1.onload = JS2.onload = JS3.onload = JS2.onerror = JS3.onerror=function(){LoadJsState = "complete";} + JS1.onerror = function(e) { + if (window.location.protocol !== 'https:') + head.insertBefore(JS2, head.firstChild); else + head.insertBefore(JS3, head.firstChild); + } + head.insertBefore(JS1,head.firstChild); +} + +//==加载Lodop对象的主过程:== +(function loadCLodop(){ + if (!needCLodop()) return; + CLodopIsLocal = !!((URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i)); + LoadJsState = "loadingA"; + + if (!window.WebSocket && window.MozWebSocket) window.WebSocket=window.MozWebSocket; + //ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新: + try { + var WSK1=new WebSocket(URL_WS1); + WSK1.onopen = function(e) { setTimeout(checkOrTryHttp,200); } + WSK1.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} + WSK1.onerror = function(e) { + var WSK2=new WebSocket(URL_WS2); + WSK2.onopen = function(e) {setTimeout(checkOrTryHttp,200);} + WSK2.onmessage = function(e) {if (!window.getCLodop) eval(e.data);} + WSK2.onerror= function(e) {checkOrTryHttp();} + } + } catch(e){ + checkOrTryHttp(); + } +})(); + +//==获取LODOP对象主过程,判断是否安装、需否升级:== +function getLodop(oOBJECT, oEMBED) { + var strFontTag = "
打印控件"; + var strLodopInstall = strFontTag + "未安装!点击这里执行安装"; + var strLodopUpdate = strFontTag + "需要升级!点击这里执行升级"; + var strLodop64Install = strFontTag + "未安装!点击这里执行安装"; + var strLodop64Update = strFontTag + "需要升级!点击这里执行升级"; + var strCLodopInstallA = "
Web打印服务CLodop未安装启动,点击这里下载执行安装"; + var strCLodopInstallB = "
(若此前已安装过,可点这里直接再次启动)"; + var strCLodopUpdate = "
Web打印服务CLodop需升级!点击这里执行升级"; + var strLodop7FontTag = "
Web打印服务Lodop7"; + var strLodop7HrefX86 = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7HrefARM = "点击这里下载安装(下载后解压,点击lodop文件开始执行)"; + var strLodop7Install_X86 = strLodop7FontTag + "未安装启动," + strLodop7HrefX86; + var strLodop7Install_ARM = strLodop7FontTag + "未安装启动," + strLodop7HrefARM; + var strLodop7Update_X86 = strLodop7FontTag + "需升级," + strLodop7HrefX86; + var strLodop7Update_ARM = strLodop7FontTag + "需升级," + strLodop7HrefARM; + var strInstallOK = ",成功后请刷新本页面或重启浏览器。"; + var LODOP; + try { + var isWinIE = (/MSIE/i.test(navigator.userAgent)) || (/Trident/i.test(navigator.userAgent)); + var isWinIE64 = isWinIE && (/x64/i.test(navigator.userAgent)); + var isLinuxX86 = (/Linux/i.test(navigator.platform)) && (/x86/i.test(navigator.platform)); + var isLinuxARM = (/Linux/i.test(navigator.platform)) && (/aarch/i.test(navigator.platform)); + + if (needCLodop() || isLinuxX86 || isLinuxARM) { + try { + LODOP = window.getCLodop(); + } catch (err) {} + if (!LODOP && LoadJsState !== "complete") { + if (!LoadJsState) + alert("未曾加载Lodop主JS文件,请先调用loadCLodop过程."); else + alert("网页还没下载完毕,请稍等一下再操作."); + return; + } + var strAlertMessage; + if (!LODOP) { + if (isLinuxX86) + strAlertMessage = strLodop7Install_X86; + else if (isLinuxARM) + strAlertMessage = strLodop7Install_ARM; + else + strAlertMessage = strCLodopInstallA + (CLodopIsLocal ? strCLodopInstallB : ""); + document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + return; + } else { + if (isLinuxX86 && LODOP.CVERSION < "7.1.0.1") + strAlertMessage = strLodop7Update_X86; + else if (isLinuxARM && LODOP.CVERSION < "7.1.0.1") + strAlertMessage = strLodop7Update_ARM; + else if (CLODOP.CVERSION < "6.6.2.1") + strAlertMessage = strCLodopUpdate; + + if (strAlertMessage) + document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML; + } + } else { + //==如果页面有Lodop插件就直接使用,否则新建:== + if (oOBJECT || oEMBED) { + if (isWinIE) + LODOP = oOBJECT; + else + LODOP = oEMBED; + } else if (!CreatedOKLodopObject) { + LODOP = document.createElement("object"); + LODOP.setAttribute("width", 0); + LODOP.setAttribute("height", 0); + LODOP.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;"); + if (isWinIE) + LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA"); + else + LODOP.setAttribute("type", "application/x-print-lodop"); + document.documentElement.appendChild(LODOP); + CreatedOKLodopObject = LODOP; + } else + LODOP = CreatedOKLodopObject; + //==Lodop插件未安装时提示下载地址:== + if ((!LODOP) || (!LODOP.VERSION)) { + document.body.innerHTML = (isWinIE64 ? strLodop64Install : strLodopInstall) + strInstallOK + document.body.innerHTML; + return LODOP; + } + if (LODOP.VERSION < "6.2.2.6") { + document.body.innerHTML = (isWinIE64 ? strLodop64Update : strLodopUpdate) + strInstallOK + document.body.innerHTML; + } + } + //===如下空白位置适合调用统一功能(如注册语句、语言选择等):====================== + LODOP.SET_LICENSES("","8B7A45DAE7262E36A87452727380929E9FC","",""); + //=============================================================================== + return LODOP; + } catch (err) { + alert("getLodop出错:" + err); + } +} + +export { getLodop } diff --git a/src/views/materialReceiptNotice/componentPrinting.vue b/src/views/materialReceiptNotice/componentPrinting.vue index 8ac41c0..764b0b2 100644 --- a/src/views/materialReceiptNotice/componentPrinting.vue +++ b/src/views/materialReceiptNotice/componentPrinting.vue @@ -1,6 +1,6 @@