@epxing/designer 5.3.0-beta.2 → 5.3.0-beta.4

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.
Files changed (33) hide show
  1. package/API.md +160 -160
  2. package/README.md +46 -46
  3. package/dist/src/page-designer/PageDesigner.js +11 -0
  4. package/dist/src/page-designer/designer.js +21 -0
  5. package/dist/src/page-designer/previews/add-form/Preview.js +1 -1
  6. package/dist/src/page-designer/previews/add-form/Preview.vue.js +19 -8
  7. package/dist/src/page-designer/setting-panel/Setting.js +46 -10
  8. package/dist/src/visual/config-page/ComponentLibraryDialog.js +8 -2
  9. package/dist/src/visual/config-page/DashboardMobile.js +1 -1
  10. package/dist/style.css +116 -112
  11. package/package.json +8 -8
  12. package/src/index.js +27 -27
  13. package/src/page-designer/PageDesigner.vue +11 -0
  14. package/src/page-designer/designer.js +1322 -1299
  15. package/src/page-designer/previews/add-form/Preview.vue +43 -44
  16. package/src/page-designer/setting-panel/Setting.vue +24 -2
  17. package/src/page-designer/widget-preview/Mixin.js +285 -285
  18. package/src/page-designer/widget-preview/Preview.vue +322 -322
  19. package/src/page-designer/widget-preview/WidgetWrapper.vue +197 -197
  20. package/src/page-designer/widget-preview/directive.js +258 -258
  21. package/src/visual/CategoryList.vue +563 -563
  22. package/src/visual/ComponentList.vue +280 -280
  23. package/src/visual/CreatePage.vue +389 -389
  24. package/src/visual/EntityCardList.vue +449 -449
  25. package/src/visual/EntityList.vue +838 -838
  26. package/src/visual/config-page/ComponentLibraryDialog.vue +7 -1
  27. package/src/visual/config-page/DashboardMobile.vue +934 -934
  28. package/src/visual/widgets/ProcessFormItemVisual.vue +58 -58
  29. package/types/index.d.ts +22 -22
  30. package/types/page-designer.d.ts +3 -3
  31. package/types/visual-component.d.ts +1 -1
  32. package/types/visual-entity-list.d.ts +1 -1
  33. package/types/visual-entity-sub-list.d.ts +1 -1
package/API.md CHANGED
@@ -1,160 +1,160 @@
1
- # @epxing/designer API
2
-
3
- 页面设计器、可视化配置组件、字段配置面板及预览组件集合。
4
-
5
- 本页对应包版本 `5.3.0-beta.2`。导出名、子路径和签名从当前源码、package.json 与类型声明生成。
6
-
7
- ## 安装与使用
8
-
9
-
10
- ```sh
11
- pnpm add @epxing/designer@5.3.0-beta.2
12
- ```
13
-
14
-
15
- ```js
16
- import Designer, { VisualComponent, PageDesigner } from '@epxing/designer'
17
-
18
- // app 已安装 core、基础组件及所需业务组件
19
- app.use(Designer)
20
- export default { extends: VisualComponent }
21
- ```
22
-
23
- ## 接入约定
24
-
25
- 设计组件需要配置/元数据服务以及基础组件注册环境。default 插件同时安装公开设计组件及 widgetPreviews;具名组件适合局部使用和继承。远程共享产品应导入公开组件,插件由宿主安装。
26
-
27
- 本版 JS 入口自动加载本包聚合样式,根导入和稳定子路径均无需手动 import style.css;保留显式样式入口以兼容旧代码。样式按包加载,产品覆盖样式放在框架导入之后。
28
-
29
- ## 根入口完整导出
30
-
31
- | 导出名 | 形态 | 用途 | 参数 / 配置 / 事件 |
32
- | --- | --- | --- | --- |
33
- | `install` | 函数 | 向 Vue 应用注册本包的组件;通常通过 app.use(defaultPlugin) 调用。 | 见下方签名或接入约定 |
34
- | `ProcessFormItemVisual` | Vue 组件 | 流程表单项的可视化配置组件,继承 VisualComponent,按流程代码读取节点并编辑节点配置。 | [详细参考](../../docs/revision/designer/visual/widgets/ProcessFormItemVisual.md) |
35
- | `VisualComponent` | Vue 组件 | 可视化配置组件基类,维护 allConfigs、配置项变更及设计上下文;产品设计面板可继承。 | [详细参考](../../docs/revision/designer/visual/Component.md) |
36
- | `VisualConfigPage` | Vue 组件 | 页面可视化配置容器,组织页面属性与配置面板。 | [详细参考](../../docs/revision/designer/visual/config-page/VisualConfigPage.md) |
37
- | `VisualEntityList` | Vue 组件 | 实体列表的可视化配置组件,编辑列表字段、查询和操作配置。 | [详细参考](../../docs/revision/designer/visual/EntityList.md) |
38
- | `VisualEntitySubList` | Vue 组件 | 实体子列表的可视化配置组件,编辑子表字段与关联配置。 | [详细参考](../../docs/revision/designer/visual/EntitySubList.md) |
39
- | `VisualConfigField` | Vue 组件 | 表单字段配置面板,编辑字段及其显示、输入配置。 | [详细参考](../../docs/revision/designer/visual/config/Field.md) |
40
- | `VisualConfigListField` | Vue 组件 | 列表字段配置面板,编辑展示列和字段配置。 | [详细参考](../../docs/revision/designer/visual/config/ListField.md) |
41
- | `VisualConfigOrderField` | Vue 组件 | 排序字段配置面板,编辑排序字段及顺序。 | [详细参考](../../docs/revision/designer/visual/config/OrderField.md) |
42
- | `PageDesigner` | Vue 组件 | 可视化页面设计器,提供挂件库、页面画布、层级与属性面板。 | [详细参考](../../docs/revision/designer/page-designer/PageDesigner.md) |
43
- | `CardFormItemVisual` | Vue 组件 | 卡片表单项配置面板,编辑卡片中字段的呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CardFormItemVisual.md) |
44
- | `CarouselVisual` | Vue 组件 | 轮播容器配置面板,编辑轮播项和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CarouselVisual.md) |
45
- | `CollapseVisual` | Vue 组件 | 折叠容器配置面板,编辑折叠项和交互配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CollapseVisual.md) |
46
- | `DropdownVisual` | Vue 组件 | 下拉容器配置面板,编辑下拉内容和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/DropdownVisual.md) |
47
- | `LayoutConfig` | Vue 组件 | 布局配置面板,编辑容器和列的布局配置。 | [详细参考](../../docs/revision/designer/visual/widgets/LayoutConfig.md) |
48
- | `ListVisual` | Vue 组件 | 列表挂件配置面板,编辑条目和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/ListVisual.md) |
49
- | `MEntityListFindVisual` | Vue 组件 | 移动实体选择列表的可视化配置面板。 | [详细参考](../../docs/revision/designer/visual/widgets/MEntityListFindVisual.md) |
50
- | `TabsConfig` | Vue 组件 | 标签页配置面板,编辑标签项及其内容配置。 | [详细参考](../../docs/revision/designer/visual/widgets/TabsConfig.md) |
51
- | `widgetPreviews` | 对象 / 常量 | 设计器预览组件映射,供设计插件注册和画布预览使用。 | [详细参考](../../docs/revision/designer/api/page-designer/previews/index.md) |
52
- | `default` | 默认导出 | 设计插件对象,包含 install、公开设计组件及预览组件。 | 见下方签名或接入约定 |
53
-
54
- ## 函数、类与工具对象
55
-
56
- 签名中的 any 表示现有声明未进一步限定结构;源代码方法签名保留默认参数。异步结果与泛型以声明为准。
57
-
58
- ### widgetPreviews
59
-
60
- 设计器预览组件映射,供设计插件注册和画布预览使用。
61
-
62
- 通过 `widgetPreviews.成员名` 访问,下面的成员不是额外的根具名导出。
63
-
64
- | 成员名 | 用途 | 配置参考 |
65
- | --- | --- | --- |
66
- | `ButtonPreview` | 按钮在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/button/Preview.md) |
67
- | `CardPreview` | 卡片在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/card/Preview.md) |
68
- | `IconPreview` | 图标在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/icon/Preview.md) |
69
- | `HtmlPreview` | HTML在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/html/Preview.md) |
70
- | `ImagePreview` | 图片在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/image/Preview.md) |
71
- | `NumPreview` | 数字在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/num/Preview.md) |
72
- | `VideoPreview` | 视频在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/video/Preview.md) |
73
- | `TextPreview` | 文本在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/text/Preview.md) |
74
- | `StepPreview` | 步骤在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/step/Preview.md) |
75
- | `GridPreview` | 网格在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/grid/Preview.md) |
76
- | `PageTabsPreview` | 页面标签在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/page-tabs/Preview.md) |
77
- | `TextEditorPreview` | 富文本在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/text-editor/Preview.md) |
78
- | `AddFormPreview` | 新增表单在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/add-form/Preview.md) |
79
- | `AddFormItemPreview` | 表单分组在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/add-form-item/Preview.md) |
80
- | `EntityListPreview` | 实体列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-list/Preview.md) |
81
- | `EntitySubListPreview` | 实体子列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-sub-list/Preview.md) |
82
- | `EntityVirtualListPreview` | 实体虚拟列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-virtual-list/Preview.md) |
83
- | `LayoutPreview` | 布局容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/layout/Preview.md) |
84
- | `LayoutColumnPreview` | 布局列在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/layout/ColumnPreview.md) |
85
- | `CarouselPreview` | 轮播容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/carousel/Preview.md) |
86
- | `CarouselItemPreview` | 轮播项在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/carousel/CarouselItemPreview.md) |
87
- | `CollapsePreview` | 折叠容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/collapse/Preview.md) |
88
- | `CollapseItemPreview` | 折叠项在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/collapse/CollapseItemPreview.md) |
89
- | `DropdownPreview` | 下拉内容在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/dropdown/Preview.md) |
90
- | `TabsPreview` | 标签页容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/tabs/Preview.md) |
91
- | `TabsTabPanePreview` | 标签页内容在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/tabs/tab-pane/Preview.md) |
92
- | `FormFieldTextareaPreview` | 多行文本字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Textarea.md) |
93
- | `FormFieldSelectPreview` | 选项字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Select.md) |
94
- | `FormFieldRadioPreview` | 单选字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Radio.md) |
95
- | `FormFieldObjectPreview` | 关联对象字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Object.md) |
96
- | `FormFieldInputNumberPreview` | 数字字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/InputNumber.md) |
97
- | `FormFieldInputPreview` | 文本字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Input.md) |
98
- | `FormFieldDatePreview` | 日期字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Date.md) |
99
- | `FormFieldCheckboxPreview` | 多选字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Checkbox.md) |
100
-
101
- ## 稳定子路径
102
-
103
- 下表按实际 package.json 的公开入口列出。default 使用默认导入,其他名称使用具名导入;类型接口用 import type。
104
-
105
- | 导入路径 | 完整导出名 | 用途 / 详细说明 |
106
- | --- | --- | --- |
107
- | `@epxing/designer/page-designer` | `default`、`WidgetPreviewMixin` | 可视化页面设计器,提供挂件库、页面画布、层级与属性面板。 [详细参考](../../docs/revision/designer/page-designer/PageDesigner.md) |
108
- | `@epxing/designer/visual-component` | `default` | 可视化配置组件基类,维护 allConfigs、配置项变更及设计上下文;产品设计面板可继承。 [详细参考](../../docs/revision/designer/visual/Component.md) |
109
- | `@epxing/designer/visual-entity-list` | `default` | 实体列表的可视化配置组件,编辑列表字段、查询和操作配置。 [详细参考](../../docs/revision/designer/visual/EntityList.md) |
110
- | `@epxing/designer/visual-entity-sub-list` | `default` | 实体子列表的可视化配置组件,编辑子表字段与关联配置。 [详细参考](../../docs/revision/designer/visual/EntitySubList.md) |
111
- | `@epxing/designer/style.css` | 可选的显式样式入口 | JS 入口自动加载本包样式;保留此路径以兼容旧代码。 |
112
-
113
- ## 子路径补充导出
114
-
115
- 本节列出仅在稳定子路径中提供的具名 API;从本节标题对应路径导入。
116
-
117
- ### @epxing/designer/page-designer
118
-
119
- | 导出 / 调用签名 | 用途 | 详细接口 |
120
- | --- | --- | --- |
121
- | `WidgetPreviewMixin` | 画布挂件预览的公共混入,提供预览组件的上下文、交互和配置协议。 | [详细参考](../../docs/revision/designer/api/page-designer/widget-preview/Mixin.md) |
122
-
123
- ## 源码兼容与其他入口
124
-
125
- /src 路径保留给已有产品和源码级扩展,可能包含平台内部实现;新产品优先采用上方根导出与稳定子路径。通配符表示按实际文件名匹配,不代表所有源码都属于根入口。
126
-
127
- | 公开路径模式 | 实际目标 |
128
- | --- | --- |
129
- | `@epxing/designer/src` | `./dist/src/index.js` |
130
- | `@epxing/designer/src/page-designer` | `./dist/src/page-designer/index.js` |
131
- | `@epxing/designer/src/page-designer/page-variable-panel` | `./dist/src/page-designer/page-variable-panel/index.js` |
132
- | `@epxing/designer/src/page-designer/previews` | `./dist/src/page-designer/previews/index.js` |
133
- | `@epxing/designer/src/page-designer/setting-panel` | `./dist/src/page-designer/setting-panel/index.js` |
134
- | `@epxing/designer/src/page-designer/template-attribute-panel` | `./dist/src/page-designer/template-attribute-panel/index.js` |
135
- | `@epxing/designer/src/page-designer/template-library` | `./dist/src/page-designer/template-library/index.js` |
136
- | `@epxing/designer/src/page-designer/widget-library` | `./dist/src/page-designer/widget-library/index.js` |
137
- | `@epxing/designer/src/page-designer/widget-preview` | `./dist/src/page-designer/widget-preview/index.js` |
138
- | `@epxing/designer/src/page-designer/widget-tree` | `./dist/src/page-designer/widget-tree/index.js` |
139
- | `@epxing/designer/src/visual` | `./dist/src/visual/index.js` |
140
- | `@epxing/designer/src/visual/config-page` | `./dist/src/visual/config-page/index.js` |
141
- | `@epxing/designer/src/visual/config-page/dashboard-theme-setting` | `./dist/src/visual/config-page/dashboard-theme-setting/index.js` |
142
- | `@epxing/designer/src/visual/step` | `./dist/src/visual/step/index.js` |
143
- | `@epxing/designer/src/*.css` | `./src/*.css` |
144
- | `@epxing/designer/src/*.scss` | `./src/*.scss` |
145
- | `@epxing/designer/src/*.png` | `./src/*.png` |
146
- | `@epxing/designer/src/*.svg` | `./src/*.svg` |
147
- | `@epxing/designer/src/*.jpg` | `./src/*.jpg` |
148
- | `@epxing/designer/src/*.gif` | `./src/*.gif` |
149
- | `@epxing/designer/src/*.woff` | `./src/*.woff` |
150
- | `@epxing/designer/src/*.woff2` | `./src/*.woff2` |
151
- | `@epxing/designer/src/*.ttf` | `./src/*.ttf` |
152
- | `@epxing/designer/src/*.js` | `./dist/src/*.js` |
153
- | `@epxing/designer/src/*.jsx` | `./dist/src/*.js` |
154
- | `@epxing/designer/src/*.vue` | `./dist/src/*.js` |
155
- | `@epxing/designer/src/*` | `./dist/src/*.js` |
156
- | `@epxing/designer/package.json` | `./package.json` |
157
-
158
- ## 文档维护
159
-
160
- 本页由 build/gen-package-api-docs.mjs 生成。修改公开入口并更新构建产物和类型声明后,在框架根运行 `pnpm docs:api`;`pnpm docs:api:check` 检查清单、类型、包内文档与站点镜像是否同步,同时验证页面编译和文档链接。用途和示例维护在 build/package-api-notes.mjs,组件和源码方法的详细参考位于 docs/revision。
1
+ # @epxing/designer API
2
+
3
+ 页面设计器、可视化配置组件、字段配置面板及预览组件集合。
4
+
5
+ 本页对应包版本 `5.3.0-beta.4`。导出名、子路径和签名从当前源码、package.json 与类型声明生成。
6
+
7
+ ## 安装与使用
8
+
9
+
10
+ ```sh
11
+ pnpm add @epxing/designer@5.3.0-beta.2
12
+ ```
13
+
14
+
15
+ ```js
16
+ import Designer, { VisualComponent, PageDesigner } from '@epxing/designer'
17
+
18
+ // app 已安装 core、基础组件及所需业务组件
19
+ app.use(Designer)
20
+ export default { extends: VisualComponent }
21
+ ```
22
+
23
+ ## 接入约定
24
+
25
+ 设计组件需要配置/元数据服务以及基础组件注册环境。default 插件同时安装公开设计组件及 widgetPreviews;具名组件适合局部使用和继承。远程共享产品应导入公开组件,插件由宿主安装。
26
+
27
+ 本版 JS 入口自动加载本包聚合样式,根导入和稳定子路径均无需手动 import style.css;保留显式样式入口以兼容旧代码。样式按包加载,产品覆盖样式放在框架导入之后。
28
+
29
+ ## 根入口完整导出
30
+
31
+ | 导出名 | 形态 | 用途 | 参数 / 配置 / 事件 |
32
+ | --- | --- | --- | --- |
33
+ | `install` | 函数 | 向 Vue 应用注册本包的组件;通常通过 app.use(defaultPlugin) 调用。 | 见下方签名或接入约定 |
34
+ | `ProcessFormItemVisual` | Vue 组件 | 流程表单项的可视化配置组件,继承 VisualComponent,按流程代码读取节点并编辑节点配置。 | [详细参考](../../docs/revision/designer/visual/widgets/ProcessFormItemVisual.md) |
35
+ | `VisualComponent` | Vue 组件 | 可视化配置组件基类,维护 allConfigs、配置项变更及设计上下文;产品设计面板可继承。 | [详细参考](../../docs/revision/designer/visual/Component.md) |
36
+ | `VisualConfigPage` | Vue 组件 | 页面可视化配置容器,组织页面属性与配置面板。 | [详细参考](../../docs/revision/designer/visual/config-page/VisualConfigPage.md) |
37
+ | `VisualEntityList` | Vue 组件 | 实体列表的可视化配置组件,编辑列表字段、查询和操作配置。 | [详细参考](../../docs/revision/designer/visual/EntityList.md) |
38
+ | `VisualEntitySubList` | Vue 组件 | 实体子列表的可视化配置组件,编辑子表字段与关联配置。 | [详细参考](../../docs/revision/designer/visual/EntitySubList.md) |
39
+ | `VisualConfigField` | Vue 组件 | 表单字段配置面板,编辑字段及其显示、输入配置。 | [详细参考](../../docs/revision/designer/visual/config/Field.md) |
40
+ | `VisualConfigListField` | Vue 组件 | 列表字段配置面板,编辑展示列和字段配置。 | [详细参考](../../docs/revision/designer/visual/config/ListField.md) |
41
+ | `VisualConfigOrderField` | Vue 组件 | 排序字段配置面板,编辑排序字段及顺序。 | [详细参考](../../docs/revision/designer/visual/config/OrderField.md) |
42
+ | `PageDesigner` | Vue 组件 | 可视化页面设计器,提供挂件库、页面画布、层级与属性面板。 | [详细参考](../../docs/revision/designer/page-designer/PageDesigner.md) |
43
+ | `CardFormItemVisual` | Vue 组件 | 卡片表单项配置面板,编辑卡片中字段的呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CardFormItemVisual.md) |
44
+ | `CarouselVisual` | Vue 组件 | 轮播容器配置面板,编辑轮播项和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CarouselVisual.md) |
45
+ | `CollapseVisual` | Vue 组件 | 折叠容器配置面板,编辑折叠项和交互配置。 | [详细参考](../../docs/revision/designer/visual/widgets/CollapseVisual.md) |
46
+ | `DropdownVisual` | Vue 组件 | 下拉容器配置面板,编辑下拉内容和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/DropdownVisual.md) |
47
+ | `LayoutConfig` | Vue 组件 | 布局配置面板,编辑容器和列的布局配置。 | [详细参考](../../docs/revision/designer/visual/widgets/LayoutConfig.md) |
48
+ | `ListVisual` | Vue 组件 | 列表挂件配置面板,编辑条目和呈现配置。 | [详细参考](../../docs/revision/designer/visual/widgets/ListVisual.md) |
49
+ | `MEntityListFindVisual` | Vue 组件 | 移动实体选择列表的可视化配置面板。 | [详细参考](../../docs/revision/designer/visual/widgets/MEntityListFindVisual.md) |
50
+ | `TabsConfig` | Vue 组件 | 标签页配置面板,编辑标签项及其内容配置。 | [详细参考](../../docs/revision/designer/visual/widgets/TabsConfig.md) |
51
+ | `widgetPreviews` | 对象 / 常量 | 设计器预览组件映射,供设计插件注册和画布预览使用。 | [详细参考](../../docs/revision/designer/api/page-designer/previews/index.md) |
52
+ | `default` | 默认导出 | 设计插件对象,包含 install、公开设计组件及预览组件。 | 见下方签名或接入约定 |
53
+
54
+ ## 函数、类与工具对象
55
+
56
+ 签名中的 any 表示现有声明未进一步限定结构;源代码方法签名保留默认参数。异步结果与泛型以声明为准。
57
+
58
+ ### widgetPreviews
59
+
60
+ 设计器预览组件映射,供设计插件注册和画布预览使用。
61
+
62
+ 通过 `widgetPreviews.成员名` 访问,下面的成员不是额外的根具名导出。
63
+
64
+ | 成员名 | 用途 | 配置参考 |
65
+ | --- | --- | --- |
66
+ | `ButtonPreview` | 按钮在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/button/Preview.md) |
67
+ | `CardPreview` | 卡片在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/card/Preview.md) |
68
+ | `IconPreview` | 图标在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/icon/Preview.md) |
69
+ | `HtmlPreview` | HTML在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/html/Preview.md) |
70
+ | `ImagePreview` | 图片在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/image/Preview.md) |
71
+ | `NumPreview` | 数字在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/num/Preview.md) |
72
+ | `VideoPreview` | 视频在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/video/Preview.md) |
73
+ | `TextPreview` | 文本在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/text/Preview.md) |
74
+ | `StepPreview` | 步骤在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/step/Preview.md) |
75
+ | `GridPreview` | 网格在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/grid/Preview.md) |
76
+ | `PageTabsPreview` | 页面标签在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/page-tabs/Preview.md) |
77
+ | `TextEditorPreview` | 富文本在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/text-editor/Preview.md) |
78
+ | `AddFormPreview` | 新增表单在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/add-form/Preview.md) |
79
+ | `AddFormItemPreview` | 表单分组在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/add-form-item/Preview.md) |
80
+ | `EntityListPreview` | 实体列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-list/Preview.md) |
81
+ | `EntitySubListPreview` | 实体子列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-sub-list/Preview.md) |
82
+ | `EntityVirtualListPreview` | 实体虚拟列表在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/entity-virtual-list/Preview.md) |
83
+ | `LayoutPreview` | 布局容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/layout/Preview.md) |
84
+ | `LayoutColumnPreview` | 布局列在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/layout/ColumnPreview.md) |
85
+ | `CarouselPreview` | 轮播容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/carousel/Preview.md) |
86
+ | `CarouselItemPreview` | 轮播项在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/carousel/CarouselItemPreview.md) |
87
+ | `CollapsePreview` | 折叠容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/collapse/Preview.md) |
88
+ | `CollapseItemPreview` | 折叠项在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/collapse/CollapseItemPreview.md) |
89
+ | `DropdownPreview` | 下拉内容在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/dropdown/Preview.md) |
90
+ | `TabsPreview` | 标签页容器在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/tabs/Preview.md) |
91
+ | `TabsTabPanePreview` | 标签页内容在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/tabs/tab-pane/Preview.md) |
92
+ | `FormFieldTextareaPreview` | 多行文本字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Textarea.md) |
93
+ | `FormFieldSelectPreview` | 选项字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Select.md) |
94
+ | `FormFieldRadioPreview` | 单选字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Radio.md) |
95
+ | `FormFieldObjectPreview` | 关联对象字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Object.md) |
96
+ | `FormFieldInputNumberPreview` | 数字字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/InputNumber.md) |
97
+ | `FormFieldInputPreview` | 文本字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Input.md) |
98
+ | `FormFieldDatePreview` | 日期字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Date.md) |
99
+ | `FormFieldCheckboxPreview` | 多选字段在页面设计画布中的预览组件。 | [详细参考](../../docs/revision/designer/page-designer/previews/form-field/preview/Checkbox.md) |
100
+
101
+ ## 稳定子路径
102
+
103
+ 下表按实际 package.json 的公开入口列出。default 使用默认导入,其他名称使用具名导入;类型接口用 import type。
104
+
105
+ | 导入路径 | 完整导出名 | 用途 / 详细说明 |
106
+ | --- | --- | --- |
107
+ | `@epxing/designer/page-designer` | `default`、`WidgetPreviewMixin` | 可视化页面设计器,提供挂件库、页面画布、层级与属性面板。 [详细参考](../../docs/revision/designer/page-designer/PageDesigner.md) |
108
+ | `@epxing/designer/visual-component` | `default` | 可视化配置组件基类,维护 allConfigs、配置项变更及设计上下文;产品设计面板可继承。 [详细参考](../../docs/revision/designer/visual/Component.md) |
109
+ | `@epxing/designer/visual-entity-list` | `default` | 实体列表的可视化配置组件,编辑列表字段、查询和操作配置。 [详细参考](../../docs/revision/designer/visual/EntityList.md) |
110
+ | `@epxing/designer/visual-entity-sub-list` | `default` | 实体子列表的可视化配置组件,编辑子表字段与关联配置。 [详细参考](../../docs/revision/designer/visual/EntitySubList.md) |
111
+ | `@epxing/designer/style.css` | 可选的显式样式入口 | JS 入口自动加载本包样式;保留此路径以兼容旧代码。 |
112
+
113
+ ## 子路径补充导出
114
+
115
+ 本节列出仅在稳定子路径中提供的具名 API;从本节标题对应路径导入。
116
+
117
+ ### @epxing/designer/page-designer
118
+
119
+ | 导出 / 调用签名 | 用途 | 详细接口 |
120
+ | --- | --- | --- |
121
+ | `WidgetPreviewMixin` | 画布挂件预览的公共混入,提供预览组件的上下文、交互和配置协议。 | [详细参考](../../docs/revision/designer/api/page-designer/widget-preview/Mixin.md) |
122
+
123
+ ## 源码兼容与其他入口
124
+
125
+ /src 路径保留给已有产品和源码级扩展,可能包含平台内部实现;新产品优先采用上方根导出与稳定子路径。通配符表示按实际文件名匹配,不代表所有源码都属于根入口。
126
+
127
+ | 公开路径模式 | 实际目标 |
128
+ | --- | --- |
129
+ | `@epxing/designer/src` | `./dist/src/index.js` |
130
+ | `@epxing/designer/src/page-designer` | `./dist/src/page-designer/index.js` |
131
+ | `@epxing/designer/src/page-designer/page-variable-panel` | `./dist/src/page-designer/page-variable-panel/index.js` |
132
+ | `@epxing/designer/src/page-designer/previews` | `./dist/src/page-designer/previews/index.js` |
133
+ | `@epxing/designer/src/page-designer/setting-panel` | `./dist/src/page-designer/setting-panel/index.js` |
134
+ | `@epxing/designer/src/page-designer/template-attribute-panel` | `./dist/src/page-designer/template-attribute-panel/index.js` |
135
+ | `@epxing/designer/src/page-designer/template-library` | `./dist/src/page-designer/template-library/index.js` |
136
+ | `@epxing/designer/src/page-designer/widget-library` | `./dist/src/page-designer/widget-library/index.js` |
137
+ | `@epxing/designer/src/page-designer/widget-preview` | `./dist/src/page-designer/widget-preview/index.js` |
138
+ | `@epxing/designer/src/page-designer/widget-tree` | `./dist/src/page-designer/widget-tree/index.js` |
139
+ | `@epxing/designer/src/visual` | `./dist/src/visual/index.js` |
140
+ | `@epxing/designer/src/visual/config-page` | `./dist/src/visual/config-page/index.js` |
141
+ | `@epxing/designer/src/visual/config-page/dashboard-theme-setting` | `./dist/src/visual/config-page/dashboard-theme-setting/index.js` |
142
+ | `@epxing/designer/src/visual/step` | `./dist/src/visual/step/index.js` |
143
+ | `@epxing/designer/src/*.css` | `./src/*.css` |
144
+ | `@epxing/designer/src/*.scss` | `./src/*.scss` |
145
+ | `@epxing/designer/src/*.png` | `./src/*.png` |
146
+ | `@epxing/designer/src/*.svg` | `./src/*.svg` |
147
+ | `@epxing/designer/src/*.jpg` | `./src/*.jpg` |
148
+ | `@epxing/designer/src/*.gif` | `./src/*.gif` |
149
+ | `@epxing/designer/src/*.woff` | `./src/*.woff` |
150
+ | `@epxing/designer/src/*.woff2` | `./src/*.woff2` |
151
+ | `@epxing/designer/src/*.ttf` | `./src/*.ttf` |
152
+ | `@epxing/designer/src/*.js` | `./dist/src/*.js` |
153
+ | `@epxing/designer/src/*.jsx` | `./dist/src/*.js` |
154
+ | `@epxing/designer/src/*.vue` | `./dist/src/*.js` |
155
+ | `@epxing/designer/src/*` | `./dist/src/*.js` |
156
+ | `@epxing/designer/package.json` | `./package.json` |
157
+
158
+ ## 文档维护
159
+
160
+ 本页由 build/gen-package-api-docs.mjs 生成。修改公开入口并更新构建产物和类型声明后,在框架根运行 `pnpm docs:api`;`pnpm docs:api:check` 检查清单、类型、包内文档与站点镜像是否同步,同时验证页面编译和文档链接。用途和示例维护在 build/package-api-notes.mjs,组件和源码方法的详细参考位于 docs/revision。
package/README.md CHANGED
@@ -1,46 +1,46 @@
1
- # @epxing/designer
2
-
3
- [完整公开 API、导入方式与示例](./API.md)
4
-
5
- 从 5.3.0-beta.2 起,导入本包 JS 时自动加载包级样式,根入口和稳定子路径均无需手动引入 style.css。显式样式入口继续兼容旧代码;产品覆盖样式放在框架导入之后。
6
-
7
- 可视化配置体系包 - **设计态独有,运行时按需加载**。
8
-
9
- ## 范围
10
-
11
- - `src/frame/page-designer/`(整目录)
12
- - 各 package 的 `Visual.vue` / `Config.vue`(T07 抽出,14+ 处)
13
- - 各 package 的 `Preview.vue`(T08 抽出,35+ 处)
14
- - `src/frame/views/visual/`
15
- - `src/frame/views/{FormDesign,ExcelDesign,Bpmn}.vue`
16
- - `src/frame/views/report/` / `src/frame/views/match/`
17
- - `src/frame/packages/visual-config-page/`
18
-
19
- ## 加载策略
20
-
21
- `apps/platform` 路由层 `() => import('@epxing/designer')` 懒加载,运行时进入设计页面才下载。
22
-
23
- ## 依赖
24
-
25
- - `@epxing/utils`
26
- - `@epxing/theme`
27
- - `@epxing/core`
28
- - `@epxing/components`
29
-
30
- ## 状态
31
-
32
- 已提供公共根入口、稳定组件子路径和类型声明。
33
-
34
-
35
- ## 独立包公共入口(2026-10-22)
36
-
37
- 根入口及稳定子路径提供类型声明。先安装 core 与需要的 component,再按需安装本包。
38
-
39
- 产品设计面板可从根入口具名导入 VisualComponent、VisualEntityList 等,或默认导入 `@epxing/designer/visual-component`。远程产品通过 epxShared 复用宿主设计态组件,整包安装由宿主负责。详见 `docs/guide/getting-started/packages.md`。
40
-
41
- ```js
42
- import plugin from '@epxing/designer'
43
- app.use(plugin)
44
- ```
45
-
46
- 工作区构建:`pnpm --filter @epxing/designer build`。pack/publish 的 prepack 会重建;版本由 Changesets 独立管理。旧 `/src/*` 入口保留。完整初始化、打包与远程共享流程见 docs/build-and-publish.md。
1
+ # @epxing/designer
2
+
3
+ [完整公开 API、导入方式与示例](./API.md)
4
+
5
+ 从 5.3.0-beta.2 起,导入本包 JS 时自动加载包级样式,根入口和稳定子路径均无需手动引入 style.css。显式样式入口继续兼容旧代码;产品覆盖样式放在框架导入之后。
6
+
7
+ 可视化配置体系包 - **设计态独有,运行时按需加载**。
8
+
9
+ ## 范围
10
+
11
+ - `src/frame/page-designer/`(整目录)
12
+ - 各 package 的 `Visual.vue` / `Config.vue`(T07 抽出,14+ 处)
13
+ - 各 package 的 `Preview.vue`(T08 抽出,35+ 处)
14
+ - `src/frame/views/visual/`
15
+ - `src/frame/views/{FormDesign,ExcelDesign,Bpmn}.vue`
16
+ - `src/frame/views/report/` / `src/frame/views/match/`
17
+ - `src/frame/packages/visual-config-page/`
18
+
19
+ ## 加载策略
20
+
21
+ `apps/platform` 路由层 `() => import('@epxing/designer')` 懒加载,运行时进入设计页面才下载。
22
+
23
+ ## 依赖
24
+
25
+ - `@epxing/utils`
26
+ - `@epxing/theme`
27
+ - `@epxing/core`
28
+ - `@epxing/components`
29
+
30
+ ## 状态
31
+
32
+ 已提供公共根入口、稳定组件子路径和类型声明。
33
+
34
+
35
+ ## 独立包公共入口(2026-10-22)
36
+
37
+ 根入口及稳定子路径提供类型声明。先安装 core 与需要的 component,再按需安装本包。
38
+
39
+ 产品设计面板可从根入口具名导入 VisualComponent、VisualEntityList 等,或默认导入 `@epxing/designer/visual-component`。远程产品通过 epxShared 复用宿主设计态组件,整包安装由宿主负责。详见 `docs/guide/getting-started/packages.md`。
40
+
41
+ ```js
42
+ import plugin from '@epxing/designer'
43
+ app.use(plugin)
44
+ ```
45
+
46
+ 工作区构建:`pnpm --filter @epxing/designer build`。pack/publish 的 prepack 会重建;版本由 Changesets 独立管理。旧 `/src/*` 入口保留。完整初始化、打包与远程共享流程见 docs/build-and-publish.md。
@@ -151,6 +151,17 @@ const _sfc_main = {
151
151
  };
152
152
  }
153
153
  });
154
+ },
155
+ // 切换组件后预览区会按新组件重建 DOM,选中浮层需重新定位到新元素(选中其它组件由上面的监听处理)
156
+ "designer.selectedWidget.contentType"() {
157
+ const widget = this.designer.selectedWidget;
158
+ if (!widget || this.selectedWidgetData.widget !== widget) return;
159
+ this.$nextTick(() => {
160
+ this.selectedWidgetData = {
161
+ ...this.selectedWidgetData,
162
+ element: document.querySelector(`[data-widget-id="${widget.id}"]`)
163
+ };
164
+ });
154
165
  }
155
166
  },
156
167
  methods: {
@@ -955,6 +955,27 @@ function createDesigner(vueInstance) {
955
955
  }
956
956
  }
957
957
  },
958
+ /**
959
+ * 切换组件类型:只换 contentType(及自定义组件的 type 标记),组件 id 不变,
960
+ * 因此按 id 存的组件配置(itemConfigs)、子组件、样式等全部保留
961
+ * @param { Object } widget 要切换的组件
962
+ * @param { Object } widgetInfo 目标组件记录(组件库中的 FM_PAGE)
963
+ */
964
+ switchWidget(widget, widgetInfo) {
965
+ const oldInfo = this.getWidgetByType(widget.contentType, widget.type) || {};
966
+ const property = {
967
+ contentType: widgetInfo.CODE,
968
+ type: widgetInfo.COMPONENT_SOURCE === "custom" ? "custom" : null
969
+ };
970
+ if (!widget.title || widget.title === oldInfo.TITLE) {
971
+ property.title = widgetInfo.TITLE;
972
+ }
973
+ this.updateWidget(widget.id, property);
974
+ const { metaId } = this.widgetConfig[widget.id] || {};
975
+ if (widgetInfo.CODE === "chart" && !metaId) {
976
+ this.updateWidgetConfig(widget.id, { metaId: this.page.metaId });
977
+ }
978
+ },
958
979
  addContainerByDbClick(container) {
959
980
  const newCon = this.copyNewContainerWidget(container);
960
981
  this.widgetList.push(newCon);
@@ -2,7 +2,7 @@ import '../../../../style.css';
2
2
  import _sfc_main from "./Preview.vue.js";
3
3
  /* empty css */
4
4
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
5
- const AddFormPreview = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-59a0f3d2"]]);
5
+ const AddFormPreview = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0554afd8"]]);
6
6
  export {
7
7
  AddFormPreview as default
8
8
  };
@@ -1,4 +1,4 @@
1
- import { createVNode, createTextVNode, resolveComponent, mergeProps, isVNode } from "vue";
1
+ import { createVNode, resolveComponent, mergeProps, createTextVNode, isVNode } from "vue";
2
2
  import previewMixin from "../../widget-preview/Mixin.js";
3
3
  import { MobileActionSheet } from "@epxing/components/src/mobile";
4
4
  function _isSlot(s) {
@@ -196,14 +196,13 @@ const _sfc_main = {
196
196
  }, [this.renderCatalogList(this.childWidgetList)])]);
197
197
  },
198
198
  renderForm() {
199
- let _slot2;
200
199
  const {
201
- operateFlag,
202
- showCatalog
200
+ operatePosition
203
201
  } = this.$configs;
202
+ const operateTop = operatePosition === "top" && !this.$isMobile;
204
203
  return createVNode("div", {
205
204
  "class": "epx-add-form__content"
206
- }, [createVNode("div", {
205
+ }, [operateTop && this.renderOperateArea(true), createVNode("div", {
207
206
  "class": "epx-add-form__field-group epx-page-designer-widget-preview__drop-zone",
208
207
  "ref": "addForm"
209
208
  }, [createVNode("div", {
@@ -223,7 +222,17 @@ const _sfc_main = {
223
222
  }, [this.renderComponent(component)]);
224
223
  }), this.childWidgetList.length === 0 && createVNode("div", {
225
224
  "class": "epx-page-designer-widget-preview__no-widget"
226
- }, [createTextVNode("拖拽表单项到这里")])])]), !this.readonly && operateFlag && !(showCatalog && !this.$isMobile) && createVNode("div", null, [this.$isMobile ? createVNode("div", {
225
+ }, [createTextVNode("拖拽表单项到这里")])])]), !operateTop && this.renderOperateArea(false)]);
226
+ },
227
+ // 表单区按钮区;PC 端开了目录时按钮在目录区渲染,此处不渲染
228
+ renderOperateArea(top) {
229
+ let _slot2;
230
+ const {
231
+ operateFlag,
232
+ showCatalog
233
+ } = this.$configs;
234
+ if (this.readonly || !operateFlag || showCatalog && !this.$isMobile) return null;
235
+ return createVNode("div", null, [this.$isMobile ? createVNode("div", {
227
236
  "class": ["epx-add-form__m-buttongroup", {
228
237
  "epx-add-form__m-button-more": this.operates.length > 3
229
238
  }]
@@ -257,7 +266,9 @@ const _sfc_main = {
257
266
  }, {
258
267
  default: () => [operate.text]
259
268
  }))])]) : createVNode("div", {
260
- "class": "epx-add-form__button-group"
269
+ "class": ["epx-add-form__button-group", {
270
+ "epx-add-form__button-group--top": top
271
+ }]
261
272
  }, [this.operates.map((operate) => createVNode(resolveComponent("el-button"), mergeProps({
262
273
  "loading": this.httpLoading[operate.handler + "-" + operate.text],
263
274
  "size": "default",
@@ -273,7 +284,7 @@ const _sfc_main = {
273
284
  default: () => [operate.icon && createVNode("i", {
274
285
  "class": [operate.icon]
275
286
  }, null), operate.text]
276
- }))])])]);
287
+ }))])]);
277
288
  }
278
289
  },
279
290
  created() {