commit:升级到vue3,更新最近工作流技术栈,支持sa-token

This commit is contained in:
Jerry
2024-07-05 22:42:33 +08:00
parent bbcc608584
commit 565ecb6371
1751 changed files with 236790 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
import { UserInfo } from '@/types/upms/user';
import { MenuItem } from '@/types/upms/menu';
import { SysMenuBindType } from '@/common/staticDict';
function processMenu(item: MenuItem): void {
if (item == null) return;
if (item.extraData != null && item.extraData !== '') {
const extraData = JSON.parse(item.extraData);
delete item.extraData;
item.bindType = extraData.bindType || item.bindType;
item.onlineFormId = extraData.onlineFormId || item.onlineFormId;
item.onlineFlowEntryId = extraData.onlineFlowEntryId || item.onlineFlowEntryId;
item.reportPageId = extraData.reportPageId || item.reportPageId;
item.formRouterName = extraData.formRouterName || item.formRouterName;
item.targetUrl = extraData.targetUrl;
}
if (item.bindType == null) {
if (item.onlineFlowEntryId != null) {
item.bindType = SysMenuBindType.WORK_ORDER;
} else if (item.reportPageId != null) {
item.bindType = SysMenuBindType.REPORT;
} else if (item.targetUrl != null) {
item.bindType = SysMenuBindType.THRID_URL;
} else {
item.bindType =
item.onlineFormId == null ? SysMenuBindType.ROUTER : SysMenuBindType.ONLINE_FORM;
}
}
if (item.children && item.children.length > 0) {
item.children.forEach(item => {
processMenu(item);
});
}
}
/**
* 从给定的数据中找到ID对应的菜单
*
* @param id 目标ID
* @param menuList 源数据列表
* @returns 目标对象ID相同
*/
function findMenuItemById(id: string, menuList: Array<MenuItem>): MenuItem | null {
if (menuList != null && menuList.length > 0) {
for (const menu of menuList) {
if (menu.menuId == id) {
return menu;
} else if (menu.children != null) {
const item = findMenuItemById(id, menu.children);
if (item != null) {
return item;
}
}
}
}
return null;
}
/**
* 寻找目标菜单,压入全路径
*
* @param menuItem 父级菜单
* @param menuId 目标ID
* @param path 父子菜单集合(全路径)
* @returns 目标菜单
*/
function findMenuItem(menuItem: MenuItem, menuId: string, path: MenuItem[]): MenuItem | null {
path.push(menuItem);
if (menuItem.menuId == menuId) {
return menuItem;
}
let findItem: MenuItem | null = null;
if (Array.isArray(menuItem.children)) {
for (let i = 0; i < menuItem.children.length; i++) {
findItem = findMenuItem(menuItem.children[i], menuId, path);
if (findItem != null) {
break;
}
}
}
// 没有找到目标,弹出之前压入的菜单
if (findItem == null) {
path.pop();
}
return findItem;
}
function initUserInfo(userInfo: UserInfo) {
if (userInfo != null && userInfo.headImageUrl != null && userInfo.headImageUrl !== '') {
try {
userInfo.headImageUrl = JSON.parse(userInfo.headImageUrl);
if (Array.isArray(userInfo.headImageUrl)) {
userInfo.headImageUrl = userInfo.headImageUrl[0];
} else {
userInfo.headImageUrl = null;
}
} catch (e) {
console.error('解析头像数据失败!', e);
userInfo.headImageUrl = null;
}
} else {
if (userInfo) userInfo.headImageUrl = null;
}
return userInfo;
}
export { processMenu, findMenuItem, initUserInfo, findMenuItemById };