
enditTreeNode: false, //编辑删除弹框
editTreeId: '', //当前选中id
class dataGatewayView extends dataGatewayController {
//点击省略号弹出弹框
nodeToDo = (data) => {
const {enditTreeNode, editTreeId} = this.state;
if (data.id == editTreeId && enditTreeNode) {
this.setState({
enditTreeNode: !enditTreeNode,
})
} else {
this.setState({
enditTreeNode: enditTreeNode ? enditTreeNode :!enditTreeNode,
editTreeId: data.id
})
}
}
//关闭弹框
closeNodeToDo = () => {
this.setState({
enditTreeNode: false
})
}
render() {
const { TabPane } = Tabs;
const {enditTreeNode, editTreeId, tabsText, currentTabs} = this.state;
const renderEntityTreeNodes = data => {
return data.map(item => {
const title = (
<div className="tree-item" style={{ width: '150px', display: 'flex', alignItems: 'center', justifyContent: 'space-between'}}>
<span style={{width: '80%'}} onClick={() => this.handleTreeSelect(item)}><Icon type="gateway" /> {`${item.title}`}</span>
<div>
<span style={{padding: '0 5px', userSelect: 'none'}} onClick={() => this.nodeToDo(item)}>{item.children ? '' : '...'}</span>
<span style={{padding: '0 5px', userSelect: 'none'}}>{item.children ? `(${item.children.length})` : ''}</span>
{ enditTreeNode && item.id == editTreeId ?
<div style={{position: 'absolute'}}>
<div className="tree-item-last-after" onClick={(e) =>this.editTreeNode(e, item)}>
编辑
</div>
<div className="tree-item-last-before" onClick={(e) => this.deleteTreeNode(e, item)}>
删除
</div>
</div>
: ''}
</div>
</div>
);
if (item.children) {
const result = (
<Tree.TreeNode {...item} key={item.key} title={title}>
{renderEntityTreeNodes(item.children)}
</Tree.TreeNode>
);
return result;
}
return <Tree.TreeNode {...item} key={item.key} title={title} />;
});
};
return (
<div className="data-dictionary" style={{height: '100%', overflow: 'scroll'}}>
<Row>
<Col span={6} className="data-dictionary-left">
{/* tab栏选择 */}
<div className="tabs-all">
{
tabsText.map((t, i) => {
return (
<div className="tabs-item" style={currentTabs == t.num ? {backgroundColor: '#169BD5', color: '#fff'} : {}} onClick={() =>this.tabHandle(t.num)}>{t.value}({t.total})</div>
)
})
}
</div>
<div className="tree-content-scroll" style={{position: 'relative',}}>
<Tree showIcon={true} autoExpandParent defaultExpandAll defaultExpandParent>{renderEntityTreeNodes(this.state.menuTreeData)}</Tree>
</div>
</Col>
<Col span={18} className="data-dictionary-right" onClick={this.closeNodeToDo}>
</Col>
</Row>
</div>
);
}
}