a-tree-select组件@change事件中获取到原数组中的其他属性

 场景:页面上展示一个a-tree-select组件,但是我需要再change变动时获取到gateway

我的源数据:

//locationList数据格式
locationList:[

{
value:'xxxxxxxxxxxx',
key:'xxxxxxxxxxxxxxx',
title:'xxxxxxxxxxxxxx',
gateway:'xxxxxxxxxx',
children:[]
},

{
value:'xxxxxxxxxxxx',
key:'xxxxxxxxxxxxxxx',
title:'xxxxxxxxxxxxxx',
gateway:'xxxxxxxxxx'
}

]

方法有两种:

1、使用:replace-fields替换为想要的gateway,在change事件触发时,通过value就拿到了gateway,

但是这种方式有一个局限性:gatwway必须为唯一的值,不能与其他项的gateway重复。

:replace-fields="{
value: 'gateway',
label: 'title'
}"
    // 空间改变
    treeSelectChange(value, label, extra) {
      console.log('value',value)
    },

 

 2、使用 change的参数extra获取,具体方法:extra.triggerNode.$vnode.data.props.gateway

(由于,我的数据中gateway可能为空也可能重复,所以使用方法一会报错,所以我使用的是方法2.)

   <a-tree-select
      v-model="locationId"
      @change="treeSelectChange"
      style="width: 100%"
      :tree-data="locationList"
      placeholder="空间选择"
      search-placeholder="空间选择"
      show-search
      tree-node-filter-prop="title"
    />
    // 空间改变
    treeSelectChange(value, label, extra) {
      console.log(
        ' extra.triggerNode.$vnode.data.props.value',
        extra.triggerNode.$vnode.data.props,
        extra.triggerNode.$vnode.data.props.gateway
      )
// extra.triggerNode.$vnode.data.props获取到选中项的所有属性
// extra.triggerNode.$vnode.data.props.gateway拿到想要的gateway属性

      this.queryParam.gatewayId = extra.triggerNode.$vnode.data.props.gateway//将gateway保存起来
    },

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几个高兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值