Newer
Older
operation_web / src / util / utils.js
@朱忠杰 朱忠杰 on 21 Jan 2021 3 KB 过滤器
export default {
  /**
   * 将部门数据构造成树形结构
   * @param {Array} data 数据源
   * @param {String} id
   * @param {String} parentId 父节点字段
   * @param {String} children 子节点字段
   * @param {String} rootId 根结点ID
   * @return {Array} treeData
   * */
  handleTree(data, id, parentId, children, rootId) {
    id = id || "id";
    parentId = parentId || "parentId";
    children = children || "children";
    rootId = rootId || "0";
    let cloneData = JSON.parse(JSON.stringify(data));
    let treeData = cloneData.filter(parent => {
      let childArr = cloneData.filter(child => {
        //返回每一项的子级数组
        return parent[id] === child[parentId];
      });
      childArr = childArr.sort((a, b) => a.priority - b.priority);
      childArr.length > 0 ? (parent.children = childArr) : "";
      //返回第一层
      return parent[parentId] === rootId;
    });
    return treeData != "" ? treeData : data;
  },
  /**
   * 传入时间戳,转换指定的时间格式
   * @param {Number} val      时间戳
   * @param {String} dateType 要得到的时间格式 例如 YYYY-MM-DD hh:mm:ss
   * @return dataStr 例如 YYYY-MM-DD hh:mm:ss
   */
  switchTime: (val = +new Date(), dateType = "YYYY-MM-DD hh:mm:ss") => {
    // 将字符串转换成数字
    const timeStamp = +new Date(val);
    // 如果转换成数字出错
    if (!timeStamp) {
      return val;
    }
    let str;
    // 得到时间字符串
    const dateStr = new Date(timeStamp);
    str = dateType.replace("YYYY", dateStr.getFullYear());
    str = str.replace(
      "MM",
      (dateStr.getMonth() + 1 < 10 ? "0" : "") + (dateStr.getMonth() + 1)
    );
    str = str.replace(
      "DD",
      (dateStr.getDate() < 10 ? "0" : "") + dateStr.getDate()
    );
    str = str.replace(
      "hh",
      (dateStr.getHours() < 10 ? "0" : "") + dateStr.getHours()
    );
    str = str.replace(
      "mm",
      (dateStr.getMinutes() < 10 ? "0" : "") + dateStr.getMinutes()
    );
    str = str.replace(
      "ss",
      (dateStr.getSeconds() < 10 ? "0" : "") + dateStr.getSeconds()
    );

    return str;
  },
  /**
   * 传入属性、值、类型,保存数据到本地
   * @param {String} key 保存到本地的属性名
   * @param {String} value  保存到本地的值
   * @param {String} type 保存到本地的类型
   */
  setLocalStore(key, value, type) {
    if (!key) return;
    if (type === "jsonStr") {
      value = JSON.stringify(value);
    }
    localStorage.setItem(key, value);
  },
  /**
   * 传入属性、类型,取出保存到本地的数据
   * @param {String} key 保存到本地的属性名
   * @param {String} type 保存到本地的类型
   */
  getLocalStore(key, type) {
    if (!localStorage.getItem(key)) return;
    if (type === "jsonStr") {
      return JSON.parse(localStorage.getItem(key));
    }
    return localStorage.getItem(key);
  },
  /**
   * 传入属性名,移除保存到本地的数据
   * @param {String} key 保存到本地的属性名
   */
  removeLocalStore(key) {
    if (!key) return;
    return localStorage.removeItem(key);
  }
};