mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-24 11:10:01 +08:00
update tree draggable demo
This commit is contained in:
parent
bd0ba8ce92
commit
bc35582643
@ -66,7 +66,7 @@ class Demo extends React.Component {
|
||||
const dragKey = info.dragNode.props.eventKey;
|
||||
const dropPos = info.node.props.pos.split('-');
|
||||
const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
|
||||
// const dragNodesKeys = info.dragNodesKeys;
|
||||
|
||||
const loop = (data, key, callback) => {
|
||||
data.forEach((item, index, arr) => {
|
||||
if (item.key === key) {
|
||||
@ -78,12 +78,32 @@ class Demo extends React.Component {
|
||||
});
|
||||
};
|
||||
const data = [...this.state.gData];
|
||||
|
||||
// Find dragObject
|
||||
let dragObj;
|
||||
loop(data, dragKey, (item, index, arr) => {
|
||||
arr.splice(index, 1);
|
||||
dragObj = item;
|
||||
});
|
||||
if (info.dropToGap) {
|
||||
|
||||
if (!info.dropToGap) {
|
||||
// Drop on the content
|
||||
loop(data, dropKey, (item) => {
|
||||
item.children = item.children || [];
|
||||
// where to insert 示例添加到尾部,可以是随意位置
|
||||
item.children.push(dragObj);
|
||||
});
|
||||
} else if (
|
||||
(info.node.props.children || []).length > 0 // Has children
|
||||
&& info.node.props.expanded // Is expanded
|
||||
&& dropPosition === 1 // On the bottom gap
|
||||
) {
|
||||
loop(data, dropKey, (item) => {
|
||||
item.children = item.children || [];
|
||||
// where to insert 示例添加到尾部,可以是随意位置
|
||||
item.children.unshift(dragObj);
|
||||
});
|
||||
} else {
|
||||
let ar;
|
||||
let i;
|
||||
loop(data, dropKey, (item, index, arr) => {
|
||||
@ -95,13 +115,8 @@ class Demo extends React.Component {
|
||||
} else {
|
||||
ar.splice(i + 1, 0, dragObj);
|
||||
}
|
||||
} else {
|
||||
loop(data, dropKey, (item) => {
|
||||
item.children = item.children || [];
|
||||
// where to insert 示例添加到尾部,可以是随意位置
|
||||
item.children.push(dragObj);
|
||||
});
|
||||
}
|
||||
|
||||
this.setState({
|
||||
gData: data,
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user