@agile-team/mach-report 1.1.1 → 1.2.0
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/README.md +9 -21
- package/dist/ReportPreview-CJLvkTVn.cjs +6 -0
- package/dist/ReportPreview-mZiGtf0L.js +1231 -0
- package/dist/plugin-C4qpbdMJ.cjs +1 -0
- package/dist/plugin-DcmAPK_K.js +85 -0
- package/dist/style.css +1 -1
- package/dist/vue/ReportPreview.d.ts +2 -0
- package/dist/vue/ReportToolbar.d.ts +2 -2
- package/dist/vue/async.d.cts +5 -0
- package/dist/vue/async.d.ts +5 -0
- package/dist/vue/composables/usePageWindow.d.ts +1 -1
- package/dist/vue/composables/usePrintExport.d.ts +3 -1
- package/dist/vue/config.d.ts +3 -0
- package/dist/vue/controller.d.ts +2 -1
- package/dist/vue/pdf-exporter.d.ts +2 -2
- package/dist/vue/plugin.d.ts +5 -0
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +8 -8
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +21 -21
- package/package.json +1 -1
- package/dist/ReportPreview-Do-x4E3Z.js +0 -1138
- package/dist/ReportPreview-kNbuSmbL.cjs +0 -6
- package/dist/plugin-CVYs7wAj.js +0 -92
- package/dist/plugin-DxneRya8.cjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const E=require("vue");function p(r){return r==null?[]:Array.isArray(r)?r.map(String).filter(e=>e!==""):String(r).split(",").map(e=>e.trim()).filter(e=>e!=="")}function O(r){return p(r).join(",")}class o extends Error{constructor(e){super(e),this.name="PlanLoadError"}}function m(r={}){const{baseUrl:e="",headers:i,credentials:c,timeoutMs:l=3e4}=r,h=e.replace(/\/+$/,"");return async({url:a,method:s,params:t})=>{const d=t&&Object.keys(t).length>0?`?${new URLSearchParams(t)}`:"",n=new AbortController,f=setTimeout(()=>n.abort(),l);let R;try{R=await fetch(`${h}${a}${d}`,{method:s.toUpperCase(),headers:{Accept:"application/json",...i},credentials:c,signal:n.signal})}catch(u){throw u instanceof DOMException&&u.name==="AbortError"?new o(`请求超时(${l}ms): ${a}`):new o(`请求失败(${a}): ${u instanceof Error?u.message:String(u)}`)}finally{clearTimeout(f)}if(!R.ok)throw new o(`HTTP ${R.status} ${a}`);return R.json()}}function P(r){const{request:e,baseUrl:i=""}=r,c=i.replace(/\/+$/,"");return async({tempIds:l,furnitureTempId:h,params:a})=>{if(l.length===0)throw new o("缺少报表模板 ID");const s={};for(const[n,f]of Object.entries(a||{}))n&&n!=="tempId"&&n!=="furnitureTempId"&&f!=null&&f!==""&&(s[n]=String(f));s.tempId=l.join(","),h&&(s.furnitureTempId=h);const t=await e({url:`${c}/report/codePrintReport/gridPlan`,method:"get",params:s});if(t&&t.code!=null&&t.code!==200)throw new o(String(t.message||"预览加载失败"));const d=t?.data?.pages;if(!Array.isArray(d))throw new o("预览响应缺少 pages 数组,请检查 gridPlan 接口契约");return{schemaVersion:"jh4j-compatible",pages:d}}}const _="mach-report/fetcher",g="mach-report/pdf-exporter",T="mach-report/config",C="mach-report/controller",w=E.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-CJLvkTVn.cjs")).then(r=>r.ReportPreview$1)),A={install(r,e={}){const i=e.fetcher??P({request:e.request??m(),baseUrl:e.baseUrl});r.provide(_,i),e.pdfExporter&&r.provide(g,e.pdfExporter),r.provide(T,E.computed(()=>{if(e.pdfFontUrl===void 0)return e.config??null;const c=e.config??{defaults:{},presets:{}};return{...c,defaults:{...c.defaults,pdfFontUrl:e.pdfFontUrl}}})),e.globalComponent!==!1&&r.component("MachReportPreview",w)}};exports.MACH_REPORT_CONFIG_KEY=T;exports.MACH_REPORT_CONTROLLER_KEY=C;exports.MACH_REPORT_FETCHER_KEY=_;exports.MACH_REPORT_PDF_EXPORTER_KEY=g;exports.MachReportPreview=w;exports.PlanLoadError=o;exports.createFetchRequest=m;exports.createJh4jGridPlanFetcher=P;exports.joinTempIds=O;exports.machReportPlugin=A;exports.normalizeTempIds=p;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { defineAsyncComponent as m, computed as g } from "vue";
|
|
2
|
+
function E(r) {
|
|
3
|
+
return r == null ? [] : Array.isArray(r) ? r.map(String).filter((e) => e !== "") : String(r).split(",").map((e) => e.trim()).filter((e) => e !== "");
|
|
4
|
+
}
|
|
5
|
+
function y(r) {
|
|
6
|
+
return E(r).join(",");
|
|
7
|
+
}
|
|
8
|
+
class c extends Error {
|
|
9
|
+
constructor(e) {
|
|
10
|
+
super(e), this.name = "PlanLoadError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function R(r = {}) {
|
|
14
|
+
const { baseUrl: e = "", headers: i, credentials: o, timeoutMs: l = 3e4 } = r, d = e.replace(/\/+$/, "");
|
|
15
|
+
return async ({ url: a, method: s, params: t }) => {
|
|
16
|
+
const h = t && Object.keys(t).length > 0 ? `?${new URLSearchParams(t)}` : "", n = new AbortController(), f = setTimeout(() => n.abort(), l);
|
|
17
|
+
let p;
|
|
18
|
+
try {
|
|
19
|
+
p = await fetch(`${d}${a}${h}`, {
|
|
20
|
+
method: s.toUpperCase(),
|
|
21
|
+
headers: { Accept: "application/json", ...i },
|
|
22
|
+
credentials: o,
|
|
23
|
+
signal: n.signal
|
|
24
|
+
});
|
|
25
|
+
} catch (u) {
|
|
26
|
+
throw u instanceof DOMException && u.name === "AbortError" ? new c(`请求超时(${l}ms): ${a}`) : new c(`请求失败(${a}): ${u instanceof Error ? u.message : String(u)}`);
|
|
27
|
+
} finally {
|
|
28
|
+
clearTimeout(f);
|
|
29
|
+
}
|
|
30
|
+
if (!p.ok)
|
|
31
|
+
throw new c(`HTTP ${p.status} ${a}`);
|
|
32
|
+
return p.json();
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function w(r) {
|
|
36
|
+
const { request: e, baseUrl: i = "" } = r, o = i.replace(/\/+$/, "");
|
|
37
|
+
return async ({ tempIds: l, furnitureTempId: d, params: a }) => {
|
|
38
|
+
if (l.length === 0) throw new c("缺少报表模板 ID");
|
|
39
|
+
const s = {};
|
|
40
|
+
for (const [n, f] of Object.entries(a || {}))
|
|
41
|
+
n && n !== "tempId" && n !== "furnitureTempId" && f != null && f !== "" && (s[n] = String(f));
|
|
42
|
+
s.tempId = l.join(","), d && (s.furnitureTempId = d);
|
|
43
|
+
const t = await e({
|
|
44
|
+
url: `${o}/report/codePrintReport/gridPlan`,
|
|
45
|
+
method: "get",
|
|
46
|
+
params: s
|
|
47
|
+
});
|
|
48
|
+
if (t && t.code != null && t.code !== 200)
|
|
49
|
+
throw new c(String(t.message || "预览加载失败"));
|
|
50
|
+
const h = t?.data?.pages;
|
|
51
|
+
if (!Array.isArray(h))
|
|
52
|
+
throw new c("预览响应缺少 pages 数组,请检查 gridPlan 接口契约");
|
|
53
|
+
return {
|
|
54
|
+
schemaVersion: "jh4j-compatible",
|
|
55
|
+
pages: h
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const P = "mach-report/fetcher", T = "mach-report/pdf-exporter", b = "mach-report/config", A = "mach-report/controller", _ = m(() => import("./ReportPreview-mZiGtf0L.js").then((r) => r.n)), j = {
|
|
60
|
+
install(r, e = {}) {
|
|
61
|
+
const i = e.fetcher ?? w({
|
|
62
|
+
// 网关前缀由 jh4j adapter 统一添加;内置 fetch 不再重复拼接。
|
|
63
|
+
request: e.request ?? R(),
|
|
64
|
+
baseUrl: e.baseUrl
|
|
65
|
+
});
|
|
66
|
+
r.provide(P, i), e.pdfExporter && r.provide(T, e.pdfExporter), r.provide(b, g(() => {
|
|
67
|
+
if (e.pdfFontUrl === void 0) return e.config ?? null;
|
|
68
|
+
const o = e.config ?? { defaults: {}, presets: {} };
|
|
69
|
+
return { ...o, defaults: { ...o.defaults, pdfFontUrl: e.pdfFontUrl } };
|
|
70
|
+
})), e.globalComponent !== !1 && r.component("MachReportPreview", _);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
export {
|
|
74
|
+
A as M,
|
|
75
|
+
c as P,
|
|
76
|
+
b as a,
|
|
77
|
+
P as b,
|
|
78
|
+
T as c,
|
|
79
|
+
_ as d,
|
|
80
|
+
R as e,
|
|
81
|
+
w as f,
|
|
82
|
+
y as j,
|
|
83
|
+
j as m,
|
|
84
|
+
E as n
|
|
85
|
+
};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.mrp-toolbar[data-v-
|
|
1
|
+
.mrp-toolbar[data-v-48cc0980]{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-48cc0980]{font-size:13px;font-weight:600;margin-right:8px;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-nav[data-v-48cc0980]{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-48cc0980]:hover:not(:disabled){background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-nav[data-v-48cc0980]:disabled{opacity:.4;cursor:not-allowed}.mrp-active[data-v-48cc0980]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mrp-pageinfo[data-v-48cc0980]{font-size:12px;min-width:56px;text-align:center;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-spacer[data-v-48cc0980]{flex:1}.mrp-search[data-v-48cc0980]{display:flex;align-items:center;gap:4px}.mrp-search-input[data-v-48cc0980]{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-48cc0980]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-search-count[data-v-48cc0980]{font-size:12px;color:var(--mrp-toolbar-fg, #e8e8e8);min-width:42px;text-align:center}.mrp-params[data-v-aafce92d]{display:flex;align-items:flex-end;gap:12px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-params-title[data-v-aafce92d]{font-size:12px;font-weight:600;color:var(--mrp-toolbar-fg, #e8e8e8);padding-bottom:5px;white-space:nowrap}.mrp-params-grid[data-v-aafce92d]{display:flex;flex-wrap:wrap;gap:8px 12px;flex:1}.mrp-param[data-v-aafce92d]{display:flex;flex-direction:column;gap:2px}.mrp-param-label[data-v-aafce92d]{font-size:11px;color:var(--mrp-toolbar-fg, #e8e8e8);opacity:.85}.mrp-param-star[data-v-aafce92d]{color:#ff7b72;font-style:normal;margin-left:2px}.mrp-param-input[data-v-aafce92d]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:3px 8px;font-size:12px;min-width:130px;outline:none}.mrp-param-input[data-v-aafce92d]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-param-missing .mrp-param-input[data-v-aafce92d]{border-color:#ff7b72}select.mrp-param-input option[data-v-aafce92d]{background:#22252a}.mrp-params-actions[data-v-aafce92d]{display:flex;gap:6px;padding-bottom:1px}.mrp-nav[data-v-aafce92d]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:4px 14px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-aafce92d]:hover{background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-param-query[data-v-aafce92d]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mach-report-preview[data-v-a0054844]{--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-a0054844]{display:flex;flex:1;min-height:0}.mrp-body[data-v-a0054844]{flex:1;overflow:auto;padding:24px;outline:none}.mrp-scale[data-v-a0054844]{margin:0 auto}.mrp-scale-inner[data-v-a0054844]{display:flex;flex-direction:column;align-items:center}.mrp-page-holder[data-v-a0054844]{background:#fff;box-shadow:0 2px 8px #00000059;margin-bottom:var(--a2716f8c);flex:none}.mrp-state[data-v-a0054844]{padding:40px;text-align:center;color:#bfbfbf;font-size:13px}.mrp-error[data-v-a0054844]{color:#ff9d9d}.mrp-export-notice[data-v-a0054844]{padding:7px 12px;font-size:12px;background:#fff0c2;color:#613c00}.mrp-export-error[data-v-a0054844]{background:#ffe0df;color:#8e1f1f}.mrp-export-progress[data-v-a0054844]{background:#e7f0ff;color:#1a4d86}.mrp-retry[data-v-a0054844]{margin-left:12px;background:transparent;color:#8fb7ff;border:1px solid #5a7fbf;border-radius:4px;padding:1px 10px;cursor:pointer}.mrp-overlay[data-v-a0054844]{position:absolute;inset:0;pointer-events:none}.mrp-page-holder[data-v-a0054844] mark.mrp-hit{background:#ffe066;color:#7a5c00;border-radius:2px;padding:0 1px}.mrp-thumbs[data-v-a0054844]{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-a0054844]{cursor:pointer;text-align:center}.mrp-thumb-box[data-v-a0054844]{width:116px;background:#fff;box-shadow:0 1px 4px #0006;overflow:hidden;border:2px solid transparent}.mrp-thumb-active .mrp-thumb-box[data-v-a0054844]{border-color:var(--mrp-btn-active-bg)}.mrp-thumb-no[data-v-a0054844]{font-size:11px;color:var(--mrp-toolbar-fg)}.mrp-debug[data-v-a0054844]{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}
|
|
@@ -103,6 +103,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
103
103
|
cause?: unknown;
|
|
104
104
|
} | undefined) => any;
|
|
105
105
|
loaded: (pageCount: number) => any;
|
|
106
|
+
warning: (message: string) => any;
|
|
106
107
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
107
108
|
tempId: {
|
|
108
109
|
type: PropType<string | string[] | null>;
|
|
@@ -177,6 +178,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
177
178
|
cause?: unknown;
|
|
178
179
|
} | undefined) => any) | undefined;
|
|
179
180
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
181
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
180
182
|
}>, {
|
|
181
183
|
height: string;
|
|
182
184
|
gapPx: number;
|
|
@@ -17,7 +17,7 @@ type __VLS_Props = {
|
|
|
17
17
|
thumbsVisible: boolean;
|
|
18
18
|
};
|
|
19
19
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
20
|
-
export: (format: "html" | "png" | "pdf" | "word") => any;
|
|
20
|
+
export: (format: "html" | "png" | "pdf" | "xlsx" | "word") => any;
|
|
21
21
|
zoom: (mode: number | "fit") => any;
|
|
22
22
|
print: () => any;
|
|
23
23
|
goto: (page: number) => any;
|
|
@@ -27,7 +27,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
27
27
|
"search-toggle": () => any;
|
|
28
28
|
"thumbs-toggle": () => any;
|
|
29
29
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
30
|
-
onExport?: ((format: "html" | "png" | "pdf" | "word") => any) | undefined;
|
|
30
|
+
onExport?: ((format: "html" | "png" | "pdf" | "xlsx" | "word") => any) | undefined;
|
|
31
31
|
onZoom?: ((mode: number | "fit") => any) | undefined;
|
|
32
32
|
onPrint?: (() => any) | undefined;
|
|
33
33
|
onGoto?: ((page: number) => any) | undefined;
|
package/dist/vue/async.d.cts
CHANGED
|
@@ -81,6 +81,7 @@ export declare const MachReportPreview: {
|
|
|
81
81
|
cause?: unknown;
|
|
82
82
|
} | undefined) => any) | undefined;
|
|
83
83
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
84
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
84
85
|
}>, {
|
|
85
86
|
reload: () => Promise<void>;
|
|
86
87
|
print: () => Promise<void>;
|
|
@@ -96,6 +97,7 @@ export declare const MachReportPreview: {
|
|
|
96
97
|
cause?: unknown;
|
|
97
98
|
} | undefined) => any;
|
|
98
99
|
loaded: (pageCount: number) => any;
|
|
100
|
+
warning: (message: string) => any;
|
|
99
101
|
}, import('vue').PublicProps, {
|
|
100
102
|
height: string;
|
|
101
103
|
gapPx: number;
|
|
@@ -190,6 +192,7 @@ export declare const MachReportPreview: {
|
|
|
190
192
|
cause?: unknown;
|
|
191
193
|
} | undefined) => any) | undefined;
|
|
192
194
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
195
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
193
196
|
}>, {
|
|
194
197
|
reload: () => Promise<void>;
|
|
195
198
|
print: () => Promise<void>;
|
|
@@ -286,6 +289,7 @@ export declare const MachReportPreview: {
|
|
|
286
289
|
cause?: unknown;
|
|
287
290
|
} | undefined) => any) | undefined;
|
|
288
291
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
292
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
289
293
|
}>, {
|
|
290
294
|
reload: () => Promise<void>;
|
|
291
295
|
print: () => Promise<void>;
|
|
@@ -301,6 +305,7 @@ export declare const MachReportPreview: {
|
|
|
301
305
|
cause?: unknown;
|
|
302
306
|
} | undefined) => any;
|
|
303
307
|
loaded: (pageCount: number) => any;
|
|
308
|
+
warning: (message: string) => any;
|
|
304
309
|
}, string, {
|
|
305
310
|
height: string;
|
|
306
311
|
gapPx: number;
|
package/dist/vue/async.d.ts
CHANGED
|
@@ -81,6 +81,7 @@ export declare const MachReportPreview: {
|
|
|
81
81
|
cause?: unknown;
|
|
82
82
|
} | undefined) => any) | undefined;
|
|
83
83
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
84
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
84
85
|
}>, {
|
|
85
86
|
reload: () => Promise<void>;
|
|
86
87
|
print: () => Promise<void>;
|
|
@@ -96,6 +97,7 @@ export declare const MachReportPreview: {
|
|
|
96
97
|
cause?: unknown;
|
|
97
98
|
} | undefined) => any;
|
|
98
99
|
loaded: (pageCount: number) => any;
|
|
100
|
+
warning: (message: string) => any;
|
|
99
101
|
}, import('vue').PublicProps, {
|
|
100
102
|
height: string;
|
|
101
103
|
gapPx: number;
|
|
@@ -190,6 +192,7 @@ export declare const MachReportPreview: {
|
|
|
190
192
|
cause?: unknown;
|
|
191
193
|
} | undefined) => any) | undefined;
|
|
192
194
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
195
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
193
196
|
}>, {
|
|
194
197
|
reload: () => Promise<void>;
|
|
195
198
|
print: () => Promise<void>;
|
|
@@ -286,6 +289,7 @@ export declare const MachReportPreview: {
|
|
|
286
289
|
cause?: unknown;
|
|
287
290
|
} | undefined) => any) | undefined;
|
|
288
291
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
292
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
289
293
|
}>, {
|
|
290
294
|
reload: () => Promise<void>;
|
|
291
295
|
print: () => Promise<void>;
|
|
@@ -301,6 +305,7 @@ export declare const MachReportPreview: {
|
|
|
301
305
|
cause?: unknown;
|
|
302
306
|
} | undefined) => any;
|
|
303
307
|
loaded: (pageCount: number) => any;
|
|
308
|
+
warning: (message: string) => any;
|
|
304
309
|
}, string, {
|
|
305
310
|
height: string;
|
|
306
311
|
gapPx: number;
|
|
@@ -9,7 +9,7 @@ import { PlanPage, RenderPlan } from '@agile-team/mach-report';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function usePageWindow(plan: Ref<RenderPlan | null>, zoom: Ref<number>, options?: {
|
|
11
11
|
pxPerMm?: number;
|
|
12
|
-
gapPx?: number
|
|
12
|
+
gapPx?: number | Ref<number>;
|
|
13
13
|
}): {
|
|
14
14
|
contentSize: import('vue').ComputedRef<{
|
|
15
15
|
w: number;
|
|
@@ -5,7 +5,7 @@ interface PrintHtmlResult {
|
|
|
5
5
|
head: string;
|
|
6
6
|
pageChunks: string[];
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
8
|
+
/** 供 HTML/Word 导出的完整文档;打印路径逐页渲染,避免预先生成所有页。 */
|
|
9
9
|
export declare function buildPrintDocument(p: RenderPlan): PrintHtmlResult;
|
|
10
10
|
/**
|
|
11
11
|
* 批量打印(多单连打):把多份计划合并为一个打印文档——
|
|
@@ -27,6 +27,8 @@ export declare function buildWordHtml(p: RenderPlan): {
|
|
|
27
27
|
export declare function usePrintExport(plan: Ref<RenderPlan | null>, hooks: {
|
|
28
28
|
getPdfExporter: () => PdfExporter;
|
|
29
29
|
onError: (message: string, code?: string) => void;
|
|
30
|
+
onWarning?: (message: string) => void;
|
|
31
|
+
onBusy?: (format: string | null) => void;
|
|
30
32
|
}): {
|
|
31
33
|
print: () => Promise<void>;
|
|
32
34
|
exportAs: (format: string) => void;
|
package/dist/vue/config.d.ts
CHANGED
|
@@ -15,8 +15,11 @@ export interface MachReportMessages {
|
|
|
15
15
|
fitWidth: string;
|
|
16
16
|
exportHtml: string;
|
|
17
17
|
exportPdf: string;
|
|
18
|
+
exportExcel: string;
|
|
18
19
|
exportImage: string;
|
|
19
20
|
exportWord: string;
|
|
21
|
+
/** 导出进行中提示,{format} 占位 */
|
|
22
|
+
exporting: string;
|
|
20
23
|
print: string;
|
|
21
24
|
pdfWindow: string;
|
|
22
25
|
loading: string;
|
package/dist/vue/controller.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
export interface MachReportController {
|
|
6
6
|
reload(): Promise<void>;
|
|
7
7
|
print(): Promise<void>;
|
|
8
|
-
|
|
8
|
+
/** 支持 html/pdf/xlsx/png/word(excel/image/doc 为兼容别名);未知格式报 export 错误。 */
|
|
9
|
+
exportAs(format: string): void;
|
|
9
10
|
openPdfWindow(): void;
|
|
10
11
|
gotoPage(page: number): void;
|
|
11
12
|
/** 编程式设置参数并查询(合并进面板值;opts.reload=false 仅设值不重载) */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RenderPlan } from '@agile-team/mach-report';
|
|
2
|
-
/** PDF 导出器:RenderPlan → PDF
|
|
3
|
-
export type PdfExporter = (plan: RenderPlan) => Promise<Uint8Array>;
|
|
2
|
+
/** PDF 导出器:RenderPlan → PDF 字节;第二参数可上报非致命保真告警。 */
|
|
3
|
+
export type PdfExporter = (plan: RenderPlan, onWarning?: (message: string) => void) => Promise<Uint8Array>;
|
|
4
4
|
export interface DefaultPdfExporterOptions {
|
|
5
5
|
/** 中文字体 URL(浏览器 fetch);空串跳过字体加载(西文报表) */
|
|
6
6
|
fontUrl: string;
|
package/dist/vue/plugin.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ export declare const MachReportPreview: {
|
|
|
74
74
|
cause?: unknown;
|
|
75
75
|
} | undefined) => any) | undefined;
|
|
76
76
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
77
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
77
78
|
}>, {
|
|
78
79
|
reload: () => Promise<void>;
|
|
79
80
|
print: () => Promise<void>;
|
|
@@ -89,6 +90,7 @@ export declare const MachReportPreview: {
|
|
|
89
90
|
cause?: unknown;
|
|
90
91
|
} | undefined) => any;
|
|
91
92
|
loaded: (pageCount: number) => any;
|
|
93
|
+
warning: (message: string) => any;
|
|
92
94
|
}, import('vue').PublicProps, {
|
|
93
95
|
height: string;
|
|
94
96
|
gapPx: number;
|
|
@@ -183,6 +185,7 @@ export declare const MachReportPreview: {
|
|
|
183
185
|
cause?: unknown;
|
|
184
186
|
} | undefined) => any) | undefined;
|
|
185
187
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
188
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
186
189
|
}>, {
|
|
187
190
|
reload: () => Promise<void>;
|
|
188
191
|
print: () => Promise<void>;
|
|
@@ -279,6 +282,7 @@ export declare const MachReportPreview: {
|
|
|
279
282
|
cause?: unknown;
|
|
280
283
|
} | undefined) => any) | undefined;
|
|
281
284
|
onLoaded?: ((pageCount: number) => any) | undefined;
|
|
285
|
+
onWarning?: ((message: string) => any) | undefined;
|
|
282
286
|
}>, {
|
|
283
287
|
reload: () => Promise<void>;
|
|
284
288
|
print: () => Promise<void>;
|
|
@@ -294,6 +298,7 @@ export declare const MachReportPreview: {
|
|
|
294
298
|
cause?: unknown;
|
|
295
299
|
} | undefined) => any;
|
|
296
300
|
loaded: (pageCount: number) => any;
|
|
301
|
+
warning: (message: string) => any;
|
|
297
302
|
}, string, {
|
|
298
303
|
height: string;
|
|
299
304
|
gapPx: number;
|
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-C4qpbdMJ.cjs"),r=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-CJLvkTVn.cjs")).then(e=>e.ReportPreview$1));function c(){return Promise.resolve().then(()=>require("./ReportPreview-CJLvkTVn.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,17 +1,17 @@
|
|
|
1
|
-
import { defineAsyncComponent as
|
|
2
|
-
import { m as
|
|
3
|
-
const r =
|
|
4
|
-
function
|
|
5
|
-
return import("./ReportPreview-
|
|
1
|
+
import { defineAsyncComponent as o } from "vue";
|
|
2
|
+
import { m as e } from "./plugin-DcmAPK_K.js";
|
|
3
|
+
const r = o(() => import("./ReportPreview-mZiGtf0L.js").then((t) => t.n));
|
|
4
|
+
function m() {
|
|
5
|
+
return import("./ReportPreview-mZiGtf0L.js").then((t) => t.n);
|
|
6
6
|
}
|
|
7
7
|
const p = {
|
|
8
|
-
install(t,
|
|
9
|
-
|
|
8
|
+
install(t, n = {}) {
|
|
9
|
+
e.install(t, n), t.component("MachReportPreview", r);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
export {
|
|
13
13
|
r as MachReportPreview,
|
|
14
14
|
p as default,
|
|
15
15
|
p as machReportAsyncPlugin,
|
|
16
|
-
|
|
16
|
+
m as preloadMachReport
|
|
17
17
|
};
|
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-CJLvkTVn.cjs"),r=require("./plugin-C4qpbdMJ.cjs"),c=require("@agile-team/mach-report"),s=require("vue");function l(R){return async({tempIds:t})=>{if(t.length===0)throw new r.PlanLoadError("缺少报表模板 ID");const a=[];for(const n of t){const o=R[n];if(!o)throw new r.PlanLoadError(`本地模板 ${n} 不存在`);const{plan:E,warnings:i}=c.paginateTemplate(o.template,o.datasets??{});i.length>0&&console.warn("[mach-report] 分页告警:",i),a.push(...E.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.ReportParamPanel=e.ReportParamPanel;exports.ReportPreview=e.ReportPreview;exports.ReportToolbar=e.ReportToolbar;exports.SILENT_LOGGER=e.SILENT_LOGGER;exports.buildPrintDocument=e.buildPrintDocument;exports.buildWordHtml=e.buildWordHtml;exports.createDefaultPdfExporter=e.createDefaultPdfExporter;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.createFetchRequest=r.createFetchRequest;exports.createJh4jGridPlanFetcher=r.createJh4jGridPlanFetcher;exports.joinTempIds=r.joinTempIds;exports.machReportPlugin=r.machReportPlugin;exports.normalizeTempIds=r.normalizeTempIds;exports.createLocalFetcher=l;exports.useReportPreview=P;
|
package/dist/vue.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { D as T, a as _, M as d, R as g, b as M, c as C, S as w, d as O, e as D, f as F, g as L,
|
|
2
|
-
import { P as t, M as c } from "./plugin-
|
|
3
|
-
import { a as
|
|
1
|
+
import { D as T, a as _, M as d, R as g, b as M, c as C, S as w, d as O, e as D, f as F, g as L, h as A, p as H, i as b, r as j, t as v, j as x, u as G, k as S, l as I, m as K } from "./ReportPreview-mZiGtf0L.js";
|
|
2
|
+
import { P as t, M as c } from "./plugin-DcmAPK_K.js";
|
|
3
|
+
import { a as N, b as y, c as U, d as V, e as W, f as k, j as q, m as z, n as J } from "./plugin-DcmAPK_K.js";
|
|
4
4
|
import { paginateTemplate as p } from "@agile-team/mach-report";
|
|
5
5
|
import { inject as l } from "vue";
|
|
6
|
-
function
|
|
6
|
+
function f(n) {
|
|
7
7
|
return async ({ tempIds: a }) => {
|
|
8
8
|
if (a.length === 0) throw new t("缺少报表模板 ID");
|
|
9
9
|
const r = [];
|
|
@@ -22,12 +22,12 @@ function P() {
|
|
|
22
22
|
export {
|
|
23
23
|
T as DEFAULT_MESSAGES,
|
|
24
24
|
_ as DEFAULT_THEME,
|
|
25
|
-
|
|
25
|
+
N as MACH_REPORT_CONFIG_KEY,
|
|
26
26
|
c as MACH_REPORT_CONTROLLER_KEY,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
y as MACH_REPORT_FETCHER_KEY,
|
|
28
|
+
U as MACH_REPORT_PDF_EXPORTER_KEY,
|
|
29
29
|
d as MachReportError,
|
|
30
|
-
|
|
30
|
+
V as MachReportPreview,
|
|
31
31
|
t as PlanLoadError,
|
|
32
32
|
g as ReportParamPanel,
|
|
33
33
|
M as ReportPreview,
|
|
@@ -35,23 +35,23 @@ export {
|
|
|
35
35
|
w as SILENT_LOGGER,
|
|
36
36
|
O as buildPrintDocument,
|
|
37
37
|
D as buildWordHtml,
|
|
38
|
-
|
|
38
|
+
F as createDefaultPdfExporter,
|
|
39
39
|
W as createFetchRequest,
|
|
40
40
|
k as createJh4jGridPlanFetcher,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
f as createLocalFetcher,
|
|
42
|
+
L as defineMachReportConfig,
|
|
43
|
+
A as defineMachReportPreset,
|
|
44
44
|
q as joinTempIds,
|
|
45
45
|
z as machReportPlugin,
|
|
46
46
|
J as normalizeTempIds,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
H as printPlans,
|
|
48
|
+
b as provideMachReportConfig,
|
|
49
|
+
j as resolveConfig,
|
|
50
|
+
v as themeToCssVars,
|
|
51
|
+
x as toErrorDetail,
|
|
52
|
+
G as useMachReportConfig,
|
|
53
|
+
S as usePageWindow,
|
|
54
|
+
I as usePrintExport,
|
|
55
55
|
P as useReportPreview,
|
|
56
|
-
|
|
56
|
+
K as useZoom
|
|
57
57
|
};
|
package/package.json
CHANGED