验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

element-ui select多选绑定回显值问题怎么解决

阅读:787 来源:乙速云 作者:代码code

element-ui select多选绑定回显值问题怎么解决

      element-ui select多选绑定回显值

      element-ui select多选绑定回显值问题怎么解决

      这是要最后实现的效果。

       
      	
      	   
      	
      

      unitName 绑定的值是一个数组,jzmcOption是根据接口查出来的下拉框的数据。

      后台要接收的是一个逗号分隔开的字符串,要接收id值和name值

      unitName:[],
      jzmcOption:[],
        unitChange(val) {
            console.log(val);
            let str = val.join(',');
            let name = '';
            this.jzmcOption.map((v, i) => {
              val.map((a, b) => {
                if (a == v.unitId) {
                  name += ',' + v.unitName;
                }
              });
            });
            name = name.substring(1);
            this.jydyForm.unitName = name;
            this.jydyForm.unitId = str;
          },

      element-ui select多选绑定回显值问题怎么解决

      这个是下拉框数据变化时获取到的数据。

      在jzmcOption里找到他的name值拼起来用逗号隔开。

      回显部分,逻辑是已经选中过的值,后台不会再返回了,所以我们需要将现在已经选中的数据跟后台查出来的数据拼起来,组成编辑时可选的新的下拉框。

          // 查看 编辑
          handleCheckLxr(row, status) {   
            //将id值赋值给下拉框绑定的值
            this.unitName = this.jydyForm.unitId.split(',');      
      
            let i = this.jydyForm.unitId.split(',');
            let n = this.jydyForm.unitName.split(',');
            let list = [];
            i.map((v, i) => {
              list.push({ unitId: v, unitName: n[i] });
            });
            
            this.jzmcOption = [];
            getChooseByCustomerId(this.currentCustomerId).then(res => {
              
              if (res.rel) {
                let list_o = res.data.rows;
                this.jzmcOption = [...list_o,...list];        
              }
            });
          },

      回显时可能会遇到已经选中的值,没有在下拉数据中选择,可能是数据类型的问题,需要处理下。

      element-ui下拉多选数据回显时无法进行修改

      解决方案

      在el-select添加@change事件,执行强制刷新this.$forceUpdate()。

      示例:

      ...
      selectChangeHandle(){
          this.$forceUpdate()
      }
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>