homehui
Version:
Vue3 二次封装基础组件文档
163 lines (158 loc) • 5.82 kB
TypeScript
declare interface AnyObject {
[key: string]: any;
}
/* TForm */
declare namespace FormTypes {
interface FormOpts {
ref: any; // 表单实例
labelPosition?: string; // label对齐方式
labelWidth?: string; // label宽度
btnSlotName?: string; // 按钮插槽名称
formData: AnyObject; // 表单数据
fieldList: FieldList[]; // 表单项
rules?: any; // 表单验证规则
listTypeInfo?: any; // 下拉框数据
operatorList?: OperatorList[]; // 操作按钮
}
interface FieldList {
isHideItem?: boolean; // 是否隐藏
label?: string; // label
value?: string; // 字段名
labelSlotName?: string; // label插槽名称
labelRender?: (...ags: any[]) => any; // label render渲染
className?: string; // 表单项class
isTrim?: boolean; // el-input 是否去除空格
rules?: any; // 表单项验证规则
widthSize?: number; // 表单项宽度
slotName?: string; // 表单输入框插槽名称
textShow?: boolean; // 是否文本展示
textValue?: string; // 文本展示值
isSelfCom?: boolean; // 是否自定义组件
type?: string; // 表单类型
ref?: string; // 表单组件实例
list?: string; // 下拉框数据变量名称
arrLabel?: string; // 下拉框label字段
arrKey?: string; // 下拉框value字段
event?: string; // 触发handleEvent事件的标识
comp?: any; // 组件名称
placeholder?: string; // 提示语
bind?: any; // 绑定数据(Objec or Function(formData))
width?: string; // 组件宽度
prepend?: string; // el-input输入框前置内容
append?: string; // el-input输入框后置内容
childSlotName?: string; // 子组件插槽名称
eventHandle?: AnyObject; // 事件处理函数
}
interface OperatorList {
label?: string; // 按钮名称
fun?: (val: any) => void; // 按钮点击事件
bind?: AnyObject; // 绑定数据
isHideBtn?: boolean; // 是否隐藏按钮
render?: (...ags: any[]) => any; // render函数
}
}
/* TQueryCondition */
declare namespace QueryTypes {
interface Opts {
[key: string]: {
label: string; // 列名
comp: string; // 组件名
span?: number; // 表单栅格
bind?: any; // 绑定值
defaultVal?: any; // 默认值
isSelfCom?: boolean; // 是否是自定义组件
type?: string; // 组件类型
list?: string; // 下拉列表变量名
listTypeInfo?: any; // 下拉列表数据源
arrLabel?: string; // 下拉列表label
arrKey?: string; // 下拉列表value
eventHandle?: any; // 事件处理函数 };
};
}
}
/* TTable */
declare namespace TableTypes {
interface Table {
border?: boolean; // 是否显示边框
firstColumn?: any[] | AnyObject; // 第一列数据
rules?: AnyObject; // 表单验证规则
listTypeInfo?: any; // 字典过滤
operator?: any; // 操作按钮
operatorConfig?: AnyObject; // 操作列配置
currentPage?: Number; // 当前页码
pageSize?: Number; // 每页条数
total?: Number; // 总条数
layout?: string; // 分页布局
prevText?: string; // 上一页文本
nextText?: string; // 下一页文本
size?: string; // 分页尺寸
data: any[]; // 表格数据
columns: Columns[]; // 表格列
}
interface Columns {
prop?: string; // 列字段
label?: string; // 列标题
width?: string | number; // 列宽度
minWidth?: string | number; // 列最小宽度
align?: string; // 列对齐方式
fixed?: string; // 列固定
type?: string; // 列类型
sortable?: any; // 列是否可排序
sort?: any; // 列排序方式
isShowCol?: boolean | Function; // 列是否显示
isShowHidden?: boolean;
bind?: AnyObject; // el-table-column 属性
headerRequired?: boolean; // 表头是否显示必填红点
renderHeader?: (...ags: any[]) => any; // 自定义表头
render?: (...ags: any[]) => any; // 自定义列内容
slotName?: string; // 自定义列内容插槽
canEdit?: boolean; // 是否可编辑
isClickEdit?: boolean; // 是否点击编辑
isShowEditIcon?: boolean; // 是否显示编辑图标
configEdit?: ConfigEdit; // 编辑配置
filters?: Filters; // 字典过滤
children?: any[]; // 子列
}
interface Filters {
list: string; // 字典列表
key: string; // 字典key
label: string; // 字典label
}
interface ConfigEdit {
rules?: any; // 校验规则
editSlotName?: string; // 编辑插槽
isSelfCom?: boolean; // 是否自定义组件
bind?: any; // 组件属性(Objec or Function)
editComponent?: any; // 编辑组件
placeholder?: string; // 占位符
width?: string | number; // 编辑框宽度
type?: string; // 编辑框类型
prepend?: string; // el-input前缀
append?: string; // el-input后缀
ref?: string; // ref
isShowTips?: boolean; // 是否显示tips
label?: string; // label
list?: string; // 下拉数据字段名称
arrLabel?: string; // 下拉数据label字段名称
arrKey?: string; // 下拉数据value字段名称
event?: string; // 触发handleEvent事件的标识
eventHandle?: any; // 事件处理
}
}
/* Vite */
declare type Recordable<T = any> = Record<string, T>;
/* __APP_INFO__ */
declare const __APP_INFO__: {
pkg: {
name: string;
version: string;
dependencies: Recordable<string>;
devDependencies: Recordable<string>;
};
lastBuildTime: string;
};
// Map声明全局变量
declare interface TypeMap {
[key: string]: { type: string; val: string };
}
declare module 'sortablejs';