@maketribe/ms-app 3.0.0 → 3.0.1

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.
Files changed (201) hide show
  1. package/dist/cjs/MSAppClient.js +12 -18
  2. package/dist/cjs/MSAppClient.js.map +1 -1
  3. package/dist/cjs/Router.js +6 -8
  4. package/dist/cjs/Router.js.map +1 -1
  5. package/dist/cjs/components/member-table/member-table.vue2.js +2 -10
  6. package/dist/cjs/components/member-table/member-table.vue2.js.map +1 -1
  7. package/dist/cjs/components/verify-dialog/verify-dialog.js +1 -24
  8. package/dist/cjs/components/verify-dialog/verify-dialog.js.map +1 -1
  9. package/dist/cjs/init-application.js +8 -1
  10. package/dist/cjs/init-application.js.map +1 -1
  11. package/dist/cjs/page/index/dv/default/add.vue.js +2 -2
  12. package/dist/cjs/page/index/dv/default/edit.vue.js +2 -2
  13. package/dist/cjs/page/index/dv/default/tree.vue.js +2 -2
  14. package/dist/cjs/page/index/dv/ms-member/index.vue.js +2 -2
  15. package/dist/cjs/page/index/dv/ms-role/index.vue.js +2 -2
  16. package/dist/cjs/page/index/material/index.vue.js +2 -2
  17. package/dist/cjs/page/login/index.vue.js +2 -2
  18. package/dist/cjs/page/login/index.vue2.js +2 -17
  19. package/dist/cjs/page/login/index.vue2.js.map +1 -1
  20. package/dist/cjs/page/signup/index.vue.js +2 -2
  21. package/dist/cjs/page/signup/index.vue2.js +2 -18
  22. package/dist/cjs/page/signup/index.vue2.js.map +1 -1
  23. package/dist/cjs/router-middleware/auth.d.ts +2 -1
  24. package/dist/cjs/router-middleware/auth.js +1 -3
  25. package/dist/cjs/router-middleware/auth.js.map +1 -1
  26. package/dist/esm/MSAppClient.js +11 -19
  27. package/dist/esm/MSAppClient.js.map +1 -1
  28. package/dist/esm/Router.js +4 -8
  29. package/dist/esm/Router.js.map +1 -1
  30. package/dist/esm/components/member-table/member-table.vue2.js +2 -10
  31. package/dist/esm/components/member-table/member-table.vue2.js.map +1 -1
  32. package/dist/esm/components/verify-dialog/verify-dialog.js +1 -24
  33. package/dist/esm/components/verify-dialog/verify-dialog.js.map +1 -1
  34. package/dist/esm/init-application.js +8 -1
  35. package/dist/esm/init-application.js.map +1 -1
  36. package/dist/esm/page/index/dv/default/add.vue.js +2 -2
  37. package/dist/esm/page/index/dv/default/edit.vue.js +2 -2
  38. package/dist/esm/page/index/dv/default/tree.vue.js +2 -2
  39. package/dist/esm/page/index/dv/ms-member/index.vue.js +2 -2
  40. package/dist/esm/page/index/dv/ms-role/index.vue.js +2 -2
  41. package/dist/esm/page/index/material/index.vue.js +2 -2
  42. package/dist/esm/page/login/index.vue.js +2 -2
  43. package/dist/esm/page/login/index.vue2.js +2 -17
  44. package/dist/esm/page/login/index.vue2.js.map +1 -1
  45. package/dist/esm/page/signup/index.vue.js +2 -2
  46. package/dist/esm/page/signup/index.vue2.js +2 -18
  47. package/dist/esm/page/signup/index.vue2.js.map +1 -1
  48. package/dist/esm/router-middleware/auth.d.ts +2 -1
  49. package/dist/esm/router-middleware/auth.js +1 -3
  50. package/dist/esm/router-middleware/auth.js.map +1 -1
  51. package/package.json +8 -5
  52. package/gulpfile.ts +0 -1
  53. package/rollup.config.mjs +0 -11
  54. package/src/ConfigComponents.ts +0 -20
  55. package/src/MSAppClient.ts +0 -343
  56. package/src/MSDataFilterComponents.ts +0 -6
  57. package/src/MSDataFormComponents.ts +0 -12
  58. package/src/MSDataTableComponents.ts +0 -6
  59. package/src/MaterialComponents.ts +0 -26
  60. package/src/PermissionPointManager.ts +0 -26
  61. package/src/Router.ts +0 -133
  62. package/src/UserInfo.ts +0 -66
  63. package/src/UserSession.ts +0 -190
  64. package/src/components/image-select/image-select-option.ts +0 -11
  65. package/src/components/image-select/image-select.tsx +0 -40
  66. package/src/components/image-select/index.ts +0 -6
  67. package/src/components/index.ts +0 -8
  68. package/src/components/material-list/index.ts +0 -7
  69. package/src/components/material-list/material-group-form-popover.vue +0 -66
  70. package/src/components/material-list/material-group.vue +0 -138
  71. package/src/components/material-list/material-item.vue +0 -26
  72. package/src/components/material-list/material-list-options.ts +0 -23
  73. package/src/components/material-list/material-list.vue +0 -151
  74. package/src/components/material-select/index.ts +0 -15
  75. package/src/components/material-select/material-select-api.ts +0 -48
  76. package/src/components/material-select/material-select-options.ts +0 -18
  77. package/src/components/material-select/material-select-type.ts +0 -11
  78. package/src/components/material-select/material-select.tsx +0 -95
  79. package/src/components/member-table/index.ts +0 -6
  80. package/src/components/member-table/member-table.vue +0 -220
  81. package/src/components/menu-permission-table/index.ts +0 -6
  82. package/src/components/menu-permission-table/menu-permission-table.vue +0 -143
  83. package/src/components/role-permission-config/index.ts +0 -7
  84. package/src/components/role-permission-config/role-permission-config-options.ts +0 -20
  85. package/src/components/role-permission-config/role-permission-config.tsx +0 -280
  86. package/src/components/system-provider/index.ts +0 -5
  87. package/src/components/system-provider/system-provider.tsx +0 -93
  88. package/src/components/verify-dialog/index.ts +0 -5
  89. package/src/components/verify-dialog/verify-dialog-option.ts +0 -23
  90. package/src/components/verify-dialog/verify-dialog.tsx +0 -113
  91. package/src/composables/index.ts +0 -13
  92. package/src/composables/on-tab-before-close.ts +0 -8
  93. package/src/composables/on-tab-before-switch.ts +0 -8
  94. package/src/composables/on-tab-refresh.ts +0 -8
  95. package/src/composables/use-current-tab.ts +0 -5
  96. package/src/composables/use-http-request.ts +0 -5
  97. package/src/composables/use-ms-app-client.ts +0 -10
  98. package/src/composables/use-user-info.ts +0 -4
  99. package/src/constants/index.ts +0 -2
  100. package/src/constants/route.ts +0 -4
  101. package/src/constants/token.ts +0 -5
  102. package/src/dataview/config/ConfigForm.ts +0 -110
  103. package/src/dataview/config/ConfigTable.ts +0 -68
  104. package/src/dataview/config/index.ts +0 -2
  105. package/src/dataview/department/DepartmentForm.ts +0 -43
  106. package/src/dataview/department/DepartmentTable.ts +0 -67
  107. package/src/dataview/department/index.ts +0 -2
  108. package/src/dataview/index.ts +0 -7
  109. package/src/dataview/material/MaterialForm.ts +0 -51
  110. package/src/dataview/material/MaterialMan.ts +0 -176
  111. package/src/dataview/material/MaterialTable.ts +0 -123
  112. package/src/dataview/material/index.ts +0 -4
  113. package/src/dataview/material/material-group/MaterialGroupForm.ts +0 -30
  114. package/src/dataview/material/material-group/MaterialGroupTable.ts +0 -60
  115. package/src/dataview/material/material-group/index.ts +0 -2
  116. package/src/dataview/member/MemberForm.ts +0 -122
  117. package/src/dataview/member/MemberTable.tsx +0 -242
  118. package/src/dataview/member/index.ts +0 -2
  119. package/src/dataview/member/member-role/MemberRoleTable.ts +0 -21
  120. package/src/dataview/menu/MenuForm.ts +0 -113
  121. package/src/dataview/menu/MenuTable.ts +0 -37
  122. package/src/dataview/menu/MenuTree.ts +0 -143
  123. package/src/dataview/menu/index.ts +0 -4
  124. package/src/dataview/menu/permission-point/PermissionPointDefineForm.ts +0 -28
  125. package/src/dataview/menu/permission-point/PermissionPointDefineTable.ts +0 -30
  126. package/src/dataview/menu/permission-point/index.ts +0 -2
  127. package/src/dataview/role/RoleForm.ts +0 -36
  128. package/src/dataview/role/RolePermissionConfigTable.ts +0 -471
  129. package/src/dataview/role/RoleTable.ts +0 -68
  130. package/src/dataview/role/index.ts +0 -5
  131. package/src/dataview/role/role-permission-point/RolePermissionPointTable.ts +0 -27
  132. package/src/dataview/role/role-permission-point/index.ts +0 -1
  133. package/src/dataview/role/role-route/RoleRouteTable.ts +0 -28
  134. package/src/dataview/role/role-route/index.ts +0 -1
  135. package/src/dataview/route/RouteForm.ts +0 -92
  136. package/src/dataview/route/RouteTable.ts +0 -71
  137. package/src/dataview/route/index.ts +0 -2
  138. package/src/init-application.ts +0 -84
  139. package/src/installer.ts +0 -26
  140. package/src/layouts/index.ts +0 -1
  141. package/src/layouts/manager-system/components/aside/aside.tsx +0 -45
  142. package/src/layouts/manager-system/components/aside/bar/bar.tsx +0 -79
  143. package/src/layouts/manager-system/components/aside/bar/index.ts +0 -5
  144. package/src/layouts/manager-system/components/aside/index.ts +0 -5
  145. package/src/layouts/manager-system/components/aside/menu/index.ts +0 -5
  146. package/src/layouts/manager-system/components/aside/menu/menu-item.tsx +0 -63
  147. package/src/layouts/manager-system/components/aside/menu/menu.tsx +0 -51
  148. package/src/layouts/manager-system/components/aside/panel/index.ts +0 -5
  149. package/src/layouts/manager-system/components/aside/panel/panel.tsx +0 -57
  150. package/src/layouts/manager-system/components/header/breadcrumb/breadcrumb.tsx +0 -47
  151. package/src/layouts/manager-system/components/header/breadcrumb/index.ts +0 -5
  152. package/src/layouts/manager-system/components/header/header.tsx +0 -17
  153. package/src/layouts/manager-system/components/header/index.ts +0 -5
  154. package/src/layouts/manager-system/components/header/nav/index.ts +0 -5
  155. package/src/layouts/manager-system/components/header/nav/nav.tsx +0 -100
  156. package/src/layouts/manager-system/components/header/tabs/index.ts +0 -5
  157. package/src/layouts/manager-system/components/header/tabs/tabs.tsx +0 -72
  158. package/src/layouts/manager-system/components/header/tools/index.ts +0 -5
  159. package/src/layouts/manager-system/components/header/tools/tools.tsx +0 -15
  160. package/src/layouts/manager-system/index.ts +0 -6
  161. package/src/layouts/manager-system/manager-system.tsx +0 -25
  162. package/src/menu/Menu.ts +0 -142
  163. package/src/menu/MenuNode.ts +0 -49
  164. package/src/menu/index.ts +0 -2
  165. package/src/page/index/dv/default/add.vue +0 -49
  166. package/src/page/index/dv/default/edit.vue +0 -55
  167. package/src/page/index/dv/default/index.vue +0 -56
  168. package/src/page/index/dv/default/tree.vue +0 -31
  169. package/src/page/index/dv/ms-member/index.vue +0 -38
  170. package/src/page/index/dv/ms-role/index.vue +0 -28
  171. package/src/page/index/material/index.vue +0 -14
  172. package/src/page/login/index.vue +0 -191
  173. package/src/page/signup/index.vue +0 -157
  174. package/src/resolver/ITypeResolver.ts +0 -5
  175. package/src/router-middleware/auth.ts +0 -64
  176. package/src/router-middleware/index.ts +0 -1
  177. package/src/tabs/Tab.ts +0 -59
  178. package/src/tabs/Tabs.ts +0 -176
  179. package/src/tabs/index.ts +0 -2
  180. package/src/tokens/index.ts +0 -1
  181. package/src/tokens/ms-app-client.ts +0 -10
  182. package/style/components/image-select.scss +0 -13
  183. package/style/components/index.scss +0 -9
  184. package/style/components/material-group.scss +0 -38
  185. package/style/components/material-item.scss +0 -20
  186. package/style/components/material-list.scss +0 -67
  187. package/style/components/material-select.scss +0 -23
  188. package/style/components/member-table.scss +0 -9
  189. package/style/components/menu-permission-table.scss +0 -43
  190. package/style/components/role-permission-config.scss +0 -18
  191. package/style/components/verify-dialog.scss +0 -16
  192. package/style/index.scss +0 -4
  193. package/style/layouts/index.scss +0 -1
  194. package/style/layouts/manager-system/aside.scss +0 -116
  195. package/style/layouts/manager-system/header.scss +0 -129
  196. package/style/layouts/manager-system/index.scss +0 -4
  197. package/style/layouts/manager-system/manager-system.scss +0 -26
  198. package/style/layouts/manager-system/menu.scss +0 -47
  199. package/style/page/login.scss +0 -107
  200. package/tsconfig.build.json +0 -10
  201. package/tsconfig.json +0 -14
@@ -1,471 +0,0 @@
1
- import { Group } from "@maketribe/request";
2
- import { DataTableOptions, WhereFilter } from "@maketribe/dm";
3
- import {
4
- MenuItem,
5
- MenuResult,
6
- MenuTable,
7
- PermissionPointDefine,
8
- PermissionPointDefineTable,
9
- } from "../menu";
10
- import { Role } from "./RoleForm";
11
- import { RoleRouteTable } from "./role-route";
12
- import { RolePermissionPointTable } from "./role-permission-point";
13
- import { Route, RouteTable } from "../route";
14
- import { postTraverse } from "@maketribe/utils";
15
-
16
- export type RolePermissionPointDefine = PermissionPointDefine & {
17
- originalSelected: boolean;
18
- selected: boolean;
19
- };
20
-
21
- export type RoleMenuNode = {
22
- permissionPoints: RolePermissionPointDefine[];
23
- routes: Route[];
24
- originalSelected: boolean;
25
- selected: boolean;
26
- indeterminate: boolean;
27
- children: RoleMenuNode[];
28
- } & MenuItem;
29
-
30
- export class RolePermissionConfigTable extends MenuTable<RoleMenuNode> {
31
- roleRouteTable: RoleRouteTable;
32
- roleRouteConditionGroup: Group;
33
-
34
- rolePermissionPointTable: RolePermissionPointTable;
35
- rolePermissionPointConditionGroup: Group;
36
-
37
- permissionPointDefineTable: PermissionPointDefineTable<RolePermissionPointDefine>;
38
- routeDefineTable: RouteTable;
39
-
40
- initd: boolean = false;
41
- initing: boolean = false;
42
-
43
- rootRoleMenuNodes: RoleMenuNode[] = [];
44
-
45
- currentRoleId: Role["id"] = "";
46
-
47
- constructor(options: Omit<DataTableOptions, "name"> = {}) {
48
- super({
49
- ...options,
50
- interfaceURL: {
51
- list: "/api/dv/ms-menu/allList",
52
- ...options.interfaceURL,
53
- },
54
- });
55
-
56
- this.roleRouteTable = new RoleRouteTable();
57
- this.roleRouteTable.dataFilter.setReady();
58
-
59
- this.rolePermissionPointTable = new RolePermissionPointTable();
60
- this.rolePermissionPointTable.dataFilter.setReady();
61
-
62
- this.roleRouteConditionGroup = new Group();
63
- this.rolePermissionPointConditionGroup = new Group();
64
-
65
- (this.roleRouteTable.dataFilter as WhereFilter)
66
- .getWhere()
67
- .addGroup(this.roleRouteConditionGroup);
68
-
69
- (this.rolePermissionPointTable.dataFilter as WhereFilter)
70
- .getWhere()
71
- .addGroup(this.rolePermissionPointConditionGroup);
72
-
73
- const permissionPointDefineTable =
74
- new (class extends PermissionPointDefineTable<RolePermissionPointDefine> {
75
- formatItem(item: PermissionPointDefine): RolePermissionPointDefine {
76
- return {
77
- ...super.formatItem(item),
78
- originalSelected: false,
79
- selected: false,
80
- };
81
- }
82
- })({
83
- interfaceURL: { list: "/api/dv/ms-permission-point-def/allList" },
84
- });
85
- permissionPointDefineTable.dataFilter.setReady();
86
- this.permissionPointDefineTable = permissionPointDefineTable;
87
-
88
- const routeDefineTable = new RouteTable({
89
- interfaceURL: { list: "/api/dv/ms-route/allList" },
90
- });
91
- routeDefineTable.dataFilter.setReady();
92
- this.routeDefineTable = routeDefineTable;
93
-
94
- this.dataFilter.setReady();
95
- }
96
-
97
- protected async initialize() {
98
- [
99
- this.roleRouteTable.getLoadingManager(),
100
- this.rolePermissionPointTable.getLoadingManager(),
101
- this.permissionPointDefineTable.getLoadingManager(),
102
- this.routeDefineTable.getLoadingManager(),
103
- ].forEach((loadingManager) => {
104
- this.getLoadingManager().addLoadingManager(loadingManager);
105
- });
106
-
107
- await this.roleRouteTable.init();
108
- await this.rolePermissionPointTable.init();
109
-
110
- await this.permissionPointDefineTable.init();
111
- await this.routeDefineTable.init();
112
-
113
- await super.init();
114
- }
115
-
116
- formatItem(item: MenuResult): RoleMenuNode {
117
- const permissionPointDefines = this.permissionPointDefineTable.getList();
118
-
119
- const routeDefines = this.routeDefineTable.getList();
120
-
121
- return {
122
- ...super.formatItem(item),
123
- routes: routeDefines.filter(
124
- (routeDefine) => routeDefine.menuId === item.id
125
- ) as RoleMenuNode["routes"],
126
- permissionPoints: permissionPointDefines.filter(
127
- (permissionPointDefine) => permissionPointDefine.menuId === item.id
128
- ),
129
- originalSelected: false,
130
- selected: false,
131
- indeterminate: false,
132
- children: [],
133
- };
134
- }
135
-
136
- setList(list: RoleMenuNode[]): void {
137
- super.setList(list);
138
-
139
- const rootRoleMenuNodes = [];
140
-
141
- for (const roleMenuNode of list) {
142
- if (!roleMenuNode.pid) {
143
- rootRoleMenuNodes.push(roleMenuNode);
144
- }
145
-
146
- for (const item of list) {
147
- if (item.pid === roleMenuNode.id) {
148
- roleMenuNode.children.push(item);
149
- }
150
- }
151
- }
152
-
153
- this.rootRoleMenuNodes = this.calculateNotEmptyNode(rootRoleMenuNodes);
154
- }
155
-
156
- calculateNotEmptyNode(list: RoleMenuNode[]) {
157
- const result = list.filter(
158
- (item) => item.routes.length || item.children.length
159
- );
160
-
161
- let nodes = [...result];
162
-
163
- for (let i = 0; i < nodes.length; i++) {
164
- const node = nodes[i];
165
-
166
- node.children = node.children.filter(
167
- (item) => item.routes.length || item.children.length
168
- );
169
-
170
- nodes = nodes.concat(node.children);
171
- }
172
-
173
- return result;
174
- }
175
-
176
- getRootRoleMenuNodes() {
177
- return this.rootRoleMenuNodes;
178
- }
179
-
180
- async load(params?: Record<string, any>) {
181
- await Promise.all([
182
- this.permissionPointDefineTable.load(),
183
- this.routeDefineTable.load(),
184
- ]);
185
-
186
- const loadResult = await super.load(params);
187
-
188
- if (loadResult.data.code === 200) {
189
- this.restoreDefaultSelect();
190
- }
191
-
192
- return loadResult;
193
- }
194
-
195
- async selectRolePermission(roleId: Role["id"]) {
196
- this.currentRoleId = roleId;
197
-
198
- this.roleRouteConditionGroup.clear();
199
- this.rolePermissionPointConditionGroup.clear();
200
-
201
- this.roleRouteConditionGroup.addCondition("roleId", "=", roleId);
202
- this.rolePermissionPointConditionGroup.addCondition("roleId", "=", roleId);
203
-
204
- const [roleRouteTableResult, rolePermissionPointTableResult] =
205
- await Promise.all([
206
- this.roleRouteTable.load(),
207
- this.rolePermissionPointTable.load(),
208
- ]);
209
-
210
- if (roleRouteTableResult.data.code !== 200) {
211
- return;
212
- }
213
-
214
- if (rolePermissionPointTableResult.data.code !== 200) {
215
- return;
216
- }
217
-
218
- this.restoreDefaultSelect();
219
- }
220
-
221
- clearSelected() {
222
- for (const roleMenu of this.getList()) {
223
- roleMenu.indeterminate = roleMenu.selected = false;
224
- }
225
-
226
- for (const rolePermissionPoint of this.permissionPointDefineTable.getList()) {
227
- rolePermissionPoint.selected = false;
228
- }
229
- }
230
-
231
- protected calcSelect() {
232
- postTraverse<RoleMenuNode>(this.getRootRoleMenuNodes(), (roleMenu) => {
233
- // 如果自叶级菜单
234
- if (roleMenu.children.length === 0) {
235
- // 选中的权限点
236
- const selectedPermissionPoints = roleMenu.permissionPoints.filter(
237
- (permissionPointDefine) => permissionPointDefine.selected
238
- );
239
-
240
- // 如果有权限点选择就赋予路由权限
241
- roleMenu.selected =
242
- roleMenu.permissionPoints.length === 0
243
- ? roleMenu.selected
244
- : !!selectedPermissionPoints.length || roleMenu.selected;
245
- // 如果不是所有权限点都激活就标识是部分选择
246
- roleMenu.indeterminate =
247
- roleMenu.permissionPoints.length === 0 ||
248
- selectedPermissionPoints.length === 0
249
- ? false
250
- : selectedPermissionPoints.length <
251
- roleMenu.permissionPoints.length;
252
-
253
- return;
254
- }
255
-
256
- // 选中的子菜单
257
- const selectedChildren = roleMenu.children.filter(
258
- (item) => item.selected
259
- );
260
- // 如果有子菜单选中就路由权限
261
- roleMenu.selected = !!selectedChildren.length;
262
- // 如果不是所有子菜单都激活就标识是部分选择
263
- roleMenu.indeterminate =
264
- selectedChildren.length === 0
265
- ? false
266
- : selectedChildren.length < roleMenu.children.length;
267
- });
268
- }
269
-
270
- restoreDefaultSelect() {
271
- this.clearSelected();
272
-
273
- const permissionPointDefineList = this.permissionPointDefineTable.getList();
274
- const rolePermissionList = this.rolePermissionPointTable.getList();
275
-
276
- for (const permissionPointDefine of permissionPointDefineList) {
277
- permissionPointDefine.originalSelected = permissionPointDefine.selected =
278
- false;
279
- }
280
-
281
- if (permissionPointDefineList.length) {
282
- for (const rolePermission of rolePermissionList) {
283
- const permissionPointDefine = permissionPointDefineList.find(
284
- (permissionPointDefine) =>
285
- permissionPointDefine.id === rolePermission.permissionPointDefId
286
- );
287
-
288
- if (permissionPointDefine) {
289
- permissionPointDefine.originalSelected =
290
- permissionPointDefine.selected = true;
291
- }
292
- }
293
- }
294
-
295
- const menuList = this.getList();
296
- const roleRouteList = this.roleRouteTable.getList();
297
-
298
- for (const menu of menuList) {
299
- menu.originalSelected = menu.selected = false;
300
- }
301
-
302
- if (menuList.length) {
303
- for (const roleRoute of roleRouteList) {
304
- const menu = menuList.find((menu) =>
305
- menu.routes.find(
306
- (routeDefine) => routeDefine.id === roleRoute.routeId
307
- )
308
- );
309
-
310
- if (menu) {
311
- menu.originalSelected = menu.selected = true;
312
- }
313
- }
314
- }
315
-
316
- this.calcSelect();
317
- }
318
-
319
- toggleRoleMenu(
320
- roleMenu: RoleMenuNode,
321
- selected: boolean = !roleMenu.selected
322
- ) {
323
- postTraverse<RoleMenuNode>([roleMenu], (roleMenu) => {
324
- // 如果自叶级菜单
325
- if (roleMenu.children.length === 0) {
326
- for (const permissionPointDefine of roleMenu.permissionPoints) {
327
- permissionPointDefine.selected = selected;
328
- }
329
-
330
- roleMenu.selected = selected;
331
- return;
332
- }
333
-
334
- roleMenu.selected = selected;
335
- });
336
-
337
- this.calcSelect();
338
- }
339
-
340
- toggleRolePermissionPoint(
341
- permissionPointDefine: RolePermissionPointDefine,
342
- selected: boolean = !permissionPointDefine.selected
343
- ) {
344
- permissionPointDefine.selected = selected;
345
-
346
- this.calcSelect();
347
- }
348
-
349
- async submitPermission() {
350
- const permissionPointDefines = this.permissionPointDefineTable.getList();
351
- const removePermissionPointDefines = permissionPointDefines.filter(
352
- (permissionPointDefine) =>
353
- permissionPointDefine.originalSelected &&
354
- !permissionPointDefine.selected
355
- );
356
-
357
- const addPermissionPointDefine = permissionPointDefines.filter(
358
- (permissionPointDefine) =>
359
- !permissionPointDefine.originalSelected &&
360
- permissionPointDefine.selected
361
- );
362
-
363
- const menus = this.getList();
364
- const removeRoutes = menus
365
- .filter((menu) => menu.originalSelected && !menu.selected)
366
- .flatMap((menu) => menu.routes);
367
- const addRoutes = menus
368
- .filter((menu) => !menu.originalSelected && menu.selected)
369
- .flatMap((menu) => menu.routes);
370
-
371
- if (removePermissionPointDefines.length) {
372
- const rolePermissionPoints = this.rolePermissionPointTable.getList();
373
- const deleteRolePermissionPointResult =
374
- await this.rolePermissionPointTable.deleteRecords(
375
- removePermissionPointDefines
376
- .map(
377
- (permissionPointDefine) =>
378
- rolePermissionPoints.find(
379
- (rolePermissionPoint) =>
380
- rolePermissionPoint.permissionPointDefId ===
381
- permissionPointDefine.id
382
- )!
383
- )
384
- .filter(Boolean)
385
- );
386
-
387
- if (deleteRolePermissionPointResult.data.code !== 200) {
388
- return deleteRolePermissionPointResult;
389
- }
390
- }
391
-
392
- if (removeRoutes.length) {
393
- const roleRoutes = this.roleRouteTable.getList();
394
- const deleteRoleRouteResult = await this.roleRouteTable.deleteRecords(
395
- removeRoutes
396
- .map(
397
- (route) =>
398
- roleRoutes.find((roleRoute) => roleRoute.routeId === route.id)!
399
- )
400
- .filter(Boolean)
401
- );
402
-
403
- if (deleteRoleRouteResult.data.code !== 200) {
404
- return deleteRoleRouteResult;
405
- }
406
- }
407
-
408
- if (addPermissionPointDefine.length) {
409
- const addRolePermissionPointResult =
410
- await this.rolePermissionPointTable.addRecords(
411
- addPermissionPointDefine.map((item) => ({
412
- id: "",
413
- roleId: this.currentRoleId,
414
- permissionPointDefId: item.id,
415
- }))
416
- );
417
-
418
- if (addRolePermissionPointResult.data.code !== 200) {
419
- return addRolePermissionPointResult;
420
- }
421
- }
422
-
423
- if (addRoutes.length) {
424
- const addRoleRouteResult = await this.roleRouteTable.addRecords(
425
- addRoutes.map((item) => ({
426
- id: "",
427
- roleId: this.currentRoleId,
428
- routeId: item.id,
429
- }))
430
- );
431
-
432
- if (addRoleRouteResult.data.code !== 200) {
433
- return addRoleRouteResult;
434
- }
435
- }
436
-
437
- await this.selectRolePermission(this.currentRoleId);
438
- }
439
-
440
- /**
441
- * 是否发生变更
442
- */
443
- hasChange() {
444
- const permissionPointDefines = this.permissionPointDefineTable.getList();
445
- const removePermissionPointDefines = permissionPointDefines.filter(
446
- (permissionPointDefine) =>
447
- permissionPointDefine.originalSelected &&
448
- !permissionPointDefine.selected
449
- );
450
-
451
- const addPermissionPointDefine = permissionPointDefines.filter(
452
- (permissionPointDefine) =>
453
- !permissionPointDefine.originalSelected &&
454
- permissionPointDefine.selected
455
- );
456
-
457
- const menus = this.getList();
458
- const removeRoutes = menus
459
- .filter((menu) => menu.originalSelected && !menu.selected)
460
- .flatMap((menu) => menu.routes);
461
- const addRoutes = menus
462
- .filter((menu) => !menu.originalSelected && menu.selected)
463
- .flatMap((menu) => menu.routes);
464
- return !!(
465
- removePermissionPointDefines.length ||
466
- removeRoutes.length ||
467
- addPermissionPointDefine.length ||
468
- addRoutes.length
469
- );
470
- }
471
- }
@@ -1,68 +0,0 @@
1
- import {
2
- DataTable,
3
- DataTableOptions,
4
- TableColumn,
5
- FilterColumn,
6
- TableActionColumn,
7
- ActionButton,
8
- EditButton,
9
- DeleteButton,
10
- defineDataTable,
11
- } from "@maketribe/dm";
12
- import { Role } from "./RoleForm";
13
- import { Event } from "@maketribe/utils";
14
-
15
- export class RoleTable<
16
- F extends Role = Role,
17
- T extends Role = Role
18
- > extends DataTable<T, F> {
19
- configRolePermissionEvent: Event<{ item: Role }> = new Event();
20
-
21
- constructor(options: DataTableOptions = {}) {
22
- super({ name: "ms-role", ...options });
23
- }
24
-
25
- protected async initialize() {
26
- this.dataFilter.setColumns([
27
- new FilterColumn({
28
- name: "name",
29
- label: "角色名",
30
- componentInfo: "MKConditionInput",
31
- }),
32
- new FilterColumn({
33
- name: "desc",
34
- label: "角色描述",
35
- componentInfo: "MKConditionInput",
36
- }),
37
- ]);
38
-
39
- this.setColumns([
40
- new TableColumn({ name: "id", label: "编号", visible: false }),
41
- new TableColumn({ name: "name", label: "角色名" }),
42
- new TableColumn({ name: "desc", label: "角色描述" }),
43
- new TableActionColumn({
44
- width: "160px",
45
- buttons: [
46
- new ActionButton({
47
- label: "权限",
48
- handler: (row: Role) => {
49
- this.configRolePermissionEvent.emit({ item: row });
50
- },
51
- }),
52
- new EditButton(),
53
- new DeleteButton(),
54
- ],
55
- }),
56
- ]);
57
- }
58
-
59
- formatItem(item: T): F {
60
- return {
61
- id: item.id,
62
- name: item.name || "",
63
- desc: item.desc || "",
64
- } as F;
65
- }
66
- }
67
-
68
- defineDataTable(RoleTable);
@@ -1,5 +0,0 @@
1
- export * from "./RoleForm";
2
- export * from "./RoleTable";
3
- export * from "./role-permission-point";
4
- export * from "./role-route";
5
- export * from "./RolePermissionConfigTable";
@@ -1,27 +0,0 @@
1
- import { DataTable, DataTableOptions, TableColumn } from "@maketribe/dm";
2
-
3
- export type RolePermissionPoint = {
4
- id: string;
5
- permissionPointDefId: string;
6
- roleId: string;
7
- };
8
-
9
- export class RolePermissionPointTable extends DataTable<RolePermissionPoint> {
10
- constructor(options: DataTableOptions = {}) {
11
- super({
12
- name: "ms-role-permission-point",
13
- ...options,
14
- interfaceURL: {
15
- list: `/api/dv/ms-role-permission-point/allList`,
16
- },
17
- });
18
- }
19
-
20
- protected async initialize() {
21
- this.setColumns([
22
- new TableColumn({ name: "id", visible: false }),
23
- new TableColumn({ name: "roleId" }),
24
- new TableColumn({ name: "permissionPointDefId" }),
25
- ]);
26
- }
27
- }
@@ -1 +0,0 @@
1
- export * from "./RolePermissionPointTable";
@@ -1,28 +0,0 @@
1
- import { DataTable, DataTableOptions, TableColumn } from "@maketribe/dm";
2
-
3
- export type RoleRoute = {
4
- id: string;
5
- roleId: string;
6
- routeId: string;
7
- };
8
-
9
- export class RoleRouteTable extends DataTable<RoleRoute> {
10
- constructor(options: DataTableOptions = {}) {
11
- super({
12
- name: "ms-role-route",
13
- ...options,
14
-
15
- interfaceURL: {
16
- list: `/api/dv/ms-role-route/allList`,
17
- },
18
- });
19
- }
20
-
21
- protected async initialize() {
22
- this.setColumns([
23
- new TableColumn({ name: "id", visible: false }),
24
- new TableColumn({ name: "roleId" }),
25
- new TableColumn({ name: "routeId" }),
26
- ]);
27
- }
28
- }
@@ -1 +0,0 @@
1
- export * from "./RoleRouteTable";
@@ -1,92 +0,0 @@
1
- import {
2
- DataForm,
3
- DataFormOptions,
4
- FormColumn,
5
- defineDataForm,
6
- } from "@maketribe/dm";
7
- import { RouteType } from "../../constants";
8
- import { MenuTable } from "../menu/MenuTable";
9
-
10
- export type RouteResult = {
11
- id: string;
12
- name: string;
13
- title: string;
14
- type: number;
15
- menuId: string;
16
- iconName: string;
17
- path?: string;
18
- };
19
-
20
- export type Route = {
21
- id: string;
22
- name: string;
23
- title: string;
24
- type: RouteType;
25
- menuId: string;
26
- iconName: string;
27
- path: string;
28
- };
29
-
30
- export class RouteForm extends DataForm<RouteResult, Route> {
31
- constructor(options: DataFormOptions = {}) {
32
- super({ name: "ms-route", ...options });
33
- }
34
-
35
- protected async initialize() {
36
- this.setColumns([
37
- new FormColumn({ name: "id", label: "编号" }),
38
- new FormColumn({ name: "name", label: "路由名", required: true }),
39
- new FormColumn({ name: "title", label: "路由描述", required: true }),
40
- new FormColumn({
41
- name: "menuId",
42
- label: "所属菜单",
43
- componentInfo: "MKFormDataTableSelect",
44
- required: true,
45
- componentProps: {
46
- labelFieldName: "title",
47
- dataTable: new MenuTable({ pageSize: 10 }),
48
- },
49
- }),
50
- new FormColumn({
51
- name: "iconName",
52
- label: "图标",
53
- componentInfo: "MKFormIconSelect",
54
- }),
55
- new FormColumn({ name: "path", label: "路径" }),
56
- new FormColumn({
57
- name: "type",
58
- label: "路由类型",
59
- defaultValue: "0",
60
- componentInfo: "MKFormDataSelect",
61
- required: true,
62
- componentProps: {
63
- options: [
64
- { value: "0", label: "站内路由" },
65
- { value: "1", label: "站外链接" },
66
- ],
67
- },
68
- }),
69
- ]);
70
- }
71
-
72
- formatSubmitData(data: any) {
73
- return {
74
- ...data,
75
- iconName: data.iconName || null,
76
- };
77
- }
78
-
79
- formatItem(item: RouteResult): Route {
80
- return {
81
- id: item.id,
82
- name: item.name || "",
83
- title: item.title || "",
84
- type: [0, "0"].includes(item.type) ? RouteType.ROUTE : RouteType.LINK,
85
- menuId: item.menuId,
86
- iconName: item.iconName || "",
87
- path: item.path || "",
88
- };
89
- }
90
- }
91
-
92
- defineDataForm(RouteForm);