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