diff --git a/packages/renderless/src/dialog-select/index.ts b/packages/renderless/src/dialog-select/index.ts index 3984ef8a1c..a971efbfe8 100644 --- a/packages/renderless/src/dialog-select/index.ts +++ b/packages/renderless/src/dialog-select/index.ts @@ -300,7 +300,7 @@ const getTreeRadio = (vm) => { const currentRadio = vm.$refs.multiTree.state.currentRadio const plainNode = find(plainNodes, (plainNode) => plainNode.node.id === currentRadio.value) - return [plainNode.node.data] + return plainNode?.node ? [plainNode.node.data] : [] } export const multiTreeCheck = diff --git a/packages/renderless/src/tree/index.ts b/packages/renderless/src/tree/index.ts index 68b91973bf..c9150134ef 100644 --- a/packages/renderless/src/tree/index.ts +++ b/packages/renderless/src/tree/index.ts @@ -268,6 +268,27 @@ export const dragEnd = dragState.showDropIndicator = false } +const afterLoadHandler = + ({ state, emit, props, api }) => + (params) => { + const { lazy, afterLoad, showRadio } = props + state.loaded = true + if (lazy) { + if (state.root) { + state.root.childNodes = [...state.root.childNodes] + } + + if (showRadio) { + api.setCurrentRadio() + } + } + emit('load-data', params) + + if (typeof afterLoad === 'function') { + afterLoad(params) + } + } + export const initTreeStore = ({ api, props, state, emit }) => () => { @@ -280,12 +301,7 @@ export const initTreeStore = lazy, props: props.props, load, - afterLoad(params) { - !state.loaded && (state.loaded = true) - lazy && state.root && (state.root.childNodes = [...state.root.childNodes]) - emit('load-data', params) - afterLoad && afterLoad(params) - }, + afterLoad: afterLoadHandler({ api, emit, props, state }), currentNodeKey, checkStrictly, checkDescendants, diff --git a/packages/theme/src/tree-menu/vars.less b/packages/theme/src/tree-menu/vars.less index 0f7b0773a9..3a8d1969ce 100644 --- a/packages/theme/src/tree-menu/vars.less +++ b/packages/theme/src/tree-menu/vars.less @@ -38,5 +38,5 @@ // 节点序号字号 --tree-menu-node-number-font-size: var(--ti-common-font-size-base); // 活跃节点竖线与文本的间距 - --tree-menu-node-vertical-line-margin-right: var(--ti-common-size-5x); + --tree-menu-node-vertical-line-margin-right: var(--ti-common-size-4x); } diff --git a/packages/theme/src/tree/index.less b/packages/theme/src/tree/index.less index a233989a47..731ba95eb1 100644 --- a/packages/theme/src/tree/index.less +++ b/packages/theme/src/tree/index.less @@ -313,11 +313,6 @@ } } - &.is-root { - .@{tree-node-prefix-cls}__content-box { - padding-left: 0; - } - } &.is-leaf:not(.is-root) { .@{tree-node-prefix-cls}__content { @@ -354,7 +349,7 @@ } } - & label.@{css-prefix}checkbox { + & label.@{css-prefix}checkbox, .@{css-prefix}radio { margin: 0 calc(var(--ti-tree-node-label-margin-left) / 2); } @@ -478,8 +473,6 @@ } .@{radio-prefix-cls} { - margin-right: 0; - .@{radio-prefix-cls}__label { display: none; }