Blame view

src/utils/operation.js 2.9 KB
任超 committed
1
import { Message } from "element-ui";
任超 committed
2 3 4 5 6 7 8 9 10 11 12 13
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)
  }
}
任超 committed
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
// 创造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("");
}
任超 committed
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
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)
        }
      }
    }
  }
}
任超 committed
90 91 92 93 94 95 96 97
// 上移下移
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({
98
      message: '已经是第一条,上移失败'
任超 committed
99 100 101 102 103 104
    });
  }
}
export function down (index, data) {
  if ((index + 1) == data.length) {
    Message({
105
      message: '已经是最后一条,下移失败'
任超 committed
106 107 108 109 110 111 112
    });
  } else {
    let downData = data[index + 1];
    data.splice(index + 1, 1);
    data.splice(index, 0, downData);
  }
}