@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,100 +0,0 @@
1
- import { ElDropdown, ElDropdownItem } from "element-plus";
2
- import { MKSvgIcon } from "@maketribe/dm-ui";
3
- import { Fragment, computed, defineComponent, unref } from "vue";
4
- import { MKHeaderTools } from "../tools";
5
- import { MKHeaderBreadcrumb } from "../breadcrumb";
6
- import { useRouter } from "vue-router";
7
- import { MSAppClient } from "../../../../../MSAppClient";
8
-
9
- type UserDropdownItem = { title: string; icon: string; callback: () => any };
10
-
11
- export default defineComponent({
12
- name: "MKHeaderNav",
13
- setup() {
14
- const vueRouter = useRouter();
15
-
16
- const msAppClient = MSAppClient.instance!;
17
- const userSession = msAppClient.userSession!;
18
-
19
- const userInfo = computed(() => userSession.userInfo);
20
-
21
- const dropdownItems: UserDropdownItem[] = [
22
- // {
23
- // title: "个人中心",
24
- // icon: "User",
25
- // callback: () => {
26
- // vueRouter.push({ name: "profile" });
27
- // },
28
- // },
29
- {
30
- title: "退出登陆",
31
- icon: "SwitchButton",
32
- callback: () => {
33
- msAppClient.logout();
34
- vueRouter.push({ name: "login" });
35
- },
36
- },
37
- ];
38
-
39
- const isCollapse = computed({
40
- get: () => userSession.menu.isCollapsed,
41
- set: (v) => (userSession.menu.isCollapsed = v),
42
- });
43
-
44
- const handleToggleMenu = () => {
45
- isCollapse.value = !isCollapse.value;
46
- };
47
-
48
- const handleCommand = (command: UserDropdownItem) => {
49
- command.callback();
50
- };
51
-
52
- return () => {
53
- const _userInfo = unref(userInfo);
54
-
55
- const userDropdown = _userInfo ? (
56
- <ElDropdown
57
- class="mk-header-nav__user"
58
- onCommand={handleCommand}
59
- v-slots={{
60
- dropdown: () => {
61
- const items = dropdownItems.map((item) => (
62
- <ElDropdownItem command={item}>
63
- <MKSvgIcon iconClass={item.icon} /> {item.title}
64
- </ElDropdownItem>
65
- ));
66
-
67
- return <Fragment>{items}</Fragment>;
68
- },
69
- }}
70
- >
71
- <span class="mk-header-nav__user-info">
72
- {_userInfo.nickName}
73
- <MKSvgIcon class="mk-header-nav__arrow" iconClass="ArrowDownBold" />
74
- </span>
75
- </ElDropdown>
76
- ) : null;
77
-
78
- const asideFolld = unref(isCollapse) ? (
79
- <MKSvgIcon iconClass="Expand" />
80
- ) : (
81
- <MKSvgIcon iconClass="Fold" />
82
- );
83
-
84
- return (
85
- <div class="mk-header-nav">
86
- <div class="mk-header-nav__main">
87
- <span class="mk-header-nav__aside-fold" onClick={handleToggleMenu}>
88
- {asideFolld}
89
- </span>
90
- <MKHeaderBreadcrumb />
91
- </div>
92
- <div class="mk-header-nav__tools">
93
- <MKHeaderTools />
94
- {userDropdown}
95
- </div>
96
- </div>
97
- );
98
- };
99
- },
100
- });
@@ -1,5 +0,0 @@
1
- import HeaderTabs from "./tabs";
2
-
3
- export const MKHeaderTabs = HeaderTabs;
4
-
5
- export default MKHeaderTabs;
@@ -1,72 +0,0 @@
1
- import { Fragment, Ref, computed, defineComponent, ref, unref } from "vue";
2
- import { ElTabPane, ElTabs, TabPaneName } from "element-plus";
3
- import { MKSvgIcon } from "@maketribe/dm-ui";
4
- import { MSAppClient } from "../../../../../MSAppClient";
5
- import { Tab } from "../../../../../tabs";
6
-
7
- export default defineComponent({
8
- name: "MKHeaderTabs",
9
- setup() {
10
- const userSession = MSAppClient.instance!.userSession!;
11
- const tabs = userSession.tabs;
12
- const router = userSession.router;
13
-
14
- const currentTab = ref(tabs.getCurrentTab()) as Ref<Tab | null>;
15
- const tabList = ref(tabs.getTabs()) as unknown as Ref<Tab[]>;
16
-
17
- const allowClose = computed(() => unref(tabList).length > 1);
18
-
19
- tabs.tabsChangeEvent.on(({ tabs }) => {
20
- tabList.value = tabs;
21
- });
22
-
23
- tabs.currentTabChangeEvent.on(({ currentTab: current }) => {
24
- currentTab.value = current;
25
- });
26
-
27
- const handleCloseTab = (id: TabPaneName) => {
28
- const tab = tabs.findTabByID(`${id}`);
29
-
30
- if (tab) {
31
- tabs.closeTab(tab);
32
- }
33
- };
34
-
35
- const handleTabItemSelect = (id: TabPaneName) => {
36
- const tab = tabs.findTabByID(`${id}`);
37
-
38
- if (tab) {
39
- router.changeRoute(tab.realRoute);
40
- }
41
- };
42
-
43
- return () => {
44
- const tabPanes = unref(tabList).map((tab) => (
45
- <ElTabPane
46
- name={tab.id}
47
- v-slots={{
48
- label: () => (
49
- <Fragment>
50
- <MKSvgIcon iconClass={tab.route.iconName} />
51
- {tab.title}
52
- </Fragment>
53
- ),
54
- }}
55
- />
56
- ));
57
-
58
- return (
59
- <div class="mk-header-tabs">
60
- <ElTabs
61
- modelValue={unref(currentTab)?.id ?? ""}
62
- onTabChange={handleTabItemSelect}
63
- onTabRemove={handleCloseTab}
64
- closable={unref(allowClose)}
65
- >
66
- {tabPanes}
67
- </ElTabs>
68
- </div>
69
- );
70
- };
71
- },
72
- });
@@ -1,5 +0,0 @@
1
- import HeaderTools from "./tools";
2
-
3
- export const MKHeaderTools = HeaderTools;
4
-
5
- export default MKHeaderTools;
@@ -1,15 +0,0 @@
1
- import { MKSvgIcon } from "@maketribe/dm-ui";
2
- import { defineComponent } from "vue";
3
-
4
- export default defineComponent({
5
- name: "MKHeaderTools",
6
- setup() {
7
- return () => {
8
- return (
9
- <div class="mk-header-tools">
10
- {/* <MKSvgIcon class="mk-header-tools__item" iconClass="Refresh" /> */}
11
- </div>
12
- );
13
- };
14
- },
15
- });
@@ -1,6 +0,0 @@
1
- import { withInstall } from "@maketribe/utils";
2
- import ManagerSystem from "./manager-system";
3
-
4
- export const MKManagerSystem = withInstall(ManagerSystem);
5
-
6
- export default MKManagerSystem;
@@ -1,25 +0,0 @@
1
- import { defineComponent } from "vue";
2
- import { MKSystemProvider } from "../../components";
3
- import MKAside from "./components/aside";
4
- import MKHeader from "./components/header";
5
-
6
- export default defineComponent({
7
- name: "MKManagerSystem",
8
- setup(props, { slots }) {
9
- return () => {
10
- return (
11
- <MKSystemProvider>
12
- <div class="mk-manager-system">
13
- <div class="mk-manager-system__aside">
14
- <MKAside />
15
- </div>
16
- <div class="mk-manager-system__main">
17
- <MKHeader class="mk-manager-system__header" />
18
- <div class="mk-manager-system__content">{slots.default?.()}</div>
19
- </div>
20
- </div>
21
- </MKSystemProvider>
22
- );
23
- };
24
- },
25
- });
package/src/menu/Menu.ts DELETED
@@ -1,142 +0,0 @@
1
- import { Disposable, Event } from "@maketribe/utils";
2
- import { PermissionPointManager } from "../PermissionPointManager";
3
- import { Router } from "../Router";
4
- import { MenuResult } from "../dataview";
5
- import { MenuNode } from "./MenuNode";
6
-
7
- export class Menu extends Disposable {
8
- rootMenus: MenuNode[] = [];
9
-
10
- _currentMenu: MenuNode | null = null;
11
-
12
- isCollapsed: boolean = false;
13
-
14
- permissionPointManager: PermissionPointManager;
15
-
16
- router: Router;
17
-
18
- currentMenuChangeEvent: Event<{ currentMenu: MenuNode | null }> =
19
- this.register(new Event());
20
-
21
- constructor(permissionPointManager: PermissionPointManager, router: Router) {
22
- super();
23
- this.permissionPointManager = permissionPointManager;
24
- this.router = router;
25
- }
26
-
27
- setMenus(menus: MenuResult[]) {
28
- const menuNodes = menus
29
- .sort((menu1, menu2) => {
30
- const sort1 = parseInt(menu1.sort) || 0;
31
- const sort2 = parseInt(menu2.sort) || 0;
32
-
33
- return sort2 - sort1;
34
- })
35
- .map((menuInfo) => {
36
- const route = this.router.getRouteByID(menuInfo.routeId);
37
-
38
- const permissionPoints =
39
- this.permissionPointManager.getPermissionPointsByMenuID(menuInfo.id);
40
-
41
- return new MenuNode({
42
- id: menuInfo.id,
43
- route,
44
- iconName: menuInfo.iconName || "",
45
- title: menuInfo.title || "",
46
- permissionPoints,
47
- children: [],
48
- });
49
- });
50
-
51
- const rootMenuNodes: MenuNode[] = [];
52
-
53
- for (let i = 0, len = menuNodes.length; i < len; i++) {
54
- const menuNodeInfo = menus[i];
55
- const menuNode = menuNodes[i];
56
-
57
- menuNode.iconName = menuNode.iconName || "default-menu";
58
-
59
- if (!menuNodeInfo.pid) {
60
- rootMenuNodes.push(menuNode);
61
- }
62
-
63
- for (const route of this.router.getRoutesByMenuID(menuNode.id)) {
64
- route.iconName = route.iconName || menuNode.iconName;
65
- }
66
-
67
- for (let j = 0; j < len; j++) {
68
- const menuNodeInfoInner = menus[j];
69
- const menuNodeInner = menuNodes[j];
70
-
71
- if (menuNodeInfoInner.pid === menuNodeInfo.id) {
72
- menuNode.children.push(menuNodeInner);
73
- menuNodeInner.parent = menuNode;
74
- }
75
- }
76
- }
77
-
78
- this.rootMenus = rootMenuNodes;
79
- }
80
-
81
- findMenuNodeByID(id: MenuNode["id"]): MenuNode | null {
82
- if (!id) {
83
- return null;
84
- }
85
-
86
- let list = this.rootMenus.slice();
87
-
88
- for (let i = 0; i < list.length; i++) {
89
- const node = list[i];
90
-
91
- if (node.id === id) {
92
- return node;
93
- }
94
-
95
- list = list.concat(node.children);
96
- }
97
-
98
- return null;
99
- }
100
-
101
- async setCurrentMenuNode(node: MenuNode | null) {
102
- this._currentMenu = node;
103
-
104
- this.isCollapsed = false;
105
-
106
- this.currentMenuChangeEvent.emit({ currentMenu: node });
107
-
108
- return true;
109
- }
110
-
111
- getCurrentMenuNode() {
112
- return this._currentMenu;
113
- }
114
-
115
- getFirstLeafMenuNode(menus: MenuNode[] = this.rootMenus) {
116
- function _getFirstLeafMenuNode(menus: MenuNode[]): MenuNode | null {
117
- if (!menus.length) {
118
- return null;
119
- }
120
-
121
- return _getFirstLeafMenuNode(menus[0].children) || menus[0];
122
- }
123
-
124
- return _getFirstLeafMenuNode(menus);
125
- }
126
-
127
- getMenuNodeByID(id: string): MenuNode | null {
128
- let nodes = this.rootMenus.slice();
129
-
130
- for (let i = 0; i < nodes.length; i++) {
131
- const node = nodes[i];
132
-
133
- if (node.id === id) {
134
- return node;
135
- }
136
-
137
- nodes = nodes.concat(node.children);
138
- }
139
-
140
- return null;
141
- }
142
- }
@@ -1,49 +0,0 @@
1
- import { PermissionPoint } from "../PermissionPointManager";
2
- import { Route } from "../dataview";
3
-
4
- interface MenuNodeOptions {
5
- id: string;
6
- route?: Route | null;
7
- iconName: string;
8
- title: string;
9
- permissionPoints: PermissionPoint[];
10
- children: MenuNode[];
11
- parent?: MenuNode | null;
12
- }
13
-
14
- export class MenuNode {
15
- id: string;
16
-
17
- iconName: string;
18
- title: string;
19
- permissionPoints: PermissionPoint[];
20
- route: Route | null;
21
- children: MenuNode[];
22
- parent: MenuNode | null;
23
-
24
- constructor(options: MenuNodeOptions) {
25
- const { id, children, route, iconName, title, permissionPoints } = options;
26
-
27
- this.id = id;
28
- this.route = route ?? null;
29
- this.iconName = iconName;
30
- this.title = title;
31
- this.children = children;
32
- this.parent = options.parent ?? null;
33
- this.permissionPoints = permissionPoints;
34
- }
35
-
36
- getMenuNodePath(): MenuNode[] {
37
- const path: MenuNode[] = [];
38
-
39
- let menuNode: MenuNode | null = this;
40
-
41
- while (menuNode) {
42
- path.unshift(menuNode);
43
-
44
- menuNode = menuNode.parent;
45
- }
46
-
47
- return path;
48
- }
49
- }
package/src/menu/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./Menu";
2
- export * from "./MenuNode";
@@ -1,49 +0,0 @@
1
- <template>
2
- <MKDataFormPage
3
- :data-form="dataForm"
4
- @submitted="handleCancel"
5
- @cancel="handleCancel"
6
- @error="handleError"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import { unref, computed, watch, Ref, reactive } from "vue";
12
- import { useRouter } from "vue-router";
13
- import { ElMessage } from "element-plus";
14
- import { DataForm, DataModelCache } from "@maketribe/dm";
15
- import { useCurrentTab } from "../../../../composables/use-current-tab";
16
-
17
- const router = useRouter();
18
-
19
- const dataForm: Ref<DataForm | null> = computed(() => {
20
- const dataForm = DataModelCache.instance.getDataForm(
21
- unref(router.currentRoute).meta.name as string
22
- );
23
-
24
- return dataForm ? (reactive(dataForm) as DataForm) : null;
25
- });
26
-
27
- const currentTab = useCurrentTab();
28
-
29
- const handleError = (response: any) => {
30
- ElMessage.error({ message: response.data.msg || "网络异常" });
31
- };
32
-
33
- const handleCancel = async () => {
34
- await router.push({ name: `${unref(router.currentRoute).meta.name}/list` });
35
- currentTab!.close();
36
- };
37
-
38
- watch(
39
- dataForm,
40
- (dataForm) => {
41
- if (!dataForm) {
42
- return;
43
- }
44
-
45
- unref(dataForm)?.addRecord();
46
- },
47
- { immediate: true }
48
- );
49
- </script>
@@ -1,55 +0,0 @@
1
- <template>
2
- <MKDataFormPage
3
- :data-form="dataForm"
4
- @submitted="handleCancel"
5
- @cancel="handleCancel"
6
- @error="handleError"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import { unref, computed, watch, Ref, reactive } from "vue";
12
- import { useRouter } from "vue-router";
13
- import { ElMessage } from "element-plus";
14
- import { DataForm, DataModelCache } from "@maketribe/dm";
15
- import { useCurrentTab } from "../../../../composables/use-current-tab";
16
-
17
- const router = useRouter();
18
-
19
- const id = computed(() => unref(router.currentRoute).params.id as string);
20
-
21
- const dataForm: Ref<DataForm | null> = computed(() => {
22
- const dataForm = DataModelCache.instance.getDataForm(
23
- unref(router.currentRoute).meta.name as string
24
- );
25
-
26
- return dataForm ? (reactive(dataForm) as DataForm) : null;
27
- });
28
-
29
- const currentTab = useCurrentTab();
30
-
31
- const handleError = (response: any) => {
32
- ElMessage.error({ message: response.data.msg || "网络异常" });
33
- };
34
-
35
- const handleCancel = async () => {
36
- await router.push({ name: `${unref(router.currentRoute).meta.name}/list` });
37
- currentTab!.close();
38
- };
39
-
40
- watch(
41
- dataForm,
42
- (dataForm) => {
43
- if (!dataForm) {
44
- return;
45
- }
46
-
47
- if (!unref(id)) {
48
- return;
49
- }
50
-
51
- unref(dataForm)?.editRecord(unref(id));
52
- },
53
- { immediate: true }
54
- );
55
- </script>
@@ -1,56 +0,0 @@
1
- <template>
2
- <MKDataTablePage :data-table="dataTable" />
3
- </template>
4
- <script setup lang="ts">
5
- import { unref, computed, reactive, watch } from "vue";
6
- import { useRouter } from "vue-router";
7
- import { Disposable } from "@maketribe/utils";
8
- import { DataModelCache, DataTable } from "@maketribe/dm";
9
-
10
- const router = useRouter();
11
-
12
- const props = defineProps({
13
- dataTable: { type: DataTable<any> },
14
- });
15
-
16
- const dataTable = computed(() => {
17
- const dataTable =
18
- props.dataTable ||
19
- DataModelCache.instance.getDataTable(
20
- unref(router.currentRoute).meta.name as string
21
- );
22
-
23
- return dataTable ? (reactive(dataTable) as DataTable) : null;
24
- });
25
-
26
- watch(
27
- dataTable,
28
- (dataTable, _, onCleanup) => {
29
- if (!dataTable) {
30
- return;
31
- }
32
-
33
- const disposable = new Disposable();
34
-
35
- disposable.register(
36
- dataTable.addRecordEvent.on(() => {
37
- router.push({ name: `${unref(dataTable).name}/add` });
38
- })
39
- );
40
-
41
- disposable.register(
42
- dataTable.editRecordEvent.on(({ item }) => {
43
- router.push({
44
- name: `${unref(dataTable).name}/edit`,
45
- params: { id: item[unref(dataTable)?.primaryKey as string] },
46
- });
47
- })
48
- );
49
-
50
- onCleanup(() => {
51
- disposable.dispose();
52
- });
53
- },
54
- { immediate: true }
55
- );
56
- </script>
@@ -1,31 +0,0 @@
1
- <template>
2
- <MKDataTreePage
3
- :data-table="dataTable"
4
- :data-form="dataForm"
5
- :props="{ label: 'name', children: 'children' }"
6
- />
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { computed, reactive, unref } from "vue";
11
- import { useRouter } from "vue-router";
12
- import { DataForm, DataModelCache, DataTable } from "@maketribe/dm";
13
-
14
- const router = useRouter();
15
-
16
- const dataTable = computed(() => {
17
- const dataTable = DataModelCache.instance.getDataTable(
18
- unref(router.currentRoute).meta.name as string
19
- );
20
-
21
- return dataTable ? (reactive(dataTable) as DataTable) : null;
22
- });
23
-
24
- const dataForm = computed(() => {
25
- const dataForm = DataModelCache.instance.getDataForm(
26
- unref(router.currentRoute).meta.name as string
27
- );
28
-
29
- return dataForm ? (reactive(dataForm) as DataForm) : null;
30
- });
31
- </script>
@@ -1,38 +0,0 @@
1
- <template>
2
- <DefaultListPage :data-table="memberTable" />
3
-
4
- <ElDialog v-model="isShowActiveMemberForm" class="dialogClass">
5
- <MKDataForm :data-form="activeMemberForm" />
6
- <template #footer>
7
- <ElButton @click="handleActiveMemberConfirm" type="primary">
8
- 确定
9
- </ElButton>
10
- </template>
11
- </ElDialog>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import { computed, reactive, ref } from "vue";
16
- import { ElButton, ElDialog } from "element-plus";
17
- import { DataModelCache } from "@maketribe/dm";
18
- import DefaultListPage from "../default/index.vue";
19
- import { MemberTable } from "../../../../dataview";
20
-
21
- const isShowActiveMemberForm = ref(false);
22
-
23
- const memberTable = reactive(
24
- DataModelCache.instance.getDataTable("ms-member")!
25
- ) as MemberTable;
26
- const activeMemberForm = computed(() => memberTable.activeMemberForm);
27
-
28
- memberTable.activeMemberEvent.on(async (member) => {
29
- memberTable.activeMemberForm.getLoadingManager().startLoading();
30
- await memberTable.activeMemberForm.editRecord(member.id);
31
- memberTable.activeMemberForm.getLoadingManager().completeLoading();
32
- isShowActiveMemberForm.value = true;
33
- });
34
-
35
- const handleActiveMemberConfirm = async () => {
36
- memberTable.approveMember();
37
- };
38
- </script>
@@ -1,28 +0,0 @@
1
- <template>
2
- <DefaultListPage :data-table="roleTable" />
3
-
4
- <ElDialog v-model="isShowDialog" appendToBody width="80%">
5
- <MKRolePermissionConfig
6
- :rolePermissionConfigTable="rolePermissionConfigTable"
7
- />
8
- </ElDialog>
9
- </template>
10
- <script setup lang="ts">
11
- import { reactive, ref } from "vue";
12
- import DefaultListPage from "../default/index.vue";
13
- import { RoleTable, RolePermissionConfigTable } from "../../../../dataview";
14
- import { MKRolePermissionConfig } from "../../../../components";
15
-
16
- const roleTable = reactive(new RoleTable()) as RoleTable;
17
- const rolePermissionConfigTable = reactive(
18
- new RolePermissionConfigTable()
19
- ) as RolePermissionConfigTable;
20
-
21
- const isShowDialog = ref(false);
22
-
23
- roleTable.configRolePermissionEvent.on(({ item }) => {
24
- rolePermissionConfigTable.selectRolePermission(item.id);
25
-
26
- isShowDialog.value = true;
27
- });
28
- </script>