65 lines
1.4 KiB
PHP
65 lines
1.4 KiB
PHP
|
|
export default class Helper {
|
|
getChildren(all, parent) {
|
|
let _this = this,
|
|
arr = [],
|
|
isBreak = false,
|
|
firstTr;
|
|
|
|
all.each(function (_, v) {
|
|
// 过滤非tr标签
|
|
if (! _this.isTr(v) || isBreak) return;
|
|
|
|
firstTr || (firstTr = $(v));
|
|
|
|
// 非连续的子节点
|
|
if (firstTr && ! _this.isChildren(parent, firstTr)) {
|
|
return;
|
|
}
|
|
|
|
if (_this.isChildren(parent, v)) {
|
|
arr.push(v)
|
|
} else {
|
|
isBreak = true;
|
|
}
|
|
});
|
|
|
|
return arr;
|
|
}
|
|
|
|
swapable(_o, depth) {
|
|
if (
|
|
_o
|
|
&& _o.length
|
|
&& depth === this.getDepth(_o)
|
|
) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
sibling(all, depth) {
|
|
let _this = this,
|
|
next;
|
|
|
|
all.each(function (_, v) {
|
|
if (_this.getDepth(v) === depth && ! next && _this.isTr(v)) {
|
|
next = $(v);
|
|
}
|
|
});
|
|
|
|
return next;
|
|
}
|
|
|
|
isChildren(parent, child) {
|
|
return this.getDepth(child) > this.getDepth(parent);
|
|
}
|
|
|
|
getDepth(v) {
|
|
return parseInt($(v).data('depth') || 0);
|
|
}
|
|
|
|
isTr(v) {
|
|
return $(v).prop('tagName').toLocaleLowerCase() === 'tr'
|
|
}
|
|
}
|