diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 963a2e4df42cff6d808f0869c19eb9894173470c..b2d3afe6d6c1b17891cc8d5c5b825ee78847ac28 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -30,6 +30,7 @@ - 修复`useECharts`在`resize`时不能自适应,报错 - 修复`useWatermark`在清空后`resize`未删除 - 修复表单校验问题 +- 修复多级表头配置不生效问题 ## 2.0.0-rc.8 (2020-11-2) diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts index 846ddc9cdfb341f922e826f7ba80c53d134c2c96..06f145824aa8b4e630b833fa25f03e2633cf3319 100644 --- a/src/components/Table/src/hooks/useColumns.ts +++ b/src/components/Table/src/hooks/useColumns.ts @@ -23,18 +23,11 @@ export function useColumns( } let pushIndexColumns = false; columns.forEach((item) => { - const { key, dataIndex } = item; - item.align = item.align || 'center'; - if (ellipsis) { - if (!key) { - item.key = dataIndex; - } - if (!isBoolean(item.ellipsis)) { - Object.assign(item, { - ellipsis, - }); - } - } + const { children } = item; + handleItem(item, !!ellipsis); + + handleChildren(children, !!ellipsis); + const indIndex = columns.findIndex((column) => column.flag === 'INDEX'); if (showIndexColumn && !isTreeTable) { pushIndexColumns = indIndex === -1; @@ -88,6 +81,30 @@ export function useColumns( cacheColumnsRef.value = columns; }); + function handleItem(item: BasicColumn, ellipsis: boolean) { + const { key, dataIndex } = item; + item.align = item.align || 'center'; + if (ellipsis) { + if (!key) { + item.key = dataIndex; + } + if (!isBoolean(item.ellipsis)) { + Object.assign(item, { + ellipsis, + }); + } + } + } + + function handleChildren(children: BasicColumn[] | undefined, ellipsis: boolean) { + if (!children) return; + children.forEach((item) => { + const { children } = item; + handleItem(item, ellipsis); + handleChildren(children, ellipsis); + }); + } + function setColumns(columns: BasicColumn[] | string[]) { if (!isArray(columns)) return; diff --git a/src/design/ant/selection.less b/src/design/ant/selection.less deleted file mode 100644 index 8aa03acf2e262b9a65d054b04f4baa5d46a28de0..0000000000000000000000000000000000000000 --- a/src/design/ant/selection.less +++ /dev/null @@ -1,81 +0,0 @@ -.ant-radio { - &-inner { - border-color: @text-color-base; - - &::after { - top: 1px; - left: 1px; - width: 12px; - height: 12px; - } - } -} - -.ant-radio-disabled .ant-radio-inner { - border-color: @text-color-help-light !important; -} - -.ant-checkbox { - &-inner { - border-color: @text-color-base; - } -} - -.ant-checkbox-disabled .ant-checkbox-inner { - border-color: @text-color-help-light !important; -} - -// select -.ant-select { - &-selection { - border-color: @border-color-shallow-dark; - } - - &-selection__placeholder, - &-search__field__placeholder { - color: @text-color-help-dark; - } -} - -.ant-select-disabled .ant-select-arrow { - visibility: hidden; -} - -.ant-select-dropdown { - min-width: 84px !important; - - &.ant-select-dropdown--multiple { - .ant-select-dropdown-menu-item-selected .ant-select-selected-icon, - .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon { - color: @white; - } - } - - &-menu-item { - height: 34px; - min-width: 84px; - line-height: 22px; - color: @text-color-call-out; - - &:hover { - // color: @--norm-select-item-hover-color; - background: @tree-hover-background-color; - } - - &-selected, - &-selected:hover { - color: @primary-color; - background: @tree-hover-background-color; - } - - &-disabled, - &-disabled:hover { - color: @disabled-color; - background-color: @white; - } - } -} - -.ant-select-disabled .ant-select-selection { - background: @tree-hover-font-color; -}