2 lines
40 KiB
Java
2 lines
40 KiB
Java
var Ea=Object.defineProperty;var yt=Object.getOwnPropertySymbols;var Fa=Object.prototype.hasOwnProperty,Ha=Object.prototype.propertyIsEnumerable;var bt=(L,g,M)=>g in L?Ea(L,g,{enumerable:!0,configurable:!0,writable:!0,value:M}):L[g]=M,W=(L,g)=>{for(var M in g||(g={}))Fa.call(g,M)&&bt(L,M,g[M]);if(yt)for(var M of yt(g))Ha.call(g,M)&&bt(L,M,g[M]);return L};var K=(L,g,M)=>new Promise((h,m)=>{var A=k=>{try{E(M.next(k))}catch(F){m(F)}},V=k=>{try{E(M.throw(k))}catch(F){m(F)}},E=k=>k.done?h(k.value):Promise.resolve(k.value).then(A,V);E((M=M.apply(L,g)).next())});import{e as Ba,r as d,h as De,o as Oa,d as Ra,C as ae,z as U,Q as p,f as l,H as q,G as Ee,A as f,b as Wa,u as I,K as Ua,T as Ae,J as wt,c as B,R as ie,W as Ja,p as ja,E as S,y as Mt,n as Ze}from"./vue-vendor-DNhG1Cve.js";import{ft as $a,aE as Ya,aG as Ka,M as qa,s as Va,av as Xa,aU as Za,aX as Ga,bR as Qa,dQ as en,T as tn,x as xt,J as an,au as nn}from"./index-X7Y8jykP.js";import{f as on,e as rn,a as sn,b as ln,h as un}from"./printTemplate.api-Dfuyi-ab.js";import mn from"./DesignerCanvas-CVUk93NN.js";import dn from"./FreeTableCellEditModal-p8rtTQ6C.js";import fn from"./PageConfigModal-bGksSBy0.js";import pn from"./PropertiesPanel-BORTtea0.js";import vn from"./ToolbarPalette-BPSHXZtR.js";import{P as Ge,f as cn,p as gn}from"./printNativeViaPrintDot-hFBchMti.js";import{u as hn,r as Qe,b as yn,c as bn,n as wn,a as St}from"./nativeSchemaNormalize-WzV7gGZh.js";import{g as Mn,b as xn}from"./nativeMockData-D5nIVXYv.js";import{n as Sn}from"./freeTableGrid-BXWKfNhh.js";import{m as An}from"./freeTableTracks--U1Y5u-V.js";import _n from"./index-DklMb9Qc.js";import zn from"./index-saD4h7VJ.js";import{D as Cn}from"./index-DZJwICFr.js";import{b as Nn}from"./index-CeNCCWzL.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./ElementWrapper-CA62vlXa.js";import"./TextElement.vue_vue_type_script_setup_true_lang-Dp44opX3.js";import"./ImageElement-CjUO2lPv.js";import"./TableElement-kNOZl-_Z.js";import"./browser-D2DxMZOB.js";import"./tableMerge-CpKVscEF.js";import"./tableBuilder-lOY0L2dW.js";import"./FreeTableElement-BlpUN_ga.js";import"./freeTableBorders-i5ck0FPH.js";import"./QrcodeElement-DB89VUPw.js";import"./BarcodeElement-CA6dHxwg.js";import"./barcodeRenderer-cjxjmb-t.js";import"./index-CuWaQdlK.js";import"./index-DO7ZhK45.js";import"./UpOutlined-B1UMbtrP.js";import"./TableHeaderConfigEditor-hIJ4y7ro.js";import"./index-DSsDi_fL.js";import"./Group-UHkub2tu.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";import"./index-DsixALRt.js";import"./BindingDetailFieldsEditor-ilFMi7Vw.js";import"./index-DTjkSGYl.js";import"./eagerComputed-BTlOruLW.js";import"./fromPairs-Dx9PT-t0.js";import"./useMaxLevel-DE205ncc.js";import"./index-CfNJyBRj.js";import"./dropdown-jkliuVyN.js";import"./index-DfHu-LAS.js";import"./Group-DBzJABA_.js";import"./RadioButton-DRBix2Fq.js";import"./index-C7ckZv9Z.js";import"./DirectoryTree-nk_YTTIy.js";import"./FolderOpenOutlined-SzIPA7z0.js";import"./index-Cl-8Hzo4.js";import"./scrollTo-D49dA-9c.js";import"./operationUnit-vCu2co3e.js";import"./BindingParamsEditor-CYr4nMsu.js";import"./isNumeric-DjvBa-1E.js";let et=!1;function Tn(L){if(et)return;et=!0;const g=document.createElement("iframe");g.style.position="fixed",g.style.right="0",g.style.bottom="0",g.style.width="0",g.style.height="0",g.style.border="0",g.style.opacity="0",g.setAttribute("aria-hidden","true"),g.setAttribute("sandbox","allow-modals allow-same-origin");let M=!1,h=!1,m=0;const A=()=>{h||(h=!0,m&&window.clearTimeout(m),g.removeEventListener("load",V),setTimeout(()=>{g.remove(),et=!1},0))},V=()=>{if(M)return;M=!0;const E=g.contentWindow;if(!E){A();return}const k=()=>{E.removeEventListener("afterprint",k),A()};E.addEventListener("afterprint",k),setTimeout(()=>{E.focus(),E.print()},50)};g.addEventListener("load",V),g.srcdoc=L,document.body.appendChild(g),m=window.setTimeout(()=>{A()},60*1e3)}const In={class:"native-designer-page"},Pn={class:"designer-toolbar"},Ln={class:"toolbar-left"},kn={key:0,class:"tip"},Dn={class:"designer-meta"},En={class:"designer-meta__grid"},Fn={class:"designer-meta__actions"},Hn={class:"designer-main"},Bn={class:"left-panel"},On={class:"json-template-pane"},Rn={class:"json-mock-toolbar"},Wn={class:"center-panel"},Un={class:"right-panel"},Jn={class:"native-instant-preview-host"},jn=["srcdoc"],$n={class:"image-analyze-body"},Yn=["disabled"],Kn={key:0,class:"image-analyze-progress"},qn={class:"image-analyze-progress-tip"},Vn={key:1,class:"image-analyze-hint"},Xn={key:3,class:"image-analyze-preview-wrap"},Zn={key:0,class:"image-analyze-thumb"},Gn=["src"],Qn={class:"image-analyze-preview-frame-wrap"},eo={class:"image-analyze-preview-toolbar"},to={class:"image-analyze-zoom-pct"},ao={key:0,class:"image-analyze-preview-scroll"},no={class:"image-analyze-zoom-slot"},oo=["srcdoc"],ro=680,io=1680,tt=400,At=960,_t=96/25.4,zt=1.12,so=.25,lo=4,at="qhmes-native-print-left-panel-w",_e=260,nt=640,ot=360,Ct=96,uo="拖动调整左侧工具栏宽度;拖至极窄可隐藏。双击收起或恢复。",mo=96/25.4,fo=Ba({name:"NativePrintDesigner",__name:"NativePrintDesigner",setup(L){const g=ja(),M=Ja(),{createMessage:h}=Va(),{state:m,selectedElement:A,setSchema:V,patchDataBinding:E,addElement:k,updateElement:F,setSelected:ne,removeSelected:Nt,duplicateSelected:Tt,bringForward:It,sendBackward:Pt,setScale:Lt,serialize:kt}=hn(),se=d(""),Fe=d(!1),He=d(!1),ze=d(!1),Be=d([]),Ce=d(localStorage.getItem(Ge)||"__system_default__"),Dt=B(()=>{const t=[{label:"系统默认打印机",value:"__system_default__"}],e=new Set(["__system_default__"]);return Be.value.forEach(n=>{const r=String(n.name||"").trim();!r||e.has(r)||(e.add(r),t.push({label:n.isDefault?`${r}(PrintDot 默认)`:r,value:r}))}),t});De(Ce,t=>{if(!t){localStorage.removeItem(Ge);return}localStorage.setItem(Ge,t)});function rt(t=!0){return K(this,null,function*(){ze.value=!0;try{const e=yield cn();Be.value=e,t&&h.success(`PrintDot 已连接,共 ${e.length} 台打印机`)}catch(e){Be.value=[],t&&h.warning((e==null?void 0:e.message)||"无法连接 PrintDot,请确认本机客户端已启动")}finally{ze.value=!1}})}const Oe=d(!1),Re=d(""),C=d(null),b=d(null),z=d(null),le=d(!1),de=d(null),We=d(!1),ue=d(!1),_=d(!1),T=d(0),X=d("正在准备上传…");let Ne=null,Z=0;const Te=d(""),G=d(""),O=d(""),fe=d(null),pe=d(""),me=d(!1),it=d(null),Ie=d(1e3),ve=d(760),st=d(null),Ue=d(null),ce=d({w:0,h:0}),J=d(1),ge=d(1),Et=B(()=>({padding:"12px 16px 22px",maxHeight:`${ve.value}px`,overflow:"auto",position:"relative"})),Ft=B(()=>Math.max(200,ve.value-280));function Ht(){try{return JSON.parse(pe.value||"{}")}catch(t){return{}}}function Bt(t){const e=t.body;let n=1/0,r=0,a=1/0,u=0;const s=x=>{if(x instanceof HTMLElement){const y=x.getBoundingClientRect();y.height>.5&&y.width>.5&&(n=Math.min(n,y.top),r=Math.max(r,y.bottom),a=Math.min(a,y.left),u=Math.max(u,y.right))}for(let y=0;y<x.children.length;y++)s(x.children[y])};s(e);const o=Number.isFinite(n)&&r>0?{w:Math.ceil(u-a+6),h:Math.ceil(r-n+12)}:{w:0,h:0},v=Math.max(t.documentElement.scrollHeight,e.scrollHeight,o.h),i=Math.max(t.documentElement.scrollWidth,e.scrollWidth,o.w);return{w:Math.ceil(i),h:Math.ceil(v)}}const Ot=B(()=>{var o,v;const t=fe.value;if(!t)return null;const e=Ht(),n=Math.max(1,St(t,e)),r=Number(((o=t.page)==null?void 0:o.width)||210),a=Number(((v=t.page)==null?void 0:v.height)||297),u=r*_t,s=a*n*_t;return{wPx:u,hPx:s,pageCount:n}}),j=B(()=>{const t=Ot.value;if(!t)return null;const e=ce.value;return{wPx:Math.max(t.wPx,e.w||0),hPx:Math.max(t.hPx,e.h||0)}}),Je=B(()=>{const t=ge.value*J.value;return!Number.isFinite(t)||t<=0?1:Math.min(4,Math.max(.08,t))}),Rt=B(()=>`${Math.round(J.value*100)}%`);function Wt(){const t=Ue.value,e=j.value;if(!t||!e){ge.value=1;return}const n=16,r=Math.max(0,t.clientWidth-n),a=Math.max(0,t.clientHeight-n);if(r<=0||a<=0||e.wPx<=0||e.hPx<=0){ge.value=1;return}const u=Math.min(r/e.wPx,a/e.hPx,1)*.96;ge.value=Number.isFinite(u)&&u>0?u:1}const oe=an(()=>{Wt()},120);function Ut(){Ze(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{var e;const t=(e=st.value)==null?void 0:e.contentDocument;if(!(t!=null&&t.body)){ce.value={w:0,h:0},oe();return}ce.value=Bt(t),oe()})})})}function Jt(){J.value=Math.min(lo,J.value*zt)}function jt(){J.value=Math.max(so,J.value/zt)}function $t(){J.value=1,oe()}function Yt(){const t=typeof window!="undefined"?window.innerHeight:900;Ie.value=1e3,ve.value=Math.min(At,Math.max(tt,t-140)),J.value=1,ge.value=1,ce.value={w:0,h:0}}function lt(t,e,n){return Math.min(n,Math.max(e,t))}function Kt(t){if(t.button!==0)return;const e=t.clientX,n=t.clientY,r=Ie.value,a=ve.value,u=typeof window!="undefined"?window.innerHeight:900,s=Math.min(At,Math.max(tt,u-100));function o(i){const x=i.clientX-e,y=i.clientY-n;Ie.value=Math.round(lt(r+x,ro,io)),ve.value=Math.round(lt(a+y,tt,s)),oe()}function v(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",v)}document.addEventListener("mousemove",o),document.addEventListener("mouseup",v)}let he=null;function je(){he==null||he(),he=null}function qt(){const t=document.querySelectorAll(".ant-modal-wrap.native-print-image-analyze-modal");for(let e=t.length-1;e>=0;e--){const n=t[e];if(getComputedStyle(n).display!=="none")return n}return null}function Vt(){je();const t=qt();if(!t)return;const e=t.querySelector(".ant-modal-header"),n=t.querySelector(".ant-modal");if(!e||!n)return;e.style.cursor="move";const r=(u,s)=>getComputedStyle(u)[s],a=u=>{if(u.button!==0)return;const s=u.clientX,o=u.clientY,v=document.body.clientWidth,i=document.documentElement.clientHeight,x=n.offsetWidth,y=n.offsetHeight,D=n.offsetLeft,$=v-n.offsetLeft-x,Q=n.offsetTop;let ee=i-n.offsetTop-y;ee<0&&(ee=i-n.offsetTop);const R=r(n,"left"),Y=r(n,"top");let N=+R,te=+Y;R.includes("%")?(N=+document.body.clientWidth*(+R.replace(/%/g,"")/100),te=+document.body.clientHeight*(+Y.replace(/%/g,"")/100)):(N=+String(R).replace(/px/g,""),te=+String(Y).replace(/px/g,"")),Number.isFinite(N)||(N=n.offsetLeft||0),Number.isFinite(te)||(te=n.offsetTop||0);function Me(ht){let xe=ht.clientX-s,Se=ht.clientY-o;-xe>D?xe=-D:xe>$&&(xe=$),-Se>Q?Se=-Q:Se>ee&&(Se=ee),n.style.left=`${xe+N}px`,n.style.top=`${Se+te}px`}function c(){document.removeEventListener("mousemove",Me),document.removeEventListener("mouseup",c)}document.addEventListener("mousemove",Me),document.addEventListener("mouseup",c)};e.addEventListener("mousedown",a),he=()=>{e.removeEventListener("mousedown",a),e.style.cursor=""}}$a(Ue,()=>{G.value&&oe()}),De(()=>ue.value,t=>{t?Ze(()=>{setTimeout(()=>Vt(),40),setTimeout(()=>oe(),100)}):je()}),De(()=>{var t;return[G.value,(t=j.value)==null?void 0:t.wPx]},()=>{G.value&&j.value&&Ze(()=>oe())});const P=d(ot),Pe=d(ot);let Le=!1,ut=0,mt=0;const Xt=B(()=>({width:P.value<=0?"0px":`${P.value}px`}));function Zt(t){t.button===0&&(t.preventDefault(),Le=!0,ut=t.clientX,mt=P.value,window.addEventListener("mousemove",dt),window.addEventListener("mouseup",$e),document.body.style.cursor="col-resize",document.body.style.userSelect="none")}function dt(t){if(!Le)return;const e=t.clientX-ut;let n=mt+e;n=Math.max(0,Math.min(nt,n)),P.value=n}function $e(){if(!Le)return;Le=!1,window.removeEventListener("mousemove",dt),window.removeEventListener("mouseup",$e),document.body.style.cursor="",document.body.style.userSelect="";let t=P.value;t>0&&t<Ct?t=0:t>=Ct&&t<_e&&(t=_e),t>0&&(Pe.value=t),P.value=t;try{localStorage.setItem(at,String(t))}catch(e){}}function Gt(){if(P.value<=0){const t=Math.min(nt,Math.max(_e,Pe.value||ot));P.value=t}else Pe.value=Math.max(P.value,_e),P.value=0;try{localStorage.setItem(at,String(P.value))}catch(t){}}De(le,t=>{t||(de.value=null)});const Ye=d("body"),ft=d("template"),ke=d("manual"),re=d("{}"),ye=d("{}"),be=d("{}"),w=Wa({templateCode:`NATIVE_${Date.now()}`,templateName:"原生打印模板",category:"form",remark:"原生设计器模板"}),Qt=B(()=>ke.value==="mock"?ye.value:re.value),we=B(()=>{try{return JSON.parse(Qt.value||"{}")}catch(t){return{}}}),ea=B(()=>{var u;const t=m==null?void 0:m.schema,e=Number((u=t==null?void 0:t.page)==null?void 0:u.heightMm);if(!(t!=null&&t.page)||!Number.isFinite(e)||e<=0)return 900;const n=Math.max(1,St(t,we.value));return Math.round(n*e*mo+(n-1)*12+48)});function pt(t={}){const{syncManual:e=!1,showMessage:n=!0}=t,r=Mn(m.schema.elements,be.value),a=JSON.stringify(r,null,2);ye.value=a,(e||!String(re.value||"").trim()||re.value==="{}")&&(re.value=a),n&&h.success("已根据画布组件生成模拟数据 JSON")}function ta(t){var u,s;const e=String((t==null?void 0:t.component)||"text"),n=(t==null?void 0:t.rect)||{},r={id:String((t==null?void 0:t.id)||`${e}_${Math.random().toString(36).slice(2,8)}`),type:e,bindField:String((t==null?void 0:t.bindField)||""),region:(t==null?void 0:t.region)||"",bandId:String((t==null?void 0:t.bandId)||""),x:Number((n==null?void 0:n.x)||0),y:Number((n==null?void 0:n.y)||0),w:Number((n==null?void 0:n.w)||40),h:Number((n==null?void 0:n.h)||12),zIndex:Number((n==null?void 0:n.zIndex)||1),style:(t==null?void 0:t.style)||{}},a=(t==null?void 0:t.payload)||{};if(e==="image")return r.src=a.src||"",r.fit=a.fit||"contain",r;if(e==="table"||e==="detailTable")return r.source=a.source||(e==="detailTable"?"detailList":"mainTable"),r.mergeColumnKeys=Array.isArray(a==null?void 0:a.mergeColumnKeys)?a.mergeColumnKeys.map(o=>String(o||"")):[],r.strictGrouping=(a==null?void 0:a.strictGrouping)!==!1,r.enableMultiHeader=a.enableMultiHeader===!0,r.tableHeightMode=a.tableHeightMode||"autoPage",r.fixedRows=Number(a.fixedRows||5),r.showHeader=a.showHeader!==!1,r.rowHeight=Number(a.rowHeight||8),r.headerHeight=Number(a.headerHeight||10),r.headerFontSize=Number(a.headerFontSize||12),r.bodyFontSize=Number(a.bodyFontSize||12),r.headerBgColor=a.headerBgColor||"#f5f5f5",r.headerTextColor=a.headerTextColor||"#111111",r.footerLabelColumnKey=a.footerLabelColumnKey||"",r.footerLabelText=a.footerLabelText||"合计",r.footerLabelCenter=a.footerLabelCenter!==!1,r.footerShowTotal=a.footerShowTotal!==!1,r.footerTotalMode=a.footerTotalMode==="page"?"page":"overall",r.headerConfig=a!=null&&a.headerConfig&&Array.isArray((u=a.headerConfig)==null?void 0:u.cells)?{rowCount:Math.max(1,Number(a.headerConfig.rowCount||1)),colCount:Math.max(1,Number(a.headerConfig.colCount||1)),cells:a.headerConfig.cells.map((o,v)=>({id:String((o==null?void 0:o.id)||`h_${v}`),row:Math.max(0,Number((o==null?void 0:o.row)||0)),col:Math.max(0,Number((o==null?void 0:o.col)||0)),rowspan:Math.max(1,Number((o==null?void 0:o.rowspan)||1)),colspan:Math.max(1,Number((o==null?void 0:o.colspan)||1)),title:String((o==null?void 0:o.title)||""),align:String((o==null?void 0:o.align)||"center")}))}:void 0,r.columns=Array.isArray(a.columns)?a.columns.map((o,v)=>{var i;return{key:(o==null?void 0:o.key)||`col_${v+1}`,title:(o==null?void 0:o.title)||`列${v+1}`,field:(o==null?void 0:o.field)||`field${v+1}`,bindField:(o==null?void 0:o.bindField)||(o==null?void 0:o.field)||`field${v+1}`,width:Number((o==null?void 0:o.width)||30),align:(o==null?void 0:o.align)||"left",contentType:(o==null?void 0:o.contentType)||"text",fontFamily:(o==null?void 0:o.fontFamily)||"",fontSize:Number((o==null?void 0:o.fontSize)||12),useCustomFontSize:!!(o!=null&&o.useCustomFontSize),fontColor:(o==null?void 0:o.fontColor)||"#111111",autoFitFont:!!(o!=null&&o.autoFitFont),autoWrap:(o==null?void 0:o.autoWrap)!==!1,fillCell:(o==null?void 0:o.fillCell)!==!1,contentScale:Number((o==null?void 0:o.contentScale)||100),imageFit:(o==null?void 0:o.imageFit)||"contain",qrLevel:(o==null?void 0:o.qrLevel)||"M",qrRenderType:(o==null?void 0:o.qrRenderType)||"image/png",barcodeFormat:(o==null?void 0:o.barcodeFormat)||"CODE128",decimalPlaces:Number((i=o==null?void 0:o.decimalPlaces)!=null?i:2),roundHalfUp:(o==null?void 0:o.roundHalfUp)!==!1,amountType:(o==null?void 0:o.amountType)||"CNY",enableFooterTotal:!!(o!=null&&o.enableFooterTotal),mergeByValue:!!(o!=null&&o.mergeByValue)}}):[],(s=r.mergeColumnKeys)!=null&&s.length||(r.mergeColumnKeys=(r.columns||[]).filter(o=>o==null?void 0:o.mergeByValue).map(o=>String((o==null?void 0:o.key)||""))),r;if(e==="freeTable"){const o=Math.max(1,Number((a==null?void 0:a.rowCount)||3)),v=Math.max(1,Number((a==null?void 0:a.colCount)||3));return r.rowCount=o,r.colCount=v,r.borderColor=String((a==null?void 0:a.borderColor)||"#d9d9d9"),r.borderWidth=Math.max(1,Number((a==null?void 0:a.borderWidth)||1)),r.outerBorderLineStyle=(a==null?void 0:a.outerBorderLineStyle)||"solid",r.innerBorderHorizontalLineStyle=(a==null?void 0:a.innerBorderHorizontalLineStyle)||"solid",r.innerBorderVerticalLineStyle=(a==null?void 0:a.innerBorderVerticalLineStyle)||"solid",Array.isArray(a==null?void 0:a.colWidths)&&(r.colWidths=a.colWidths.map(i=>Number(i))),Array.isArray(a==null?void 0:a.rowHeights)&&(r.rowHeights=a.rowHeights.map(i=>Number(i))),a!=null&&a.outerBorder&&typeof a.outerBorder=="object"&&(r.outerBorder=W({},a.outerBorder)),a!=null&&a.innerBorder&&typeof a.innerBorder=="object"&&(r.innerBorder=W({},a.innerBorder)),r.printRepeated=a.printRepeated===!0,r.cells=Array.isArray(a==null?void 0:a.cells)?a.cells.map(i=>({row:Math.max(0,Number((i==null?void 0:i.row)||0)),col:Math.max(0,Number((i==null?void 0:i.col)||0)),rowspan:Math.max(1,Number((i==null?void 0:i.rowspan)||1)),colspan:Math.max(1,Number((i==null?void 0:i.colspan)||1)),text:String((i==null?void 0:i.text)||""),bindField:String((i==null?void 0:i.bindField)||""),contentType:(i==null?void 0:i.contentType)||"text",fillCell:i==null?void 0:i.fillCell,contentScale:(i==null?void 0:i.contentScale)!=null?Number(i.contentScale):void 0,imageFit:i==null?void 0:i.imageFit,qrLevel:i==null?void 0:i.qrLevel,qrRenderType:i==null?void 0:i.qrRenderType,barcodeFormat:i==null?void 0:i.barcodeFormat,decimalPlaces:(i==null?void 0:i.decimalPlaces)!=null?Number(i.decimalPlaces):void 0,roundHalfUp:i==null?void 0:i.roundHalfUp,amountType:i==null?void 0:i.amountType,autoWrap:i==null?void 0:i.autoWrap,autoFitFont:i==null?void 0:i.autoFitFont,align:String((i==null?void 0:i.align)||"left"),verticalAlign:String((i==null?void 0:i.verticalAlign)||"middle"),fontSize:Math.max(8,Number((i==null?void 0:i.fontSize)||12)),color:String((i==null?void 0:i.color)||"#111111"),backgroundColor:String((i==null?void 0:i.backgroundColor)||"#ffffff"),hideBorderTop:(i==null?void 0:i.hideBorderTop)===!0,hideBorderRight:(i==null?void 0:i.hideBorderRight)===!0,hideBorderBottom:(i==null?void 0:i.hideBorderBottom)===!0,hideBorderLeft:(i==null?void 0:i.hideBorderLeft)===!0})).filter(i=>i.row<o&&i.col<v&&i.row+i.rowspan<=o&&i.col+i.colspan<=v):[],r}return e==="qrcode"||e==="barcode"?(r.value=a.value||"",e==="barcode"&&(r.format=a.format||"CODE128",r.displayValue=a.displayValue!==!1,r.textAlign=a.textAlign||"center"),r):e==="reportHeader"||e==="reportFooter"?(r.region=(t==null?void 0:t.region)||(e==="reportHeader"?"header":"footer"),r.text=a.text||"",r.bookmarkText=a.bookmarkText||"",r.keepTogether=a.keepTogether!==!1,r.centerWithDetail=a.centerWithDetail!==!1,r.refreshPage=a.refreshPage||"none",r.visible=a.visible!==!1,r.stretch=a.stretch===!0,r.shrink=a.shrink===!0,r.printRepeated=a.printRepeated===!0,r.printAtPageBottom=a.printAtPageBottom===!0,r.removeBlankWhenNoData=a.removeBlankWhenNoData===!0,r):(r.text=a.text||"",a.format&&(r.format=a.format),r)}function aa(){return{fieldMap:{},tableSources:["mainTable","detailList"],params:[],detailTables:[]}}function H(){const t=xn(m.schema);be.value=JSON.stringify(t,null,2)}function na(t){E(t),H()}function oa(){var t,e,n,r;try{const a=JSON.parse(be.value||"{}");if(!Array.isArray(a==null?void 0:a.elements)||!(a!=null&&a.page)){h.warning("实际 JSON 格式无效,缺少 page 或 elements");return}const u=a.dataBinding||{},s=m.schema.dataBinding||aa(),o={engine:"native",version:"1.0.0",page:{width:Number(((t=a.page)==null?void 0:t.width)||210),height:Number(((e=a.page)==null?void 0:e.height)||297),unit:"mm",margin:Array.isArray((n=a.page)==null?void 0:n.margin)?a.page.margin:[10,10,10,10],gridSize:Number(((r=a.page)==null?void 0:r.gridSize)||2)},elements:a.elements.map(v=>ta(v)),dataBinding:{fieldMap:W(W({},s.fieldMap||{}),u.fieldMap||{}),tableSources:Array.isArray(u.tableSources)&&u.tableSources.length?[...u.tableSources]:s.tableSources||["mainTable","detailList"],params:Array.isArray(u.params)?[...u.params]:s.params||[],detailTables:Array.isArray(u.detailTables)?u.detailTables.map(v=>({tableKey:String(v.tableKey||""),label:v.label?String(v.label):void 0,fields:Array.isArray(v.fields)?v.fields.map(i=>({key:String(i.key||""),label:i.label?String(i.label):void 0})):[]})):s.detailTables||[]}};V(o),H(),h.success("已按实际 JSON 还原画布模板样式")}catch(a){h.error(`应用失败:${(a==null?void 0:a.message)||"JSON格式错误"}`)}}function ra(){return K(this,null,function*(){const t=String(M.query.id||"");if(!t)return;const e=yield on(t);if(se.value=String(e.id||t),w.templateCode=String(e.templateCode||w.templateCode),w.templateName=String(e.templateName||w.templateName),w.category=String(e.category||"form"),w.remark=String(e.remark||""),e.templateJson){const n=JSON.parse(e.templateJson);if((n==null?void 0:n.engine)==="native"){const r=Number(e.paperWidthMm),a=Number(e.paperHeightMm);r>0&&a>0&&((!n.page||typeof n.page!="object")&&(n.page={unit:"mm",margin:[10,10,10,10],gridSize:2}),n.page.width=r,n.page.height=a),V(n)}}H()})}function Ke(t){var o,v,i;const e=m.schema.elements.find(x=>x.id===t.id),n=Number(e==null?void 0:e.w),r=Number(e==null?void 0:e.h),a=(e==null?void 0:e.type)==="freeTable",u=t.patch||{};F(t.id,u);const s=m.schema.elements.find(x=>x.id===t.id);if(a&&(s==null?void 0:s.type)==="freeTable"){const x=Math.max(1,Number(s.rowCount||1)),y=Math.max(1,Number(s.colCount||1)),D=Array.isArray(s.colWidths)?s.colWidths.map(N=>Number(N)):[],$=Array.isArray(s.rowHeights)?s.rowHeights.map(N=>Number(N)):[],Q=Object.prototype.hasOwnProperty.call(u,"colWidths")||Object.prototype.hasOwnProperty.call(u,"rowHeights"),ee=(Object.prototype.hasOwnProperty.call(u,"w")||Object.prototype.hasOwnProperty.call(u,"h"))&&!Q,R=Number(s.w),Y=Number(s.h);if(ee&&D.length===y&&$.length===x&&n>0&&r>0&&(Math.abs(R-n)>.001||Math.abs(Y-r)>.001)){const N=An(D,$,n,r,R,Y);F(t.id,{colWidths:N.colWidths,rowHeights:N.rowHeights})}}if((s==null?void 0:s.type)==="reportHeader"?F(t.id,{x:0,y:0,w:m.schema.page.width,region:"header",bandId:t.id}):(s==null?void 0:s.type)==="reportFooter"&&F(t.id,{x:0,y:Math.max(0,m.schema.page.height-s.h),w:m.schema.page.width,region:"footer",bandId:t.id}),((o=C.value)==null?void 0:o.elementId)===t.id&&((Array.isArray(s==null?void 0:s.columns)?s.columns:[]).some(y=>{var D;return(y==null?void 0:y.key)===((D=C.value)==null?void 0:D.columnKey)})||(C.value=null)),((v=b.value)==null?void 0:v.elementId)===t.id){const x=Math.max(1,Number((s==null?void 0:s.rowCount)||1)),y=Math.max(1,Number((s==null?void 0:s.colCount)||1)),D=Number(b.value.row||0),$=Number(b.value.col||0);(D>=x||$>=y)&&(b.value=null)}t.patch&&"cells"in t.patch&&((i=z.value)==null?void 0:i.elementId)===t.id&&(z.value=null),H()}function ia(t){m.schema.page=W(W({},m.schema.page),t),m.schema.elements.forEach(e=>{e.type==="reportHeader"?(e.x=0,e.y=0,e.w=m.schema.page.width,e.region="header",e.bandId=e.id):e.type==="reportFooter"&&(e.x=0,e.y=Math.max(0,m.schema.page.height-e.h),e.w=m.schema.page.width,e.region="footer",e.bandId=e.id)}),H()}function sa(t){if(t==="reportHeader"){const n=m.schema.elements.find(r=>r.type==="reportHeader");if(n){ne(n.id),h.warning("报表头已存在,可直接调整其高度");return}}if(t==="reportFooter"){const n=m.schema.elements.find(r=>r.type==="reportFooter");if(n){ne(n.id),h.warning("报表尾已存在,可直接调整其高度");return}}k(t);const e=A.value;if(e){const n=la();if(t==="reportHeader")F(e.id,{x:0,y:0,w:m.schema.page.width,region:"header",bandId:e.id});else if(t==="reportFooter")F(e.id,{x:0,y:Math.max(0,m.schema.page.height-e.h),w:m.schema.page.width,region:"footer",bandId:e.id});else{let r=Ye.value;r==="header"&&n.headerHeight<=0&&(r="body",h.warning("尚未设置报表头区域,已自动放入报表主体"));const a=r==="header"?0:n.headerHeight,u=r==="header"?Math.max(0,n.headerHeight-e.h):Math.max(n.headerHeight,n.bodyBottom-e.h),s=Math.min(u,Math.max(a,e.y)),o=m.schema.elements.find(v=>v.type==="reportHeader");F(e.id,{y:s,region:r,bandId:r==="header"?String((o==null?void 0:o.id)||""):""})}}C.value=null,b.value=null,z.value=null,H()}function la(){const t=m.schema.page.height,e=m.schema.elements.find(s=>s.type==="reportHeader"),n=m.schema.elements.find(s=>s.type==="reportFooter"),r=Number((e==null?void 0:e.h)||0),a=Number((n==null?void 0:n.h)||0),u=Math.max(r,t-a);return{headerHeight:r,footerHeight:a,bodyBottom:u}}function ua(){const t=m.schema.page.width>m.schema.page.height?"landscape":"portrait";return{id:se.value||void 0,templateCode:w.templateCode,templateName:w.templateName,category:w.category||"form",paperWidthMm:m.schema.page.width,paperHeightMm:m.schema.page.height,paperOrientation:t,remark:w.remark,templateJson:kt()}}function ma(){return K(this,null,function*(){if(!w.templateCode||!w.templateName){h.warning("请先填写模板编码和模板名称");return}Fe.value=!0;try{const t=ua();if(se.value)yield rn(t);else{yield sn(t);const e=yield ln(w.templateCode);e!=null&&e.id&&(se.value=String(e.id))}h.success("原生模板保存成功")}catch(t){h.error((t==null?void 0:t.message)||"保存失败")}finally{Fe.value=!1}})}function da(){return K(this,null,function*(){Re.value=yield Qe(m.schema,we.value),Oe.value=!0})}function fa(){return K(this,null,function*(){const t=yield Qe(m.schema,we.value);Re.value=t,Tn(t)})}function pa(){return K(this,null,function*(){He.value=!0;try{yield gn({schema:m.schema,data:we.value,jobName:String(w.templateCode||"").trim()||"native-print",printerSelection:Ce.value||"__system_default__"}),h.success("已通过 PrintDot 提交打印")}catch(t){h.error((t==null?void 0:t.message)||"PrintDot 打印失败")}finally{He.value=!1}})}function va(){Nt(),C.value=null,b.value=null,z.value=null,H()}function ca(){Tt(),C.value=null,b.value=null,z.value=null,H()}function ga(t){var e,n,r;ne(t),(!t||((e=C.value)==null?void 0:e.elementId)!==t)&&(C.value=null),(!t||((n=b.value)==null?void 0:n.elementId)!==t)&&(b.value=null),(!t||((r=z.value)==null?void 0:r.elementId)!==t)&&(z.value=null)}function ha(t){ne(t.elementId),C.value=t,b.value=null,z.value=null}function ya(t){var e;if(ne(t.elementId),C.value=null,t.shiftKey===!0&&((e=b.value)==null?void 0:e.elementId)===t.elementId){z.value={elementId:t.elementId,row:t.row,col:t.col};return}b.value={elementId:t.elementId,row:t.row,col:t.col},z.value=null}function ba(t){ne(t.elementId),C.value=null,z.value=null,b.value={elementId:t.elementId,row:t.row,col:t.col},de.value={elementId:t.elementId,row:t.row,col:t.col},le.value=!0}function wa(t){const e=m.schema.elements.find(s=>s.id===t.elementId);if(!e||e.type!=="freeTable"){le.value=!1;return}const n=Math.max(1,Number(e.rowCount||1)),r=Math.max(1,Number(e.colCount||1)),u=Sn(n,r,e.cells||[]).map(s=>s.row===t.row&&s.col===t.col?W(W({},s),t.patch):W({},s));Ke({id:t.elementId,patch:{cells:u}}),le.value=!1}function Ma(){var t;return!A.value||A.value.type!=="table"&&A.value.type!=="detailTable"?"":((t=C.value)==null?void 0:t.elementId)===A.value.id?C.value.columnKey:""}function xa(){var t;return!A.value||A.value.type!=="freeTable"?null:((t=b.value)==null?void 0:t.elementId)===A.value.id?{row:Number(b.value.row||0),col:Number(b.value.col||0)}:null}function Sa(){if(!b.value||!z.value||b.value.elementId!==z.value.elementId||!A.value||A.value.type!=="freeTable"||b.value.elementId!==A.value.id)return null;const t=b.value,e=z.value;return{r0:Math.min(t.row,e.row),r1:Math.max(t.row,e.row),c0:Math.min(t.col,e.col),c1:Math.max(t.col,e.col)}}function vt(){Z+=1}function qe(){Ne!=null&&(clearInterval(Ne),Ne=null)}function Ve(){qe(),T.value=0,X.value="正在准备上传…"}function Aa(){Ve(),T.value=8,X.value="正在上传图片…",Ne=setInterval(()=>{T.value=Math.min(86,T.value+(Math.random()*4+.6)),T.value>=28&&T.value<48?X.value="正在调用大模型识别版式与字段…":T.value>=48&&(X.value="正在生成模板 JSON,请稍候…")},420)}function _a(){qe(),T.value=100,X.value="分析完成"}function ct(){O.value&&URL.revokeObjectURL(O.value),O.value="",G.value="",Te.value="",fe.value=null,pe.value="",me.value=!1,_.value=!1,ce.value={w:0,h:0},J.value=1,Ve()}function Xe(){vt(),ct(),ue.value=!1}function za(){ct(),Yt(),ue.value=!0}function Ca(t){t.preventDefault(),!_.value&&(me.value=!0)}function Na(t){t.preventDefault(),!_.value&&(me.value=!0)}function Ta(t){t.preventDefault(),!_.value&&(me.value=!1)}function Ia(){var t;_.value||(t=it.value)==null||t.click()}function Pa(t){var r;const e=t.target,n=(r=e.files)==null?void 0:r[0];e.value="",n&>(n)}function La(t){var n,r;if(t.preventDefault(),me.value=!1,_.value)return;const e=(r=(n=t.dataTransfer)==null?void 0:n.files)==null?void 0:r[0];if(e){if(!e.type.startsWith("image/")){h.warning("请拖拽图片文件");return}gt(e)}}function gt(t){return K(this,null,function*(){if(_.value){h.warning("正在分析中,请稍候");return}const e=++Z;_.value=!0,Aa();try{const n=yield un(t);if(e!==Z)return;T.value=Math.max(T.value,44),X.value="正在解析返回结果…";const r=yn(bn(wn(JSON.parse(n.templateJson))));fe.value=r,pe.value=n.mockDataJson||"{}";const a=n.aiUsed?"(已调用视觉大模型)":"(未调用大模型或已回退占位)";Te.value=`${n.hint||""}${a}`.trim(),O.value&&URL.revokeObjectURL(O.value),O.value=URL.createObjectURL(t);let u={};try{u=JSON.parse(pe.value||"{}")}catch(s){u={}}if(e!==Z||(T.value=Math.max(T.value,72),X.value="正在生成本地预览…",G.value=yield Qe(r,u),e!==Z)||(_a(),yield new Promise(s=>setTimeout(s,360)),e!==Z))return;h.success("已生成预览,请确认后应用到画布")}catch(n){e===Z&&h.error((n==null?void 0:n.message)||"图片分析失败")}finally{e===Z&&(_.value=!1,Ve())}})}function ka(){const t=fe.value;if(!t){h.warning("请先生成预览");return}V(t);const e=pe.value||"{}";ye.value=e,re.value=e,ke.value="mock",C.value=null,b.value=null,z.value=null,ne(""),H(),Xe(),h.success("已应用到画布")}function Da(){g.push("/print/template")}return Oa(()=>K(null,null,function*(){try{const t=localStorage.getItem(at);if(t!=null&&t!==""){const e=Number.parseInt(t,10);!Number.isNaN(e)&&e>=0&&e<=nt&&(P.value=e,e>=_e&&(Pe.value=e))}}catch(t){}yield ra(),H(),pt({syncManual:!0,showMessage:!1}),rt(!1)})),Ra(()=>{$e(),je(),vt(),qe(),_.value=!1,O.value&&URL.revokeObjectURL(O.value)}),(t,e)=>{var R,Y,N,te,Me;const n=Ua("a-button"),r=Xa,a=Ya,u=Ka,s=_n,o=zn,v=Qa,i=Ga,x=Za,y=Cn,D=Nn,$=en,Q=tn,ee=qa;return U(),ae("div",In,[p("div",Pn,[p("div",Ln,[e[19]||(e[19]=p("span",{class:"title"},"原生打印模板设计器",-1)),se.value?(U(),ae("span",kn,"ID: "+Ee(se.value),1)):q("",!0)]),l(a,null,{default:f(()=>[l(n,{onClick:Da},{default:f(()=>[...e[20]||(e[20]=[S("返回列表",-1)])]),_:1}),l(n,{onClick:va},{default:f(()=>[...e[21]||(e[21]=[S("删除选中",-1)])]),_:1}),l(n,{onClick:ca},{default:f(()=>[...e[22]||(e[22]=[S("复制元素",-1)])]),_:1}),l(n,{onClick:I(It)},{default:f(()=>[...e[23]||(e[23]=[S("上移图层",-1)])]),_:1},8,["onClick"]),l(n,{onClick:I(Pt)},{default:f(()=>[...e[24]||(e[24]=[S("下移图层",-1)])]),_:1},8,["onClick"]),l(n,{onClick:da},{default:f(()=>[...e[25]||(e[25]=[S("即时预览",-1)])]),_:1}),l(n,{onClick:fa},{default:f(()=>[...e[26]||(e[26]=[S("打印",-1)])]),_:1}),l(r,{value:Ce.value,"onUpdate:value":e[0]||(e[0]=c=>Ce.value=c),options:Dt.value,loading:ze.value,placeholder:"PrintDot 打印机","show-search":"","option-filter-prop":"label",class:"toolbar-printdot-printer","dropdown-match-select-width":!1},null,8,["value","options","loading"]),l(n,{size:"small",loading:ze.value,onClick:e[1]||(e[1]=c=>rt(!0))},{default:f(()=>[...e[27]||(e[27]=[S(" 刷新打印机 ",-1)])]),_:1},8,["loading"]),l(n,{loading:He.value,onClick:pa},{default:f(()=>[...e[28]||(e[28]=[S("PrintDot 打印",-1)])]),_:1},8,["loading"]),l(n,{type:"primary",loading:Fe.value,onClick:ma},{default:f(()=>[...e[29]||(e[29]=[S("保存模板",-1)])]),_:1},8,["loading"])]),_:1})]),p("div",Dn,[p("div",En,[l(u,{value:w.templateCode,"onUpdate:value":e[2]||(e[2]=c=>w.templateCode=c),placeholder:"模板编码","allow-clear":""},null,8,["value"]),l(u,{value:w.templateName,"onUpdate:value":e[3]||(e[3]=c=>w.templateName=c),placeholder:"模板名称","allow-clear":""},null,8,["value"]),l(u,{value:w.category,"onUpdate:value":e[4]||(e[4]=c=>w.category=c),placeholder:"分类(默认form)","allow-clear":""},null,8,["value"]),l(u,{value:w.remark,"onUpdate:value":e[5]||(e[5]=c=>w.remark=c),placeholder:"备注","allow-clear":""},null,8,["value"])]),p("div",Fn,[l(s,{value:I(m).scale,min:.2,max:2,step:.1,"addon-before":"按比例缩放",class:"meta-scale-input",onChange:e[6]||(e[6]=c=>I(Lt)(Number(c||1)))},null,8,["value"]),l(n,{class:"meta-scale-btn",onClick:e[7]||(e[7]=c=>We.value=!0)},{default:f(()=>[...e[30]||(e[30]=[S("页面配置",-1)])]),_:1}),l(n,{class:"meta-scale-btn",onClick:za},{default:f(()=>[...e[31]||(e[31]=[S("上传图片分析模板",-1)])]),_:1})])]),p("div",Hn,[p("div",{class:wt(["left-panel-wrap",{"is-collapsed":P.value<=0}]),style:Ae(Xt.value)},[p("div",Bn,[l(vn,{"insert-region":Ye.value,"onUpdate:insertRegion":e[8]||(e[8]=c=>Ye.value=c),"data-binding":I(m).schema.dataBinding,onAdd:sa,onUpdateDataBinding:na},null,8,["insert-region","data-binding"]),l(o),l(a,{direction:"vertical",style:{width:"100%"}},{default:f(()=>[l(x,{activeKey:ft.value,"onUpdate:activeKey":e[13]||(e[13]=c=>ft.value=c),size:"small",class:"json-tabs"},{default:f(()=>[l(i,{key:"template",tab:"模板JSON"},{default:f(()=>[p("div",On,[e[34]||(e[34]=p("div",{class:"json-box-title"},"画布实际 JSON(模板样式)",-1)),l(a,{class:"json-action-row json-action-row--capsule",size:"small",wrap:!0},{default:f(()=>[l(n,{size:"small",class:"json-capsule-btn",onClick:H},{default:f(()=>[...e[32]||(e[32]=[S("从画布生成",-1)])]),_:1}),l(n,{size:"small",type:"primary",ghost:"",class:"json-capsule-btn",onClick:oa},{default:f(()=>[...e[33]||(e[33]=[S("应用到画布",-1)])]),_:1})]),_:1}),l(v,{value:be.value,"onUpdate:value":e[9]||(e[9]=c=>be.value=c),rows:18,class:"json-textarea",placeholder:"记录画布实际JSON,可反向应用到画布并还原模板样式"},null,8,["value"])])]),_:1}),l(i,{key:"params",tab:"参数JSON"},{default:f(()=>[l(x,{activeKey:ke.value,"onUpdate:activeKey":e[12]||(e[12]=c=>ke.value=c),size:"small",class:"json-sub-tabs json-sub-tabs--segmented"},{default:f(()=>[l(i,{key:"manual",tab:"手动JSON"},{default:f(()=>[l(v,{value:re.value,"onUpdate:value":e[10]||(e[10]=c=>re.value=c),rows:16,class:"json-textarea",placeholder:"手动输入预览/打印数据 JSON"},null,8,["value"])]),_:1}),l(i,{key:"mock",tab:"模拟JSON"},{default:f(()=>[p("div",Rn,[l(n,{size:"small",type:"primary",ghost:"",class:"json-capsule-btn",onClick:pt},{default:f(()=>[...e[35]||(e[35]=[S("根据画布生成",-1)])]),_:1})]),l(v,{value:ye.value,"onUpdate:value":e[11]||(e[11]=c=>ye.value=c),rows:14,class:"json-textarea",placeholder:"点击「根据画布生成」自动填充模拟数据"},null,8,["value"])]),_:1})]),_:1},8,["activeKey"])]),_:1})]),_:1},8,["activeKey"])]),_:1})])],6),p("div",{class:"left-panel-resizer",role:"separator","aria-orientation":"vertical",title:uo,onMousedown:Zt,onDblclick:ie(Gt,["prevent"])},null,32),p("div",Wn,[l(mn,{schema:I(m).schema,"selected-id":I(m).selectedId,scale:I(m).scale,"preview-data":we.value,"selected-table-column":C.value,"selected-free-table-cell":b.value,"selected-free-table-merge-corner":z.value,onSelect:ga,onUpdate:Ke,onSelectTableColumn:ha,onSelectFreeTableCell:ya,onEditFreeTableCell:ba},null,8,["schema","selected-id","scale","preview-data","selected-table-column","selected-free-table-cell","selected-free-table-merge-corner"])]),p("div",Un,[l(pn,{schema:I(m).schema,"selected-element":I(A),"selected-table-column-key":Ma(),"selected-free-table-cell":xa(),"selected-free-table-merge-rect":Sa(),onUpdateElement:Ke},null,8,["schema","selected-element","selected-table-column-key","selected-free-table-cell","selected-free-table-merge-rect"])])]),l(fn,{open:We.value,"onUpdate:open":e[14]||(e[14]=c=>We.value=c),schema:I(m).schema,onUpdatePage:ia},null,8,["open","schema"]),l(y,{open:Oe.value,"onUpdate:open":e[15]||(e[15]=c=>Oe.value=c),title:"即时预览",width:"70%",placement:"right","body-style":{padding:"12px 16px 20px",overflow:"hidden"}},{default:f(()=>[p("div",Jn,[p("iframe",{class:"preview-frame",title:"原生模板即时预览",srcdoc:Re.value,style:Ae({height:`${ea.value}px`})},null,12,jn)])]),_:1},8,["open"]),l(dn,{open:le.value,"onUpdate:open":e[16]||(e[16]=c=>le.value=c),"element-id":((R=de.value)==null?void 0:R.elementId)||"",row:(N=(Y=de.value)==null?void 0:Y.row)!=null?N:0,col:(Me=(te=de.value)==null?void 0:te.col)!=null?Me:0,schema:I(m).schema,onSave:wa},null,8,["open","element-id","row","col","schema"]),l(ee,{open:ue.value,"onUpdate:open":e[18]||(e[18]=c=>ue.value=c),"destroy-on-close":"",width:Ie.value,centered:!1,"wrap-class-name":"native-print-image-analyze-modal","body-style":Et.value,closable:!_.value,"mask-closable":!_.value,onCancel:Xe},{title:f(()=>[...e[36]||(e[36]=[p("div",{class:"image-analyze-modal-title"},[p("span",{class:"image-analyze-modal-title-text"},"上传图片分析模板"),p("span",{class:"image-analyze-modal-title-tip"},"按住标题栏可拖动 · 右下角可拉大窗口")],-1)])]),footer:f(()=>[l(n,{onClick:Xe},{default:f(()=>[...e[45]||(e[45]=[S("取消",-1)])]),_:1}),l(n,{type:"primary",disabled:!fe.value||_.value,onClick:ka},{default:f(()=>[...e[46]||(e[46]=[S(" 应用到画布 ",-1)])]),_:1},8,["disabled"])]),default:f(()=>[p("div",$n,[l(D,{type:"info","show-icon":"",style:{"margin-bottom":"12px"}},{message:f(()=>[...e[37]||(e[37]=[p("span",null,"选择或拖拽图片到下方区域,系统将生成画布 JSON 与模拟数据;先预览渲染效果,确认后再应用到画布。",-1)])]),_:1}),p("div",{class:wt(["image-analyze-drop",{"is-dragover":me.value,"is-busy":_.value}]),onDragenter:ie(Ca,["prevent"]),onDragover:ie(Na,["prevent"]),onDragleave:ie(Ta,["prevent"]),onDrop:ie(La,["prevent"])},[p("input",{ref_key:"imageAnalyzeFileInputRef",ref:it,type:"file",accept:"image/*",class:"image-analyze-file-input",disabled:_.value,onChange:Pa},null,40,Yn),e[39]||(e[39]=p("p",{class:"image-analyze-drop-title"},"拖拽图片到此处,或",-1)),l(n,{type:"link",disabled:_.value,onClick:Ia},{default:f(()=>[...e[38]||(e[38]=[S("点击选择文件",-1)])]),_:1},8,["disabled"])],34),_.value?(U(),ae("div",Kn,[l($,{percent:Math.min(100,Math.round(T.value)),status:T.value>=100?"success":"active","stroke-width":10},null,8,["percent","status"]),p("p",qn,Ee(X.value),1),e[40]||(e[40]=p("p",{class:"image-analyze-progress-sub"},"大模型分析可能需要数十秒至两分钟,请耐心等待,勿关闭窗口。",-1))])):q("",!0),Te.value?(U(),ae("div",Vn,Ee(Te.value),1)):q("",!0),G.value?(U(),Mt(o,{key:2,plain:"",orientation:"left"},{default:f(()=>[...e[41]||(e[41]=[S("效果预览(应用前)",-1)])]),_:1})):q("",!0),G.value?(U(),ae("div",Xn,[O.value?(U(),ae("div",Zn,[e[42]||(e[42]=p("div",{class:"thumb-label"},"原图",-1)),p("img",{src:O.value,alt:"上传原图"},null,8,Gn)])):q("",!0),p("div",Qn,[p("div",eo,[e[44]||(e[44]=p("div",{class:"thumb-label"},"按生成模板渲染",-1)),j.value?(U(),Mt(a,{key:0,size:"small",wrap:"",onClick:e[17]||(e[17]=ie(()=>{},["stop"]))},{default:f(()=>[l(Q,{title:"缩小"},{default:f(()=>[l(n,{type:"default",size:"small",class:"image-analyze-zoom-btn",onClick:jt},{default:f(()=>[l(I(xt),{icon:"ant-design:zoom-out-outlined"})]),_:1})]),_:1}),p("span",to,Ee(Rt.value),1),l(Q,{title:"放大"},{default:f(()=>[l(n,{type:"default",size:"small",class:"image-analyze-zoom-btn",onClick:Jt},{default:f(()=>[l(I(xt),{icon:"ant-design:zoom-in-outlined"})]),_:1})]),_:1}),l(Q,{title:"按预览区大小自动适应"},{default:f(()=>[l(n,{type:"default",size:"small",onClick:$t},{default:f(()=>[...e[43]||(e[43]=[S("适应",-1)])]),_:1})]),_:1})]),_:1})):q("",!0)]),p("div",{ref_key:"imageAnalyzePreviewHostRef",ref:Ue,class:"image-analyze-preview-host",style:Ae({maxHeight:`${Ft.value}px`})},[j.value?(U(),ae("div",ao,[p("div",no,[p("div",{class:"image-analyze-scale-shim",style:Ae({width:`${j.value.wPx*Je.value}px`,height:`${j.value.hPx*Je.value}px`})},[p("div",{class:"image-analyze-scale-inner",style:Ae({width:`${j.value.wPx}px`,height:`${j.value.hPx}px`,transform:`scale(${Je.value})`})},[p("iframe",{ref_key:"imageAnalyzeIframeRef",ref:st,class:"image-analyze-preview-frame",srcdoc:G.value,onLoad:Ut},null,40,oo)],4)],4)])])):q("",!0)],4)])])):q("",!0),ue.value?(U(),ae("div",{key:4,class:"image-analyze-resize-handle","aria-hidden":"true",onMousedown:ie(Kt,["prevent"])},null,32)):q("",!0)])]),_:1},8,["open","width","body-style","closable","mask-closable"])])}}}),hr=nn(fo,[["__scopeId","data-v-b9f32f38"]]);export{hr as default};
|