UNPKG

vue-admin-core

Version:
435 lines (434 loc) 20.7 kB
import { DefineComponent, ISchema, ISchemaFieldProps, SchemaKey, VueComponent } from "@formily/vue"; import { Form as FormilyForm, IFormProps } from "@formily/core"; import { Options, Result, Service } from "../useRequest/src/types"; import { type PropType, type Ref } from "vue"; import { ArrayTable, ITable } from "vue-admin-core/es/formily"; import defaultProps from "element-plus/es/components/table/src/table/defaults"; /** * useFormilyTable Hook 的签名 */ declare type useFormilyTable = <TData, TParams extends any[]>(request: Service<TData, TParams> | Result<TData, TParams>, options?: Options<TData, TParams> & { formProps?: IFormProps<object>; }, definitions?: Record<string, ISchema>, SchemaField?: DefineComponent<ISchemaFieldProps>) => { form: Ref<FormilyForm>; Table: DefineComponent<PropType<typeof ArrayTable>>; request: Result<TData, TParams>; table: ITable; }; export type UseFormilyTableSchema = Record<SchemaKey, { "x-table-header": boolean; "x-column-props": typeof defaultProps; } & ISchema>; export declare const transformTableSchema: (schemas: UseFormilyTableSchema) => Record<string, import("@formily/vue").Stringify<{ [key: symbol]: any; [key: `x-${string}`]: any; [key: `x-${number}`]: any; version?: string | undefined; name?: SchemaKey | undefined; title?: any; description?: any; default?: any; readOnly?: boolean | undefined; writeOnly?: boolean | undefined; type?: import("@formily/vue").SchemaTypes | undefined; enum?: import("@formily/vue").SchemaEnum<any> | undefined; const?: any; multipleOf?: number | undefined; maximum?: number | undefined; exclusiveMaximum?: number | undefined; minimum?: number | undefined; exclusiveMinimum?: number | undefined; maxLength?: number | undefined; minLength?: number | undefined; pattern?: string | RegExp | undefined; maxItems?: number | undefined; minItems?: number | undefined; uniqueItems?: boolean | undefined; maxProperties?: number | undefined; minProperties?: number | undefined; required?: string | boolean | string[] | undefined; format?: string | undefined; $ref?: string | undefined; $namespace?: string | undefined; definitions?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; properties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; items?: import("@formily/vue").SchemaItems<any, any, any, any, any, any, any, any> | undefined; additionalItems?: import("@formily/vue").Stringify<any> | undefined; patternProperties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; additionalProperties?: import("@formily/vue").Stringify<any> | undefined; "x-value"?: any; "x-index"?: number | undefined; "x-pattern"?: any; "x-display"?: any; "x-validator"?: any; "x-decorator"?: any; "x-decorator-props"?: any; "x-component"?: any; "x-component-props"?: any; "x-reactions"?: import("@formily/vue").SchemaReactions<any> | undefined; "x-content"?: any; "x-data"?: any; "x-visible"?: boolean | undefined; "x-hidden"?: boolean | undefined; "x-disabled"?: boolean | undefined; "x-editable"?: boolean | undefined; "x-read-only"?: boolean | undefined; "x-read-pretty"?: boolean | undefined; "x-compile-omitted"?: string[] | undefined; }>>; export declare const useFormilyTable: <TData, TParams extends any[]>(request: Service<TData, TParams> | Result<TData, TParams>, options?: (Options<TData, TParams> & { formProps?: IFormProps<object> | undefined; }) | undefined, SchemaField?: DefineComponent<ISchemaFieldProps>) => { form: Ref<FormilyForm<any>>; Table: import("vue").DefineComponent<{ schema: { type: PropType<UseFormilyTableSchema>; required: true; }; components: { type: PropType<Record<string, VueComponent>>; }; scope: { type: ObjectConstructor; }; name: { type: PropType<SchemaKey>; }; definitions: { type: PropType<Record<string, import("@formily/vue").Stringify<{ [key: symbol]: any; [key: `x-${string}`]: any; [key: `x-${number}`]: any; version?: string | undefined; name?: SchemaKey | undefined; title?: any; description?: any; default?: any; readOnly?: boolean | undefined; writeOnly?: boolean | undefined; type?: import("@formily/vue").SchemaTypes | undefined; enum?: import("@formily/vue").SchemaEnum<any> | undefined; const?: any; multipleOf?: number | undefined; maximum?: number | undefined; exclusiveMaximum?: number | undefined; minimum?: number | undefined; exclusiveMinimum?: number | undefined; maxLength?: number | undefined; minLength?: number | undefined; pattern?: string | RegExp | undefined; maxItems?: number | undefined; minItems?: number | undefined; uniqueItems?: boolean | undefined; maxProperties?: number | undefined; minProperties?: number | undefined; required?: string | boolean | string[] | undefined; format?: string | undefined; $ref?: string | undefined; $namespace?: string | undefined; definitions?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; properties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; items?: import("@formily/vue").SchemaItems<any, any, any, any, any, any, any, any> | undefined; additionalItems?: import("@formily/vue").Stringify<any> | undefined; patternProperties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; additionalProperties?: import("@formily/vue").Stringify<any> | undefined; "x-value"?: any; "x-index"?: number | undefined; "x-pattern"?: any; "x-display"?: any; "x-validator"?: any; "x-decorator"?: any; "x-decorator-props"?: any; "x-component"?: any; "x-component-props"?: any; "x-reactions"?: import("@formily/vue").SchemaReactions<any> | undefined; "x-content"?: any; "x-data"?: any; "x-visible"?: boolean | undefined; "x-hidden"?: boolean | undefined; "x-disabled"?: boolean | undefined; "x-editable"?: boolean | undefined; "x-read-only"?: boolean | undefined; "x-read-pretty"?: boolean | undefined; "x-compile-omitted"?: string[] | undefined; }>>>; }; data: { type: PropType<any[]>; default: () => never[]; }; size: { readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "small" | "large" | "default", never>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; width: (NumberConstructor | StringConstructor)[]; height: (NumberConstructor | StringConstructor)[]; maxHeight: (NumberConstructor | StringConstructor)[]; fit: { type: BooleanConstructor; default: boolean; }; stripe: BooleanConstructor; border: BooleanConstructor; rowKey: PropType<string | ((row: any) => string) | undefined>; showHeader: { type: BooleanConstructor; default: boolean; }; showSummary: BooleanConstructor; sumText: StringConstructor; summaryMethod: PropType<import("element-plus/es/components/table/src/table/defaults").SummaryMethod<any> | undefined>; rowClassName: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>; rowStyle: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>; cellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>; cellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>; headerRowClassName: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>; headerRowStyle: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>; headerCellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>; headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>; highlightCurrentRow: BooleanConstructor; currentRowKey: (NumberConstructor | StringConstructor)[]; emptyText: StringConstructor; expandRowKeys: PropType<any[] | undefined>; defaultExpandAll: BooleanConstructor; defaultSort: PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>; tooltipEffect: StringConstructor; tooltipOptions: PropType<Partial<Pick<import("element-plus").ElTooltipProps, "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter" | "hideAfter">> | undefined>; spanMethod: PropType<((data: { row: any; rowIndex: number; column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<any>; columnIndex: number; }) => number[] | { rowspan: number; colspan: number; } | undefined) | undefined>; selectOnIndeterminate: { type: BooleanConstructor; default: boolean; }; indent: { type: NumberConstructor; default: number; }; treeProps: { type: PropType<{ hasChildren?: string | undefined; children?: string | undefined; } | undefined>; default: () => { hasChildren: string; children: string; }; }; lazy: BooleanConstructor; load: PropType<((row: any, treeNode: import("element-plus/es/components/table/src/table/defaults").TreeNode, resolve: (data: any[]) => void) => void) | undefined>; style: { type: PropType<import("vue").CSSProperties>; default: () => {}; }; className: { type: StringConstructor; default: string; }; tableLayout: { type: PropType<"fixed" | "auto">; default: string; }; scrollbarAlwaysOn: { type: BooleanConstructor; default: boolean; }; flexible: BooleanConstructor; showOverflowTooltip: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter" | "hideAfter">> | undefined>; }, () => any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ schema: { type: PropType<UseFormilyTableSchema>; required: true; }; components: { type: PropType<Record<string, VueComponent>>; }; scope: { type: ObjectConstructor; }; name: { type: PropType<SchemaKey>; }; definitions: { type: PropType<Record<string, import("@formily/vue").Stringify<{ [key: symbol]: any; [key: `x-${string}`]: any; [key: `x-${number}`]: any; version?: string | undefined; name?: SchemaKey | undefined; title?: any; description?: any; default?: any; readOnly?: boolean | undefined; writeOnly?: boolean | undefined; type?: import("@formily/vue").SchemaTypes | undefined; enum?: import("@formily/vue").SchemaEnum<any> | undefined; const?: any; multipleOf?: number | undefined; maximum?: number | undefined; exclusiveMaximum?: number | undefined; minimum?: number | undefined; exclusiveMinimum?: number | undefined; maxLength?: number | undefined; minLength?: number | undefined; pattern?: string | RegExp | undefined; maxItems?: number | undefined; minItems?: number | undefined; uniqueItems?: boolean | undefined; maxProperties?: number | undefined; minProperties?: number | undefined; required?: string | boolean | string[] | undefined; format?: string | undefined; $ref?: string | undefined; $namespace?: string | undefined; definitions?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; properties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; items?: import("@formily/vue").SchemaItems<any, any, any, any, any, any, any, any> | undefined; additionalItems?: import("@formily/vue").Stringify<any> | undefined; patternProperties?: import("@formily/vue").SchemaProperties<any, any, any, any, any, any, any, any> | undefined; additionalProperties?: import("@formily/vue").Stringify<any> | undefined; "x-value"?: any; "x-index"?: number | undefined; "x-pattern"?: any; "x-display"?: any; "x-validator"?: any; "x-decorator"?: any; "x-decorator-props"?: any; "x-component"?: any; "x-component-props"?: any; "x-reactions"?: import("@formily/vue").SchemaReactions<any> | undefined; "x-content"?: any; "x-data"?: any; "x-visible"?: boolean | undefined; "x-hidden"?: boolean | undefined; "x-disabled"?: boolean | undefined; "x-editable"?: boolean | undefined; "x-read-only"?: boolean | undefined; "x-read-pretty"?: boolean | undefined; "x-compile-omitted"?: string[] | undefined; }>>>; }; data: { type: PropType<any[]>; default: () => never[]; }; size: { readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "small" | "large" | "default", never>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; width: (NumberConstructor | StringConstructor)[]; height: (NumberConstructor | StringConstructor)[]; maxHeight: (NumberConstructor | StringConstructor)[]; fit: { type: BooleanConstructor; default: boolean; }; stripe: BooleanConstructor; border: BooleanConstructor; rowKey: PropType<string | ((row: any) => string) | undefined>; showHeader: { type: BooleanConstructor; default: boolean; }; showSummary: BooleanConstructor; sumText: StringConstructor; summaryMethod: PropType<import("element-plus/es/components/table/src/table/defaults").SummaryMethod<any> | undefined>; rowClassName: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>; rowStyle: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>; cellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>; cellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>; headerRowClassName: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnCls<any> | undefined>; headerRowStyle: PropType<import("element-plus/es/components/table/src/table/defaults").ColumnStyle<any> | undefined>; headerCellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<any> | undefined>; headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<any> | undefined>; highlightCurrentRow: BooleanConstructor; currentRowKey: (NumberConstructor | StringConstructor)[]; emptyText: StringConstructor; expandRowKeys: PropType<any[] | undefined>; defaultExpandAll: BooleanConstructor; defaultSort: PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>; tooltipEffect: StringConstructor; tooltipOptions: PropType<Partial<Pick<import("element-plus").ElTooltipProps, "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter" | "hideAfter">> | undefined>; spanMethod: PropType<((data: { row: any; rowIndex: number; column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<any>; columnIndex: number; }) => number[] | { rowspan: number; colspan: number; } | undefined) | undefined>; selectOnIndeterminate: { type: BooleanConstructor; default: boolean; }; indent: { type: NumberConstructor; default: number; }; treeProps: { type: PropType<{ hasChildren?: string | undefined; children?: string | undefined; } | undefined>; default: () => { hasChildren: string; children: string; }; }; lazy: BooleanConstructor; load: PropType<((row: any, treeNode: import("element-plus/es/components/table/src/table/defaults").TreeNode, resolve: (data: any[]) => void) => void) | undefined>; style: { type: PropType<import("vue").CSSProperties>; default: () => {}; }; className: { type: StringConstructor; default: string; }; tableLayout: { type: PropType<"fixed" | "auto">; default: string; }; scrollbarAlwaysOn: { type: BooleanConstructor; default: boolean; }; flexible: BooleanConstructor; showOverflowTooltip: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "showArrow" | "effect" | "enterable" | "popperClass" | "offset" | "placement" | "popperOptions" | "showAfter" | "hideAfter">> | undefined>; }>>, { style: import("vue").CSSProperties; data: any[]; className: string; fit: boolean; stripe: boolean; border: boolean; showHeader: boolean; showSummary: boolean; highlightCurrentRow: boolean; defaultExpandAll: boolean; selectOnIndeterminate: boolean; indent: number; treeProps: { hasChildren?: string | undefined; children?: string | undefined; } | undefined; lazy: boolean; tableLayout: "fixed" | "auto"; scrollbarAlwaysOn: boolean; flexible: boolean; }, {}>; request: Result<TData, TParams>; table: ITable; }; export default useFormilyTable;