mgacn-commonsdk 1.0.4 → 1.0.6

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/README.md CHANGED
@@ -28,16 +28,68 @@ npm install mgacn-commonsdk
28
28
  ## 使用
29
29
 
30
30
  ```js
31
+ import 'element-plus/dist/index.css';
31
32
  import MgacnCommonSdk from 'mgacn-commonsdk';
33
+ // 含全局主题:element-variables / common / reset-element
32
34
  import 'mgacn-commonsdk/style.css';
33
35
 
34
36
  app.use(MgacnCommonSdk, {
35
37
  tokenKey: 'your_token_key',
36
38
  baseURL: import.meta.env.VITE_API_BASE_URL,
37
- systemIdKey: 'mgacn_systemid', // 可选,有的系统需要
39
+ systemId: '', // 可选;子应用也可接口拿到后 setSystemId
38
40
  });
39
41
  ```
40
42
 
43
+ `style.css` 已包含门户与子系统共用的主题样式(须放在 `element-plus` 样式之后):
44
+
45
+ - `element-variables.scss` — 品牌色与 EP 变量
46
+ - `common.scss` — 通用工具类
47
+ - `reset-element.scss` — Element Plus 样式重置
48
+
49
+ 子应用从接口获取 `systemId` 后(接口待定):
50
+
51
+ ```js
52
+ import { setSystemId } from 'mgacn-commonsdk';
53
+
54
+ setSystemId(systemId); // 之后请求头会带 systemId
55
+ ```
56
+
57
+ ### 按钮权限
58
+
59
+ `app.use` 时传入权限列表读取函数(通常来自菜单 store 的 `permissions`),SDK 会注册指令并提供 `hasPermission`:
60
+
61
+ ```js
62
+ import { useMenuStore } from '@/store/menuStore';
63
+
64
+ app.use(MgacnCommonSdk, {
65
+ tokenKey: 'mgacn_token',
66
+ getPermissions: () => useMenuStore().permissions,
67
+ });
68
+ ```
69
+
70
+ 也可事后设置:
71
+
72
+ ```js
73
+ import { setPermissionGetter, hasPermission, checkPermission } from 'mgacn-commonsdk';
74
+
75
+ setPermissionGetter(() => useMenuStore().permissions);
76
+
77
+ hasPermission('menu:add');
78
+ hasPermission(['menu:add', 'menu:edit']); // 且
79
+ hasPermission(['menu:add', 'menu:edit'], 'or'); // 或
80
+ checkPermission(['menu:add'], 'menu:add'); // 纯函数,不依赖 getter
81
+ ```
82
+
83
+ 模板指令(`install` 时自动注册):
84
+
85
+ ```vue
86
+ <el-button v-hasPermission="'menu:add'">新增</el-button>
87
+ <el-button v-hasAnyPermission="'menu:add,menu:edit'">编辑类</el-button>
88
+ <span v-hasNoPermission="'menu:add'">无新增权限时可见</span>
89
+ ```
90
+
91
+ 未传入 `getPermissions` / `setPermissionGetter` 时,`hasPermission` 不拦截(恒为 `true`)。
92
+
41
93
  ### 网络请求(宿主使用 .GET / .POST)
42
94
 
43
95
  先 `app.use` 后,页面里这样调:
@@ -241,7 +293,7 @@ import { createRequest, createApi } from 'mgacn-commonsdk';
241
293
  const request = createRequest({
242
294
  tokenKey: 'your_token_key',
243
295
  baseURL: '/api',
244
- systemIdKey: 'mgacn_systemid', // 可选
296
+ systemId: '', // 可选;也可事后 setSystemId
245
297
  });
246
298
  const api = createApi(request);
247
299
  ```