fix(tree-select): After deleting the last child node of the parent node, another child node is selected. #3508 #3586 (#4047)

pull/4072/head
chencc 4 years ago committed by GitHub
parent b7783aeb1d
commit 5917df205c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -874,12 +874,24 @@ const Select = defineComponent({
}, },
onSearchInputKeyDown(event) { onSearchInputKeyDown(event) {
const { _searchValue: searchValue, _valueList: valueList } = this.$data; const { _searchValue: searchValue, _valueList: valueList, _valueEntities: valueEntities } = this.$data;
const { keyCode } = event; const { keyCode } = event;
if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) { if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {
const lastValue = valueList[valueList.length - 1].value; let lastValue = valueList[valueList.length - 1].value;
const { treeCheckStrictly } = this.$props;
if(!treeCheckStrictly) {
let cur = valueEntities[lastValue];
while(cur) {
if(valueList.some(j => j.value === cur.value)) {
lastValue = cur.value;
cur = cur.parent;
}else{
cur = null
}
}
}
this.onMultipleSelectorRemove(event, lastValue); this.onMultipleSelectorRemove(event, lastValue);
} }
}, },

Loading…
Cancel
Save