291 lines
6.6 KiB
TypeScript
291 lines
6.6 KiB
TypeScript
import { ColEx } from '/@/components/TableForm/src/types';
|
||
import { ButtonLocation, FormSchema, Rule } from '/@/components/Form';
|
||
import { HiddenComponentInfo } from '/@/components/Designer/src/types/index';
|
||
|
||
/**
|
||
* 表单设计器 返回类型
|
||
*/
|
||
export interface FormJson {
|
||
//表单总体配置
|
||
config: FormOptionModel;
|
||
//各组件配置
|
||
list: ComponentOptionModel[];
|
||
hiddenComponent: HiddenComponentInfo[];
|
||
}
|
||
|
||
export interface GeneratorFormSchema extends FormSchema {
|
||
key: string;
|
||
group: string;
|
||
name: string;
|
||
icon: string;
|
||
}
|
||
|
||
/**
|
||
* 组件通用配置 实体模型
|
||
*/
|
||
export interface ComponentOptionModel {
|
||
//key 唯一
|
||
key: string;
|
||
//field name
|
||
bindField: string;
|
||
//table name
|
||
bindTable: string;
|
||
//名称
|
||
label: string;
|
||
//图标
|
||
rules?: Rule[];
|
||
//类型
|
||
type: string;
|
||
//各组件 特殊配置信息 具体配置信息
|
||
options?: ComponentConfigModel;
|
||
//栅格布局的子节点 栅格布局特有
|
||
layout?: LayoutOptionModel[];
|
||
//子表单子节点 子表单特有
|
||
children?: ComponentOptionModel[];
|
||
//range特有
|
||
bindStartTime?: string;
|
||
bindEndTime?: string;
|
||
//隐藏组件特有
|
||
code?: string; //编码
|
||
value?: string; //值
|
||
//界面优先-结构配置 字段备注展示
|
||
typeName?: string; //类型的中文名称
|
||
//是否是子表组件
|
||
isSubFormChild?: boolean;
|
||
//是否是单表组件
|
||
isSingleFormChild?: boolean;
|
||
}
|
||
|
||
/**
|
||
* 表单整体配置 实体模型
|
||
*/
|
||
export interface FormOptionModel {
|
||
//是否需要隐藏 必填标记
|
||
hideRequiredMark?: boolean;
|
||
|
||
//表单尺寸
|
||
size?: 'default' | 'small' | 'large';
|
||
|
||
//对齐方式
|
||
layout?: 'vertical' | 'inline' | 'horizontal';
|
||
|
||
//label配置
|
||
labelCol?: Partial<ColEx>;
|
||
|
||
//对齐方式
|
||
labelAlign?: 'left' | 'right';
|
||
|
||
//按钮位置
|
||
buttonLocation?: ButtonLocation;
|
||
|
||
//表单形式
|
||
formType?: 'modal' | 'drawer';
|
||
|
||
//表单宽度
|
||
formWidth?: number;
|
||
}
|
||
|
||
/**
|
||
* 组件具体配置 实体模型
|
||
*/
|
||
export interface ComponentConfigModel {
|
||
//绑定表
|
||
table: string;
|
||
//绑定字段
|
||
field: string;
|
||
//宽度
|
||
width?: string;
|
||
|
||
// 占位符
|
||
placeholder?: string;
|
||
// 栅格布局占多少列
|
||
col?: number;
|
||
//是否只读
|
||
readonly?: boolean;
|
||
//是否启用
|
||
disabled?: boolean;
|
||
//是否需要label
|
||
isLabel?: boolean;
|
||
showLabel?: boolean;
|
||
//label
|
||
labelWidth?: number;
|
||
|
||
//子表单 表格列宽
|
||
columnWidth?: number;
|
||
//默认值
|
||
defaultValue?: any;
|
||
//是否必填
|
||
required?: boolean;
|
||
//是否能够清空
|
||
allowClear: boolean;
|
||
//自定义验证 正则
|
||
rules?: Rule[];
|
||
|
||
//事件配置
|
||
events: any;
|
||
|
||
//下拉框模式(下拉框框特有) 'default' | 'multiple' | 'tags' | 'combobox'
|
||
mode?: string;
|
||
//是否为远程组件(下拉,单选,多选等组件)
|
||
remote?: boolean;
|
||
//如果是远程组件,代表远程类型
|
||
datasourceType: 'staticData' | 'dic' | 'datasource' | 'api';
|
||
//静态数据默认选择
|
||
defaultSelect?: string | number;
|
||
//datasourceType 是 dic 数据字典项目code
|
||
itemId: string;
|
||
//datasourceType 是datasrouce 存入数据源Id
|
||
sourceId: string;
|
||
//选项 (下拉,单选,多选等组件)
|
||
staticOptions?: any[];
|
||
// 请求地址 (下拉,单选,多选等组件)
|
||
api?: string;
|
||
//api配置信息(下拉,单选,多选等组件)
|
||
apiConfig: any;
|
||
//数据字典配置信息(下拉,单选,多选等组件)
|
||
dicOptions: Array<any>;
|
||
//返回值数据字段 (下拉,单选,多选等组件)
|
||
resultField?: string;
|
||
//显示字段 (下拉,单选,多选等组件)
|
||
labelField?: string;
|
||
//保存字段 (下拉,单选,多选等组件)
|
||
valueField?: string;
|
||
//子字段(树下拉,级联等)
|
||
childrenField?: string;
|
||
|
||
//最大输入
|
||
maxLength?: number;
|
||
//是否可以半选(评分特有)
|
||
allowHalf?: boolean;
|
||
//最大值(数字框特有)
|
||
max?: number;
|
||
//最小值(数字框特有)
|
||
min?: number;
|
||
//数值精度(数字框特有)
|
||
precision: number;
|
||
//小数点(数字框特有)
|
||
decimalSeparator: string;
|
||
//最大行 (多行文本框特有)
|
||
maxRow?: number;
|
||
//是否自适应高度(多行文本特有)
|
||
autoSize: boolean;
|
||
// // 是否显示字数(多行文本特有)
|
||
// showCount: boolean;
|
||
//步长(数字框特有)
|
||
step?: number;
|
||
//前缀(input特有)
|
||
addonBefore?: string;
|
||
//后缀(input特有)
|
||
addonAfter?: string;
|
||
//前缀图标(input特有)
|
||
prefix?: string;
|
||
//后缀图标(input特有)
|
||
suffix?: string;
|
||
|
||
//分割线文字位置 (分割线特有)
|
||
orientation?: string;
|
||
|
||
//tab页签位置(tab特有)
|
||
tabPosition?: string;
|
||
//tab大小 (tab独有)
|
||
tabSize: string;
|
||
|
||
//card布局特有
|
||
title?: string;
|
||
|
||
//时间组件特有
|
||
format?: string;
|
||
showTime?: boolean;
|
||
//编码规则(编码组件特有)
|
||
autoCodeRule: string;
|
||
|
||
//上间距(分割线特有)
|
||
marginTop: number;
|
||
//下间距(分割线特有)
|
||
marginBottom: number;
|
||
|
||
//开始占位(时间范围组件特有)
|
||
startTimePlaceholder: string;
|
||
|
||
//结束占位(时间范围组件特有)
|
||
endTimePlaceholder: string;
|
||
|
||
//按钮高度(按钮组件特有)
|
||
buttonHeight: string;
|
||
|
||
//按钮宽度(按钮组件特有)
|
||
buttonWidth: string;
|
||
|
||
//选项卡风格(选项卡组件特有)
|
||
type: string;
|
||
|
||
//信息体类型(信息体组件特有)
|
||
infoType: number;
|
||
|
||
//预加载数据源类型(表格组件特有)
|
||
preloadType: string;
|
||
|
||
//是否选择按钮选数据(表格组件特有)
|
||
useSelectButton: boolean;
|
||
|
||
//选数据按钮名称(表格组件特有)
|
||
buttonName: string;
|
||
span?: string | number;
|
||
maxlength?: string | number;
|
||
controls?: boolean;
|
||
subTotal?: boolean;
|
||
|
||
//预加载数据绑定字段(表格组件特有)
|
||
prestrainField?: string;
|
||
|
||
//单行文本不存表
|
||
isSave?: boolean;
|
||
//是否显示
|
||
isShow?: boolean;
|
||
url?: string;
|
||
}
|
||
|
||
/**
|
||
* 栅格布局 实体模型
|
||
*/
|
||
export interface LayoutOptionModel {
|
||
name?: string;
|
||
span: number;
|
||
list: ComponentOptionModel[];
|
||
}
|
||
|
||
/**
|
||
* 前端代码模型
|
||
*/
|
||
export interface FrontCodeModel {
|
||
listCode: string; // 列表代码
|
||
formCode: string; //表单代码
|
||
apiCode: string; //请求代码
|
||
modelCode?: string; //模型代码
|
||
configJsonCode: string; //配置json模型代码
|
||
workflowPermissionCode: string; //配置工作流权限数据
|
||
simpleFormCode: string; //simpleForm页面
|
||
}
|
||
|
||
/**
|
||
* 展示代码模型
|
||
*/
|
||
export interface ShowFrontCodeModel extends FrontCodeModel {
|
||
controllerCode?: string; //控制器代码
|
||
entityCode?: object; //实体类代码
|
||
}
|
||
|
||
//表单尺寸
|
||
export enum FormSizeEnum {
|
||
FULL,
|
||
BIG,
|
||
MEDIUM,
|
||
SMALL,
|
||
}
|
||
|
||
export enum AlignTypeEnum {
|
||
LEFT,
|
||
RIGHT,
|
||
CENTER,
|
||
}
|