isdata-customer-sdk 0.2.17 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29844,8 +29844,11 @@ const getCurrentAppID = () => {
29844
29844
  * @returns
29845
29845
  */
29846
29846
  const getAppPortalMenuDatas = async (user_id, group_id, isPortalAction, appVariables) => {
29847
+ //获取门户应用ID
29847
29848
  let portal_app_id = getPoratlAppID();
29849
+ //获取当前用户在当前组织下的角色ID
29848
29850
  let roleList = await getRoleIDsByUserAndGroupID(user_id, portal_app_id, group_id);
29851
+ //获取当前组织下的门户菜单数据
29849
29852
  let portalMenuDatas = await getMenuDatasByGroupID(group_id, roleList);
29850
29853
  let app_id = window.appSdk.getAppId();
29851
29854
  let menuDatas = portalMenuDatas.filter(menuData => {
@@ -29893,32 +29896,52 @@ const getMenuDatasByGroupID = async (group_id, role_ids) => {
29893
29896
  let result = await request.post(`/dataservice/rest/orchestration/getMenuDatasByGroupID`, queryData_groupData);
29894
29897
  //所有的快捷访问菜单信息
29895
29898
  let portalMenuDatas = result.data.resultDatas;
29899
+ //所有的菜单类型
29896
29900
  let menuTypes = result.data.menuTypes;
29901
+ result = await request.post(`/dataservice/rest/orchestration/getPortalDefaultQuickMenus`, {});
29902
+ let defaultMenuDatas = result.data.resultDatas;
29903
+ let defaultMenuType = result.data.menuTypes;
29904
+ let tempMenuDatas = portalMenuDatas.concat(defaultMenuDatas);
29905
+ let tempMenuType = menuTypes.concat(defaultMenuType);
29906
+ let finalMenuDatas = [];
29907
+ let finaMenuTypes = [];
29908
+ let tempMap = {};
29909
+ //缓存所有快捷访问菜单信息
29910
+ for (const tempData of tempMenuDatas) {
29911
+ let id = tempData.id;
29912
+ if (!tempMap[id]) {
29913
+ finalMenuDatas.push(tempData);
29914
+ tempMap[id] = tempData;
29915
+ }
29916
+ }
29917
+ let tempTypeMap = {};
29918
+ //缓存所有菜单类型信息
29919
+ for (const tempType of tempMenuType) {
29920
+ let id = tempType.id;
29921
+ if (!tempTypeMap[id]) {
29922
+ finaMenuTypes.push(tempType);
29923
+ tempTypeMap[id] = tempType;
29924
+ }
29925
+ }
29926
+
29927
+ //如果有角色ID,则获取对应角色的快捷访问菜单映射信息
29897
29928
  if (role_ids && role_ids.length > 0) {
29898
29929
  //获取当前角色下对应的角色快捷访问菜单的映射信息(到应用自定义菜单)和快捷访问菜单的信息
29899
- let result = await getMenuMappingDatasByRoleIDs(role_ids, group_id);
29930
+ result = await getMenuMappingDatasByRoleIDs(role_ids, group_id);
29900
29931
  //对应角色的快捷访问菜单映射信息
29901
29932
  let quickMenuMappingDatas = result.data.quickMenuMappingDatas || [];
29902
29933
  let filterObjectMap = {};
29903
- let tempMap = {};
29904
- for (const tempData of portalMenuDatas) {
29905
- let id = tempData.id;
29906
- tempMap[id] = tempData;
29907
- }
29934
+
29935
+ //缓存所有角色的快捷访问菜单映射信息
29908
29936
  for (const data of quickMenuMappingDatas) {
29909
29937
  let id = data.menu_mapping_id;
29910
29938
  let quickMenuMapping = tempMap[id];
29911
29939
  filterObjectMap[id] = quickMenuMapping;
29912
29940
  }
29913
- // //对应角色的快捷访问菜单信息
29914
- // let menuMappingDatas = result.data.menuMappingDatas||[];
29915
- // for (const data of menuMappingDatas) {
29916
- // let id= data.id;
29917
- // filterObjectMap[id]=data;
29918
- // }
29919
- return transformPortalData(portalMenuDatas, menuTypes, filterObjectMap);
29941
+ //返回基于角色关联关系过滤后的快捷访问菜单信息
29942
+ return transformPortalData(finalMenuDatas, finaMenuTypes, filterObjectMap);
29920
29943
  } else {
29921
- return transformPortalData(portalMenuDatas, menuTypes, []);
29944
+ return transformPortalData(finalMenuDatas, finaMenuTypes, []);
29922
29945
  }
29923
29946
  };
29924
29947
 
@@ -30016,6 +30039,7 @@ const transformPortalData = (datas, menuTypes, filterObjectMap) => {
30016
30039
  let menuMaps = {};
30017
30040
  let menuTypeMaps = {};
30018
30041
  let parentMaps = {};
30042
+ //缓存所有父亲菜单信息
30019
30043
  for (let key in filterObjectMap) {
30020
30044
  let item = filterObjectMap[key];
30021
30045
  let parent_id = item.parent_id;
@@ -30023,6 +30047,7 @@ const transformPortalData = (datas, menuTypes, filterObjectMap) => {
30023
30047
  parentMaps[parent_id] = true;
30024
30048
  }
30025
30049
  }
30050
+ //缓存所有菜单信息
30026
30051
  for (const data of datas) {
30027
30052
  let id = data.id;
30028
30053
  let tempMenuData = {
@@ -30040,15 +30065,12 @@ const transformPortalData = (datas, menuTypes, filterObjectMap) => {
30040
30065
  beyond_type_sort: data.menu_type_sort ? data.menu_type_sort : 999
30041
30066
  };
30042
30067
  //如果存在快捷菜单映射数据或者是主菜单入口
30043
- if (filterObjectMap) {
30044
- //如果是主菜单或者存在快捷访问映射或者孩子存在快捷访问映射,则纳入到菜单中
30045
- if (filterObjectMap[id] || data.type == "4" || parentMaps[id]) {
30046
- menuMaps[id] = tempMenuData;
30047
- }
30048
- } else {
30068
+ //如果是主菜单或者存在快捷访问映射或者孩子存在快捷访问映射或者是应用默认的菜单,则纳入到菜单中
30069
+ if (filterObjectMap && filterObjectMap[id] || data.type == "4" || parentMaps[id] || data.is_app_defalut == "1") {
30049
30070
  menuMaps[id] = tempMenuData;
30050
30071
  }
30051
30072
  }
30073
+ //缓存所有菜单类型信息
30052
30074
  for (const menuData of menuTypes) {
30053
30075
  let id = menuData.id;
30054
30076
  menuTypeMaps[id] = menuData;
@@ -30113,6 +30135,7 @@ const transformPortalData = (datas, menuTypes, filterObjectMap) => {
30113
30135
  break;
30114
30136
  }
30115
30137
  }
30138
+ //如果没有子菜单,则跳过
30116
30139
  if (count == 0) {
30117
30140
  continue;
30118
30141
  }