testGBP/types/widgetLibTypes.d.ts

414 lines
9.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 控件分组,用于在设计器控件面板中分组展示;
*/
type WidgetGroupType =
| 'layout' // 布局: 布局类控件,一般都有插槽
| 'action' // 操作: 操作按钮类控件,也包含按钮发起弹窗类
| 'form' // 表单: 表单类控件; 如editor, formTable
| 'basic' // 基础: 基础常用的控件;如:文本、图片、图标等
| 'chart' // 图表:图表类控件
| 'advanced' // 高级: 不常用的高级控件
/**
* 控件分类, 技术层面的控件类型,主要用于插槽的控件限制;
*/
type CategoryType =
| 'layout' // 布局: 布局类控件,一般都有插槽
| 'action' // 操作: 操作按钮类控件,也包含按钮发起弹窗类
| 'form' // 表单: 表单类控件; 如editor, formTable
| 'basic' // 基础: 基础常用的控件;如:文本、图片、图标等
| 'advanced' // 高级: 不常用的高级控件兼容旧类型normalVue、others流程
/**
* 控件属性分组
*/
type PropGroupType = {
type: 'prop' | 'event' // "属性面板" 、"动作面板"
name: string // 分组编码,唯一且不可重复
label: string // 分组展示名称
visiableLabel: boolean // 是否显示该分组名称如果为false则直接显示对应的属性一般只在第一个分组时出现设置为false的情况
}
/**
* 控件属性录入使用的编辑组件类型
*/
type EditorType =
| 'string' // 单行文本输入
| 'date' // 单个日期选择
| 'dateRange' // 日期范围选择
| 'dict' // 字典选择
| 'enum' // Select枚举选择
| 'number' // 数字输入
| 'text' // 多行文本输入
| 'file' // 文件上传
| 'lookup' // 树形下拉选择
| 'numberRange' // 数字范围输入
| 'bool' // 布尔选择
| 'geo' // 地图选择
| 'expr' // 表达式输入
| 'icon' // 图标选择
| 'events' // 事件动作面板
| 'dataSource' // 数据源选择
| 'field' // 字段级联选择
| 'cascader' // 级联选择器
| 'object' // 对象嵌套属性编辑
/**
* 事件处理器参数类型
*/
type EventHanderParamType = {
/**
* 事件处理器参数名
*/
name: string
/**
* 事件处理器参数中文名称
*/
label: string
/**
* 事件处理器参数描述信息
*/
description?: string
}
/**
* 控件事件面板配置项类型
*/
type EventsEditorOptionType = {
/**
* 事件英文名称一般是原生事件click, mouseover等或者是自定义事件
*/
name: string
/**
* 事件中文名称,用于在事件面板中展示
*/
label: string
/**
* 调用事件时所传参数
*/
params?: EventHanderParamType[]
/**
* 事件描述信息
*/
description?: string
}
/**
* 数据源配置项类型
*/
type DataSourceType = {
/**
* 数据保存名称(DataProvider的name属性)
*/
name: string
/**
* 数据源类型
*/
type: 'doc' | 'ajax' | 'json'
/**
* 数据源接口定义
*/
queryDef?: {
/**
* 接口url地址
*/
url: string
/**
* 数据源接口请求方式
*/
method: string
/**
* 数据源接口请求参数
*/
params: object
}
/**
* 静态数据
*/
initialData?: unknown[]
}
/**
* 控件属性面板级联选择配置项类型
*/
type CascaderEditorOptionType = {
/**
* 数据源信息
*/
dataSource: DataSourceType
/**
* 所需展示数组字段
*/
resDataProp?: string
/**
* 级联内部映射label和value值
*/
dataOptions?: {
labelKey: string
valueKey: string
}
/**
* 映射desc中其他设定值
*/
propMappings?: {
/**
* key为desc中key值value为接口返回字段key值
*/
[propname: string]: string
}
}
/**
* 属性匹配条件
*/
type WidgetPropMatchCondition = {
/**
* 属性名称
*/
propName: string
/**
* 属性值
*/
propValue: any
}
/**
* 覆盖属性默认值规则配置
*/
type OverrideDefaultValueConfig = {
/**
* 属性匹配条件(支持多个属性同时匹配)
*/
condition: WidgetPropMatchCondition[] | null
/**
* 属性默认值
*/
defaultValue: any
}
/**
* 匹配上级控件及覆盖规则配置
*/
type MatchClosetWidget = {
/**
* 控件英文名称
*/
name: string
/**
* 是否为父级
*/
isParent: boolean
/**
* 覆盖属性默认值规则配置
*/
overridePropConfig: OverrideDefaultValueConfig
}
/**
* 在某些控件下级时,覆盖控件属性默认值配置
*/
type OverrideDefaultValueInClosestWidgets = {
/**
* 匹配上级控件及覆盖规则配置(支持多个)
*/
closestWidgets: MatchClosetWidget[]
/**
* 控件英文名称
*/
name: string
/**
* 覆盖属性的配置
*/
overridePropConfig: object
/**
* 覆盖条件配置
*/
condition?: unknown[]
/**
* 属性默认值
*/
defaultValue?: string | number | boolean | object | null
}
/**
* 控件属性元数据类型
*/
type PropType = {
/**
* 属性英文名称Vue组件props的属性名
*/
name: string
/**
* 属性中文名称,用于在属性面板中展示
*/
label: string
/**
* 是否必传
*/
required?: boolean
/**
* 属性录入使用的编辑组件类型;兼容历史配置:未定义时根据 type 的值匹配 Editor
*/
editorType: EditorType
/**
* 选择类属性编辑组件需要的选项列表;目前仅支持 enum 类型的属性编辑组件
*/
editorOptions?:
| object
| any[]
| PropType[]
| CascaderEditorOptionType[]
| EventsEditorOptionType[]
| OverrideDefaultValueInClosestWidgets[]
/**
* 属性数据类型
*/
type: 'string' | 'number' | 'boolean' | 'object' | 'function' | 'array' | 'date'
/**
* 属性默认值
*/
defaultValue?: string | number | boolean | object | null
/**
* 属性描述信息
*/
description?: string
/**
* 属性分组
*/
group?: PropGroupType['name']
/**
* 属性是否在属性面板显示,一般情况下配置为表达式
*/
visible?: boolean | string
/**
* 属性是否在属性面板中为只读状态,一般情况下配置为表达式
*/
readonly?: boolean | string
/**
* 属性是否不保存到applet元数据中一般情况下配置为表达式
*/
notSaveDesc?: boolean | string
}
/**
* 控件插槽元数据类型 可废弃?
*/
type SlotType = {
/**
* 插槽英文名称Vue组件slot名称
*/
name: string
/**
* 插槽允许插入哪些分类的控件
*/
acceptCategory: CategoryType[]
/**
* 插槽中文名称
*/
label: string
/**
* 插槽描述信息
*/
description?: string
/**
* 插槽使用类型
*/
type?: string
}
/**
* 控件元数据类型
*/
type WidgetType = {
/**
* 控件英文名称同Vue组件名
*/
name: string
/**
* 控件相对于包名的相对路径,用于正确导入控件;如:'./path/to/file'
*/
exposePath: string
/**
* 控件中文名称
*/
label: string
/**
* 控件图标配置一般是字体图标class用于控件面板中展示
*/
icon: string
/**
* 控件所属分类
*/
category: CategoryType
/**
* 控件匹配的引擎名称null为所有引擎都适用
*/
matchCores: string[] | null
/**
* 控件匹配的视图名称null为所有视图都适用不配置是在category为view时因为view暂不支持嵌套
*/
matchViews?: string[] | null
/**
* 控件属性列表
*/
props?: PropType[]
/**
* 控件插槽列表
*/
slots?: SlotType[]
/**
* 控件描述信息
*/
description?: string
/**
* 是否为无兄弟控件,值为 true 时同一个插槽内只能存在一个本控件不允许插入其它控件且高度100%
*/
isNoneSibling?: boolean
/**
* 父控件英文名称控件type配置值后继承匹配的控件
* 1、要求采用Vue extends继承父控件的方式开发保障扩展控件功能正常
* 2、props中无须定义父控件的属性设计器属性面板中聚合展示父控件与本控件的属性
*/
parentName?: string
}
/**
* 控件库元数据类型
*/
export type WidgetLibType = {
/**
* 控件库库名称,将会挂载到浏览器全局变量,需要全局唯一
*/
name: string
/**
* 控件库包名称import 导入时的包名,模块运行时全局唯一
*/
packageName: string
/**
* 工作空间,使用开发平台的工作空间编码,作为控件名称的前缀,避免冲突
*/
workspace: string
/**
* 控件库中的所有控件根据分类Map归纳
*/
widgets: {
[group in WidgetGroupType]?: WidgetType[]
}
/**
* 控件库描述信息
*/
description?: string
/**
* 可选;控件库默认中文名称,正常通过界面配置获得
*/
label?: string
/**
* 可选;控件库默认资源下载地址,正常通过界面配置获得
*/
url?: string
/**
* 可选如果未定义该字段则默认取控件属性定义中group值为basic和advanced的属性并分组展示在属性面板上未定义group字段的属性不予展示
*/
groups?: PropGroupType[]
}