@agile-team/mach-report 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ReportPreview-D6VHDUvR.cjs → ReportPreview-D-Us9mrX.cjs} +2 -2
- package/dist/{ReportPreview-BFTfls8h.js → ReportPreview-VCx59rSt.js} +165 -162
- package/dist/{plugin-vi2GjP43.js → plugin-Bo8QqzCz.js} +1 -1
- package/dist/{plugin-9eBK7khj.cjs → plugin-Dh1exwdD.cjs} +1 -1
- package/dist/style.css +1 -1
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +3 -3
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),U=require("@agile-team/mach-report"),T=require("./plugin-
|
|
1
|
+
"use strict";const e=require("vue"),U=require("@agile-team/mach-report"),T=require("./plugin-Dh1exwdD.cjs");function pe(t,r,l={}){const n=l.pxPerMm??3.7795275590551185,a=l.gapPx??18,o=e.ref(0),s=e.ref(800),i=e.computed(()=>(t.value?.pages??[]).map(c=>c.pageHeightMm*n)),m=e.computed(()=>{const c=t.value?.pages??[];let p=0,f=0;for(const b of c)p+=b.pageHeightMm*n+a,f=Math.max(f,b.pageWidthMm*n);return{w:f,h:p}}),h=e.computed(()=>U.computePageWindow({pageHeightsPx:i.value,viewportHeightPx:s.value/r.value,scrollTopPx:o.value/r.value,overscan:1,gapPx:a})),g=e.computed(()=>{const c=t.value;if(!c)return[];const{start:p,end:f}=h.value;return f<p?[]:c.pages.slice(p,f+1).map((b,E)=>({page:b,index:p+E}))});function u(c,p){let f=0;return b=>{f||(f=requestAnimationFrame(()=>{if(f=0,o.value=b.scrollTop,s.value=b.clientHeight||800,p.value<=0)return;const E=b.querySelectorAll(".mrp-page-holder");if(!E.length)return;const B=b.getBoundingClientRect().top+56;let $=1;E.forEach(w=>{w.getBoundingClientRect().top<=B&&($=Number(w.dataset.page??1))}),c.value=Math.max(1,Math.min(p.value,$))}))}}return{contentSize:m,windowRange:h,visiblePages:g,makeScrollHandler:u,refreshViewport(c){c&&(s.value=c.clientHeight||800)}}}function fe(t){const r=e.ref(1),l=e.ref("fit");function n(){requestAnimationFrame(()=>{const o=t();!o||!o.viewport||(r.value=Math.min(1,Math.max(.3,(o.viewport.clientWidth-48)/Math.max(1,o.pageWidthPx))))})}function a(o){o==="fit"?(l.value="fit",n()):(l.value="raw",r.value=o/100)}return{zoom:r,zoomMode:l,applyFitZoom:n,setZoom:a}}const X=8;function Q(){return new Promise(t=>setTimeout(t,0))}function Z(t){return`p${Math.round(t.pageWidthMm)}x${Math.round(t.pageHeightMm)}`}function j(t){const r=new Map;t.pages.forEach(s=>{r.has(Z(s))||r.set(Z(s),s)});const a=`<!doctype html><html><head><meta charset="utf-8"><style>${`.mr-page{margin:0 auto;page-break-after:always;}
|
|
2
2
|
.mr-page tr{break-inside:avoid;page-break-inside:avoid;}
|
|
3
3
|
.mr-comp{break-inside:avoid;page-break-inside:avoid;}
|
|
4
4
|
${[...r.values()].map(s=>`@page ${Z(s)}{size:${Math.round(s.pageWidthMm)}mm ${Math.round(s.pageHeightMm)}mm;margin:0;}`).join(`
|
|
5
5
|
`)}
|
|
6
|
-
body{margin:0;background:#fff;}`}</style></head><body>`,o=t.pages.map(s=>{const i=U.renderPage(s,96,{},document);return i.style.page=Z(s),i.outerHTML});return{head:a,pageChunks:o}}async function Ie(t,r={}){const l={pages:t.flatMap(i=>i.pages)};if(l.pages.length===0)return;const{head:n,pageChunks:a}=j(l),o=document.createElement("iframe");o.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(o);let s=!1;try{const i=o.contentDocument;i.open(),i.write(n);for(let m=0;m<a.length;m++)i.write(a[m]),m%X===X-1&&(r.onProgress?.(m+1,a.length),await Q());i.write("</body></html>"),i.close(),await Q(),r.onProgress?.(a.length,a.length),s=!0,o.contentWindow?.focus(),o.contentWindow?.print()}catch(i){r.onError?.(i instanceof Error?`批量打印失败: ${i.message}`:"批量打印失败")}finally{s?setTimeout(()=>o.remove(),6e4):o.remove()}}function pe(t,r){let l=null,n=!1,a=null;function o(){l?.remove(),l=null}function s(u,c){const f=URL.createObjectURL(u),p=document.createElement("a");p.href=f,p.download=c,p.click(),setTimeout(()=>URL.revokeObjectURL(f),1e4)}async function i(){if(n)return;const u=t.value;if(!u||u.pages.length===0)return;n=!0,o();const{head:c,pageChunks:f}=j(u);l=document.createElement("iframe"),l.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(l);const p=l;try{const b=p.contentDocument;b.open(),b.write(c);for(let E=0;E<f.length;E++)if(b.write(f[E]),E%X===X-1&&await Q(),p!==l)return;b.write("</body></html>"),b.close(),await Q(),p.contentWindow?.focus(),p.contentWindow?.print()}catch{r.onError("调用打印失败,请改用导出 PDF")}finally{n=!1}}async function m(){if(a)return a;const u=t.value;if(!(!u||u.pages.length===0))return a=(async()=>{try{const c=await r.getPdfExporter()(u);s(new Blob([c],{type:"application/pdf"}),"mach-report.pdf")}catch(c){r.onError(c instanceof Error?`PDF 导出失败: ${c.message}`:"PDF 导出失败")}finally{a=null}})(),a}function h(u){const c=t.value;if(!c||c.pages.length===0)return;if(u==="pdf"){m();return}const{head:f,pageChunks:p}=j(c),b=`${f}${p.join("")}</body></html>`;s(new Blob([b],{type:"text/html;charset=utf-8"}),`mach-report.${u==="html"?"html":u}`)}function g(){const u=t.value;if(!u||u.pages.length===0)return;const{head:c,pageChunks:f}=j(u),p=`${c}${f.join("")}</body></html>`,b=new Blob([p],{type:"text/html;charset=utf-8"}),E=URL.createObjectURL(b),B=window.open(E,"_blank");if(!B){r.onError("浏览器拦截了弹窗,请允许弹窗后重试"),URL.revokeObjectURL(E);return}setTimeout(()=>B.print(),400),setTimeout(()=>URL.revokeObjectURL(E),1e4)}return{print:i,exportAs:h,openPdfWindow:g,releasePrintFrame:o}}const ge="mrp-hit";function Ve(t){t.querySelectorAll(`mark.${ge}`).forEach(l=>{const n=l.parentNode;if(n){for(;l.firstChild;)n.insertBefore(l.firstChild,l);l.remove(),n.normalize()}})}function Le(t,r){const l=r.trim();if(!l)return 0;const n=l.toLowerCase(),a=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const m=i.parentElement;return!m||m.closest("mark")||/^(SCRIPT|STYLE)$/.test(m.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(n)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),o=[];for(let i=a.nextNode();i;i=a.nextNode())o.push(i);let s=0;for(const i of o){const m=i.nodeValue??"",h=m.toLowerCase(),g=i.parentElement;if(!g)continue;const u=document.createDocumentFragment();let c=0,f=h.indexOf(n);for(;f>=0;){f>c&&u.appendChild(document.createTextNode(m.slice(c,f)));const p=document.createElement("mark");p.className=ge,p.textContent=m.slice(f,f+l.length),u.appendChild(p),s++,c=f+l.length,f=h.indexOf(n,c)}c<m.length&&u.appendChild(document.createTextNode(m.slice(c))),g.replaceChild(u,i)}return s}function ce(t,r){let l=0,n=t.toLowerCase().indexOf(r);for(;n>=0;)l++,n=t.toLowerCase().indexOf(r,n+r.length);return l}function Oe(t){const{plan:r,gotoPage:l,highlight:n,clearHighlights:a}=t,o=t.debounceMs??200,s=e.ref(!1),i=e.ref(""),m=e.ref(""),h=e.ref(0);let g=null;const u=e.computed(()=>{const w=i.value.trim().toLowerCase(),C=r.value;if(!w||!C)return[];const R=[];return C.pages.forEach((F,K)=>{for(const N of F.components)if(N.grid){for(const D of N.grid.cells??[])for(const O of D??[])if(typeof O?.text=="string")for(let G=0;G<ce(O.text,w);G++)R.push(K)}else if(N.kind==="text"&&typeof N.text=="string")for(let D=0;D<ce(N.text,w);D++)R.push(K)}),R}),c=e.computed(()=>u.value.length);function f(w){if(m.value=w,g&&clearTimeout(g),w.trim()===""){g=null,i.value="",h.value=0;return}g=setTimeout(()=>{g=null,i.value=m.value,h.value=0;const C=u.value[0];C!=null&&l(C+1)},o)}function p(w){const C=u.value.length;C!==0&&(h.value=(h.value+w+C)%C,l(u.value[h.value]+1))}function b(){s.value=!s.value}function E(w){const C=i.value.trim();C&&n(w,C)}function B(w){a(w)}function $(){m.value="",i.value="",h.value=0,g&&clearTimeout(g),g=null}return{visible:s,query:i,matchIndex:h,matchCount:c,toggle:b,onInput:f,onNav:p,apply:E,clear:B,reset:$}}function He(t,r){const l=e.computed(()=>{if(t.value)return!0;if(typeof location>"u")return!1;try{return new URLSearchParams(location.search).get("mrp-debug")==="1"}catch{return!1}}),n=e.computed(()=>!l.value||!r.plan.value?0:Math.round(JSON.stringify(r.plan.value).length/1024)),a=e.computed(()=>!l.value||!r.plan.value?null:{pages:r.pageCount.value,window:`${r.windowRange.value.start}-${r.windowRange.value.end}`,zoom:`${Math.round(r.zoom.value*100)}%`,loadMs:`${r.loadMs.value}ms`,planKB:n.value});return{enabled:l,debugStats:a}}function We(t,r){const{thumbsRoot:l,visible:n,renderThumbCanvas:a}=r;let o=null;function s(h,g){if(!t.value||h.childElementCount>0)return;const u=a(g);u&&(u.style.width="100%",u.style.height="100%",u.style.display="block",h.appendChild(u))}return{schedule:()=>{!n.value||!t.value||!l.value||typeof IntersectionObserver>"u"||(o?.disconnect(),o=new IntersectionObserver(h=>{for(const g of h){if(!g.isIntersecting)continue;const u=g.target;s(u,Number(u.dataset.thumb??1)-1),o?.unobserve(u)}},{root:l.value,rootMargin:"200px"}),l.value.querySelectorAll("[data-thumb]").forEach(h=>{o.observe(h)}))},destroy:()=>{o?.disconnect(),o=null}}}function Ae(){const t=e.shallowRef(0);return{loadMs:t,start(){return typeof performance<"u"?performance.now():0},end(r){t.value=r?Math.round(performance.now()-r):0}}}const Ue={class:"mrp-toolbar"},je={class:"mrp-title"},qe=["disabled"],Ke={class:"mrp-pageinfo"},Ge=["disabled"],Ye={key:1,class:"mrp-search"},Ze=["placeholder","value"],Je={key:0,class:"mrp-search-count"},Xe=["disabled"],Qe=["disabled"],_e=e.defineComponent({__name:"ReportToolbar",props:{pageCount:{},currentPage:{},zoomMode:{},zoom:{},showExport:{type:Boolean},showPrint:{type:Boolean},showPdfWindow:{type:Boolean},messages:{},search:{},thumbsVisible:{type:Boolean}},emits:["goto","zoom","export","print","pdf-window","search-input","search-nav","search-toggle","thumbs-toggle"],setup(t){const r=t,l=e.ref(null);e.watch(()=>r.search.visible,a=>{a&&e.nextTick(()=>l.value?.focus())});function n(a,o,s){return a.replace("{cur}",String(o)).replace("{total}",String(s))}return(a,o)=>(e.openBlock(),e.createElementBlock("div",Ue,[e.createElementVNode("span",je,e.toDisplayString(t.messages.title),1),t.pageCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.currentPage<=1,onClick:o[0]||(o[0]=s=>a.$emit("goto",t.currentPage-1))},e.toDisplayString(t.messages.prevPage),9,qe),e.createElementVNode("span",Ke,e.toDisplayString(n(t.messages.pageInfo,t.currentPage,t.pageCount)),1),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.currentPage>=t.pageCount,onClick:o[1]||(o[1]=s=>a.$emit("goto",t.currentPage+1))},e.toDisplayString(t.messages.nextPage),9,Ge)],64)):e.createCommentVNode("",!0),o[14]||(o[14]=e.createElementVNode("span",{class:"mrp-spacer"},null,-1)),t.search.visible?(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("input",{ref_key:"searchInputRef",ref:l,class:"mrp-search-input",type:"text",placeholder:t.messages.searchPlaceholder,value:t.search.query,onInput:o[2]||(o[2]=s=>a.$emit("search-input",s.target.value))},null,40,Ze),t.search.query?(e.openBlock(),e.createElementBlock("span",Je,e.toDisplayString(n(t.messages.matchInfo,t.search.matchIndex+1,t.search.matchCount)),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.search.matchCount===0,onClick:o[3]||(o[3]=s=>a.$emit("search-nav",-1))},e.toDisplayString(t.messages.prevMatch),9,Xe),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.search.matchCount===0,onClick:o[4]||(o[4]=s=>a.$emit("search-nav",1))},e.toDisplayString(t.messages.nextMatch),9,Qe)])):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.search.visible}]),type:"button",title:"Ctrl+F",onClick:o[5]||(o[5]=s=>a.$emit("search-toggle"))}," 🔍 ",2),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button",onClick:o[6]||(o[6]=s=>a.$emit("thumbs-toggle"))}," ▦ "+e.toDisplayString(t.messages.thumbnails),3),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),type:"button",onClick:o[7]||(o[7]=s=>a.$emit("zoom","fit"))},e.toDisplayString(t.messages.fitWidth),3),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===100}]),type:"button",onClick:o[8]||(o[8]=s=>a.$emit("zoom",100))}," 100% ",2),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===150}]),type:"button",onClick:o[9]||(o[9]=s=>a.$emit("zoom",150))}," 150% ",2),t.showExport?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",onClick:o[10]||(o[10]=s=>a.$emit("export","html"))},e.toDisplayString(t.messages.exportHtml),1)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",onClick:o[11]||(o[11]=s=>a.$emit("export","pdf"))},e.toDisplayString(t.messages.exportPdf),1)):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:4,class:"mrp-nav",type:"button",onClick:o[12]||(o[12]=s=>a.$emit("print"))},e.toDisplayString(t.messages.print),1)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:5,class:"mrp-nav",type:"button",onClick:o[13]||(o[13]=s=>a.$emit("pdf-window"))},e.toDisplayString(t.messages.pdfWindow),1)):e.createCommentVNode("",!0)]))}}),he=(t,r)=>{const l=t.__vccOpts||t;for(const[n,a]of r)l[n]=a;return l},ve=he(_e,[["__scopeId","data-v-f50c26e8"]]),be={title:"报表预览",prevPage:"‹ 上一页",nextPage:"下一页 ›",pageInfo:"{cur} / {total}",fitWidth:"适宽",exportHtml:"导出 HTML",exportPdf:"导出 PDF",print:"打印",pdfWindow:"PDF 窗口",loading:"报表渲染中…",empty:"暂无预览数据",errorPrefix:"",retry:"重试",searchPlaceholder:"搜索报表内容",matchInfo:"{cur}/{total}",prevMatch:"‹",nextMatch:"›",thumbnails:"缩略图"},we={shellBg:"#525659",shellFg:"#e8e8e8",toolbarBg:"#323639",toolbarBorder:"#22252a",toolbarFg:"#e8e8e8",btnFg:"#cfcfcf",btnBorder:"#4a4d52",btnHoverBg:"#414549",btnHoverFg:"#ffffff",btnActiveBg:"#2d5fb8"};function et(t){return t}function tt(t){return t}const L={showExport:!0,showPrint:!0,showPdfWindow:!0,gapPx:18,pdfFontUrl:"/simhei.ttf",logger:console},ot={warn:()=>{},info:()=>{}};function ye(t,r){const l=r?t?.presets?.[r]:t?.defaultPreset?t?.presets?.[t.defaultPreset]:void 0,n={...t?.defaults,...l};return{showExport:n.showExport??L.showExport,showPrint:n.showPrint??L.showPrint,showPdfWindow:n.showPdfWindow??L.showPdfWindow,gapPx:n.gapPx??L.gapPx,pdfFontUrl:n.pdfFontUrl??L.pdfFontUrl,theme:{...we,...n.theme},messages:{...be,...n.messages},logger:n.logger??L.logger}}function Ee(t){const r={};return t.shellBg!=null&&(r["--mrp-shell-bg"]=t.shellBg),t.shellFg!=null&&(r["--mrp-shell-fg"]=t.shellFg),t.toolbarBg!=null&&(r["--mrp-toolbar-bg"]=t.toolbarBg),t.toolbarBorder!=null&&(r["--mrp-toolbar-border"]=t.toolbarBorder),t.toolbarFg!=null&&(r["--mrp-toolbar-fg"]=t.toolbarFg),t.btnFg!=null&&(r["--mrp-btn-fg"]=t.btnFg),t.btnBorder!=null&&(r["--mrp-btn-border"]=t.btnBorder),t.btnHoverBg!=null&&(r["--mrp-btn-hover-bg"]=t.btnHoverBg),t.btnHoverFg!=null&&(r["--mrp-btn-hover-fg"]=t.btnHoverFg),t.btnActiveBg!=null&&(r["--mrp-btn-active-bg"]=t.btnActiveBg),r}function nt(t){const r=e.inject(T.MACH_REPORT_CONFIG_KEY,null),l=e.computed(()=>{const n=r?.value??null,a="defaults"in t&&"presets"in t?t:{defaults:t,presets:{}};return n?{defaults:{...n.defaults,...a.defaults},presets:{...n.presets,...a.presets},defaultPreset:a.defaultPreset??n.defaultPreset}:a});e.provide(T.MACH_REPORT_CONFIG_KEY,l)}function Pe(){return e.inject(T.MACH_REPORT_CONFIG_KEY,e.computed(()=>null))}class q extends Error{constructor(r,l,n){super(l),this.name="MachReportError",this.code=r,this.cause=n}}function ke(t){return t instanceof q?{code:t.code,cause:t.cause}:{code:"render",cause:t}}const rt={class:"mrp-main"},at={key:0,class:"mrp-state"},lt={key:1,class:"mrp-state mrp-error"},st={key:2,class:"mrp-state"},it=["data-page"],ut=["onClick"],ct=["data-thumb"],dt={class:"mrp-thumb-no"},mt={class:"mrp-overlay"},ft={key:0,class:"mrp-debug","aria-hidden":"true"},J=96/25.4,de="mach-report:ui",pt=e.defineComponent({__name:"ReportPreview",props:{tempId:{type:[String,Array],default:null},furnitureTempId:{type:String,default:""},params:{type:Object,default:()=>({})},height:{type:String,default:"100vh"},autoLoad:{type:Boolean,default:!0},showExport:{type:Boolean,default:void 0},showPrint:{type:Boolean,default:void 0},showPdfWindow:{type:Boolean,default:void 0},gapPx:{type:Number,default:void 0},messages:{type:Object,default:void 0},preset:{type:String,default:void 0},debug:{type:Boolean,default:!1},fetcher:{type:Function,default:null}},emits:["loaded","error"],setup(t,{expose:r,emit:l}){e.useCssVars(d=>({v6094bc50:p.value+"px"}));const n=t,a=l,o=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),m=e.ref(1),h=e.ref(null),g=e.ref(null),u=e.ref(null),c=e.ref(!1),f=Ae(),p=e.computed(()=>Math.max(0,O.value)),b=e.inject(T.MACH_REPORT_FETCHER_KEY,null),B=e.inject(T.MACH_REPORT_PDF_EXPORTER_KEY,null)??T.createDefaultPdfExporter({fontUrl:"/simhei.ttf"}),$=e.computed(()=>T.normalizeTempIds(n.tempId)),w=e.computed(()=>o.value?.pages.length??0),C=Pe(),R=e.computed(()=>ye(C.value,n.preset)),F=e.computed(()=>({...R.value.messages,...n.messages})),K=e.computed(()=>n.showExport??R.value.showExport),N=e.computed(()=>n.showPrint??R.value.showPrint),D=e.computed(()=>n.showPdfWindow??R.value.showPdfWindow),O=e.computed(()=>n.gapPx??R.value.gapPx),G=e.computed(()=>({height:n.height,...Ee(R.value.theme)})),{zoom:M,zoomMode:z,applyFitZoom:le,setZoom:_}=fe(()=>({viewport:g.value,pageWidthPx:(o.value?.pages[0]?.pageWidthMm??210)*J})),xe=me(o,M,{pxPerMm:J,gapPx:O.value}),{contentSize:ee,windowRange:H,visiblePages:Me,makeScrollHandler:Re,refreshViewport:se}=xe,Se=Re(m,w);function te(d){z.value="raw",M.value=Math.min(3,Math.max(.3,d))}function oe(){o.value=null,m.value=1,x.reset()}let Y=0;async function I(){const d=++Y,y=n.fetcher??b;if($.value.length===0){i.value="缺少报表模板 ID",oe(),a("error",i.value,{code:"param"});return}if(!y){i.value="未提供渲染数据源 fetcher",oe(),a("error",i.value,{code:"config"});return}s.value=!0,i.value="",oe();const P=f.start();try{const v=await y({tempIds:$.value,furnitureTempId:n.furnitureTempId||void 0,params:{...n.params}});if(d!==Y)return;const k=U.validateRenderPlan(v);if(!k.ok){const W=k.errors.slice(0,3).map(A=>`${A.path}: ${A.message}`).join("; ");throw new q("validate",`渲染计划校验失败(${k.errors.length} 处): ${W}`)}k.warnings.length>0&&R.value.logger.warn("[mach-report] 渲染计划告警:",k.warnings),o.value=v,m.value=1,f.end(P),g.value&&(g.value.scrollTop=0),z.value==="fit"&&le(),a("loaded",v.pages.length)}catch(v){if(d!==Y)return;const k=v instanceof q?v:new q("fetch",v instanceof Error?v.message:"预览加载失败",v);i.value=k.message,a("error",k.message,ke(k))}finally{d===Y&&(s.value=!1)}}function S(d){if(w.value<=0)return;const y=Math.max(1,Math.min(w.value,d));m.value=y;const P=g.value;if(!P)return;let v=0;for(let k=0;k<y-1;k++)v+=(o.value?.pages[k]?.pageHeightMm??0)*J+p.value;P.scrollTop=v*M.value}const{print:ne,exportAs:re,openPdfWindow:ae,releasePrintFrame:Be}=pe(o,{getPdfExporter:()=>B,onError:d=>a("error",d,{code:"print"})}),Te={reload:I,print:ne,exportAs:re,openPdfWindow:ae,gotoPage:S};e.provide(T.MACH_REPORT_CONTROLLER_KEY,Te);const x=Oe({plan:o,gotoPage:S,highlight:Le,clearHighlights:Ve});function $e(d){d.ctrlKey&&(d.preventDefault(),te(M.value*(d.deltaY<0?1.1:1/1.1)))}function Ne(d){if((d.ctrlKey||d.metaKey)&&d.key.toLowerCase()==="f"){d.preventDefault(),x.visible.value||x.toggle();return}switch(d.key){case"PageDown":d.preventDefault(),S(m.value+1);break;case"PageUp":d.preventDefault(),S(m.value-1);break;case"Home":d.preventDefault(),S(1);break;case"End":d.preventDefault(),S(w.value);break;case"+":case"=":d.preventDefault(),te(M.value*1.1);break;case"-":d.preventDefault(),te(M.value/1.1);break}}function Fe(){try{localStorage.setItem(de,JSON.stringify({zoomMode:z.value==="fit"?"fit":Math.round(M.value*100)}))}catch{}}e.watch([z,M],Fe),e.watchEffect(()=>{const d=o.value;if(!d)return;const y=h.value;if(!y)return;y.querySelectorAll(".mrp-page-holder").forEach(v=>{const k=Number(v.dataset.page??0)-1,W=d.pages[k];if(!W||v.childElementCount>0){v.firstElementChild&&x.apply(v.firstElementChild);return}v.style.width=`${W.pageWidthMm*J}px`;const A=U.renderPage(W,96,{},document);x.apply(A),v.appendChild(A)})},{flush:"post"}),e.watch(()=>x.query.value,d=>{d||h.value?.querySelectorAll(".mrp-page-holder").forEach(y=>{x.clear(y)})});const ie=We(o,{thumbsRoot:u,visible:c,renderThumbCanvas:d=>{try{const{canvases:y}=U.renderPlanToCanvas(o.value,{start:d,end:d,dpr:.2});return y[0]??null}catch{return null}}});e.watchEffect(()=>{ie.schedule()},{flush:"post"});const De=e.computed(()=>n.debug),{debugStats:V}=He(De,{plan:o,pageCount:w,windowRange:H,zoom:M,loadMs:f.loadMs});function ue(){se(g.value),z.value==="fit"&&le()}function ze(){try{const d=JSON.parse(localStorage.getItem(de)??"{}");d.zoomMode==="fit"?_("fit"):typeof d.zoomMode=="number"&&_(d.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",ue),se(g.value),ze(),n.autoLoad&&I()}),e.onUnmounted(()=>{window.removeEventListener("resize",ue),ie.destroy(),Be()}),e.watch(()=>[n.tempId,n.furnitureTempId,JSON.stringify(n.params)],()=>{n.autoLoad&&I()}),e.watch(()=>n.fetcher??b,()=>{n.autoLoad&&I()}),r({reload:I,print:ne,exportAs:re,openPdfWindow:ae,gotoPage:S}),(d,y)=>(e.openBlock(),e.createElementBlock("div",{class:"mach-report-preview",style:e.normalizeStyle(G.value)},[e.createVNode(ve,{"page-count":w.value,"current-page":m.value,"zoom-mode":e.unref(z),zoom:e.unref(M),"show-export":K.value,"show-print":N.value,"show-pdf-window":D.value,messages:F.value,search:{visible:e.unref(x).visible.value,query:e.unref(x).query.value,matchIndex:e.unref(x).matchIndex.value,matchCount:e.unref(x).matchCount.value},"thumbs-visible":c.value,onGoto:S,onZoom:e.unref(_),onExport:y[0]||(y[0]=P=>e.unref(re)(P)),onPrint:e.unref(ne),onPdfWindow:e.unref(ae),onSearchInput:e.unref(x).onInput,onSearchNav:e.unref(x).onNav,onSearchToggle:e.unref(x).toggle,onThumbsToggle:y[1]||(y[1]=P=>c.value=!c.value)},null,8,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","messages","search","thumbs-visible","onZoom","onPrint","onPdfWindow","onSearchInput","onSearchNav","onSearchToggle"]),e.createElementVNode("div",rt,[e.createElementVNode("div",{ref_key:"viewportRef",ref:g,class:"mrp-body",tabindex:"0",onWheel:$e,onKeydown:Ne,onScrollPassive:y[2]||(y[2]=P=>e.unref(Se)(P.target))},[s.value?(e.openBlock(),e.createElementBlock("div",at,e.toDisplayString(F.value.loading),1)):i.value?(e.openBlock(),e.createElementBlock("div",lt,[e.createTextVNode(e.toDisplayString(i.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:I},e.toDisplayString(F.value.retry),1)])):!o.value||w.value===0?(e.openBlock(),e.createElementBlock("div",st,e.toDisplayString(F.value.empty),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(ee).w*e.unref(M)}px`,height:`${e.unref(ee).h*e.unref(M)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:h,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(M)})`,transformOrigin:"top left",width:`${e.unref(ee).w}px`})},[e.unref(H).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(H).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Me),P=>(e.openBlock(),e.createElementBlock("div",{key:P.index,class:"mrp-page-holder","data-page":P.index+1},null,8,it))),128)),e.unref(H).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(H).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4))],544),c.value&&w.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:u,class:"mrp-thumbs"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value?.pages??[],(P,v)=>(e.openBlock(),e.createElementBlock("div",{key:v,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":v+1===m.value}]),onClick:k=>S(v+1)},[e.createElementVNode("div",{class:"mrp-thumb-box","data-thumb":v+1,style:e.normalizeStyle({height:`${Math.round(P.pageHeightMm/P.pageWidthMm*116)}px`})},null,12,ct),e.createElementVNode("span",dt,e.toDisplayString(v+1),1)],10,ut))),128))],512)):e.createCommentVNode("",!0)]),e.createElementVNode("div",mt,[e.renderSlot(d.$slots,"default",{},void 0,!0)]),e.unref(V)?(e.openBlock(),e.createElementBlock("div",ft,[y[3]||(y[3]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(V).pages)+" | window: ["+e.toDisplayString(e.unref(V).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(V).zoom)+" | load: "+e.toDisplayString(e.unref(V).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(V).planKB)+"KB",1)])):e.createCommentVNode("",!0)],4))}}),Ce=he(pt,[["__scopeId","data-v-02570f40"]]),gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ce},Symbol.toStringTag,{value:"Module"}));exports.DEFAULT_MESSAGES=be;exports.DEFAULT_THEME=we;exports.MachReportError=q;exports.ReportPreview=Ce;exports.ReportPreview$1=gt;exports.ReportToolbar=ve;exports.SILENT_LOGGER=ot;exports.buildPrintDocument=j;exports.defineMachReportConfig=et;exports.defineMachReportPreset=tt;exports.printPlans=Ie;exports.provideMachReportConfig=nt;exports.resolveConfig=ye;exports.themeToCssVars=Ee;exports.toErrorDetail=ke;exports.useMachReportConfig=Pe;exports.usePageWindow=me;exports.usePrintExport=pe;exports.useZoom=fe;
|
|
6
|
+
body{margin:0;background:#fff;}`}</style></head><body>`,o=t.pages.map(s=>{const i=U.renderPage(s,96,{},document);return i.style.page=Z(s),i.outerHTML});return{head:a,pageChunks:o}}async function Ve(t,r={}){const l={pages:t.flatMap(i=>i.pages)};if(l.pages.length===0)return;const{head:n,pageChunks:a}=j(l),o=document.createElement("iframe");o.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(o);let s=!1;try{const i=o.contentDocument;i.open(),i.write(n);for(let m=0;m<a.length;m++)i.write(a[m]),m%X===X-1&&(r.onProgress?.(m+1,a.length),await Q());i.write("</body></html>"),i.close(),await Q(),r.onProgress?.(a.length,a.length),s=!0,o.contentWindow?.focus(),o.contentWindow?.print()}catch(i){r.onError?.(i instanceof Error?`批量打印失败: ${i.message}`:"批量打印失败")}finally{s?setTimeout(()=>o.remove(),6e4):o.remove()}}function ge(t,r){let l=null,n=!1,a=null;function o(){l?.remove(),l=null}function s(u,c){const p=URL.createObjectURL(u),f=document.createElement("a");f.href=p,f.download=c,f.click(),setTimeout(()=>URL.revokeObjectURL(p),1e4)}async function i(){if(n)return;const u=t.value;if(!u||u.pages.length===0)return;n=!0,o();const{head:c,pageChunks:p}=j(u);l=document.createElement("iframe"),l.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(l);const f=l;try{const b=f.contentDocument;b.open(),b.write(c);for(let E=0;E<p.length;E++)if(b.write(p[E]),E%X===X-1&&await Q(),f!==l)return;b.write("</body></html>"),b.close(),await Q(),f.contentWindow?.focus(),f.contentWindow?.print()}catch{r.onError("调用打印失败,请改用导出 PDF")}finally{n=!1}}async function m(){if(a)return a;const u=t.value;if(!(!u||u.pages.length===0))return a=(async()=>{try{const c=await r.getPdfExporter()(u);s(new Blob([c],{type:"application/pdf"}),"mach-report.pdf")}catch(c){r.onError(c instanceof Error?`PDF 导出失败: ${c.message}`:"PDF 导出失败")}finally{a=null}})(),a}function h(u){const c=t.value;if(!c||c.pages.length===0)return;if(u==="pdf"){m();return}const{head:p,pageChunks:f}=j(c),b=`${p}${f.join("")}</body></html>`;s(new Blob([b],{type:"text/html;charset=utf-8"}),`mach-report.${u==="html"?"html":u}`)}function g(){const u=t.value;if(!u||u.pages.length===0)return;const{head:c,pageChunks:p}=j(u),f=`${c}${p.join("")}</body></html>`,b=new Blob([f],{type:"text/html;charset=utf-8"}),E=URL.createObjectURL(b),B=window.open(E,"_blank");if(!B){r.onError("浏览器拦截了弹窗,请允许弹窗后重试"),URL.revokeObjectURL(E);return}setTimeout(()=>B.print(),400),setTimeout(()=>URL.revokeObjectURL(E),1e4)}return{print:i,exportAs:h,openPdfWindow:g,releasePrintFrame:o}}const he="mrp-hit";function Le(t){t.querySelectorAll(`mark.${he}`).forEach(l=>{const n=l.parentNode;if(n){for(;l.firstChild;)n.insertBefore(l.firstChild,l);l.remove(),n.normalize()}})}function Oe(t,r){const l=r.trim();if(!l)return 0;const n=l.toLowerCase(),a=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const m=i.parentElement;return!m||m.closest("mark")||/^(SCRIPT|STYLE)$/.test(m.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(n)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),o=[];for(let i=a.nextNode();i;i=a.nextNode())o.push(i);let s=0;for(const i of o){const m=i.nodeValue??"",h=m.toLowerCase(),g=i.parentElement;if(!g)continue;const u=document.createDocumentFragment();let c=0,p=h.indexOf(n);for(;p>=0;){p>c&&u.appendChild(document.createTextNode(m.slice(c,p)));const f=document.createElement("mark");f.className=he,f.textContent=m.slice(p,p+l.length),u.appendChild(f),s++,c=p+l.length,p=h.indexOf(n,c)}c<m.length&&u.appendChild(document.createTextNode(m.slice(c))),g.replaceChild(u,i)}return s}function de(t,r){let l=0,n=t.toLowerCase().indexOf(r);for(;n>=0;)l++,n=t.toLowerCase().indexOf(r,n+r.length);return l}function He(t){const{plan:r,gotoPage:l,highlight:n,clearHighlights:a}=t,o=t.debounceMs??200,s=e.ref(!1),i=e.ref(""),m=e.ref(""),h=e.ref(0);let g=null;const u=e.computed(()=>{const w=i.value.trim().toLowerCase(),x=r.value;if(!w||!x)return[];const R=[];return x.pages.forEach((F,K)=>{for(const N of F.components)if(N.grid){for(const D of N.grid.cells??[])for(const O of D??[])if(typeof O?.text=="string")for(let G=0;G<de(O.text,w);G++)R.push(K)}else if(N.kind==="text"&&typeof N.text=="string")for(let D=0;D<de(N.text,w);D++)R.push(K)}),R}),c=e.computed(()=>u.value.length);function p(w){if(m.value=w,g&&clearTimeout(g),w.trim()===""){g=null,i.value="",h.value=0;return}g=setTimeout(()=>{g=null,i.value=m.value,h.value=0;const x=u.value[0];x!=null&&l(x+1)},o)}function f(w){const x=u.value.length;x!==0&&(h.value=(h.value+w+x)%x,l(u.value[h.value]+1))}function b(){s.value=!s.value}function E(w){const x=i.value.trim();x&&n(w,x)}function B(w){a(w)}function $(){m.value="",i.value="",h.value=0,g&&clearTimeout(g),g=null}return{visible:s,query:i,matchIndex:h,matchCount:c,toggle:b,onInput:p,onNav:f,apply:E,clear:B,reset:$}}function We(t,r){const l=e.computed(()=>{if(t.value)return!0;if(typeof location>"u")return!1;try{return new URLSearchParams(location.search).get("mrp-debug")==="1"}catch{return!1}}),n=e.computed(()=>!l.value||!r.plan.value?0:Math.round(JSON.stringify(r.plan.value).length/1024)),a=e.computed(()=>!l.value||!r.plan.value?null:{pages:r.pageCount.value,window:`${r.windowRange.value.start}-${r.windowRange.value.end}`,zoom:`${Math.round(r.zoom.value*100)}%`,loadMs:`${r.loadMs.value}ms`,planKB:n.value});return{enabled:l,debugStats:a}}function Ae(t,r){const{thumbsRoot:l,visible:n,renderThumbCanvas:a}=r;let o=null;function s(h,g){if(!t.value||h.childElementCount>0)return;const u=a(g);u&&(u.style.width="100%",u.style.height="100%",u.style.display="block",h.appendChild(u))}return{schedule:()=>{!n.value||!t.value||!l.value||typeof IntersectionObserver>"u"||(o?.disconnect(),o=new IntersectionObserver(h=>{for(const g of h){if(!g.isIntersecting)continue;const u=g.target;s(u,Number(u.dataset.thumb??1)-1),o?.unobserve(u)}},{root:l.value,rootMargin:"200px"}),l.value.querySelectorAll("[data-thumb]").forEach(h=>{o.observe(h)}))},destroy:()=>{o?.disconnect(),o=null}}}function Ue(){const t=e.shallowRef(0);return{loadMs:t,start(){return typeof performance<"u"?performance.now():0},end(r){t.value=r?Math.round(performance.now()-r):0}}}const je={class:"mrp-toolbar"},qe={class:"mrp-title"},Ke=["disabled"],Ge={class:"mrp-pageinfo"},Ye=["disabled"],Ze={key:1,class:"mrp-search"},Je=["placeholder","value"],Xe={key:0,class:"mrp-search-count"},Qe=["disabled"],_e=["disabled"],et=e.defineComponent({__name:"ReportToolbar",props:{pageCount:{},currentPage:{},zoomMode:{},zoom:{},showExport:{type:Boolean},showPrint:{type:Boolean},showPdfWindow:{type:Boolean},messages:{},search:{},thumbsVisible:{type:Boolean}},emits:["goto","zoom","export","print","pdf-window","search-input","search-nav","search-toggle","thumbs-toggle"],setup(t){const r=t,l=e.ref(null);e.watch(()=>r.search.visible,a=>{a&&e.nextTick(()=>l.value?.focus())});function n(a,o,s){return a.replace("{cur}",String(o)).replace("{total}",String(s))}return(a,o)=>(e.openBlock(),e.createElementBlock("div",je,[e.createElementVNode("span",qe,e.toDisplayString(t.messages.title),1),t.pageCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.currentPage<=1,onClick:o[0]||(o[0]=s=>a.$emit("goto",t.currentPage-1))},e.toDisplayString(t.messages.prevPage),9,Ke),e.createElementVNode("span",Ge,e.toDisplayString(n(t.messages.pageInfo,t.currentPage,t.pageCount)),1),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.currentPage>=t.pageCount,onClick:o[1]||(o[1]=s=>a.$emit("goto",t.currentPage+1))},e.toDisplayString(t.messages.nextPage),9,Ye)],64)):e.createCommentVNode("",!0),o[14]||(o[14]=e.createElementVNode("span",{class:"mrp-spacer"},null,-1)),t.search.visible?(e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("input",{ref_key:"searchInputRef",ref:l,class:"mrp-search-input",type:"text",placeholder:t.messages.searchPlaceholder,value:t.search.query,onInput:o[2]||(o[2]=s=>a.$emit("search-input",s.target.value))},null,40,Je),t.search.query?(e.openBlock(),e.createElementBlock("span",Xe,e.toDisplayString(n(t.messages.matchInfo,t.search.matchIndex+1,t.search.matchCount)),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.search.matchCount===0,onClick:o[3]||(o[3]=s=>a.$emit("search-nav",-1))},e.toDisplayString(t.messages.prevMatch),9,Qe),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:t.search.matchCount===0,onClick:o[4]||(o[4]=s=>a.$emit("search-nav",1))},e.toDisplayString(t.messages.nextMatch),9,_e)])):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.search.visible}]),type:"button",title:"Ctrl+F",onClick:o[5]||(o[5]=s=>a.$emit("search-toggle"))}," 🔍 ",2),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button",onClick:o[6]||(o[6]=s=>a.$emit("thumbs-toggle"))}," ▦ "+e.toDisplayString(t.messages.thumbnails),3),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),type:"button",onClick:o[7]||(o[7]=s=>a.$emit("zoom","fit"))},e.toDisplayString(t.messages.fitWidth),3),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===100}]),type:"button",onClick:o[8]||(o[8]=s=>a.$emit("zoom",100))}," 100% ",2),e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===150}]),type:"button",onClick:o[9]||(o[9]=s=>a.$emit("zoom",150))}," 150% ",2),t.showExport?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",onClick:o[10]||(o[10]=s=>a.$emit("export","html"))},e.toDisplayString(t.messages.exportHtml),1)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",onClick:o[11]||(o[11]=s=>a.$emit("export","pdf"))},e.toDisplayString(t.messages.exportPdf),1)):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:4,class:"mrp-nav",type:"button",onClick:o[12]||(o[12]=s=>a.$emit("print"))},e.toDisplayString(t.messages.print),1)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:5,class:"mrp-nav",type:"button",onClick:o[13]||(o[13]=s=>a.$emit("pdf-window"))},e.toDisplayString(t.messages.pdfWindow),1)):e.createCommentVNode("",!0)]))}}),ve=(t,r)=>{const l=t.__vccOpts||t;for(const[n,a]of r)l[n]=a;return l},be=ve(et,[["__scopeId","data-v-f50c26e8"]]),we={title:"报表预览",prevPage:"‹ 上一页",nextPage:"下一页 ›",pageInfo:"{cur} / {total}",fitWidth:"适宽",exportHtml:"导出 HTML",exportPdf:"导出 PDF",print:"打印",pdfWindow:"PDF 窗口",loading:"报表渲染中…",empty:"暂无预览数据",errorPrefix:"",retry:"重试",searchPlaceholder:"搜索报表内容",matchInfo:"{cur}/{total}",prevMatch:"‹",nextMatch:"›",thumbnails:"缩略图"},ye={shellBg:"#525659",shellFg:"#e8e8e8",toolbarBg:"#323639",toolbarBorder:"#22252a",toolbarFg:"#e8e8e8",btnFg:"#cfcfcf",btnBorder:"#4a4d52",btnHoverBg:"#414549",btnHoverFg:"#ffffff",btnActiveBg:"#2d5fb8"};function tt(t){return t}function ot(t){return t}const L={showExport:!0,showPrint:!0,showPdfWindow:!0,gapPx:18,pdfFontUrl:"/simhei.ttf",logger:console},nt={warn:()=>{},info:()=>{}};function Ee(t,r){const l=r?t?.presets?.[r]:t?.defaultPreset?t?.presets?.[t.defaultPreset]:void 0,n={...t?.defaults,...l};return{showExport:n.showExport??L.showExport,showPrint:n.showPrint??L.showPrint,showPdfWindow:n.showPdfWindow??L.showPdfWindow,gapPx:n.gapPx??L.gapPx,pdfFontUrl:n.pdfFontUrl??L.pdfFontUrl,theme:{...ye,...n.theme},messages:{...we,...n.messages},logger:n.logger??L.logger}}function Pe(t){const r={};return t.shellBg!=null&&(r["--mrp-shell-bg"]=t.shellBg),t.shellFg!=null&&(r["--mrp-shell-fg"]=t.shellFg),t.toolbarBg!=null&&(r["--mrp-toolbar-bg"]=t.toolbarBg),t.toolbarBorder!=null&&(r["--mrp-toolbar-border"]=t.toolbarBorder),t.toolbarFg!=null&&(r["--mrp-toolbar-fg"]=t.toolbarFg),t.btnFg!=null&&(r["--mrp-btn-fg"]=t.btnFg),t.btnBorder!=null&&(r["--mrp-btn-border"]=t.btnBorder),t.btnHoverBg!=null&&(r["--mrp-btn-hover-bg"]=t.btnHoverBg),t.btnHoverFg!=null&&(r["--mrp-btn-hover-fg"]=t.btnHoverFg),t.btnActiveBg!=null&&(r["--mrp-btn-active-bg"]=t.btnActiveBg),r}function rt(t){const r=e.inject(T.MACH_REPORT_CONFIG_KEY,null),l=e.computed(()=>{const n=r?.value??null,a="defaults"in t&&"presets"in t?t:{defaults:t,presets:{}};return n?{defaults:{...n.defaults,...a.defaults},presets:{...n.presets,...a.presets},defaultPreset:a.defaultPreset??n.defaultPreset}:a});e.provide(T.MACH_REPORT_CONFIG_KEY,l)}function ke(){return e.inject(T.MACH_REPORT_CONFIG_KEY,e.computed(()=>null))}class q extends Error{constructor(r,l,n){super(l),this.name="MachReportError",this.code=r,this.cause=n}}function Ce(t){return t instanceof q?{code:t.code,cause:t.cause}:{code:"render",cause:t}}const at={class:"mrp-main"},lt={key:0,class:"mrp-state"},st={key:1,class:"mrp-state mrp-error"},it={key:2,class:"mrp-state"},ut=["data-page"],ct=["onClick"],dt=["data-thumb"],mt={class:"mrp-thumb-no"},pt={class:"mrp-overlay"},ft={key:0,class:"mrp-debug","aria-hidden":"true"},J=96/25.4,me="mach-report:ui",gt=e.defineComponent({__name:"ReportPreview",props:{tempId:{type:[String,Array],default:null},furnitureTempId:{type:String,default:""},params:{type:Object,default:()=>({})},height:{type:String,default:"100vh"},autoLoad:{type:Boolean,default:!0},showExport:{type:Boolean,default:void 0},showPrint:{type:Boolean,default:void 0},showPdfWindow:{type:Boolean,default:void 0},gapPx:{type:Number,default:void 0},messages:{type:Object,default:void 0},preset:{type:String,default:void 0},debug:{type:Boolean,default:!1},fetcher:{type:Function,default:null}},emits:["loaded","error"],setup(t,{expose:r,emit:l}){e.useCssVars(d=>({v3c509574:f.value+"px"}));const n=t,a=l,o=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),m=e.ref(1),h=e.ref(null),g=e.ref(null),u=e.ref(null),c=e.ref(!1),p=Ue(),f=e.computed(()=>Math.max(0,O.value)),b=e.inject(T.MACH_REPORT_FETCHER_KEY,null),B=e.inject(T.MACH_REPORT_PDF_EXPORTER_KEY,null)??T.createDefaultPdfExporter({fontUrl:"/simhei.ttf"}),$=e.computed(()=>T.normalizeTempIds(n.tempId)),w=e.computed(()=>o.value?.pages.length??0),x=ke(),R=e.computed(()=>Ee(x.value,n.preset)),F=e.computed(()=>({...R.value.messages,...n.messages})),K=e.computed(()=>n.showExport??R.value.showExport),N=e.computed(()=>n.showPrint??R.value.showPrint),D=e.computed(()=>n.showPdfWindow??R.value.showPdfWindow),O=e.computed(()=>n.gapPx??R.value.gapPx),G=e.computed(()=>({height:n.height,...Pe(R.value.theme)})),{zoom:M,zoomMode:z,applyFitZoom:le,setZoom:_}=fe(()=>({viewport:g.value,pageWidthPx:(o.value?.pages[0]?.pageWidthMm??210)*J})),Me=pe(o,M,{pxPerMm:J,gapPx:O.value}),{contentSize:ee,windowRange:H,visiblePages:Re,makeScrollHandler:Se,refreshViewport:se}=Me,Be=Se(m,w);function te(d){z.value="raw",M.value=Math.min(3,Math.max(.3,d))}function oe(){o.value=null,m.value=1,P.reset()}let Y=0;async function I(){const d=++Y,y=n.fetcher??b;if($.value.length===0){i.value="缺少报表模板 ID",oe(),a("error",i.value,{code:"param"});return}if(!y){i.value="未提供渲染数据源 fetcher",oe(),a("error",i.value,{code:"config"});return}s.value=!0,i.value="",oe();const k=p.start();try{const v=await y({tempIds:$.value,furnitureTempId:n.furnitureTempId||void 0,params:{...n.params}});if(d!==Y)return;const C=U.validateRenderPlan(v);if(!C.ok){const W=C.errors.slice(0,3).map(A=>`${A.path}: ${A.message}`).join("; ");throw new q("validate",`渲染计划校验失败(${C.errors.length} 处): ${W}`)}C.warnings.length>0&&R.value.logger.warn("[mach-report] 渲染计划告警:",C.warnings),o.value=v,m.value=1,p.end(k),g.value&&(g.value.scrollTop=0),z.value==="fit"&&le(),a("loaded",v.pages.length)}catch(v){if(d!==Y)return;const C=v instanceof q?v:new q("fetch",v instanceof Error?v.message:"预览加载失败",v);i.value=C.message,a("error",C.message,Ce(C))}finally{d===Y&&(s.value=!1)}}function S(d){if(w.value<=0)return;const y=Math.max(1,Math.min(w.value,d));m.value=y;const k=g.value;if(!k)return;let v=0;for(let C=0;C<y-1;C++)v+=(o.value?.pages[C]?.pageHeightMm??0)*J+f.value;k.scrollTop=v*M.value}const{print:ne,exportAs:re,openPdfWindow:ae,releasePrintFrame:Te}=ge(o,{getPdfExporter:()=>B,onError:d=>a("error",d,{code:"print"})}),$e={reload:I,print:ne,exportAs:re,openPdfWindow:ae,gotoPage:S};e.provide(T.MACH_REPORT_CONTROLLER_KEY,$e);const P=He({plan:o,gotoPage:S,highlight:Oe,clearHighlights:Le});function Ne(d){d.ctrlKey&&(d.preventDefault(),te(M.value*(d.deltaY<0?1.1:1/1.1)))}function Fe(d){if((d.ctrlKey||d.metaKey)&&d.key.toLowerCase()==="f"){d.preventDefault(),P.visible.value||P.toggle();return}switch(d.key){case"PageDown":d.preventDefault(),S(m.value+1);break;case"PageUp":d.preventDefault(),S(m.value-1);break;case"Home":d.preventDefault(),S(1);break;case"End":d.preventDefault(),S(w.value);break;case"+":case"=":d.preventDefault(),te(M.value*1.1);break;case"-":d.preventDefault(),te(M.value/1.1);break}}function De(){try{localStorage.setItem(me,JSON.stringify({zoomMode:z.value==="fit"?"fit":Math.round(M.value*100)}))}catch{}}e.watch([z,M],De),e.watchEffect(()=>{const d=o.value;if(!d)return;const y=h.value;if(!y)return;y.querySelectorAll(".mrp-page-holder").forEach(v=>{const C=Number(v.dataset.page??0)-1,W=d.pages[C];if(!W||v.childElementCount>0){if(v.firstElementChild){const ce=v.firstElementChild;P.clear(ce),P.apply(ce)}return}v.style.width=`${W.pageWidthMm*J}px`;const A=U.renderPage(W,96,{},document);P.apply(A),v.appendChild(A)})},{flush:"post"}),e.watch(()=>P.query.value,d=>{d||h.value?.querySelectorAll(".mrp-page-holder").forEach(y=>{P.clear(y)})});const ie=Ae(o,{thumbsRoot:u,visible:c,renderThumbCanvas:d=>{try{const{canvases:y}=U.renderPlanToCanvas(o.value,{start:d,end:d,dpr:.2});return y[0]??null}catch{return null}}});e.watchEffect(()=>{ie.schedule()},{flush:"post"});const ze=e.computed(()=>n.debug),{debugStats:V}=We(ze,{plan:o,pageCount:w,windowRange:H,zoom:M,loadMs:p.loadMs});function ue(){se(g.value),z.value==="fit"&&le()}function Ie(){try{const d=JSON.parse(localStorage.getItem(me)??"{}");d.zoomMode==="fit"?_("fit"):typeof d.zoomMode=="number"&&_(d.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",ue),se(g.value),Ie(),n.autoLoad&&I()}),e.onUnmounted(()=>{window.removeEventListener("resize",ue),ie.destroy(),P.reset(),Te()}),e.watch(()=>[n.tempId,n.furnitureTempId,JSON.stringify(n.params)],()=>{n.autoLoad&&I()}),e.watch(()=>n.fetcher??b,()=>{n.autoLoad&&I()}),r({reload:I,print:ne,exportAs:re,openPdfWindow:ae,gotoPage:S}),(d,y)=>(e.openBlock(),e.createElementBlock("div",{class:"mach-report-preview",style:e.normalizeStyle(G.value)},[e.createVNode(be,{"page-count":w.value,"current-page":m.value,"zoom-mode":e.unref(z),zoom:e.unref(M),"show-export":K.value,"show-print":N.value,"show-pdf-window":D.value,messages:F.value,search:{visible:e.unref(P).visible.value,query:e.unref(P).query.value,matchIndex:e.unref(P).matchIndex.value,matchCount:e.unref(P).matchCount.value},"thumbs-visible":c.value,onGoto:S,onZoom:e.unref(_),onExport:y[0]||(y[0]=k=>e.unref(re)(k)),onPrint:e.unref(ne),onPdfWindow:e.unref(ae),onSearchInput:e.unref(P).onInput,onSearchNav:e.unref(P).onNav,onSearchToggle:e.unref(P).toggle,onThumbsToggle:y[1]||(y[1]=k=>c.value=!c.value)},null,8,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","messages","search","thumbs-visible","onZoom","onPrint","onPdfWindow","onSearchInput","onSearchNav","onSearchToggle"]),e.createElementVNode("div",at,[e.createElementVNode("div",{ref_key:"viewportRef",ref:g,class:"mrp-body",tabindex:"0",onWheel:Ne,onKeydown:Fe,onScrollPassive:y[2]||(y[2]=k=>e.unref(Be)(k.target))},[s.value?(e.openBlock(),e.createElementBlock("div",lt,e.toDisplayString(F.value.loading),1)):i.value?(e.openBlock(),e.createElementBlock("div",st,[e.createTextVNode(e.toDisplayString(i.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:I},e.toDisplayString(F.value.retry),1)])):!o.value||w.value===0?(e.openBlock(),e.createElementBlock("div",it,e.toDisplayString(F.value.empty),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(ee).w*e.unref(M)}px`,height:`${e.unref(ee).h*e.unref(M)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:h,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(M)})`,transformOrigin:"top left",width:`${e.unref(ee).w}px`})},[e.unref(H).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(H).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Re),k=>(e.openBlock(),e.createElementBlock("div",{key:k.index,class:"mrp-page-holder","data-page":k.index+1},null,8,ut))),128)),e.unref(H).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(H).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4))],544),c.value&&w.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:u,class:"mrp-thumbs"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value?.pages??[],(k,v)=>(e.openBlock(),e.createElementBlock("div",{key:v,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":v+1===m.value}]),onClick:C=>S(v+1)},[e.createElementVNode("div",{class:"mrp-thumb-box","data-thumb":v+1,style:e.normalizeStyle({height:`${Math.round(k.pageHeightMm/k.pageWidthMm*116)}px`})},null,12,dt),e.createElementVNode("span",mt,e.toDisplayString(v+1),1)],10,ct))),128))],512)):e.createCommentVNode("",!0)]),e.createElementVNode("div",pt,[e.renderSlot(d.$slots,"default",{},void 0,!0)]),e.unref(V)?(e.openBlock(),e.createElementBlock("div",ft,[y[3]||(y[3]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(V).pages)+" | window: ["+e.toDisplayString(e.unref(V).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(V).zoom)+" | load: "+e.toDisplayString(e.unref(V).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(V).planKB)+"KB",1)])):e.createCommentVNode("",!0)],4))}}),xe=ve(gt,[["__scopeId","data-v-2e98692a"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:xe},Symbol.toStringTag,{value:"Module"}));exports.DEFAULT_MESSAGES=we;exports.DEFAULT_THEME=ye;exports.MachReportError=q;exports.ReportPreview=xe;exports.ReportPreview$1=ht;exports.ReportToolbar=be;exports.SILENT_LOGGER=nt;exports.buildPrintDocument=j;exports.defineMachReportConfig=tt;exports.defineMachReportPreset=ot;exports.printPlans=Ve;exports.provideMachReportConfig=rt;exports.resolveConfig=Ee;exports.themeToCssVars=Pe;exports.toErrorDetail=Ce;exports.useMachReportConfig=ke;exports.usePageWindow=pe;exports.usePrintExport=ge;exports.useZoom=fe;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
import { computePageWindow as
|
|
3
|
-
import { a as he, b as
|
|
4
|
-
function
|
|
5
|
-
const n = a.pxPerMm ?? 3.7795275590551185, r = a.gapPx ?? 18, t =
|
|
1
|
+
import { ref as S, computed as x, shallowRef as ke, defineComponent as $e, watch as X, nextTick as Ue, openBlock as M, createElementBlock as C, createElementVNode as y, toDisplayString as P, Fragment as ge, createCommentVNode as L, normalizeClass as V, inject as ae, provide as Re, useCssVars as je, watchEffect as xe, onMounted as qe, onUnmounted as Ke, normalizeStyle as q, createVNode as Ve, unref as m, createTextVNode as Ge, renderList as Ee, renderSlot as Ye } from "vue";
|
|
2
|
+
import { computePageWindow as Ze, renderPage as Te, validateRenderPlan as Je, renderPlanToCanvas as Xe } from "@agile-team/mach-report";
|
|
3
|
+
import { a as he, b as Qe, c as _e, n as et, M as tt, e as nt } from "./plugin-Bo8QqzCz.js";
|
|
4
|
+
function ot(e, o, a = {}) {
|
|
5
|
+
const n = a.pxPerMm ?? 3.7795275590551185, r = a.gapPx ?? 18, t = S(0), s = S(800), l = x(
|
|
6
6
|
() => (e.value?.pages ?? []).map((u) => u.pageHeightMm * n)
|
|
7
7
|
), d = x(() => {
|
|
8
8
|
const u = e.value?.pages ?? [];
|
|
@@ -11,7 +11,7 @@ function nt(e, o, a = {}) {
|
|
|
11
11
|
f += b.pageHeightMm * n + r, p = Math.max(p, b.pageWidthMm * n);
|
|
12
12
|
return { w: p, h: f };
|
|
13
13
|
}), h = x(
|
|
14
|
-
() =>
|
|
14
|
+
() => Ze({
|
|
15
15
|
pageHeightsPx: l.value,
|
|
16
16
|
viewportHeightPx: s.value / o.value,
|
|
17
17
|
scrollTopPx: t.value / o.value,
|
|
@@ -49,8 +49,8 @@ function nt(e, o, a = {}) {
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
const o =
|
|
52
|
+
function rt(e) {
|
|
53
|
+
const o = S(1), a = S("fit");
|
|
54
54
|
function n() {
|
|
55
55
|
requestAnimationFrame(() => {
|
|
56
56
|
const t = e();
|
|
@@ -85,12 +85,12 @@ ${[...o.values()].map(
|
|
|
85
85
|
).join(`
|
|
86
86
|
`)}
|
|
87
87
|
body{margin:0;background:#fff;}`}</style></head><body>`, t = e.pages.map((s) => {
|
|
88
|
-
const l =
|
|
88
|
+
const l = Te(s, 96, {}, document);
|
|
89
89
|
return l.style.page = te(s), l.outerHTML;
|
|
90
90
|
});
|
|
91
91
|
return { head: r, pageChunks: t };
|
|
92
92
|
}
|
|
93
|
-
async function
|
|
93
|
+
async function Vt(e, o = {}) {
|
|
94
94
|
const a = {
|
|
95
95
|
pages: e.flatMap((l) => l.pages)
|
|
96
96
|
};
|
|
@@ -110,7 +110,7 @@ async function Kt(e, o = {}) {
|
|
|
110
110
|
s ? setTimeout(() => t.remove(), 6e4) : t.remove();
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
function
|
|
113
|
+
function at(e, o) {
|
|
114
114
|
let a = null, n = !1, r = null;
|
|
115
115
|
function t() {
|
|
116
116
|
a?.remove(), a = null;
|
|
@@ -184,9 +184,9 @@ function rt(e, o) {
|
|
|
184
184
|
releasePrintFrame: t
|
|
185
185
|
};
|
|
186
186
|
}
|
|
187
|
-
const
|
|
188
|
-
function
|
|
189
|
-
e.querySelectorAll(`mark.${
|
|
187
|
+
const Se = "mrp-hit";
|
|
188
|
+
function st(e) {
|
|
189
|
+
e.querySelectorAll(`mark.${Se}`).forEach((a) => {
|
|
190
190
|
const n = a.parentNode;
|
|
191
191
|
if (n) {
|
|
192
192
|
for (; a.firstChild; ) n.insertBefore(a.firstChild, a);
|
|
@@ -194,7 +194,7 @@ function at(e) {
|
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
|
-
function
|
|
197
|
+
function lt(e, o) {
|
|
198
198
|
const a = o.trim();
|
|
199
199
|
if (!a) return 0;
|
|
200
200
|
const n = a.toLowerCase(), r = document.createTreeWalker(e, NodeFilter.SHOW_TEXT, {
|
|
@@ -213,34 +213,34 @@ function st(e, o) {
|
|
|
213
213
|
for (; f >= 0; ) {
|
|
214
214
|
f > u && i.appendChild(document.createTextNode(d.slice(u, f)));
|
|
215
215
|
const p = document.createElement("mark");
|
|
216
|
-
p.className =
|
|
216
|
+
p.className = Se, p.textContent = d.slice(f, f + a.length), i.appendChild(p), s++, u = f + a.length, f = h.indexOf(n, u);
|
|
217
217
|
}
|
|
218
218
|
u < d.length && i.appendChild(document.createTextNode(d.slice(u))), g.replaceChild(i, l);
|
|
219
219
|
}
|
|
220
220
|
return s;
|
|
221
221
|
}
|
|
222
|
-
function
|
|
222
|
+
function Me(e, o) {
|
|
223
223
|
let a = 0, n = e.toLowerCase().indexOf(o);
|
|
224
224
|
for (; n >= 0; )
|
|
225
225
|
a++, n = e.toLowerCase().indexOf(o, n + o.length);
|
|
226
226
|
return a;
|
|
227
227
|
}
|
|
228
|
-
function
|
|
229
|
-
const { plan: o, gotoPage: a, highlight: n, clearHighlights: r } = e, t = e.debounceMs ?? 200, s =
|
|
228
|
+
function it(e) {
|
|
229
|
+
const { plan: o, gotoPage: a, highlight: n, clearHighlights: r } = e, t = e.debounceMs ?? 200, s = S(!1), l = S(""), d = S(""), h = S(0);
|
|
230
230
|
let g = null;
|
|
231
231
|
const i = x(() => {
|
|
232
|
-
const w = l.value.trim().toLowerCase(),
|
|
233
|
-
if (!w || !
|
|
232
|
+
const w = l.value.trim().toLowerCase(), F = o.value;
|
|
233
|
+
if (!w || !F) return [];
|
|
234
234
|
const B = [];
|
|
235
|
-
return
|
|
235
|
+
return F.pages.forEach((N, Q) => {
|
|
236
236
|
for (const O of N.components)
|
|
237
237
|
if (O.grid) {
|
|
238
238
|
for (const D of O.grid.cells ?? [])
|
|
239
239
|
for (const G of D ?? [])
|
|
240
240
|
if (typeof G?.text == "string")
|
|
241
|
-
for (let _ = 0; _ <
|
|
241
|
+
for (let _ = 0; _ < Me(G.text, w); _++) B.push(Q);
|
|
242
242
|
} else if (O.kind === "text" && typeof O.text == "string")
|
|
243
|
-
for (let D = 0; D <
|
|
243
|
+
for (let D = 0; D < Me(O.text, w); D++) B.push(Q);
|
|
244
244
|
}), B;
|
|
245
245
|
}), u = x(() => i.value.length);
|
|
246
246
|
function f(w) {
|
|
@@ -250,20 +250,20 @@ function lt(e) {
|
|
|
250
250
|
}
|
|
251
251
|
g = setTimeout(() => {
|
|
252
252
|
g = null, l.value = d.value, h.value = 0;
|
|
253
|
-
const
|
|
254
|
-
|
|
253
|
+
const F = i.value[0];
|
|
254
|
+
F != null && a(F + 1);
|
|
255
255
|
}, t);
|
|
256
256
|
}
|
|
257
257
|
function p(w) {
|
|
258
|
-
const
|
|
259
|
-
|
|
258
|
+
const F = i.value.length;
|
|
259
|
+
F !== 0 && (h.value = (h.value + w + F) % F, a(i.value[h.value] + 1));
|
|
260
260
|
}
|
|
261
261
|
function b() {
|
|
262
262
|
s.value = !s.value;
|
|
263
263
|
}
|
|
264
264
|
function k(w) {
|
|
265
|
-
const
|
|
266
|
-
|
|
265
|
+
const F = l.value.trim();
|
|
266
|
+
F && n(w, F);
|
|
267
267
|
}
|
|
268
268
|
function W(w) {
|
|
269
269
|
r(w);
|
|
@@ -284,7 +284,7 @@ function lt(e) {
|
|
|
284
284
|
reset: H
|
|
285
285
|
};
|
|
286
286
|
}
|
|
287
|
-
function
|
|
287
|
+
function ut(e, o) {
|
|
288
288
|
const a = x(() => {
|
|
289
289
|
if (e.value) return !0;
|
|
290
290
|
if (typeof location > "u") return !1;
|
|
@@ -302,7 +302,7 @@ function it(e, o) {
|
|
|
302
302
|
});
|
|
303
303
|
return { enabled: a, debugStats: r };
|
|
304
304
|
}
|
|
305
|
-
function
|
|
305
|
+
function ct(e, o) {
|
|
306
306
|
const { thumbsRoot: a, visible: n, renderThumbCanvas: r } = o;
|
|
307
307
|
let t = null;
|
|
308
308
|
function s(h, g) {
|
|
@@ -327,8 +327,8 @@ function ut(e, o) {
|
|
|
327
327
|
t?.disconnect(), t = null;
|
|
328
328
|
} };
|
|
329
329
|
}
|
|
330
|
-
function
|
|
331
|
-
const e =
|
|
330
|
+
function dt() {
|
|
331
|
+
const e = ke(0);
|
|
332
332
|
return {
|
|
333
333
|
loadMs: e,
|
|
334
334
|
start() {
|
|
@@ -339,13 +339,13 @@ function ct() {
|
|
|
339
339
|
}
|
|
340
340
|
};
|
|
341
341
|
}
|
|
342
|
-
const
|
|
342
|
+
const ft = { class: "mrp-toolbar" }, pt = { class: "mrp-title" }, mt = ["disabled"], gt = { class: "mrp-pageinfo" }, ht = ["disabled"], vt = {
|
|
343
343
|
key: 1,
|
|
344
344
|
class: "mrp-search"
|
|
345
|
-
},
|
|
345
|
+
}, bt = ["placeholder", "value"], wt = {
|
|
346
346
|
key: 0,
|
|
347
347
|
class: "mrp-search-count"
|
|
348
|
-
},
|
|
348
|
+
}, yt = ["disabled"], Pt = ["disabled"], xt = /* @__PURE__ */ $e({
|
|
349
349
|
__name: "ReportToolbar",
|
|
350
350
|
props: {
|
|
351
351
|
pageCount: {},
|
|
@@ -361,35 +361,35 @@ const dt = { class: "mrp-toolbar" }, ft = { class: "mrp-title" }, pt = ["disable
|
|
|
361
361
|
},
|
|
362
362
|
emits: ["goto", "zoom", "export", "print", "pdf-window", "search-input", "search-nav", "search-toggle", "thumbs-toggle"],
|
|
363
363
|
setup(e) {
|
|
364
|
-
const o = e, a =
|
|
364
|
+
const o = e, a = S(null);
|
|
365
365
|
X(
|
|
366
366
|
() => o.search.visible,
|
|
367
367
|
(r) => {
|
|
368
|
-
r &&
|
|
368
|
+
r && Ue(() => a.value?.focus());
|
|
369
369
|
}
|
|
370
370
|
);
|
|
371
371
|
function n(r, t, s) {
|
|
372
372
|
return r.replace("{cur}", String(t)).replace("{total}", String(s));
|
|
373
373
|
}
|
|
374
|
-
return (r, t) => (M(), C("div",
|
|
375
|
-
y("span",
|
|
374
|
+
return (r, t) => (M(), C("div", ft, [
|
|
375
|
+
y("span", pt, P(e.messages.title), 1),
|
|
376
376
|
e.pageCount > 0 ? (M(), C(ge, { key: 0 }, [
|
|
377
377
|
y("button", {
|
|
378
378
|
class: "mrp-nav",
|
|
379
379
|
type: "button",
|
|
380
380
|
disabled: e.currentPage <= 1,
|
|
381
381
|
onClick: t[0] || (t[0] = (s) => r.$emit("goto", e.currentPage - 1))
|
|
382
|
-
}, P(e.messages.prevPage), 9,
|
|
383
|
-
y("span",
|
|
382
|
+
}, P(e.messages.prevPage), 9, mt),
|
|
383
|
+
y("span", gt, P(n(e.messages.pageInfo, e.currentPage, e.pageCount)), 1),
|
|
384
384
|
y("button", {
|
|
385
385
|
class: "mrp-nav",
|
|
386
386
|
type: "button",
|
|
387
387
|
disabled: e.currentPage >= e.pageCount,
|
|
388
388
|
onClick: t[1] || (t[1] = (s) => r.$emit("goto", e.currentPage + 1))
|
|
389
|
-
}, P(e.messages.nextPage), 9,
|
|
389
|
+
}, P(e.messages.nextPage), 9, ht)
|
|
390
390
|
], 64)) : L("", !0),
|
|
391
391
|
t[14] || (t[14] = y("span", { class: "mrp-spacer" }, null, -1)),
|
|
392
|
-
e.search.visible ? (M(), C("div",
|
|
392
|
+
e.search.visible ? (M(), C("div", vt, [
|
|
393
393
|
y("input", {
|
|
394
394
|
ref_key: "searchInputRef",
|
|
395
395
|
ref: a,
|
|
@@ -398,20 +398,20 @@ const dt = { class: "mrp-toolbar" }, ft = { class: "mrp-title" }, pt = ["disable
|
|
|
398
398
|
placeholder: e.messages.searchPlaceholder,
|
|
399
399
|
value: e.search.query,
|
|
400
400
|
onInput: t[2] || (t[2] = (s) => r.$emit("search-input", s.target.value))
|
|
401
|
-
}, null, 40,
|
|
402
|
-
e.search.query ? (M(), C("span",
|
|
401
|
+
}, null, 40, bt),
|
|
402
|
+
e.search.query ? (M(), C("span", wt, P(n(e.messages.matchInfo, e.search.matchIndex + 1, e.search.matchCount)), 1)) : L("", !0),
|
|
403
403
|
y("button", {
|
|
404
404
|
class: "mrp-nav",
|
|
405
405
|
type: "button",
|
|
406
406
|
disabled: e.search.matchCount === 0,
|
|
407
407
|
onClick: t[3] || (t[3] = (s) => r.$emit("search-nav", -1))
|
|
408
|
-
}, P(e.messages.prevMatch), 9,
|
|
408
|
+
}, P(e.messages.prevMatch), 9, yt),
|
|
409
409
|
y("button", {
|
|
410
410
|
class: "mrp-nav",
|
|
411
411
|
type: "button",
|
|
412
412
|
disabled: e.search.matchCount === 0,
|
|
413
413
|
onClick: t[4] || (t[4] = (s) => r.$emit("search-nav", 1))
|
|
414
|
-
}, P(e.messages.nextMatch), 9,
|
|
414
|
+
}, P(e.messages.nextMatch), 9, Pt)
|
|
415
415
|
])) : L("", !0),
|
|
416
416
|
y("button", {
|
|
417
417
|
class: V(["mrp-nav", { "mrp-active": e.search.visible }]),
|
|
@@ -465,12 +465,12 @@ const dt = { class: "mrp-toolbar" }, ft = { class: "mrp-title" }, pt = ["disable
|
|
|
465
465
|
}, P(e.messages.pdfWindow), 1)) : L("", !0)
|
|
466
466
|
]));
|
|
467
467
|
}
|
|
468
|
-
}),
|
|
468
|
+
}), Fe = (e, o) => {
|
|
469
469
|
const a = e.__vccOpts || e;
|
|
470
470
|
for (const [n, r] of o)
|
|
471
471
|
a[n] = r;
|
|
472
472
|
return a;
|
|
473
|
-
},
|
|
473
|
+
}, Et = /* @__PURE__ */ Fe(xt, [["__scopeId", "data-v-f50c26e8"]]), Mt = {
|
|
474
474
|
title: "报表预览",
|
|
475
475
|
prevPage: "‹ 上一页",
|
|
476
476
|
nextPage: "下一页 ›",
|
|
@@ -489,7 +489,7 @@ const dt = { class: "mrp-toolbar" }, ft = { class: "mrp-title" }, pt = ["disable
|
|
|
489
489
|
prevMatch: "‹",
|
|
490
490
|
nextMatch: "›",
|
|
491
491
|
thumbnails: "缩略图"
|
|
492
|
-
},
|
|
492
|
+
}, Ct = {
|
|
493
493
|
shellBg: "#525659",
|
|
494
494
|
shellFg: "#e8e8e8",
|
|
495
495
|
toolbarBg: "#323639",
|
|
@@ -501,10 +501,10 @@ const dt = { class: "mrp-toolbar" }, ft = { class: "mrp-title" }, pt = ["disable
|
|
|
501
501
|
btnHoverFg: "#ffffff",
|
|
502
502
|
btnActiveBg: "#2d5fb8"
|
|
503
503
|
};
|
|
504
|
-
function
|
|
504
|
+
function Gt(e) {
|
|
505
505
|
return e;
|
|
506
506
|
}
|
|
507
|
-
function
|
|
507
|
+
function Yt(e) {
|
|
508
508
|
return e;
|
|
509
509
|
}
|
|
510
510
|
const K = {
|
|
@@ -514,10 +514,10 @@ const K = {
|
|
|
514
514
|
gapPx: 18,
|
|
515
515
|
pdfFontUrl: "/simhei.ttf",
|
|
516
516
|
logger: console
|
|
517
|
-
},
|
|
517
|
+
}, Zt = { warn: () => {
|
|
518
518
|
}, info: () => {
|
|
519
519
|
} };
|
|
520
|
-
function
|
|
520
|
+
function kt(e, o) {
|
|
521
521
|
const a = o ? e?.presets?.[o] : e?.defaultPreset ? e?.presets?.[e.defaultPreset] : void 0, n = { ...e?.defaults, ...a };
|
|
522
522
|
return {
|
|
523
523
|
showExport: n.showExport ?? K.showExport,
|
|
@@ -525,16 +525,16 @@ function Ct(e, o) {
|
|
|
525
525
|
showPdfWindow: n.showPdfWindow ?? K.showPdfWindow,
|
|
526
526
|
gapPx: n.gapPx ?? K.gapPx,
|
|
527
527
|
pdfFontUrl: n.pdfFontUrl ?? K.pdfFontUrl,
|
|
528
|
-
theme: { ...
|
|
529
|
-
messages: { ...
|
|
528
|
+
theme: { ...Ct, ...n.theme },
|
|
529
|
+
messages: { ...Mt, ...n.messages },
|
|
530
530
|
logger: n.logger ?? K.logger
|
|
531
531
|
};
|
|
532
532
|
}
|
|
533
|
-
function
|
|
533
|
+
function $t(e) {
|
|
534
534
|
const o = {};
|
|
535
535
|
return e.shellBg != null && (o["--mrp-shell-bg"] = e.shellBg), e.shellFg != null && (o["--mrp-shell-fg"] = e.shellFg), e.toolbarBg != null && (o["--mrp-toolbar-bg"] = e.toolbarBg), e.toolbarBorder != null && (o["--mrp-toolbar-border"] = e.toolbarBorder), e.toolbarFg != null && (o["--mrp-toolbar-fg"] = e.toolbarFg), e.btnFg != null && (o["--mrp-btn-fg"] = e.btnFg), e.btnBorder != null && (o["--mrp-btn-border"] = e.btnBorder), e.btnHoverBg != null && (o["--mrp-btn-hover-bg"] = e.btnHoverBg), e.btnHoverFg != null && (o["--mrp-btn-hover-fg"] = e.btnHoverFg), e.btnActiveBg != null && (o["--mrp-btn-active-bg"] = e.btnActiveBg), o;
|
|
536
536
|
}
|
|
537
|
-
function
|
|
537
|
+
function Jt(e) {
|
|
538
538
|
const o = ae(he, null), a = x(() => {
|
|
539
539
|
const n = o?.value ?? null, r = "defaults" in e && "presets" in e ? e : { defaults: e, presets: {} };
|
|
540
540
|
return n ? {
|
|
@@ -543,9 +543,9 @@ function Zt(e) {
|
|
|
543
543
|
defaultPreset: r.defaultPreset ?? n.defaultPreset
|
|
544
544
|
} : r;
|
|
545
545
|
});
|
|
546
|
-
|
|
546
|
+
Re(he, a);
|
|
547
547
|
}
|
|
548
|
-
function
|
|
548
|
+
function Rt() {
|
|
549
549
|
return ae(he, x(() => null));
|
|
550
550
|
}
|
|
551
551
|
class re extends Error {
|
|
@@ -553,23 +553,23 @@ class re extends Error {
|
|
|
553
553
|
super(a), this.name = "MachReportError", this.code = o, this.cause = n;
|
|
554
554
|
}
|
|
555
555
|
}
|
|
556
|
-
function
|
|
556
|
+
function Tt(e) {
|
|
557
557
|
return e instanceof re ? { code: e.code, cause: e.cause } : { code: "render", cause: e };
|
|
558
558
|
}
|
|
559
|
-
const
|
|
559
|
+
const St = { class: "mrp-main" }, Ft = {
|
|
560
560
|
key: 0,
|
|
561
561
|
class: "mrp-state"
|
|
562
|
-
},
|
|
562
|
+
}, It = {
|
|
563
563
|
key: 1,
|
|
564
564
|
class: "mrp-state mrp-error"
|
|
565
|
-
},
|
|
565
|
+
}, Bt = {
|
|
566
566
|
key: 2,
|
|
567
567
|
class: "mrp-state"
|
|
568
|
-
},
|
|
568
|
+
}, Lt = ["data-page"], zt = ["onClick"], Wt = ["data-thumb"], Ht = { class: "mrp-thumb-no" }, Ot = { class: "mrp-overlay" }, Nt = {
|
|
569
569
|
key: 0,
|
|
570
570
|
class: "mrp-debug",
|
|
571
571
|
"aria-hidden": "true"
|
|
572
|
-
}, ne = 96 / 25.4,
|
|
572
|
+
}, ne = 96 / 25.4, Ce = "mach-report:ui", Dt = /* @__PURE__ */ $e({
|
|
573
573
|
__name: "ReportPreview",
|
|
574
574
|
props: {
|
|
575
575
|
tempId: {
|
|
@@ -602,27 +602,27 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
602
602
|
},
|
|
603
603
|
emits: ["loaded", "error"],
|
|
604
604
|
setup(e, { expose: o, emit: a }) {
|
|
605
|
-
|
|
606
|
-
|
|
605
|
+
je((c) => ({
|
|
606
|
+
v3c509574: p.value + "px"
|
|
607
607
|
}));
|
|
608
|
-
const n = e, r = a, t =
|
|
608
|
+
const n = e, r = a, t = ke(null), s = S(!1), l = S(""), d = S(1), h = S(null), g = S(null), i = S(null), u = S(!1), f = dt(), p = x(() => Math.max(0, G.value)), b = ae(Qe, null), W = ae(_e, null) ?? nt({ fontUrl: "/simhei.ttf" }), H = x(() => et(n.tempId)), w = x(() => t.value?.pages.length ?? 0), F = Rt(), B = x(() => kt(F.value, n.preset)), N = x(() => ({
|
|
609
609
|
...B.value.messages,
|
|
610
610
|
...n.messages
|
|
611
611
|
})), Q = x(() => n.showExport ?? B.value.showExport), O = x(() => n.showPrint ?? B.value.showPrint), D = x(() => n.showPdfWindow ?? B.value.showPdfWindow), G = x(() => n.gapPx ?? B.value.gapPx), _ = x(() => ({
|
|
612
612
|
height: n.height,
|
|
613
|
-
|
|
614
|
-
})), { zoom: I, zoomMode: A, applyFitZoom: ve, setZoom: ie } =
|
|
613
|
+
...$t(B.value.theme)
|
|
614
|
+
})), { zoom: I, zoomMode: A, applyFitZoom: ve, setZoom: ie } = rt(() => ({
|
|
615
615
|
viewport: g.value,
|
|
616
616
|
pageWidthPx: (t.value?.pages[0]?.pageWidthMm ?? 210) * ne
|
|
617
|
-
})),
|
|
617
|
+
})), Ie = ot(t, I, {
|
|
618
618
|
pxPerMm: ne,
|
|
619
619
|
gapPx: G.value
|
|
620
|
-
}), { contentSize: ue, windowRange: Y, visiblePages:
|
|
620
|
+
}), { contentSize: ue, windowRange: Y, visiblePages: Be, makeScrollHandler: Le, refreshViewport: be } = Ie, ze = Le(d, w);
|
|
621
621
|
function ce(c) {
|
|
622
622
|
A.value = "raw", I.value = Math.min(3, Math.max(0.3, c));
|
|
623
623
|
}
|
|
624
624
|
function de() {
|
|
625
|
-
t.value = null, d.value = 1,
|
|
625
|
+
t.value = null, d.value = 1, $.reset();
|
|
626
626
|
}
|
|
627
627
|
let ee = 0;
|
|
628
628
|
async function U() {
|
|
@@ -636,7 +636,7 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
636
636
|
return;
|
|
637
637
|
}
|
|
638
638
|
s.value = !0, l.value = "", de();
|
|
639
|
-
const
|
|
639
|
+
const R = f.start();
|
|
640
640
|
try {
|
|
641
641
|
const v = await E({
|
|
642
642
|
tempIds: H.value,
|
|
@@ -644,23 +644,23 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
644
644
|
params: { ...n.params }
|
|
645
645
|
});
|
|
646
646
|
if (c !== ee) return;
|
|
647
|
-
const
|
|
648
|
-
if (!
|
|
649
|
-
const Z =
|
|
647
|
+
const T = Je(v);
|
|
648
|
+
if (!T.ok) {
|
|
649
|
+
const Z = T.errors.slice(0, 3).map((J) => `${J.path}: ${J.message}`).join("; ");
|
|
650
650
|
throw new re(
|
|
651
651
|
"validate",
|
|
652
|
-
`渲染计划校验失败(${
|
|
652
|
+
`渲染计划校验失败(${T.errors.length} 处): ${Z}`
|
|
653
653
|
);
|
|
654
654
|
}
|
|
655
|
-
|
|
655
|
+
T.warnings.length > 0 && B.value.logger.warn("[mach-report] 渲染计划告警:", T.warnings), t.value = v, d.value = 1, f.end(R), g.value && (g.value.scrollTop = 0), A.value === "fit" && ve(), r("loaded", v.pages.length);
|
|
656
656
|
} catch (v) {
|
|
657
657
|
if (c !== ee) return;
|
|
658
|
-
const
|
|
658
|
+
const T = v instanceof re ? v : new re(
|
|
659
659
|
"fetch",
|
|
660
660
|
v instanceof Error ? v.message : "预览加载失败",
|
|
661
661
|
v
|
|
662
662
|
);
|
|
663
|
-
l.value =
|
|
663
|
+
l.value = T.message, r("error", T.message, Tt(T));
|
|
664
664
|
} finally {
|
|
665
665
|
c === ee && (s.value = !1);
|
|
666
666
|
}
|
|
@@ -669,30 +669,30 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
669
669
|
if (w.value <= 0) return;
|
|
670
670
|
const E = Math.max(1, Math.min(w.value, c));
|
|
671
671
|
d.value = E;
|
|
672
|
-
const
|
|
673
|
-
if (
|
|
672
|
+
const R = g.value;
|
|
673
|
+
if (!R) return;
|
|
674
674
|
let v = 0;
|
|
675
|
-
for (let
|
|
676
|
-
v += (t.value?.pages[
|
|
677
|
-
|
|
675
|
+
for (let T = 0; T < E - 1; T++)
|
|
676
|
+
v += (t.value?.pages[T]?.pageHeightMm ?? 0) * ne + p.value;
|
|
677
|
+
R.scrollTop = v * I.value;
|
|
678
678
|
}
|
|
679
|
-
const { print: fe, exportAs: pe, openPdfWindow: me, releasePrintFrame:
|
|
679
|
+
const { print: fe, exportAs: pe, openPdfWindow: me, releasePrintFrame: We } = at(t, {
|
|
680
680
|
getPdfExporter: () => W,
|
|
681
681
|
onError: (c) => r("error", c, { code: "print" })
|
|
682
682
|
});
|
|
683
|
-
|
|
684
|
-
const
|
|
683
|
+
Re(tt, { reload: U, print: fe, exportAs: pe, openPdfWindow: me, gotoPage: z });
|
|
684
|
+
const $ = it({
|
|
685
685
|
plan: t,
|
|
686
686
|
gotoPage: z,
|
|
687
|
-
highlight:
|
|
688
|
-
clearHighlights:
|
|
687
|
+
highlight: lt,
|
|
688
|
+
clearHighlights: st
|
|
689
689
|
});
|
|
690
|
-
function
|
|
690
|
+
function He(c) {
|
|
691
691
|
c.ctrlKey && (c.preventDefault(), ce(I.value * (c.deltaY < 0 ? 1.1 : 1 / 1.1)));
|
|
692
692
|
}
|
|
693
|
-
function
|
|
693
|
+
function Oe(c) {
|
|
694
694
|
if ((c.ctrlKey || c.metaKey) && c.key.toLowerCase() === "f") {
|
|
695
|
-
c.preventDefault(),
|
|
695
|
+
c.preventDefault(), $.visible.value || $.toggle();
|
|
696
696
|
return;
|
|
697
697
|
}
|
|
698
698
|
switch (c.key) {
|
|
@@ -717,51 +717,54 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
717
717
|
break;
|
|
718
718
|
}
|
|
719
719
|
}
|
|
720
|
-
function
|
|
720
|
+
function Ne() {
|
|
721
721
|
try {
|
|
722
722
|
localStorage.setItem(
|
|
723
|
-
|
|
723
|
+
Ce,
|
|
724
724
|
JSON.stringify({ zoomMode: A.value === "fit" ? "fit" : Math.round(I.value * 100) })
|
|
725
725
|
);
|
|
726
726
|
} catch {
|
|
727
727
|
}
|
|
728
728
|
}
|
|
729
|
-
X([A, I],
|
|
729
|
+
X([A, I], Ne), xe(() => {
|
|
730
730
|
const c = t.value;
|
|
731
731
|
if (!c) return;
|
|
732
732
|
const E = h.value;
|
|
733
733
|
if (!E) return;
|
|
734
734
|
E.querySelectorAll(".mrp-page-holder").forEach((v) => {
|
|
735
|
-
const
|
|
735
|
+
const T = Number(v.dataset.page ?? 0) - 1, Z = c.pages[T];
|
|
736
736
|
if (!Z || v.childElementCount > 0) {
|
|
737
|
-
|
|
737
|
+
if (v.firstElementChild) {
|
|
738
|
+
const Pe = v.firstElementChild;
|
|
739
|
+
$.clear(Pe), $.apply(Pe);
|
|
740
|
+
}
|
|
738
741
|
return;
|
|
739
742
|
}
|
|
740
743
|
v.style.width = `${Z.pageWidthMm * ne}px`;
|
|
741
|
-
const J =
|
|
742
|
-
|
|
744
|
+
const J = Te(Z, 96, {}, document);
|
|
745
|
+
$.apply(J), v.appendChild(J);
|
|
743
746
|
});
|
|
744
|
-
}, { flush: "post" }), X(() =>
|
|
747
|
+
}, { flush: "post" }), X(() => $.query.value, (c) => {
|
|
745
748
|
c || h.value?.querySelectorAll(".mrp-page-holder").forEach((E) => {
|
|
746
|
-
|
|
749
|
+
$.clear(E);
|
|
747
750
|
});
|
|
748
751
|
});
|
|
749
|
-
const we =
|
|
752
|
+
const we = ct(t, {
|
|
750
753
|
thumbsRoot: i,
|
|
751
754
|
visible: u,
|
|
752
755
|
renderThumbCanvas: (c) => {
|
|
753
756
|
try {
|
|
754
|
-
const { canvases: E } =
|
|
757
|
+
const { canvases: E } = Xe(t.value, { start: c, end: c, dpr: 0.2 });
|
|
755
758
|
return E[0] ?? null;
|
|
756
759
|
} catch {
|
|
757
760
|
return null;
|
|
758
761
|
}
|
|
759
762
|
}
|
|
760
763
|
});
|
|
761
|
-
|
|
764
|
+
xe(() => {
|
|
762
765
|
we.schedule();
|
|
763
766
|
}, { flush: "post" });
|
|
764
|
-
const
|
|
767
|
+
const De = x(() => n.debug), { debugStats: j } = ut(De, {
|
|
765
768
|
plan: t,
|
|
766
769
|
pageCount: w,
|
|
767
770
|
windowRange: Y,
|
|
@@ -771,17 +774,17 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
771
774
|
function ye() {
|
|
772
775
|
be(g.value), A.value === "fit" && ve();
|
|
773
776
|
}
|
|
774
|
-
function
|
|
777
|
+
function Ae() {
|
|
775
778
|
try {
|
|
776
|
-
const c = JSON.parse(localStorage.getItem(
|
|
779
|
+
const c = JSON.parse(localStorage.getItem(Ce) ?? "{}");
|
|
777
780
|
c.zoomMode === "fit" ? ie("fit") : typeof c.zoomMode == "number" && ie(c.zoomMode);
|
|
778
781
|
} catch {
|
|
779
782
|
}
|
|
780
783
|
}
|
|
781
|
-
return
|
|
782
|
-
window.addEventListener("resize", ye), be(g.value),
|
|
783
|
-
}),
|
|
784
|
-
window.removeEventListener("resize", ye), we.destroy(),
|
|
784
|
+
return qe(() => {
|
|
785
|
+
window.addEventListener("resize", ye), be(g.value), Ae(), n.autoLoad && U();
|
|
786
|
+
}), Ke(() => {
|
|
787
|
+
window.removeEventListener("resize", ye), we.destroy(), $.reset(), We();
|
|
785
788
|
}), X(
|
|
786
789
|
() => [n.tempId, n.furnitureTempId, JSON.stringify(n.params)],
|
|
787
790
|
() => {
|
|
@@ -796,7 +799,7 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
796
799
|
class: "mach-report-preview",
|
|
797
800
|
style: q(_.value)
|
|
798
801
|
}, [
|
|
799
|
-
|
|
802
|
+
Ve(Et, {
|
|
800
803
|
"page-count": w.value,
|
|
801
804
|
"current-page": d.value,
|
|
802
805
|
"zoom-mode": m(A),
|
|
@@ -805,36 +808,36 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
805
808
|
"show-print": O.value,
|
|
806
809
|
"show-pdf-window": D.value,
|
|
807
810
|
messages: N.value,
|
|
808
|
-
search: { visible: m(
|
|
811
|
+
search: { visible: m($).visible.value, query: m($).query.value, matchIndex: m($).matchIndex.value, matchCount: m($).matchCount.value },
|
|
809
812
|
"thumbs-visible": u.value,
|
|
810
813
|
onGoto: z,
|
|
811
814
|
onZoom: m(ie),
|
|
812
|
-
onExport: E[0] || (E[0] = (
|
|
815
|
+
onExport: E[0] || (E[0] = (R) => m(pe)(R)),
|
|
813
816
|
onPrint: m(fe),
|
|
814
817
|
onPdfWindow: m(me),
|
|
815
|
-
onSearchInput: m(
|
|
816
|
-
onSearchNav: m(
|
|
817
|
-
onSearchToggle: m(
|
|
818
|
-
onThumbsToggle: E[1] || (E[1] = (
|
|
818
|
+
onSearchInput: m($).onInput,
|
|
819
|
+
onSearchNav: m($).onNav,
|
|
820
|
+
onSearchToggle: m($).toggle,
|
|
821
|
+
onThumbsToggle: E[1] || (E[1] = (R) => u.value = !u.value)
|
|
819
822
|
}, null, 8, ["page-count", "current-page", "zoom-mode", "zoom", "show-export", "show-print", "show-pdf-window", "messages", "search", "thumbs-visible", "onZoom", "onPrint", "onPdfWindow", "onSearchInput", "onSearchNav", "onSearchToggle"]),
|
|
820
|
-
y("div",
|
|
823
|
+
y("div", St, [
|
|
821
824
|
y("div", {
|
|
822
825
|
ref_key: "viewportRef",
|
|
823
826
|
ref: g,
|
|
824
827
|
class: "mrp-body",
|
|
825
828
|
tabindex: "0",
|
|
826
|
-
onWheel:
|
|
827
|
-
onKeydown:
|
|
828
|
-
onScrollPassive: E[2] || (E[2] = (
|
|
829
|
+
onWheel: He,
|
|
830
|
+
onKeydown: Oe,
|
|
831
|
+
onScrollPassive: E[2] || (E[2] = (R) => m(ze)(R.target))
|
|
829
832
|
}, [
|
|
830
|
-
s.value ? (M(), C("div",
|
|
831
|
-
|
|
833
|
+
s.value ? (M(), C("div", Ft, P(N.value.loading), 1)) : l.value ? (M(), C("div", It, [
|
|
834
|
+
Ge(P(l.value) + " ", 1),
|
|
832
835
|
y("button", {
|
|
833
836
|
class: "mrp-retry",
|
|
834
837
|
type: "button",
|
|
835
838
|
onClick: U
|
|
836
839
|
}, P(N.value.retry), 1)
|
|
837
|
-
])) : !t.value || w.value === 0 ? (M(), C("div",
|
|
840
|
+
])) : !t.value || w.value === 0 ? (M(), C("div", Bt, P(N.value.empty), 1)) : (M(), C("div", {
|
|
838
841
|
key: 3,
|
|
839
842
|
class: "mrp-scale",
|
|
840
843
|
style: q({ width: `${m(ue).w * m(I)}px`, height: `${m(ue).h * m(I)}px` })
|
|
@@ -851,11 +854,11 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
851
854
|
style: q({ height: `${m(Y).padTopPx}px` }),
|
|
852
855
|
"aria-hidden": "true"
|
|
853
856
|
}, null, 4)) : L("", !0),
|
|
854
|
-
(M(!0), C(ge, null,
|
|
855
|
-
key:
|
|
857
|
+
(M(!0), C(ge, null, Ee(m(Be), (R) => (M(), C("div", {
|
|
858
|
+
key: R.index,
|
|
856
859
|
class: "mrp-page-holder",
|
|
857
|
-
"data-page":
|
|
858
|
-
}, null, 8,
|
|
860
|
+
"data-page": R.index + 1
|
|
861
|
+
}, null, 8, Lt))), 128)),
|
|
859
862
|
m(Y).padBottomPx > 0 ? (M(), C("div", {
|
|
860
863
|
key: 1,
|
|
861
864
|
class: "mrp-spacer-bottom",
|
|
@@ -871,24 +874,24 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
871
874
|
ref: i,
|
|
872
875
|
class: "mrp-thumbs"
|
|
873
876
|
}, [
|
|
874
|
-
(M(!0), C(ge, null,
|
|
877
|
+
(M(!0), C(ge, null, Ee(t.value?.pages ?? [], (R, v) => (M(), C("div", {
|
|
875
878
|
key: v,
|
|
876
879
|
class: V(["mrp-thumb", { "mrp-thumb-active": v + 1 === d.value }]),
|
|
877
|
-
onClick: (
|
|
880
|
+
onClick: (T) => z(v + 1)
|
|
878
881
|
}, [
|
|
879
882
|
y("div", {
|
|
880
883
|
class: "mrp-thumb-box",
|
|
881
884
|
"data-thumb": v + 1,
|
|
882
|
-
style: q({ height: `${Math.round(
|
|
883
|
-
}, null, 12,
|
|
884
|
-
y("span",
|
|
885
|
-
], 10,
|
|
885
|
+
style: q({ height: `${Math.round(R.pageHeightMm / R.pageWidthMm * 116)}px` })
|
|
886
|
+
}, null, 12, Wt),
|
|
887
|
+
y("span", Ht, P(v + 1), 1)
|
|
888
|
+
], 10, zt))), 128))
|
|
886
889
|
], 512)) : L("", !0)
|
|
887
890
|
]),
|
|
888
|
-
y("div",
|
|
889
|
-
|
|
891
|
+
y("div", Ot, [
|
|
892
|
+
Ye(c.$slots, "default", {}, void 0, !0)
|
|
890
893
|
]),
|
|
891
|
-
m(j) ? (M(), C("div",
|
|
894
|
+
m(j) ? (M(), C("div", Nt, [
|
|
892
895
|
E[3] || (E[3] = y("div", null, "mach-report debug", -1)),
|
|
893
896
|
y("div", null, "pages: " + P(m(j).pages) + " | window: [" + P(m(j).window) + "]", 1),
|
|
894
897
|
y("div", null, "zoom: " + P(m(j).zoom) + " | load: " + P(m(j).loadMs), 1),
|
|
@@ -896,28 +899,28 @@ const Tt = { class: "mrp-main" }, St = {
|
|
|
896
899
|
])) : L("", !0)
|
|
897
900
|
], 4));
|
|
898
901
|
}
|
|
899
|
-
}),
|
|
902
|
+
}), At = /* @__PURE__ */ Fe(Dt, [["__scopeId", "data-v-2e98692a"]]), Xt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
900
903
|
__proto__: null,
|
|
901
|
-
default:
|
|
904
|
+
default: At
|
|
902
905
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
903
906
|
export {
|
|
904
|
-
|
|
907
|
+
Mt as D,
|
|
905
908
|
re as M,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
909
|
+
At as R,
|
|
910
|
+
Zt as S,
|
|
911
|
+
Ct as a,
|
|
912
|
+
Et as b,
|
|
910
913
|
oe as c,
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
914
|
+
Gt as d,
|
|
915
|
+
Yt as e,
|
|
916
|
+
Jt as f,
|
|
917
|
+
Tt as g,
|
|
918
|
+
ot as h,
|
|
919
|
+
at as i,
|
|
920
|
+
rt as j,
|
|
921
|
+
Xt as k,
|
|
922
|
+
Vt as p,
|
|
923
|
+
kt as r,
|
|
924
|
+
$t as t,
|
|
925
|
+
Rt as u
|
|
923
926
|
};
|
|
@@ -62,7 +62,7 @@ function w(r = { fontUrl: "/simhei.ttf" }) {
|
|
|
62
62
|
return a;
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
|
-
const R = "mach-report/fetcher", b = "mach-report/pdf-exporter", y = "mach-report/config", A = "mach-report/controller", U = d(() => import("./ReportPreview-
|
|
65
|
+
const R = "mach-report/fetcher", b = "mach-report/pdf-exporter", y = "mach-report/config", A = "mach-report/controller", U = d(() => import("./ReportPreview-VCx59rSt.js").then((r) => r.k)), C = {
|
|
66
66
|
install(r, e = {}) {
|
|
67
67
|
const o = e.fetcher ?? P({
|
|
68
68
|
request: e.request ?? E({ baseUrl: e.baseUrl }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var O=Object.create;var E=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var U=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of b(e))!F.call(r,n)&&n!==t&&E(r,n,{get:()=>e[n],enumerable:!(o=A(e,n))||o.enumerable});return r};var M=(r,e,t)=>(t=r!=null?O(y(r)):{},U(e||!r||!r.__esModule?E(t,"default",{value:r,enumerable:!0}):t,r));const R=require("vue");function m(r){return r==null?[]:Array.isArray(r)?r.map(String).filter(e=>e!==""):String(r).split(",").map(e=>e.trim()).filter(e=>e!=="")}function j(r){return m(r).join(",")}class s extends Error{constructor(e){super(e),this.name="PlanLoadError"}}function P(r={}){const{baseUrl:e="",headers:t,credentials:o,timeoutMs:n=3e4}=r;return async({url:c,method:i,params:a})=>{const h=a&&Object.keys(a).length>0?`?${new URLSearchParams(a)}`:"",l=new AbortController,f=setTimeout(()=>l.abort(),n);let d;try{d=await fetch(`${e}${c}${h}`,{method:i.toUpperCase(),headers:{Accept:"application/json",...t},credentials:o,signal:l.signal})}catch(u){throw u instanceof DOMException&&u.name==="AbortError"?new s(`请求超时(${n}ms): ${c}`):new s(`请求失败(${c}): ${u instanceof Error?u.message:String(u)}`)}finally{clearTimeout(f)}if(!d.ok)throw new s(`HTTP ${d.status} ${c}`);return d.json()}}function p(r){const{request:e,baseUrl:t=""}=r;return async({tempIds:o,furnitureTempId:n,params:c})=>{if(o.length===0)throw new s("缺少报表模板 ID");const i={tempId:o.join(",")};n&&(i.furnitureTempId=n);for(const[l,f]of Object.entries(c||{}))l&&f!=null&&f!==""&&(i[l]=String(f));const a=await e({url:`${t}/report/codePrintReport/gridPlan`,method:"get",params:i});if(a&&a.code!=null&&a.code!==200)throw new s(String(a.message||"预览加载失败"));const h=a?.data?.pages;return{schemaVersion:"jh4j-compatible",pages:Array.isArray(h)?h:[]}}}function _(r={fontUrl:"/simhei.ttf"}){let e=null;return async t=>{e||(e=await import("@agile-team/mach-report/pdf"));const o=r.fontUrl?await e.loadFontWithCache(r.fontUrl):null,{bytes:n}=await e.renderPlanToPdf(t,o?{customFontBytes:o}:{});return n}}const T="mach-report/fetcher",g="mach-report/pdf-exporter",w="mach-report/config",$="mach-report/controller",C=R.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-
|
|
1
|
+
"use strict";var O=Object.create;var E=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var U=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of b(e))!F.call(r,n)&&n!==t&&E(r,n,{get:()=>e[n],enumerable:!(o=A(e,n))||o.enumerable});return r};var M=(r,e,t)=>(t=r!=null?O(y(r)):{},U(e||!r||!r.__esModule?E(t,"default",{value:r,enumerable:!0}):t,r));const R=require("vue");function m(r){return r==null?[]:Array.isArray(r)?r.map(String).filter(e=>e!==""):String(r).split(",").map(e=>e.trim()).filter(e=>e!=="")}function j(r){return m(r).join(",")}class s extends Error{constructor(e){super(e),this.name="PlanLoadError"}}function P(r={}){const{baseUrl:e="",headers:t,credentials:o,timeoutMs:n=3e4}=r;return async({url:c,method:i,params:a})=>{const h=a&&Object.keys(a).length>0?`?${new URLSearchParams(a)}`:"",l=new AbortController,f=setTimeout(()=>l.abort(),n);let d;try{d=await fetch(`${e}${c}${h}`,{method:i.toUpperCase(),headers:{Accept:"application/json",...t},credentials:o,signal:l.signal})}catch(u){throw u instanceof DOMException&&u.name==="AbortError"?new s(`请求超时(${n}ms): ${c}`):new s(`请求失败(${c}): ${u instanceof Error?u.message:String(u)}`)}finally{clearTimeout(f)}if(!d.ok)throw new s(`HTTP ${d.status} ${c}`);return d.json()}}function p(r){const{request:e,baseUrl:t=""}=r;return async({tempIds:o,furnitureTempId:n,params:c})=>{if(o.length===0)throw new s("缺少报表模板 ID");const i={tempId:o.join(",")};n&&(i.furnitureTempId=n);for(const[l,f]of Object.entries(c||{}))l&&f!=null&&f!==""&&(i[l]=String(f));const a=await e({url:`${t}/report/codePrintReport/gridPlan`,method:"get",params:i});if(a&&a.code!=null&&a.code!==200)throw new s(String(a.message||"预览加载失败"));const h=a?.data?.pages;return{schemaVersion:"jh4j-compatible",pages:Array.isArray(h)?h:[]}}}function _(r={fontUrl:"/simhei.ttf"}){let e=null;return async t=>{e||(e=await import("@agile-team/mach-report/pdf"));const o=r.fontUrl?await e.loadFontWithCache(r.fontUrl):null,{bytes:n}=await e.renderPlanToPdf(t,o?{customFontBytes:o}:{});return n}}const T="mach-report/fetcher",g="mach-report/pdf-exporter",w="mach-report/config",$="mach-report/controller",C=R.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-D-Us9mrX.cjs")).then(r=>r.ReportPreview$1)),H={install(r,e={}){const t=e.fetcher??p({request:e.request??P({baseUrl:e.baseUrl}),baseUrl:e.baseUrl});r.provide(T,t);const o=e.pdfFontUrl??e.config?.defaults?.pdfFontUrl??"/simhei.ttf";r.provide(g,e.pdfExporter??_({fontUrl:o})),r.provide(w,R.computed(()=>e.config??null)),e.globalComponent!==!1&&r.component("MachReportPreview",C)}};exports.MACH_REPORT_CONFIG_KEY=w;exports.MACH_REPORT_CONTROLLER_KEY=$;exports.MACH_REPORT_FETCHER_KEY=T;exports.MACH_REPORT_PDF_EXPORTER_KEY=g;exports.MachReportPreview=C;exports.PlanLoadError=s;exports.createDefaultPdfExporter=_;exports.createFetchRequest=P;exports.createJh4jGridPlanFetcher=p;exports.joinTempIds=j;exports.machReportPlugin=H;exports.normalizeTempIds=m;
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.mrp-toolbar[data-v-f50c26e8]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-title[data-v-f50c26e8]{font-size:13px;font-weight:600;margin-right:8px;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-nav[data-v-f50c26e8]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-f50c26e8]:hover:not(:disabled){background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-nav[data-v-f50c26e8]:disabled{opacity:.4;cursor:not-allowed}.mrp-active[data-v-f50c26e8]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mrp-pageinfo[data-v-f50c26e8]{font-size:12px;min-width:56px;text-align:center;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-spacer[data-v-f50c26e8]{flex:1}.mrp-search[data-v-f50c26e8]{display:flex;align-items:center;gap:4px}.mrp-search-input[data-v-f50c26e8]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;width:150px;outline:none}.mrp-search-input[data-v-f50c26e8]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-search-count[data-v-f50c26e8]{font-size:12px;color:var(--mrp-toolbar-fg, #e8e8e8);min-width:42px;text-align:center}.mach-report-preview[data-v-
|
|
1
|
+
.mrp-toolbar[data-v-f50c26e8]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-title[data-v-f50c26e8]{font-size:13px;font-weight:600;margin-right:8px;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-nav[data-v-f50c26e8]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-f50c26e8]:hover:not(:disabled){background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-nav[data-v-f50c26e8]:disabled{opacity:.4;cursor:not-allowed}.mrp-active[data-v-f50c26e8]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mrp-pageinfo[data-v-f50c26e8]{font-size:12px;min-width:56px;text-align:center;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-spacer[data-v-f50c26e8]{flex:1}.mrp-search[data-v-f50c26e8]{display:flex;align-items:center;gap:4px}.mrp-search-input[data-v-f50c26e8]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;width:150px;outline:none}.mrp-search-input[data-v-f50c26e8]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-search-count[data-v-f50c26e8]{font-size:12px;color:var(--mrp-toolbar-fg, #e8e8e8);min-width:42px;text-align:center}.mach-report-preview[data-v-2e98692a]{--mrp-shell-bg: #525659;--mrp-shell-fg: #e8e8e8;--mrp-toolbar-bg: #323639;--mrp-toolbar-border: #22252a;--mrp-toolbar-fg: #e8e8e8;--mrp-btn-fg: #cfcfcf;--mrp-btn-border: #4a4d52;--mrp-btn-hover-bg: #414549;--mrp-btn-hover-fg: #ffffff;--mrp-btn-active-bg: #2d5fb8;position:relative;display:flex;flex-direction:column;background:var(--mrp-shell-bg);color:var(--mrp-shell-fg);overflow:hidden}.mrp-main[data-v-2e98692a]{display:flex;flex:1;min-height:0}.mrp-body[data-v-2e98692a]{flex:1;overflow:auto;padding:24px;outline:none}.mrp-scale[data-v-2e98692a]{margin:0 auto}.mrp-scale-inner[data-v-2e98692a]{display:flex;flex-direction:column;align-items:center}.mrp-page-holder[data-v-2e98692a]{background:#fff;box-shadow:0 2px 8px #00000059;margin-bottom:var(--v3c509574);flex:none}.mrp-state[data-v-2e98692a]{padding:40px;text-align:center;color:#bfbfbf;font-size:13px}.mrp-error[data-v-2e98692a]{color:#ff9d9d}.mrp-retry[data-v-2e98692a]{margin-left:12px;background:transparent;color:#8fb7ff;border:1px solid #5a7fbf;border-radius:4px;padding:1px 10px;cursor:pointer}.mrp-overlay[data-v-2e98692a]{position:absolute;inset:0;pointer-events:none}.mrp-page-holder[data-v-2e98692a] mark.mrp-hit{background:#ffe066;color:#7a5c00;border-radius:2px;padding:0 1px}.mrp-thumbs[data-v-2e98692a]{width:140px;flex:none;overflow-y:auto;border-left:1px solid var(--mrp-toolbar-border);background:var(--mrp-toolbar-bg);padding:8px;display:flex;flex-direction:column;gap:8px}.mrp-thumb[data-v-2e98692a]{cursor:pointer;text-align:center}.mrp-thumb-box[data-v-2e98692a]{width:116px;background:#fff;box-shadow:0 1px 4px #0006;overflow:hidden;border:2px solid transparent}.mrp-thumb-active .mrp-thumb-box[data-v-2e98692a]{border-color:var(--mrp-btn-active-bg)}.mrp-thumb-no[data-v-2e98692a]{font-size:11px;color:var(--mrp-toolbar-fg)}.mrp-debug[data-v-2e98692a]{position:absolute;right:8px;bottom:8px;background:#000000c7;color:#7ee787;font:11px/1.6 ui-monospace,monospace;padding:6px 10px;border-radius:6px;pointer-events:none;white-space:pre}
|
package/dist/vue-async.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),i=require("./plugin-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),i=require("./plugin-Dh1exwdD.cjs"),r=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-D-Us9mrX.cjs")).then(e=>e.ReportPreview$1));function c(){return Promise.resolve().then(()=>require("./ReportPreview-D-Us9mrX.cjs")).then(e=>e.ReportPreview$1)}const t={install(e,o={}){i.machReportPlugin.install(e,o),e.component("MachReportPreview",r)}};exports.MachReportPreview=r;exports.default=t;exports.machReportAsyncPlugin=t;exports.preloadMachReport=c;
|
package/dist/vue-async.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineAsyncComponent as e } from "vue";
|
|
2
|
-
import { m as n } from "./plugin-
|
|
3
|
-
const r = e(() => import("./ReportPreview-
|
|
2
|
+
import { m as n } from "./plugin-Bo8QqzCz.js";
|
|
3
|
+
const r = e(() => import("./ReportPreview-VCx59rSt.js").then((t) => t.k));
|
|
4
4
|
function m() {
|
|
5
|
-
return import("./ReportPreview-
|
|
5
|
+
return import("./ReportPreview-VCx59rSt.js").then((t) => t.k);
|
|
6
6
|
}
|
|
7
7
|
const p = {
|
|
8
8
|
install(t, o = {}) {
|
package/dist/vue.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ReportPreview-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ReportPreview-D-Us9mrX.cjs"),r=require("./plugin-Dh1exwdD.cjs"),c=require("@agile-team/mach-report"),s=require("vue");function p(E){return async({tempIds:t})=>{if(t.length===0)throw new r.PlanLoadError("缺少报表模板 ID");const a=[];for(const n of t){const o=E[n];if(!o)throw new r.PlanLoadError(`本地模板 ${n} 不存在`);const{plan:R,warnings:i}=c.paginateTemplate(o.template,o.datasets??{});i.length>0&&console.warn("[mach-report] 分页告警:",i),a.push(...R.pages)}return{schemaVersion:"mach-local",pages:a}}}function P(){return s.inject(r.MACH_REPORT_CONTROLLER_KEY,null)}exports.DEFAULT_MESSAGES=e.DEFAULT_MESSAGES;exports.DEFAULT_THEME=e.DEFAULT_THEME;exports.MachReportError=e.MachReportError;exports.ReportPreview=e.ReportPreview;exports.ReportToolbar=e.ReportToolbar;exports.SILENT_LOGGER=e.SILENT_LOGGER;exports.buildPrintDocument=e.buildPrintDocument;exports.defineMachReportConfig=e.defineMachReportConfig;exports.defineMachReportPreset=e.defineMachReportPreset;exports.printPlans=e.printPlans;exports.provideMachReportConfig=e.provideMachReportConfig;exports.resolveConfig=e.resolveConfig;exports.themeToCssVars=e.themeToCssVars;exports.toErrorDetail=e.toErrorDetail;exports.useMachReportConfig=e.useMachReportConfig;exports.usePageWindow=e.usePageWindow;exports.usePrintExport=e.usePrintExport;exports.useZoom=e.useZoom;exports.MACH_REPORT_CONFIG_KEY=r.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=r.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=r.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=r.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=r.MachReportPreview;exports.PlanLoadError=r.PlanLoadError;exports.createDefaultPdfExporter=r.createDefaultPdfExporter;exports.createFetchRequest=r.createFetchRequest;exports.createJh4jGridPlanFetcher=r.createJh4jGridPlanFetcher;exports.joinTempIds=r.joinTempIds;exports.machReportPlugin=r.machReportPlugin;exports.normalizeTempIds=r.normalizeTempIds;exports.createLocalFetcher=p;exports.useReportPreview=P;
|
package/dist/vue.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { D as T, a as _, M as g, R as M, b as d, S as C, c as w, d as O, e as D, p as F, f as L, r as A, t as H, g as j, u as v, h as x, i as G, j as S } from "./ReportPreview-
|
|
2
|
-
import { P as t, M as c } from "./plugin-
|
|
3
|
-
import { a as I, b as K, c as Y, d as N, e as y, f as U, g as V, j as q, m as z, n as J } from "./plugin-
|
|
1
|
+
import { D as T, a as _, M as g, R as M, b as d, S as C, c as w, d as O, e as D, p as F, f as L, r as A, t as H, g as j, u as v, h as x, i as G, j as S } from "./ReportPreview-VCx59rSt.js";
|
|
2
|
+
import { P as t, M as c } from "./plugin-Bo8QqzCz.js";
|
|
3
|
+
import { a as I, b as K, c as Y, d as N, e as y, f as U, g as V, j as q, m as z, n as J } from "./plugin-Bo8QqzCz.js";
|
|
4
4
|
import { paginateTemplate as p } from "@agile-team/mach-report";
|
|
5
5
|
import { inject as E } from "vue";
|
|
6
6
|
function h(n) {
|
package/package.json
CHANGED