@le-form-create/designer 0.0.0-stage → 3.5.0-2026102105
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/LICENSE +21 -0
- package/README.md +94 -3
- package/dist/components.es.js +11448 -0
- package/dist/components.umd.js +878 -0
- package/dist/index.es.js +40591 -0
- package/dist/index.umd.js +1187 -0
- package/package.json +96 -6
- package/src/components/DragBox.vue +49 -0
- package/src/components/DragTool.vue +235 -0
- package/src/components/EventConfig.vue +557 -0
- package/src/components/FcDesigner.vue +2575 -0
- package/src/components/FcRichEditor.vue +34 -0
- package/src/components/FcTitle.vue +69 -0
- package/src/components/FetchConfig.vue +415 -0
- package/src/components/FieldInput.vue +371 -0
- package/src/components/FnConfig.vue +315 -0
- package/src/components/FnEditor.vue +327 -0
- package/src/components/FnInput.vue +103 -0
- package/src/components/FormLabel.vue +47 -0
- package/src/components/HtmlEditor.vue +125 -0
- package/src/components/JsonPreview.vue +146 -0
- package/src/components/OptionsTextInput.vue +151 -0
- package/src/components/PropsInput.vue +72 -0
- package/src/components/Required.vue +75 -0
- package/src/components/Row.vue +26 -0
- package/src/components/SignaturePad.vue +176 -0
- package/src/components/Struct.vue +153 -0
- package/src/components/StructEditor.vue +121 -0
- package/src/components/StructTree.vue +209 -0
- package/src/components/TableOptions.vue +175 -0
- package/src/components/TemplateName.vue +634 -0
- package/src/components/TemplateNameColumns.vue +371 -0
- package/src/components/TemplateNameFieldProps.vue +281 -0
- package/src/components/TnControl.vue +268 -0
- package/src/components/TreeOptions.vue +167 -0
- package/src/components/TypeSelect.vue +144 -0
- package/src/components/Validate.vue +302 -0
- package/src/components/ValueInput.vue +89 -0
- package/src/components/Warning.vue +46 -0
- package/src/components/ai/AiPanel.vue +1122 -0
- package/src/components/ai/MarkdownRenderer.vue +548 -0
- package/src/components/language/LanguageConfig.vue +174 -0
- package/src/components/language/LanguageInput.vue +191 -0
- package/src/components/style/BackgroundInput.vue +315 -0
- package/src/components/style/BorderInput.vue +242 -0
- package/src/components/style/BoxSizeInput.vue +166 -0
- package/src/components/style/BoxSpaceInput.vue +269 -0
- package/src/components/style/ColorInput.vue +90 -0
- package/src/components/style/ConfigItem.vue +118 -0
- package/src/components/style/FontInput.vue +197 -0
- package/src/components/style/PositionInput.vue +146 -0
- package/src/components/style/RadiusInput.vue +164 -0
- package/src/components/style/ShadowContent.vue +335 -0
- package/src/components/style/ShadowInput.vue +91 -0
- package/src/components/style/SizeInput.vue +118 -0
- package/src/components/style/StyleConfig.vue +307 -0
- package/src/components/table/Table.vue +252 -0
- package/src/components/table/TableView.vue +1058 -0
- package/src/components/tableForm/TableForm.vue +471 -0
- package/src/components/tableForm/TableFormColumnView.vue +103 -0
- package/src/components/tableForm/TableFormView.vue +46 -0
- package/src/components/tree/FcTree.vue +713 -0
- package/src/components/tree/FcTreeNode.vue +216 -0
- package/src/config/base/field.js +43 -0
- package/src/config/base/form.js +132 -0
- package/src/config/base/style.js +26 -0
- package/src/config/base/validate.js +15 -0
- package/src/config/index.js +71 -0
- package/src/config/menu.js +29 -0
- package/src/config/rule/alert.js +45 -0
- package/src/config/rule/button.js +49 -0
- package/src/config/rule/card.js +40 -0
- package/src/config/rule/cascader.js +122 -0
- package/src/config/rule/checkbox.js +68 -0
- package/src/config/rule/col.js +86 -0
- package/src/config/rule/collapse.js +30 -0
- package/src/config/rule/collapseItem.js +36 -0
- package/src/config/rule/color.js +53 -0
- package/src/config/rule/date.js +67 -0
- package/src/config/rule/dateRange.js +61 -0
- package/src/config/rule/divider.js +31 -0
- package/src/config/rule/editor.js +31 -0
- package/src/config/rule/group.js +86 -0
- package/src/config/rule/html.js +43 -0
- package/src/config/rule/image.js +32 -0
- package/src/config/rule/input.js +62 -0
- package/src/config/rule/number.js +50 -0
- package/src/config/rule/password.js +52 -0
- package/src/config/rule/radio.js +43 -0
- package/src/config/rule/rate.js +44 -0
- package/src/config/rule/row.js +46 -0
- package/src/config/rule/select.js +70 -0
- package/src/config/rule/signaturePad.js +59 -0
- package/src/config/rule/slider.js +53 -0
- package/src/config/rule/space.js +44 -0
- package/src/config/rule/subForm.js +47 -0
- package/src/config/rule/switch.js +46 -0
- package/src/config/rule/tabPane.js +29 -0
- package/src/config/rule/table.js +37 -0
- package/src/config/rule/tableForm.js +115 -0
- package/src/config/rule/tableFormColumn.js +55 -0
- package/src/config/rule/tabs.js +38 -0
- package/src/config/rule/tag.js +69 -0
- package/src/config/rule/templateName.js +189 -0
- package/src/config/rule/templateNameControlTypes.js +146 -0
- package/src/config/rule/text.js +41 -0
- package/src/config/rule/textarea.js +63 -0
- package/src/config/rule/time.js +59 -0
- package/src/config/rule/timeRange.js +50 -0
- package/src/config/rule/title.js +37 -0
- package/src/config/rule/transfer.js +59 -0
- package/src/config/rule/tree.js +70 -0
- package/src/config/rule/treeSelect.js +77 -0
- package/src/config/rule/upload.js +107 -0
- package/src/form/index.js +19 -0
- package/src/index.js +181 -0
- package/src/locale/en.js +1003 -0
- package/src/locale/zh-cn.js +1005 -0
- package/src/style/fonts/fc-icons.woff +0 -0
- package/src/style/icon.css +1052 -0
- package/src/style/index.css +861 -0
- package/src/utils/form.js +9 -0
- package/src/utils/highlight/highlight.min.js +307 -0
- package/src/utils/highlight/javascript.min.js +80 -0
- package/src/utils/highlight/style.css +1 -0
- package/src/utils/highlight/xml.min.js +29 -0
- package/src/utils/hintStubs.js +120 -0
- package/src/utils/index.js +544 -0
- package/src/utils/jsonDiff.js +173 -0
- package/src/utils/locale.js +23 -0
- package/src/utils/message.js +19 -0
- package/src/utils/template.js +105 -0
- package/types/index.d.ts +575 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 xaboy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,94 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# @le-form-create/designer
|
|
2
|
+
|
|
3
|
+
基于 form-create 的 Vue 3 低代码可视化表单设计器(Element Plus 版)。本包是上游 `@form-create/designer`(原 `xaboy/form-create-designer`)的 fork,在官方设计器基础上做了若干面向业务使用的定制扩展。
|
|
4
|
+
|
|
5
|
+
## 基础依赖与上游关系(重要)
|
|
6
|
+
|
|
7
|
+
很多使用者会混淆本项目的"基础"。明确如下:
|
|
8
|
+
|
|
9
|
+
- 并不存在独立发布的 `@form-create/element-designer` 包。Element Plus 版的设计器在上游统一以 **`@form-create/designer`** 这一包名发布。
|
|
10
|
+
- 本包就是 **`@form-create/designer`(Element Plus 版设计器)** 的 fork 与扩展。
|
|
11
|
+
- `@form-create/designer` 本身**构建于 `@form-create/element-ui` 之上**:后者是面向 Vue 3 + Element Plus 的表单渲染 / 生成引擎(对外暴露 `formCreate`)。本包在 `package.json` 中将 `@form-create/element-ui`(当前 `@^3.3.1`)列为直接依赖。
|
|
12
|
+
|
|
13
|
+
一句话总结:**本包 = `@form-create/designer` 的定制版,运行时依赖 `@form-create/element-ui` 表单引擎。**
|
|
14
|
+
|
|
15
|
+
## 功能特性
|
|
16
|
+
|
|
17
|
+
- 通过拖拽可视化设计表单,导出 / 导入 JSON 表单规则
|
|
18
|
+
- 内置 40+ 常用表单组件与布局组件
|
|
19
|
+
- 支持扩展自定义组件
|
|
20
|
+
- 丰富的设计器操作 API(`FcDesigner` 实例方法、设计器配置 API)
|
|
21
|
+
- 支持子表单、分组、事件配置、样式配置、表格布局、表单校验、多语言
|
|
22
|
+
|
|
23
|
+
## 本 fork 相较上游的扩展
|
|
24
|
+
|
|
25
|
+
以下为本包在上游基础之上新增 / 调整的定制内容:
|
|
26
|
+
|
|
27
|
+
1. **常用组件宽度 100% 适配**
|
|
28
|
+
为富文本编辑器、日期、时间、级联选择器、计数器控件在外层 `fc-form-item` 父容器添加专属 class,并通过后代选择器把控件根节点宽度约束为 `100%`,使其在表单栅格内自适应铺满。仅约束容器,不改动控件内部布局。涉及:
|
|
29
|
+
- 富文本编辑器:`fc-rich-editor`
|
|
30
|
+
- 日期 / 日期区间:`fc-date-picker`
|
|
31
|
+
- 时间 / 时间区间、级联选择器:`fc-time-picker` / `fc-cascader`
|
|
32
|
+
- 计数器:`fc-input-number`
|
|
33
|
+
|
|
34
|
+
2. **富文本编辑器封装组件 `FcRichEditor`**
|
|
35
|
+
对上游富文本组件(`@form-create/component-wangeditor`)做外层容器封装:`inheritAttrs: false`,将 `modelValue / disabled / config / init` 及 `v-model` 事件监听透传到底层编辑器,仅在外层容器施加 `fc-rich-editor` 宽度样式。
|
|
36
|
+
|
|
37
|
+
3. **默认中文界面**
|
|
38
|
+
设计器根节点包裹 `el-config-provider` 并注入 `element-plus` 的 `zh-cn` locale,使日期 / 时间等组件默认显示中文。消费方仍可在自身 `ConfigProvider` 中覆盖语言。
|
|
39
|
+
|
|
40
|
+
4. **内置「动态多行」组件(`TemplateName`)**
|
|
41
|
+
用于在表单字段内渲染可增删的动态多行数据表。支持配置:
|
|
42
|
+
- 第 0 列(key 列):控件类型放开为全部控件类型,属性与单组件属性面板一致(含标准「选项数据」);
|
|
43
|
+
- 第 1…N 列(value 列):每列控件类型、属性、宽度可配;
|
|
44
|
+
- 列内控件对齐、不错位;
|
|
45
|
+
- 整组件 `disabled` / `readonly`,以及与校验联动的"按列精确描红"。
|
|
46
|
+
|
|
47
|
+
## 安装
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install @le-form-create/designer
|
|
51
|
+
npm install element-plus
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
> `@form-create/element-ui` 已作为本包的依赖一并安装,无需单独安装。`element-plus` 需由使用方安装并在应用中注册(见"使用")。
|
|
55
|
+
|
|
56
|
+
## 使用
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
import FcDesigner from '@le-form-create/designer'
|
|
60
|
+
import ElementPlus from 'element-plus'
|
|
61
|
+
import 'element-plus/dist/index.css'
|
|
62
|
+
|
|
63
|
+
const app = createApp(App)
|
|
64
|
+
app.use(ElementPlus)
|
|
65
|
+
app.use(FcDesigner)
|
|
66
|
+
app.use(FcDesigner.formCreate)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<fc-designer ref="designer" />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## CDN 用法
|
|
74
|
+
|
|
75
|
+
```html
|
|
76
|
+
<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css" />
|
|
77
|
+
<script src="https://unpkg.com/vue"></script>
|
|
78
|
+
<script src="https://unpkg.com/element-plus/dist/index.full.js"></script>
|
|
79
|
+
<script src="https://unpkg.com/@form-create/element-ui/dist/form-create.min.js"></script>
|
|
80
|
+
<script src="https://unpkg.com/@le-form-create/designer/dist/index.umd.js"></script>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 设计器 API 简述
|
|
84
|
+
|
|
85
|
+
- 通过 `<fc-designer ref="designer" />` 获取 `FcDesigner` 实例,用于拖拽规则管理、组件增删、导出 JSON 等。
|
|
86
|
+
- `FcDesigner.formCreate` 为底层 `formCreate` 引擎实例,需在 `app.use(FcDesigner)` 之后一并 `app.use(FcDesigner.formCreate)`。
|
|
87
|
+
|
|
88
|
+
## 版本说明
|
|
89
|
+
|
|
90
|
+
- 版本号沿用上游开源版本 `3.5.0` 作为基准,并以 `-YYYYMMDDnn` 后缀标识本 fork 的自定义构建,例如 `3.5.0-2026102104`。
|
|
91
|
+
|
|
92
|
+
## License
|
|
93
|
+
|
|
94
|
+
MIT © 2021-present xaboy(上游作者),本 fork 沿用 MIT 许可。
|