@ibiz-template/vue3-components 0.7.41-alpha.2 → 0.7.41-alpha.4

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 (121) hide show
  1. package/dist/chart-8QfxarWf.js +1 -0
  2. package/dist/index-u5jvzY6s.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-6EirGFoh.js → wang-editor--AXyy3P_.js} +1 -1
  6. package/dist/{xlsx-util-J1RHk00u.js → xlsx-util-GVd_ca5q.js} +1 -1
  7. package/es/common/split/split.css +1 -1
  8. package/es/control/app-menu/app-menu.css +1 -1
  9. package/es/control/chart/chart.mjs +1 -1
  10. package/es/control/data-view/data-view.mjs +2 -2
  11. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  12. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +25 -4
  13. package/es/control/grid/grid/grid-control.util.d.ts +1 -1
  14. package/es/control/grid/grid/grid-control.util.mjs +32 -5
  15. package/es/control/grid/grid/grid.mjs +8 -6
  16. package/es/control/grid/row-edit-popover/use-row-edit-popover.mjs +1 -1
  17. package/es/control/list/list.mjs +2 -2
  18. package/es/control/tree/el-tree-util.d.ts +23 -1
  19. package/es/control/tree/el-tree-util.mjs +30 -1
  20. package/es/control/tree/tree.d.ts +5 -0
  21. package/es/control/tree/tree.mjs +94 -14
  22. package/es/control/tree-grid/tree-grid.mjs +1 -1
  23. package/es/control/tree-grid-ex/use-row-edit-popover.mjs +1 -1
  24. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +2 -2
  25. package/es/locale/en/index.d.ts +6 -0
  26. package/es/locale/zh-CN/index.d.ts +6 -0
  27. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.d.ts +10 -0
  28. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.mjs +17 -0
  29. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -0
  30. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.d.ts +45 -0
  31. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.mjs +56 -0
  32. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.d.ts +7 -0
  33. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.mjs +21 -0
  34. package/es/panel-component/app-extend-menu/bottom-side-menu/index.d.ts +5 -0
  35. package/es/panel-component/app-extend-menu/bottom-side-menu/index.mjs +16 -0
  36. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.css +1 -0
  37. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.d.ts +134 -0
  38. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +77 -0
  39. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.d.ts +149 -0
  40. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.mjs +258 -0
  41. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.d.ts +27 -0
  42. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.mjs +28 -0
  43. package/es/panel-component/app-extend-menu/index.d.ts +5 -0
  44. package/es/panel-component/app-extend-menu/index.mjs +18 -0
  45. package/es/panel-component/app-extend-menu/left-side-menu/index.d.ts +5 -0
  46. package/es/panel-component/app-extend-menu/left-side-menu/index.mjs +16 -0
  47. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.d.ts +10 -0
  48. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.mjs +17 -0
  49. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -0
  50. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.d.ts +45 -0
  51. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.mjs +56 -0
  52. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.d.ts +7 -0
  53. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.mjs +21 -0
  54. package/es/panel-component/app-extend-menu/right-side-menu/index.d.ts +5 -0
  55. package/es/panel-component/app-extend-menu/right-side-menu/index.mjs +16 -0
  56. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.d.ts +10 -0
  57. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.mjs +17 -0
  58. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -0
  59. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.d.ts +45 -0
  60. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.mjs +56 -0
  61. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.d.ts +7 -0
  62. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.mjs +21 -0
  63. package/es/panel-component/app-extend-menu/top-side-menu/index.d.ts +5 -0
  64. package/es/panel-component/app-extend-menu/top-side-menu/index.mjs +16 -0
  65. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.d.ts +10 -0
  66. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.mjs +17 -0
  67. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -0
  68. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.d.ts +45 -0
  69. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.mjs +56 -0
  70. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.d.ts +7 -0
  71. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.mjs +21 -0
  72. package/es/panel-component/index.mjs +2 -0
  73. package/es/view-engine/index-view.engine.mjs +1 -1
  74. package/es/view-engine/opt-view.engine.d.ts +6 -0
  75. package/es/view-engine/opt-view.engine.mjs +12 -0
  76. package/lib/common/split/split.css +1 -1
  77. package/lib/control/app-menu/app-menu.css +1 -1
  78. package/lib/control/chart/chart.cjs +1 -1
  79. package/lib/control/data-view/data-view.cjs +2 -2
  80. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +25 -4
  81. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  82. package/lib/control/grid/grid/grid-control.util.cjs +31 -4
  83. package/lib/control/grid/grid/grid.cjs +8 -6
  84. package/lib/control/grid/row-edit-popover/use-row-edit-popover.cjs +1 -1
  85. package/lib/control/list/list.cjs +2 -2
  86. package/lib/control/tree/el-tree-util.cjs +31 -0
  87. package/lib/control/tree/tree.cjs +91 -11
  88. package/lib/control/tree-grid/tree-grid.cjs +1 -1
  89. package/lib/control/tree-grid-ex/use-row-edit-popover.cjs +1 -1
  90. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +2 -2
  91. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.cjs +58 -0
  92. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.cjs +19 -0
  93. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -0
  94. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.cjs +23 -0
  95. package/lib/panel-component/app-extend-menu/bottom-side-menu/index.cjs +20 -0
  96. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +79 -0
  97. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.css +1 -0
  98. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.cjs +260 -0
  99. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.cjs +30 -0
  100. package/lib/panel-component/app-extend-menu/index.cjs +22 -0
  101. package/lib/panel-component/app-extend-menu/left-side-menu/index.cjs +20 -0
  102. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.cjs +58 -0
  103. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.cjs +19 -0
  104. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -0
  105. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.cjs +23 -0
  106. package/lib/panel-component/app-extend-menu/right-side-menu/index.cjs +20 -0
  107. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.cjs +58 -0
  108. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.cjs +19 -0
  109. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -0
  110. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.cjs +23 -0
  111. package/lib/panel-component/app-extend-menu/top-side-menu/index.cjs +20 -0
  112. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.cjs +58 -0
  113. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.cjs +19 -0
  114. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -0
  115. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.cjs +23 -0
  116. package/lib/panel-component/index.cjs +2 -0
  117. package/lib/view-engine/index-view.engine.cjs +1 -1
  118. package/lib/view-engine/opt-view.engine.cjs +12 -0
  119. package/package.json +6 -6
  120. package/dist/chart-GgAfcR6o.js +0 -1
  121. package/dist/index-eIKUlAq_.js +0 -4
@@ -0,0 +1,77 @@
1
+ import { createTextVNode, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './common-extend-menu.css';
4
+
5
+ "use strict";
6
+ const CommonExtendMenu = /* @__PURE__ */ defineComponent({
7
+ name: "IBizCommonExtendMenu",
8
+ props: {
9
+ /**
10
+ * @description 绘制模式,'BUTTON' | 'MENU': 按钮态(仅识别一层) | 常规菜单态
11
+ */
12
+ renderMode: {
13
+ type: String,
14
+ required: true
15
+ },
16
+ /**
17
+ * @description 菜单项数据
18
+ */
19
+ items: {
20
+ type: Object,
21
+ required: true
22
+ },
23
+ /**
24
+ * @description 菜单项权限数据
25
+ */
26
+ menuItemsState: {
27
+ type: Object,
28
+ required: true
29
+ },
30
+ /**
31
+ * @description 菜单项适配器集合
32
+ */
33
+ providers: {
34
+ type: Object,
35
+ required: true
36
+ },
37
+ /**
38
+ * @description 菜单方向
39
+ */
40
+ position: {
41
+ type: String,
42
+ required: true
43
+ },
44
+ /**
45
+ * @description 菜单布局模式,现阶段仅需识别FLEX(flex布局)和BORDER(边缘布局)
46
+ */
47
+ layoutMode: {
48
+ type: String,
49
+ default: "FLEX"
50
+ },
51
+ /**
52
+ * @description 菜单布局容器模型(按钮形态才识别)
53
+ */
54
+ layout: {
55
+ type: Object
56
+ }
57
+ },
58
+ emits: {
59
+ /**
60
+ * @description 项点击事件
61
+ */
62
+ menuItemClick: (item, event) => true
63
+ },
64
+ setup(props) {
65
+ const ns = useNamespace("common-extend-menu");
66
+ return {
67
+ ns
68
+ };
69
+ },
70
+ render() {
71
+ return createVNode("div", {
72
+ "class": this.ns.b()
73
+ }, [this.position, createTextVNode("\u901A\u7528\u83DC\u5355")]);
74
+ }
75
+ });
76
+
77
+ export { CommonExtendMenu };
@@ -0,0 +1,149 @@
1
+ import { IAppMenuItemProvider, IAppService, IViewController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IAppMenu, IAppMenuItem, IPanelRawItem } from '@ibiz/model-core';
3
+ import { ExtendMenuBase } from './extend-menu-base.state';
4
+ /**
5
+ * @description 扩展菜单状态控制器基类
6
+ * @export
7
+ * @class ExtendMenuBaseController
8
+ * @extends {PanelItemController<IPanelRawItem>}
9
+ */
10
+ export declare class ExtendMenuBaseController extends PanelItemController<IPanelRawItem> {
11
+ /**
12
+ * @description 状态对象
13
+ * @type {ExtendMenuBase}
14
+ * @memberof AppSwitchController
15
+ */
16
+ state: ExtendMenuBase;
17
+ /**
18
+ * @description 自定义补充参数
19
+ * @type {IData}
20
+ * @memberof ExtendMenuBaseController
21
+ */
22
+ rawItemParams: IData;
23
+ /**
24
+ * @description 当前菜单名称
25
+ * @protected
26
+ * @type {string}
27
+ * @memberof ExtendMenuBaseController
28
+ */
29
+ protected appMenuName: string;
30
+ /**
31
+ * @description 菜单模型
32
+ * @protected
33
+ * @type {(IAppMenu | undefined)}
34
+ * @memberof ExtendMenuBaseController
35
+ */
36
+ appMenu: IAppMenu | undefined;
37
+ /**
38
+ * @description 当前应用
39
+ * @protected
40
+ * @type {IAppService}
41
+ * @memberof ExtendMenuBaseController
42
+ */
43
+ protected app: IAppService;
44
+ /**
45
+ * @description 菜单项适配器集合
46
+ * @type {{ [key: string]: IAppMenuItemProvider }}
47
+ * @memberof ExtendMenuBaseController
48
+ */
49
+ itemProviders: {
50
+ [key: string]: IAppMenuItemProvider;
51
+ };
52
+ /**
53
+ * @description 所有菜单项,平铺开
54
+ * @type {IAppMenuItem[]}
55
+ * @memberof ExtendMenuBaseController
56
+ */
57
+ allAppMenuItems: IAppMenuItem[];
58
+ /**
59
+ * @description 获取当前视图
60
+ * @readonly
61
+ * @type {IViewController}
62
+ * @memberof ExtendMenuBaseController
63
+ */
64
+ get view(): IViewController;
65
+ /**
66
+ * @description 视图层级
67
+ * @readonly
68
+ * @type {(number | undefined)}
69
+ * @memberof ExtendMenuBaseController
70
+ */
71
+ get routeDepth(): number | undefined;
72
+ /**
73
+ * @description 上下文对象
74
+ * @readonly
75
+ * @type {IContext}
76
+ * @memberof ExtendMenuBaseController
77
+ */
78
+ get context(): IContext;
79
+ /**
80
+ * @description 视图参数
81
+ * @readonly
82
+ * @type {IParams}
83
+ * @memberof ExtendMenuBaseController
84
+ */
85
+ get params(): IParams;
86
+ /**
87
+ * @description 创建状态对象
88
+ * @protected
89
+ * @returns {*} {ExtendMenuBase}
90
+ * @memberof ExtendMenuBaseController
91
+ */
92
+ protected createState(): ExtendMenuBase;
93
+ /**
94
+ * @description 初始化
95
+ * @protected
96
+ * @returns {*} {Promise<void>}
97
+ * @memberof ExtendMenuBaseController
98
+ */
99
+ protected onInit(): Promise<void>;
100
+ /**
101
+ * @description 计算当前菜单模型
102
+ * @protected
103
+ * @returns {*} {(IAppMenu | undefined)}
104
+ * @memberof ExtendMenuBaseController
105
+ */
106
+ protected computeAppMenu(): IAppMenu | undefined;
107
+ /**
108
+ * @description 平铺所有菜单项
109
+ * @protected
110
+ * @returns {*} {void}
111
+ * @memberof ExtendMenuBaseController
112
+ */
113
+ protected flattenAllItems(): void;
114
+ /**
115
+ * @description 初始化菜单项的适配器
116
+ * @protected
117
+ * @returns {*} {Promise<void>}
118
+ * @memberof ExtendMenuBaseController
119
+ */
120
+ protected initAppMenuItemProviders(): Promise<void>;
121
+ /**
122
+ * @description 初始化菜单项状态
123
+ * @param {IAppMenuItem} menu
124
+ * @returns {*} {{
125
+ * visible: boolean;
126
+ * permitted: boolean;
127
+ * }}
128
+ * @memberof ExtendMenuBaseController
129
+ */
130
+ initMenuItemState(menu: IAppMenuItem): {
131
+ visible: boolean;
132
+ permitted: boolean;
133
+ };
134
+ /**
135
+ * @description 处理菜单项点击,触发对应的应用功能
136
+ * @param {IAppMenuItem} menuItem
137
+ * @param {MouseEvent} event
138
+ * @param {boolean} [useDepth=true]
139
+ * @returns {*} {Promise<void>}
140
+ * @memberof ExtendMenuBaseController
141
+ */
142
+ handleClickMenuItem(menuItem: IAppMenuItem, event: MouseEvent, useDepth?: boolean): Promise<void>;
143
+ /**
144
+ * @description 处理自定义补充参数
145
+ * @protected
146
+ * @memberof ExtendMenuBaseController
147
+ */
148
+ protected handleRawItemParams(): void;
149
+ }
@@ -0,0 +1,258 @@
1
+ import { notNilEmpty } from 'qx-util';
2
+ import { PanelItemController, getControl, getAppMenuItemProvider, AppFuncCommand } from '@ibiz-template/runtime';
3
+ import { RuntimeModelError } from '@ibiz-template/core';
4
+ import { ExtendMenuBase } from './extend-menu-base.state.mjs';
5
+
6
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => {
10
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
+ return value;
12
+ };
13
+ class ExtendMenuBaseController extends PanelItemController {
14
+ constructor() {
15
+ super(...arguments);
16
+ /**
17
+ * @description 自定义补充参数
18
+ * @type {IData}
19
+ * @memberof ExtendMenuBaseController
20
+ */
21
+ __publicField(this, "rawItemParams", { rendermode: "BUTTON" });
22
+ /**
23
+ * @description 当前菜单名称
24
+ * @protected
25
+ * @type {string}
26
+ * @memberof ExtendMenuBaseController
27
+ */
28
+ __publicField(this, "appMenuName", "");
29
+ /**
30
+ * @description 菜单模型
31
+ * @protected
32
+ * @type {(IAppMenu | undefined)}
33
+ * @memberof ExtendMenuBaseController
34
+ */
35
+ __publicField(this, "appMenu");
36
+ /**
37
+ * @description 当前应用
38
+ * @protected
39
+ * @type {IAppService}
40
+ * @memberof ExtendMenuBaseController
41
+ */
42
+ __publicField(this, "app");
43
+ /**
44
+ * @description 菜单项适配器集合
45
+ * @type {{ [key: string]: IAppMenuItemProvider }}
46
+ * @memberof ExtendMenuBaseController
47
+ */
48
+ __publicField(this, "itemProviders", {});
49
+ /**
50
+ * @description 所有菜单项,平铺开
51
+ * @type {IAppMenuItem[]}
52
+ * @memberof ExtendMenuBaseController
53
+ */
54
+ __publicField(this, "allAppMenuItems", []);
55
+ }
56
+ /**
57
+ * @description 获取当前视图
58
+ * @readonly
59
+ * @type {IViewController}
60
+ * @memberof ExtendMenuBaseController
61
+ */
62
+ get view() {
63
+ return this.panel.view;
64
+ }
65
+ /**
66
+ * @description 视图层级
67
+ * @readonly
68
+ * @type {(number | undefined)}
69
+ * @memberof ExtendMenuBaseController
70
+ */
71
+ get routeDepth() {
72
+ return this.view.modal.routeDepth;
73
+ }
74
+ /**
75
+ * @description 上下文对象
76
+ * @readonly
77
+ * @type {IContext}
78
+ * @memberof ExtendMenuBaseController
79
+ */
80
+ get context() {
81
+ return this.panel.context;
82
+ }
83
+ /**
84
+ * @description 视图参数
85
+ * @readonly
86
+ * @type {IParams}
87
+ * @memberof ExtendMenuBaseController
88
+ */
89
+ get params() {
90
+ return this.panel.params;
91
+ }
92
+ /**
93
+ * @description 创建状态对象
94
+ * @protected
95
+ * @returns {*} {ExtendMenuBase}
96
+ * @memberof ExtendMenuBaseController
97
+ */
98
+ createState() {
99
+ var _a;
100
+ return new ExtendMenuBase((_a = this.parent) == null ? void 0 : _a.state);
101
+ }
102
+ /**
103
+ * @description 初始化
104
+ * @protected
105
+ * @returns {*} {Promise<void>}
106
+ * @memberof ExtendMenuBaseController
107
+ */
108
+ async onInit() {
109
+ var _a, _b;
110
+ await super.onInit();
111
+ this.handleRawItemParams();
112
+ this.app = await ibiz.hub.getApp(this.context.srfappid);
113
+ this.appMenu = this.computeAppMenu();
114
+ this.state.items = this.appMenu && this.appMenu.appMenuItems ? this.appMenu.appMenuItems : [];
115
+ this.flattenAllItems();
116
+ await this.initAppMenuItemProviders();
117
+ (_b = (_a = this.appMenu) == null ? void 0 : _a.appMenuItems) == null ? void 0 : _b.forEach((item) => {
118
+ this.initMenuItemState(item);
119
+ });
120
+ }
121
+ /**
122
+ * @description 计算当前菜单模型
123
+ * @protected
124
+ * @returns {*} {(IAppMenu | undefined)}
125
+ * @memberof ExtendMenuBaseController
126
+ */
127
+ computeAppMenu() {
128
+ return getControl(this.view.model, this.appMenuName);
129
+ }
130
+ /**
131
+ * @description 平铺所有菜单项
132
+ * @protected
133
+ * @returns {*} {void}
134
+ * @memberof ExtendMenuBaseController
135
+ */
136
+ flattenAllItems() {
137
+ if (!this.appMenu)
138
+ return;
139
+ const result = [];
140
+ const flattenMenus = (menuItems) => {
141
+ menuItems.forEach((item) => {
142
+ result.push(item);
143
+ if (item.appMenuItems && item.appMenuItems.length > 0) {
144
+ flattenMenus(item.appMenuItems);
145
+ }
146
+ });
147
+ };
148
+ flattenMenus(this.appMenu.appMenuItems);
149
+ this.allAppMenuItems = result;
150
+ }
151
+ /**
152
+ * @description 初始化菜单项的适配器
153
+ * @protected
154
+ * @returns {*} {Promise<void>}
155
+ * @memberof ExtendMenuBaseController
156
+ */
157
+ async initAppMenuItemProviders() {
158
+ if (this.allAppMenuItems.length === 0)
159
+ return;
160
+ await Promise.all(
161
+ this.allAppMenuItems.map(async (item) => {
162
+ const provider = await getAppMenuItemProvider(item);
163
+ if (provider) {
164
+ this.itemProviders[item.id] = provider;
165
+ }
166
+ })
167
+ );
168
+ }
169
+ /**
170
+ * @description 初始化菜单项状态
171
+ * @param {IAppMenuItem} menu
172
+ * @returns {*} {{
173
+ * visible: boolean;
174
+ * permitted: boolean;
175
+ * }}
176
+ * @memberof ExtendMenuBaseController
177
+ */
178
+ initMenuItemState(menu) {
179
+ var _a;
180
+ const result = { permitted: true, visible: true };
181
+ if (menu.hidden) {
182
+ result.visible = false;
183
+ } else {
184
+ let permitted = true;
185
+ if (menu.accessKey) {
186
+ permitted = this.app.authority.calcByResCode(menu.accessKey);
187
+ }
188
+ let visible = permitted;
189
+ if ((_a = menu.appMenuItems) == null ? void 0 : _a.length) {
190
+ const childrenState = menu.appMenuItems.map((child) => {
191
+ return this.initMenuItemState(child).visible;
192
+ });
193
+ visible = visible && childrenState.includes(true);
194
+ }
195
+ result.permitted = permitted;
196
+ result.visible = visible;
197
+ }
198
+ this.state.menuItemsState[menu.id] = result;
199
+ return result;
200
+ }
201
+ /**
202
+ * @description 处理菜单项点击,触发对应的应用功能
203
+ * @param {IAppMenuItem} menuItem
204
+ * @param {MouseEvent} event
205
+ * @param {boolean} [useDepth=true]
206
+ * @returns {*} {Promise<void>}
207
+ * @memberof ExtendMenuBaseController
208
+ */
209
+ async handleClickMenuItem(menuItem, event, useDepth = true) {
210
+ if (!menuItem) {
211
+ return;
212
+ }
213
+ const provider = this.itemProviders[menuItem.id];
214
+ if (provider && provider.onClick) {
215
+ return provider.onClick(menuItem, event);
216
+ }
217
+ if (!menuItem.appFuncId) {
218
+ throw new RuntimeModelError(
219
+ menuItem,
220
+ ibiz.i18n.t("runtime.controller.control.menu.noConfigured")
221
+ );
222
+ }
223
+ const tempContext = this.context.clone();
224
+ tempContext.srfappid = menuItem.appId || ibiz.env.appId;
225
+ if (this.routeDepth && useDepth) {
226
+ Object.assign(tempContext, {
227
+ toRouteDepth: this.routeDepth + 1
228
+ });
229
+ }
230
+ const param = { ...this.params };
231
+ await ibiz.commands.execute(
232
+ AppFuncCommand.TAG,
233
+ menuItem.appFuncId,
234
+ tempContext,
235
+ param,
236
+ { view: this.view }
237
+ );
238
+ }
239
+ /**
240
+ * @description 处理自定义补充参数
241
+ * @protected
242
+ * @memberof ExtendMenuBaseController
243
+ */
244
+ handleRawItemParams() {
245
+ var _a;
246
+ let params = {};
247
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
248
+ if (notNilEmpty(rawItemParams)) {
249
+ params = rawItemParams.reduce((param, item) => {
250
+ param[item.key.toLowerCase()] = item.value;
251
+ return param;
252
+ }, {});
253
+ }
254
+ Object.assign(this.rawItemParams, params);
255
+ }
256
+ }
257
+
258
+ export { ExtendMenuBaseController };
@@ -0,0 +1,27 @@
1
+ import { PanelItemState } from '@ibiz-template/runtime';
2
+ import { IAppMenuItem } from '@ibiz/model-core';
3
+ /**
4
+ * @description 扩展菜单状态基类
5
+ * @export
6
+ * @class ExtendMenuBase
7
+ * @extends {PanelItemState}
8
+ */
9
+ export declare class ExtendMenuBase extends PanelItemState {
10
+ /**
11
+ * @description 所有菜单项
12
+ * @type {IAppMenuItem[]}
13
+ * @memberof ExtendMenuBase
14
+ */
15
+ items: IAppMenuItem[];
16
+ /**
17
+ * @description 菜单项状态
18
+ * @type {{ [p: string]: { visible: boolean; permitted: boolean } }}
19
+ * @memberof ExtendMenuBase
20
+ */
21
+ menuItemsState: {
22
+ [p: string]: {
23
+ visible: boolean;
24
+ permitted: boolean;
25
+ };
26
+ };
27
+ }
@@ -0,0 +1,28 @@
1
+ import { PanelItemState } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class ExtendMenuBase extends PanelItemState {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * @description 所有菜单项
15
+ * @type {IAppMenuItem[]}
16
+ * @memberof ExtendMenuBase
17
+ */
18
+ __publicField(this, "items", []);
19
+ /**
20
+ * @description 菜单项状态
21
+ * @type {{ [p: string]: { visible: boolean; permitted: boolean } }}
22
+ * @memberof ExtendMenuBase
23
+ */
24
+ __publicField(this, "menuItemsState", {});
25
+ }
26
+ }
27
+
28
+ export { ExtendMenuBase };
@@ -0,0 +1,5 @@
1
+ import { App } from 'vue';
2
+ declare const _default: {
3
+ install(app: App): void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { CommonExtendMenu } from './extend-menu-base/common-extend-menu/common-extend-menu.mjs';
2
+ import IBizLeftSideMenu from './left-side-menu/index.mjs';
3
+ import IBizRightSideMenu from './right-side-menu/index.mjs';
4
+ import IBizBottomSideMenu from './bottom-side-menu/index.mjs';
5
+ import IBizTopSideMenu from './top-side-menu/index.mjs';
6
+
7
+ "use strict";
8
+ var IBizAppExtendMenu = {
9
+ install(app) {
10
+ app.component(CommonExtendMenu.name, CommonExtendMenu);
11
+ app.use(IBizLeftSideMenu);
12
+ app.use(IBizRightSideMenu);
13
+ app.use(IBizBottomSideMenu);
14
+ app.use(IBizTopSideMenu);
15
+ }
16
+ };
17
+
18
+ export { IBizAppExtendMenu as default };
@@ -0,0 +1,5 @@
1
+ import { App } from 'vue';
2
+ declare const _default: {
3
+ install(app: App): void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
2
+ import { LeftSideMenu } from './left-side-menu.mjs';
3
+ import { LeftSideMenuProvider } from './left-side-menu.provider.mjs';
4
+
5
+ "use strict";
6
+ var IBizLeftSideMenu = {
7
+ install(app) {
8
+ app.component(LeftSideMenu.name, LeftSideMenu);
9
+ registerPanelItemProvider(
10
+ "RAWITEM_PREDEFINE_LEFT_SIDE_MENU",
11
+ () => new LeftSideMenuProvider()
12
+ );
13
+ }
14
+ };
15
+
16
+ export { IBizLeftSideMenu as default };
@@ -0,0 +1,10 @@
1
+ import { ExtendMenuBaseController } from '../extend-menu-base/extend-menu-base.controller';
2
+ /**
3
+ * @description 左侧菜单
4
+ * @export
5
+ * @class LeftSideMenuController
6
+ * @extends {ExtendMenuBaseController}
7
+ */
8
+ export declare class LeftSideMenuController extends ExtendMenuBaseController {
9
+ protected appMenuName: string;
10
+ }
@@ -0,0 +1,17 @@
1
+ import { ExtendMenuBaseController } from '../extend-menu-base/extend-menu-base.controller.mjs';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class LeftSideMenuController extends ExtendMenuBaseController {
11
+ constructor() {
12
+ super(...arguments);
13
+ __publicField(this, "appMenuName", "leftsidemenu");
14
+ }
15
+ }
16
+
17
+ export { LeftSideMenuController };
@@ -0,0 +1 @@
1
+ .ibiz-left-side-menu{width:100%;height:100%}
@@ -0,0 +1,45 @@
1
+ import { PropType } from 'vue';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ import { LeftSideMenuController } from './left-side-menu.controller';
4
+ import './left-side-menu.scss';
5
+ /**
6
+ * 左侧菜单
7
+ * @primary
8
+ * @description 首页视图扩展菜单左侧菜单
9
+ * @panelitemparams {name:rendermode,parameterType:'BUTTON' | 'MENU',defaultvalue:BUTTON,description:菜单项绘制模式,其中BUTTON表示按照按钮形态绘制(按钮形态目前仅支持一层)、MENU表示按照菜单形态绘制}
10
+ * @primary
11
+ */
12
+ export declare const LeftSideMenu: import("vue").DefineComponent<{
13
+ /**
14
+ * @description 模型数据
15
+ */
16
+ modelData: {
17
+ type: PropType<IPanelRawItem>;
18
+ required: true;
19
+ };
20
+ /**
21
+ * @description 左侧菜单控制器
22
+ */
23
+ controller: {
24
+ type: typeof LeftSideMenuController;
25
+ required: true;
26
+ };
27
+ }, {
28
+ ns: import("@ibiz-template/core").Namespace;
29
+ state: import("../extend-menu-base/extend-menu-base.state").ExtendMenuBase;
30
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
31
+ /**
32
+ * @description 模型数据
33
+ */
34
+ modelData: {
35
+ type: PropType<IPanelRawItem>;
36
+ required: true;
37
+ };
38
+ /**
39
+ * @description 左侧菜单控制器
40
+ */
41
+ controller: {
42
+ type: typeof LeftSideMenuController;
43
+ required: true;
44
+ };
45
+ }>>, {}, {}>;