Files
qhmes/deploy-qhmes/frontend/js/TableElement-2CbVDip4.js
2026-05-15 11:34:12 +08:00

3 lines
15 KiB
Java

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/JsBarcode-txZyu78K.js","js/antd-vue-vendor-BPnV8VqP.js","js/vue-vendor-C7Zq48Yl.js","js/JsBarcode-Cs4ZrpMU.js"])))=>i.map(i=>d[i]);
var Xe=Object.defineProperty,je=Object.defineProperties;var Je=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable;var ne=Math.pow,be=(v,h,o)=>h in v?Xe(v,h,{enumerable:!0,configurable:!0,writable:!0,value:o}):v[h]=o,F=(v,h)=>{for(var o in h||(h={}))Ye.call(h,o)&&be(v,o,h[o]);if(ye)for(var o of ye(h))Ze.call(h,o)&&be(v,o,h[o]);return v},V=(v,h)=>je(v,Je(h));var we=(v,h,o)=>new Promise((A,K)=>{var q=w=>{try{N(o.next(w))}catch(R){K(R)}},T=w=>{try{N(o.throw(w))}catch(R){K(R)}},N=w=>w.done?A(w.value):Promise.resolve(w.value).then(q,T);N((o=o.apply(v,h)).next())});import{_ as et,d as tt}from"./index-BI6CMai0.js";import{d as nt,h as rt,e as b,ar as d,as as l,au as Y,ag as P,F as g,aD as L,aB as _,A as Z,at as ce,f as D,aO as ke,G as B,av as z,n as at}from"./vue-vendor-C7Zq48Yl.js";import{Q as st}from"./browser-INOPQ3v-.js";import{b as Se}from"./tableMerge-CpKVscEF.js";import{n as ot,g as it,r as ut}from"./tableBuilder-lOY0L2dW.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";const dt={key:0},lt=["rowspan","colspan","onClick","onDblclick"],ft=["value"],mt=["onPointerdown"],ht=["colspan"],pt=["rowspan"],gt=["src"],vt=["src"],yt=["src"],bt={key:1},wt={class:"table-footer-row"},ct=nt({__name:"TableElement",props:{element:{},previewData:{},selectedColumnKey:{},isElementSelected:{type:Boolean}},emits:["select-column","update-columns","update-header-config"],setup(v,{emit:h}){const o=v,A=h,K=D(null),q=D(null),T=D(""),N=D(""),w=D(""),R=D({}),G=D({}),xe=b(()=>{const e=ut(o.element,o.previewData||{});return e.length?e:[{field1:"示例A",field2:"示例B",field3:"示例C"}]}),c=b(()=>xe.value),Ce=b(()=>{const e=[],t=Math.max(1,Number(o.element.fixedRows||5)),n=(r,a)=>{oe.value&&(r>=a||e.push({kind:"footer",key:`footer_${r}_${a}`,start:r,end:a}))};if(c.value.forEach((r,a)=>{if(Ge(a)){const i=Math.max(0,a-t);n(i,a),e.push({kind:"marker",key:`marker_${a}`,pageNo:Ie(a)})}e.push({kind:"data",key:`data_${a}`,row:r,rowIndex:a})}),c.value.length){const r=c.value.length,a=Math.floor((r-1)/t)*t;n(a,r)}return e}),k=b(()=>ot(o.element)),re=b(()=>Ae()),I=b(()=>Math.max(1,re.value.length)),ae=b(()=>{if(!j())return Se(c.value,o.element.columns,o.element.mergeColumnKeys||[],o.element.strictGrouping!==!1);const e=Math.max(1,Number(o.element.fixedRows||5)),t={};for(let n=0;n<c.value.length;n+=e){const r=c.value.slice(n,n+e),a=Se(r,o.element.columns,o.element.mergeColumnKeys||[],o.element.strictGrouping!==!1);Object.entries(a).forEach(([i,f])=>{const[y,p]=i.split("_"),$=Number(y)+n;t[`${$}_${p}`]=f})}return t}),se=b(()=>o.element.footerShowTotal!==!1),oe=b(()=>se.value&&j()&&String(o.element.footerTotalMode||"overall")==="page"),ie=b(()=>String(o.element.footerLabelText||"合计")),ue=b(()=>{var e,t;return String(o.element.footerLabelColumnKey||((t=(e=k.value)==null?void 0:e[0])==null?void 0:t.key)||"")}),_e=b(()=>o.element.footerLabelCenter!==!1),Me=b(()=>({height:`${(o.element.headerHeight||10)/I.value}mm`})),$e=b(()=>({height:`${o.element.rowHeight||8}mm`}));function Fe(e,t){return ae.value[`${e}_${t}`]||1}function Ne(e,t){return ae.value[`${e}_${t}`]!==0}function E(e,t){const n=it(e||{},t);return n!=null?n:""}function M(e){return String((e==null?void 0:e.contentType)||"text")}function de(e){const t=M(e);return t==="number"||t==="amount"}function Q(e){return de(e)&&!!(e!=null&&e.enableFooterTotal)}function Re(e){const t=(e==null?void 0:e.bindField)||(e==null?void 0:e.field);return We().reduce((n,r)=>{const a=Number(E(r,t));return n+(Number.isFinite(a)?a:0)},0)}function Ee(e,t,n){const r=(e==null?void 0:e.bindField)||(e==null?void 0:e.field);return c.value.slice(t,n).reduce((a,i)=>{const f=Number(E(i,r));return a+(Number.isFinite(f)?f:0)},0)}function We(){if(String(o.element.footerTotalMode||"overall")!=="page"||!j())return c.value;const t=Math.max(1,Number(o.element.fixedRows||5)),n=c.value.length;if(!n)return[];const r=Math.floor((n-1)/t)*t;return c.value.slice(r,r+t)}function X(e,t){var f;const n=Number(e);if(!Number.isFinite(n))return String(e!=null?e:"");const r=Math.max(0,Math.min(6,Number((f=t==null?void 0:t.decimalPlaces)!=null?f:2))),i=((t==null?void 0:t.roundHalfUp)===!1?Math.trunc(n*ne(10,r))/ne(10,r):Number(n.toFixed(r))).toLocaleString(void 0,{minimumFractionDigits:r,maximumFractionDigits:r});return M(t)==="amount"?`${(t==null?void 0:t.amountType)==="USD"?"$":(t==null?void 0:t.amountType)==="EUR"?"EUR ":"¥"}${i}`:i}function ee(e,t){const n=String((e==null?void 0:e.key)||"");return ue.value?n===ue.value:t===0}function le(e,t){const n=ve(e,{});return ee(e,t)&&!Q(e)&&(n.textAlign=_e.value?"center":"left",n.fontWeight=600),Q(e)&&(n.fontWeight=600,n.background="#fafafa"),n}function ze(e,t){const n=E(e,t.bindField||t.field),r=String(n||"").trim();return r||`https://via.placeholder.com/180x80.png?text=${encodeURIComponent((t==null?void 0:t.title)||"Image")}`}function te(e,t){const n=(e==null?void 0:e.fillCell)!==!1,r=Math.max(10,Math.min(100,Number((e==null?void 0:e.contentScale)||100))),a=`${r}%`,i={display:"block",margin:"0 auto",maxWidth:"100%",maxHeight:"100%",objectFit:t==="image"&&(e==null?void 0:e.imageFit)||"contain"};return n?(i.width="100%",i.height="100%"):(i.width=a,i.height=t==="barcode"?`${Math.max(20,r*.6)}%`:a),i}function fe(e,t){const n=String(E(e,t.bindField||t.field)||`${(t==null?void 0:t.title)||"qrcode"}_empty`),r=`${(t==null?void 0:t.qrLevel)||"M"}|${(t==null?void 0:t.qrRenderType)||"image/png"}|${n}`;return R.value[r]?R.value[r]:(st.toDataURL(n,{errorCorrectionLevel:(t==null?void 0:t.qrLevel)||"M",margin:0,type:(t==null?void 0:t.qrRenderType)||"image/png",width:200}).then(a=>{R.value=V(F({},R.value),{[r]:a})}).catch(()=>{}),"")}function Te(e,t){return we(this,null,function*(){const n=yield et(()=>import("./JsBarcode-txZyu78K.js").then(i=>i.J),__vite__mapDeps([0,1,2,3])),r=n.default||n,a=document.createElement("canvas");return r(a,e||"00000000",{format:t||"CODE128",displayValue:!1,margin:0,width:2,height:70}),a.toDataURL("image/png")})}function me(e,t){const n=String(E(e,t.bindField||t.field)||"00000000"),r=String((t==null?void 0:t.barcodeFormat)||"CODE128"),a=`${r}|${n}`;return G.value[a]?G.value[a]:(Te(n,r).then(i=>{G.value=V(F({},G.value),{[a]:i})}).catch(()=>{}),"")}function he(e){if(!Ve(e))return;const t=String((e==null?void 0:e.columnKey)||(e==null?void 0:e.key)||"");t&&A("select-column",{columnKey:t})}function He(e){o.isElementSelected&&he(e)}function Pe(e){he(e),T.value=String((e==null?void 0:e.id)||""),N.value=String((e==null?void 0:e.columnKey)||(e==null?void 0:e.key)||""),w.value=String((e==null?void 0:e.title)||""),at(()=>{var t,n;(t=q.value)==null||t.focus(),(n=q.value)==null||n.select()})}function pe(){var r,a;const e=String(w.value||"").trim()||"未命名列",t=T.value,n=(r=o.element)==null?void 0:r.headerConfig;if(t&&((a=n==null?void 0:n.cells)!=null&&a.length)){const i=V(F({},n),{cells:n.cells.map(f=>(f==null?void 0:f.id)===t?V(F({},f),{title:e}):F({},f))});A("update-header-config",{headerConfig:i})}else{const i=N.value,f=(o.element.columns||[]).map(p=>F({},p)),y=f.find(p=>(p==null?void 0:p.key)===i);y&&(y.title=e,A("update-columns",{columns:f}))}T.value="",N.value=""}function Le(){T.value="",N.value=""}function De(e,t){var s,u,m;const n=Array.isArray(o.element.columns)?o.element.columns:[];if(!n.length||t<0||t>=n.length-1)return;const r=Math.max(1,((s=K.value)==null?void 0:s.clientWidth)||1),a=n.reduce((W,x)=>W+Number((x==null?void 0:x.width)||0),0)||1,i=Number(((u=n[t])==null?void 0:u.width)||0),f=Number(((m=n[t+1])==null?void 0:m.width)||0),y=e.clientX,p=10,$=W=>{const U=(W.clientX-y)/r*a,O=-(i-p),J=f-p,C=Math.max(O,Math.min(J,U)),S=n.map(Qe=>F({},Qe));S[t].width=Number((i+C).toFixed(2)),S[t+1].width=Number((f-C).toFixed(2)),A("update-columns",{columns:S})},H=()=>{window.removeEventListener("pointermove",$),window.removeEventListener("pointerup",H)};window.addEventListener("pointermove",$),window.addEventListener("pointerup",H)}function Be(e){var i;const t=((i=k.value)==null?void 0:i[e.col])||{},n=Ue(t),r=ge(e),a=(o.element.headerHeight||10)/I.value*Number(e.rowspan||1);return{textAlign:e.align||t.align||"center",height:`${a}mm`,lineHeight:(t==null?void 0:t.autoWrap)===!1?`${a}mm`:"1.3",backgroundColor:r?"#e6f4ff":o.element.headerBgColor||"#f5f5f5",color:r?"#1677ff":(t==null?void 0:t.fontColor)||o.element.headerTextColor||"#111111",fontFamily:(t==null?void 0:t.fontFamily)||"inherit",fontSize:`${n}px`,whiteSpace:(t==null?void 0:t.autoWrap)===!1?"nowrap":"normal",wordBreak:(t==null?void 0:t.autoWrap)===!1?"normal":"break-all",overflowWrap:(t==null?void 0:t.autoWrap)===!1?"normal":"anywhere",boxSizing:"border-box",boxShadow:r?"inset 0 0 0 2px #1677ff":"none",position:"relative",zIndex:r?1:0}}function Ae(){var p,$,H;const e=k.value||[],t=e.length;if(!t)return[];if(o.element.enableMultiHeader!==!0)return[e.map((s,u)=>({id:`single_${u}`,row:0,col:u,rowspan:1,colspan:1,title:String((s==null?void 0:s.title)||""),align:(s==null?void 0:s.align)||"center",widthPercent:Number((s==null?void 0:s.widthPercent)||0),columnKey:s==null?void 0:s.key}))];const n=(p=o.element)==null?void 0:p.headerConfig,r=Math.max(1,Number((n==null?void 0:n.rowCount)||1)),a=Array.from({length:r},()=>Array.from({length:t},()=>null)),i=[];(Array.isArray(n==null?void 0:n.cells)&&Number((n==null?void 0:n.colCount)||0)===t?n.cells:[]).forEach(s=>{const u=Math.max(0,Number((s==null?void 0:s.row)||0)),m=Math.max(0,Number((s==null?void 0:s.col)||0)),W=Math.max(1,Number((s==null?void 0:s.rowspan)||1)),x=Math.max(1,Number((s==null?void 0:s.colspan)||1));if(u>=r||m>=t)return;const U=Math.min(r,u+W),O=Math.min(t,m+x);if(a[u][m])return;for(let C=u;C<U;C+=1)for(let S=m;S<O;S+=1)if(a[C][S])return;const J={id:String((s==null?void 0:s.id)||`h_${u}_${m}`),row:u,col:m,rowspan:U-u,colspan:O-m,title:String((s==null?void 0:s.title)||""),align:String((s==null?void 0:s.align)||"center")};for(let C=u;C<U;C+=1)for(let S=m;S<O;S+=1)a[C][S]=J;i.push(J)});for(let s=0;s<r;s+=1)for(let u=0;u<t;u+=1){if(a[s][u])continue;const m={id:`auto_${s}_${u}`,row:s,col:u,rowspan:1,colspan:1,title:s===r-1?String((($=e[u])==null?void 0:$.title)||""):"",align:((H=e[u])==null?void 0:H.align)||"center"};a[s][u]=m,i.push(m)}const y=Array.from({length:r},()=>[]);return i.forEach(s=>{var m,W;if(a[s.row][s.col]!==s)return;let u=0;for(let x=0;x<s.colspan;x+=1)u+=Number(((m=e[s.col+x])==null?void 0:m.widthPercent)||0);y[s.row].push(V(F({},s),{widthPercent:u,columnKey:(W=e[s.col])==null?void 0:W.key}))}),y.forEach(s=>s.sort((u,m)=>u.col-m.col)),y}function ge(e){const t=String(o.selectedColumnKey||"");if(!t)return!1;const n=k.value.findIndex(r=>(r==null?void 0:r.key)===t);return n<0?!1:n>=e.col&&n<e.col+e.colspan}function Ke(e){return e.row+e.rowspan===I.value&&e.colspan===1&&e.col<k.value.length-1}function Ve(e){return e.row+e.rowspan===I.value&&e.colspan===1}function ve(e,t){const n=E(t,e.bindField||e.field),r=de(e)?String(X(n,e)):String(n!=null?n:""),a=Oe(e,r);return{textAlign:e.align||"left",height:`${o.element.rowHeight||8}mm`,lineHeight:(e==null?void 0:e.autoWrap)===!1?`${o.element.rowHeight||8}mm`:"1.3",fontFamily:(e==null?void 0:e.fontFamily)||"inherit",fontSize:`${a}px`,color:(e==null?void 0:e.fontColor)||"#111111",whiteSpace:(e==null?void 0:e.autoWrap)===!1?"nowrap":"normal",wordBreak:(e==null?void 0:e.autoWrap)===!1?"normal":"break-all",overflowWrap:(e==null?void 0:e.autoWrap)===!1?"normal":"anywhere",boxSizing:"border-box"}}function qe(e,t,n,r){var u;const a=Number(r||12);if(!(e!=null&&e.autoFitFont))return a;const i=Math.max(1,((u=K.value)==null?void 0:u.clientWidth)||600),f=Math.max(1,i*Number((e==null?void 0:e.widthPercent)||0)/100),y=Math.max(1,n*3.7795275591),p=Math.max(1,t.length),$=f/Math.max(1,p*.62),H=(e==null?void 0:e.autoWrap)===!1?y*.55:y*.36,s=Math.min(a,$,H);return Math.max(8,Math.round(s))}function Ue(e){return Number(o.element.headerFontSize||12)}function Oe(e,t){const n=e!=null&&e.useCustomFontSize?Number((e==null?void 0:e.fontSize)||12):Number(o.element.bodyFontSize||12);return qe(e,t,o.element.rowHeight||8,n)}function Ge(e){if(!j())return!1;const t=Math.max(1,Number(o.element.fixedRows||5));return e>0&&e%t===0}function Ie(e){const t=Math.max(1,Number(o.element.fixedRows||5));return Math.floor(e/t)+1}function j(){return String(o.element.tableHeightMode||"autoPage")==="fixedRows"}return rt(()=>{const e=c.value||[],t=k.value||[];e.forEach(n=>{t.forEach(r=>{const a=M(r);a==="qrcode"?fe(n,r):a==="barcode"&&me(n,r)})})}),(e,t)=>(l(),d("div",{ref_key:"tableWrapRef",ref:K,class:"table-element"},[Y("table",null,[Y("colgroup",null,[(l(!0),d(g,null,L(k.value,n=>(l(),d("col",{key:`col_width_${n.key}`,style:_({width:`${n.widthPercent||0}%`})},null,4))),128))]),v.element.showHeader?(l(),d("thead",dt,[(l(!0),d(g,null,L(re.value,(n,r)=>(l(),d("tr",{key:`header_row_${r}`,style:_(Me.value)},[(l(!0),d(g,null,L(n,a=>(l(),d("th",{key:a.id,rowspan:a.rowspan,colspan:a.colspan,class:ce({"is-selected-col":ge(a)}),style:_(Be(a)),onClick:i=>He(a),onDblclick:Z(i=>Pe(a),["stop"])},[T.value===a.id?(l(),d("input",{key:0,ref_for:!0,ref_key:"editingInputRef",ref:q,class:"header-inline-input",value:w.value,onInput:t[0]||(t[0]=i=>w.value=i.target.value),onBlur:t[1]||(t[1]=i=>pe()),onKeydown:[t[2]||(t[2]=ke(Z(i=>pe(),["prevent"]),["enter"])),t[3]||(t[3]=ke(Z(i=>Le(),["prevent"]),["esc"]))]},null,40,ft)):(l(),d(g,{key:1},[B(z(a.title),1)],64)),Ke(a)?(l(),d("span",{key:2,class:"col-resize-handle",onPointerdown:Z(i=>De(i,a.col),["stop","prevent"])},null,40,mt)):P("",!0)],46,lt))),128))],4))),128))])):P("",!0),Y("tbody",null,[(l(!0),d(g,null,L(Ce.value,n=>(l(),d("tr",{key:n.key,style:_(n.kind==="data"?$e.value:void 0),class:ce({"page-break-marker-row":n.kind==="marker"})},[n.kind==="marker"?(l(),d("td",{key:0,colspan:Math.max(1,k.value.length),class:"page-break-marker-cell"}," "+z(n.pageNo)+" 页起始 ",9,ht)):n.kind==="footer"?(l(!0),d(g,{key:1},L(k.value,(r,a)=>(l(),d("td",{key:`${n.key}_${r.key}`,style:_(le(r,a))},[Q(r)?(l(),d(g,{key:0},[B(z(X(Ee(r,n.start,n.end),r)),1)],64)):ee(r,a)?(l(),d(g,{key:1},[B(z(ie.value),1)],64)):P("",!0)],4))),128)):(l(!0),d(g,{key:2},L(k.value,r=>(l(),d(g,{key:`${n.rowIndex}_${r.key}`},[Ne(n.rowIndex,r.bindField||r.field)?(l(),d("td",{key:0,rowspan:Fe(n.rowIndex,r.bindField||r.field),style:_(ve(r,n.row))},[M(r)==="text"?(l(),d(g,{key:0},[B(z(E(n.row,r.bindField||r.field)),1)],64)):M(r)==="number"||M(r)==="amount"?(l(),d(g,{key:1},[B(z(X(E(n.row,r.bindField||r.field),r)),1)],64)):M(r)==="image"?(l(),d("img",{key:2,class:"table-media",src:ze(n.row,r),style:_(te(r,"image"))},null,12,gt)):M(r)==="qrcode"?(l(),d("img",{key:3,class:"table-media",src:fe(n.row,r),style:_(te(r,"qrcode"))},null,12,vt)):M(r)==="barcode"?(l(),d("img",{key:4,class:"table-media",src:me(n.row,r),style:_(te(r,"barcode"))},null,12,yt)):P("",!0)],12,pt)):P("",!0)],64))),128))],6))),128))]),se.value&&!oe.value?(l(),d("tfoot",bt,[Y("tr",wt,[(l(!0),d(g,null,L(k.value,(n,r)=>(l(),d("td",{key:`footer_${n.key}`,style:_(le(n,r))},[Q(n)?(l(),d(g,{key:0},[B(z(X(Re(n),n)),1)],64)):ee(n,r)?(l(),d(g,{key:1},[B(z(ie.value),1)],64)):P("",!0)],4))),128))])])):P("",!0)])],512))}}),Nt=tt(ct,[["__scopeId","data-v-e86f2c1f"]]);export{Nt as default};