operation.js
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { Message } from "element-ui";
export function removeTreeListItem (treeList, dictId, idName = 'bsmDict') {
if (!treeList || !treeList.length) {
return
}
for (let i = 0; i < treeList.length; i++) {
if (treeList[i][idName] === dictId) {
treeList.splice(i, 1);
break;
}
removeTreeListItem(treeList[i].children, dictId)
}
}
// 创造id
export function getUuid (len, radix) {
var chars = "0123456789abcdefghijklmnopqrstuvwxyz".split(
""
);
var uuid = [],
i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
uuid[14] = "4";
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | (Math.random() * 16);
uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join("");
}
export function judgeSort (arr) {
if (arr.length) {
for (let i in arr) {
arr[i]["isTop"] = false;
arr[i]["isBottom"] = false;
arr[i] == arr[0] && (arr[i].isTop = true);
arr[i] == arr[arr.length - 1] && (arr[i].isBottom = true);
arr[i].children && arr[i].children.length && judgeSort(arr[i].children)
}
}
return arr
}
// 上下移动
export function realMove (bsmDict, operate, data) {
function changeSort (arr, bsmDict) {
if (arr.length) {
let flag = false;
for (let i in arr) {
if (arr[i].bsmDict == bsmDict) {
if (operate === "UP") {
arr[i] = arr.splice(i - 1, 1, arr[i])[0];
} else if (operate === "DOWN") {
let temp = arr.splice(i - 0 + 1, 1, arr[i])
arr[i] = temp[0];
}
flag = true;
break;
}
if (!flag && arr[i].children && arr[i].children.length) {
arr[i].children = changeSort(arr[i].children, bsmDict);
}
}
}
return arr;
}
data = judgeSort(changeSort(data, bsmDict));
}
// 获取所有父节点
export function findParents (treeData, bsmDict) {
if (treeData.length == 0) return
for (let i = 0; i < treeData.length; i++) {
if (treeData[i].bsmDict == bsmDict) {
return []
} else {
if (treeData[i].children) {
let res = findParents(treeData[i].children, bsmDict)
if (res !== undefined) {
return res.concat(treeData[i].bsmDict)
}
}
}
}
}
// 上移下移
export function upward (index, data) {
if (index > 0) {
let upData = data[index - 1];
data.splice(index - 1, 1);
data.splice(index, 0, upData);
} else {
Message({
message: '已经是第一条,上移失败'
});
}
}
export function down (index, data) {
if ((index + 1) == data.length) {
Message({
message: '已经是最后一条,下移失败'
});
} else {
let downData = data[index + 1];
data.splice(index + 1, 1);
data.splice(index, 0, downData);
}
}