@mu-cabin/opms-permission 0.8.29 → 0.8.31

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.
package/dist/index.cjs CHANGED
@@ -204,12 +204,12 @@ function findFirstEnableNode(data) {
204
204
  }
205
205
  return null;
206
206
  }
207
- function handleOrgTreeByPermission(data) {
207
+ function handlePermissionTree(data, key) {
208
208
  const orgNoAuthMap = {};
209
209
  function processNode(node) {
210
210
  const processedChildren = node.children?.map((child) => processNode(child)).filter((child) => child !== null);
211
211
  if (node.disabled) {
212
- orgNoAuthMap[node.orgId] = node;
212
+ orgNoAuthMap[node[key]] = { ...node, children: [] };
213
213
  if (!processedChildren?.length) {
214
214
  return null;
215
215
  }
@@ -234,6 +234,7 @@ var USER_INFO_KEY = "opms_user_info";
234
234
  var RESOURCE_KEY = "opms_resources";
235
235
  var TOKEN_KEY = "omps_authorization";
236
236
  var ORG_COMPANY_KEY = "opms_org_company";
237
+ var USER_ORG_KEY = "opms_user_org";
237
238
 
238
239
  // src/api.ts
239
240
  var axiosClient = import_axios.default.create();
@@ -469,25 +470,33 @@ var Permission = class {
469
470
  */
470
471
  async queryUserOrgs() {
471
472
  try {
472
- const res = await getUserOrgTree(this.baseUrl);
473
- const { obj, success, msg, code } = res;
474
- const newTree = iterateNestedArray(obj, (item) => {
475
- return {
476
- label: item.orgShortName,
477
- value: item.orgCode,
478
- title: item.orgShortName,
479
- key: item.orgCode,
480
- nodeLevel: item.nodeLevel,
481
- children: item.children,
482
- // TODO: 新接口只返回有权限的节点
483
- disabled: !item.hasPermission,
484
- orgType: item.orgType,
485
- orgId: item.orgId
486
- };
487
- });
488
- const { orgTree, orgNoAuthMap } = handleOrgTreeByPermission(newTree);
489
- this._orgTree = newTree;
490
- return { orgTree: newTree, orgNoAuthMap, authOrgTree: orgTree };
473
+ let orgTreeData = storage.getItem(USER_ORG_KEY) || null;
474
+ if (!orgTreeData) {
475
+ const res = await getUserOrgTree(this.baseUrl);
476
+ const { obj } = res;
477
+ orgTreeData = iterateNestedArray(obj, (item) => {
478
+ return {
479
+ label: item.orgShortName,
480
+ value: item.orgCode,
481
+ title: item.orgShortName,
482
+ key: item.orgCode,
483
+ nodeLevel: item.nodeLevel,
484
+ children: item.children,
485
+ disabled: !item.hasPermission,
486
+ orgType: item.orgType,
487
+ orgId: item.orgId
488
+ };
489
+ });
490
+ storage.setItem(USER_ORG_KEY, orgTreeData);
491
+ }
492
+ const data = handlePermissionTree(orgTreeData, "orgId");
493
+ const { orgNoAuthMap } = data;
494
+ let { orgTree } = data;
495
+ if (orgTree.length === 1 && orgTree[0].orgType === "HEAD" && orgTree[0].disabled) {
496
+ orgTree = orgTree[0].children || [];
497
+ }
498
+ this._orgTree = orgTreeData;
499
+ return { orgTree: orgTreeData, orgNoAuthMap, authOrgTree: orgTree };
491
500
  } catch (error) {
492
501
  console.log(error);
493
502
  return null;
package/dist/index.mjs CHANGED
@@ -165,12 +165,12 @@ function findFirstEnableNode(data) {
165
165
  }
166
166
  return null;
167
167
  }
168
- function handleOrgTreeByPermission(data) {
168
+ function handlePermissionTree(data, key) {
169
169
  const orgNoAuthMap = {};
170
170
  function processNode(node) {
171
171
  const processedChildren = node.children?.map((child) => processNode(child)).filter((child) => child !== null);
172
172
  if (node.disabled) {
173
- orgNoAuthMap[node.orgId] = node;
173
+ orgNoAuthMap[node[key]] = { ...node, children: [] };
174
174
  if (!processedChildren?.length) {
175
175
  return null;
176
176
  }
@@ -195,6 +195,7 @@ var USER_INFO_KEY = "opms_user_info";
195
195
  var RESOURCE_KEY = "opms_resources";
196
196
  var TOKEN_KEY = "omps_authorization";
197
197
  var ORG_COMPANY_KEY = "opms_org_company";
198
+ var USER_ORG_KEY = "opms_user_org";
198
199
 
199
200
  // src/api.ts
200
201
  var axiosClient = axios.create();
@@ -430,25 +431,33 @@ var Permission = class {
430
431
  */
431
432
  async queryUserOrgs() {
432
433
  try {
433
- const res = await getUserOrgTree(this.baseUrl);
434
- const { obj, success, msg, code } = res;
435
- const newTree = iterateNestedArray(obj, (item) => {
436
- return {
437
- label: item.orgShortName,
438
- value: item.orgCode,
439
- title: item.orgShortName,
440
- key: item.orgCode,
441
- nodeLevel: item.nodeLevel,
442
- children: item.children,
443
- // TODO: 新接口只返回有权限的节点
444
- disabled: !item.hasPermission,
445
- orgType: item.orgType,
446
- orgId: item.orgId
447
- };
448
- });
449
- const { orgTree, orgNoAuthMap } = handleOrgTreeByPermission(newTree);
450
- this._orgTree = newTree;
451
- return { orgTree: newTree, orgNoAuthMap, authOrgTree: orgTree };
434
+ let orgTreeData = storage.getItem(USER_ORG_KEY) || null;
435
+ if (!orgTreeData) {
436
+ const res = await getUserOrgTree(this.baseUrl);
437
+ const { obj } = res;
438
+ orgTreeData = iterateNestedArray(obj, (item) => {
439
+ return {
440
+ label: item.orgShortName,
441
+ value: item.orgCode,
442
+ title: item.orgShortName,
443
+ key: item.orgCode,
444
+ nodeLevel: item.nodeLevel,
445
+ children: item.children,
446
+ disabled: !item.hasPermission,
447
+ orgType: item.orgType,
448
+ orgId: item.orgId
449
+ };
450
+ });
451
+ storage.setItem(USER_ORG_KEY, orgTreeData);
452
+ }
453
+ const data = handlePermissionTree(orgTreeData, "orgId");
454
+ const { orgNoAuthMap } = data;
455
+ let { orgTree } = data;
456
+ if (orgTree.length === 1 && orgTree[0].orgType === "HEAD" && orgTree[0].disabled) {
457
+ orgTree = orgTree[0].children || [];
458
+ }
459
+ this._orgTree = orgTreeData;
460
+ return { orgTree: orgTreeData, orgNoAuthMap, authOrgTree: orgTree };
452
461
  } catch (error) {
453
462
  console.log(error);
454
463
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mu-cabin/opms-permission",
3
- "version": "0.8.29",
3
+ "version": "0.8.31",
4
4
  "description": "Frontend SDK for OPMS permission and auth management.",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",