2 lines
3.7 KiB
Java
2 lines
3.7 KiB
Java
var S=(f,w,s)=>new Promise((_,i)=>{var d=o=>{try{c(s.next(o))}catch(n){i(n)}},y=o=>{try{c(s.throw(o))}catch(n){i(n)}},c=o=>o.done?_(o.value):Promise.resolve(o.value).then(d,y);c((s=s.apply(f,w)).next())});import{M as I,s as B,aH as J,bL as T,aE as D,x as H,au as V}from"./index-X7Y8jykP.js";import{p as O}from"./MesRawMaterialInspectStd.api-CTjxGsjY.js";import{n as R,r as z}from"./nativeSchemaNormalize-WzV7gGZh.js";import{e as A,h as L,y as M,z as m,A as u,c as k,K as $,f as v,Q as G,r as h,C as g,G as K,H as Q,E as x,u as U}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./browser-D2DxMZOB.js";import"./tableMerge-CpKVscEF.js";import"./tableBuilder-lOY0L2dW.js";import"./freeTableGrid-BXWKfNhh.js";import"./freeTableBorders-i5ck0FPH.js";import"./freeTableTracks--U1Y5u-V.js";import"./barcodeRenderer-cjxjmb-t.js";const W={key:0,class:"preview-error"},j={key:1,class:"preview-body"},q=["srcdoc"],F={class:"preview-footer"},X=A({__name:"MesRawMaterialInspectStdPrintPreviewModal",props:{open:{type:Boolean},stdId:{},standardNo:{}},emits:["update:open"],setup(f,{emit:w}){const s=f,_=w,{createMessage:i}=B(),d=k({get:()=>s.open,set:t=>_("update:open",t)}),y=k(()=>{const t=String(s.standardNo||"").trim();return t?`原材料检验标准打印预览(标准编号:${t})`:"原材料检验标准打印预览"}),c=h(!1),o=h(""),n=h("");function P(t){return S(this,null,function*(){c.value=!0,o.value="",n.value="";try{const e=yield O(t),a=e.templateJson,l=e.printData;if(!a)throw new Error("模板 JSON 为空,请检查「业务打印绑定」是否已配置");let p;try{p=typeof a=="string"?JSON.parse(a):a}catch(C){throw new Error("模板 JSON 格式错误")}const r=R(p);n.value=yield z(r,l)}catch(e){o.value=e instanceof Error?e.message:String(e)}finally{c.value=!1}})}function E(){const t=n.value;if(!(t!=null&&t.trim())){i.warning("预览未就绪,请稍后再试");return}const e=document.createElement("iframe");e.setAttribute("style","position:fixed;left:0;top:0;width:0;height:0;border:0;opacity:0;pointer-events:none;"),document.body.appendChild(e);const a=e.contentDocument;if(!a){document.body.removeChild(e),i.error("无法创建打印文档");return}try{a.open(),a.write(t),a.close()}catch(r){document.body.removeChild(e),i.error("写入打印内容失败");return}const l=()=>{try{e.parentNode&&document.body.removeChild(e)}catch(r){}},p=()=>{try{const r=e.contentWindow;if(!r){i.error("无法唤起打印窗口"),l();return}r.focus(),r.print(),r.addEventListener("afterprint",l,{once:!0}),window.setTimeout(l,12e4)}catch(r){i.error("无法唤起打印,请检查浏览器弹窗/打印权限"),l()}};window.setTimeout(p,100)}function b(){o.value="",n.value=""}return L(()=>[s.open,s.stdId],([t,e])=>{t&&e&&P(e),t||b()}),(t,e)=>{const a=T,l=J,p=$("a-button"),r=D,C=I;return m(),M(C,{open:d.value,"onUpdate:open":e[1]||(e[1]=N=>d.value=N),title:y.value,width:"960px",footer:null,"destroy-on-close":"","wrap-class-name":"mes-raw-material-inspect-std-print-preview-modal",onCancel:b},{default:u(()=>[v(l,{spinning:c.value},{default:u(()=>[o.value?(m(),g("div",W,K(o.value),1)):(m(),g("div",j,[n.value?(m(),g("iframe",{key:0,class:"preview-iframe",title:"原材料检验标准打印预览",srcdoc:n.value},null,8,q)):c.value?Q("",!0):(m(),M(a,{key:1,description:"暂无预览内容"}))]))]),_:1},8,["spinning"]),G("div",F,[v(r,null,{default:u(()=>[v(p,{onClick:e[0]||(e[0]=N=>d.value=!1)},{default:u(()=>[...e[2]||(e[2]=[x("关闭",-1)])]),_:1}),v(p,{type:"primary",disabled:!n.value||!!o.value,onClick:E},{default:u(()=>[v(U(H),{icon:"ant-design:printer-outlined"}),e[3]||(e[3]=x(" 浏览器打印 ",-1))]),_:1},8,["disabled"])]),_:1})])]),_:1},8,["open","title"])}}}),de=V(X,[["__scopeId","data-v-c2d5daee"]]);export{de as default};
|