x-print-designer 0.2.6 → 0.3.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 +93 -4
- package/dist/assets/Axis-hDyHms34.js +21 -0
- package/dist/assets/JsBarcode-BOwNyIpk.js +1 -0
- package/dist/assets/barcode-BoWGE6Vo.js +8 -0
- package/dist/assets/browser-CR_q2Gy7.js +1 -0
- package/dist/assets/canvg-ChoTXRpY.js +18 -0
- package/dist/assets/charts-oAXpTr-7.js +1 -0
- package/dist/assets/components-scMrpbvF.js +22 -0
- package/dist/assets/core-DLbFUvXo.js +1 -0
- package/dist/assets/createSeriesData-DY7MF9QR.js +1 -0
- package/dist/assets/customGraphicKeyframeAnimation-g4tvH6et.js +3 -0
- package/dist/assets/dom-to-image-more.min-Bzng6PqA.js +1 -0
- package/dist/assets/favicon-o5K9zUr2.ico +0 -0
- package/dist/assets/graphic-Cay9kDL2.js +29 -0
- package/dist/assets/html2canvas.esm-QH1iLAAe.js +22 -0
- package/dist/assets/index-BSfajosV.js +154 -0
- package/dist/assets/index-DNdDSD-C.css +1 -0
- package/dist/assets/jszip.min-DLPWIKb1.js +12 -0
- package/dist/assets/logo-DXm7qK2I.png +0 -0
- package/dist/assets/monaco-CyPiZSXM.js +11 -0
- package/dist/assets/pdf-Cjgn4CZy.js +170 -0
- package/dist/assets/purify.es-B5CD4DQe.js +2 -0
- package/dist/assets/renderers-CHDIdITR.js +3 -0
- package/dist/assets/utils-C6aID195.js +1 -0
- package/dist/assets/vendor-BlGuBhzR.js +39 -0
- package/dist/index.html +19 -0
- package/package.json +1 -1
- package/dist/Axis-NtNlSRsM.js +0 -18246
- package/dist/JsBarcode-Dow1PECK.js +0 -3866
- package/dist/browser-D8az-2WH.js +0 -2153
- package/dist/charts-CJaPVvDI.js +0 -18428
- package/dist/components-Dye0evtC.js +0 -16442
- package/dist/core-BbvNjmfU.js +0 -233
- package/dist/createSeriesData-DGiG-J3b.js +0 -434
- package/dist/customGraphicKeyframeAnimation-BY-XZFeb.js +0 -9429
- package/dist/dom-to-image-more.min-EwLsJY0X.js +0 -540
- package/dist/graphic-BEFAeatd.js +0 -11299
- package/dist/html2canvas.esm-DWZSdXKi.js +0 -7795
- package/dist/index-Bm7ZKHB-.js +0 -336
- package/dist/index.es-1W4rlw7i.js +0 -10445
- package/dist/jspdf.es.min-CbQXUuAV.js +0 -11560
- package/dist/jszip.min-DG2p2kOZ.js +0 -2354
- package/dist/print-designer.css +0 -1
- package/dist/print-designer.es.js +0 -4
- package/dist/print-designer.umd.js +0 -394
- package/dist/purify.es-DadB-l2n.js +0 -1029
- package/dist/renderers-Dm0Mcw0c.js +0 -2387
- package/dist/typeof-DxTVrAEz.js +0 -11
- package/dist/web-component-DZ-bxtw1.js +0 -51531
- package/dist/web-component.d.ts +0 -102
package/README.md
CHANGED
|
@@ -254,14 +254,21 @@ const handleSave = (payload) => {
|
|
|
254
254
|
| 方法 | 说明 |
|
|
255
255
|
|------|------|
|
|
256
256
|
| `setMode(mode)` | 设置模式:`'template'` / `'report'` |
|
|
257
|
+
| `setViewMode(viewMode)` | 切换视图:`'edit'` / `'preview'` |
|
|
257
258
|
| `setOnSave(handler)` | 设置保存回调 |
|
|
258
259
|
| `setAutoSave(enabled, intervalMs?)` | 开启/关闭自动保存 |
|
|
259
260
|
| `setTestData(data)` | 设置测试数据 |
|
|
260
261
|
| `setVariables(vars)` | 打印/导出时注入真实变量 |
|
|
262
|
+
| `setSampleData(data)` | 设置样本数据 |
|
|
261
263
|
| `setTemplates(list, opts)` | 设置模板列表 |
|
|
262
264
|
| `loadTemplate(id)` | 加载指定模板到画布 |
|
|
265
|
+
| `loadTemplateData(data)` | 直接加载模板 JSON 数据到画布 |
|
|
266
|
+
| `getTemplateData()` | 获取当前模板完整数据 |
|
|
267
|
+
| `getPreviewHtml()` | 获取预览 HTML 字符串 |
|
|
263
268
|
| `print(request)` | 执行打印 |
|
|
264
269
|
| `export(request)` | 导出 PDF/图片/HTML |
|
|
270
|
+
| `setPreviewMode(options)` | 🆕 进入独立预览面板模式 |
|
|
271
|
+
| `exitPreviewMode()` | 🆕 退出预览模式,返回编辑器 |
|
|
265
272
|
|
|
266
273
|
### 打印时注入真实数据
|
|
267
274
|
|
|
@@ -279,6 +286,81 @@ designer.setVariables({
|
|
|
279
286
|
await designer.print({ mode: 'browser', options: { silent: true } });
|
|
280
287
|
```
|
|
281
288
|
|
|
289
|
+
### 独立预览面板 (`setPreviewMode` / `exitPreviewMode`) 🆕
|
|
290
|
+
|
|
291
|
+
当设计器以 Web Component 方式嵌入时,可切换到独立的**纯预览模式**——只渲染打印内容,不显示编辑器工具栏、属性面板、辅助线等 UI。
|
|
292
|
+
|
|
293
|
+
**适用于:**
|
|
294
|
+
- 插件/第三方页面嵌入时,单独展示打印预览效果
|
|
295
|
+
- 用户填写表单后直接预览生成的打印内容
|
|
296
|
+
- 无需编辑功能的只读预览场景
|
|
297
|
+
|
|
298
|
+
#### 切换方式
|
|
299
|
+
|
|
300
|
+
```javascript
|
|
301
|
+
const designer = document.querySelector('print-designer');
|
|
302
|
+
|
|
303
|
+
// 进入预览模式,传入模板和数据
|
|
304
|
+
designer.setPreviewMode({
|
|
305
|
+
pages: templateData.pages, // 页面元素布局
|
|
306
|
+
canvasSize: { width: 794, height: 1123 }, // 画布尺寸
|
|
307
|
+
canvasBackground: '#ffffff', // 背景色
|
|
308
|
+
testData: { // 测试数据
|
|
309
|
+
name: '张三',
|
|
310
|
+
amount: 1000,
|
|
311
|
+
items: [{ name: '产品A', price: 100 }]
|
|
312
|
+
},
|
|
313
|
+
variables: {}, // 变量映射
|
|
314
|
+
watermark: { enabled: false } // 水印设置
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
// 退出预览,返回编辑器界面
|
|
318
|
+
designer.exitPreviewMode();
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
#### 参数说明
|
|
322
|
+
|
|
323
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
324
|
+
|------|------|------|------|
|
|
325
|
+
| `pages` | `Page[]` | ✅ 是 | 页面元素布局数组 |
|
|
326
|
+
| `canvasSize` | `{ width, height }` | ✅ 是 | 画布尺寸(px) |
|
|
327
|
+
| `canvasBackground` | `string` | 否 | 画布背景色,默认 `'#ffffff'` |
|
|
328
|
+
| `testData` | `object` | 否 | 测试数据,模板中的变量会自动解析 |
|
|
329
|
+
| `variables` | `object` | 否 | 额外变量映射 |
|
|
330
|
+
| `watermark` | `object` | 否 | 水印配置 |
|
|
331
|
+
|
|
332
|
+
#### 使用示例
|
|
333
|
+
|
|
334
|
+
```javascript
|
|
335
|
+
// 场景:用户点击"预览"按钮,传入后端返回的模板和当前表单数据
|
|
336
|
+
async function openPreview(reportId) {
|
|
337
|
+
const designer = document.querySelector('print-designer');
|
|
338
|
+
|
|
339
|
+
// 从后端获取模板数据
|
|
340
|
+
const template = await fetch(`/api/templates/${reportId}`).then(r => r.json());
|
|
341
|
+
|
|
342
|
+
// 进入预览模式
|
|
343
|
+
designer.setPreviewMode({
|
|
344
|
+
pages: template.data.pages,
|
|
345
|
+
canvasSize: template.data.canvasSize,
|
|
346
|
+
canvasBackground: template.data.canvasBackground || '#ffffff',
|
|
347
|
+
testData: {
|
|
348
|
+
customerName: document.getElementById('name').value,
|
|
349
|
+
orderDate: document.getElementById('date').value,
|
|
350
|
+
items: getOrderItems()
|
|
351
|
+
},
|
|
352
|
+
watermark: template.data.watermark
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// 返回编辑
|
|
357
|
+
function backToEdit() {
|
|
358
|
+
designer.exitPreviewMode();
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
> **注意:** `exitPreviewMode()` 会自动恢复进入预览前的编辑器状态(模板选择、编辑进度等)。
|
|
363
|
+
|
|
282
364
|
---
|
|
283
365
|
|
|
284
366
|
## 传入数据格式
|
|
@@ -869,16 +951,23 @@ https://example.com/logo.png
|
|
|
869
951
|
|------|------|------|
|
|
870
952
|
| 文本 | `text` | 静态文本或变量内容 |
|
|
871
953
|
| 长文本 | `longtext` | 多行自动扩展文本 |
|
|
872
|
-
|
|
|
873
|
-
|
|
|
874
|
-
|
|
|
954
|
+
| 富文本 | `richtext` | 富文本格式化内容 |
|
|
955
|
+
| 图片 | `image` | 图片显示(URL / Base64 / 变量绑定) |
|
|
956
|
+
| 表格 | `table` | 数据表格,支持自动分页、页脚脚本 |
|
|
957
|
+
| 自定义表格 | `customTable` | 自由合并单元格、单元格内嵌图片/字段 |
|
|
958
|
+
| 嵌套表格 | `nestedtable` | 分组嵌套数据展示 |
|
|
875
959
|
| 条形码 | `barcode` | 一维条形码 |
|
|
876
960
|
| 二维码 | `qrcode` | 二维码 |
|
|
877
961
|
| 图表 | `chart` | ECharts(柱状图/折线图/饼图/环形图/面积图) |
|
|
962
|
+
| 数据卡片 | `datacard` | 单个关键指标数据展示 |
|
|
963
|
+
| 进度条 | `progress` | 百分比进度展示 |
|
|
964
|
+
| 列表 | `list` | 多行列表数据展示 |
|
|
965
|
+
| 日期 | `date` | 日期时间显示 |
|
|
966
|
+
| 页码 | `pageNumber` | 页码显示 |
|
|
967
|
+
| 签名/印章 | `signature` | 印章图片或二维码 |
|
|
878
968
|
| 线条 | `line` | 直线 |
|
|
879
969
|
| 矩形 | `rect` | 矩形 |
|
|
880
970
|
| 圆形 | `circle` | 圆形 |
|
|
881
|
-
| 页码 | `pageNumber` | 页码显示 |
|
|
882
971
|
|
|
883
972
|
---
|
|
884
973
|
|