UNPKG

@qin-ui/antd-vue-pro

Version:
91 lines (85 loc) 2.93 kB
import { GridItemProps, FormItemProps, TableProps } from '../../../shared/ui'; import { Base, Grid } from '../../form/types'; import { ProFormProps } from '../../form'; import { ProTableProps } from '../../table'; import { AllowedComponentProps } from 'vue'; import { GetComponentType, ComponentName } from '../../form/constants'; import type { ComponentProps } from 'vue-component-type-helpers'; type PP<T extends Record<string, any>> = Partial<T & AllowedComponentProps>; type FP<T extends Record<string, any>> = Partial< T & Pick<Base, 'valueFormatter' | 'componentContainer' | 'modelProp'> & AllowedComponentProps >; /** * @qin-ui/antd-vue-pro 全局配置变量类型 * * @description 定义可通过 ProComponentProvider 配置的所有组件默认属性。 * 支持配置表单、表格、表单项以及所有内置组件的默认属性。 * * @example * ```ts * // 通过 ProComponentProvider 配置全局默认值 * const componentVars: ComponentVars = { * 'pro-form': { * grid: { gutter: 24 }, * labelCol: { span: 4 }, * }, * 'input': { * placeholder: '请输入内容', * maxlength: 200, * }, * 'select': { * placeholder: '请选择', * }, * } * ``` */ export type RequiredComponentVars = { /** ProTable 全局默认属性 */ 'pro-table': PP< TableProps & Pick< ProTableProps, | 'control' | 'searchFormConfig' | 'immediateSearch' | 'addIndexColumn' | 'tableContainer' > >; /** ProForm 全局默认属性,grid 必须为 GridProps 对象而非 boolean */ 'pro-form': PP< Omit<ProFormProps, 'form' | 'grid'> & { grid: Exclude<Grid, undefined | boolean>; } >; /** ProFormItem 全局默认属性 */ 'pro-form-item': PP< FormItemProps & Pick<GridItemProps, 'span' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'> & Pick<Base, 'formItemContainer'> >; // field /** DatePicker date 模式全局默认属性 */ 'date-picker.date': FP<ComponentProps<GetComponentType<'date-picker'>>>; /** DatePicker week 模式全局默认属性 */ 'date-picker.week': FP<ComponentProps<GetComponentType<'date-picker'>>>; /** DatePicker month 模式全局默认属性 */ 'date-picker.month': FP<ComponentProps<GetComponentType<'date-picker'>>>; /** DatePicker year 模式全局默认属性 */ 'date-picker.year': FP<ComponentProps<GetComponentType<'date-picker'>>>; /** DatePicker quarter 模式全局默认属性 */ 'date-picker.quarter': FP<ComponentProps<GetComponentType<'date-picker'>>>; } & { /** 其他所有内置组件的全局默认属性 */ [K in Exclude<ComponentName, 'custom'>]: FP< ComponentProps<GetComponentType<K>> >; }; /** * 组件全局配置 * @description RequiredComponentVars 的 Partial 版本,用于 ProComponentProvider 的 props * @public */ export type ComponentVars = Partial<RequiredComponentVars>;