@houaoran/designer 1.0.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/LICENSE +21 -0
- package/README.md +98 -0
- package/dist/components.es.js +11424 -0
- package/dist/components.umd.js +878 -0
- package/dist/index.es.js +39113 -0
- package/dist/index.umd.js +1187 -0
- package/package.json +96 -0
- 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 +2569 -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 +164 -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 +70 -0
- package/src/config/menu.js +24 -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 +121 -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 +66 -0
- package/src/config/rule/dateRange.js +60 -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 +49 -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/text.js +41 -0
- package/src/config/rule/textarea.js +63 -0
- package/src/config/rule/time.js +58 -0
- package/src/config/rule/timeRange.js +49 -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 +173 -0
- package/src/locale/en.js +981 -0
- package/src/locale/zh-cn.js +983 -0
- package/src/style/fonts/fc-icons.woff +0 -0
- package/src/style/icon.css +1052 -0
- package/src/style/index.css +836 -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/types/index.d.ts
ADDED
|
@@ -0,0 +1,575 @@
|
|
|
1
|
+
import {Api, Options, Rule} from "@form-create/element-ui";
|
|
2
|
+
import FormCreate from "@form-create/element-ui";
|
|
3
|
+
import {Component, Plugin, Ref, App} from "vue";
|
|
4
|
+
|
|
5
|
+
//多语言读取函数
|
|
6
|
+
type t = (name, ...args) => string;
|
|
7
|
+
|
|
8
|
+
export type MenuName = 'main' | 'aide' | 'layout' | 'subform' | string;
|
|
9
|
+
|
|
10
|
+
//菜单中的拖拽组件描述
|
|
11
|
+
export interface MenuItem {
|
|
12
|
+
//拖拽组件名
|
|
13
|
+
label: string;
|
|
14
|
+
//拖拽组件id
|
|
15
|
+
name: string;
|
|
16
|
+
//拖拽组件图标
|
|
17
|
+
icon: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//菜单
|
|
21
|
+
export interface Menu {
|
|
22
|
+
//菜单名
|
|
23
|
+
title: string;
|
|
24
|
+
//菜单id
|
|
25
|
+
name: string;
|
|
26
|
+
//拖拽组件列表
|
|
27
|
+
list?: MenuItem[];
|
|
28
|
+
//放在列表最顶部
|
|
29
|
+
before?: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//菜单列表
|
|
33
|
+
type MenuList = Menu[];
|
|
34
|
+
|
|
35
|
+
//定义函数返回规则或者通过rule字段返回规则
|
|
36
|
+
type extendRule = ((arg: { t: t }) => Rule[]) | {
|
|
37
|
+
//生成规则
|
|
38
|
+
rule: (arg: { t: t }) => Rule[];
|
|
39
|
+
//追加
|
|
40
|
+
append?: boolean;
|
|
41
|
+
//前置
|
|
42
|
+
prepend?: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//field选择项
|
|
46
|
+
type FieldItem = {
|
|
47
|
+
icon?: string;
|
|
48
|
+
field: string;
|
|
49
|
+
label: string;
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
//修改当前规则的必填,禁用和说明
|
|
52
|
+
update?: {
|
|
53
|
+
required?: Boolean;
|
|
54
|
+
disabled?: Boolean;
|
|
55
|
+
info?: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
props?: Object;
|
|
58
|
+
};
|
|
59
|
+
children?: FieldItem[];
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
//可拖入的组件列表
|
|
63
|
+
type AllowDrag = string[] | {
|
|
64
|
+
//可拖入的菜单列表
|
|
65
|
+
menu: string[];
|
|
66
|
+
//可拖入的组件列表
|
|
67
|
+
item: string[];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//不可拖入的组件列表
|
|
71
|
+
type DenyDrag = string[] | {
|
|
72
|
+
//不可拖入的菜单列表
|
|
73
|
+
menu: string[];
|
|
74
|
+
//不可拖入的组件列表
|
|
75
|
+
item: string[];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
type Device = 'pc' | 'pad' | 'mobile';
|
|
79
|
+
|
|
80
|
+
//设计器组件的props.config配置
|
|
81
|
+
export interface Config {
|
|
82
|
+
//扩展字体
|
|
83
|
+
fontFamily?: Array<string | {label: string, value: string}>;
|
|
84
|
+
//配置设计区域显示方式
|
|
85
|
+
device?: Device;
|
|
86
|
+
//是否可以切换组件类型,或者可以相互切换的字段
|
|
87
|
+
switchType?: false | Array<string[]>;
|
|
88
|
+
//是否自动选中拖入的组件
|
|
89
|
+
autoActive?: boolean;
|
|
90
|
+
//是否在复制时自动重置组件的name,默认开启
|
|
91
|
+
autoResetName?: boolean;
|
|
92
|
+
//是否在复制时自动重置组件的field,默认开启
|
|
93
|
+
autoResetField?: boolean;
|
|
94
|
+
//删除组件前置事件, 返回 false 终止删除
|
|
95
|
+
beforeRemoveRule?: (data: { rule: Rule }) => false|void;
|
|
96
|
+
//选中组件前置事件, 返回 false 终止选中
|
|
97
|
+
beforeActiveRule?: (data: { rule: Rule }) => false|void;
|
|
98
|
+
//设置右侧配置项的顺序
|
|
99
|
+
configFormOrder?: Array<"base" | "props" | "validate" | "style" | "event">
|
|
100
|
+
//判断组件是否可以拖入
|
|
101
|
+
checkDrag?: (drag: {rule: Rule | undefined, menu: DragRule, toRule: Rule, toMenu: DragRule})=> boolean;
|
|
102
|
+
//右侧配置更新方式
|
|
103
|
+
updateConfigOnBlur?: boolean;
|
|
104
|
+
//是否生成vue2语法的模板组件
|
|
105
|
+
useTemplate?: boolean;
|
|
106
|
+
//定义表单配置默认值
|
|
107
|
+
formOptions?: Object;
|
|
108
|
+
//配置field是否可以编辑
|
|
109
|
+
fieldReadonly?: boolean;
|
|
110
|
+
//配置name是否可以编辑
|
|
111
|
+
nameReadonly?: boolean;
|
|
112
|
+
//field选择项,支持多级
|
|
113
|
+
fieldList?: FieldItem[];
|
|
114
|
+
//隐藏拖拽操作按钮
|
|
115
|
+
hiddenDragMenu?: boolean;
|
|
116
|
+
//隐藏拖拽按钮
|
|
117
|
+
hiddenDragBtn?: boolean;
|
|
118
|
+
//控制组件的配置权限
|
|
119
|
+
componentPermission?: {
|
|
120
|
+
//组件的 field
|
|
121
|
+
field?: string | string[];
|
|
122
|
+
//组件的 name
|
|
123
|
+
name?: string | string[];
|
|
124
|
+
//组件的 _fc_drag_tag
|
|
125
|
+
tag?: string | string[];
|
|
126
|
+
//组件的 _fc_id
|
|
127
|
+
id?: string | string[];
|
|
128
|
+
//权限
|
|
129
|
+
permission: {
|
|
130
|
+
//是否可以删除
|
|
131
|
+
delete?: false,
|
|
132
|
+
//是否可以复制
|
|
133
|
+
copy?: false,
|
|
134
|
+
//是否可以拖动
|
|
135
|
+
move?: false,
|
|
136
|
+
//是否可以配置验证
|
|
137
|
+
validate?: false,
|
|
138
|
+
//是否可以配置事件
|
|
139
|
+
event?: false,
|
|
140
|
+
//是否可以基础配置
|
|
141
|
+
base?: false,
|
|
142
|
+
//是否可以组件配置
|
|
143
|
+
props?: false,
|
|
144
|
+
//是否可以配置样式
|
|
145
|
+
style?: false,
|
|
146
|
+
//是否可以切换组件
|
|
147
|
+
switchType?: false,
|
|
148
|
+
//是否显示 name
|
|
149
|
+
name?: false,
|
|
150
|
+
//定义隐藏的配置项
|
|
151
|
+
hiddenConfig?: string[],
|
|
152
|
+
//定义禁用的配置项
|
|
153
|
+
disabledConfig?: string[]
|
|
154
|
+
},
|
|
155
|
+
}[],
|
|
156
|
+
//隐藏部分菜单
|
|
157
|
+
hiddenMenu?: MenuName[]
|
|
158
|
+
//左侧菜单分组默认收起
|
|
159
|
+
collapseMenu?: MenuName[]
|
|
160
|
+
//隐藏部分组件
|
|
161
|
+
hiddenItem?: string[];
|
|
162
|
+
//隐藏表单部分配置项
|
|
163
|
+
hiddenFormConfig?: string[];
|
|
164
|
+
//禁用表单部分配置项
|
|
165
|
+
disabledFormConfig?: string[];
|
|
166
|
+
//隐藏组件的部分配置项
|
|
167
|
+
hiddenItemConfig?: {
|
|
168
|
+
default?: string[];
|
|
169
|
+
//拖拽规则name: 隐藏的字段名
|
|
170
|
+
[id: string]: string[];
|
|
171
|
+
};
|
|
172
|
+
//禁用组件的部分配置项
|
|
173
|
+
disabledItemConfig?: {
|
|
174
|
+
default?: string[];
|
|
175
|
+
//拖拽规则name: 禁用的字段名
|
|
176
|
+
[id: string]: string[];
|
|
177
|
+
};
|
|
178
|
+
//可拖入的组件列表
|
|
179
|
+
allowDrag?: {
|
|
180
|
+
//拖拽规则name: 可拖入的规则
|
|
181
|
+
[id: string]: AllowDrag;
|
|
182
|
+
};
|
|
183
|
+
//不可拖入的组件列表
|
|
184
|
+
denyDrag?: {
|
|
185
|
+
//拖拽规则name: 不可拖入的规则
|
|
186
|
+
[id: string]: DenyDrag;
|
|
187
|
+
};
|
|
188
|
+
//AI 模块相关配置
|
|
189
|
+
ai?: {
|
|
190
|
+
//AI 接口
|
|
191
|
+
api?: string;
|
|
192
|
+
//AI token
|
|
193
|
+
token?: string;
|
|
194
|
+
};
|
|
195
|
+
//是否显示 AI 模块,
|
|
196
|
+
showAi?: boolean;
|
|
197
|
+
//是否显示左侧
|
|
198
|
+
showMenuBar?: boolean;
|
|
199
|
+
//是否显示保存按钮
|
|
200
|
+
showSaveBtn?: boolean;
|
|
201
|
+
//是否显示预览按钮
|
|
202
|
+
showPreviewBtn?: boolean;
|
|
203
|
+
//是否显示右侧的配置界面
|
|
204
|
+
showConfig?: boolean;
|
|
205
|
+
//是否显示组件的基础配置表单
|
|
206
|
+
showBaseForm?: boolean;
|
|
207
|
+
//是否显示组件的编号
|
|
208
|
+
showComponentName?: boolean;
|
|
209
|
+
//是否显示组件联动
|
|
210
|
+
showControl?: boolean;
|
|
211
|
+
//是否显示json预览按钮
|
|
212
|
+
showJsonPreview?: boolean;
|
|
213
|
+
//是否显示自定义props按钮
|
|
214
|
+
showCustomProps?: boolean;
|
|
215
|
+
//是否显示组件的属性配置表单
|
|
216
|
+
showPropsForm?: boolean;
|
|
217
|
+
//是否显示组件的事件配置表单
|
|
218
|
+
showEventForm?: boolean;
|
|
219
|
+
//是否显示组件的验证配置表单
|
|
220
|
+
showValidateForm?: boolean;
|
|
221
|
+
//是否显示组件的样式配置表单
|
|
222
|
+
showStyleForm?: boolean;
|
|
223
|
+
//是否显示表单配置
|
|
224
|
+
showFormConfig?: boolean;
|
|
225
|
+
//是否显示录入按钮
|
|
226
|
+
showInputData?: boolean;
|
|
227
|
+
//是否显示多端适配选项
|
|
228
|
+
showDevice?: boolean;
|
|
229
|
+
//是否显示国际化配置
|
|
230
|
+
showLanguage?: boolean;
|
|
231
|
+
//关闭页面时确认弹窗
|
|
232
|
+
exitConfirm?: boolean;
|
|
233
|
+
//控制组件验证是否只显示必填验证
|
|
234
|
+
validateOnlyRequired?: boolean;
|
|
235
|
+
//定义渲染规则所需的formData
|
|
236
|
+
appendConfigData?: string[] | ((rule: Rule) => Object);
|
|
237
|
+
//基础配置的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
|
|
238
|
+
baseRule?: extendRule;
|
|
239
|
+
//验证配置的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
|
|
240
|
+
validateRule?: extendRule;
|
|
241
|
+
//表单的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
|
|
242
|
+
formRule?: extendRule;
|
|
243
|
+
//组件配置的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
|
|
244
|
+
componentRule?: {
|
|
245
|
+
default?: (rule: Rule, arg: { t: t }) => Rule[] | {
|
|
246
|
+
rule: (rule: Rule, arg: { t: t }) => Rule[];
|
|
247
|
+
append?: boolean;
|
|
248
|
+
prepend?: boolean;
|
|
249
|
+
};
|
|
250
|
+
//id组件拖拽组件规则的id,rule为当前组件的生成规则
|
|
251
|
+
[id: string]: (rule: Rule, arg: { t: t }) => Rule[] | {
|
|
252
|
+
rule: (rule: Rule, arg: { t: t }) => Rule[];
|
|
253
|
+
append?: boolean;
|
|
254
|
+
prepend?: boolean;
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
updateDefaultRule?: {
|
|
258
|
+
//组件拖拽组件规则的id, 设置组件的初始化规则
|
|
259
|
+
[id: string]: Partial<Omit<Rule, "field" | "children" | "component">> | ((Rule) => void);
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
//拖拽组件描述规则
|
|
264
|
+
export interface DragRule {
|
|
265
|
+
//组件id,不能重复
|
|
266
|
+
name: string;
|
|
267
|
+
//组件的名称
|
|
268
|
+
label: string;
|
|
269
|
+
//组件的图标
|
|
270
|
+
icon: string;
|
|
271
|
+
//插入的分类
|
|
272
|
+
menu?: MenuName;
|
|
273
|
+
//是否支持样式配置
|
|
274
|
+
style?: boolean;
|
|
275
|
+
//如果是子表单组件,需要定义`value`的类型
|
|
276
|
+
subForm?: 'object' | 'array';
|
|
277
|
+
//可拖入的组件列表
|
|
278
|
+
allowDrag?: AllowDrag;
|
|
279
|
+
//不可拖入的组件列表
|
|
280
|
+
denyDrag?: DenyDrag;
|
|
281
|
+
//组件,不建议使用
|
|
282
|
+
component?: Component;
|
|
283
|
+
//控制最多拖入几个子组件
|
|
284
|
+
maxChildren?: number;
|
|
285
|
+
//判断组件是否可以拖入
|
|
286
|
+
checkDrag?: (drag: {rule: Rule | undefined, menu: DragRule, toRule: Rule, toMenu: DragRule})=> boolean;
|
|
287
|
+
//多语言配置项
|
|
288
|
+
languageKey: string[];
|
|
289
|
+
|
|
290
|
+
//组件的生成规则
|
|
291
|
+
rule(arg: { t: t }): Rule;
|
|
292
|
+
|
|
293
|
+
//组件属性配置的规则
|
|
294
|
+
props(rule: Rule, arg: { t: t, api: Api }): Rule[];
|
|
295
|
+
|
|
296
|
+
//导出规则时通过这个方法转成最终规则
|
|
297
|
+
parseRule?: (rule: Rule) => void;
|
|
298
|
+
//导入规则时通过这个方法转成设计器中的渲染规则
|
|
299
|
+
loadRule?: (rule: Rule) => void;
|
|
300
|
+
//当props中的字段变化时触发
|
|
301
|
+
watch?: {
|
|
302
|
+
[key: string]: (arg: { value: any, rule: Rule, api: Api, field: string }) => void;
|
|
303
|
+
};
|
|
304
|
+
//是否有配套的子组件,例如Row和Col
|
|
305
|
+
children?: string;
|
|
306
|
+
//初始化时渲染几个子组件
|
|
307
|
+
childrenLen?: number;
|
|
308
|
+
//当前组件的操作容器是否显示在组件内部,为false时操作容器包裹当前组件
|
|
309
|
+
inside?: true | boolean;
|
|
310
|
+
//是否可以拖入其他组件到当前组件内部
|
|
311
|
+
drag?: true | string | boolean;
|
|
312
|
+
//是否显示拖拽按钮
|
|
313
|
+
dragBtn?: false | boolean;
|
|
314
|
+
//控制操作操作按钮是否显示,显示哪些
|
|
315
|
+
handleBtn?: true | boolean | Array<'create' | 'copy' | 'addChild' | 'delete'>;
|
|
316
|
+
//隐藏基础配置中的字段
|
|
317
|
+
hiddenBaseField?: string[];
|
|
318
|
+
//是否显示遮罩, 避免对组件操作. 建议有子组件时为true,其他为false
|
|
319
|
+
mask?: false | boolean;
|
|
320
|
+
//是否是表单组件
|
|
321
|
+
input?: boolean;
|
|
322
|
+
//是否只能拖入一个
|
|
323
|
+
only?: boolean;
|
|
324
|
+
//当前组件支持的事件
|
|
325
|
+
event?: Array<string | {name: string, info: string}>;
|
|
326
|
+
//当前组件`value`的数据类型
|
|
327
|
+
validate?: string[] | 'required' | boolean;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
//远程数据
|
|
331
|
+
export interface FetchDataItem {
|
|
332
|
+
//数据名称
|
|
333
|
+
label: string;
|
|
334
|
+
//数据类型
|
|
335
|
+
type: 'fetch';
|
|
336
|
+
//请求链接
|
|
337
|
+
action: string;
|
|
338
|
+
//请求方式
|
|
339
|
+
method: 'GET' | 'POST';
|
|
340
|
+
//请求头部
|
|
341
|
+
headers?: Object;
|
|
342
|
+
//附带数据
|
|
343
|
+
data?: Object;
|
|
344
|
+
//远程数据解析
|
|
345
|
+
parse?: string | ((res: any) => any);
|
|
346
|
+
//远程异常处理
|
|
347
|
+
onError?: string | ((e) => void);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
//扩展操作
|
|
351
|
+
export type Handle = Array<{
|
|
352
|
+
//按钮名称
|
|
353
|
+
label: String;
|
|
354
|
+
//回调函数
|
|
355
|
+
handle: Function;
|
|
356
|
+
}>
|
|
357
|
+
|
|
358
|
+
//描述规则
|
|
359
|
+
export type DescriptionData = Array<{
|
|
360
|
+
//唯一值
|
|
361
|
+
_fc_id: string;
|
|
362
|
+
//组件类型
|
|
363
|
+
type: string;
|
|
364
|
+
//字段id
|
|
365
|
+
field?: string;
|
|
366
|
+
//组件名称
|
|
367
|
+
title?: string;
|
|
368
|
+
//插槽名称
|
|
369
|
+
slot?: string;
|
|
370
|
+
//组件属性配置
|
|
371
|
+
props: Object;
|
|
372
|
+
//子级
|
|
373
|
+
children?: DescriptionData;
|
|
374
|
+
}>
|
|
375
|
+
|
|
376
|
+
//用于预览的渲染器
|
|
377
|
+
export type formCreate = FormCreate;
|
|
378
|
+
|
|
379
|
+
//用于设计的渲染器
|
|
380
|
+
export type designerForm = FormCreate;
|
|
381
|
+
|
|
382
|
+
//复制内容
|
|
383
|
+
export type copyTextToClipboard = (text: string) => void;
|
|
384
|
+
|
|
385
|
+
//生成$inject参数的提示
|
|
386
|
+
export type getInjectArg = (t: t) => Object;
|
|
387
|
+
|
|
388
|
+
//加载选项的多语言
|
|
389
|
+
export type localeOptions = (t: t, options: Object[], prefix: String) => Object[];
|
|
390
|
+
|
|
391
|
+
//加载配置项的多语言
|
|
392
|
+
export type localeProps = (t: t, prefix: String, rule: Rule[]) => Rule[];
|
|
393
|
+
|
|
394
|
+
//生成options配置项的规则
|
|
395
|
+
export type makeOptionsRule = (t: t, to?: String, label?: string, value?: string) => Rule;
|
|
396
|
+
|
|
397
|
+
//生成递归类型options配置项的规则
|
|
398
|
+
export type makeTreeOptionsRule = (t: t, to?: String, label?: string, value?: string) => Rule;
|
|
399
|
+
|
|
400
|
+
//生成表单项规则
|
|
401
|
+
export type makeTitleRule = (t: t) => Rule[];
|
|
402
|
+
|
|
403
|
+
//生成必填的规则
|
|
404
|
+
export type makeRequiredRule = () => Rule;
|
|
405
|
+
|
|
406
|
+
//转JSON字符串
|
|
407
|
+
export type toJSON = (obj: Object) => string;
|
|
408
|
+
|
|
409
|
+
//全局导入菜单分类
|
|
410
|
+
export type addMenu = (menu: Menu | Menu[], before?: boolean) => void;
|
|
411
|
+
|
|
412
|
+
//全局导入拖拽规则
|
|
413
|
+
export type addDragRule = (menu: DragRule | DragTemplateRule | Array<DragRule | DragTemplateRule>, before?: boolean) => void;
|
|
414
|
+
|
|
415
|
+
type Utils = {
|
|
416
|
+
|
|
417
|
+
//复制内容
|
|
418
|
+
copyTextToClipboard: copyTextToClipboard;
|
|
419
|
+
|
|
420
|
+
//生成$inject参数的提示
|
|
421
|
+
getInjectArg: getInjectArg;
|
|
422
|
+
|
|
423
|
+
//加载选项的多语言
|
|
424
|
+
localeOptions: localeOptions;
|
|
425
|
+
|
|
426
|
+
//加载配置项的多语言
|
|
427
|
+
localeProps: localeProps;
|
|
428
|
+
|
|
429
|
+
//生成options配置项的规则
|
|
430
|
+
makeOptionsRule: makeOptionsRule;
|
|
431
|
+
|
|
432
|
+
//生成递归类型options配置项的规则
|
|
433
|
+
makeTreeOptionsRule: makeTreeOptionsRule;
|
|
434
|
+
|
|
435
|
+
//生成递归类型options配置项的规则
|
|
436
|
+
makeTitleRule: makeTitleRule;
|
|
437
|
+
|
|
438
|
+
//生成必填的规则
|
|
439
|
+
makeRequiredRule: makeRequiredRule;
|
|
440
|
+
|
|
441
|
+
//转JSON字符串
|
|
442
|
+
toJSON: toJSON;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
//原型方法
|
|
446
|
+
interface FcDesignerProtoType {
|
|
447
|
+
//多语言读取函数
|
|
448
|
+
t: t;
|
|
449
|
+
utils: Utils;
|
|
450
|
+
//用于预览的渲染器
|
|
451
|
+
formCreate: formCreate;
|
|
452
|
+
//用于设计的渲染器
|
|
453
|
+
designerForm: designerForm;
|
|
454
|
+
|
|
455
|
+
//复制内容
|
|
456
|
+
copyTextToClipboard: copyTextToClipboard;
|
|
457
|
+
|
|
458
|
+
//生成$inject参数的提示
|
|
459
|
+
getInjectArg: getInjectArg;
|
|
460
|
+
|
|
461
|
+
//加载选项的多语言
|
|
462
|
+
localeOptions: localeOptions;
|
|
463
|
+
|
|
464
|
+
//加载配置项的多语言
|
|
465
|
+
localeProps: localeProps;
|
|
466
|
+
|
|
467
|
+
//生成options配置项的规则
|
|
468
|
+
makeOptionsRule: makeOptionsRule;
|
|
469
|
+
|
|
470
|
+
//生成递归类型options配置项的规则
|
|
471
|
+
makeTreeOptionsRule: makeTreeOptionsRule;
|
|
472
|
+
|
|
473
|
+
//生成递归类型options配置项的规则
|
|
474
|
+
makeTitleRule: makeTitleRule;
|
|
475
|
+
|
|
476
|
+
//生成必填的规则
|
|
477
|
+
makeRequiredRule: makeRequiredRule;
|
|
478
|
+
|
|
479
|
+
//转JSON字符串
|
|
480
|
+
toJSON: toJSON;
|
|
481
|
+
|
|
482
|
+
//全局导入菜单分类
|
|
483
|
+
addMenu: addMenu;
|
|
484
|
+
|
|
485
|
+
//全局导入拖拽规则
|
|
486
|
+
addDragRule: addDragRule;
|
|
487
|
+
|
|
488
|
+
//往渲染器中挂载组件
|
|
489
|
+
component(name: string, component: Component, previewComponent?: Component): void;
|
|
490
|
+
|
|
491
|
+
//设置默认的多语言
|
|
492
|
+
useLocale(locale: Object): {
|
|
493
|
+
name: Ref<string>;
|
|
494
|
+
lang: Ref<string>;
|
|
495
|
+
locale: Ref<Object>;
|
|
496
|
+
t(key: string): string | undefined;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
//挂载组件
|
|
500
|
+
install: (app: App, ...options: any[]) => any;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
//设计器组件
|
|
504
|
+
export declare const FcDesigner: import("vue").DefineComponent<{
|
|
505
|
+
//设计器组件的⾼度
|
|
506
|
+
height?: Number | string;
|
|
507
|
+
//⾃定义左侧的菜单列表,会覆盖默认的菜单列表
|
|
508
|
+
menu?: MenuList,
|
|
509
|
+
//可以配置设计器内模块是否显示和默认规则的修改
|
|
510
|
+
config?: Config;
|
|
511
|
+
//扩展操作
|
|
512
|
+
handle?: Handle;
|
|
513
|
+
//是否显示组件的遮罩,默认为true,不可以操作组件
|
|
514
|
+
mask?: boolean;
|
|
515
|
+
//多语⾔配置,默认为中⽂
|
|
516
|
+
locale?: Object;
|
|
517
|
+
}, {}, {}, {}, {
|
|
518
|
+
//添加模板和拖拽组件的描述⽂件,并按照 menu 字段⾃动添加到对应的菜单下
|
|
519
|
+
addComponent: (dragRule: DragRule | Array<DragRule>) => void;
|
|
520
|
+
//覆盖添加拖拽组件到指定的菜单下
|
|
521
|
+
setMenuItem: (menuName: string, list: MenuList) => void;
|
|
522
|
+
//覆盖添加拖拽组件到指定的菜单下
|
|
523
|
+
setDevice: (device: Device) => void;
|
|
524
|
+
//在设计器左侧添加新的菜单
|
|
525
|
+
addMenu: (menu: Menu) => void;
|
|
526
|
+
//设置设计器表单的⽣成规则
|
|
527
|
+
setRule: (rule: string | Rule[]) => void;
|
|
528
|
+
//设置设计器表单的表单配置
|
|
529
|
+
setOption: (opt: Options) => void;
|
|
530
|
+
//设置设计器表单的表单配置
|
|
531
|
+
setOptions: (opt: Options) => void;
|
|
532
|
+
//合并更新设计器表单的表单配置
|
|
533
|
+
mergeOptions: (opt: Options) => void;
|
|
534
|
+
//获取 Html
|
|
535
|
+
getHtml: () => string;
|
|
536
|
+
//获取设计器表单的渲染规则(Array)
|
|
537
|
+
getRule: () => Rule[];
|
|
538
|
+
//获取设计器表单的json渲染规则(string)
|
|
539
|
+
getJson: () => string;
|
|
540
|
+
//获取设计器表单的表单配置(Object)
|
|
541
|
+
getOption: () => Options;
|
|
542
|
+
//获取设计器表单的表单配置(Object)
|
|
543
|
+
getOptions: () => Options;
|
|
544
|
+
//获取设计器表单的表单的json配置(string)
|
|
545
|
+
getOptionsJson: () => string;
|
|
546
|
+
//获取设计器的表单的层级规则描述
|
|
547
|
+
getDescription: () => DescriptionData;
|
|
548
|
+
//获取设计器的表单中表单组件的规则描述
|
|
549
|
+
getFormDescription: () => DescriptionData;
|
|
550
|
+
//预览表单
|
|
551
|
+
openPreview: () => void;
|
|
552
|
+
//清空设计器的表单
|
|
553
|
+
clearDragRule: () => void;
|
|
554
|
+
//选中设计器中指定组件
|
|
555
|
+
triggerActive: (rule: Rule | string) => void;
|
|
556
|
+
//清空设计器中组件的选中状态
|
|
557
|
+
clearActiveRule: () => void;
|
|
558
|
+
//设置表单配置的表单规则,于 config.formRule 相同
|
|
559
|
+
setFormRuleConfig: (rule: () => Rule[], append: boolean) => void;
|
|
560
|
+
//设置组件基础配置表单的表单规则,于 config.baseRule 相同
|
|
561
|
+
setBaseRuleConfig: (rule: () => Rule[], append: boolean) => void;
|
|
562
|
+
//设置组件验证配置表单的表单规则,于 config.validateRule 相同
|
|
563
|
+
setValidateRuleConfig: (rule: () => Rule[], append: boolean) => void;
|
|
564
|
+
//设置指定组件属性配置的表单规则,于 config.componentRule 相同
|
|
565
|
+
setComponentRuleConfig: (id: string, rule: () => Rule[], append: boolean) => void;
|
|
566
|
+
//获取表单的formData
|
|
567
|
+
getFormData: () => Object;
|
|
568
|
+
//设置表单的formData
|
|
569
|
+
setFormData: (formData: Object) => void;
|
|
570
|
+
//开启录入数据模式
|
|
571
|
+
openInputData: (open: boolean) => void;
|
|
572
|
+
}> & FcDesignerProtoType & Plugin & Record<string, any>;
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
export default FcDesigner;
|