antd的tree组件使用默认选中以及渲染数据

这个tree是在modal里面的 由外部table操作showModifyModal 打开

  <a-tree
  checkable
  :tree-data="treeData"
  v-model:expandedKeys="expandedKeys"
  v-model:selectedKeys="selectedKeys"
  v-model:checkedKeys="checkedKeysM"
  :auto-expand-parent="autoExpandParent"
  @check="onSelectChange"
  :replaceFields="{
    title: 'name'
  }"
>
</a-tree>

因为后台获取到的数据包中 是name 根据antd官方案例更换名字为title

其中v-model的数据都是通过ref

const expandedKeys = ref([])
const selectedKeys = ref([])
let checkedKeysM = ref([])

const不可变 let可变
在这里插入图片描述
将获取到的数据进行处理

const showModifyModal = record => { //显示弹框
  menuQuery()   //获取到弹框中的数据并填充
    .then(rstData => {
      state.treeData = rstData
    })
    .catch(err => {
      console.log('errorMsg:', err)
    })
  // checkedKeysM.splice(0, checkedKeysM.length)
  let test = []
  state.showModify = true
  state.modifyInfo.id = record.id
  state.modifyInfo.roleName = record.roleName

  for (var i = 0; i < record.menus.length; i++) {
    if (record.menus[i].menuFatherKey !== null) {
      var tem = ''
      tem = record.menus[i].menuKey
      test.push(tem)
    }
    checkedKeysM.value = test
  }
}

把用户所拥有权限添加到checkedKeysM中

const onSelectChange = (selectedKeys, info) => {
  let checkedKey = [...selectedKeys, ...info.halfCheckedKeys]
  //因为只赋值selectedkeys会导致没有全选的部分无法正常传递所以要加halfcheckedkeys
  temp = checkedKey
  console.log(temp)
}

这样新增的选项可以发送给后台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值