mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
refactor(projects): finish refactor useTable
This commit is contained in:
4
src/typings/api.d.ts
vendored
4
src/typings/api.d.ts
vendored
@ -16,7 +16,7 @@ declare namespace Api {
|
||||
}
|
||||
|
||||
/** common params of paginating query list data */
|
||||
interface PaginatingQueryRecord<T extends NonNullable<unknown>> extends PaginatingCommonParams {
|
||||
interface PaginatingQueryRecord<T = any> extends PaginatingCommonParams {
|
||||
records: T[];
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ declare namespace Api {
|
||||
type EnableStatus = '1' | '2';
|
||||
|
||||
/** common record */
|
||||
type CommonRecord<T extends NonNullable<unknown>> = {
|
||||
type CommonRecord<T = any> = {
|
||||
/** record id */
|
||||
id: number;
|
||||
/** record creator */
|
||||
|
19
src/typings/naive-ui.d.ts
vendored
19
src/typings/naive-ui.d.ts
vendored
@ -16,17 +16,12 @@ declare namespace NaiveUI {
|
||||
|
||||
type TableData = Api.Common.CommonRecord<object>;
|
||||
|
||||
type TableColumnWithKey<T extends TableData = TableData> =
|
||||
| SetTableColumnKey<DataTableBaseColumn<T>, T>
|
||||
| SetTableColumnKey<TableColumnGroup<T>, T>;
|
||||
type TableColumnWithKey<T> = SetTableColumnKey<DataTableBaseColumn<T>, T> | SetTableColumnKey<TableColumnGroup<T>, T>;
|
||||
|
||||
type TableColumn<T extends TableData = TableData> =
|
||||
| TableColumnWithKey<T>
|
||||
| DataTableSelectionColumn<T>
|
||||
| DataTableExpandColumn<T>;
|
||||
type TableColumn<T> = TableColumnWithKey<T> | DataTableSelectionColumn<T> | DataTableExpandColumn<T>;
|
||||
|
||||
type TableApiFn<T extends TableData = TableData> = (
|
||||
params: Api.SystemManage.CommonSearchParams
|
||||
type TableApiFn<T = any, R = Api.SystemManage.CommonSearchParams> = (
|
||||
params: R
|
||||
) => Promise<FlatResponseData<Api.Common.PaginatingQueryRecord<T>>>;
|
||||
|
||||
/**
|
||||
@ -37,8 +32,10 @@ declare namespace NaiveUI {
|
||||
*/
|
||||
type TableOperateType = 'add' | 'edit';
|
||||
|
||||
type NaiveTableConfig<T extends TableData = TableData, A extends TableApiFn<T> = TableApiFn<T>> = Pick<
|
||||
import('@sa/hooks').TableConfig<A, T, TableColumn<T>>,
|
||||
type GetTableData<A extends TableApiFn> = A extends TableApiFn<infer T> ? T : never;
|
||||
|
||||
type NaiveTableConfig<A extends TableApiFn> = Pick<
|
||||
import('@sa/hooks').TableConfig<A, GetTableData<A>, TableColumn<GetTableData<A>>>,
|
||||
'apiFn' | 'apiParams' | 'columns' | 'immediate'
|
||||
>;
|
||||
}
|
||||
|
Reference in New Issue
Block a user