vxe-pc-ui
Version:
A vue based PC component library
331 lines (295 loc) • 9.23 kB
TypeScript
import { RenderFunction, SetupContext, Ref } from 'vue'
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
import { VxeButtonProps } from './button'
import { VxeTableDefines, VxeTableConstructor, VxeTablePrivateMethods } from './table'
import { VxeGridConstructor } from './grid'
/* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
export declare const VxeToolbar: DefineVxeComponentApp<VxeToolbarProps, VxeToolbarEventProps, VxeToolbarSlots>
export type VxeToolbarComponent = DefineVxeComponentOptions<VxeToolbarProps, VxeToolbarEventProps>
export type VxeToolbarInstance = DefineVxeComponentInstance<VxeToolbarProps, VxeToolbarConstructor>
export interface VxeToolbarConstructor extends VxeComponentBaseOptions, VxeToolbarMethods {
props: VxeToolbarProps
context: SetupContext<VxeToolbarEmits>
reactData: ToolbarReactData
getRefMaps(): ToolbarPrivateRef
getComputeMaps(): ToolbarPrivateComputed
renderVN: RenderFunction
}
export interface ToolbarPrivateRef {
refElem: Ref<HTMLDivElement | undefined>
}
export interface VxeToolbarPrivateRef extends ToolbarPrivateRef { }
export namespace VxeToolbarPropTypes {
export type Size = VxeComponentSizeType
export type Id = string
export type Loading = boolean
interface ResizableConfig {
storage?: boolean
}
export type Resizable = boolean | ResizableConfig
export interface ResizableOpts extends ResizableConfig { }
interface RefreshConfig {
queryMethod?(params: { [key: string]: any }): any
code?: 'query' | 'reload' | '' | null
icon?: string
iconLoading?: string
/**
* @deprecated 请使用 queryMethod
*/
query?(params: { [key: string]: any }): Promise<any>
}
export type Refresh = boolean | RefreshConfig
export interface RefreshOpts extends RefreshConfig { }
interface ImportConfig {
icon?: string
}
export type Import = boolean | ImportConfig
export interface ImportOpts extends ImportConfig { }
interface ExportConfig {
icon?: string
}
export type Export = boolean | ExportConfig
export interface ExportOpts extends ExportConfig { }
export interface PrintConfig {
icon?: string
}
export type Print = boolean | PrintConfig
export interface PrintOpts extends PrintConfig { }
interface ZoomConfig {
iconIn?: string
iconOut?: string
}
export type Zoom = boolean | ZoomConfig
export interface ZoomOpts extends ZoomConfig { }
interface CustomConfig {
icon?: string
/**
* 已废弃,请使用 custom-config.trigger
* @deprecated
*/
trigger?: string,
/**
* 已废弃,请使用 custom-config.immediate
* @deprecated
*/
immediate?: boolean
/**
* 已废弃,请使用 custom-config.storage
* @deprecated
*/
storage?: boolean
/**
* 已废弃,请使用 custom-config.checkMethod
* @deprecated
*/
checkMethod?(params: { column: VxeTableDefines.ColumnInfo }): boolean
/**
* 已废弃,请使用 custom-config.showFooter
* @deprecated
*/
showFooter?: boolean
/**
* 已废弃,请使用 custom-config.allowFixed
* @deprecated
*/
allowFixed?: boolean
/**
* 已废弃,请使用 custom-config.resetButtonText
* @deprecated
*/
resetButtonText?: string
/**
* 已废弃,请使用 custom-config.confirmButtonText
* @deprecated
*/
confirmButtonText?: string
/**
* 已废弃,请使用 custom-config.showFooter
* @deprecated
*/
isFooter?: boolean
}
export type Custom = boolean | CustomConfig
export interface CustomOpts extends CustomConfig { }
interface ButtonAndToolConfig extends VxeButtonProps {
code?: string
visible?: boolean
params?: any
}
export interface ButtonRender {
/**
* 渲染器名称
*/
name?: string
/**
* 目标组件渲染的参数
*/
props?: { [key: string]: any }
/**
* 目标组件渲染的属性
*/
attrs?: { [key: string]: any }
/**
* 目标组件渲染的事件
*/
events?: { [key: string]: (...args: any[]) => any }
}
export interface ButtonConfig extends ButtonAndToolConfig {
dropdowns?: ButtonConfig[]
buttonRender?: ButtonRender
}
export type Buttons = ButtonConfig[]
export interface ToolRender {
/**
* 渲染器名称
*/
name?: string
/**
* 目标组件渲染的参数
*/
props?: { [key: string]: any }
/**
* 目标组件渲染的属性
*/
attrs?: { [key: string]: any }
/**
* 目标组件渲染的事件
*/
events?: { [key: string]: (...args: any[]) => any }
}
export interface ToolConfig extends ButtonAndToolConfig {
dropdowns?: ToolConfig[]
toolRender?: ToolRender
}
export type Tools = ToolConfig[]
export type Perfect = boolean
export type ClassName = string | ((params: {
$toolbar: VxeToolbarConstructor
}) => string)
}
export type VxeToolbarProps = {
size?: VxeToolbarPropTypes.Size
/**
* 唯一 ID 标识
*/
id?: VxeToolbarPropTypes.Id
/**
* 是否加载中
*/
loading?: VxeToolbarPropTypes.Loading
/**
* 列宽拖动配置
*/
resizable?: VxeToolbarPropTypes.Resizable
/**
* 刷新按钮配置
*/
refresh?: VxeToolbarPropTypes.Refresh
/**
* 导入按钮配置
*/
import?: VxeToolbarPropTypes.Import
/**
* 导出按钮配置
*/
export?: VxeToolbarPropTypes.Export
print?: VxeToolbarPropTypes.Print
zoom?: VxeToolbarPropTypes.Zoom
/**
* 自定义列配置
*/
custom?: VxeToolbarPropTypes.Custom
/**
* 按钮列表
*/
buttons?: VxeToolbarPropTypes.Buttons
tools?: VxeToolbarPropTypes.Tools
/**
* 配套的样式
*/
perfect?: VxeToolbarPropTypes.Perfect
className?: VxeToolbarPropTypes.ClassName
}
export interface ToolbarPrivateComputed {
}
export interface VxeToolbarPrivateComputed extends ToolbarPrivateComputed { }
export interface ToolbarReactData {
isRefresh: boolean
connectFlag: 0
columns: VxeTableDefines.ColumnInfo[]
}
export interface ToolbarInternalData {
connectTable: VxeTableConstructor<any> & VxeTablePrivateMethods<any> | null | undefined
}
export interface ToolbarMethods {
dispatchEvent(type: ValueOf<VxeToolbarEmits>, params: Record<string, any>, evnt: Event | null): void
syncUpdate(params: {
collectColumn: VxeTableDefines.ColumnInfo<any>[]
$table: VxeTableConstructor
}): void
}
export interface VxeToolbarMethods extends ToolbarMethods { }
export interface ToolbarPrivateMethods { }
export interface VxeToolbarPrivateMethods extends ToolbarPrivateMethods { }
export type VxeToolbarEmits = [
'button-click',
'tool-click'
]
export namespace VxeToolbarDefines {
export interface ToolbarEventParams<D = any> extends VxeComponentEventParams {
$toolbar: VxeToolbarConstructor
$table: VxeTableConstructor<D>
$grid: VxeGridConstructor<D> | null | undefined
}
export interface ButtonClickEventParams<D = any> extends ToolbarEventParams<D> {
code: string
button: VxeToolbarPropTypes.ButtonConfig
}
export interface ToolClickEndEventParams<D = any> extends ToolbarEventParams<D> {
code: string
tool: VxeToolbarPropTypes.ToolConfig
}
}
export type VxeToolbarEventProps<D = any> = {
onButtonClick?: VxeToolbarEvents.ButtonClick<D>
onToolClick?: VxeToolbarEvents.ToolClick<D>
}
export interface VxeToolbarListeners<D = any> {
buttonClick?: VxeToolbarEvents.ButtonClick<D>
toolClick?: VxeToolbarEvents.ToolClick<D>
}
export namespace VxeToolbarEvents {
export type ButtonClick<D = any> = (params: VxeToolbarDefines.ButtonClickEventParams<D>) => void
export type ToolClick<D = any> = (params: VxeToolbarDefines.ToolClickEndEventParams<D>) => void
}
export namespace VxeToolbarSlotTypes {
export interface DefaultSlotParams {}
}
export interface VxeToolbarSlots {
/**
* 自定义左侧按钮列表
*/
buttons?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
/**
* 自定义左侧按钮列表前缀插槽模板
*/
buttonPrefix?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
/**
* 自定义左侧按钮列表后缀插槽模板
*/
buttonSuffix?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
/**
* 自定义右侧工具列表
*/
tools?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
/**
* 自定义右侧工具列表前缀插槽模板
*/
toolPrefix?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
/**
* 自定义右侧工具列表后缀插槽模板
*/
toolSuffix?: (params: VxeToolbarSlotTypes.DefaultSlotParams) => any
}
export const Toolbar: typeof VxeToolbar
export default VxeToolbar