mirror of
https://github.com/vbenjs/gf-vben-admin.git
synced 2025-01-24 04:10:20 +08:00
fix: the action column appears repeatedly in the table (#53)
This commit is contained in:
parent
e1e9baa8c4
commit
74d4742406
@ -190,6 +190,14 @@
|
||||
return !!unref(getDataSourceRef).length;
|
||||
});
|
||||
|
||||
watch(
|
||||
() => unref(getDataSourceRef),
|
||||
() => {
|
||||
handleSummary();
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
function getRowClassName(record: TableCustomRecord<any>, index: number) {
|
||||
const { striped, rowClassName } = unref(getMergeProps);
|
||||
if (!striped) return;
|
||||
@ -242,14 +250,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
watch(
|
||||
() => unref(getDataSourceRef),
|
||||
() => {
|
||||
handleSummary();
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
function setProps(props: Partial<BasicTableProps>) {
|
||||
innerPropsRef.value = deepMerge(unref(innerPropsRef) || {}, props);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { BasicColumn, BasicTableProps } from '../types/table';
|
||||
import { PaginationProps } from '../types/pagination';
|
||||
import { unref, ComputedRef, Ref, computed, watch, ref } from 'vue';
|
||||
import { unref, ComputedRef, Ref, computed, watchEffect, ref, toRaw } from 'vue';
|
||||
import { isBoolean, isArray, isObject } from '/@/utils/is';
|
||||
import { PAGE_SIZE } from '../const';
|
||||
import { useProps } from './useProps';
|
||||
@ -10,20 +10,9 @@ export function useColumns(
|
||||
getPaginationRef: ComputedRef<false | PaginationProps>
|
||||
) {
|
||||
const { propsRef } = useProps(refProps);
|
||||
|
||||
const columnsRef = (ref(unref(propsRef).columns) as unknown) as Ref<BasicColumn[]>;
|
||||
const cacheColumnsRef = (ref(unref(propsRef).columns) as unknown) as Ref<BasicColumn[]>;
|
||||
|
||||
watch(
|
||||
() => unref(propsRef).columns,
|
||||
(columns) => {
|
||||
columnsRef.value = columns;
|
||||
cacheColumnsRef.value = columns;
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
}
|
||||
);
|
||||
const getColumnsRef = computed(() => {
|
||||
const props = unref(propsRef);
|
||||
const { showIndexColumn, indexColumnProps, ellipsis, actionColumn, isTreeTable } = props;
|
||||
@ -81,16 +70,24 @@ export function useColumns(
|
||||
}
|
||||
if (actionColumn) {
|
||||
const hasIndex = columns.findIndex((column) => column.flag === 'ACTION');
|
||||
columns.push({
|
||||
...(hasIndex === -1 ? columns[hasIndex] : {}),
|
||||
fixed: 'right',
|
||||
...actionColumn,
|
||||
flag: 'ACTION',
|
||||
});
|
||||
if (hasIndex === -1) {
|
||||
columns.push({
|
||||
...columns[hasIndex],
|
||||
fixed: 'right',
|
||||
...actionColumn,
|
||||
flag: 'ACTION',
|
||||
});
|
||||
}
|
||||
}
|
||||
return columns;
|
||||
});
|
||||
|
||||
watchEffect(() => {
|
||||
const columns = toRaw(unref(propsRef).columns);
|
||||
columnsRef.value = columns;
|
||||
cacheColumnsRef.value = columns;
|
||||
});
|
||||
|
||||
function setColumns(columns: BasicColumn[] | string[]) {
|
||||
if (!isArray(columns)) return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user