chore(BasicTable): resolve BasicTable component ts type error

This commit is contained in:
invalid w 2023-10-20 17:15:05 +08:00
parent 3d0b88708e
commit 7b87d6d29e
3 changed files with 14 additions and 12 deletions

View File

@ -21,7 +21,7 @@
:rowClassName="getRowClassName" :rowClassName="getRowClassName"
v-show="getEmptyDataIsShowTable" v-show="getEmptyDataIsShowTable"
@change="handleTableChange" @change="handleTableChange"
@resizeColumn="setColumnWidth" @resize-column="setColumnWidth"
> >
<template #[item]="data" v-for="item in Object.keys($slots)" :key="item"> <template #[item]="data" v-for="item in Object.keys($slots)" :key="item">
<slot :name="item" v-bind="data || {}"></slot> <slot :name="item" v-bind="data || {}"></slot>
@ -177,12 +177,12 @@
emit, emit,
); );
function handleTableChange(...args) { function handleTableChange(pagination: any, filters: any, sorter: any, extra: any) {
onTableChange.call(undefined, ...args); onTableChange(pagination, filters, sorter);
emit('change', ...args); emit('change', pagination, filters, sorter);
// useTableonChange // useTableonChange
const { onChange } = unref(getProps); const { onChange } = unref(getProps);
onChange && isFunction(onChange) && onChange.call(undefined, ...args); onChange && isFunction(onChange) && onChange(pagination, filters, sorter, extra);
} }
const { const {

View File

@ -5,6 +5,7 @@
import BasicHelp from '/@/components/Basic/src/BasicHelp.vue'; import BasicHelp from '/@/components/Basic/src/BasicHelp.vue';
import EditTableHeaderCell from './EditTableHeaderIcon.vue'; import EditTableHeaderCell from './EditTableHeaderIcon.vue';
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
import { ColumnType } from 'ant-design-vue/lib/table/interface';
export default defineComponent({ export default defineComponent({
name: 'TableHeaderCell', name: 'TableHeaderCell',
@ -14,22 +15,22 @@
}, },
props: { props: {
column: { column: {
type: Object as PropType<BasicColumn>, type: Object as PropType<ColumnType<any>>,
default: () => ({}), default: () => ({}),
}, },
}, },
setup(props) { setup(props) {
const { prefixCls } = useDesign('basic-table-header-cell'); const { prefixCls } = useDesign('basic-table-header-cell');
const getIsEdit = computed(() => !!props.column?.edit); const getIsEdit = computed(() => !!(props.column as BasicColumn)?.edit);
const getTitle = computed(() => { const getTitle = computed(() => {
const column = props.column; const column = props.column as BasicColumn;
if (typeof column.customHeaderRender === 'function') { if (typeof column.customHeaderRender === 'function') {
return column.customHeaderRender(props.column); return column.customHeaderRender(column);
} }
return props.column?.customTitle || props.column?.title; return column?.customTitle || props.column?.title;
}); });
const getHelpMessage = computed(() => props.column?.helpMessage); const getHelpMessage = computed(() => (props.column as BasicColumn)?.helpMessage);
return () => { return () => {
return ( return (

View File

@ -9,6 +9,7 @@ import { isArray, isBoolean, isFunction, isMap, isString } from '/@/utils/is';
import { cloneDeep, isEqual } from 'lodash-es'; import { cloneDeep, isEqual } from 'lodash-es';
import { formatToDate } from '/@/utils/dateUtil'; import { formatToDate } from '/@/utils/dateUtil';
import { ACTION_COLUMN_FLAG, DEFAULT_ALIGN, INDEX_COLUMN_FLAG, PAGE_SIZE } from '../const'; import { ACTION_COLUMN_FLAG, DEFAULT_ALIGN, INDEX_COLUMN_FLAG, PAGE_SIZE } from '../const';
import { ColumnType } from 'ant-design-vue/es/table';
function handleItem(item: BasicColumn, ellipsis: boolean) { function handleItem(item: BasicColumn, ellipsis: boolean) {
const { key, dataIndex, children } = item; const { key, dataIndex, children } = item;
@ -265,7 +266,7 @@ export function useColumns(
/** /**
* *
*/ */
function setColumnWidth(w: number, col: BasicColumn) { function setColumnWidth(w: number, col: ColumnType<BasicColumn>) {
col.width = w; col.width = w;
} }