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

View File

@ -5,6 +5,7 @@
import BasicHelp from '/@/components/Basic/src/BasicHelp.vue';
import EditTableHeaderCell from './EditTableHeaderIcon.vue';
import { useDesign } from '/@/hooks/web/useDesign';
import { ColumnType } from 'ant-design-vue/lib/table/interface';
export default defineComponent({
name: 'TableHeaderCell',
@ -14,22 +15,22 @@
},
props: {
column: {
type: Object as PropType<BasicColumn>,
type: Object as PropType<ColumnType<any>>,
default: () => ({}),
},
},
setup(props) {
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 column = props.column;
const column = props.column as BasicColumn;
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 (

View File

@ -9,6 +9,7 @@ import { isArray, isBoolean, isFunction, isMap, isString } from '/@/utils/is';
import { cloneDeep, isEqual } from 'lodash-es';
import { formatToDate } from '/@/utils/dateUtil';
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) {
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;
}