提交 fa4bd7d5 编写于 作者: Cano1997's avatar Cano1997

feat: 表格列支持动态显隐

上级 ce2b04a1
......@@ -8,6 +8,7 @@ import {
GridModel,
} from '@ibiz-template/model';
import { ControlVO } from '@ibiz-template/service';
import { clone } from 'ramda';
import { computed, ref } from 'vue';
export function generateColumnData(column: GridColumnModel, c: GridController) {
......@@ -91,10 +92,24 @@ export function useITableColumns(c: GridController) {
originColumns.value = generateIViewColumns(c);
});
// 获取可见列
const getVisibleColumns = (columns: IData[]) => {
return columns.filter((item: IData) => {
if (c.hiddenColumnKeys.includes(item.key)) {
return false;
}
if (item.children && item.children.length) {
item.children = getVisibleColumns(item.children);
}
return true;
});
};
// 实际iview使用的columns
const columns = computed(() => {
// 先浅拷贝
const copy = [...originColumns.value];
let copy = clone(originColumns.value);
copy = getVisibleColumns(copy);
// 如果没有自适应列,深拷贝最后一个对象,改成自适应
const flexColumn = copy.find(column => !column.width);
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册