diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/Header.vue b/io.sc.platform.core.frontend/src/platform/components/grid/Header.vue index 332b38f7..6ef2ddda 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/Header.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/Header.vue @@ -29,7 +29,7 @@ :rowspan="c.rowspan" :colspan="c.colspan" :style="thStyleHandler(c, props.scope)" - :class="c.classes ? c.classes + ' ' + isFirstColumn(c, cIndex) : ' ' + isFirstColumn(c, cIndex)" + :class="c.classes ? c.classes + ' ' + isFirstColumn(c, cIndex) + ' ' + scrollClass(c.name) : ' ' + isFirstColumn(c, cIndex) + ' ' + scrollClass(c.name)" :props="titleScopeHandler(c, props.scope)" style="font-weight: bold" :title="c.title" @@ -60,7 +60,7 @@ @@ -114,6 +114,20 @@ type MoreColumnTitleType = { let moreColumnTitleMap = new Map(); let allColumnMap = new Map(); +const scrollClass = (columnName: string) => { + if (tools.table.store.scrollLeft > 0) { + const lastColumn = tools.table.originalColumns[tools.props.stickyNum - 1]; + const multiHeaderLastColumn = extractLastColumn(lastColumn); + if (multiHeaderLastColumn.length > 0 && multiHeaderLastColumn.includes(columnName)) { + // 存在多表头 + return 'scroll-border-right'; + } else if (lastColumn['name'] === columnName) { + return 'scroll-border-right'; + } + } + return ''; +}; + const moreColumnTitleTableSelectionStyle = computed(() => { if (tools.table.configStore.stickyNum > 0) { if (tools.props.tree) { @@ -242,6 +256,19 @@ const thStickyLastNameComputed = computed(() => { return result; }); +// 提取多表头每一层级的最后一列 +const extractLastColumn = (column: any) => { + const columns = []; + if (column.columns) { + columns.push(column.columns[column.columns.length - 1]['name']); + const childrenResult = extractLastColumn(column.columns); + if (childrenResult.length > 0) { + columns.concat(childrenResult); + } + } + return columns; +}; + const thStyleHandler = (c: any, scope: any) => { let style = ''; if (!Tools.isEmpty(c.style)) { diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue index de1cc6f5..4a1d89d8 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue @@ -1,6 +1,6 @@