Files
qhmes/web-dist/js/nativeSchemaNormalize-WzV7gGZh.js
2026-06-16 18:19:57 +08:00

69 lines
32 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var Bt=Object.defineProperty,kt=Object.defineProperties;var Rt=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var mt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable;var ht=Math.pow,xt=(t,r,e)=>r in t?Bt(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,M=(t,r)=>{for(var e in r||(r={}))mt.call(r,e)&&xt(t,e,r[e]);if(nt)for(var e of nt(r))wt.call(r,e)&&xt(t,e,r[e]);return t},v=(t,r)=>kt(t,Rt(r));var ot=(t,r)=>{var e={};for(var a in t)mt.call(t,a)&&r.indexOf(a)<0&&(e[a]=t[a]);if(t!=null&&nt)for(var a of nt(t))r.indexOf(a)<0&&wt.call(t,a)&&(e[a]=t[a]);return e};var z=(t,r,e)=>new Promise((a,n)=>{var i=l=>{try{s(e.next(l))}catch(b){n(b)}},g=l=>{try{s(e.throw(l))}catch(b){n(b)}},s=l=>l.done?a(l.value):Promise.resolve(l.value).then(i,g);s((e=e.apply(t,r)).next())});import{aK as Mt}from"./index-X7Y8jykP.js";import{Q as Wt}from"./browser-D2DxMZOB.js";import{b as It}from"./tableMerge-CpKVscEF.js";import{n as bt,r as st,g as Y}from"./tableBuilder-lOY0L2dW.js";import{n as _t}from"./freeTableGrid-BXWKfNhh.js";import{r as jt,b as Lt}from"./freeTableBorders-i5ck0FPH.js";import{r as Et,a as qt,b as Dt}from"./freeTableTracks--U1Y5u-V.js";import{b as vt}from"./barcodeRenderer-cjxjmb-t.js";import{c as Ot,b as Vt}from"./vue-vendor-DNhG1Cve.js";function it(t,r){const e=t.bindField;if(e)return String(e).split(".").reduce((a,n)=>a==null?void 0:a[n],r||{})}function Yt(t,r,e=1,a=1){var i,g,s,l;const n=it(t,r);if(n!=null&&t.type!=="pageNo")return t.type==="date"?Mt(n).format(t.format||"YYYY-MM-DD"):String(n);if(t.type==="date")return Mt().format(t.format||"YYYY-MM-DD");if(t.type==="pageNo")return t.text.replace("{{pageNo}}",String(e)).replace("{{totalPages}}",String(a));if((i=t.text)!=null&&i.startsWith("{{")&&((g=t.text)!=null&&g.endsWith("}}"))){const b=t.text.replaceAll("{","").replaceAll("}","").trim();return String((s=Y(r||{},b))!=null?s:"")}return String((l=t.text)!=null?l:"")}function Kt(t,r){return z(this,null,function*(){const e=Math.max(1,Number((t==null?void 0:t.rowCount)||1)),a=Math.max(1,Number((t==null?void 0:t.colCount)||1)),n=Math.max(.01,Number(t==null?void 0:t.w)||.01),i=Math.max(.01,Number(t==null?void 0:t.h)||.01),g=String((t==null?void 0:t.borderColor)||"#d9d9d9"),s=Math.max(1,Number((t==null?void 0:t.borderWidth)||1)),l=$t(Et(t),n,a,s),b=$t(qt(t),i,e,s),p=`<colgroup>${l.map(o=>`<col style="width:${o}mm;box-sizing:border-box" />`).join("")}</colgroup>`,d=_t(e,a,(t==null?void 0:t.cells)||[]),u=(yield Promise.all(Array.from({length:e},(o,x)=>z(null,null,function*(){var m;const f=(m=b[x])!=null?m:i/e,c=(yield Promise.all(d.filter(h=>h.row===x).sort((h,y)=>h.col-y.col).map(h=>z(null,null,function*(){var T,A,W;const y=Math.max(1,Number(h.rowspan||1)),w=Math.max(1,Number(h.colspan||1)),$=String((h==null?void 0:h.bindField)||"").trim(),S=$?(T=Y(r||{},$))!=null?T:"":(A=h==null?void 0:h.text)!=null?A:"",N=String(S!=null?S:""),C=String((h==null?void 0:h.contentType)||"text"),H=C==="number"||C==="amount"?dt(S,h):N,K=yield Ct(C,C==="image"||C==="qrcode"||C==="barcode"?N:H,h),lt=String((h==null?void 0:h.align)||"left"),B=String((h==null?void 0:h.verticalAlign)||"middle"),U=Math.max(1,Number((h==null?void 0:h.fontSize)||((W=t.style)==null?void 0:W.fontSize)||12)),ft=String((h==null?void 0:h.color)||"#111111"),yt=String((h==null?void 0:h.backgroundColor)||"#ffffff"),G=y>1?` rowspan="${y}"`:"",J=w>1?` colspan="${w}"`:"",Q=l.slice(h.col,h.col+w).reduce((j,E)=>j+E,0),q=b.slice(h.row,h.row+y).reduce((j,E)=>j+E,0),L=Math.max(.15,Math.min(.8,q*.08)),X=Math.max(.3,Math.min(1.2,L*1.6)),D=Math.max(.1,q-L*2),Z=D*(96/25.4),tt=Math.max(1,Math.min(U,Math.floor(Z*.82))),et=`width:${Q}mm;`,rt=jt(t,d,h,h.row,h.col,y,w,e,a),at=Dt(t,h.row,h.col,y,w,e,a),k=Lt(rt,s,g,at),F=h.autoWrap===!1,_=F?"nowrap":"normal",I=F?"normal":"break-all",R=F?"normal":"anywhere";return`<td${G}${J} style="box-sizing:border-box;${k}${et}padding:${L.toFixed(3)}mm ${X.toFixed(3)}mm;text-align:${lt};vertical-align:${B};font-size:${tt}px;color:${ft};background:${yt};white-space:${_};word-break:${I};overflow-wrap:${R};overflow:hidden;line-height:${F?`${D.toFixed(3)}mm`:"1.15"};">${K}</td>`})))).join("");return`<tr style="height:${f}mm;box-sizing:border-box">${c}</tr>`})))).join("");return`<table style="width:${n}mm;border-collapse:collapse;border-spacing:0;table-layout:fixed;box-sizing:border-box;">${p}<tbody>${u}</tbody></table>`})}function $t(t,r,e,a){const n=Math.max(1,Number(e||t.length||1)),i=(t||[]).slice(0,n).map(f=>Math.max(.01,Number(f)||.01));for(;i.length<n;)i.push(.01);const g=Math.max(.01,Number(r)||.01),s=25.4/96,l=Math.max(0,Number(a)||1)*s,b=(n+1)*l,p=Math.max(.01,g-b),d=i.reduce((f,c)=>f+c,0),u=d>0?p/d:1,o=i.map(f=>Math.max(.01,Math.round(f*u*1e3)/1e3)),x=o.reduce((f,c)=>f+c,0);return o[o.length-1]=Math.max(.01,Math.round((o[o.length-1]+(p-x))*1e3)/1e3),o}function Ut(t,r){return z(this,null,function*(){const e=st(t,r),a=bt(t),n=Math.max(1,Number((t==null?void 0:t.fixedRows)||5)),i=Gt(e,n),g=i.length?i:[[]],s=String(t.footerTotalMode||"overall");return Promise.all(g.map((l,b)=>{const p=b===g.length-1;return Tt(t,a,l,s==="page"?!0:p,s==="page"?l:e)}))})}function Tt(i,g,s,l){return z(this,arguments,function*(t,r,e,a,n=e){const b=It(e,t.columns,t.mergeColumnKeys||[],t.strictGrouping!==!1),p=t.showHeader?Jt(t,r):"",d=(yield Promise.all(e.map((o,x)=>z(null,null,function*(){const f=(yield Promise.all(r.map(c=>z(null,null,function*(){var P;const m=c.bindField||c.field,h=b[`${x}_${m}`];if(h===0)return"";const y=h&&h>1?` rowspan="${h}"`:"",w=(P=Y(o||{},m))!=null?P:"",$=String(c.contentType||"text"),S=pt(c)?dt(w,c):String(w),N=yield Ct($,S,c),C=c!=null&&c.useCustomFontSize?Number((c==null?void 0:c.fontSize)||12):Number(t.bodyFontSize||12),H=ut(c,S,Number((c==null?void 0:c.width)||30),t.rowHeight||8,C);return`<td${y} style="border:1px solid #222;padding:2mm;text-align:${c.align||"left"};font-family:${c.fontFamily||"inherit"};font-size:${H}px;color:${c.fontColor||"#111111"};white-space:${c.autoWrap===!1?"nowrap":"normal"};word-break:${c.autoWrap===!1?"normal":"break-all"};overflow-wrap:${c.autoWrap===!1?"normal":"anywhere"};line-height:${c.autoWrap===!1?`${t.rowHeight||8}mm`:"1.3"};">${N}</td>`})))).join("");return`<tr style="min-height:${t.rowHeight}mm;">${f}</tr>`})))).join(""),u=a?Xt(n,r,t):"";return`<table style="width:100%;border-collapse:collapse;table-layout:fixed;"><thead>${p}</thead><tbody>${d}</tbody>${u}</table>`})}function Gt(t,r){const e=Math.max(1,Number(r||1)),a=[];for(let n=0;n<t.length;n+=e)a.push(t.slice(n,n+e));return a}function Jt(t,r){const e=Qt(t,r),a=Math.max(1,e.length),n=(t.headerHeight||10)/a;return e.map(i=>{const g=i.map(s=>{const l=r[s.col]||{},b=r.slice(s.col,s.col+s.colspan).reduce((u,o)=>u+Number((o==null?void 0:o.width)||0),0),p=n*Number(s.rowspan||1),d=ut(l,String((s==null?void 0:s.title)||""),Number(b||(l==null?void 0:l.width)||30),p,Number(t.headerFontSize||12));return`<th rowspan="${s.rowspan}" colspan="${s.colspan}" style="border:1px solid #222;padding:2mm;text-align:${s.align||l.align||"center"};font-weight:600;width:${s.widthPercent}%;background:${t.headerBgColor||"#f5f5f5"};color:${l.fontColor||t.headerTextColor||"#111111"};font-family:${l.fontFamily||"inherit"};font-size:${d}px;white-space:${l.autoWrap===!1?"nowrap":"normal"};word-break:${l.autoWrap===!1?"normal":"break-all"};overflow-wrap:${l.autoWrap===!1?"normal":"anywhere"};line-height:${l.autoWrap===!1?`${p}mm`:"1.3"};">${s.title||""}</th>`}).join("");return`<tr style="height:${n}mm;">${g}</tr>`}).join("")}function Qt(t,r){var b,p;const e=r.length;if(!e)return[];if(t.enableMultiHeader!==!0)return[r.map((d,u)=>({row:0,col:u,rowspan:1,colspan:1,title:String((d==null?void 0:d.title)||""),align:(d==null?void 0:d.align)||"center",widthPercent:Number((d==null?void 0:d.widthPercent)||0)}))];const a=t==null?void 0:t.headerConfig,n=Math.max(1,Number((a==null?void 0:a.rowCount)||1)),i=Array.from({length:n},()=>Array.from({length:e},()=>null)),g=[];(Array.isArray(a==null?void 0:a.cells)&&Number((a==null?void 0:a.colCount)||0)===e?a.cells:[]).forEach(d=>{const u=Math.max(0,Number((d==null?void 0:d.row)||0)),o=Math.max(0,Number((d==null?void 0:d.col)||0)),x=Math.max(1,Number((d==null?void 0:d.rowspan)||1)),f=Math.max(1,Number((d==null?void 0:d.colspan)||1));if(u>=n||o>=e||i[u][o])return;const c=Math.min(n,u+x),m=Math.min(e,o+f);for(let y=u;y<c;y+=1)for(let w=o;w<m;w+=1)if(i[y][w])return;const h={row:u,col:o,rowspan:c-u,colspan:m-o,title:String((d==null?void 0:d.title)||""),align:String((d==null?void 0:d.align)||"center")};for(let y=u;y<c;y+=1)for(let w=o;w<m;w+=1)i[y][w]=h;g.push(h)});for(let d=0;d<n;d+=1)for(let u=0;u<e;u+=1){if(i[d][u])continue;const o={row:d,col:u,rowspan:1,colspan:1,title:d===n-1?String(((b=r[u])==null?void 0:b.title)||""):"",align:((p=r[u])==null?void 0:p.align)||"center"};i[d][u]=o,g.push(o)}const l=Array.from({length:n},()=>[]);return g.forEach(d=>{if(i[d.row][d.col]!==d)return;const u=r.slice(d.col,d.col+d.colspan).reduce((o,x)=>o+Number((x==null?void 0:x.widthPercent)||0),0);l[d.row].push(v(M({},d),{widthPercent:u}))}),l.forEach(d=>d.sort((u,o)=>u.col-o.col)),l}function Nt(t,r){return z(this,null,function*(){const e=String(t||"empty");return Wt.toDataURL(e,{errorCorrectionLevel:(r==null?void 0:r.qrLevel)||"M",margin:0,type:(r==null?void 0:r.qrRenderType)||"image/png",width:220})})}function Ct(t,r,e){return z(this,null,function*(){const a=String(r||""),n=(e==null?void 0:e.fillCell)!==!1,i=Math.max(10,Math.min(100,Number((e==null?void 0:e.contentScale)||100)));if(t==="image")return`<img src="${a||`https://via.placeholder.com/180x80.png?text=${encodeURIComponent((e==null?void 0:e.title)||"Image")}`}" style="display:block;margin:0 auto;max-width:100%;max-height:100%;object-fit:${(e==null?void 0:e.imageFit)||"contain"};width:${n?"100%":`${i}%`};height:${n?"100%":`${i}%`};" />`;if(t==="qrcode")try{return`<img src="${yield Nt(a,e)}" style="display:block;margin:0 auto;max-width:100%;max-height:100%;object-fit:contain;width:${n?"100%":`${i}%`};height:${n?"100%":`${i}%`};" />`}catch(g){return`<div style="display:flex;align-items:center;justify-content:center;border:1px dashed #999;width:${n?"100%":`${i}%`};height:${n?"100%":`${i}%`};margin:0 auto;">QR:${a}</div>`}if(t==="barcode"){const g=yield vt(a,{format:e==null?void 0:e.barcodeFormat,displayValue:(e==null?void 0:e.displayValue)!==!1,fontSize:e==null?void 0:e.barcodeFontSize}),s=n?"100%":`${i}%`,l=n?"100%":`${Math.max(20,i*.6)}%`;if(g){const b=g.replace(/<svg /i,'<svg width="100%" height="100%" ');return`<div style="display:flex;align-items:center;justify-content:center;width:${s};height:${l};margin:0 auto;overflow:hidden;">${b}</div>`}return`<div style="display:flex;align-items:center;justify-content:center;border:1px dashed #999;width:${s};height:${l};margin:0 auto;">${a}</div>`}return a})}function ut(t,r,e,a,n){const i=Number(n||12);if(!(t!=null&&t.autoFitFont))return i;const g=Math.max(1,e*3.7795275591),s=Math.max(1,a*3.7795275591),l=Math.max(1,r.length),b=g/Math.max(1,l*.62),p=(t==null?void 0:t.autoWrap)===!1?s*.55:s*.36,d=Math.min(i,b,p);return Math.max(8,Math.round(d))}function pt(t){const r=String((t==null?void 0:t.contentType)||"text");return r==="number"||r==="amount"}function dt(t,r){var g;const e=Number(t);if(!Number.isFinite(e))return String(t!=null?t:"");const a=Math.max(0,Math.min(6,Number((g=r==null?void 0:r.decimalPlaces)!=null?g:2))),i=((r==null?void 0:r.roundHalfUp)===!1?Math.trunc(e*ht(10,a))/ht(10,a):Number(e.toFixed(a))).toLocaleString(void 0,{minimumFractionDigits:a,maximumFractionDigits:a});return String((r==null?void 0:r.contentType)||"text")==="amount"?`${(r==null?void 0:r.amountType)==="USD"?"$":(r==null?void 0:r.amountType)==="EUR"?"EUR ":"¥"}${i}`:i}function Xt(t,r,e){var s;if((e==null?void 0:e.footerShowTotal)===!1)return"";const a=String((e==null?void 0:e.footerLabelColumnKey)||((s=r==null?void 0:r[0])==null?void 0:s.key)||""),n=String((e==null?void 0:e.footerLabelText)||"合计"),i=(e==null?void 0:e.footerLabelCenter)===!1?"left":"center";return`<tfoot><tr>${r.map((l,b)=>{if(pt(l)&&(l!=null&&l.enableFooterTotal)){const p=(l==null?void 0:l.bindField)||(l==null?void 0:l.field),d=t.reduce((u,o)=>{const x=Number(Y(o||{},p));return u+(Number.isFinite(x)?x:0)},0);return`<td style="border:1px solid #222;padding:2mm;font-weight:600;text-align:${l.align||"left"};background:#fafafa;">${dt(d,l)}</td>`}return String((l==null?void 0:l.key)||"")===a||!a&&b===0?`<td style="border:1px solid #222;padding:2mm;font-weight:600;background:#fafafa;text-align:${i};">${n}</td>`:'<td style="border:1px solid #222;padding:2mm;background:#fafafa;"></td>'}).join("")}</tr></tfoot>`}function Te(t,r){return z(this,null,function*(){const e=le(t,r),a=t.page.height*e,n=zt(t),i=n.enabled,g=n.visible,s=At(t),l=[...t.elements].sort((o,x)=>o.zIndex-x.zIndex),b=(yield Promise.all(l.map(o=>z(null,null,function*(){var G,J,Q,q,L,X,D,Z,tt,et,rt,at;if(o.visible===!1)return"";const x=o.type==="reportFooter",f=o.type==="reportHeader",c=f&&o.printRepeated===!0,m=fe(o,n.headerId,s);if(!g&&m)return"";const h=m&&i,y=f||x?0:o.x,w=f?0:x&&o.printAtPageBottom===!0?Math.max(0,t.page.height-o.h):o.y,$=f||x?t.page.width:o.w,S=Math.max(0,Number(((G=o.style)==null?void 0:G.borderWidth)||0)),N=((J=o.style)==null?void 0:J.borderColor)||"#222",C=S>0&&((Q=o.style)==null?void 0:Q.hideBorderTop)!==!0?`${S}px solid ${N}`:"none",H=S>0&&((q=o.style)==null?void 0:q.hideBorderRight)!==!0?`${S}px solid ${N}`:"none",P=S>0&&((L=o.style)==null?void 0:L.hideBorderBottom)!==!0?`${S}px solid ${N}`:"none",K=S>0&&((X=o.style)==null?void 0:X.hideBorderLeft)!==!0?`${S}px solid ${N}`:"none",lt=["position:absolute",`width:${$}mm`,`height:${o.h}mm`,`font-size:${((D=o.style)==null?void 0:D.fontSize)||12}px`,`font-weight:${((Z=o.style)==null?void 0:Z.fontWeight)||400}`,`color:${((tt=o.style)==null?void 0:tt.color)||"#111"}`,`line-height:${((et=o.style)==null?void 0:et.lineHeight)||1.4}`,`text-align:${((rt=o.style)==null?void 0:rt.textAlign)||"left"}`,`background:${((at=o.style)==null?void 0:at.backgroundColor)||"transparent"}`,`border-top:${C}`,`border-right:${H}`,`border-bottom:${P}`,`border-left:${K}`,"overflow:hidden"].filter(Boolean).join(";"),B=k=>[`left:${y}mm`,`top:${k}mm`,lt].join(";");if(o.type==="table"||o.type==="detailTable"){if(String(o.tableHeightMode||"autoPage")==="fixedRows")return(yield Ut(o,r)).map((W,j)=>{const E=St(t,j,w,Number(o.h||1),i,s,e);return`<div class="qhmes-native-table-chunk" style="${B(E)};overflow:visible;height:auto;">${W}</div>`}).join("");const F=bt(o),_=Ft(o,t,r,{repeatHeaderBandMm:s,repeatHeaderEnabled:i}),I=st(o,r),R=String(o.footerTotalMode||"overall");return(yield Promise.all(_.map((A,W)=>z(null,null,function*(){const j=W===_.length-1;return Tt(o,F,A,R==="page"?!0:j,R==="page"?A:I)})))).map((A,W)=>`<div class="qhmes-native-table-chunk" style="${B(St(t,W,w,Number(o.h||1),i,s,e))};overflow:visible;height:auto;">${A}</div>`).join("")}if(o.type==="freeTable"){const k=o.printRepeated===!0&&e>1,F=k?Array.from({length:e},(I,R)=>R+1):[1];return(yield Promise.all(F.map(I=>z(null,null,function*(){const R=w+(k?(I-1)*t.page.height:0),T=yield Kt(o,r);return`<div style="${B(R)};overflow:visible;">${T}</div>`})))).join("")}const U=(c||h||o.type==="pageNo")&&e>1,ft=U?Array.from({length:e},(k,F)=>F+1):[1];return(yield Promise.all(ft.map(k=>z(null,null,function*(){var _,I,R;const F=w+(U?(k-1)*t.page.height:0);if(o.type==="qrcode"){const T=(_=it(o,r))!=null?_:o.value;try{return`<img src="${yield Nt(String(T!=null?T:""),o)}" style="${B(F)};object-fit:contain;" />`}catch(A){return`<div style="${B(F)};display:flex;align-items:center;justify-content:center;border:1px dashed #999;">二维码:${T!=null?T:""}</div>`}}if(o.type==="barcode"){const T=(I=it(o,r))!=null?I:o.value,A=yield vt(String(T!=null?T:""),{format:o.format,displayValue:o.displayValue!==!1,fontSize:o.fontSize,lineWidth:o.lineWidth,barHeight:o.barHeight,textAlign:o.textAlign,fillCell:o.fillCell===!0});if(A){const W=A.replace(/<svg /i,'<svg width="100%" height="100%" ');return`<div style="${B(F)};display:flex;align-items:center;justify-content:center;overflow:hidden;">${W}</div>`}return`<div style="${B(F)};display:flex;align-items:center;justify-content:center;border:1px dashed #999;">条形码:${T!=null?T:""}</div>`}if(o.type==="image"){const T=o;return`<img src="${((R=it(o,r))!=null?R:T.src)||""}" style="${B(F)};object-fit:${T.fit||"contain"};" />`}return`<div style="${B(F)};white-space:pre-wrap;">${Yt(o,r,k,e)}</div>`})))).join("")})))).join(""),p=e>1?Array.from({length:e-1}).map((o,x)=>`<div style="position:absolute;left:0;top:${(x+1)*t.page.height}mm;width:${t.page.width}mm;height:0;page-break-before:always;"></div>`).join(""):"",d=e>1?Array.from({length:e-1},(o,x)=>`<div class="qhmes-native-screen-page-sep" aria-hidden="true" style="position:absolute;left:0;width:100%;top:${(x+1)*t.page.height}mm;pointer-events:none;z-index:10000;"></div>`).join(""):"",u=Zt(t.page.margin);return`<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<style>
@page { size: ${t.page.width}mm ${t.page.height}mm; margin: ${u}; }
html, body { margin: 0; padding: 0; overflow: visible; }
* {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
@media screen {
html { background: #525659; }
body {
margin: 0;
padding: 28px 20px 48px;
background: #525659;
min-height: 100vh;
box-sizing: border-box;
}
.qhmes-native-print-root {
margin: 0 auto;
position: relative;
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.14),
0 4px 12px rgba(0, 0, 0, 0.1),
0 12px 28px rgba(0, 0, 0, 0.08);
background: #fff;
border-radius: 1px;
}
/* 分页缝隙:仿多页纸张之间的装订区 */
.qhmes-native-screen-page-sep {
height: 14px;
margin-top: -7px;
margin-left: -10px;
width: calc(100% + 20px);
background: #525659;
border: none;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.qhmes-native-table-chunk table {
border-collapse: collapse;
}
.qhmes-native-table-chunk thead {
display: table-header-group;
}
.qhmes-native-table-chunk tbody tr {
break-inside: avoid;
}
}
@media print {
html, body {
background: transparent !important;
padding: 0 !important;
}
.qhmes-native-print-root { box-shadow: none !important; }
.qhmes-native-screen-page-sep { display: none !important; }
}
</style>
</head>
<body>
<div class="qhmes-native-print-root" style="--qhmes-page-h:${t.page.height}mm;position:relative;width:${t.page.width}mm;min-height:${a}mm;height:auto;overflow:visible;box-sizing:border-box;">
${b}
${p}
${d}
</div>
</body>
</html>`})}function Zt(t){if(!Array.isArray(t)||t.length<4)return"0mm";const r=Math.max(0,Number(t[0]||0)),e=Math.max(0,Number(t[1]||0)),a=Math.max(0,Number(t[2]||0)),n=Math.max(0,Number(t[3]||0));return`${r}mm ${e}mm ${a}mm ${n}mm`}function te(t){var e;const r=(e=t.page)==null?void 0:e.margin;return!Array.isArray(r)||r.length<4?0:Math.max(0,Number(r[0]||0))}function ee(t){var i,g;const r=Math.max(1,Number(((i=t.page)==null?void 0:i.height)||297)),e=(g=t.page)==null?void 0:g.margin;if(!Array.isArray(e)||e.length<4)return r;const a=Math.max(0,Number(e[0]||0)),n=Math.max(0,Number(e[2]||0));return Math.max(10,r-a-n)}function Ht(t,r){const a=Number(r.y||0)+Math.max(.01,Number(r.h||1));return t.elements.some(n=>!((n==null?void 0:n.type)!=="freeTable"||(n==null?void 0:n.visible)===!1||n.printRepeated!==!0||Number(n.y||0)>=a-.02))}function St(t,r,e,a,n,i,g){var d;const s=Math.max(1,Number(((d=t.page)==null?void 0:d.height)||297)),l=r*s;if(r===0||g>1&&Ht(t,{y:e,h:a}))return l+Math.max(0,e);const p=te(t)+(n&&i>0?Math.max(0,i):0);return l+p}const re=96/25.4,ct=re,ae=1.4,ne=1.03;function oe(t){return t>=11904&&t<=40959||t>=12352&&t<=12543||t>=44032&&t<=55215||t>=63744&&t<=64255||t>=65280&&t<=65519}function ie(t,r,e){if(!t.length)return 1;let a=0;for(const i of t){const g=i.codePointAt(0);oe(g)?a+=1:/\s/.test(i)?a+=.22:a+=.62}a=Math.max(.01,a);const n=Math.max(1.8,r/Math.max(1,e)*.97);return Math.max(1,Math.ceil(a/n))}function se(t,r,e){const a=Math.max(.01,Number(t.rowHeight||8));let n=a;const i=4,g=1.25;for(const s of e){const l=s.bindField||s.field,b=Y(r||{},l),p=String(s.contentType||"text"),d=Math.max(1,Number(s.width||30)),u=s.autoWrap===!1,o=s!=null&&s.useCustomFontSize?Number((s==null?void 0:s.fontSize)||12):Number(t.bodyFontSize||12),x=pt(s)?dt(b,s):String(b!=null?b:""),f=ut(s,x,d,t.rowHeight||8,o);if(p==="qrcode"||p==="barcode"){const S=(s==null?void 0:s.fillCell)!==!1,N=Math.max(10,Math.min(100,Number((s==null?void 0:s.contentScale)||100))),C=S?d*.93:d*(N/100)*.93;n=Math.max(n,C+i+g);continue}if(p==="image"){const S=(s==null?void 0:s.fillCell)!==!1,N=Math.max(10,Math.min(100,Number((s==null?void 0:s.contentScale)||100))),C=S?d*.65:d*(N/100)*.65;n=Math.max(n,C+i+g*.6);continue}if(u){n=Math.max(n,a);continue}const c=x;if(!c.length){n=Math.max(n,a);continue}const m=d*ct,h=Math.max(8,m-2*ct*2),y=ie(c,h,f),w=f*1.3,$=y*w/ct;n=Math.max(n,$+i,a)}return Math.max(a,n)}function O(t){return Math.max(.01,t*ne)}function de(t,r,e){let a=0;const n=Math.min(r+e,t.length);for(let i=r;i<n;i+=1)a+=O(t[i]);return a}function Ft(t,r,e,a){const n=st(t,e);if(!n.length)return[[]];const i=bt(t),g=n.map($=>se(t,$,i)),s=ee(r),l=Math.max(0,Number(t.y||0)),b=Math.max(.01,Number(t.rowHeight||8)),p=t.showHeader?Math.max(0,Number(t.headerHeight||10)):0,d=String(t.footerTotalMode||"overall"),u=t.footerShowTotal===!1,o=!u&&d==="page",x=!u&&d==="overall",f=Math.max(b,6),c=a.repeatHeaderEnabled&&a.repeatHeaderBandMm>0?Math.max(0,a.repeatHeaderBandMm):0,m=Ht(r,t),h=[];let y=0,w=0;for(;y<n.length;){const $=n.length-y,S=w===0?s-l-p:m?Math.max(b,s-l-p):Math.max(b,s-p-c),N=Math.max(b,S-ae);let C=N;o&&(C=Math.max(b,N-f));let H=0,P=0;for(;H<$&&P+O(g[y+H])<=C+.02;)P+=O(g[y+H]),H+=1;if(x&&!o&&$<=H){if(de(g,y,$)+f<=N+.02){h.push(n.slice(y,y+$));break}for(C=Math.max(b,N-f),H=0,P=0;H<$&&P+O(g[y+H])<=C+.02;)P+=O(g[y+H]),H+=1}if(H===0&&(H=1),h.push(n.slice(y,y+H)),y+=H,w+=1,w>5e3)break}return h.length?h:[[]]}function le(t,r){const e=zt(t),a=e.enabled?At(t):0,n=t.elements.filter(i=>i.type==="table"||i.type==="detailTable").map(i=>{const g=st(i,r);if(String((i==null?void 0:i.tableHeightMode)||"autoPage")!=="fixedRows"){const b=Ft(i,t,r,{repeatHeaderBandMm:a,repeatHeaderEnabled:e.enabled});return Math.max(1,b.length)}const l=Math.max(1,Number((i==null?void 0:i.fixedRows)||5));return Math.max(1,Math.ceil(g.length/l))});return Math.max(1,...n)}function zt(t){const r=t.elements.find(e=>e.type==="reportHeader");return r?r.visible===!1?{visible:!1,enabled:!1,headerId:String(r.id||"")}:{visible:!0,enabled:r.printRepeated===!0,headerId:String(r.id||"")}:{visible:!0,enabled:!1,headerId:""}}function At(t){const r=t.elements.find(e=>e.type==="reportHeader");return Math.max(0,Number((r==null?void 0:r.h)||0))}function fe(t,r,e){if(t.type==="reportHeader")return!0;if(t.type==="reportFooter")return!1;const a=String(t.bandId||"");if(r&&a===r)return!0;const n=String(t.region||"");if(n==="header")return!0;if(n==="body"||n==="footer"||e<=0)return!1;const i=Number(t.y||0),g=i+Number(t.h||0);return i<e&&g<=e+.2}const gt=3.7795275591;function V(t){return`${t}_${Math.random().toString(36).slice(2,10)}`}function Pt(){return{engine:"native",version:"1.0.0",page:{width:210,height:297,unit:"mm",margin:[10,10,10,10],gridSize:2},elements:[],dataBinding:{fieldMap:{},tableSources:["mainTable","detailList"],params:[],detailTables:[]}}}function he(){return[{key:V("col"),title:"列1",field:"field1",bindField:"field1",width:30,align:"left",contentType:"text",fontFamily:"",fontSize:12,useCustomFontSize:!1,fontColor:"#111111",autoFitFont:!1,autoWrap:!0,fillCell:!0,contentScale:100,imageFit:"contain",qrLevel:"M",qrRenderType:"image/png",barcodeFormat:"CODE128",decimalPlaces:2,roundHalfUp:!0,amountType:"CNY",enableFooterTotal:!1,mergeByValue:!1},{key:V("col"),title:"列2",field:"field2",bindField:"field2",width:30,align:"left",contentType:"text",fontFamily:"",fontSize:12,useCustomFontSize:!1,fontColor:"#111111",autoFitFont:!1,autoWrap:!0,fillCell:!0,contentScale:100,imageFit:"contain",qrLevel:"M",qrRenderType:"image/png",barcodeFormat:"CODE128",decimalPlaces:2,roundHalfUp:!0,amountType:"CNY",enableFooterTotal:!1,mergeByValue:!1},{key:V("col"),title:"列3",field:"field3",bindField:"field3",width:30,align:"left",contentType:"text",fontFamily:"",fontSize:12,useCustomFontSize:!1,fontColor:"#111111",autoFitFont:!1,autoWrap:!0,fillCell:!0,contentScale:100,imageFit:"contain",qrLevel:"M",qrRenderType:"image/png",barcodeFormat:"CODE128",decimalPlaces:2,roundHalfUp:!0,amountType:"CNY",enableFooterTotal:!1,mergeByValue:!1}]}function ce(t,r,e="List1"){const a={id:V(t),type:t,bindField:"",region:"body",bandId:"",x:20,y:20,w:60,h:12,zIndex:r};return t==="title"?v(M({},a),{type:t,text:"标题",h:14,style:{fontSize:20,fontWeight:700,textAlign:"center"}}):t==="subtitle"?v(M({},a),{type:t,text:"副标题",style:{fontSize:14,textAlign:"center"}}):t==="text"?v(M({},a),{type:t,text:"文本内容",style:{fontSize:12}}):t==="date"?v(M({},a),{type:t,text:"日期",format:"YYYY-MM-DD",style:{fontSize:12}}):t==="pageNo"?v(M({},a),{type:t,text:" {{pageNo}} / {{totalPages}} ",style:{fontSize:12}}):t==="reportHeader"?v(M({},a),{type:t,x:10,y:10,w:190,h:16,region:"header",text:"",bookmarkText:"",keepTogether:!0,centerWithDetail:!0,refreshPage:"none",visible:!0,stretch:!1,shrink:!1,printRepeated:!1,style:{fontSize:12,fontWeight:600,textAlign:"left",backgroundColor:"#ffffff"}}):t==="reportFooter"?v(M({},a),{type:t,x:10,y:260,w:190,h:18,region:"footer",text:"",bookmarkText:"",keepTogether:!0,centerWithDetail:!0,refreshPage:"none",visible:!0,stretch:!1,shrink:!1,printRepeated:!1,printAtPageBottom:!1,removeBlankWhenNoData:!1,style:{fontSize:12,fontWeight:600,textAlign:"left",backgroundColor:"#ffffff"}}):t==="image"?v(M({},a),{type:t,w:36,h:24,src:"",fit:"contain"}):t==="qrcode"?v(M({},a),{type:t,w:24,h:24,value:"https://www.jeecg.com"}):t==="barcode"?v(M({},a),{type:t,w:48,h:18,value:"1234567890"}):t==="freeTable"?v(M({},a),{type:t,printRepeated:!1,w:120,h:50,rowCount:3,colCount:3,borderColor:"#d9d9d9",borderWidth:1,outerBorderLineStyle:"solid",innerBorderHorizontalLineStyle:"solid",innerBorderVerticalLineStyle:"solid",cells:Array.from({length:3}).flatMap((n,i)=>Array.from({length:3}).map((g,s)=>({row:i,col:s,rowspan:1,colspan:1,text:`单元格${i+1}-${s+1}`,bindField:"",align:"left",verticalAlign:"middle",fontSize:12,color:"#111111",backgroundColor:"#ffffff"})))}):v(M({},a),{type:t,w:120,h:36,source:e,mergeColumnKeys:[],strictGrouping:!0,enableMultiHeader:!1,tableHeightMode:"autoPage",fixedRows:5,showHeader:!0,rowHeight:8,headerHeight:10,headerFontSize:12,bodyFontSize:12,headerBgColor:"#f5f5f5",headerTextColor:"#111111",footerLabelColumnKey:"",footerLabelText:"合计",footerLabelCenter:!0,footerShowTotal:!0,footerTotalMode:"overall",columns:he()})}function Ne(){const t=Vt({schema:Pt(),selectedId:"",scale:1}),r=Ot(()=>t.schema.elements.find(f=>f.id===t.selectedId));function e(f){var m,h,y,w;const c=v(M({},f),{dataBinding:{fieldMap:M({},((m=f.dataBinding)==null?void 0:m.fieldMap)||{}),tableSources:Array.isArray((h=f.dataBinding)==null?void 0:h.tableSources)?[...f.dataBinding.tableSources]:["mainTable","detailList"],params:Array.isArray((y=f.dataBinding)==null?void 0:y.params)?[...f.dataBinding.params]:[],detailTables:Array.isArray((w=f.dataBinding)==null?void 0:w.detailTables)?f.dataBinding.detailTables.map($=>v(M({},$),{fields:Array.isArray($.fields)?[...$.fields]:[]})):[]}});t.schema=c,c.elements.some($=>$.id===t.selectedId)||(t.selectedId="")}function a(f){var $,S,N;const c=Math.max(0,...t.schema.elements.map(C=>C.zIndex))+1,m=(S=($=t.schema.dataBinding)==null?void 0:$.detailTables)!=null?S:[],h=m.length&&((N=m[0])!=null&&N.tableKey)?String(m[0].tableKey):"",w=ce(f,c,f==="table"||f==="detailTable"?h||"List1":"");t.schema.elements.push(w),t.selectedId=w.id}function n(){t.selectedId&&(t.schema.elements=t.schema.elements.filter(f=>f.id!==t.selectedId),t.selectedId="")}function i(f,c){const m=t.schema.elements.find(h=>h.id===f);m&&Object.assign(m,c)}function g(f){t.selectedId=f}function s(f){const c=t.schema.dataBinding||{fieldMap:{},tableSources:["mainTable","detailList"],params:[],detailTables:[]};t.schema.dataBinding=M(M({},c),f)}function l(){const f=r.value;if(!f)return;const c=Math.max(0,...t.schema.elements.map(h=>h.zIndex))+1,m=JSON.parse(JSON.stringify(f));m.id=V(f.type),m.x+=6,m.y+=6,m.zIndex=c,t.schema.elements.push(m),t.selectedId=m.id}function b(){const f=r.value;f&&(f.zIndex+=1)}function p(){const f=r.value;f&&(f.zIndex=Math.max(1,f.zIndex-1))}function d(f){t.scale=Math.min(2,Math.max(.2,f))}function u(){return JSON.stringify(t.schema)}function o(f){const c=JSON.parse(f||"{}");if((c==null?void 0:c.engine)!=="native"||!Array.isArray(c.elements)||!c.page)throw new Error("模板 JSON 不是原生设计器格式");e(c)}function x(){return{width:t.schema.page.width*gt,height:t.schema.page.height*gt}}return{MM_TO_PX:gt,state:t,selectedElement:r,setSchema:e,patchDataBinding:s,addElement:a,removeSelected:n,updateElement:i,setSelected:g,duplicateSelected:l,bringForward:b,sendBackward:p,setScale:d,serialize:u,deserialize:o,pagePxSize:x}}function Ce(t){var s,l,b,p,d,u,o,x;const r=Pt(),e=t;if(!e||e.engine!=="native")throw new Error("返回内容不是原生模板engine 需为 native");const a=M(M({},r.page),e.page||{});a.unit="mm",(!Array.isArray(a.margin)||a.margin.length<4)&&(a.margin=[...r.page.margin]);const n=Array.isArray(e.elements)?e.elements:[];let i=1;for(const f of n)f.id||(f.id=`${String(f.type||"el")}_${Math.random().toString(36).slice(2,10)}`),(f.zIndex==null||f.zIndex===void 0)&&(f.zIndex=i),i+=1;const g={fieldMap:M(M({},((s=r.dataBinding)==null?void 0:s.fieldMap)||{}),((l=e.dataBinding)==null?void 0:l.fieldMap)||{}),tableSources:Array.isArray((b=e.dataBinding)==null?void 0:b.tableSources)&&e.dataBinding.tableSources.length?[...e.dataBinding.tableSources]:[...((p=r.dataBinding)==null?void 0:p.tableSources)||["mainTable","detailList"]],params:Array.isArray((d=e.dataBinding)==null?void 0:d.params)?[...e.dataBinding.params]:[...((u=r.dataBinding)==null?void 0:u.params)||[]],detailTables:Array.isArray((o=e.dataBinding)==null?void 0:o.detailTables)?e.dataBinding.detailTables.map(f=>({tableKey:String(f.tableKey||""),label:f.label?String(f.label):void 0,fields:Array.isArray(f.fields)?f.fields.map(c=>({key:String(c.key||""),label:c.label?String(c.label):void 0})):[]})):[...((x=r.dataBinding)==null?void 0:x.detailTables)||[]]};return{engine:"native",version:String(e.version||"1.0.0"),page:a,elements:n,dataBinding:g}}function ge(t){const r=t.filter(n=>(n==null?void 0:n.type)==="freeTable"),e=t.filter(n=>(n==null?void 0:n.type)==="table"||(n==null?void 0:n.type)==="detailTable"),a=r.length?r:e;return a.length?a.reduce((n,i)=>{const g=Number(n.y)||0,s=Number(i.y)||0;if(s<g)return i;if(s>g)return n;const l=(Number(n.w)||0)*(Number(n.h)||0);return(Number(i.w)||0)*(Number(i.h)||0)>=l?i:n}):null}function He(t){var d,u;const r=t.elements;if(!Array.isArray(r)||r.length===0)return t;const e=ge(r);if(!e)return t;const a=Number(e.y)||0,n=Number(e.x)||0,i=Number(e.w)||0,g=Number((d=t.page)==null?void 0:d.width)||210,s=((u=t.page)==null?void 0:u.margin)||[10,10,10,10],l=Number(s[0])||10,b=Number(s[1])||10,p=r.map(o=>{if((o==null?void 0:o.type)==="title"||(o==null?void 0:o.type)==="subtitle"){const x=Number(o.x)||0,f=Number(o.y)||0,c=Math.max(24,Number(o.w)||90),m=Math.max(8,Number(o.h)||14),h=f+m>a-1,y=x>n+i*.28;if(h||y){const w=n+i/2-c/2,$=Math.max(l,Math.min(g-b-c,w));return v(M({},o),{x:$,y:Math.max(2,a-m-8),style:v(M({},o.style||{}),{textAlign:"center"})})}}if((o==null?void 0:o.type)==="date"){const x=Number(o.x)||0,f=Number(o.y)||0,c=Math.max(28,Number(o.w)||55),m=Math.max(8,Number(o.h)||10),h=f+m>a+2,y=x+c<n+i*.5;if(h||y)return v(M({},o),{x:Math.max(l,g-b-c),y:Math.max(2,a-m-4),style:v(M({},o.style||{}),{textAlign:"right"})})}return o});return v(M({},t),{elements:p})}function Fe(t){const r=t.elements.map(e=>{if((e==null?void 0:e.type)!=="table"&&(e==null?void 0:e.type)!=="detailTable"||e.enableMultiHeader!==!0)return e;const a=e.headerConfig,n=Array.isArray(a==null?void 0:a.cells)?a.cells:[],i=Math.max(1,Number((a==null?void 0:a.rowCount)||1)),g=n.filter(p=>{var d;return String((d=p==null?void 0:p.title)!=null?d:"").trim().length>0});if(g.length===0){const s=e,{headerConfig:p,enableMultiHeader:d}=s,u=ot(s,["headerConfig","enableMultiHeader"]);return v(M({},u),{enableMultiHeader:!1})}if(i>=2&&g.length<i){const l=e,{headerConfig:p,enableMultiHeader:d}=l,u=ot(l,["headerConfig","enableMultiHeader"]);return v(M({},u),{enableMultiHeader:!1})}if(n.length>=4&&g.length<Math.max(2,Math.ceil(n.length*.25))){const b=e,{headerConfig:p,enableMultiHeader:d}=b,u=ot(b,["headerConfig","enableMultiHeader"]);return v(M({},u),{enableMultiHeader:!1})}return e});return v(M({},t),{elements:r})}export{le as a,Fe as b,He as c,Ce as n,Te as r,Ne as u};