124 lines
2.7 KiB
Markdown
124 lines
2.7 KiB
Markdown
|
|
# 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` 持久化。
|
|||
|
|
- 若用于生产业务,建议在下个版本将模板数据、字段元数据、保存行为改为外部可配置。
|