import SystemLayer from "../systemLayer";
|
import {Button, Popconfirm, Tree} from "antd";
|
import React from "react";
|
import EditLayerForm from "../forms/edit-layer-form";
|
import {formatNode, getRoot} from "../../../api/hierarchy";
|
|
class LayerTree extends SystemLayer {
|
|
getRoot = async () => {
|
const result = await getRoot({id: this.props.hierarchyId})
|
if (result.data.status === 'OK') {
|
this.setState({
|
treeList: formatNode(result.data.data.root.children)
|
})
|
}
|
}
|
|
reloadEntities() {
|
// 这里数据的组织形式和其他的不一样,需要特殊处理
|
this.getRoot()
|
}
|
|
handleTreeSelect = (selectedKeys, info) => {
|
let selectedData = selectedKeys.length > 0 ? info.node.props.data : null
|
this.setState({
|
selectedNode: selectedData
|
})
|
if(selectedData) {
|
this.handleListBodyChange('parentPath', selectedData.path)
|
}
|
|
this.props.onSelect(selectedData)
|
};
|
|
handleEditNode = () => {
|
if(!this.state.selectedNode) {
|
return
|
}
|
this.setState({
|
currentRowData: this.state.selectedNode,
|
editModalVisible: true
|
})
|
}
|
|
handleDeleteNode = () => {
|
this.handleDeleteEntity(this.state.selectedNode)
|
this.setState({
|
selectedNode: null
|
}, () => {
|
this.props.onSelect()
|
})
|
}
|
|
// add
|
|
initView() {
|
this.hierarchyId = this.props.hierarchyId
|
super.initView();
|
|
this.setState({
|
selectedNode: null
|
})
|
}
|
|
render() {
|
return (
|
<div>
|
<div className="flex" hidden={!this.props.enableEdit}>
|
<Button onClick={this.handleAddEntity}>添加类别</Button>
|
<Button disabled={!this.state.selectedNode} onClick={this.handleEditNode} icon="edit">修改</Button>
|
<Popconfirm
|
placement="topLeft"
|
title={'确定要删除吗?'}
|
onConfirm={this.handleDeleteNode}
|
okText="是"
|
cancelText="否"
|
>
|
<Button disabled={!this.state.selectedNode} icon="delete" title="删除">删除</Button>
|
</Popconfirm>
|
</div>
|
<Tree
|
treeData={this.state.treeList}
|
onSelect={this.handleTreeSelect}
|
multiple={false}
|
>
|
</Tree>
|
<EditLayerForm
|
currentRowData={this.state.currentRowData}
|
wrappedComponentRef={formRef => this.editFormRef = formRef}
|
visible={this.state.editModalVisible}
|
confirmLoading={this.state.editModalLoading}
|
onCancel={this.handleEditEntityCancel}
|
onOk={this.handleEditEntityOk}/>
|
|
</div>
|
)
|
}
|
}
|
|
export default LayerTree;
|