在select 中可以进行多选
选中一个,调保存接口,
移除一个,调删除接口,
editSelect(label, val) {
console.log(label);
this.oldLabels = label;
if (val === 'labels') {
const params = {
loginName: this.userInfo.loginName,
taskId: this.editTasks.taskId,
labelId: label[label.length - 1],
};
this.$api.Task.addLabel(params, (res) => {
if (res.code === 0) {
this.$emit('editSuccess', true);
} else {
this.$message.success(res.msg);
}
this.isaddLabels = false;
});
}
}
editSelect方法是绑定在change上的
<el-select class="label-select" multiple filterable
@remove-tag="removeLabels"
@change="((val)=>{editSelect(val, 'labels')})"
v-model="editTasks.form.labels">
<el-option
v-for="item in selectList.labelList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
:disabled="item.disabled"
>
</el-option>
</el-select>
移除的时候用的是removeLabels
// 移除标签
removeLabels(val) {
// eslint-disable-next-line no-debugger
debugger;
const params = {
loginName: this.userInfo.loginName,
taskId: this.editTasks.taskId,
labelId: val,
};
this.$api.Task.removeLabel(params, (res) => {
console.log(res);
if (res.success) {
this.$emit('editSuccess', true);
} else {
this.$message.error(res.msg);
}
});
},
现在的问题是 点击移除标签的时候会先去调change事件,然后在调移除事件,请问有没有什么方法在移除的时候阻止change事件呢
emmm 为什么要把保存事件和选中挂到一起?
可以分开啊,选中归选中,保存归保存,多整个按钮就好了
不要增加事件的复杂性