@ibiz-template/mob-vue3-components 0.7.41-alpha.23 → 0.7.41-alpha.24

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 (70) hide show
  1. package/dist/index-HQsqnjtM.js +2 -0
  2. package/dist/index-HQsqnjtM.js.map +1 -0
  3. package/dist/index.min.css +9 -9
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{quill-CeDXLpcJ.js → quill-CSDnV3Pb.js} +2 -2
  6. package/dist/{quill-CeDXLpcJ.js.map → quill-CSDnV3Pb.js.map} +1 -1
  7. package/dist/quill-editor-B7NuxNK7.js +2 -0
  8. package/dist/{quill-editor-C5mEMG93.js.map → quill-editor-B7NuxNK7.js.map} +1 -1
  9. package/dist/quill-editor-preview-CtFf0ZKt.js +2 -0
  10. package/dist/{quill-editor-preview-BPS9uMa7.js.map → quill-editor-preview-CtFf0ZKt.js.map} +1 -1
  11. package/dist/tree-on8cJom4.js +2 -0
  12. package/dist/{tree-SAqvldtV.js.map → tree-on8cJom4.js.map} +1 -1
  13. package/dist/{xlsx-util-b5CesqYd.js → xlsx-util-DRvvWEVq.js} +2 -2
  14. package/dist/{xlsx-util-b5CesqYd.js.map → xlsx-util-DRvvWEVq.js.map} +1 -1
  15. package/es/common/fullscreen-header/fullscreen-header.css +1 -1
  16. package/es/control/app-menu/app-menu.mjs +2 -2
  17. package/es/control/app-menu/custom-menu-design/custom-menu-design.css +1 -1
  18. package/es/control/app-menu/custom-menu-design/custom-menu-design.mjs +30 -86
  19. package/es/control/app-menu/custom-menu-design/menu-design-list/menu-design-list.css +1 -0
  20. package/es/control/app-menu/custom-menu-design/menu-design-list/menu-design-list.mjs +105 -0
  21. package/es/control/app-menu/custom-menu-design/menu-design-tree/menu-design-tree.css +1 -0
  22. package/es/control/app-menu/custom-menu-design/menu-design-tree/menu-design-tree.mjs +124 -0
  23. package/es/control/app-menu/menu-render-util.mjs +4 -1
  24. package/es/control/form/form-detail/form-button/form-button.mjs +3 -3
  25. package/es/control/toolbar/float-toolbar/float-toolbar.mjs +6 -1
  26. package/es/control/toolbar/toolbar-group-list/toolbar-group-list.css +1 -1
  27. package/es/control/toolbar/toolbar-group-list/toolbar-group-list.mjs +26 -12
  28. package/es/control/toolbar/toolbar-render-util.mjs +68 -17
  29. package/es/control/toolbar/toolbar.css +1 -1
  30. package/es/control/toolbar/toolbar.mjs +3 -0
  31. package/es/editor/html/quill-editor-preview/quill-editor-preview.css +1 -1
  32. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  33. package/es/mob-app/guard/auth-guard/dyna-auth-guard.mjs +1 -1
  34. package/es/util/button-util/button-util.mjs +2 -2
  35. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  36. package/es/util/list-util/list-render-util.mjs +2 -2
  37. package/es/view/download-view/download-view.mjs +4 -1
  38. package/es/view/login-view/login-view.mjs +1 -0
  39. package/es/view-engine/index-view.engine.mjs +0 -4
  40. package/lib/common/fullscreen-header/fullscreen-header.css +1 -1
  41. package/lib/control/app-menu/app-menu.cjs +1 -1
  42. package/lib/control/app-menu/custom-menu-design/custom-menu-design.cjs +29 -85
  43. package/lib/control/app-menu/custom-menu-design/custom-menu-design.css +1 -1
  44. package/lib/control/app-menu/custom-menu-design/menu-design-list/menu-design-list.cjs +107 -0
  45. package/lib/control/app-menu/custom-menu-design/menu-design-list/menu-design-list.css +1 -0
  46. package/lib/control/app-menu/custom-menu-design/menu-design-tree/menu-design-tree.cjs +126 -0
  47. package/lib/control/app-menu/custom-menu-design/menu-design-tree/menu-design-tree.css +1 -0
  48. package/lib/control/app-menu/menu-render-util.cjs +4 -1
  49. package/lib/control/form/form-detail/form-button/form-button.cjs +3 -3
  50. package/lib/control/toolbar/float-toolbar/float-toolbar.cjs +6 -1
  51. package/lib/control/toolbar/toolbar-group-list/toolbar-group-list.cjs +25 -11
  52. package/lib/control/toolbar/toolbar-group-list/toolbar-group-list.css +1 -1
  53. package/lib/control/toolbar/toolbar-render-util.cjs +66 -15
  54. package/lib/control/toolbar/toolbar.cjs +3 -0
  55. package/lib/control/toolbar/toolbar.css +1 -1
  56. package/lib/editor/html/quill-editor-preview/quill-editor-preview.css +1 -1
  57. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  58. package/lib/mob-app/guard/auth-guard/dyna-auth-guard.cjs +1 -1
  59. package/lib/util/button-util/button-util.cjs +2 -2
  60. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  61. package/lib/util/list-util/list-render-util.cjs +2 -2
  62. package/lib/view/download-view/download-view.cjs +3 -0
  63. package/lib/view/login-view/login-view.cjs +1 -0
  64. package/lib/view-engine/index-view.engine.cjs +0 -4
  65. package/package.json +5 -5
  66. package/dist/index-Cxv8dJIk.js +0 -2
  67. package/dist/index-Cxv8dJIk.js.map +0 -1
  68. package/dist/quill-editor-C5mEMG93.js +0 -2
  69. package/dist/quill-editor-preview-BPS9uMa7.js +0 -2
  70. package/dist/tree-SAqvldtV.js +0 -2
@@ -1,9 +1,9 @@
1
- import { isVNode, createVNode, resolveComponent, h, onBeforeMount, ref, computed } from 'vue';
1
+ import { isVNode, createVNode, resolveComponent, h, onBeforeUnmount, ref, computed } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import '../../util/index.mjs';
4
4
  import { ToolbarGroupList } from './toolbar-group-list/toolbar-group-list.mjs';
5
5
  import { FloatToolbar } from './float-toolbar/float-toolbar.mjs';
6
- import { convertBtnType } from '../../util/button-util/button-util.mjs';
6
+ import { convertBtnType, calcPopoverPlacement } from '../../util/button-util/button-util.mjs';
7
7
 
8
8
  "use strict";
9
9
  function _isSlot(s) {
@@ -61,8 +61,23 @@ function useToolbarGroupModalHandler(opts) {
61
61
  buttonsState,
62
62
  modal,
63
63
  counterData,
64
+ groupShowMode,
65
+ direction = "vertical",
64
66
  modalCloseCallback
65
67
  } = opts;
68
+ let groupModalOverlay;
69
+ const handleCurOverlayClose = () => {
70
+ groupModalOverlay == null ? void 0 : groupModalOverlay.dismiss();
71
+ };
72
+ const handleModalClose = () => {
73
+ handleCurOverlayClose();
74
+ modal == null ? void 0 : modal.dismiss({
75
+ ok: false,
76
+ params: {
77
+ isModalAllClose: true
78
+ }
79
+ });
80
+ };
66
81
  const getGroupItems = (item, isGroupExtractMode) => {
67
82
  var _a;
68
83
  let items = item.detoolbarItems;
@@ -81,6 +96,7 @@ function useToolbarGroupModalHandler(opts) {
81
96
  return items || [];
82
97
  };
83
98
  const handleActionItemClick = (item, event, isGroupExtractMode) => {
99
+ handleCurOverlayClose();
84
100
  modal == null ? void 0 : modal.dismiss({
85
101
  ok: true,
86
102
  data: [{
@@ -90,18 +106,38 @@ function useToolbarGroupModalHandler(opts) {
90
106
  }]
91
107
  });
92
108
  };
93
- let groupModalOverlay;
94
- const handleGroupItemClick = async (_item, _event, _isGroupExtractMode = false) => {
95
- var _a;
96
- const groupItems = getGroupItems(_item, _isGroupExtractMode);
97
- if (!groupItems.length)
98
- return;
99
- groupModalOverlay = ibiz.overlay.createDrawer((_modal) => {
109
+ const openPopover = (_event, _groupItems, _isGroupExtractMode) => {
110
+ const placement = calcPopoverPlacement(ns, _event.currentTarget, _groupItems.length, direction, {
111
+ width: "150px",
112
+ // 3rem为弹框内分组每项的高度
113
+ height: "3rem"
114
+ });
115
+ const overlay = ibiz.overlay.createPopover((_modal) => {
116
+ return h(ToolbarGroupList, {
117
+ modal: _modal,
118
+ groupItems: _groupItems,
119
+ counterData,
120
+ buttonsState,
121
+ groupShowMode,
122
+ isGroupExtractMode: _isGroupExtractMode
123
+ });
124
+ }, {}, {
125
+ width: 150,
126
+ height: "auto",
127
+ modalClass: "".concat(ns.b("popover")),
128
+ placement
129
+ });
130
+ overlay.present(_event.currentTarget);
131
+ return overlay;
132
+ };
133
+ const openDrawer = (_groupItems, _isGroupExtractMode) => {
134
+ const overlay = ibiz.overlay.createDrawer((_modal) => {
100
135
  return h(ToolbarGroupList, {
101
136
  modal: _modal,
102
- groupItems,
137
+ groupItems: _groupItems,
103
138
  counterData,
104
139
  buttonsState,
140
+ groupShowMode,
105
141
  isGroupExtractMode: _isGroupExtractMode
106
142
  });
107
143
  }, {}, {
@@ -109,14 +145,27 @@ function useToolbarGroupModalHandler(opts) {
109
145
  height: "auto",
110
146
  attrs: {
111
147
  position: "bottom",
112
- overlayClass: "".concat(ns.b()),
148
+ overlayClass: "".concat(ns.b("drawer")),
113
149
  closeable: false,
114
150
  round: true
115
151
  }
116
152
  });
117
- groupModalOverlay.present();
153
+ overlay.present();
154
+ return overlay;
155
+ };
156
+ const handleGroupItemClick = async (_item, _event, _isGroupExtractMode = false) => {
157
+ var _a, _b;
158
+ handleCurOverlayClose();
159
+ const groupItems = getGroupItems(_item, _isGroupExtractMode);
160
+ if (!groupItems.length)
161
+ return;
162
+ groupModalOverlay = groupShowMode === "ACTIONSHEET" ? openDrawer(groupItems, _isGroupExtractMode) : openPopover(_event, groupItems, _isGroupExtractMode);
118
163
  const res = await groupModalOverlay.onWillDismiss();
119
- const item = (_a = res == null ? void 0 : res.data) == null ? void 0 : _a[0];
164
+ if ((_a = res == null ? void 0 : res.params) == null ? void 0 : _a.isModalAllClose) {
165
+ handleModalClose();
166
+ return;
167
+ }
168
+ const item = (_b = res == null ? void 0 : res.data) == null ? void 0 : _b[0];
120
169
  if (item) {
121
170
  const {
122
171
  action,
@@ -136,12 +185,13 @@ function useToolbarGroupModalHandler(opts) {
136
185
  handleActionItemClick(item, event, isGroupExtractMode);
137
186
  }
138
187
  };
139
- onBeforeMount(() => {
140
- groupModalOverlay == null ? void 0 : groupModalOverlay.dismiss();
188
+ onBeforeUnmount(() => {
189
+ handleCurOverlayClose();
141
190
  });
142
191
  return {
143
192
  handleItemClick,
144
- handleGroupItemClick
193
+ handleGroupItemClick,
194
+ handleModalClose
145
195
  };
146
196
  }
147
197
  function useCustomToolBarRender(ns, props, c, modalCloseCallback) {
@@ -191,6 +241,7 @@ function useCustomToolBarRender(ns, props, c, modalCloseCallback) {
191
241
  counterData: c.state.counterData,
192
242
  placement: c.placement,
193
243
  direction: c.direction,
244
+ groupShowMode: c.groupShowMode,
194
245
  immediateFloat
195
246
  });
196
247
  };
@@ -223,7 +274,7 @@ function useCustomToolBarRender(ns, props, c, modalCloseCallback) {
223
274
  handleDismiss(res);
224
275
  floatToolbarOverlay.value = void 0;
225
276
  };
226
- onBeforeMount(() => {
277
+ onBeforeUnmount(() => {
227
278
  floatToolbarOverlay.value = void 0;
228
279
  });
229
280
  const renderFloatButton = () => {
@@ -1 +1 @@
1
- .ibiz-control-toolbar{--ibiz-control-toolbar-width-icon-min-width:1em;--ibiz-control-toolbar-height-bottom-item:var(--ibiz-height-control-large);--ibiz-control-toolbar-color-disabled-text:var(--ibiz-color-disabled-text);--ibiz-control-toolbar-color-disabled-bg:var(--ibiz-color-disabled-bg);--ibiz-control-toolbar-spacing-gap:var(--ibiz-spacing-tight);--ibiz-control-toolbar-spacing-badge-margin:0 0 0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-spacing-bottom-padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-font-fontSize:var(--ibiz-font-size-regular);--ibiz-control-toolbar-font-left-fontSize:var(--ibiz-font-size-header-6);--ibiz-control-toolbar-font-right-fontSize:var(--ibiz-font-size-header-6);display:flex;flex-wrap:wrap;gap:var(--ibiz-control-toolbar-spacing-gap);height:100%}.ibiz-control-toolbar__item{display:flex;align-items:center}.ibiz-control-toolbar__group{display:flex;align-items:center}.ibiz-control-toolbar__group-itemx{display:flex;align-items:center}.ibiz-control-toolbar__group-itemx .van-button:nth-child(1){border-right-color:transparent;border-top-right-radius:0;border-bottom-right-radius:0}.ibiz-control-toolbar__group-itemx .van-button:nth-child(2){border-top-left-radius:0;border-bottom-left-radius:0}.ibiz-control-toolbar .van-button__text{display:flex;align-items:center}.ibiz-control-toolbar .ibiz-control-toolbar-item{--ibiz-info-item-spacing-badge-margin:var(--ibiz-control-toolbar-spacing-badge-margin);font-size:var(--ibiz-control-toolbar-font-fontSize);white-space:nowrap}.ibiz-control-toolbar .ibiz-control-toolbar-item:not(:has(svg,img)) .ibiz-icon{width:auto;min-width:var(--ibiz-control-toolbar-width-icon-min-width)}.ibiz-control-toolbar-left .van-button{border:none}.ibiz-control-toolbar-left .ibiz-control-toolbar-item{font-size:var(--ibiz-control-toolbar-font-left-fontSize)}.ibiz-control-toolbar-right{justify-content:flex-end}.ibiz-control-toolbar-right .van-button{border:none}.ibiz-control-toolbar-right .ibiz-control-toolbar-item{font-size:var(--ibiz-control-toolbar-font-right-fontSize)}.ibiz-control-toolbar-bottom{display:flex;padding:var(--ibiz-control-toolbar-spacing-bottom-padding)}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item{flex:1}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item:nth-child(1){margin-left:0}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item .van-button{width:100%;height:var(--ibiz-control-toolbar-height-bottom-item)}.ibiz-toolbar-group-list{--ibiz-control-toolbar-width-icon-min-width:1em;--ibiz-control-toolbar-height-bottom-item:var(--ibiz-height-control-large);--ibiz-control-toolbar-color-disabled-text:var(--ibiz-color-disabled-text);--ibiz-control-toolbar-color-disabled-bg:var(--ibiz-color-disabled-bg);--ibiz-control-toolbar-spacing-gap:var(--ibiz-spacing-tight);--ibiz-control-toolbar-spacing-badge-margin:0 0 0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-spacing-bottom-padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-font-fontSize:var(--ibiz-font-size-regular);--ibiz-control-toolbar-font-left-fontSize:var(--ibiz-font-size-header-6);--ibiz-control-toolbar-font-right-fontSize:var(--ibiz-font-size-header-6)}.ibiz-control-toolbar-float-toolbar-modal.ibiz-popover{background-color:unset;border:none;box-shadow:unset}
1
+ .ibiz-control-toolbar{--ibiz-control-toolbar-width-icon-min-width:1em;--ibiz-control-toolbar-height-bottom-item:var(--ibiz-height-control-large);--ibiz-control-toolbar-color-disabled-text:var(--ibiz-color-disabled-text);--ibiz-control-toolbar-color-disabled-bg:var(--ibiz-color-disabled-bg);--ibiz-control-toolbar-spacing-gap:var(--ibiz-spacing-tight);--ibiz-control-toolbar-spacing-badge-margin:0 0 0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-spacing-bottom-padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-font-fontSize:var(--ibiz-font-size-regular);--ibiz-control-toolbar-font-left-fontSize:var(--ibiz-font-size-header-6);--ibiz-control-toolbar-font-right-fontSize:var(--ibiz-font-size-header-6);display:flex;flex-wrap:wrap;gap:var(--ibiz-control-toolbar-spacing-gap);height:100%}.ibiz-control-toolbar__item{display:flex;align-items:center}.ibiz-control-toolbar__group{display:flex;align-items:center}.ibiz-control-toolbar__group-itemx{display:flex;align-items:center}.ibiz-control-toolbar__group-itemx .van-button:nth-child(1){border-right-color:transparent;border-top-right-radius:0;border-bottom-right-radius:0}.ibiz-control-toolbar__group-itemx .van-button:nth-child(2){border-top-left-radius:0;border-bottom-left-radius:0}.ibiz-control-toolbar .van-button__text{display:flex;align-items:center}.ibiz-control-toolbar .ibiz-control-toolbar-item{--ibiz-info-item-spacing-badge-margin:var(--ibiz-control-toolbar-spacing-badge-margin);font-size:var(--ibiz-control-toolbar-font-fontSize);white-space:nowrap}.ibiz-control-toolbar .ibiz-control-toolbar-item:not(:has(svg,img)) .ibiz-icon{width:auto;min-width:var(--ibiz-control-toolbar-width-icon-min-width)}.ibiz-control-toolbar-left .van-button{border:none}.ibiz-control-toolbar-left .ibiz-control-toolbar-item{font-size:var(--ibiz-control-toolbar-font-left-fontSize)}.ibiz-control-toolbar-right{justify-content:flex-end}.ibiz-control-toolbar-right .van-button{border:none}.ibiz-control-toolbar-right .ibiz-control-toolbar-item{font-size:var(--ibiz-control-toolbar-font-right-fontSize)}.ibiz-control-toolbar-bottom{display:flex;padding:var(--ibiz-control-toolbar-spacing-bottom-padding)}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item{flex:1}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item:nth-child(1){margin-left:0}.ibiz-control-toolbar-bottom .ibiz-control-toolbar__item .van-button{width:100%;height:var(--ibiz-control-toolbar-height-bottom-item)}.ibiz-toolbar-group-list{--ibiz-control-toolbar-width-icon-min-width:1em;--ibiz-control-toolbar-height-bottom-item:var(--ibiz-height-control-large);--ibiz-control-toolbar-color-disabled-text:var(--ibiz-color-disabled-text);--ibiz-control-toolbar-color-disabled-bg:var(--ibiz-color-disabled-bg);--ibiz-control-toolbar-spacing-gap:var(--ibiz-spacing-tight);--ibiz-control-toolbar-spacing-badge-margin:0 0 0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-spacing-bottom-padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-font-fontSize:var(--ibiz-font-size-regular);--ibiz-control-toolbar-font-left-fontSize:var(--ibiz-font-size-header-6);--ibiz-control-toolbar-font-right-fontSize:var(--ibiz-font-size-header-6)}.ibiz-control-toolbar-float-toolbar-modal.ibiz-popover{background-color:unset;border:none;box-shadow:unset}.ibiz-toolbar-group-modal-popover.ibiz-popover{overflow:hidden;border:none;border-radius:var(--ibiz-border-radius-medium)}
@@ -85,6 +85,7 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
85
85
  } = useToolbarGroupModalHandler({
86
86
  buttonsState: c.state.buttonsState,
87
87
  counterData: c.state.counterData,
88
+ groupShowMode: c.groupShowMode,
88
89
  modalCloseCallback: handleClick.bind(this)
89
90
  });
90
91
  const {
@@ -245,6 +246,8 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
245
246
  const {
246
247
  state
247
248
  } = this.c;
249
+ if (!state.isCreated)
250
+ return null;
248
251
  if (this.position === "popper") {
249
252
  let _slot4;
250
253
  return createVNode(resolveComponent("iBizControlBase"), {
@@ -1 +1 @@
1
- .ibiz-quill-preview{--ibiz-quill-preview-min-height:6.25rem;--ibiz-quill-preview-color-placeholder:var(--ibiz-editor-default-placeholder-color);--ibiz-quill-preview-color-btn:var(--ibiz-color-primary);--ibiz-quill-preview-font-fontSize:var(--ibiz-font-size-header-4);--ibiz-quill-preview-font-more-lineHeight:var(--ibiz-font-size-header-4);--ibiz-quill-preview-font-more-fontSize:var(--ibiz-font-size-header-4);--ibiz-quill-preview-spacing-editor-padding-top:var(--ibiz-spacing-base-tight);--ibiz-quill-preview-spacing-editor-padding-right:var(--ibiz-spacing-base);--ibiz-quill-preview-spacing-padding-right:var(--ibiz-spacing-super-loose);--ibiz-quill-preview-spacing-readonly-padding-right:var(--ibiz-spacing-base);--ibiz-quill-preview-spacing-disabled-padding-right:var(--ibiz-spacing-base);position:relative;min-height:var(--ibiz-quill-preview-min-height)}.ibiz-quill-preview__edit{position:absolute;top:var(--ibiz-quill-preview-spacing-editor-padding-top);right:var(--ibiz-quill-preview-spacing-editor-padding-right);font-size:var(--ibiz-quill-preview-font-fontSize)}.ibiz-quill-preview .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-padding-right)}.ibiz-quill-preview--readonly .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-readonly-padding-right)}.ibiz-quill-preview--disabled .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-disabled-padding-right)}.ibiz-quill-preview__image-popup{overflow:visible;background-color:transparent}.ibiz-quill-preview .ql-editor.ql-blank{padding:0}.ibiz-quill-preview .ql-editor.ql-blank::before{left:0;font-style:normal;color:var(--ibiz-quill-preview-color-placeholder)}.ibiz-quill-preview--show-collapse.is-collapse{height:var(--ibiz-quill-preview-height-default)}.ibiz-quill-preview--show-collapse.is-collapse .ql-editor{overflow:hidden}.ibiz-quill-preview--show-collapse.is-collapse .ql-container{height:calc(100% - var(--ibiz-quill-preview-font-more-fontSize));line-height:1}.ibiz-quill-preview-collapse-btn{display:flex;align-items:center;color:var(--ibiz-quill-preview-color-btn);font-size:var(--ibiz-quill-preview-font-more-fontSize)}
1
+ .ibiz-quill-preview{--ibiz-quill-preview-min-height:6.25rem;--ibiz-quill-preview-color-placeholder:var(--ibiz-editor-default-placeholder-color);--ibiz-quill-preview-color-btn:var(--ibiz-color-primary);--ibiz-quill-preview-font-fontSize:var(--ibiz-font-size-header-4);--ibiz-quill-preview-font-more-lineHeight:var(--ibiz-font-size-header-4);--ibiz-quill-preview-font-more-fontSize:var(--ibiz-font-size-header-4);--ibiz-quill-preview-spacing-editor-padding-top:var(--ibiz-spacing-base-tight);--ibiz-quill-preview-spacing-editor-padding-right:var(--ibiz-spacing-base);--ibiz-quill-preview-spacing-padding-right:var(--ibiz-spacing-super-loose);--ibiz-quill-preview-spacing-readonly-padding-right:var(--ibiz-spacing-base);--ibiz-quill-preview-spacing-disabled-padding-right:var(--ibiz-spacing-base);--ibiz-quill-preview-spacing-more-margin-bottom:var(--ibiz-spacing-loose);position:relative;min-height:var(--ibiz-quill-preview-min-height)}.ibiz-quill-preview__edit{position:absolute;top:var(--ibiz-quill-preview-spacing-editor-padding-top);right:var(--ibiz-quill-preview-spacing-editor-padding-right);font-size:var(--ibiz-quill-preview-font-fontSize)}.ibiz-quill-preview .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-padding-right)}.ibiz-quill-preview--readonly .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-readonly-padding-right)}.ibiz-quill-preview--disabled .ql-editor{padding-right:var(--ibiz-quill-preview-spacing-disabled-padding-right)}.ibiz-quill-preview__image-popup{overflow:visible;background-color:transparent}.ibiz-quill-preview .ql-editor.ql-blank{padding:0}.ibiz-quill-preview .ql-editor.ql-blank::before{left:0;font-style:normal;color:var(--ibiz-quill-preview-color-placeholder)}.ibiz-quill-preview--show-collapse.is-collapse{height:var(--ibiz-quill-preview-height-default);margin-bottom:var(--ibiz-quill-preview-spacing-more-margin-bottom)}.ibiz-quill-preview--show-collapse.is-collapse .ql-editor{overflow:hidden}.ibiz-quill-preview--show-collapse.is-collapse .ql-container{line-height:1}.ibiz-quill-preview-collapse-btn{display:flex;align-items:center;color:var(--ibiz-quill-preview-color-btn);font-size:var(--ibiz-quill-preview-font-more-fontSize)}
@@ -1 +1 @@
1
- .ibiz-file-upload{--ibiz-file-upload-min-height:var(--ibiz-editor-default-line-height);--ibiz-file-upload-width-icon:var(--ibiz-width-icon-large);--ibiz-file-upload-width-img:var(--ibiz-height-control-large);--ibiz-file-upload-width-remove:var(--ibiz-width-icon-large);--ibiz-file-upload-color-btn:var(--ibiz-color-text-2);--ibiz-file-upload-color-preview:var(--ibiz-color-disabled-bg);--ibiz-file-upload-spacing-preview-gap:var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-preview-padding:0 var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-img-padding:var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-preview-text-gap:var(--ibiz-spacing-tight);--ibiz-file-upload-font-btn-fontSize:var(--ibiz-font-size-header-4);--ibiz-file-upload-font-preview-fontSize:var(--ibiz-font-size-regular);--ibiz-file-upload-font-textAlign:var(--ibiz-editor-default-text-align);--ibiz-file-upload-radius-preview:var(--ibiz-border-radius-small);--ibiz-file-upload-radius-img:var(--ibiz-border-radius-small);display:flex;flex-direction:column;width:100%}.ibiz-file-upload .van-uploader__preview{display:none}.ibiz-file-upload .van-uploader{width:100%}.ibiz-file-upload--readonly .van-uploader{display:none}.ibiz-file-upload .ibiz-file-upload-button{width:var(--ibiz-file-upload-width-icon);height:var(--ibiz-file-upload-width-icon);font-size:var(--ibiz-file-upload-font-btn-fontSize);color:var(--ibiz-file-upload-color-btn);background:0 0;border:none;border-radius:50%}.ibiz-file-upload .ibiz-file-upload-button .van-button__icon{font-size:inherit}.ibiz-file-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-file-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-file-upload .ibiz-file-upload-preview{width:100%;margin-top:var(--ibiz-file-upload-spacing-preview-gap)}.ibiz-file-upload .ibiz-file-upload-preview-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--ibiz-file-upload-spacing-preview-padding);margin-bottom:var(--ibiz-file-upload-spacing-preview-gap);background:var(--ibiz-file-upload-color-preview);border-radius:var(--ibiz-file-upload-radius-preview)}.ibiz-file-upload .ibiz-file-upload-preview-item:last-child{margin:0;border-width:0}.ibiz-file-upload .ibiz-file-upload-preview-item-img{flex-shrink:0;width:var(--ibiz-file-upload-width-img);min-width:var(--ibiz-file-upload-width-img);height:var(--ibiz-file-upload-width-img);padding:var(--ibiz-file-upload-spacing-img-padding)}.ibiz-file-upload .ibiz-file-upload-preview-item-img img{width:100%;height:100%;border-radius:var(--ibiz-file-upload-radius-img)}.ibiz-file-upload .ibiz-file-upload-preview-item-left{display:flex;flex-grow:1;align-items:center;width:calc(100% - var(--ibiz-file-upload-width-remove))}.ibiz-file-upload .ibiz-file-upload-preview-item-text{display:flex;flex:1;align-items:center;width:calc(100% - var(--ibiz-file-upload-width-img) - var(--ibiz-file-upload-width-remove));padding-left:var(--ibiz-file-upload-spacing-preview-text-gap);font-size:var(--ibiz-file-upload-font-preview-fontSize)}.ibiz-file-upload .ibiz-file-upload-preview-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-file-upload .ibiz-file-upload-preview-item-action{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;width:var(--ibiz-file-upload-width-remove);text-align:right}.ibiz-file-upload .van-uploader__wrapper{display:flex;align-items:center;min-height:var(--ibiz-file-upload-min-height)}.ibiz-file-upload .van-uploader__input-wrapper{display:flex;align-items:center;justify-content:var(--ibiz-file-upload-font-textAlign);width:100%}.ibiz-file-upload .van-uploader__input-wrapper input{right:0;left:auto;width:var(--ibiz-file-upload-width-icon)}.ibiz-file-upload.is-single .van-uploader{display:none}.ibiz-file-upload.is-single .ibiz-file-upload-preview{margin:0}.ibiz-form-item-container--top .ibiz-file-upload .van-uploader{position:absolute;top:0;right:0;width:100%}.ibiz-file-upload--readonly .ibiz-file-upload-preview{margin-top:0}.ibiz-file-upload--disabled .ibiz-file-upload-preview{margin-top:0}
1
+ .ibiz-file-upload{--ibiz-file-upload-min-height:var(--ibiz-editor-default-line-height);--ibiz-file-upload-width-icon:var(--ibiz-width-icon-large);--ibiz-file-upload-width-img:var(--ibiz-height-control-large);--ibiz-file-upload-width-remove:var(--ibiz-width-icon-large);--ibiz-file-upload-color-btn:var(--ibiz-color-text-2);--ibiz-file-upload-color-preview:var(--ibiz-color-disabled-bg);--ibiz-file-upload-spacing-preview-gap:var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-preview-padding:0 var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-img-padding:var(--ibiz-spacing-tight);--ibiz-file-upload-spacing-preview-text-gap:var(--ibiz-spacing-tight);--ibiz-file-upload-font-btn-fontSize:var(--ibiz-font-size-header-4);--ibiz-file-upload-font-preview-fontSize:var(--ibiz-font-size-regular);--ibiz-file-upload-font-textAlign:var(--ibiz-editor-default-text-align);--ibiz-file-upload-radius-preview:var(--ibiz-border-radius-small);--ibiz-file-upload-radius-img:var(--ibiz-border-radius-small);display:flex;flex-direction:column;width:100%}.ibiz-file-upload .van-uploader__preview{display:none}.ibiz-file-upload .van-uploader{width:100%}.ibiz-file-upload--readonly .van-uploader{display:none}.ibiz-file-upload .ibiz-file-upload-button{width:var(--ibiz-file-upload-width-icon);height:var(--ibiz-file-upload-width-icon);font-size:var(--ibiz-file-upload-font-btn-fontSize);color:var(--ibiz-file-upload-color-btn);background:0 0;border:none;border-radius:50%}.ibiz-file-upload .ibiz-file-upload-button .van-button__icon{font-size:inherit}.ibiz-file-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-file-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-file-upload .ibiz-file-upload-preview{width:100%;margin-top:var(--ibiz-file-upload-spacing-preview-gap)}.ibiz-file-upload .ibiz-file-upload-preview-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--ibiz-file-upload-spacing-preview-padding);margin-bottom:var(--ibiz-file-upload-spacing-preview-gap);background:var(--ibiz-file-upload-color-preview);border-radius:var(--ibiz-file-upload-radius-preview)}.ibiz-file-upload .ibiz-file-upload-preview-item:last-child{margin:0;border-width:0}.ibiz-file-upload .ibiz-file-upload-preview-item-img{flex-shrink:0;width:var(--ibiz-file-upload-width-img);min-width:var(--ibiz-file-upload-width-img);height:var(--ibiz-file-upload-width-img);padding:var(--ibiz-file-upload-spacing-img-padding)}.ibiz-file-upload .ibiz-file-upload-preview-item-img img{width:100%;height:100%;border-radius:var(--ibiz-file-upload-radius-img)}.ibiz-file-upload .ibiz-file-upload-preview-item-left{display:flex;flex-grow:1;align-items:center;width:calc(100% - var(--ibiz-file-upload-width-remove))}.ibiz-file-upload .ibiz-file-upload-preview-item-text{display:flex;flex:1;align-items:center;width:calc(100% - var(--ibiz-file-upload-width-img) - var(--ibiz-file-upload-width-remove));padding-left:var(--ibiz-file-upload-spacing-preview-text-gap);font-size:var(--ibiz-file-upload-font-preview-fontSize)}.ibiz-file-upload .ibiz-file-upload-preview-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-file-upload .ibiz-file-upload-preview-item-action{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;width:var(--ibiz-file-upload-width-remove);text-align:right}.ibiz-file-upload .van-uploader__wrapper{display:flex;align-items:center;min-height:var(--ibiz-file-upload-min-height)}.ibiz-file-upload .van-uploader__input-wrapper{display:flex;align-items:center;justify-content:var(--ibiz-file-upload-font-textAlign);width:100%}.ibiz-file-upload .van-uploader__input-wrapper input{left:auto;width:var(--ibiz-file-upload-width-icon)}.ibiz-file-upload.is-single .van-uploader{display:none}.ibiz-file-upload.is-single .ibiz-file-upload-preview{margin:0}.ibiz-form-item-container--top .ibiz-file-upload .van-uploader{position:absolute;top:0;right:0;width:100%}.ibiz-file-upload--readonly .ibiz-file-upload-preview{margin-top:0}.ibiz-file-upload--disabled .ibiz-file-upload-preview{margin-top:0}
@@ -36,7 +36,7 @@ class DynaAuthGuard extends AuthGuard {
36
36
  permission
37
37
  );
38
38
  const app = await ibiz.hub.getAppAsync(ibiz.env.appId);
39
- await this.initEnvironment(app);
39
+ await this.initEnvironment(app.model);
40
40
  await AppHooks.initedApp.call({ context, app });
41
41
  const appModel = app.model;
42
42
  ibiz.env.isMob = appModel.mobileApp === true;
@@ -39,11 +39,11 @@ function getTempDomRect(ns, style = {}) {
39
39
  document.body.removeChild(dom);
40
40
  return domRectList;
41
41
  }
42
- function calcPopoverPlacement(ns, curDom, listNum, direction = "horizontal") {
42
+ function calcPopoverPlacement(ns, curDom, listNum, direction = "horizontal", style = {}) {
43
43
  if (!curDom)
44
44
  return direction === "horizontal" ? "right" : "bottom";
45
45
  const { innerWidth, innerHeight } = window;
46
- const rect = getTempDomRect(ns);
46
+ const rect = getTempDomRect(ns, style);
47
47
  const { x, y, width } = curDom.getBoundingClientRect();
48
48
  const centerX = innerWidth - width - rect.width;
49
49
  const centerY = listNum ? innerHeight - listNum * rect.height : innerHeight / 2;
@@ -35,7 +35,7 @@ class FullscreenUtil {
35
35
  * @memberof FullscreenUtil
36
36
  */
37
37
  get isFullScreen() {
38
- return !!this.fullscreenElement;
38
+ return !!this.fullscreenElement && document.fullscreenElement === this.fullscreenElement;
39
39
  }
40
40
  /**
41
41
  * 指定元素全屏
@@ -212,11 +212,11 @@ function useListRender(props, c, ns) {
212
212
  }
213
213
  return createVNode(resolveComponent("van-list"), {
214
214
  "class": [ns.e("content"), ns.is("show-under-line", controlStyle !== "EXTVIEW1")],
215
- "loading": c.state.isLoading,
215
+ "loading": c.state.isLoading || isUpdating.value,
216
216
  "error": isLoadError.value,
217
217
  "onUpdate:error": ($event) => isLoadError.value = $event,
218
218
  "offset": 50,
219
- "disabled": disabled || isUpdating.value,
219
+ "disabled": disabled,
220
220
  "finished": isLodeFinished.value,
221
221
  "loading-text": ibiz.i18n.t("control.common.loadMore"),
222
222
  "finished-text": finishedText,
@@ -1,4 +1,4 @@
1
- import { isVNode, defineComponent, createVNode, ref, resolveComponent } from 'vue';
1
+ import { isVNode, defineComponent, createVNode, ref, resolveComponent, onMounted } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { useRoute } from 'vue-router';
4
4
  import './download-view.css';
@@ -84,6 +84,9 @@ const DownloadView = /* @__PURE__ */ defineComponent({
84
84
  });
85
85
  }
86
86
  };
87
+ onMounted(() => {
88
+ ibiz.util.hiddenAppLoading();
89
+ });
87
90
  return {
88
91
  ns,
89
92
  tooltip,
@@ -109,6 +109,7 @@ const LoginView = /* @__PURE__ */ defineComponent({
109
109
  }
110
110
  } catch (err) {
111
111
  ibiz.log.warn(err);
112
+ window.location.reload();
112
113
  }
113
114
  isAnonymous.value = false;
114
115
  }
@@ -5,10 +5,6 @@ class IndexViewEngine extends ViewEngineBase {
5
5
  get appmenu() {
6
6
  return this.view.getController("appmenu");
7
7
  }
8
- async onCreated() {
9
- await super.onCreated();
10
- ibiz.util.hiddenAppLoading();
11
- }
12
8
  }
13
9
 
14
10
  export { IndexViewEngine };
@@ -1 +1 @@
1
- .ibiz-fullscreen-header{--ibiz-fullscreen-header-spacing-full-screen-spacing:var(--safe-area-inset-top) var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left);--ibiz-fullscreen-header-width-full-screen:100vw;--ibiz-fullscreen-header-height-full-screen:100vh;--ibiz-fullscreen-header-height-fullscreen-header:2.75rem;--ibiz-fullscreen-header-font-fullscreen-header-fontSize:var(--ibiz-font-size-header-5);--ibiz-fullscreen-header-font-fullscreen-header-fontWeight:var(--ibiz-font-weight-bold);height:var(--ibiz-fullscreen-header-height-fullscreen-header);display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative;font-size:var(--ibiz-fullscreen-header-font-fullscreen-header-fontSize);font-weight:var(--ibiz-fullscreen-header-font-fullscreen-header-fontWeight)}.ibiz-fullscreen-header__close{position:absolute;right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-header-1);height:100%;display:flex;align-items:center}.ibiz-full-screen{position:fixed;top:0;left:0;height:var(--ibiz-fullscreen-header-height-full-screen);width:var(--ibiz-fullscreen-header-width-full-screen);padding:var(--ibiz-fullscreen-header-spacing-full-screen-spacing)}
1
+ .ibiz-fullscreen-header{--ibiz-fullscreen-header-spacing-full-screen-spacing:var(--safe-area-inset-top) var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left);--ibiz-fullscreen-header-width-full-screen:100vw;--ibiz-fullscreen-header-height-full-screen:100vh;--ibiz-fullscreen-header-height-fullscreen-header:2.75rem;--ibiz-fullscreen-header-font-fullscreen-header-fontSize:var(--ibiz-font-size-header-5);--ibiz-fullscreen-header-font-fullscreen-header-fontWeight:var(--ibiz-font-weight-bold);height:var(--ibiz-fullscreen-header-height-fullscreen-header);display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative;font-size:var(--ibiz-fullscreen-header-font-fullscreen-header-fontSize);font-weight:var(--ibiz-fullscreen-header-font-fullscreen-header-fontWeight)}.ibiz-fullscreen-header__close{position:absolute;right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-header-1);height:100%;display:flex;align-items:center}.ibiz-full-screen{--ibiz-fullscreen-header-spacing-full-screen-spacing:var(--safe-area-inset-top) var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left);--ibiz-fullscreen-header-width-full-screen:100vw;--ibiz-fullscreen-header-height-full-screen:100vh;--ibiz-fullscreen-header-height-fullscreen-header:2.75rem;--ibiz-fullscreen-header-font-fullscreen-header-fontSize:var(--ibiz-font-size-header-5);--ibiz-fullscreen-header-font-fullscreen-header-fontWeight:var(--ibiz-font-weight-bold);position:fixed;top:0;left:0;z-index:10;height:var(--ibiz-fullscreen-header-height-full-screen)!important;width:var(--ibiz-fullscreen-header-width-full-screen)!important;padding:var(--ibiz-fullscreen-header-spacing-full-screen-spacing)}
@@ -67,7 +67,7 @@ const AppMenuControl = /* @__PURE__ */ vue.defineComponent({
67
67
  activeName.value = active;
68
68
  await c.onClickMenuItem(active, event, true, opts);
69
69
  };
70
- vue.onMounted(async () => {
70
+ c.evt.on("onCreated", async () => {
71
71
  const allItems = c.getAllItems();
72
72
  const defaultActiveMenuItem = allItems.find((item) => {
73
73
  return item.openDefault && c.isMobMenuItemValid(item);
@@ -2,8 +2,8 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
- var core = require('@ibiz-template/core');
6
- var menuRenderUtil = require('../menu-render-util.cjs');
5
+ var menuDesignList = require('./menu-design-list/menu-design-list.cjs');
6
+ var menuDesignTree = require('./menu-design-tree/menu-design-tree.cjs');
7
7
  require('./custom-menu-design.css');
8
8
 
9
9
  "use strict";
@@ -14,12 +14,12 @@ const MenuDesign = /* @__PURE__ */ vue.defineComponent({
14
14
  type: Object,
15
15
  required: true
16
16
  },
17
- show: {
18
- type: Boolean,
19
- default: false
20
- },
21
17
  modal: {
22
18
  type: Object
19
+ },
20
+ showMode: {
21
+ type: String,
22
+ default: "DEFALUT"
23
23
  }
24
24
  },
25
25
  emits: {
@@ -30,104 +30,48 @@ const MenuDesign = /* @__PURE__ */ vue.defineComponent({
30
30
  }) {
31
31
  const ns = vue3Util.useNamespace("menu-design");
32
32
  const c = props.controller;
33
- const menuMap = vue.ref(/* @__PURE__ */ new Map());
34
- const allMenuMap = /* @__PURE__ */ new Map();
35
- const initData = () => {
36
- [...c.state.mobMenuItems, ...c.saveConfigs].forEach((item) => {
37
- if (item.id) {
38
- menuMap.value.set(item.id, item);
39
- }
40
- });
41
- core.recursiveIterate({
42
- appMenuItems: c.state.mobAuthedMenuItems
43
- }, (item) => {
44
- if (item.id) {
45
- allMenuMap.set(item.id, item);
46
- }
47
- }, {
48
- childrenFields: ["appMenuItems"]
49
- });
50
- };
51
- initData();
52
- const getItemIcon = (item, isGroup) => {
53
- if (item.sysImage)
54
- return item.sysImage;
55
- switch (c.model.appMenuStyle) {
56
- case "ICONVIEW":
57
- return !isGroup ? menuRenderUtil.getDefaultIconVal() : void 0;
58
- case "LISTVIEW":
59
- return;
60
- default:
61
- return menuRenderUtil.getDefaultIconVal();
62
- }
63
- };
33
+ const curVisibleMenuItems = vue.ref([...c.state.mobMenuItems]);
64
34
  const onClose = () => {
65
35
  var _a;
66
36
  emit("close");
67
37
  (_a = props.modal) == null ? void 0 : _a.dismiss();
68
- menuMap.value.clear();
69
38
  };
70
39
  const onSave = async () => {
71
- const curMenuItems = Array.from(menuMap.value.values()).map((item) => {
72
- return allMenuMap.get(item.id);
73
- }).filter((item) => !!item);
74
- c.saveCustomMenusModel(curMenuItems);
40
+ c.saveCustomMenusModel(curVisibleMenuItems.value);
75
41
  onClose();
76
42
  };
77
- const handleItemClick = (item, checked) => {
78
- if (!item.id)
79
- return;
80
- if (checked) {
81
- menuMap.value.delete(item.id);
82
- } else {
83
- menuMap.value.set(item.id, item);
84
- }
85
- };
86
- const renderNodeItem = (_item, _level, isGroup) => {
87
- const marginLeft = "calc(".concat(_level, " * var(").concat(ns.cssVarBlockName("spacing-node-item-margin-left"), "))");
88
- let checked = menuMap.value.has(_item.id || "");
89
- return vue.createVNode("div", {
90
- "class": [ns.e("item"), ns.is("group-item", !!isGroup)],
91
- "style": {
92
- marginLeft
93
- },
94
- "onClick": () => handleItemClick(_item, checked)
95
- }, [vue.createVNode(vue.resolveComponent("iBizIcon"), {
96
- "class": ns.em("item", "icon"),
97
- "icon": getItemIcon(_item, isGroup)
98
- }, null), vue.createVNode("div", {
99
- "class": ns.em("item", "caption")
100
- }, [_item.caption]), vue.createVNode(vue.resolveComponent("van-checkbox"), {
101
- "modelValue": checked,
102
- "onUpdate:modelValue": ($event) => checked = $event,
103
- "class": ns.em("item", "checkbox")
104
- }, null)]);
43
+ const onCurVisibleMenuChange = (menuItems) => {
44
+ curVisibleMenuItems.value = menuItems;
105
45
  };
106
- const renderNode = (_item, _level) => {
107
- var _a;
108
- if (_item.appMenuItems && _item.appMenuItems.length > 0) {
109
- return [renderNodeItem(_item, _level, true), ...(_a = _item.appMenuItems) == null ? void 0 : _a.map((item) => {
110
- return renderNode(item, _level + 1);
111
- })];
46
+ const renderContent = () => {
47
+ switch (props.showMode) {
48
+ case "LIST":
49
+ return vue.createVNode(menuDesignList.MenuDesignList, {
50
+ "curVisibleMenuItems": curVisibleMenuItems.value,
51
+ "allVisibleMenuItems": c.state.mobAuthedMenuItems,
52
+ "onCurVisibleMenuChange": onCurVisibleMenuChange
53
+ }, null);
54
+ case "TREE":
55
+ default:
56
+ return vue.createVNode(menuDesignTree.MenuDesignTree, {
57
+ "curVisibleMenuItems": curVisibleMenuItems.value,
58
+ "allVisibleMenuItems": c.state.mobAuthedMenuItems,
59
+ "appMenuStyle": c.model.appMenuStyle,
60
+ "onCurVisibleMenuChange": onCurVisibleMenuChange
61
+ }, null);
112
62
  }
113
- return renderNodeItem(_item, _level);
114
- };
115
- const renderTree = (items) => {
116
- return vue.createVNode("div", {
117
- "class": ns.e("tree")
118
- }, [items.map((item) => renderNode(item, 0))]);
119
63
  };
120
64
  return {
121
65
  c,
122
66
  ns,
123
67
  onSave,
124
68
  onClose,
125
- renderTree
69
+ renderContent
126
70
  };
127
71
  },
128
72
  render() {
129
73
  return vue.createVNode("div", {
130
- "class": this.ns.b()
74
+ "class": [this.ns.b(), this.ns.is(this.showMode.toLocaleLowerCase(), true)]
131
75
  }, [vue.createVNode("div", {
132
76
  "class": this.ns.e("header")
133
77
  }, [vue.createVNode("ion-icon", {
@@ -141,7 +85,7 @@ const MenuDesign = /* @__PURE__ */ vue.defineComponent({
141
85
  "onClick": this.onSave
142
86
  }, [ibiz.i18n.t("control.appmenu.save")])]), vue.createVNode("div", {
143
87
  "class": this.ns.e("content")
144
- }, [this.c.state.mobAuthedMenuItems.length ? this.renderTree(this.c.state.mobAuthedMenuItems) : vue.createVNode(vue.resolveComponent("iBizNoData"), null, null)])]);
88
+ }, [this.renderContent()])]);
145
89
  }
146
90
  });
147
91
 
@@ -1 +1 @@
1
- .ibiz-menu-design{--ibiz-menu-design-color-item-bg:var(--ibiz-color-bg-0);--ibiz-menu-design-color-primary-btn-text:var(--ibiz-color-primary);--ibiz-menu-design-height-item:var(--ibiz-height-control-large);--ibiz-menu-design-spacing-padding:var(--ibiz-spacing-base);--ibiz-menu-design-spacing-header-padding:0 0 var(--ibiz-spacing-tight);--ibiz-menu-design-spacing-item-padding:0 var(--ibiz-spacing-base);--ibiz-menu-design-spacing-item-margin:var(--ibiz-spacing-tight) 0;--ibiz-menu-design-spacing-item-caption-margin:0 0 0 var(--ibiz-spacing-tight);--ibiz-menu-design-spacing-item-checkbox-margin:0 0 0 var(--ibiz-spacing-extra-tight);--ibiz-menu-design-spacing-node-item-margin-left:1.25rem;--ibiz-menu-design-radius-item-circle:var(--ibiz-border-radius-medium);--ibiz-menu-design-font-header-font-size:var(--ibiz-font-size-header-5);--ibiz-menu-design-font-header-caption-font-weight:var(--ibiz-font-weight-bold);--ibiz-menu-design-font-close-icon-font-size:var(--ibiz-font-size-header-3);--ibiz-menu-design-font-item-font-size:var(--ibiz-font-size-header-6);--ibiz-menu-design-icon-item-size:var(--ibiz-font-size-header-6);display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-menu-design-spacing-padding)}.ibiz-menu-design__header{display:flex;align-items:center;justify-content:space-between;padding:var(--ibiz-menu-design-spacing-header-padding);font-size:var(--ibiz-menu-design-font-header-font-size)}.ibiz-menu-design__header--close-icon{font-size:var(--ibiz-menu-design-font-close-icon-font-size)}.ibiz-menu-design__header--caption{font-weight:var(--ibiz-menu-design-font-header-caption-font-weight)}.ibiz-menu-design__header--save{color:var(--ibiz-menu-design-color-primary-btn-text)}.ibiz-menu-design__content{flex:1;overflow-y:auto}.ibiz-menu-design__item{display:flex;align-items:center;height:var(--ibiz-menu-design-height-item);padding:var(--ibiz-menu-design-spacing-item-padding);margin:var(--ibiz-menu-design-spacing-item-margin);font-size:var(--ibiz-menu-design-font-item-font-size);background-color:var(--ibiz-menu-design-color-item-bg);border-radius:var(--ibiz-menu-design-radius-item-circle);line-height:var(--ibiz-menu-design-height-item)}.ibiz-menu-design__item--icon{display:flex;align-items:center;width:var(--ibiz-menu-design-icon-item-size)}.ibiz-menu-design__item--icon+.ibiz-menu-design__item--caption{margin:var(--ibiz-menu-design-spacing-item-caption-margin)}.ibiz-menu-design__item--caption{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-menu-design__item--checkbox{padding:var(--ibiz-menu-design-spacing-item-checkbox-margin);margin-left:auto}.ibiz-menu-design .ibiz-menu-design__item{position:relative}.ibiz-menu-design .ibiz-menu-design__item::after{position:absolute;display:block;width:100%;height:100%;left:0;top:0;content:""}
1
+ .ibiz-menu-design{--ibiz-menu-design-color-list-bg:var(--ibiz-color-bg-0);--ibiz-menu-design-color-primary-btn-text:var(--ibiz-color-primary);--ibiz-menu-design-spacing-padding:var(--ibiz-spacing-base);--ibiz-menu-design-spacing-header-padding:0 0 var(--ibiz-spacing-tight);--ibiz-menu-design-radius-item-circle:var(--ibiz-border-radius-medium);--ibiz-menu-design-font-header-font-size:var(--ibiz-font-size-header-5);--ibiz-menu-design-font-header-caption-font-weight:var(--ibiz-font-weight-bold);--ibiz-menu-design-font-close-icon-font-size:var(--ibiz-font-size-header-3);--ibiz-menu-design-font-item-font-size:var(--ibiz-font-size-header-6);display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-menu-design-spacing-padding)}.ibiz-menu-design__header{display:flex;align-items:center;justify-content:space-between;padding:var(--ibiz-menu-design-spacing-header-padding);font-size:var(--ibiz-menu-design-font-header-font-size)}.ibiz-menu-design__header--close-icon{font-size:var(--ibiz-menu-design-font-close-icon-font-size)}.ibiz-menu-design__header--caption{font-weight:var(--ibiz-menu-design-font-header-caption-font-weight)}.ibiz-menu-design__header--save{color:var(--ibiz-menu-design-color-primary-btn-text)}.ibiz-menu-design__content{flex:1;overflow-y:auto}.ibiz-menu-design.is-list{background-color:var(--ibiz-menu-design-color-list-bg)}
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var draggable = require('vuedraggable');
6
+ require('./menu-design-list.css');
7
+
8
+ "use strict";
9
+ const MenuDesignList = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizMenuDesignList",
11
+ components: {
12
+ draggable
13
+ },
14
+ props: {
15
+ curVisibleMenuItems: {
16
+ type: Array,
17
+ required: true
18
+ },
19
+ allVisibleMenuItems: {
20
+ type: Array,
21
+ required: true
22
+ }
23
+ },
24
+ emits: {
25
+ curVisibleMenuChange: (_menuItems) => true
26
+ },
27
+ setup(props, {
28
+ emit
29
+ }) {
30
+ const ns = vue3Util.useNamespace("menu-design-list");
31
+ const curMenuItems = vue.ref([]);
32
+ const moreMenuItems = vue.ref([]);
33
+ const initData = () => {
34
+ curMenuItems.value = [...props.curVisibleMenuItems];
35
+ moreMenuItems.value = props.allVisibleMenuItems.filter((menu) => !props.curVisibleMenuItems.find((_item) => menu.id === _item.id));
36
+ };
37
+ initData();
38
+ const emitChange = () => {
39
+ emit("curVisibleMenuChange", [...curMenuItems.value]);
40
+ };
41
+ const handleRemoveOrAdd = (type, index) => {
42
+ if (type === "nav") {
43
+ const item = curMenuItems.value[index];
44
+ curMenuItems.value.splice(index, 1);
45
+ moreMenuItems.value.push(item);
46
+ } else {
47
+ const item = moreMenuItems.value[index];
48
+ moreMenuItems.value.splice(index, 1);
49
+ curMenuItems.value.push(item);
50
+ }
51
+ emitChange();
52
+ };
53
+ const renderDraggable = (type, menuItems) => {
54
+ return vue.createVNode(draggable, {
55
+ "itemKey": "id",
56
+ "group": "menu-design",
57
+ "handle": ".draggable-icon",
58
+ "list": menuItems,
59
+ "class": ns.e("draggable"),
60
+ "onEnd": emitChange
61
+ }, {
62
+ item: ({
63
+ element,
64
+ index
65
+ }) => {
66
+ return vue.createVNode("div", {
67
+ "class": ns.em("draggable", "item")
68
+ }, [vue.createVNode("ion-icon", {
69
+ "name": type === "nav" ? "remove-circle" : "add-circle",
70
+ "class": [ns.em("draggable", "icon"), ns.em("draggable", type === "nav" ? "remove-icon" : "add-icon"), ns.em("draggable", "prefix-icon")],
71
+ "onClick": () => handleRemoveOrAdd(type, index)
72
+ }, null), vue.createVNode("div", {
73
+ "class": ns.em("draggable", "item-content")
74
+ }, [vue.createVNode("div", {
75
+ "class": ns.em("draggable", "item-caption")
76
+ }, [vue.createVNode(vue.resolveComponent("iBizIcon"), {
77
+ "icon": element.sysImage,
78
+ "class": ns.em("draggable", "item-icon")
79
+ }, null), vue.createVNode("div", null, [element.caption])]), vue.createVNode("ion-icon", {
80
+ "name": "menu-outline",
81
+ "class": ["draggable-icon", ns.em("draggable", "icon"), ns.em("draggable", "suffix-icon")]
82
+ }, null)])]);
83
+ }
84
+ });
85
+ };
86
+ const renderMenuList = (type) => {
87
+ return vue.createVNode("div", {
88
+ "class": ns.e("group")
89
+ }, [vue.createVNode("div", {
90
+ "class": ns.em("group", "caption")
91
+ }, [type === "nav" ? ibiz.i18n.t("control.appmenu.bottomNav") : ibiz.i18n.t("control.appmenu.more")]), renderDraggable(type, type === "nav" ? curMenuItems.value : moreMenuItems.value)]);
92
+ };
93
+ return {
94
+ ns,
95
+ renderMenuList
96
+ };
97
+ },
98
+ render() {
99
+ return vue.createVNode("div", {
100
+ "class": this.ns.b()
101
+ }, [vue.createVNode("div", {
102
+ "class": this.ns.e("wrapper")
103
+ }, [[this.renderMenuList("nav"), this.renderMenuList("more")]])]);
104
+ }
105
+ });
106
+
107
+ exports.MenuDesignList = MenuDesignList;
@@ -0,0 +1 @@
1
+ .ibiz-menu-design-list{--ibiz-menu-design-list-color-group-caption:var(--ibiz-color-text-2);--ibiz-menu-design-list-color-draggable-bg:var(--ibiz-color-bg-1);--ibiz-menu-design-list-color-draggable-prefix-icon:var(--ibiz-color-danger);--ibiz-menu-design-list-color-draggable-add-icon:var(--ibiz-color-primary);--ibiz-menu-design-list-color-draggable-item-content-border:var(--ibiz-color-border);--ibiz-menu-design-list-width-draggable-item-icon:var(--van-tabbar-item-icon-size);--ibiz-menu-design-list-spacing-caption-padding:var(--ibiz-spacing-base) 0;--ibiz-menu-design-list-spacing-draggable-padding:var(--ibiz-spacing-base-tight);--ibiz-menu-design-list-spacing-draggable-item-content-padding:var(--ibiz-spacing-base-tight) 0;--ibiz-menu-design-list-spacing-draggable-prefix-icon-margin:0 var(--ibiz-spacing-tight) 0 0;--ibiz-menu-design-list-spacing-draggable-item-icon:0 var(--ibiz-spacing-tight) 0 0;--ibiz-menu-design-list-radius-draggable-circle:var(--ibiz-border-radius-medium);--ibiz-menu-design-list-font-draggable-icon:var(--ibiz-font-size-header-3);--ibiz-menu-design-list-font-draggable-item:var(--ibiz-width-icon-medium);--ibiz-menu-design-list-line-height-draggable-item-caption:1}.ibiz-menu-design-list__group--caption{padding:var(--ibiz-menu-design-list-spacing-caption-padding);color:var(--ibiz-menu-design-list-color-group-caption)}.ibiz-menu-design-list__draggable{padding:var(--ibiz-menu-design-list-spacing-draggable-padding);background-color:var(--ibiz-menu-design-list-color-draggable-bg);border-radius:var(--ibiz-menu-design-list-radius-draggable-circle)}.ibiz-menu-design-list__draggable--icon{font-size:var(--ibiz-menu-design-list-font-draggable-icon)}.ibiz-menu-design-list__draggable--icon.ibiz-menu-design-list__draggable--prefix-icon{margin:var(--ibiz-menu-design-list-spacing-draggable-prefix-icon-margin)}.ibiz-menu-design-list__draggable--icon.ibiz-menu-design-list__draggable--remove-icon{color:var(--ibiz-menu-design-list-color-draggable-prefix-icon)}.ibiz-menu-design-list__draggable--icon.ibiz-menu-design-list__draggable--add-icon{color:var(--ibiz-menu-design-list-color-draggable-add-icon)}.ibiz-menu-design-list__draggable--item{display:flex;align-items:center;width:100%;font-size:var(--ibiz-menu-design-list-font-draggable-item)}.ibiz-menu-design-list__draggable--item-content{display:flex;flex-grow:1;align-items:center;justify-content:space-between;padding:var(--ibiz-menu-design-list-spacing-draggable-item-content-padding);border-bottom:1px solid var(--ibiz-menu-design-list-color-draggable-item-content-border)}.ibiz-menu-design-list__draggable--item-caption{display:flex;align-items:center;line-height:var(--ibiz-menu-design-list-line-height-draggable-item-caption)}.ibiz-menu-design-list__draggable--item-icon{display:flex;align-items:center;width:var(--ibiz-menu-design-list-width-draggable-item-icon);margin:var(--ibiz-menu-design-list-spacing-draggable-item-icon)}