diff --git a/src/components/Table/index.ts b/src/components/Table/index.ts index 689f64a..224d32d 100644 --- a/src/components/Table/index.ts +++ b/src/components/Table/index.ts @@ -1,10 +1,18 @@ import Table from './src/Table.vue' import { ElTable } from 'element-plus' -import { TableSetPropsType } from '@/types/table' +import { TableSetProps } from './src/types' + +export type { + TableColumn, + TableSlotDefault, + Pagination, + TableSetProps, + TableProps +} from './src/types' export interface TableExpose { setProps: (props: Recordable) => void - setColumn: (columnProps: TableSetPropsType[]) => void + setColumn: (columnProps: TableSetProps[]) => void selections: Recordable[] elTableRef: ComponentRef } diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue index 448daf5..360cb79 100644 --- a/src/components/Table/src/Table.vue +++ b/src/components/Table/src/Table.vue @@ -4,9 +4,8 @@ import { defineComponent, PropType, ref, computed, unref, watch, onMounted } fro import { propTypes } from '@/utils/propTypes' import { setIndex } from './helper' import { getSlot } from '@/utils/tsxHelper' -import type { TableProps } from './types' +import type { TableProps, TableColumn, TableSlotDefault, Pagination, TableSetProps } from './types' import { set } from 'lodash-es' -import { TableColumn, TableSlotDefault, Pagination, TableSetPropsType } from '../../../types/table' export default defineComponent({ name: 'Table', @@ -78,7 +77,7 @@ export default defineComponent({ outsideProps.value = props } - const setColumn = (columnProps: TableSetPropsType[], columnsChildren?: TableColumn[]) => { + const setColumn = (columnProps: TableSetProps[], columnsChildren?: TableColumn[]) => { const { columns } = unref(getProps) for (const v of columnsChildren || columns) { for (const item of columnProps) { diff --git a/src/components/Table/src/helper.ts b/src/components/Table/src/helper/index.ts similarity index 100% rename from src/components/Table/src/helper.ts rename to src/components/Table/src/helper/index.ts diff --git a/src/components/Table/src/types/index.ts b/src/components/Table/src/types/index.ts index 496bdde..6c7d61a 100644 --- a/src/components/Table/src/types/index.ts +++ b/src/components/Table/src/types/index.ts @@ -1,4 +1,41 @@ -import { Pagination, TableColumn } from '@/types/table' +export interface TableColumn { + field: string + label?: string + children?: TableColumn[] + [key: string]: any +} + +export interface TableSlotDefault { + row: Recordable + column: TableColumn + $index: number + [key: string]: any +} + +export interface Pagination { + small?: boolean + background?: boolean + pageSize?: number + defaultPageSize?: number + total?: number + pageCount?: number + pagerCount?: number + currentPage?: number + defaultCurrentPage?: number + layout?: string + pageSizes?: number[] + popperClass?: string + prevText?: string + nextText?: string + disabled?: boolean + hideOnSinglePage?: boolean +} + +export interface TableSetProps { + field: string + path: string + value: any +} export interface TableProps { pageSize?: number diff --git a/src/hooks/web/useTable.ts b/src/hooks/web/useTable.ts index 5d111ee..d3b7b5e 100644 --- a/src/hooks/web/useTable.ts +++ b/src/hooks/web/useTable.ts @@ -1,10 +1,8 @@ -import { Table, TableExpose } from '@/components/Table' +import { Table, TableExpose, TableProps, TableSetProps } from '@/components/Table' import { ElTable, ElMessageBox, ElMessage } from 'element-plus' import { ref, reactive, watch, computed, unref, nextTick } from 'vue' import { get } from 'lodash-es' -import type { TableProps } from '@/components/Table/src/types' import { useI18n } from '@/hooks/web/useI18n' -import { TableSetPropsType } from '@/types/table' const { t } = useI18n() @@ -32,7 +30,7 @@ interface TableObject { pageSize: number currentPage: number total: number - tableList: T[] + list: T[] params: any loading: boolean currentRow: Nullable @@ -47,7 +45,7 @@ export const useTable = (config?: UseTableConfig) => { // 总条数 total: 10, // 表格数据 - tableList: [], + list: [], // AxiosConfig 配置 params: { ...(config?.defaultParams || {}) @@ -131,7 +129,7 @@ export const useTable = (config?: UseTableConfig) => { tableObject.loading = false }) if (res) { - tableObject.tableList = get(res.data || {}, config?.response.list as string) + tableObject.list = get(res.data || {}, config?.response.list as string) tableObject.total = get(res.data || {}, config?.response?.total as string) || 0 } }, @@ -139,7 +137,7 @@ export const useTable = (config?: UseTableConfig) => { const table = await getTable() table?.setProps(props) }, - setColumn: async (columnProps: TableSetPropsType[]) => { + setColumn: async (columnProps: TableSetProps[]) => { const table = await getTable() table?.setColumn(columnProps) }, diff --git a/src/types/table.ts b/src/types/table.ts deleted file mode 100644 index 5adf91f..0000000 --- a/src/types/table.ts +++ /dev/null @@ -1,36 +0,0 @@ -export type TableColumn = { - field: string - label?: string - children?: TableColumn[] -} & Recordable - -export type TableSlotDefault = { - row: Recordable - column: TableColumn - $index: number -} & Recordable - -export interface Pagination { - small?: boolean - background?: boolean - pageSize?: number - defaultPageSize?: number - total?: number - pageCount?: number - pagerCount?: number - currentPage?: number - defaultCurrentPage?: number - layout?: string - pageSizes?: number[] - popperClass?: string - prevText?: string - nextText?: string - disabled?: boolean - hideOnSinglePage?: boolean -} - -export interface TableSetPropsType { - field: string - path: string - value: any -} diff --git a/src/views/Components/Table/DefaultTable.vue b/src/views/Components/Table/DefaultTable.vue index dcbe5a5..a684c3f 100644 --- a/src/views/Components/Table/DefaultTable.vue +++ b/src/views/Components/Table/DefaultTable.vue @@ -1,12 +1,11 @@