// Used to configure the general configuration of some components without modifying the components

import type { SorterResult } from '../components/Table'

export default {
    // basic-table setting
    table: {
        // Form interface request general configuration
        // support xxx.xxx.xxx
        fetchSetting: {
            // The field name of the current page passed to the background
            pageField: 'page',
            // The number field name of each page displayed in the background
            sizeField: 'pageSize',
            // Field name of the form data returned by the interface
            listField: 'items',
            // Total number of tables returned by the interface field name
            totalField: 'total',
        },
        // Number of pages that can be selected
        pageSizeOptions: ['10', '50', '80', '100'],
        // Default display quantity on one page
        defaultPageSize: 10,
        // Default Size
        defaultSize: 'middle',
        // Custom general sort function
        defaultSortFn: (sortInfo: SorterResult) => {
            const { field, order } = sortInfo
            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[]>>) => {
            return data
        },
    },
    // scrollbar setting
    scrollbar: {
        // Whether to use native scroll bar
        // After opening, the menu, modal, drawer will change the pop-up scroll bar to native
        native: false,
    },
}
