Blame view

src/utils/operation.js 3.68 KB
任超 committed
1
import { Message } from "element-ui";
renchao@pashanhoo.com committed
2
export function removeTreeListItem (treeList, dictId, idName = 'dictid') {
任超 committed
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
  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) {
任超 committed
55
        if (arr[i].dictid == bsmDict) {
任超 committed
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
          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);
  }
yangwei committed
112 113
}

任超 committed
114 115 116
export function timeFormat (date, end) {
  if (!date || typeof (date) === "string") {
    this.error("参数异常,请检查...");
yangwei committed
117 118 119
  }
  var y = date.getFullYear(); //年
  var m = date.getMonth() + 1; //月
yangwei committed
120
  m < 10 && (m = '0' + m)
yangwei committed
121
  var d = date.getDate(); //日
yangwei committed
122
  d < 10 && (d = '0' + d)
yangwei committed
123
  if (end) {
124
    return y + "-" + m + "-" + d + ' 23:59:59';
任超 committed
125
  } else {
126
    return y + "-" + m + "-" + d + ' 00:00:00';
yangwei committed
127
  }
yangwei committed
128 129 130 131
}
export function getFirstDayOfSeason (d) {
  let date = d || new Date()
  var month = date.getMonth();
任超 committed
132 133 134 135 136 137 138 139
  if (month < 3) {
    date.setMonth(0);
  } else if (2 < month && month < 6) {
    date.setMonth(3);
  } else if (5 < month && month < 9) {
    date.setMonth(6);
  } else if (8 < month && month < 11) {
    date.setMonth(9);
yangwei committed
140 141 142
  }
  date.setDate(1);
  return timeFormat(date);
143
}