@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,71 +0,0 @@
1
- import {
2
- DataTable,
3
- DataTableOptions,
4
- TableColumn,
5
- FilterColumn,
6
- TableActionColumn,
7
- defineDataTable,
8
- } from "@maketribe/dm";
9
- import { Route, RouteResult } from "./RouteForm";
10
- import { RouteType } from "../../constants";
11
-
12
- export class RouteTable extends DataTable<RouteResult, Route> {
13
- constructor(options: DataTableOptions = {}) {
14
- super({ name: "ms-route", ...options });
15
- }
16
-
17
- protected async initialize() {
18
- this.dataFilter.setColumns([
19
- new FilterColumn({
20
- name: "name",
21
- label: "路由名",
22
- componentInfo: "MKConditionInput",
23
- }),
24
- new FilterColumn({
25
- name: "title",
26
- label: "路由描述",
27
- componentInfo: "MKConditionInput",
28
- }),
29
- new FilterColumn({
30
- name: "type",
31
- label: "路由类型",
32
- componentInfo: "MKConditionSelect",
33
- componentProps: {
34
- options: [
35
- { value: 0, label: "站内路由" },
36
- { value: 1, label: "站外链接" },
37
- ],
38
- },
39
- }),
40
- ]);
41
-
42
- this.setColumns([
43
- new TableColumn({ name: "id", label: "编号", visible: false }),
44
- new TableColumn({ name: "name", label: "路由名" }),
45
- new TableColumn({ name: "title", label: "路由描述" }),
46
- new TableColumn({
47
- name: "type",
48
- label: "路由类型",
49
- componentInfo: "MKColumnObjectMappingText",
50
- componentProps: {
51
- mapping: { 0: "站内路由", 1: "站外链接" },
52
- },
53
- }),
54
- new TableActionColumn(),
55
- ]);
56
- }
57
-
58
- formatItem(item: RouteResult): Route {
59
- return {
60
- id: item.id,
61
- name: item.name || "",
62
- title: item.title || "",
63
- type: item.type === 0 ? RouteType.ROUTE : RouteType.LINK,
64
- menuId: item.menuId,
65
- iconName: item.iconName || "",
66
- path: item.path || "",
67
- };
68
- }
69
- }
70
-
71
- defineDataTable(RouteTable);
@@ -1,2 +0,0 @@
1
- export * from "./RouteForm";
2
- export * from "./RouteTable";
@@ -1,84 +0,0 @@
1
- import { App, reactive } from "vue";
2
- import {
3
- createRouter,
4
- createWebHashHistory,
5
- Router as VueRouter,
6
- } from "vue-router";
7
- import { MSAppClient } from "./MSAppClient";
8
- import { HttpRequest, WebHttpRequest } from "@maketribe/request";
9
- import { MSAPPCLIENT_CONTEXT_KEY } from "./tokens";
10
- import { Router } from "vue-router";
11
-
12
- export type InitMsApplicationOptions = {
13
- routes: any;
14
- vueRouter?: VueRouter;
15
- app: App;
16
- router?: Router;
17
- appID: string;
18
- logo?: string;
19
- projectName: string;
20
- locale?: string;
21
- httpRequest?: HttpRequest;
22
- };
23
-
24
- export const initApplication = async (options: InitMsApplicationOptions) => {
25
- const app = options.app;
26
-
27
- const vueRouter =
28
- options.router ??
29
- createRouter({
30
- history: createWebHashHistory(),
31
- routes: [],
32
- });
33
-
34
- const routes = Object.values(options.routes).map((item: any) => {
35
- const component = item.default ?? item;
36
-
37
- return {
38
- ...component.mkRoute,
39
- component,
40
- children: [],
41
- meta: {
42
- ...component.mkRoute.meta,
43
- },
44
- };
45
- });
46
-
47
- for (const route of routes) {
48
- for (const innerRoute of routes) {
49
- if (innerRoute.parent === route.name) {
50
- route.children.push(innerRoute);
51
- }
52
- }
53
- }
54
-
55
- routes
56
- .filter((route) => !route.parent)
57
- .forEach((route) => {
58
- vueRouter.addRoute(route);
59
- });
60
-
61
- const msAppClient = reactive(
62
- new MSAppClient({
63
- appID: options!.appID,
64
- logo: options!.logo ?? "",
65
- projectName: options!.projectName,
66
- httpRequest: options.httpRequest ?? new WebHttpRequest(),
67
- origin: location.origin,
68
- locale: options!.locale,
69
- vueRouter,
70
- })
71
- ) as unknown as MSAppClient;
72
-
73
- app.provide(MSAPPCLIENT_CONTEXT_KEY, { msAppClient });
74
-
75
- MSAppClient.instance = msAppClient;
76
-
77
- (window as any).msAppClient = msAppClient;
78
-
79
- await msAppClient.init();
80
-
81
- app.use(msAppClient.vueRouter);
82
-
83
- return msAppClient;
84
- };
package/src/installer.ts DELETED
@@ -1,26 +0,0 @@
1
- import { Plugin, reactive } from "vue";
2
- import { makeInstaller } from "@maketribe/utils";
3
- import { ConfigProviderContext } from "@maketribe/dm-ui";
4
-
5
- import {
6
- MKMaterialList,
7
- MKMaterialSelect,
8
- MKSystemProvider,
9
- MKRolePermissionConfig,
10
- MKImageSelect,
11
- MKVerifyDialog,
12
- } from "./components";
13
-
14
- const components: Plugin[] = [
15
- MKSystemProvider,
16
- MKMaterialList,
17
- MKMaterialSelect,
18
- MKRolePermissionConfig,
19
- MKImageSelect,
20
- MKVerifyDialog,
21
- ];
22
-
23
- export const installer = makeInstaller<ConfigProviderContext>(
24
- components,
25
- "1.0.0-dev"
26
- );
@@ -1 +0,0 @@
1
- export * from "./manager-system";
@@ -1,45 +0,0 @@
1
- import { Ref, computed, defineComponent, ref, unref } from "vue";
2
- import MKAsideBar from "./bar";
3
- import MKAsidePanel from "./panel";
4
- import { MenuNode } from "../../../../menu";
5
- import { MSAppClient } from "../../../../MSAppClient";
6
-
7
- export default defineComponent({
8
- name: "MKMenu",
9
- setup() {
10
- const menu = MSAppClient.instance!.userSession!.menu;
11
- const isCollapse = computed(() => menu.isCollapsed);
12
-
13
- const currentMenuModule: Ref<MenuNode | null> = ref(
14
- menu.getCurrentMenuNode()
15
- ? findRootMenu(menu.getCurrentMenuNode()!)
16
- : null
17
- );
18
-
19
- menu.currentMenuChangeEvent.on(({ currentMenu: menu }) => {
20
- currentMenuModule.value = menu ? findRootMenu(menu) : null;
21
- });
22
-
23
- function findRootMenu(menuNode: MenuNode) {
24
- while (menuNode?.parent) {
25
- menuNode = menuNode.parent;
26
- }
27
-
28
- return menuNode;
29
- }
30
-
31
- return () => {
32
- const _currentMenuModule = unref(currentMenuModule) as MenuNode;
33
-
34
- return (
35
- <div class="mk-aside">
36
- <MKAsideBar menuModule={unref(currentMenuModule) as MenuNode} />
37
- <MKAsidePanel
38
- collapse={unref(isCollapse)}
39
- menuModule={_currentMenuModule}
40
- />
41
- </div>
42
- );
43
- };
44
- },
45
- });
@@ -1,79 +0,0 @@
1
- import { defineComponent } from "vue";
2
- import { ElScrollbar } from "element-plus";
3
- import { MenuNode } from "../../../../../menu";
4
- import { MSAppClient } from "../../../../../MSAppClient";
5
- import { MKSvgIcon } from "@maketribe/dm-ui";
6
-
7
- export default defineComponent({
8
- name: "MKAsideBar",
9
- props: {
10
- menuModule: {
11
- type: MenuNode,
12
- },
13
- },
14
- setup(props) {
15
- const msAppClient = MSAppClient.instance!;
16
- const userSession = msAppClient.userSession!;
17
-
18
- const menu = userSession.menu;
19
- const router = userSession.router;
20
-
21
- const handleMenuItemClick = async (item: MenuNode) => {
22
- if (item.children.length) {
23
- const _item = menu.getFirstLeafMenuNode(item.children);
24
-
25
- if (!_item) {
26
- return;
27
- }
28
-
29
- item = _item;
30
- }
31
-
32
- if (item.route) {
33
- router.changeRoute({ name: item.route.name });
34
- }
35
- };
36
-
37
- return () => {
38
- const logo = msAppClient.logo ? (
39
- <div class="mk-aside-bar__logo">
40
- <div
41
- class="mk-logo"
42
- style={{ backgroundImage: `url(${msAppClient.logo})` }}
43
- />
44
- </div>
45
- ) : null;
46
-
47
- const menuItems = menu.rootMenus.map((menu) => (
48
- <div
49
- class={[
50
- "mk-aside-bar__item",
51
- props.menuModule?.id === menu.id ? "is-active" : "",
52
- ]}
53
- >
54
- <div
55
- class="mk-aside-bar__item-main"
56
- onClick={() => handleMenuItemClick(menu)}
57
- >
58
- <div>
59
- <MKSvgIcon
60
- class="mk-aside-bar__item-icon"
61
- iconClass={menu.iconName}
62
- />
63
- <span class="mk-aside-bar__item-label">{menu.title}</span>
64
- </div>
65
- </div>
66
- </div>
67
- ));
68
-
69
- return (
70
- <div class="mk-aside-bar">
71
- {logo}
72
- <div class="mk-aside-bar__icons">
73
- <ElScrollbar height="100%">{menuItems}</ElScrollbar>
74
- </div>
75
- </div>
76
- );
77
- };
78
- },
79
- });
@@ -1,5 +0,0 @@
1
- import AsideBar from "./bar";
2
-
3
- export const MKAsideBar = AsideBar;
4
-
5
- export default MKAsideBar;
@@ -1,5 +0,0 @@
1
- import Aside from "./aside";
2
-
3
- export const MKAside = Aside;
4
-
5
- export default MKAside;
@@ -1,5 +0,0 @@
1
- import AsideMenu from "./menu";
2
-
3
- export const MKAsideMenu = AsideMenu;
4
-
5
- export default MKAsideMenu;
@@ -1,63 +0,0 @@
1
- import { Fragment, defineComponent } from "vue";
2
- import { ElMenuItem, ElSubMenu } from "element-plus";
3
- import { MenuNode } from "../../../../../menu";
4
- import { MKSvgIcon } from "@maketribe/dm-ui";
5
-
6
- const MKAsideMenuItem = defineComponent({
7
- name: "MKAsideMenuItem",
8
- props: {
9
- node: {
10
- type: MenuNode,
11
- required: true,
12
- },
13
- },
14
- setup(props) {
15
- return () => {
16
- if (!props.node.children.length) {
17
- const icon = props.node.iconName ? (
18
- <MKSvgIcon
19
- class="mk-menu-item__icon"
20
- iconClass={props.node.iconName}
21
- />
22
- ) : null;
23
-
24
- return (
25
- <ElMenuItem index={props.node.id}>
26
- {icon}
27
- {props.node.title}
28
- </ElMenuItem>
29
- );
30
- }
31
-
32
- const items = props.node.children.map((node) => (
33
- <MKAsideMenuItem node={node} key={node.id} />
34
- ));
35
-
36
- return (
37
- <ElSubMenu
38
- index={props.node.id}
39
- v-slots={{
40
- title: () => {
41
- const icon = props.node.iconName ? (
42
- <MKSvgIcon
43
- class="mk-menu-item__icon"
44
- iconClass={props.node.iconName}
45
- />
46
- ) : null;
47
- return (
48
- <Fragment>
49
- {icon}
50
- {props.node.title}
51
- </Fragment>
52
- );
53
- },
54
- }}
55
- >
56
- {items}
57
- </ElSubMenu>
58
- );
59
- };
60
- },
61
- });
62
-
63
- export default MKAsideMenuItem;
@@ -1,51 +0,0 @@
1
- import { defineComponent, ref, unref } from "vue";
2
- import { ElMenu } from "element-plus";
3
- import { MenuNode } from "../../../../../menu";
4
- import { MSAppClient } from "../../../../../MSAppClient";
5
- import MKAsideMenuItem from "./menu-item";
6
-
7
- export default defineComponent({
8
- name: "MKAsideMenu",
9
- props: {
10
- menus: {
11
- type: Array<MenuNode>,
12
- required: true,
13
- },
14
- },
15
- setup(props) {
16
- const userSession = MSAppClient.instance!.userSession!;
17
-
18
- const menu = userSession.menu;
19
- const router = userSession.router;
20
-
21
- const currentMenuID = ref(menu.getCurrentMenuNode()?.id || "");
22
-
23
- const handleSelect = async (id: string) => {
24
- const item = menu.findMenuNodeByID(id);
25
-
26
- if (item?.route) {
27
- router.changeRoute({ name: item.route.name });
28
- }
29
- };
30
-
31
- menu.currentMenuChangeEvent.on(({ currentMenu }) => {
32
- currentMenuID.value = currentMenu?.id || "";
33
- });
34
-
35
- return () => {
36
- const items = props.menus.map((menu) => (
37
- <MKAsideMenuItem class="mk-menu-item" node={menu} key={menu.id} />
38
- ));
39
-
40
- return (
41
- <ElMenu
42
- class="mk-menu"
43
- defaultActive={unref(currentMenuID)}
44
- onSelect={handleSelect}
45
- >
46
- {items}
47
- </ElMenu>
48
- );
49
- };
50
- },
51
- });
@@ -1,5 +0,0 @@
1
- import MenuPanel from "./panel";
2
-
3
- export const MKAsidePanel = MenuPanel;
4
-
5
- export default MKAsidePanel;
@@ -1,57 +0,0 @@
1
- import { computed, defineComponent, unref } from "vue";
2
- import { ElDivider, ElScrollbar } from "element-plus";
3
- import { MenuNode } from "../../../../../menu";
4
- import { MSAppClient } from "../../../../../MSAppClient";
5
- import MKAsideMenu from "../menu";
6
-
7
- export default defineComponent({
8
- name: "MKAsidePanel",
9
- props: {
10
- menuModule: {
11
- type: MenuNode,
12
- },
13
- collapse: {
14
- type: Boolean,
15
- default: false,
16
- },
17
- },
18
- setup(props) {
19
- const msAppClient = MSAppClient.instance!;
20
-
21
- const menus = computed(() => props.menuModule?.children ?? []);
22
-
23
- const isCollapse = computed(() => {
24
- if (props.collapse) {
25
- return true;
26
- }
27
-
28
- return !props.menuModule || !props.menuModule.children.length;
29
- });
30
-
31
- const isRenderContent = computed(() => {
32
- return !!props.menuModule?.children.length;
33
- });
34
-
35
- return () => {
36
- const content = unref(isRenderContent) ? (
37
- <div class="mk-aside-panel__content">
38
- <div class="mk-aside-panel__title">{msAppClient.projectName}</div>
39
-
40
- <ElDivider class="mk-aside-panel__divider">
41
- {props.menuModule!.title}
42
- </ElDivider>
43
-
44
- <MKAsideMenu menus={unref(menus)} />
45
- </div>
46
- ) : null;
47
-
48
- return (
49
- <div class={["mk-aside-panel", unref(isCollapse) ? "is-collapse" : ""]}>
50
- <div class="mk-aside-panel__wrapper">
51
- <ElScrollbar height="100%">{content}</ElScrollbar>
52
- </div>
53
- </div>
54
- );
55
- };
56
- },
57
- });
@@ -1,47 +0,0 @@
1
- import { Ref, computed, defineComponent, ref, unref } from "vue";
2
- import { ElBreadcrumb, ElBreadcrumbItem } from "element-plus";
3
- import { MKSvgIcon } from "@maketribe/dm-ui";
4
- import { MenuNode } from "../../../../../menu";
5
- import { MSAppClient } from "../../../../../MSAppClient";
6
-
7
- export default defineComponent({
8
- name: "MKHeaderBreadcrumb",
9
- setup() {
10
- const menu = MSAppClient.instance!.userSession!.menu;
11
-
12
- const currentMenu = ref(menu.getCurrentMenuNode()) as Ref<MenuNode | null>;
13
-
14
- menu.currentMenuChangeEvent.on(({ currentMenu: current }) => {
15
- currentMenu.value = current;
16
- });
17
-
18
- const path = computed(() => {
19
- const currentMenuNode = unref(currentMenu);;
20
-
21
- if (!currentMenuNode) {
22
- return [];
23
- }
24
-
25
- return currentMenuNode.getMenuNodePath().map((item) => ({
26
- id: `menu_${item.id}`,
27
- iconName: item.iconName,
28
- title: item.title,
29
- }));
30
- });
31
-
32
- return () => {
33
- const breadcrumbItems = unref(path).map((item) => (
34
- <ElBreadcrumbItem key={item.id}>
35
- <MKSvgIcon iconClass={item.iconName} />
36
- {item.title}
37
- </ElBreadcrumbItem>
38
- ));
39
-
40
- return (
41
- <ElBreadcrumb class="mk-header-breadcrumb">
42
- {breadcrumbItems}
43
- </ElBreadcrumb>
44
- );
45
- };
46
- },
47
- });
@@ -1,5 +0,0 @@
1
- import HeaderBreadcrumb from "./breadcrumb";
2
-
3
- export const MKHeaderBreadcrumb = HeaderBreadcrumb;
4
-
5
- export default HeaderBreadcrumb;
@@ -1,17 +0,0 @@
1
- import { defineComponent } from "vue";
2
- import MKHeaderNav from "./nav";
3
- import MKHeaderTabs from "./tabs";
4
-
5
- export default defineComponent({
6
- name: "MKHeader",
7
- setup(props) {
8
- return () => {
9
- return (
10
- <div class="mk-header">
11
- <MKHeaderNav />
12
- <MKHeaderTabs />
13
- </div>
14
- );
15
- };
16
- },
17
- });
@@ -1,5 +0,0 @@
1
- import Header from "./header";
2
-
3
- export const MKHeader = Header;
4
-
5
- export default MKHeader;
@@ -1,5 +0,0 @@
1
- import HeaderNav from "./nav";
2
-
3
- export const MKHeaderNav = HeaderNav;
4
-
5
- export default MKHeaderNav;