Newer
Older
operation_web / src / util / utils.js
@田松 田松 on 11 Jan 2021 2 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);
  }
}