operation.js 4.62 KB
/*
 * @Description:
 * @Autor: renchao
 * @LastEditTime: 2023-05-11 16:31:01
 */
import { Message } from "element-ui";
/**
 * @description: removeTreeListItem
 * @param {*} treeList
 * @param {*} dictId
 * @param {*} idName
 * @author: renchao
 */
export function removeTreeListItem (treeList, dictId, idName = 'dictid') {
  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
/**
 * @description: 创造id
 * @param {*} len
 * @param {*} radix
 * @author: renchao
 */
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("");
}
/**
 * @description: judgeSort
 * @param {*} arr
 * @author: renchao
 */
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
}
// 上下移动
/**
 * @description: 上下移动
 * @param {*} bsmDict
 * @param {*} operate
 * @param {*} data
 * @author: renchao
 */
export function realMove (bsmDict, operate, data) {
  function changeSort (arr, bsmDict) {
    if (arr.length) {
      let flag = false;
      for (let i in arr) {
        if (arr[i].dictid == 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));
}
// 获取所有父节点
/**
 * @description: 获取所有父节点
 * @param {*} treeData
 * @param {*} bsmDict
 * @author: renchao
 */
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)
        }
      }
    }
  }
}
// 上移下移
/**
 * @description: 上移下移
 * @param {*} index
 * @param {*} data
 * @author: renchao
 */
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: '已经是第一条,上移失败'
    });
  }
}
/**
 * @description: down
 * @param {*} index
 * @param {*} data
 * @author: renchao
 */
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);
  }
}
/**
 * @description: timeFormat
 * @param {*} date
 * @param {*} end
 * @author: renchao
 */
export function timeFormat (date, end) {
  if (!date || typeof (date) === "string") {
    this.error("参数异常,请检查...");
  }
  var y = date.getFullYear(); //年
  var m = date.getMonth() + 1; //月
  m < 10 && (m = '0' + m)
  var d = date.getDate(); //日
  d < 10 && (d = '0' + d)
  if (end) {
    return y + "-" + m + "-" + d + ' 23:59:59';
  } else {
    return y + "-" + m + "-" + d + ' 00:00:00';
  }
}/**
 * @description: getFirstDayOfSeason
 * @param {*} d
 * @author: renchao
 */
export function getFirstDayOfSeason (d) {
  let date = d || new Date()
  var month = date.getMonth();
  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);
  }
  date.setDate(1);
  return timeFormat(date);
}