@@ -1810,7 +1810,23 @@ window.ComponentCascadeLine = class {
1810
1810
}
1811
1811
1812
1812
nodeMigrateExec ( node , node_data , aim_node , aim_node_data ) {
1813
+ let parents = aim_node_data . parentNodes . slice ( 0 ) ;
1814
+ parents . push ( aim_node_data . key ) ;
1815
+ node_data . parentNodes = parents ;
1816
+ let stack = aim_node_data . stack + 1 ;
1817
+ let diffStack = stack - node_data . stack ;
1818
+ let index = parseInt ( node . getAttribute ( 'data-k' ) ) ;
1819
+ this . dimensional_data [ node_data . stack ] . splice ( index , 1 ) ;
1820
+ if ( ! Array . isArray ( this . dimensional_data [ stack ] ) ) this . dimensional_data [ stack ] = [ ] ;
1821
+ this . dimensional_data [ stack ] . push ( node_data ) ;
1822
+
1823
+ this . resetChildrenDimensional ( node_data , node_data . stack + 1 , diffStack ) ;
1824
+ node_data . stack = stack ;
1825
+ console . log ( this . dimensional_data )
1813
1826
1827
+ /*aim node*/
1828
+ if ( ! Array . isArray ( aim_node_data . nodes ) ) aim_node_data . nodes = [ ] ;
1829
+ aim_node_data . nodes . push ( node_data . key ) ;
1814
1830
}
1815
1831
1816
1832
nodeExchangeExec ( node , node_data , aim_node , aim_node_data ) {
@@ -1853,11 +1869,11 @@ window.ComponentCascadeLine = class {
1853
1869
aim_node . setAttribute ( 'data-id' , aim_node_data . key ) ;
1854
1870
}
1855
1871
1856
- resetChildrenParent ( node_data ) {
1857
- let stack = node_data . stack ;
1858
- let nodes = node_data . nodes ;
1859
- let parents = node_data . parentNodes . slice ( 0 ) ;
1860
- parents . push ( node_data . key ) ;
1872
+ resetChildrenParent ( node ) {
1873
+ let stack = node . stack ;
1874
+ let nodes = node . nodes ;
1875
+ let parents = node . parentNodes . slice ( 0 ) ;
1876
+ parents . push ( node . key ) ;
1861
1877
stack ++ ;
1862
1878
this . dimensional_data [ stack ] . forEach ( ( d ) => {
1863
1879
if ( nodes . indexOf ( d . key ) !== - 1 ) {
@@ -1868,4 +1884,26 @@ window.ComponentCascadeLine = class {
1868
1884
}
1869
1885
} ) ;
1870
1886
}
1887
+
1888
+ resetChildrenDimensional ( node , stack , diffStack ) {
1889
+ let nodes = node . nodes ;
1890
+ let parents = node . parentNodes . slice ( 0 ) ;
1891
+ parents . push ( node . key ) ;
1892
+ if ( ! Array . isArray ( this . dimensional_data [ stack ] ) ) return ;
1893
+ let indexes = [ ] ;
1894
+ this . dimensional_data [ stack ] . forEach ( ( d , index ) => {
1895
+ if ( Array . isArray ( nodes ) && nodes . indexOf ( d . key ) !== - 1 ) {
1896
+ indexes . push ( index ) ;
1897
+ d . parentNodes = parents ;
1898
+ d . stack = stack + diffStack ;
1899
+ if ( ! Array . isArray ( this . dimensional_data [ d . stack ] ) ) this . dimensional_data [ d . stack ] = [ ] ;
1900
+ this . dimensional_data [ d . stack ] . push ( d ) ;
1901
+ this . resetChildrenDimensional ( d , stack + 1 , diffStack ) ;
1902
+ }
1903
+ } ) ;
1904
+ indexes . reverse ( ) ;
1905
+ indexes . forEach ( ( d ) => {
1906
+ this . dimensional_data [ stack ] . splice ( d , 1 ) ;
1907
+ } ) ;
1908
+ }
1871
1909
} ;
0 commit comments