@ibiz-template/vue3-components 0.7.41-alpha.3 → 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 (109) 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-F-NQHCVT.js → wang-editor--AXyy3P_.js} +1 -1
  6. package/dist/{xlsx-util-0wARAx2L.js → xlsx-util-GVd_ca5q.js} +1 -1
  7. package/es/control/app-menu/app-menu.css +1 -1
  8. package/es/control/chart/chart.mjs +1 -1
  9. package/es/control/data-view/data-view.mjs +2 -2
  10. package/es/control/grid/grid/grid-control.util.mjs +1 -1
  11. package/es/control/grid/grid/grid.mjs +1 -1
  12. package/es/control/grid/row-edit-popover/use-row-edit-popover.mjs +1 -1
  13. package/es/control/list/list.mjs +2 -2
  14. package/es/control/tree/tree.d.ts +2 -1
  15. package/es/control/tree/tree.mjs +4 -4
  16. package/es/control/tree-grid-ex/use-row-edit-popover.mjs +1 -1
  17. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +2 -2
  18. package/es/locale/en/index.d.ts +6 -0
  19. package/es/locale/zh-CN/index.d.ts +6 -0
  20. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.d.ts +10 -0
  21. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.mjs +17 -0
  22. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -0
  23. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.d.ts +45 -0
  24. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.mjs +56 -0
  25. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.d.ts +7 -0
  26. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.mjs +21 -0
  27. package/es/panel-component/app-extend-menu/bottom-side-menu/index.d.ts +5 -0
  28. package/es/panel-component/app-extend-menu/bottom-side-menu/index.mjs +16 -0
  29. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.css +1 -0
  30. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.d.ts +134 -0
  31. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +77 -0
  32. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.d.ts +149 -0
  33. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.mjs +258 -0
  34. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.d.ts +27 -0
  35. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.mjs +28 -0
  36. package/es/panel-component/app-extend-menu/index.d.ts +5 -0
  37. package/es/panel-component/app-extend-menu/index.mjs +18 -0
  38. package/es/panel-component/app-extend-menu/left-side-menu/index.d.ts +5 -0
  39. package/es/panel-component/app-extend-menu/left-side-menu/index.mjs +16 -0
  40. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.d.ts +10 -0
  41. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.mjs +17 -0
  42. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -0
  43. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.d.ts +45 -0
  44. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.mjs +56 -0
  45. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.d.ts +7 -0
  46. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.mjs +21 -0
  47. package/es/panel-component/app-extend-menu/right-side-menu/index.d.ts +5 -0
  48. package/es/panel-component/app-extend-menu/right-side-menu/index.mjs +16 -0
  49. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.d.ts +10 -0
  50. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.mjs +17 -0
  51. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -0
  52. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.d.ts +45 -0
  53. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.mjs +56 -0
  54. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.d.ts +7 -0
  55. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.mjs +21 -0
  56. package/es/panel-component/app-extend-menu/top-side-menu/index.d.ts +5 -0
  57. package/es/panel-component/app-extend-menu/top-side-menu/index.mjs +16 -0
  58. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.d.ts +10 -0
  59. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.mjs +17 -0
  60. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -0
  61. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.d.ts +45 -0
  62. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.mjs +56 -0
  63. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.d.ts +7 -0
  64. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.mjs +21 -0
  65. package/es/panel-component/index.mjs +2 -0
  66. package/es/view-engine/index-view.engine.mjs +1 -1
  67. package/es/view-engine/opt-view.engine.d.ts +6 -0
  68. package/es/view-engine/opt-view.engine.mjs +12 -0
  69. package/lib/control/app-menu/app-menu.css +1 -1
  70. package/lib/control/chart/chart.cjs +1 -1
  71. package/lib/control/data-view/data-view.cjs +2 -2
  72. package/lib/control/grid/grid/grid-control.util.cjs +1 -1
  73. package/lib/control/grid/grid/grid.cjs +1 -1
  74. package/lib/control/grid/row-edit-popover/use-row-edit-popover.cjs +1 -1
  75. package/lib/control/list/list.cjs +2 -2
  76. package/lib/control/tree/tree.cjs +3 -3
  77. package/lib/control/tree-grid-ex/use-row-edit-popover.cjs +1 -1
  78. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +2 -2
  79. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.cjs +58 -0
  80. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.controller.cjs +19 -0
  81. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.css +1 -0
  82. package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.provider.cjs +23 -0
  83. package/lib/panel-component/app-extend-menu/bottom-side-menu/index.cjs +20 -0
  84. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +79 -0
  85. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.css +1 -0
  86. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.cjs +260 -0
  87. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.cjs +30 -0
  88. package/lib/panel-component/app-extend-menu/index.cjs +22 -0
  89. package/lib/panel-component/app-extend-menu/left-side-menu/index.cjs +20 -0
  90. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.cjs +58 -0
  91. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.controller.cjs +19 -0
  92. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.css +1 -0
  93. package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.provider.cjs +23 -0
  94. package/lib/panel-component/app-extend-menu/right-side-menu/index.cjs +20 -0
  95. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.cjs +58 -0
  96. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.controller.cjs +19 -0
  97. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.css +1 -0
  98. package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.provider.cjs +23 -0
  99. package/lib/panel-component/app-extend-menu/top-side-menu/index.cjs +20 -0
  100. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.cjs +58 -0
  101. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.controller.cjs +19 -0
  102. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.css +1 -0
  103. package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.provider.cjs +23 -0
  104. package/lib/panel-component/index.cjs +2 -0
  105. package/lib/view-engine/index-view.engine.cjs +1 -1
  106. package/lib/view-engine/opt-view.engine.cjs +12 -0
  107. package/package.json +6 -6
  108. package/dist/chart-GgAfcR6o.js +0 -1
  109. package/dist/index-wTJRDY6L.js +0 -4
@@ -170,7 +170,7 @@ const ChartControl = /* @__PURE__ */ vue.defineComponent({
170
170
  }
171
171
  setHeight();
172
172
  let drillDetails = ((_b = (_a = props.modelData.controlParam) == null ? void 0 : _a.ctrlParams) == null ? void 0 : _b.ENABLEDRILLDETAIL) || c.controlParams.enabledrilldetail;
173
- if (!lodashEs.isArray(drillDetails)) {
173
+ if (drillDetails && !lodashEs.isArray(drillDetails)) {
174
174
  try {
175
175
  drillDetails = JSON.parse(drillDetails);
176
176
  } catch (error) {
@@ -101,7 +101,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
101
101
  return ((_b = (_a = c.model.controlParam) == null ? void 0 : _a.ctrlParams) == null ? void 0 : _b.CARDSTYLE) || c.controlParams.cardstyle || "default";
102
102
  });
103
103
  const showCollapseOrExpandIcon = vue.computed(() => {
104
- return !c.model.enableGroup && (c.model.pagingMode === 2 || c.model.pagingMode === 3);
104
+ return !c.state.enableGroup && (c.model.pagingMode === 2 || c.model.pagingMode === 3);
105
105
  });
106
106
  const infiniteScroll = vue.ref();
107
107
  const infiniteScrollKey = vue.ref(qxUtil.createUUID());
@@ -290,7 +290,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
290
290
  }, [ibiz.i18n.t("app.noData")])]);
291
291
  };
292
292
  const renderDataViewContent = () => {
293
- if (c.model.enableGroup) {
293
+ if (c.state.enableGroup) {
294
294
  return vue.createVNode("div", {
295
295
  "class": ns.b("group-content")
296
296
  }, [c.state.groups.map((group) => {
@@ -490,7 +490,7 @@ function useAppGridBase(c, props, tableRef) {
490
490
  );
491
491
  const tableData = vue.computed(() => {
492
492
  const state = c.state;
493
- if (c.model.enableGroup) {
493
+ if (c.state.enableGroup) {
494
494
  const result = [];
495
495
  state.groups.forEach((item) => {
496
496
  if (!item.children.length) {
@@ -562,7 +562,7 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
562
562
  "controller": this.c
563
563
  }, {
564
564
  default: () => [vue.createVNode(vue.resolveComponent("iBizControlBase"), {
565
- "class": [this.ns.b(), this.ns.is("dynamic-grid", this.c.state.isAutoGrid), this.ns.is("show-header", !this.c.state.hideHeader), this.ns.is("enable-page", this.c.state.enablePagingBar), this.ns.is("enable-group", this.c.model.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
565
+ "class": [this.ns.b(), this.ns.is("dynamic-grid", this.c.state.isAutoGrid), this.ns.is("show-header", !this.c.state.hideHeader), this.ns.is("enable-page", this.c.state.enablePagingBar), this.ns.is("enable-group", this.c.state.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
566
566
  "controller": this.c,
567
567
  "style": this.headerCssVars
568
568
  }, {
@@ -17,7 +17,7 @@ function useRowEditPopover(tableRef, c) {
17
17
  const tableEl = tableRef.value.$el;
18
18
  let selector = ".el-table__row";
19
19
  if (row.data.srfkey) {
20
- selector += ".id-".concat(row.data.srfkey);
20
+ selector += '[class*="id-'.concat(row.data.srfkey, '"]');
21
21
  }
22
22
  const trEl = tableEl.querySelector(selector);
23
23
  if (!trEl) {
@@ -101,7 +101,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
101
101
  });
102
102
  const isCollapse = vue.ref(false);
103
103
  const showCollapseOrExpandIcon = vue.computed(() => {
104
- return !c.model.enableGroup && (c.model.pagingMode === 2 || c.model.pagingMode === 3);
104
+ return !c.state.enableGroup && (c.model.pagingMode === 2 || c.model.pagingMode === 3);
105
105
  });
106
106
  const infiniteScroll = vue.ref();
107
107
  const infiniteScrollKey = vue.ref(qxUtil.createUUID());
@@ -279,7 +279,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
279
279
  });
280
280
  };
281
281
  const renderListContent = () => {
282
- if (c.model.enableGroup && !c.state.isSimple) {
282
+ if (c.state.enableGroup && !c.state.isSimple) {
283
283
  return vue.createVNode(vue.resolveComponent("el-collapse"), {
284
284
  "modelValue": c.state.expandedKeys,
285
285
  "onUpdate:modelValue": ($event) => c.state.expandedKeys = $event,
@@ -108,10 +108,10 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
108
108
  const c = vue3Util.useControlController((...args) => new runtime.TreeController(...args));
109
109
  elTreeUtil.useAppTreeBase(c, props);
110
110
  const cascadeSelect = vue.ref(false);
111
- const counterData = vue.reactive({});
111
+ const counterData = vue.ref({});
112
112
  const menuShowMode = vue.ref("default");
113
113
  const fn = (counter) => {
114
- Object.assign(counterData, counter);
114
+ counterData.value = counter;
115
115
  };
116
116
  c.evt.on("onCreated", () => {
117
117
  if (c.counter) {
@@ -673,7 +673,7 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
673
673
  });
674
674
  const renderCounter = (nodeModel) => {
675
675
  if (nodeModel.counterId) {
676
- const value = counterData[nodeModel.counterId];
676
+ const value = counterData.value[nodeModel.counterId];
677
677
  if (ramda.isNil(value)) {
678
678
  return null;
679
679
  }
@@ -18,7 +18,7 @@ function useRowEditPopover(tableRef, c) {
18
18
  const tableEl = tableRef.value.$el;
19
19
  let selector = ".el-table__row";
20
20
  if (row.data._uuid) {
21
- selector += ".id-".concat(row.data._uuid);
21
+ selector += '[class*="id-'.concat(row.data._uuid, '"]');
22
22
  }
23
23
  const trEl = tableEl.querySelector(selector);
24
24
  if (!trEl) {
@@ -165,11 +165,11 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
165
165
  const textVal = vue.computed(() => {
166
166
  if (textItem) {
167
167
  const data = props.data || {};
168
- return ibiz.util.text.format("".concat(data[textItem]), format);
168
+ return ibiz.util.text.format("".concat(data[textItem] != null ? data[textItem] : ""), format);
169
169
  }
170
170
  const tempCurVal = Number(currentVal.value);
171
171
  const value = Number(tempCurVal / max);
172
- const formatValue = ibiz.util.text.format("".concat(value), format);
172
+ const formatValue = ibiz.util.text.format("".concat(value != null ? value : ""), format);
173
173
  return formatValue;
174
174
  });
175
175
  const handleChange = (currentValue) => {
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var bottomSideMenu_controller = require('./bottom-side-menu.controller.cjs');
6
+ require('./bottom-side-menu.css');
7
+
8
+ "use strict";
9
+ const BottomSideMenu = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizBottomSideMenu",
11
+ props: {
12
+ /**
13
+ * @description 模型数据
14
+ */
15
+ modelData: {
16
+ type: Object,
17
+ required: true
18
+ },
19
+ /**
20
+ * @description 底部菜单控制器
21
+ */
22
+ controller: {
23
+ type: bottomSideMenu_controller.BottomSideMenuController,
24
+ required: true
25
+ }
26
+ },
27
+ setup(props) {
28
+ const ns = vue3Util.useNamespace("bottom-side-menu");
29
+ const {
30
+ state
31
+ } = props.controller;
32
+ return {
33
+ ns,
34
+ state
35
+ };
36
+ },
37
+ render() {
38
+ if (!this.controller.appMenu) {
39
+ return null;
40
+ }
41
+ return vue.createVNode("div", {
42
+ "class": this.ns.b()
43
+ }, [vue.createVNode(vue.resolveComponent("iBizCommonExtendMenu"), {
44
+ "renderMode": this.controller.rawItemParams.rendermode,
45
+ "items": this.state.items,
46
+ "menuItemsState": this.state.menuItemsState,
47
+ "providers": this.controller.itemProviders,
48
+ "position": "BOTTOM",
49
+ "layoutMode": this.controller.appMenu.layoutMode,
50
+ "layout": this.controller.appMenu.layout,
51
+ "onMenuItemClick": (item, event) => {
52
+ this.controller.handleClickMenuItem(item, event);
53
+ }
54
+ }, null)]);
55
+ }
56
+ });
57
+
58
+ exports.BottomSideMenu = BottomSideMenu;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var extendMenuBase_controller = require('../extend-menu-base/extend-menu-base.controller.cjs');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class BottomSideMenuController extends extendMenuBase_controller.ExtendMenuBaseController {
13
+ constructor() {
14
+ super(...arguments);
15
+ __publicField(this, "appMenuName", "bottomsidemenu");
16
+ }
17
+ }
18
+
19
+ exports.BottomSideMenuController = BottomSideMenuController;
@@ -0,0 +1 @@
1
+ .ibiz-bottom-side-menu{width:100%;height:100%}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var bottomSideMenu_controller = require('./bottom-side-menu.controller.cjs');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class BottomSideMenuProvider {
13
+ constructor() {
14
+ __publicField(this, "component", "IBizBottomSideMenu");
15
+ }
16
+ async createController(panelItem, panel, parent) {
17
+ const c = new bottomSideMenu_controller.BottomSideMenuController(panelItem, panel, parent);
18
+ await c.init();
19
+ return c;
20
+ }
21
+ }
22
+
23
+ exports.BottomSideMenuProvider = BottomSideMenuProvider;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ var bottomSideMenu = require('./bottom-side-menu.cjs');
7
+ var bottomSideMenu_provider = require('./bottom-side-menu.provider.cjs');
8
+
9
+ "use strict";
10
+ var IBizBottomSideMenu = {
11
+ install(app) {
12
+ app.component(bottomSideMenu.BottomSideMenu.name, bottomSideMenu.BottomSideMenu);
13
+ runtime.registerPanelItemProvider(
14
+ "RAWITEM_PREDEFINE_BOTTOM_SIDE_MENU",
15
+ () => new bottomSideMenu_provider.BottomSideMenuProvider()
16
+ );
17
+ }
18
+ };
19
+
20
+ exports.default = IBizBottomSideMenu;
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./common-extend-menu.css');
6
+
7
+ "use strict";
8
+ const CommonExtendMenu = /* @__PURE__ */ vue.defineComponent({
9
+ name: "IBizCommonExtendMenu",
10
+ props: {
11
+ /**
12
+ * @description 绘制模式,'BUTTON' | 'MENU': 按钮态(仅识别一层) | 常规菜单态
13
+ */
14
+ renderMode: {
15
+ type: String,
16
+ required: true
17
+ },
18
+ /**
19
+ * @description 菜单项数据
20
+ */
21
+ items: {
22
+ type: Object,
23
+ required: true
24
+ },
25
+ /**
26
+ * @description 菜单项权限数据
27
+ */
28
+ menuItemsState: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+ /**
33
+ * @description 菜单项适配器集合
34
+ */
35
+ providers: {
36
+ type: Object,
37
+ required: true
38
+ },
39
+ /**
40
+ * @description 菜单方向
41
+ */
42
+ position: {
43
+ type: String,
44
+ required: true
45
+ },
46
+ /**
47
+ * @description 菜单布局模式,现阶段仅需识别FLEX(flex布局)和BORDER(边缘布局)
48
+ */
49
+ layoutMode: {
50
+ type: String,
51
+ default: "FLEX"
52
+ },
53
+ /**
54
+ * @description 菜单布局容器模型(按钮形态才识别)
55
+ */
56
+ layout: {
57
+ type: Object
58
+ }
59
+ },
60
+ emits: {
61
+ /**
62
+ * @description 项点击事件
63
+ */
64
+ menuItemClick: (item, event) => true
65
+ },
66
+ setup(props) {
67
+ const ns = vue3Util.useNamespace("common-extend-menu");
68
+ return {
69
+ ns
70
+ };
71
+ },
72
+ render() {
73
+ return vue.createVNode("div", {
74
+ "class": this.ns.b()
75
+ }, [this.position, vue.createTextVNode("\u901A\u7528\u83DC\u5355")]);
76
+ }
77
+ });
78
+
79
+ exports.CommonExtendMenu = CommonExtendMenu;
@@ -0,0 +1 @@
1
+ .ibiz-common-extend-menu{width:100%;height:100%}
@@ -0,0 +1,260 @@
1
+ 'use strict';
2
+
3
+ var qxUtil = require('qx-util');
4
+ var runtime = require('@ibiz-template/runtime');
5
+ var core = require('@ibiz-template/core');
6
+ var extendMenuBase_state = require('./extend-menu-base.state.cjs');
7
+
8
+ "use strict";
9
+ var __defProp = Object.defineProperty;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __publicField = (obj, key, value) => {
12
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
+ return value;
14
+ };
15
+ class ExtendMenuBaseController extends runtime.PanelItemController {
16
+ constructor() {
17
+ super(...arguments);
18
+ /**
19
+ * @description 自定义补充参数
20
+ * @type {IData}
21
+ * @memberof ExtendMenuBaseController
22
+ */
23
+ __publicField(this, "rawItemParams", { rendermode: "BUTTON" });
24
+ /**
25
+ * @description 当前菜单名称
26
+ * @protected
27
+ * @type {string}
28
+ * @memberof ExtendMenuBaseController
29
+ */
30
+ __publicField(this, "appMenuName", "");
31
+ /**
32
+ * @description 菜单模型
33
+ * @protected
34
+ * @type {(IAppMenu | undefined)}
35
+ * @memberof ExtendMenuBaseController
36
+ */
37
+ __publicField(this, "appMenu");
38
+ /**
39
+ * @description 当前应用
40
+ * @protected
41
+ * @type {IAppService}
42
+ * @memberof ExtendMenuBaseController
43
+ */
44
+ __publicField(this, "app");
45
+ /**
46
+ * @description 菜单项适配器集合
47
+ * @type {{ [key: string]: IAppMenuItemProvider }}
48
+ * @memberof ExtendMenuBaseController
49
+ */
50
+ __publicField(this, "itemProviders", {});
51
+ /**
52
+ * @description 所有菜单项,平铺开
53
+ * @type {IAppMenuItem[]}
54
+ * @memberof ExtendMenuBaseController
55
+ */
56
+ __publicField(this, "allAppMenuItems", []);
57
+ }
58
+ /**
59
+ * @description 获取当前视图
60
+ * @readonly
61
+ * @type {IViewController}
62
+ * @memberof ExtendMenuBaseController
63
+ */
64
+ get view() {
65
+ return this.panel.view;
66
+ }
67
+ /**
68
+ * @description 视图层级
69
+ * @readonly
70
+ * @type {(number | undefined)}
71
+ * @memberof ExtendMenuBaseController
72
+ */
73
+ get routeDepth() {
74
+ return this.view.modal.routeDepth;
75
+ }
76
+ /**
77
+ * @description 上下文对象
78
+ * @readonly
79
+ * @type {IContext}
80
+ * @memberof ExtendMenuBaseController
81
+ */
82
+ get context() {
83
+ return this.panel.context;
84
+ }
85
+ /**
86
+ * @description 视图参数
87
+ * @readonly
88
+ * @type {IParams}
89
+ * @memberof ExtendMenuBaseController
90
+ */
91
+ get params() {
92
+ return this.panel.params;
93
+ }
94
+ /**
95
+ * @description 创建状态对象
96
+ * @protected
97
+ * @returns {*} {ExtendMenuBase}
98
+ * @memberof ExtendMenuBaseController
99
+ */
100
+ createState() {
101
+ var _a;
102
+ return new extendMenuBase_state.ExtendMenuBase((_a = this.parent) == null ? void 0 : _a.state);
103
+ }
104
+ /**
105
+ * @description 初始化
106
+ * @protected
107
+ * @returns {*} {Promise<void>}
108
+ * @memberof ExtendMenuBaseController
109
+ */
110
+ async onInit() {
111
+ var _a, _b;
112
+ await super.onInit();
113
+ this.handleRawItemParams();
114
+ this.app = await ibiz.hub.getApp(this.context.srfappid);
115
+ this.appMenu = this.computeAppMenu();
116
+ this.state.items = this.appMenu && this.appMenu.appMenuItems ? this.appMenu.appMenuItems : [];
117
+ this.flattenAllItems();
118
+ await this.initAppMenuItemProviders();
119
+ (_b = (_a = this.appMenu) == null ? void 0 : _a.appMenuItems) == null ? void 0 : _b.forEach((item) => {
120
+ this.initMenuItemState(item);
121
+ });
122
+ }
123
+ /**
124
+ * @description 计算当前菜单模型
125
+ * @protected
126
+ * @returns {*} {(IAppMenu | undefined)}
127
+ * @memberof ExtendMenuBaseController
128
+ */
129
+ computeAppMenu() {
130
+ return runtime.getControl(this.view.model, this.appMenuName);
131
+ }
132
+ /**
133
+ * @description 平铺所有菜单项
134
+ * @protected
135
+ * @returns {*} {void}
136
+ * @memberof ExtendMenuBaseController
137
+ */
138
+ flattenAllItems() {
139
+ if (!this.appMenu)
140
+ return;
141
+ const result = [];
142
+ const flattenMenus = (menuItems) => {
143
+ menuItems.forEach((item) => {
144
+ result.push(item);
145
+ if (item.appMenuItems && item.appMenuItems.length > 0) {
146
+ flattenMenus(item.appMenuItems);
147
+ }
148
+ });
149
+ };
150
+ flattenMenus(this.appMenu.appMenuItems);
151
+ this.allAppMenuItems = result;
152
+ }
153
+ /**
154
+ * @description 初始化菜单项的适配器
155
+ * @protected
156
+ * @returns {*} {Promise<void>}
157
+ * @memberof ExtendMenuBaseController
158
+ */
159
+ async initAppMenuItemProviders() {
160
+ if (this.allAppMenuItems.length === 0)
161
+ return;
162
+ await Promise.all(
163
+ this.allAppMenuItems.map(async (item) => {
164
+ const provider = await runtime.getAppMenuItemProvider(item);
165
+ if (provider) {
166
+ this.itemProviders[item.id] = provider;
167
+ }
168
+ })
169
+ );
170
+ }
171
+ /**
172
+ * @description 初始化菜单项状态
173
+ * @param {IAppMenuItem} menu
174
+ * @returns {*} {{
175
+ * visible: boolean;
176
+ * permitted: boolean;
177
+ * }}
178
+ * @memberof ExtendMenuBaseController
179
+ */
180
+ initMenuItemState(menu) {
181
+ var _a;
182
+ const result = { permitted: true, visible: true };
183
+ if (menu.hidden) {
184
+ result.visible = false;
185
+ } else {
186
+ let permitted = true;
187
+ if (menu.accessKey) {
188
+ permitted = this.app.authority.calcByResCode(menu.accessKey);
189
+ }
190
+ let visible = permitted;
191
+ if ((_a = menu.appMenuItems) == null ? void 0 : _a.length) {
192
+ const childrenState = menu.appMenuItems.map((child) => {
193
+ return this.initMenuItemState(child).visible;
194
+ });
195
+ visible = visible && childrenState.includes(true);
196
+ }
197
+ result.permitted = permitted;
198
+ result.visible = visible;
199
+ }
200
+ this.state.menuItemsState[menu.id] = result;
201
+ return result;
202
+ }
203
+ /**
204
+ * @description 处理菜单项点击,触发对应的应用功能
205
+ * @param {IAppMenuItem} menuItem
206
+ * @param {MouseEvent} event
207
+ * @param {boolean} [useDepth=true]
208
+ * @returns {*} {Promise<void>}
209
+ * @memberof ExtendMenuBaseController
210
+ */
211
+ async handleClickMenuItem(menuItem, event, useDepth = true) {
212
+ if (!menuItem) {
213
+ return;
214
+ }
215
+ const provider = this.itemProviders[menuItem.id];
216
+ if (provider && provider.onClick) {
217
+ return provider.onClick(menuItem, event);
218
+ }
219
+ if (!menuItem.appFuncId) {
220
+ throw new core.RuntimeModelError(
221
+ menuItem,
222
+ ibiz.i18n.t("runtime.controller.control.menu.noConfigured")
223
+ );
224
+ }
225
+ const tempContext = this.context.clone();
226
+ tempContext.srfappid = menuItem.appId || ibiz.env.appId;
227
+ if (this.routeDepth && useDepth) {
228
+ Object.assign(tempContext, {
229
+ toRouteDepth: this.routeDepth + 1
230
+ });
231
+ }
232
+ const param = { ...this.params };
233
+ await ibiz.commands.execute(
234
+ runtime.AppFuncCommand.TAG,
235
+ menuItem.appFuncId,
236
+ tempContext,
237
+ param,
238
+ { view: this.view }
239
+ );
240
+ }
241
+ /**
242
+ * @description 处理自定义补充参数
243
+ * @protected
244
+ * @memberof ExtendMenuBaseController
245
+ */
246
+ handleRawItemParams() {
247
+ var _a;
248
+ let params = {};
249
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
250
+ if (qxUtil.notNilEmpty(rawItemParams)) {
251
+ params = rawItemParams.reduce((param, item) => {
252
+ param[item.key.toLowerCase()] = item.value;
253
+ return param;
254
+ }, {});
255
+ }
256
+ Object.assign(this.rawItemParams, params);
257
+ }
258
+ }
259
+
260
+ exports.ExtendMenuBaseController = ExtendMenuBaseController;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class ExtendMenuBase extends runtime.PanelItemState {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * @description 所有菜单项
17
+ * @type {IAppMenuItem[]}
18
+ * @memberof ExtendMenuBase
19
+ */
20
+ __publicField(this, "items", []);
21
+ /**
22
+ * @description 菜单项状态
23
+ * @type {{ [p: string]: { visible: boolean; permitted: boolean } }}
24
+ * @memberof ExtendMenuBase
25
+ */
26
+ __publicField(this, "menuItemsState", {});
27
+ }
28
+ }
29
+
30
+ exports.ExtendMenuBase = ExtendMenuBase;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var commonExtendMenu = require('./extend-menu-base/common-extend-menu/common-extend-menu.cjs');
6
+ var index = require('./left-side-menu/index.cjs');
7
+ var index$1 = require('./right-side-menu/index.cjs');
8
+ var index$2 = require('./bottom-side-menu/index.cjs');
9
+ var index$3 = require('./top-side-menu/index.cjs');
10
+
11
+ "use strict";
12
+ var IBizAppExtendMenu = {
13
+ install(app) {
14
+ app.component(commonExtendMenu.CommonExtendMenu.name, commonExtendMenu.CommonExtendMenu);
15
+ app.use(index.default);
16
+ app.use(index$1.default);
17
+ app.use(index$2.default);
18
+ app.use(index$3.default);
19
+ }
20
+ };
21
+
22
+ exports.default = IBizAppExtendMenu;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ var leftSideMenu = require('./left-side-menu.cjs');
7
+ var leftSideMenu_provider = require('./left-side-menu.provider.cjs');
8
+
9
+ "use strict";
10
+ var IBizLeftSideMenu = {
11
+ install(app) {
12
+ app.component(leftSideMenu.LeftSideMenu.name, leftSideMenu.LeftSideMenu);
13
+ runtime.registerPanelItemProvider(
14
+ "RAWITEM_PREDEFINE_LEFT_SIDE_MENU",
15
+ () => new leftSideMenu_provider.LeftSideMenuProvider()
16
+ );
17
+ }
18
+ };
19
+
20
+ exports.default = IBizLeftSideMenu;