Преглед изворни кода

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

tangyh пре 3 година
родитељ
комит
34781d42e8

+ 2 - 1
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 - 0
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 - 0
src/components/Table/src/types/table.ts

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

+ 10 - 6
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 - 0
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,