当你想使用这个组件的时候,但是你点击一级树的时候调用一个接口,点击二级树的时候在调用另一个接口,那你就需要在点击一级节点的时候不用调用二级节点。那需要怎么做的,说一下我的思路,如果大家有别的更简单的方法,欢迎评论留言呐。
因为人家组件自带的方法expand有自带的参数,有一个node,node是一个对象,对象里面有一个pos的字符串,我就是判断的那个,用正则表达式匹配如果是0-0~0-9999的时候调用一级节点,如果是0-0-0的时候调用二级。

let reg = /^0-[0-99999]+$/; // 匹配的是0-0~0-9999
let isTrue = reg.test(node.pos); // 返回的是true或者false
onExpand(expandedKeys,{expanded: bool, node}) {
	// 判断isTrue
	expandedKeys.forEach((keyItem,keyIndex) => {
		if (isTrue) {
		// 这儿的判断是因为我点击的时候回重复push到里面title和key
			if (keyItem === node.eventKey) {
				// 写自己的逻辑代码 调用一级接口(一级节点)
				// push需要的对象 判断node.eventKey和节点key的值是否相等,相等的话再把数据添加到节点的children
			}
			} else {
			// 写自己的逻辑代码 调用二级接口(二级节点)
			}
		}
	};

当你想自己添加一个全选按钮节点的时候

 this.xmArr = [{
    checkable: true,
    title: '全选',
    children:[]
  }]
  res.result.forEach((xmItem,xmIndex) => {//6
  	// 因为这个全选就一个,你需要的是底下的children里面的数据所以[0]就可以xmArr[0].children
  this.xmArr[0].children.push({
    title: xmItem.jcdmc,
    key: xmItem.id,
  })
})
Logo

前往低代码交流专区

更多推荐