Browse Source

feat(Table): 支持设置默认的排序值

pull/1288/head
tangyh 4 years ago
parent
commit
34781d42e8
  1. 3
      src/components/Table/src/hooks/useDataSource.ts
  2. 5
      src/components/Table/src/props.ts
  3. 2
      src/components/Table/src/types/table.ts
  4. 16
      src/settings/componentSetting.ts
  5. 4
      src/views/demo/table/UseTable.vue

3
src/components/Table/src/hooks/useDataSource.ts

@ -241,7 +241,7 @@ export function useDataSource(
}
async function fetch(opt?: FetchParams) {
const { api, searchInfo, fetchSetting, beforeFetch, afterFetch, useSearchForm, pagination } =
const { api, searchInfo, defSort, fetchSetting, beforeFetch, afterFetch, useSearchForm, pagination } =
unref(propsRef);
if (!api || !isFunction(api)) return;
try {
@ -269,6 +269,7 @@ export function useDataSource(
...(useSearchForm ? getFieldsValue() : {}),
...searchInfo,
...(opt?.searchInfo ?? {}),
...defSort,
...sortInfo,
...filterInfo,
...(opt?.sortInfo ?? {}),

5
src/components/Table/src/props.ts

@ -69,6 +69,11 @@ export const basicProps = {
type: Object as PropType<Recordable>,
default: null,
},
// 默认的排序参数
defSort: {
type: Object as PropType<Recordable>,
default: null,
},
// 使用搜索表单
useSearchForm: propTypes.bool,
// 表单配置

2
src/components/Table/src/types/table.ts

@ -176,6 +176,8 @@ export interface BasicTableProps<T = any> {
emptyDataIsShowTable?: boolean;
// 额外的请求参数
searchInfo?: Recordable;
// 默认的排序参数
defSort?: Recordable;
// 使用搜索表单
useSearchForm?: boolean;
// 表单配置

16
src/settings/componentSetting.ts

@ -24,12 +24,16 @@ export default {
// Custom general sort function
defaultSortFn: (sortInfo: SorterResult) => {
const { field, order } = sortInfo;
return {
// The sort field passed to the backend you
field,
// Sorting method passed to the background asc/desc
order,
};
if (field && order) {
return {
// The sort field passed to the backend you
field,
// Sorting method passed to the background asc/desc
order,
};
} else {
return {};
}
},
// Custom general filter function
defaultFilterFn: (data: Partial<Recordable<string[]>>) => {

4
src/views/demo/table/UseTable.vue

@ -54,6 +54,10 @@
titleHelpMessage: '使用useTable调用表格内方法',
api: demoListApi,
columns: getBasicColumns(),
defSort: {
field: 'name',
order: 'ascend',
},
rowKey: 'id',
showTableSetting: true,
onChange,

Loading…
Cancel
Save