Files
wukuang/packages/print-webapp/README.md
T

124 lines
2.7 KiB
Markdown
Raw Normal View History

2026-05-23 14:05:22 +08:00
# print-webapp 前端使用说明
`print-webapp` 当前对外仅暴露以下 3 个能力:
- `PrintDesigner`:打印模板设计组件
- `PrintApi`:打印模板后端接口封装
- `PrintRuntime`:打印运行时预览对象
## 1. 安装与引入
在业务项目中安装后,从包根入口引入:
```ts
import { PrintDesigner, PrintApi, PrintRuntime } from "print-template";
```
> 当前包的 `exports` 仅开放根入口,请勿使用子路径导入。
## 2. PrintDesigner 组件
### 2.1 组件入参
- `modelId: string`(必填)
数据模型 ID,用于设计器内部字段查询。
- `id: string`(必填)
模板 ID。
- `templateName?: string`(选填)
页面头部展示的模板名称。
### 2.2 组件事件
- `back`
点击头部“返回”按钮触发。
### 2.3 页面中使用示例(Vue 3
```vue
<script setup lang="ts">
import { PrintDesigner } from "print-template";
const modelId = "YOUR_MODEL_ID";
const templateId = "YOUR_TEMPLATE_ID";
const onBack = () => {
// 返回列表页
};
</script>
<template>
<PrintDesigner
:model-id="modelId"
:id="templateId"
template-name="测试模板"
@back="onBack"
/>
</template>
```
## 3. PrintApi 接口
`PrintApi` 为模板 CRUD 封装,返回值为 `Promise`
- `getPrintTemplate(templateId: string)`
- `createPrintTemplate(data: any)`
- `updatePrintTemplate(templateId: string, data: any)`
- `deletePrintTemplate(templateId: string)`
示例:
```ts
import { PrintApi } from "print-template";
// 查询模板
const detail = await PrintApi.getPrintTemplate("template-id");
// 新建模板
await PrintApi.createPrintTemplate({
templateName: "测试模板",
settings: "{}",
content: "[]",
});
// 更新模板
await PrintApi.updatePrintTemplate("template-id", {
templateName: "测试模板-更新",
});
// 删除模板
await PrintApi.deletePrintTemplate("template-id");
```
## 4. PrintRuntime 对象
`PrintRuntime` 用于基于模板数据和表单数据进行打印预览。
### 4.1 构造参数
- `templateData: PageData`
- `formData: RuntimeFormData`
### 4.2 当前可用方法
- `printPreview()`
示例:
```ts
import { PrintRuntime } from "print-template";
const runtime = new PrintRuntime(templateData, formData);
runtime.printPreview();
```
## 5. 运行与打包
- 本地开发:`pnpm run dev`
- SDK 打包:`pnpm run build`
## 6. 当前版本注意事项
- `PrintDesigner` 内部目前包含示例模板数据和字段元数据,属于“可演示优先”实现。
- 保存按钮当前仅在控制台输出模板数据,未直接调用 `PrintApi` 持久化。
- 若用于生产业务,建议在下个版本将模板数据、字段元数据、保存行为改为外部可配置。