57 lines
61 KiB
Java
57 lines
61 KiB
Java
|
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/vue-plugin-hiprint-f7b0vEHA.js","js/emoji-mart-vue-fast-R0uJEDq-.js","js/JsBarcode-9Xoda2fA.js","js/index-X7Y8jykP.js","js/vue-vendor-DNhG1Cve.js","assets/index-GuhSw_Yp.css","js/browser-CC9DCAWJ.js","js/stackblur-es-DK4L4ctA.js"])))=>i.map(i=>d[i]);
|
||
|
|
var ln=Object.defineProperty,fn=Object.defineProperties;var cn=Object.getOwnPropertyDescriptors;var tr=Object.getOwnPropertySymbols;var gn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable;var rr=(Y,q,I)=>q in Y?ln(Y,q,{enumerable:!0,configurable:!0,writable:!0,value:I}):Y[q]=I,V=(Y,q)=>{for(var I in q||(q={}))gn.call(q,I)&&rr(Y,I,q[I]);if(tr)for(var I of tr(q))yn.call(q,I)&&rr(Y,I,q[I]);return Y},Ke=(Y,q)=>fn(Y,cn(q));var Q=(Y,q,I)=>new Promise(($,Ae)=>{var Fe=j=>{try{_e(I.next(j))}catch(xe){Ae(xe)}},Re=j=>{try{_e(I.throw(j))}catch(xe){Ae(xe)}},_e=j=>j.done?$(j.value):Promise.resolve(j.value).then(Fe,Re);_e((I=I.apply(Y,q)).next())});import{s as hn,aE as pn,aU as bn,_ as mn,aX as vn,bR as wn,av as Sn,aF as An,aG as Fn,aw as _n,au as xn}from"./index-X7Y8jykP.js";import{r as En,d as We,a as nr,b as Tn}from"./qhmesProvider-MWkGjy8y.js";import{e as $n,o as Nn,W as kn,a as Hn,h as Ye,x as On,C as D,z,Q as T,f as v,H as Xe,r as ee,G as oe,A,F as ge,D as Se,u as Rn,c as Le,K as Jn,p as Bn,n as Ze,E as k,y as ar,J as In}from"./vue-vendor-DNhG1Cve.js";import{f as St,s as Pn,e as zn}from"./printTemplate.api-Dfuyi-ab.js";import{T as qn}from"./index-J2mOtM3w.js";import{D as Cn}from"./index-DZJwICFr.js";import Wn from"./index-DklMb9Qc.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./isNumeric-DjvBa-1E.js";import"./UpOutlined-B1UMbtrP.js";const At="qhmes_quick_print_preview_v1",Ln={class:"print-designer-page"},Dn={class:"designer-toolbar"},jn={class:"toolbar-left"},Mn={key:0,class:"toolbar-subtitle"},Un={key:1,class:"toolbar-subtitle"},Gn={class:"toolbar-right"},Qn={class:"designer-main"},Vn={class:"designer-panel left"},Kn={class:"drag-list"},Yn=["tid"],Xn={class:"drag-label"},Zn={class:"drag-tip"},ea={class:"data-tips"},ta={class:"designer-panel right"},ra={class:"group-toolbar"},na={class:"group-bound-tip"},aa={key:0,class:"group-bound-empty"},sa={class:"group-preview"},ia={class:"group-preview-table"},oa=["rowspan"],ua={class:"header-editor"},da={class:"header-editor-content"},la={class:"header-row-top"},sr=!1,ye="qhmesMergeCenterFields",Oe="qhmesColumnGroups",fa=$n({name:"PrintDesigner",__name:"PrintDesigner",setup(Y){const q=kn(),I=Bn(),{createMessage:$}=hn(),Ae=ee("template"),Fe=ee(!1),Re=ee(!1),_e=ee(!1),j=ee(""),xe=ee(""),_=ee(""),ne=ee(""),he=ee({}),x=ee([]),te=ee([]),E=ee([]),ir=Le(()=>{const e=Object.keys(he.value||{});return e.length?e:["docNo","orderNo","mainTable","detailList"]}),Ft=Le(()=>te.value),et=Le(()=>new Set(x.value)),_t=Le(()=>{const e=he.value||{},r=x.value||[];let t=[],n=-1;return Object.keys(e).forEach(s=>{const i=e[s];if(!Array.isArray(i)||!i.length||typeof i[0]!="object")return;const a=Object.keys(i[0]||{}),o=r.filter(d=>a.includes(d)).length;o>n&&(n=o,t=i)}),t}),xt=Le(()=>{const e={},r=_t.value||[],t=x.value||[];return!r.length||!t.length||t.forEach(n=>{var i,a;let s=0;for(;s<r.length;){const o=(i=r[s])==null?void 0:i[n];let d=s+1;for(;d<r.length&&((a=r[d])==null?void 0:a[n])===o;)d+=1;const l=d-s;e[`${s}_${n}`]=l;for(let u=s+1;u<d;u+=1)e[`${u}_${n}`]=0;s=d}}),e});let pe=null,W=null,tt=!1,rt=!1,nt={},at="",st="",ue=[],de=null,be=null,me=null,re=null,Et=0,it=!1;function Tt(e){return`${e}_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function H(e){let r=String(e!=null?e:"").trim();if(!r)return"";const t=r.match(/^\{\{\s*([^}]+)\s*\}\}$/);return t!=null&&t[1]&&(r=t[1].trim()),r=r.replace(/^item\./i,"").trim(),r}function Je(e){const r=(e==null?void 0:e.field)||(e==null?void 0:e.dataIndex)||(e==null?void 0:e.key)||(e==null?void 0:e.name)||(e==null?void 0:e.titleField)||"";return{id:(e==null?void 0:e.id)||Tt("col"),title:(e==null?void 0:e.title)||(e==null?void 0:e.label)||(e==null?void 0:e.text)||r||"未命名列",field:r,width:Number((e==null?void 0:e.width)||(e==null?void 0:e.minWidth))||90,align:(e==null?void 0:e.align)||"center"}}function $t(e){if(!Array.isArray(e)||!e.length)return[];if(Array.isArray(e[0])){const t=e.filter(o=>Array.isArray(o));if(!t.length)return[];const n=t[0]||[],s=t[t.length-1]||[];if(!n.length||!s.length)return[];const i=[];let a=0;if(n.forEac
|
||
|
|
const leafFields = ${t};
|
||
|
|
const selectedFields = ${n};
|
||
|
|
const rows = Array.isArray(data) ? data : [];
|
||
|
|
let cIndex = -1;
|
||
|
|
let rIndex = -1;
|
||
|
|
const a2 = arguments[2];
|
||
|
|
const a3 = arguments[3];
|
||
|
|
const a4 = arguments[4];
|
||
|
|
const isNum = (v) => typeof v === 'number' && !isNaN(v);
|
||
|
|
|
||
|
|
// 常见签名1: (data, row, colIndex, rowIndex)
|
||
|
|
if (isNum(a2) && isNum(a3)) {
|
||
|
|
cIndex = a2;
|
||
|
|
rIndex = a3;
|
||
|
|
}
|
||
|
|
// 常见签名2: (data, row, col, rowIndex, colIndex)
|
||
|
|
if (typeof a2 === 'object' && isNum(a3) && isNum(a4)) {
|
||
|
|
rIndex = a3;
|
||
|
|
cIndex = a4;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 兜底:扫描全部数字参数推断
|
||
|
|
if (cIndex < 0 || rIndex < 0) {
|
||
|
|
const nums = [];
|
||
|
|
for (let i = 2; i < arguments.length; i += 1) {
|
||
|
|
if (isNum(arguments[i])) nums.push(arguments[i]);
|
||
|
|
}
|
||
|
|
for (let i = 0; i < nums.length; i += 1) {
|
||
|
|
const n = nums[i];
|
||
|
|
if (cIndex < 0 && n >= 0 && n < leafFields.length) cIndex = n;
|
||
|
|
if (rIndex < 0 && n >= 0 && n < rows.length) rIndex = n;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 兼容 1-based 索引
|
||
|
|
if (cIndex >= leafFields.length && cIndex - 1 >= 0 && cIndex - 1 < leafFields.length) cIndex = cIndex - 1;
|
||
|
|
if (rIndex >= rows.length && rIndex - 1 >= 0 && rIndex - 1 < rows.length) rIndex = rIndex - 1;
|
||
|
|
|
||
|
|
const field = leafFields[cIndex];
|
||
|
|
if (!field || selectedFields.indexOf(field) === -1) return [1, 1];
|
||
|
|
if (!rows.length || rIndex < 0 || rIndex >= rows.length) return [1, 1];
|
||
|
|
const currentValue = rows[rIndex] ? rows[rIndex][field] : undefined;
|
||
|
|
if (rIndex > 0) {
|
||
|
|
const prev = rows[rIndex - 1] ? rows[rIndex - 1][field] : undefined;
|
||
|
|
if (prev === currentValue) return [0, 1];
|
||
|
|
}
|
||
|
|
let span = 1;
|
||
|
|
for (let i = rIndex + 1; i < rows.length; i += 1) {
|
||
|
|
const nextValue = rows[i] ? rows[i][field] : undefined;
|
||
|
|
if (nextValue === currentValue) span += 1;
|
||
|
|
else break;
|
||
|
|
}
|
||
|
|
return [span, 1];
|
||
|
|
`)}function mr(e){if(!e||!Array.isArray(e.panels))return 0;const r=P(x.value,!1);if(!r.length)return 0;let t=0;const n=e.panels||[];for(const s of n){const i=Array.isArray(s==null?void 0:s.printElements)?s.printElements:[];for(const a of i){if(!ae(a))continue;const o=(a==null?void 0:a.options)||{},d=He(o);if(d.length&&r.some(l=>d.includes(l))){const l=br(d,r);o.rowsColumnsMerge=l,o.rowColumnsMerge=l,o.rowsColumnsMergeFn=l,o.tableOptions=o.tableOptions||{},o.tableOptions.rowsColumnsMerge=l,o.tableOptions.rowColumnsMerge=l,a.options=o,a.rowsColumnsMerge=l,t+=1}}}return t}function Rt(){const e=P(x.value,!1);if(!e.length)return"";const r=e.flatMap(i=>nt[i]||[]),t=Array.from(new Set(r)).sort((i,a)=>i-a);return t.length?`${t.map(i=>{const a=`.hiprint-printElement table tbody tr td:nth-child(${i})`,o=`${a}:empty,${a}:has(> div:empty),${a}:has(> span:empty),${a}:has(> p:empty),${a}:has(> *:only-child:empty)`,d=`.hiprint-printElement table tbody tr:has(+ tr ${a}:empty) ${a},.hiprint-printElement table tbody tr:has(+ tr ${a}:has(> div:empty)) ${a},.hiprint-printElement table tbody tr:has(+ tr ${a}:has(> span:empty)) ${a},.hiprint-printElement table tbody tr:has(+ tr ${a}:has(> p:empty)) ${a},.hiprint-printElement table tbody tr:has(+ tr ${a}:has(> *:only-child:empty)) ${a}`;return`${a}{text-align:center !important;vertical-align:middle !important;}${o}{border-top:none !important;}${d}{border-bottom:none !important;}`}).join("")}table.qhmes-merge-table{page-break-inside:auto;}table.qhmes-merge-table thead{display:table-header-group;}table.qhmes-merge-table tbody tr{page-break-inside:avoid;break-inside:avoid;}table.qhmes-merge-table tbody td.qhmes-vmerge-continue{border-top:none !important;}table.qhmes-merge-table tbody td,table.qhmes-merge-table tbody th{vertical-align:middle;}`:""}function Jt(e){const r=P(x.value,!1);if(!r.length)return e;const t=V({},e);return Object.keys(t).forEach(n=>{const s=t[n];if(!Array.isArray(s)||!s.length||typeof s[0]!="object"||!r.some(d=>d in s[0]))return;const a=s.map(d=>V({},d)),o=s.map(d=>V({},d));r.forEach(d=>{var l,u;for(let f=1;f<o.length;f+=1)((l=a[f])==null?void 0:l[d])===((u=a[f-1])==null?void 0:u[d])&&(o[f][d]="")}),t[n]=o}),t}function ut(e){return String(e!=null?e:"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function dt(e){if(Array.isArray(ue)&&ue.length)return ue;const r=[e==null?void 0:e.headerColumns,e==null?void 0:e.columns,e==null?void 0:e.tableColumns];for(const t of r)if(!(!Array.isArray(t)||!t.length))return Array.isArray(t[0])?t.map(n=>Array.isArray(n)?n:[]):[t];return Array.isArray(e==null?void 0:e.fields)&&e.fields.length?[e.fields.map(t=>typeof t=="string"?{title:t,field:H(t)}:{title:(t==null?void 0:t.text)||(t==null?void 0:t.title)||(t==null?void 0:t.field),field:H((t==null?void 0:t.field)||(t==null?void 0:t.dataIndex)||(t==null?void 0:t.key))})]:[]}function vr(e){var n,s;const t=[e==null?void 0:e.tableHeaderBackground,e==null?void 0:e.tableHeaderBackgroundColor,e==null?void 0:e.tableHeaderBgColor,e==null?void 0:e.tableHeaderBackGround,e==null?void 0:e.headerBackground,e==null?void 0:e.headerBackgroundColor,e==null?void 0:e.headBackground,e==null?void 0:e.headBackgroundColor,(n=e==null?void 0:e.tableHeaderStyle)==null?void 0:n.background,(s=e==null?void 0:e.tableHeaderStyle)==null?void 0:s.backgroundColor].find(i=>String(i||"").trim());return t?String(t).trim():""}function X(e,r="pt"){const t=String(e!=null?e:"").trim();return t?/^-?\d+(\.\d+)?$/.test(t)?`${t}${r}`:t:""}function Te(e){var i,a,o,d;if(!Array.isArray(e)||!e.length)return[];const r=e.length;let t=0;if(e.forEach(l=>{const u=(Array.isArray(l)?l:[]).reduce((f,g)=>f+(Number((g==null?void 0:g.colspan)||(g==null?void 0:g.colSpan)||1)||1),0);t=Math.max(t,u)}),!t)return[];const n=Array.from({length:r},()=>Array.from({length:t},()=>null));for(let l=0;l<r;l+=1){const u=Array.isArray(e[l])?e[l]:[];let f=0;u.forEach(g=>{for(;f<t&&n[l][f];)f+=1;const S=Number((g==null?void 0:g.rowspan)||(g==null?void 0:g.rowSpan)||1)||1,y=Number((g==null?void 0:g.colspan)||
|