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); } }