@mu-cabin/opms-permission 0.8.30 → 0.8.32

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) {
208
- const orgNoAuthMap = {};
207
+ function handlePermissionTree(data, key) {
208
+ const noAuthMap = {};
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
+ noAuthMap[node[key]] = { ...node, children: [] };
213
213
  if (!processedChildren?.length) {
214
214
  return null;
215
215
  }
@@ -219,13 +219,10 @@ function handleOrgTreeByPermission(data) {
219
219
  children: processedChildren || []
220
220
  };
221
221
  }
222
- let orgTree = data.map((node) => processNode(node)).filter((node) => node !== null);
223
- if (orgTree.length === 1 && orgTree[0].orgType === "HEAD" && orgTree[0].disabled) {
224
- orgTree = orgTree[0].children || [];
225
- }
222
+ const tree = data.map((node) => processNode(node)).filter((node) => node !== null);
226
223
  return {
227
- orgTree,
228
- orgNoAuthMap
224
+ tree,
225
+ noAuthMap
229
226
  };
230
227
  }
231
228
 
@@ -237,6 +234,7 @@ var USER_INFO_KEY = "opms_user_info";
237
234
  var RESOURCE_KEY = "opms_resources";
238
235
  var TOKEN_KEY = "omps_authorization";
239
236
  var ORG_COMPANY_KEY = "opms_org_company";
237
+ var USER_ORG_KEY = "opms_user_org";
240
238
 
241
239
  // src/api.ts
242
240
  var axiosClient = import_axios.default.create();
@@ -472,25 +470,33 @@ var Permission = class {
472
470
  */
473
471
  async queryUserOrgs() {
474
472
  try {
475
- const res = await getUserOrgTree(this.baseUrl);
476
- const { obj, success, msg, code } = res;
477
- const newTree = 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
- // TODO: 新接口只返回有权限的节点
486
- disabled: !item.hasPermission,
487
- orgType: item.orgType,
488
- orgId: item.orgId
489
- };
490
- });
491
- const { orgTree, orgNoAuthMap } = handleOrgTreeByPermission(newTree);
492
- this._orgTree = newTree;
493
- 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 { noAuthMap } = data;
494
+ let { tree } = data;
495
+ if (tree.length === 1 && tree[0].orgType === "HEAD" && tree[0].disabled) {
496
+ tree = tree[0].children || [];
497
+ }
498
+ this._orgTree = orgTreeData;
499
+ return { orgTree: orgTreeData, orgNoAuthMap: noAuthMap, authOrgTree: tree };
494
500
  } catch (error) {
495
501
  console.log(error);
496
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) {
169
- const orgNoAuthMap = {};
168
+ function handlePermissionTree(data, key) {
169
+ const noAuthMap = {};
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
+ noAuthMap[node[key]] = { ...node, children: [] };
174
174
  if (!processedChildren?.length) {
175
175
  return null;
176
176
  }
@@ -180,13 +180,10 @@ function handleOrgTreeByPermission(data) {
180
180
  children: processedChildren || []
181
181
  };
182
182
  }
183
- let orgTree = data.map((node) => processNode(node)).filter((node) => node !== null);
184
- if (orgTree.length === 1 && orgTree[0].orgType === "HEAD" && orgTree[0].disabled) {
185
- orgTree = orgTree[0].children || [];
186
- }
183
+ const tree = data.map((node) => processNode(node)).filter((node) => node !== null);
187
184
  return {
188
- orgTree,
189
- orgNoAuthMap
185
+ tree,
186
+ noAuthMap
190
187
  };
191
188
  }
192
189
 
@@ -198,6 +195,7 @@ var USER_INFO_KEY = "opms_user_info";
198
195
  var RESOURCE_KEY = "opms_resources";
199
196
  var TOKEN_KEY = "omps_authorization";
200
197
  var ORG_COMPANY_KEY = "opms_org_company";
198
+ var USER_ORG_KEY = "opms_user_org";
201
199
 
202
200
  // src/api.ts
203
201
  var axiosClient = axios.create();
@@ -433,25 +431,33 @@ var Permission = class {
433
431
  */
434
432
  async queryUserOrgs() {
435
433
  try {
436
- const res = await getUserOrgTree(this.baseUrl);
437
- const { obj, success, msg, code } = res;
438
- const newTree = 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
- // TODO: 新接口只返回有权限的节点
447
- disabled: !item.hasPermission,
448
- orgType: item.orgType,
449
- orgId: item.orgId
450
- };
451
- });
452
- const { orgTree, orgNoAuthMap } = handleOrgTreeByPermission(newTree);
453
- this._orgTree = newTree;
454
- 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 { noAuthMap } = data;
455
+ let { tree } = data;
456
+ if (tree.length === 1 && tree[0].orgType === "HEAD" && tree[0].disabled) {
457
+ tree = tree[0].children || [];
458
+ }
459
+ this._orgTree = orgTreeData;
460
+ return { orgTree: orgTreeData, orgNoAuthMap: noAuthMap, authOrgTree: tree };
455
461
  } catch (error) {
456
462
  console.log(error);
457
463
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mu-cabin/opms-permission",
3
- "version": "0.8.30",
3
+ "version": "0.8.32",
4
4
  "description": "Frontend SDK for OPMS permission and auth management.",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",