TreeSelect关于树的渲染

//父节点
  renderTreeNode(orgtree) {
    let treeNode = [];
    orgtree.map((ele, index) => {
      treeNode.push(
        <TreeNode value={ele.id} title={ele.name} key={ele.code} disabled>
          {this.renderChildOne(ele)}
        </TreeNode>
      )
    })
    return treeNode;
  };
  //一级子节点
  renderChildOne(ele) {
    let childLevel1 = [];
    if(ele.data){
      ele.data.map((ele, index) => {
        childLevel1.push(
          <TreeNode value={ele.id} title={ele.name} key={ele.id} disabled={ele.children?true:false}>
            {this.renderChildTwo(ele)}
          </TreeNode>
        )
      })
    }
    return childLevel1;
  };
  //二级子节点
  renderChildTwo(ele){
    let childLevel2 = [];
     if (ele.children) {
      ele.children.map((ele, index) => {
        childLevel2.push(
          <TreeNode value={ele.id} title={ele.name} key={ele.id}>
          </TreeNode>
        )
      })
    }
    return childLevel2;
  }
 <TreeSelect
                  showSearch
                  treeNodeFilterProp="title"
                  style={
   
   { width: '80%', minWidth: '180px' }}
                  dropdownStyle={
   
   { maxHeight: 400, overflow: 'auto' }}
                  placeholder={intl.get('Please_Select')}
                  allowClear
                  multiple
                  treeDefaultExpandAll
                  onChange={this.onChange.bind(this)}
                  value={this.props.store.editRowData.orgArr.slice()}
                >
                  {
                    //this.renderTreeNode(this.props.store.orgTree)
                    this.renderTreeNode(this.props.store.scopeAapplicationTree)
                  }
                </TreeSelect>

本质是递归,后续可再优化下

猜你喜欢

转载自blog.csdn.net/weixin_41606276/article/details/104388549