mgacn-commonsdk 1.0.3 → 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 +54 -2
- package/dist/mgacn-commonsdk.js +931 -718
- package/dist/mgacn-commonsdk.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
296
|
+
systemId: '', // 可选;也可事后 setSystemId
|
|
245
297
|
});
|
|
246
298
|
const api = createApi(request);
|
|
247
299
|
```
|