未验证 提交 3d55b0d4 编写于 作者: L Leo Caan (陈栋) 提交者: GitHub

fix: 修复Table当dataIndex为数组时,列设置中勾选列是否展示时使column结构异常的问题 (#1626)

上级 573a4430
...@@ -197,7 +197,7 @@ export function useColumns( ...@@ -197,7 +197,7 @@ export function useColumns(
* set columns * set columns
* @param columnList key|column * @param columnList key|column
*/ */
function setColumns(columnList: Partial<BasicColumn>[] | string[]) { function setColumns(columnList: Partial<BasicColumn>[] | (string | string[])[]) {
const columns = cloneDeep(columnList); const columns = cloneDeep(columnList);
if (!isArray(columns)) return; if (!isArray(columns)) return;
...@@ -210,23 +210,23 @@ export function useColumns( ...@@ -210,23 +210,23 @@ export function useColumns(
const cacheKeys = cacheColumns.map((item) => item.dataIndex); const cacheKeys = cacheColumns.map((item) => item.dataIndex);
if (!isString(firstColumn)) { if (!isString(firstColumn) && !isArray(firstColumn)) {
columnsRef.value = columns as BasicColumn[]; columnsRef.value = columns as BasicColumn[];
} else { } else {
const columnKeys = columns as string[]; const columnKeys = (columns as (string | string[])[]).map(m => m.toString());
const newColumns: BasicColumn[] = []; const newColumns: BasicColumn[] = [];
cacheColumns.forEach((item) => { cacheColumns.forEach((item) => {
newColumns.push({ newColumns.push({
...item, ...item,
defaultHidden: !columnKeys.includes(item.dataIndex! || (item.key as string)), defaultHidden: !columnKeys.includes(item.dataIndex?.toString() || (item.key as string))
}); });
}); });
// Sort according to another array // Sort according to another array
if (!isEqual(cacheKeys, columns)) { if (!isEqual(cacheKeys, columns)) {
newColumns.sort((prev, next) => { newColumns.sort((prev, next) => {
return ( return (
columnKeys.indexOf(prev.dataIndex as string) - columnKeys.indexOf(prev.dataIndex?.toString() as string) -
columnKeys.indexOf(next.dataIndex as string) columnKeys.indexOf(next.dataIndex?.toString() as string)
); );
}); });
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册