Skip to content

Commit dc56c46

Browse files
cs1707abigail-0111
authored andcommitted
Cascader: fix delete tag bug (ElemeFE#20939)
1 parent e5ce102 commit dc56c46

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

packages/cascader/src/cascader.vue

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444

4545
<div v-if="multiple" class="el-cascader__tags">
4646
<el-tag
47-
v-for="(tag, index) in presentTags"
47+
v-for="tag in presentTags"
4848
:key="tag.key"
4949
type="info"
5050
:size="tagSize"
5151
:hit="tag.hitState"
5252
:closable="tag.closable"
5353
disable-transitions
54-
@close="deleteTag(index)">
54+
@close="deleteTag(tag)">
5555
<span>{{ tag.text }}</span>
5656
</el-tag>
5757
<input
@@ -588,7 +588,7 @@ export default {
588588
589589
if (this.pressDeleteCount) {
590590
if (lastTag.hitState) {
591-
this.deleteTag(lastIndex);
591+
this.deleteTag(lastTag);
592592
} else {
593593
lastTag.hitState = true;
594594
}
@@ -607,10 +607,11 @@ export default {
607607
this.toggleDropDownVisible(false);
608608
}
609609
},
610-
deleteTag(index) {
610+
deleteTag(tag) {
611611
const { checkedValue } = this;
612-
const val = checkedValue[index];
613-
this.checkedValue = checkedValue.filter((n, i) => i !== index);
612+
const current = tag.node.getValueByOption();
613+
const val = checkedValue.find(n => isEqual(n, current));
614+
this.checkedValue = checkedValue.filter(n => !isEqual(n, current));
614615
this.$emit('remove-tag', val);
615616
},
616617
updateStyle() {

0 commit comments

Comments
 (0)