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-CTOhhtqP.js","js/antd-vue-vendor-BPnV8VqP.js","js/vue-vendor-C7Zq48Yl.js","js/JsBarcode-Cs4ZrpMU.js","js/index-BI6CMai0.js","js/vxe-table-vendor-B88kchpX.js","assets/index-CaK6YpON.css","js/browser-B0xVgIeL.js","js/stackblur-es-AyqGX0Lm.js"])))=>i.map(i=>d[i]);
|
||
|
|
var fn=Object.defineProperty,cn=Object.defineProperties;var gn=Object.getOwnPropertyDescriptors;var nr=Object.getOwnPropertySymbols;var yn=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable;var ar=(Y,q,I)=>q in Y?fn(Y,q,{enumerable:!0,configurable:!0,writable:!0,value:I}):Y[q]=I,V=(Y,q)=>{for(var I in q||(q={}))yn.call(q,I)&&ar(Y,I,q[I]);if(nr)for(var I of nr(q))hn.call(q,I)&&ar(Y,I,q[I]);return Y},Xe=(Y,q)=>cn(Y,gn(q));var Q=(Y,q,I)=>new Promise(($,_e)=>{var xe=j=>{try{Ee(I.next(j))}catch(Te){_e(Te)}},Be=j=>{try{Ee(I.throw(j))}catch(Te){_e(Te)}},Ee=j=>j.done?$(j.value):Promise.resolve(j.value).then(xe,Be);Ee((I=I.apply(Y,q)).next())});import{u as pn,_ as bn,d as mn}from"./index-BI6CMai0.js";import{d as vn,aN as wn,aq as Sn,o as An,P as Fn,w as Ze,f as ee,j as _n,ah as te,ar as D,as as z,au as T,k as v,ag as et,av as de,aF as A,G as k,F as pe,aD as Fe,u as xn,aC as sr,e as De,at as En,n as tt}from"./vue-vendor-C7Zq48Yl.js";import{d as Tn,r as $n,a as je,b as ir}from"./qhmesProvider-QOWpSLmN.js";import{q as Ft,s as Nn,e as kn}from"./printTemplate.api-CHChWHTu.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";const _t="qhmes_quick_print_preview_v1",Hn={class:"print-designer-page"},On={class:"designer-toolbar"},Rn={class:"toolbar-left"},Jn={key:0,class:"toolbar-subtitle"},Bn={key:1,class:"toolbar-subtitle"},In={class:"toolbar-right"},Pn={class:"designer-main"},zn={class:"designer-panel left"},qn={class:"drag-list"},Cn=["tid"],Wn={class:"drag-label"},Ln={class:"drag-tip"},Dn={class:"data-tips"},jn={class:"designer-panel right"},Mn={class:"group-toolbar"},Un={class:"group-bound-tip"},Gn={key:0,class:"group-bound-empty"},Qn={class:"group-preview"},Vn={class:"group-preview-table"},Kn=["rowspan"],Yn={class:"header-editor"},Xn={class:"header-editor-content"},Zn={class:"header-row-top"},le=!1,be="qhmesMergeCenterFields",Je="qhmesColumnGroups",ea=vn({name:"PrintDesigner",__name:"PrintDesigner",setup(Y){const q=wn(),I=Sn(),{createMessage:$}=pn(),_e=ee("template"),xe=ee(!1),Be=ee(!1),Ee=ee(!1),j=ee(""),Te=ee(""),_=ee(""),ae=ee(""),se=ee({}),x=ee([]),re=ee([]),E=ee([]),or=De(()=>{const e=Object.keys(se.value||{});return e.length?e:["docNo","orderNo","mainTable","detailList"]}),xt=De(()=>re.value),rt=De(()=>new Set(x.value)),Et=De(()=>{const e=se.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}),Tt=De(()=>{const e={},r=Et.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 me=null,W=null,nt=!1,at=!1,st={},it="",ot="",fe=[],ce=null,ve=null,we=null,ne=null,$t=0,ut=!1;function Nt(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 Ie(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)||Nt("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 kt(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.forEach(o=>{const d=Number((o==null?void 0:o.colspan)||(o==null?void 0:o.colSpan)||1)||1,u=s.slice(a,a+d).map(f=>Ie(f)).filter(f=>!!f.field);u.length&&i.push({title:(o==null?void 0:o.title)||(o==null?void
|
||
|
|
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 vr(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(!ie(a))continue;const o=(a==null?void 0:a.options)||{},d=Re(o);if(d.length&&r.some(l=>d.includes(l))){const l=mr(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 Bt(){const e=P(x.value,!1);if(!e.length)return"";const r=e.flatMap(i=>st[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 It(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 lt(e){return String(e!=null?e:"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ft(e){if(Array.isArray(fe)&&fe.length)return fe;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 wr(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 Ne(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)||
|