ElemeFE / element

A Vue.js 2.0 UI Toolkit for Web
https://element.eleme.io/
MIT License
54.13k stars 14.64k forks source link

[Feature Request] 述求:el-select能否增加选项选中前(beforeSelected)这样的钩子函数? #21834

Open alex1504 opened 2 years ago

alex1504 commented 2 years ago

Existing Component

Component Name

el-select

Description

在业务中遇到述求,选中select的一项时,需要调用接口和校验判断此项是否有效,如果无效则还原先前的选择。目前做法是在el-select暴露的change事件中处理,但会有问题是当接口有延时的时候,页面ui展现是先选中点击项后再恢复先前的选项,change事件内部无论如何都是先选中了再判断逻辑,是否考虑支持beforeSelect的hook?

alex1504 commented 2 years ago
// packages/select/src/option.vue

selectOptionClick() {
  if (this.disabled !== true && this.groupDisabled !== true) {
     // call hook 'beforeSelected' and then dispatch?

     this.dispatch('ElSelect', 'handleOptionClick', [this, true]);
   }
}
LSL1618 commented 2 years ago

建议在选项数据准备阶段处理好数据,或者保存的时候统一校验选中数据。

Montaro2017 commented 2 years ago

用户选择了某项之后你把选择给改了,这不会很奇怪吗,要么不让选,要么选完后提示

alex1504 commented 2 years ago

例如:选择某个仓库后需要调用库存中心接口实时查库存,没有则message toast提示并不做选中处理