@ibiz-template/vue3-components 0.1.2 → 0.1.5

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 (168) hide show
  1. package/dist/{chart-efad8ee0.js → chart-0d4e59ff.js} +2 -2
  2. package/dist/chart-0d4e59ff.js.map +1 -0
  3. package/dist/{ibiz-markdown-editor-3745dfd5.js → ibiz-markdown-editor-a426becc.js} +2 -2
  4. package/dist/ibiz-markdown-editor-a426becc.js.map +1 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +3 -3
  7. package/dist/index.system.min.js.map +1 -1
  8. package/dist/wang-editor-675011c6.js.map +1 -1
  9. package/dist/xlsx-util-fac1c045.js.map +1 -1
  10. package/es/common/icon/icon.d.ts +1 -3
  11. package/es/common/index.d.ts +0 -2
  12. package/es/common/index.mjs +1 -5
  13. package/es/common/router-view/router-view.d.ts +1 -3
  14. package/es/control/app-menu/app-menu.css +1 -1
  15. package/es/control/app-menu-icon-view/app-menu-icon-view.d.ts +3 -3
  16. package/es/control/app-menu-icon-view/index.d.ts +6 -2
  17. package/es/control/calendar/calendar.controller.d.ts +93 -0
  18. package/es/control/calendar/calendar.controller.mjs +162 -0
  19. package/es/control/calendar/calendar.css +1 -0
  20. package/es/control/calendar/calendar.d.ts +49 -0
  21. package/es/control/calendar/calendar.mjs +211 -0
  22. package/es/control/calendar/calendar.provider.d.ts +13 -0
  23. package/es/control/calendar/calendar.provider.mjs +13 -0
  24. package/es/control/calendar/calendar.service.d.ts +49 -0
  25. package/es/control/calendar/calendar.service.mjs +88 -0
  26. package/es/control/calendar/index.d.ts +47 -0
  27. package/es/control/calendar/index.mjs +15 -0
  28. package/es/control/chart/generator/chart-options-generator.mjs +1 -1
  29. package/es/control/chart/generator/funnel-series-generator.d.ts +1 -1
  30. package/es/control/chart/generator/pie-series-generator.d.ts +1 -1
  31. package/es/control/dashboard/dashboard.css +1 -0
  32. package/es/control/dashboard/dashboard.d.ts +1 -0
  33. package/es/control/dashboard/dashboard.mjs +1 -0
  34. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +1 -0
  35. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +1 -0
  36. package/es/control/dashboard/portlet/portlet-part/portlet-part.controller.mjs +1 -1
  37. package/es/control/data-view/data-view.controller.mjs +0 -1
  38. package/es/control/data-view/data-view.css +1 -1
  39. package/es/control/drbar/drbar.controller.d.ts +2 -5
  40. package/es/control/drbar/drbar.d.ts +2 -2
  41. package/es/control/drbar/index.d.ts +3 -1
  42. package/es/control/drtab/drtab.controller.d.ts +2 -5
  43. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.d.ts +34 -0
  44. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.mjs +89 -0
  45. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
  46. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.d.ts +49 -0
  47. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.mjs +78 -0
  48. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.d.ts +11 -0
  49. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.mjs +13 -0
  50. package/es/control/exp-bar/calendar-exp-bar/index.d.ts +49 -0
  51. package/es/control/exp-bar/calendar-exp-bar/index.mjs +18 -0
  52. package/es/control/exp-bar/exp-bar.controller.d.ts +5 -5
  53. package/es/control/exp-bar/exp-bar.controller.mjs +17 -11
  54. package/es/control/exp-bar/index.d.ts +1 -0
  55. package/es/control/exp-bar/index.mjs +3 -0
  56. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.d.ts +20 -3
  57. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.mjs +49 -25
  58. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.mjs +2 -1
  59. package/es/control/form/form/form.d.ts +1 -5
  60. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +4 -3
  61. package/es/control/form/form-detail/form-page/form-page.mjs +2 -2
  62. package/es/control/grid/grid/grid-control.util.d.ts +2 -1
  63. package/es/control/grid/grid/grid.controller.d.ts +73 -5
  64. package/es/control/grid/grid/grid.controller.mjs +201 -6
  65. package/es/control/grid/grid/grid.css +1 -1
  66. package/es/control/grid/grid/grid.d.ts +6 -1
  67. package/es/control/grid/grid/grid.mjs +62 -10
  68. package/es/control/grid/grid/index.d.ts +5 -1
  69. package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +11 -2
  70. package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.mjs +53 -0
  71. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  72. package/es/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
  73. package/es/control/index.d.ts +1 -0
  74. package/es/control/index.mjs +6 -0
  75. package/es/control/toolbar/index.d.ts +6 -2
  76. package/es/control/toolbar/toolbar.d.ts +3 -3
  77. package/es/control/tree/index.d.ts +7 -1
  78. package/es/control/tree/tree.controller.d.ts +23 -11
  79. package/es/control/tree/tree.controller.mjs +60 -44
  80. package/es/control/tree/tree.d.ts +7 -1
  81. package/es/control/tree/tree.mjs +27 -7
  82. package/es/control/tree/tree.service.d.ts +23 -4
  83. package/es/control/tree/tree.service.mjs +123 -50
  84. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.d.ts +1 -1
  85. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
  86. package/es/editor/code/code-editor.controller.d.ts +2 -2
  87. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
  88. package/es/editor/html/wang-editor/wang-editor.d.ts +1 -1
  89. package/es/editor/upload/use/use-ibiz-upload.d.ts +2 -2
  90. package/es/editor/upload/use/use-iview-upload.d.ts +2 -2
  91. package/es/index.mjs +9 -2
  92. package/es/panel-component/nav-pos/nav-pos.mjs +6 -4
  93. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -2
  94. package/es/panel-component/nav-pos-index/nav-pos-index.mjs +3 -2
  95. package/es/panel-component/nav-pos-index/nav-pos-index.state.mjs +1 -1
  96. package/es/panel-component/panel-app-title/panel-app-title.css +1 -1
  97. package/es/panel-component/panel-app-title/panel-app-title.mjs +1 -1
  98. package/es/panel-component/panel-field/panel-field.controller.d.ts +1 -1
  99. package/es/view/portal-view/portal-view.mjs +1 -18
  100. package/es/view-engine/calendar-exp-view.engine.d.ts +25 -0
  101. package/es/view-engine/calendar-exp-view.engine.mjs +33 -0
  102. package/es/view-engine/calendar-view.engine.d.ts +5 -0
  103. package/es/view-engine/calendar-view.engine.mjs +6 -0
  104. package/es/view-engine/grid-view.engine.mjs +1 -1
  105. package/es/view-engine/index.mjs +10 -0
  106. package/es/view-engine/pickup-view2.engine.mjs +5 -1
  107. package/es/view-engine/wf-dyna-action-view.engine.mjs +1 -1
  108. package/es/view-engine/wf-dyna-start-view.engine.mjs +1 -1
  109. package/lib/common/index.cjs +0 -13
  110. package/lib/control/app-menu/app-menu.css +1 -1
  111. package/lib/control/calendar/calendar.cjs +213 -0
  112. package/lib/control/calendar/calendar.controller.cjs +164 -0
  113. package/lib/control/calendar/calendar.css +1 -0
  114. package/lib/control/calendar/calendar.provider.cjs +15 -0
  115. package/lib/control/calendar/calendar.service.cjs +90 -0
  116. package/lib/control/calendar/index.cjs +22 -0
  117. package/lib/control/chart/generator/chart-options-generator.cjs +1 -1
  118. package/lib/control/dashboard/dashboard.cjs +1 -0
  119. package/lib/control/dashboard/dashboard.css +1 -0
  120. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +1 -0
  121. package/lib/control/dashboard/portlet/portlet-part/portlet-part.controller.cjs +1 -1
  122. package/lib/control/data-view/data-view.controller.cjs +0 -1
  123. package/lib/control/data-view/data-view.css +1 -1
  124. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.cjs +80 -0
  125. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.cjs +91 -0
  126. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
  127. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.cjs +15 -0
  128. package/lib/control/exp-bar/calendar-exp-bar/index.cjs +25 -0
  129. package/lib/control/exp-bar/exp-bar.controller.cjs +17 -11
  130. package/lib/control/exp-bar/index.cjs +6 -0
  131. package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.cjs +2 -1
  132. package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.cjs +49 -25
  133. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +4 -3
  134. package/lib/control/form/form-detail/form-page/form-page.cjs +2 -2
  135. package/lib/control/grid/grid/grid.cjs +62 -10
  136. package/lib/control/grid/grid/grid.controller.cjs +200 -5
  137. package/lib/control/grid/grid/grid.css +1 -1
  138. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.controller.cjs +53 -0
  139. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  140. package/lib/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
  141. package/lib/control/index.cjs +28 -16
  142. package/lib/control/tree/tree.cjs +27 -7
  143. package/lib/control/tree/tree.controller.cjs +59 -43
  144. package/lib/control/tree/tree.service.cjs +122 -49
  145. package/lib/index.cjs +79 -76
  146. package/lib/panel-component/nav-pos/nav-pos.cjs +6 -4
  147. package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +3 -2
  148. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -2
  149. package/lib/panel-component/nav-pos-index/nav-pos-index.state.cjs +1 -1
  150. package/lib/panel-component/panel-app-title/panel-app-title.cjs +1 -1
  151. package/lib/panel-component/panel-app-title/panel-app-title.css +1 -1
  152. package/lib/view/portal-view/portal-view.cjs +1 -18
  153. package/lib/view-engine/calendar-exp-view.engine.cjs +35 -0
  154. package/lib/view-engine/calendar-view.engine.cjs +8 -0
  155. package/lib/view-engine/grid-view.engine.cjs +1 -1
  156. package/lib/view-engine/index.cjs +10 -0
  157. package/lib/view-engine/pickup-view2.engine.cjs +5 -1
  158. package/lib/view-engine/wf-dyna-action-view.engine.cjs +1 -1
  159. package/lib/view-engine/wf-dyna-start-view.engine.cjs +1 -1
  160. package/package.json +18 -18
  161. package/dist/chart-efad8ee0.js.map +0 -1
  162. package/dist/ibiz-markdown-editor-3745dfd5.js.map +0 -1
  163. package/es/common/keep-alive/keep-alive.d.ts +0 -45
  164. package/es/common/keep-alive/keep-alive.mjs +0 -293
  165. package/es/common/keep-alive/scheduler.d.ts +0 -41
  166. package/es/common/keep-alive/scheduler.mjs +0 -168
  167. package/lib/common/keep-alive/keep-alive.cjs +0 -304
  168. package/lib/common/keep-alive/scheduler.cjs +0 -178
@@ -12,9 +12,7 @@ export declare const IBizIcon: import("vue").DefineComponent<{
12
12
  type: StringConstructor;
13
13
  default: string;
14
14
  };
15
- }, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
16
- [key: string]: any;
17
- }> | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
+ }, () => VNode | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
16
  icon: {
19
17
  type: PropType<ISysImage | IIcon>;
20
18
  };
@@ -1,7 +1,5 @@
1
1
  import { App } from 'vue';
2
- import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css';
3
2
  export * from './icon/icon';
4
- export * from './keep-alive/keep-alive';
5
3
  export * from './router-view/router-view';
6
4
  export * from './col/col';
7
5
  export * from './row/row';
@@ -1,8 +1,6 @@
1
1
  import { IBizActionToolbar } from './action-toolbar/action-toolbar.mjs';
2
2
  import { IBizCol } from './col/col.mjs';
3
3
  import { IBizIcon } from './icon/icon.mjs';
4
- import { IBizKeepAlive } from './keep-alive/keep-alive.mjs';
5
- export { MoveType, ShapeFlags, devtoolsComponentAdded, invokeArrayFns, invokeVNodeHook, isAsyncWrapper, isKeepAlive, queuePostRenderEffect, setTransitionHooks } from './keep-alive/keep-alive.mjs';
6
4
  import { IBizRouterView } from './router-view/router-view.mjs';
7
5
  import { IBizRow } from './row/row.mjs';
8
6
  import { IBizControlBase } from './control-base/control-base.mjs';
@@ -11,12 +9,10 @@ import { IBizViewShell } from './view-shell/view-shell.mjs';
11
9
  import { IBizRawItem } from './rawitem/rawitem.mjs';
12
10
  import { IBizCodeList } from './code-list/code-list.mjs';
13
11
  import { IBizNoData } from './no-data/no-data.mjs';
14
- import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css';
15
12
 
16
13
  const IBizCommonComponents = {
17
14
  install: (v) => {
18
15
  v.component(IBizControlBase.name, IBizControlBase);
19
- v.component(IBizKeepAlive.name, IBizKeepAlive);
20
16
  v.component(IBizIcon.name, IBizIcon);
21
17
  v.component(IBizRow.name, IBizRow);
22
18
  v.component(IBizCol.name, IBizCol);
@@ -30,4 +26,4 @@ const IBizCommonComponents = {
30
26
  }
31
27
  };
32
28
 
33
- export { IBizActionToolbar, IBizCodeList, IBizCol, IBizCommonComponents, IBizControlBase, IBizControlShell, IBizIcon, IBizKeepAlive, IBizRawItem, IBizRouterView, IBizRow, IBizViewShell, IBizCommonComponents as default };
29
+ export { IBizActionToolbar, IBizCodeList, IBizCol, IBizCommonComponents, IBizControlBase, IBizControlShell, IBizIcon, IBizRawItem, IBizRouterView, IBizRow, IBizViewShell, IBizCommonComponents as default };
@@ -14,9 +14,7 @@ export declare const IBizRouterView: import("vue").DefineComponent<{
14
14
  type: StringConstructor;
15
15
  };
16
16
  }, {
17
- renderComp: (Component: VNode, _route: any) => VNode<import("vue").RendererNode, import("vue").RendererElement, {
18
- [key: string]: any;
19
- }> | undefined;
17
+ renderComp: (Component: VNode, _route: any) => VNode | undefined;
20
18
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
21
19
  name: {
22
20
  type: PropType<string>;
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-control-appmenu{position:static;width:100%;height:100%;overflow-y:auto;--ibiz-control-appmenu-collapse-item-hover-color:var(--ibiz-color-primary);--ibiz-control-appmenu-collapse-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-icon-width:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-height:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-margin:0 10px 0 0;--ibiz-control-appmenu-item-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-item-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-height:52px;--ibiz-control-appmenu-item-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-horizontal-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-horizontal-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-horizontal-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-horizontal-height:40px;--ibiz-control-appmenu-item-horizontal-border-radius:var(--ibiz-border-radius-medium);--ibiz-control-appmenu-item-horizontal-padding:var(--ibiz-spacing-base)}.ibiz-control-appmenu .el-menu--vertical{width:100%}.ibiz-control-appmenu .el-menu--vertical .el-menu-item,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title{display:flex;align-items:center;justify-content:flex-start;width:100%;height:var(--ibiz-control-appmenu-item-height);font-size:var(--ibiz-control-appmenu-item-font-size);color:var(--ibiz-control-appmenu-item-color);white-space:nowrap}.ibiz-control-appmenu .el-menu--vertical .el-menu-item:hover,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-hover-color);background-color:var(--ibiz-control-appmenu-item-hover-bg-color)}.ibiz-control-appmenu .el-menu--vertical .el-menu-item.is-active,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-selected-color);background-color:var(--ibiz-control-appmenu-item-selected-bg-color)}.ibiz-control-appmenu .el-menu--horizontal{gap:16px;align-items:center;height:100%;background-color:transparent;border-bottom:none}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title{height:var(--ibiz-control-appmenu-item-horizontal-height);padding:var(--ibiz-control-appmenu-item-horizontal-padding);font-size:var(--ibiz-control-appmenu-item-horizontal-font-size);line-height:initial;color:var(--ibiz-control-appmenu-item-horizontal-color);white-space:nowrap;border:none;border-radius:var(--ibiz-control-appmenu-item-horizontal-border-radius)}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item:hover,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-horizontal-hover-color);background-color:var(--ibiz-control-appmenu-item-horizontal-hover-bg-color)}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item.is-active,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-horizontal-selected-color)!important;background-color:var(--ibiz-control-appmenu-item-horizontal-selected-bg-color)}.ibiz-control-appmenu .el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{color:var(--ibiz-control-appmenu-item-horizontal-selected-color);background-color:var(--ibiz-control-appmenu-item-horizontal-selected-bg-color)}.ibiz-control-appmenu .el-menu--horizontal::-webkit-scrollbar-thumb{background-color:var(--ibiz-color-white)}.ibiz-control-appmenu__icon{margin:var(--ibiz-control-appmenu-icon-margin)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu__item{display:flex;align-items:center;justify-content:center;padding:calc(var(--ibiz-control-appmenu-collapse-item-padding) * .875) calc(var(--ibiz-control-appmenu-collapse-item-padding) * 1.5)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu__item:hover{color:var(--ibiz-control-appmenu-collapse-item-hover-color)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-tooltip{width:100%}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu{display:block}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu>.el-sub-menu__title{display:flex;align-items:center;justify-content:center;display:flex;align-items:center;justify-content:center;padding:calc(var(--ibiz-control-appmenu-collapse-item-padding) * .875) calc(var(--ibiz-control-appmenu-collapse-item-padding) * 1.5);white-space:nowrap;cursor:pointer}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu>.el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-collapse-item-hover-color)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu .ibiz-control-appmenu-submenu__item{padding:0}.ibiz-control-appmenu .el-menu{border-right:0}.ibiz-control-appmenu .el-sub-menu .el-sub-menu__icon-arrow{right:14px;width:12px}.ibiz-control-appmenu .el-sub-menu .el-menu-item{padding:calc(var(--ibiz-control-appmenu-item-padding) * .875) calc(var(--ibiz-control-appmenu-item-padding) * 2.5)}.ibiz-control-appmenu .ibiz-control-appmenu__counter{position:absolute;top:50%;right:5px;height:20px;padding:0 6px;line-height:initial;color:#fff;background-color:#f56c6c;border-radius:10px;transform:translateY(-50%)}.el-menu--popup-container{--ibiz-control-appmenu-collapse-item-hover-color:var(--ibiz-color-primary);--ibiz-control-appmenu-collapse-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-icon-width:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-height:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-margin:0 10px 0 0;--ibiz-control-appmenu-item-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-item-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-height:52px;--ibiz-control-appmenu-item-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-horizontal-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-horizontal-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-horizontal-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-horizontal-height:40px;--ibiz-control-appmenu-item-horizontal-border-radius:var(--ibiz-border-radius-medium);--ibiz-control-appmenu-item-horizontal-padding:var(--ibiz-spacing-base);border:none;box-shadow:var(--ibiz-shadow-elevated)}.el-menu--popup-container .el-menu--popup .el-menu-item,.el-menu--popup-container .el-menu--popup .el-sub-menu__title{display:flex;align-items:center;justify-content:flex-start;width:100%;height:var(--ibiz-control-appmenu-item-height);font-size:var(--ibiz-control-appmenu-item-font-size);color:var(--ibiz-control-appmenu-item-color);white-space:nowrap}.el-menu--popup-container .el-menu--popup .el-menu-item:hover,.el-menu--popup-container .el-menu--popup .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-hover-color);background-color:var(--ibiz-control-appmenu-item-hover-bg-color)}.el-menu--popup-container .el-menu--popup .el-menu-item.is-active,.el-menu--popup-container .el-menu--popup .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-selected-color);background-color:var(--ibiz-control-appmenu-item-selected-bg-color)}.el-menu--popup-container .el-menu--popup .el-menu-item .el-icon,.el-menu--popup-container .el-menu--popup .el-sub-menu__title .el-icon{display:none}
1
+ @charset "UTF-8";.ibiz-control-appmenu{position:static;width:100%;height:100%;overflow-y:auto;--ibiz-control-appmenu-collapse-item-hover-color:var(--ibiz-color-primary);--ibiz-control-appmenu-collapse-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-icon-width:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-height:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-margin:0 10px 0 0;--ibiz-control-appmenu-item-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-item-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-height:52px;--ibiz-control-appmenu-item-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-horizontal-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-horizontal-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-horizontal-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-horizontal-height:40px;--ibiz-control-appmenu-item-horizontal-border-radius:var(--ibiz-border-radius-medium);--ibiz-control-appmenu-item-horizontal-padding:var(--ibiz-spacing-base)}.ibiz-control-appmenu .el-menu--vertical{width:100%}.ibiz-control-appmenu .el-menu--vertical .el-menu-item,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title{display:flex;align-items:center;justify-content:flex-start;width:100%;height:var(--ibiz-control-appmenu-item-height);font-size:var(--ibiz-control-appmenu-item-font-size);color:var(--ibiz-control-appmenu-item-color);white-space:nowrap}.ibiz-control-appmenu .el-menu--vertical .el-menu-item.is-active,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-selected-color);background-color:var(--ibiz-control-appmenu-item-selected-bg-color)}.ibiz-control-appmenu .el-menu--vertical .el-menu-item:hover,.ibiz-control-appmenu .el-menu--vertical .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-hover-color);background-color:var(--ibiz-control-appmenu-item-hover-bg-color)}.ibiz-control-appmenu .el-menu--horizontal{gap:16px;align-items:center;height:100%;background-color:transparent;border-bottom:none}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title{height:var(--ibiz-control-appmenu-item-horizontal-height);padding:var(--ibiz-control-appmenu-item-horizontal-padding);font-size:var(--ibiz-control-appmenu-item-horizontal-font-size);line-height:initial;color:var(--ibiz-control-appmenu-item-horizontal-color);white-space:nowrap;border:none;border-radius:var(--ibiz-control-appmenu-item-horizontal-border-radius)}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item.is-active,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-horizontal-color)!important;background-color:transparent}.ibiz-control-appmenu .el-menu--horizontal .el-menu-item:hover,.ibiz-control-appmenu .el-menu--horizontal .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-horizontal-hover-color);background-color:var(--ibiz-control-appmenu-item-horizontal-hover-bg-color)}.ibiz-control-appmenu .el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{color:var(--ibiz-control-appmenu-item-horizontal-selected-color);background-color:var(--ibiz-control-appmenu-item-horizontal-selected-bg-color)}.ibiz-control-appmenu .el-menu--horizontal::-webkit-scrollbar-thumb{background-color:var(--ibiz-color-white)}.ibiz-control-appmenu__icon{margin:var(--ibiz-control-appmenu-icon-margin)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu__item{display:flex;align-items:center;justify-content:center;padding:calc(var(--ibiz-control-appmenu-collapse-item-padding) * .875) calc(var(--ibiz-control-appmenu-collapse-item-padding) * 1.5)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu__item:hover{color:var(--ibiz-control-appmenu-collapse-item-hover-color)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-tooltip{width:100%}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu{display:block}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu>.el-sub-menu__title{display:flex;align-items:center;justify-content:center;display:flex;align-items:center;justify-content:center;padding:calc(var(--ibiz-control-appmenu-collapse-item-padding) * .875) calc(var(--ibiz-control-appmenu-collapse-item-padding) * 1.5);white-space:nowrap;cursor:pointer}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu>.el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-collapse-item-hover-color)}.ibiz-control-appmenu.is-collapse .ibiz-control-appmenu-submenu .ibiz-control-appmenu-submenu__item{padding:0}.ibiz-control-appmenu .el-menu{border-right:0}.ibiz-control-appmenu .el-sub-menu .el-sub-menu__icon-arrow{right:14px;width:12px}.ibiz-control-appmenu .el-sub-menu .el-menu-item{padding:calc(var(--ibiz-control-appmenu-item-padding) * .875) calc(var(--ibiz-control-appmenu-item-padding) * 2.5)}.ibiz-control-appmenu .ibiz-control-appmenu__counter{position:absolute;top:50%;right:5px;height:20px;padding:0 6px;line-height:initial;color:#fff;background-color:#f56c6c;border-radius:10px;transform:translateY(-50%)}.el-menu--popup-container{--ibiz-control-appmenu-collapse-item-hover-color:var(--ibiz-color-primary);--ibiz-control-appmenu-collapse-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-icon-width:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-height:var(--ibiz-width-icon-extra-large);--ibiz-control-appmenu-icon-margin:0 10px 0 0;--ibiz-control-appmenu-item-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-padding:var(--ibiz-spacing-base);--ibiz-control-appmenu-item-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-height:52px;--ibiz-control-appmenu-item-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-selected-color:var(--ibiz-color-text-1);--ibiz-control-appmenu-item-horizontal-selected-bg-color:var(--ibiz-color-primary-active);--ibiz-control-appmenu-item-horizontal-hover-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-hover-bg-color:var(--ibiz-color-primary-hover);--ibiz-control-appmenu-item-horizontal-color:var(--ibiz-color-text-0);--ibiz-control-appmenu-item-horizontal-font-size:var(--ibiz-font-size-header-5);--ibiz-control-appmenu-item-horizontal-height:40px;--ibiz-control-appmenu-item-horizontal-border-radius:var(--ibiz-border-radius-medium);--ibiz-control-appmenu-item-horizontal-padding:var(--ibiz-spacing-base);border:none;box-shadow:var(--ibiz-shadow-elevated)}.el-menu--popup-container .el-menu--popup .el-menu-item,.el-menu--popup-container .el-menu--popup .el-sub-menu__title{display:flex;align-items:center;justify-content:flex-start;width:100%;height:var(--ibiz-control-appmenu-item-height);font-size:var(--ibiz-control-appmenu-item-font-size);color:var(--ibiz-control-appmenu-item-color);white-space:nowrap}.el-menu--popup-container .el-menu--popup .el-menu-item.is-active,.el-menu--popup-container .el-menu--popup .el-sub-menu__title.is-active{color:var(--ibiz-control-appmenu-item-selected-color);background-color:var(--ibiz-control-appmenu-item-selected-bg-color)}.el-menu--popup-container .el-menu--popup .el-menu-item:hover,.el-menu--popup-container .el-menu--popup .el-sub-menu__title:hover{color:var(--ibiz-control-appmenu-item-hover-color);background-color:var(--ibiz-control-appmenu-item-hover-bg-color)}.el-menu--popup-container .el-menu--popup .el-menu-item .el-icon,.el-menu--popup-container .el-menu--popup .el-sub-menu__title .el-icon{display:none}
@@ -1,5 +1,5 @@
1
1
  import { IAppMenu, IAppMenuItem } from '@ibiz/model-core';
2
- import { PropType, Ref } from 'vue';
2
+ import { PropType, Ref, VNode } from 'vue';
3
3
  import './app-menu-icon-view.scss';
4
4
  import { AppMenuIconViewController } from './app-menu-icon-view.controller';
5
5
  export declare const AppMenuIconViewControl: import("vue").DefineComponent<{
@@ -23,8 +23,8 @@ export declare const AppMenuIconViewControl: import("vue").DefineComponent<{
23
23
  defaultActive: Ref<string>;
24
24
  defaultOpens: Ref<string[]>;
25
25
  onClick: (key: string, event: MouseEvent) => Promise<void>;
26
- renderGroup: (item: IAppMenuItem) => JSX.Element | null;
27
- renderItem: (item: IAppMenuItem) => JSX.Element | null;
26
+ renderGroup: (item: IAppMenuItem) => VNode | null;
27
+ renderItem: (item: IAppMenuItem) => VNode | null;
28
28
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
29
  modelData: {
30
30
  type: PropType<IAppMenu>;
@@ -20,8 +20,12 @@ export declare const IBizAppMenuIconViewControl: import("@ibiz-template/vue3-uti
20
20
  defaultActive: import("vue").Ref<string>;
21
21
  defaultOpens: import("vue").Ref<string[]>;
22
22
  onClick: (key: string, event: MouseEvent) => Promise<void>;
23
- renderGroup: (item: import("@ibiz/model-core").IAppMenuItem) => JSX.Element | null;
24
- renderItem: (item: import("@ibiz/model-core").IAppMenuItem) => JSX.Element | null;
23
+ renderGroup: (item: import("@ibiz/model-core").IAppMenuItem) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
24
+ [key: string]: any;
25
+ }> | null;
26
+ renderItem: (item: import("@ibiz/model-core").IAppMenuItem) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }> | null;
25
29
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
26
30
  modelData: {
27
31
  type: import("vue").PropType<import("@ibiz/model-core").IAppMenu>;
@@ -0,0 +1,93 @@
1
+ import { MDControlController, ICalendarEvent, ICalendarController, ICalendarState, MDCtrlLoadParams, ICalendarItemData } from '@ibiz-template/runtime';
2
+ import { ISysCalendar } from '@ibiz/model-core';
3
+ import { CalendarService } from './calendar.service';
4
+ /**
5
+ * 日历部件控制器
6
+ *
7
+ * @author zk
8
+ * @date 2023-08-09 11:08:46
9
+ * @export
10
+ * @class CalendarController
11
+ * @extends {MDControlController<ISysCalendar, ICalendarState, ICalendarEvent>}
12
+ * @implements {ICalendarController}
13
+ */
14
+ export declare class CalendarController extends MDControlController<ISysCalendar, ICalendarState, ICalendarEvent> implements ICalendarController {
15
+ /**
16
+ * 多数据部件服务
17
+ *
18
+ * @author zk
19
+ * @date 2023-08-08 01:08:56
20
+ * @type {CalendarService}
21
+ * @memberof CalendarController
22
+ */
23
+ service: CalendarService;
24
+ /**
25
+ * 初始化状态
26
+ *
27
+ * @author zk
28
+ * @date 2023-08-09 11:08:05
29
+ * @protected
30
+ * @memberof CalendarController
31
+ */
32
+ protected initState(): void;
33
+ /**
34
+ * 生命周期-创建完成
35
+ *
36
+ * @author zk
37
+ * @date 2023-08-09 11:08:13
38
+ * @protected
39
+ * @return {*} {Promise<void>}
40
+ * @memberof CalendarController
41
+ */
42
+ protected onCreated(): Promise<void>;
43
+ /**
44
+ * 日历加载
45
+ *
46
+ * @author zk
47
+ * @date 2023-08-08 01:08:24
48
+ * @param {MDCtrlLoadParams} [args={}]
49
+ * @return {*} {Promise<IData[][]>}
50
+ * @memberof CalendarController
51
+ */
52
+ load(args?: MDCtrlLoadParams): Promise<ICalendarItemData[]>;
53
+ /**
54
+ * 获取当前选中的日期
55
+ *
56
+ * @author zk
57
+ * @date 2023-08-08 11:08:44
58
+ * @protected
59
+ * @param {IParams} param
60
+ * @return {*} {IData}
61
+ * @memberof CalendarController
62
+ */
63
+ protected getCurSelectDate(param: IParams): IData;
64
+ /**
65
+ * 获取请求参数
66
+ *
67
+ * @author zk
68
+ * @date 2023-08-09 11:08:35
69
+ * @param {IParams} [extraParams={}]
70
+ * @return {*} {Promise<IParams>}
71
+ * @memberof CalendarController
72
+ */
73
+ getFetchParams(extraParams?: IParams): Promise<IParams>;
74
+ /**
75
+ * 行单击事件
76
+ *
77
+ * @author zk
78
+ * @date 2023-08-08 05:08:15
79
+ * @param {ICalendarItemData} data
80
+ * @return {*} {Promise<void>}
81
+ * @memberof CalendarController
82
+ */
83
+ onRowClick(data: ICalendarItemData): Promise<void>;
84
+ /**
85
+ * 设置选中日期
86
+ *
87
+ * @author zk
88
+ * @date 2023-08-08 11:08:08
89
+ * @param {Date} date
90
+ * @memberof CalendarController
91
+ */
92
+ setSelectDate(date: Date): void;
93
+ }
@@ -0,0 +1,162 @@
1
+ import { MDControlController } from '@ibiz-template/runtime';
2
+ import dayjs from 'dayjs';
3
+ import { CalendarService } from './calendar.service.mjs';
4
+
5
+ class CalendarController extends MDControlController {
6
+ /**
7
+ * 初始化状态
8
+ *
9
+ * @author zk
10
+ * @date 2023-08-09 11:08:05
11
+ * @protected
12
+ * @memberof CalendarController
13
+ */
14
+ initState() {
15
+ super.initState();
16
+ this.state.selectedDate = /* @__PURE__ */ new Date();
17
+ this.state.size = 1e3;
18
+ }
19
+ /**
20
+ * 生命周期-创建完成
21
+ *
22
+ * @author zk
23
+ * @date 2023-08-09 11:08:13
24
+ * @protected
25
+ * @return {*} {Promise<void>}
26
+ * @memberof CalendarController
27
+ */
28
+ async onCreated() {
29
+ await super.onCreated();
30
+ this.service = new CalendarService(this.model);
31
+ await this.service.init(this.context);
32
+ }
33
+ /**
34
+ * 日历加载
35
+ *
36
+ * @author zk
37
+ * @date 2023-08-08 01:08:24
38
+ * @param {MDCtrlLoadParams} [args={}]
39
+ * @return {*} {Promise<IData[][]>}
40
+ * @memberof CalendarController
41
+ */
42
+ async load(args = {}) {
43
+ const isInitialLoad = args.isInitialLoad === true;
44
+ const { context } = this.handlerAbilityParams(args);
45
+ const params = await this.getFetchParams(args == null ? void 0 : args.params);
46
+ await this.startLoading();
47
+ let items;
48
+ try {
49
+ items = await this.service.search(context, params);
50
+ } finally {
51
+ await this.endLoading();
52
+ }
53
+ await this.afterLoad(args, items);
54
+ this.state.isLoaded = true;
55
+ this.state.items = items;
56
+ await this.evt.emit("onLoadSuccess", {
57
+ isInitialLoad
58
+ });
59
+ return items;
60
+ }
61
+ /**
62
+ * 获取当前选中的日期
63
+ *
64
+ * @author zk
65
+ * @date 2023-08-08 11:08:44
66
+ * @protected
67
+ * @param {IParams} param
68
+ * @return {*} {IData}
69
+ * @memberof CalendarController
70
+ */
71
+ getCurSelectDate(param) {
72
+ const { selectedDate } = this.state;
73
+ const { start, end } = param;
74
+ if (!start || !end) {
75
+ const firstDayOfMonth = new Date(
76
+ selectedDate.getFullYear(),
77
+ selectedDate.getMonth(),
78
+ 1
79
+ );
80
+ const lastDayOfMonth = new Date(
81
+ selectedDate.getFullYear(),
82
+ selectedDate.getMonth() + 1,
83
+ 1
84
+ );
85
+ return {
86
+ start: dayjs(firstDayOfMonth).format("YYYY-MM-DD HH:mm:ss"),
87
+ end: dayjs(lastDayOfMonth).format("YYYY-MM-DD HH:mm:ss")
88
+ };
89
+ }
90
+ return { start, end };
91
+ }
92
+ /**
93
+ * 获取请求参数
94
+ *
95
+ * @author zk
96
+ * @date 2023-08-09 11:08:35
97
+ * @param {IParams} [extraParams={}]
98
+ * @return {*} {Promise<IParams>}
99
+ * @memberof CalendarController
100
+ */
101
+ async getFetchParams(extraParams = {}) {
102
+ const { curPage, size, sortQuery, noSort } = this.state;
103
+ const resultParams = {
104
+ ...this.params
105
+ };
106
+ if (!noSort && sortQuery) {
107
+ resultParams.sort = sortQuery;
108
+ }
109
+ await this._evt.emit("onBeforeLoad", void 0);
110
+ Object.assign(resultParams, {
111
+ ...this.state.searchParams
112
+ });
113
+ if (size) {
114
+ resultParams.page = curPage - 1;
115
+ resultParams.size = size;
116
+ }
117
+ if (extraParams) {
118
+ Object.assign(resultParams, extraParams);
119
+ }
120
+ const timeParam = this.getCurSelectDate(resultParams);
121
+ Object.assign(resultParams, timeParam);
122
+ return resultParams;
123
+ }
124
+ /**
125
+ * 行单击事件
126
+ *
127
+ * @author zk
128
+ * @date 2023-08-08 05:08:15
129
+ * @param {ICalendarItemData} data
130
+ * @return {*} {Promise<void>}
131
+ * @memberof CalendarController
132
+ */
133
+ async onRowClick(data) {
134
+ const { selectedData } = this.state;
135
+ const filterArr = selectedData.filter(
136
+ (item) => item.deData.srfkey !== data.deData.srfkey
137
+ );
138
+ if (filterArr.length === selectedData.length) {
139
+ this.setSelection(
140
+ this.state.singleSelect ? [data] : selectedData.concat([data])
141
+ );
142
+ } else {
143
+ this.setSelection(filterArr);
144
+ }
145
+ if (this.state.mdctrlActiveMode === 1) {
146
+ await this.setActive(data);
147
+ }
148
+ }
149
+ /**
150
+ * 设置选中日期
151
+ *
152
+ * @author zk
153
+ * @date 2023-08-08 11:08:08
154
+ * @param {Date} date
155
+ * @memberof CalendarController
156
+ */
157
+ setSelectDate(date) {
158
+ this.state.selectedDate = date;
159
+ }
160
+ }
161
+
162
+ export { CalendarController };
@@ -0,0 +1 @@
1
+ .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);width:100%;height:100%}.ibiz-control-calendar__calendar-item{display:flex;gap:var(--ibiz-spacing-base-tight);align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:10px;height:10px;border-radius:50%}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding:var(--ibiz-control-calendar-item-padding);margin-top:0}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;gap:var(--ibiz-control-calendar-item-padding);align-items:center}.ibiz-control-calendar-footer{display:flex;gap:var(--ibiz-spacing-base-loose);justify-content:flex-end}
@@ -0,0 +1,49 @@
1
+ import { PropType } from 'vue';
2
+ import { ISysCalendar } from '@ibiz/model-core';
3
+ import './calendar.scss';
4
+ import { ICalendarItemData } from '@ibiz-template/runtime';
5
+ import { CalendarController } from './calendar.controller';
6
+ export declare const CalendarControl: import("vue").DefineComponent<{
7
+ modelData: {
8
+ type: PropType<ISysCalendar>;
9
+ required: true;
10
+ };
11
+ context: {
12
+ type: PropType<IContext>;
13
+ required: true;
14
+ };
15
+ params: {
16
+ type: PropType<IParams>;
17
+ default: () => {};
18
+ };
19
+ mdctrlActiveMode: {
20
+ type: NumberConstructor;
21
+ default: undefined;
22
+ };
23
+ }, {
24
+ c: CalendarController;
25
+ ns: import("@ibiz-template/core").Namespace;
26
+ calendarRef: import("vue").Ref<IData | undefined>;
27
+ selectDate: (tag: string) => void;
28
+ calcItemStyle: (data: ICalendarItemData) => IData;
29
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
+ modelData: {
31
+ type: PropType<ISysCalendar>;
32
+ required: true;
33
+ };
34
+ context: {
35
+ type: PropType<IContext>;
36
+ required: true;
37
+ };
38
+ params: {
39
+ type: PropType<IParams>;
40
+ default: () => {};
41
+ };
42
+ mdctrlActiveMode: {
43
+ type: NumberConstructor;
44
+ default: undefined;
45
+ };
46
+ }>>, {
47
+ params: IParams;
48
+ mdctrlActiveMode: number;
49
+ }, {}>;
@@ -0,0 +1,211 @@
1
+ import { defineComponent, ref, watch, createVNode, resolveComponent, createTextVNode } from 'vue';
2
+ import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
+ import './calendar.css';
4
+ import { isNil } from 'ramda';
5
+ import dayjs from 'dayjs';
6
+ import { CalendarController } from './calendar.controller.mjs';
7
+
8
+ const CalendarControl = /* @__PURE__ */ defineComponent({
9
+ name: "IBizCalendarControl",
10
+ props: {
11
+ modelData: {
12
+ type: Object,
13
+ required: true
14
+ },
15
+ context: {
16
+ type: Object,
17
+ required: true
18
+ },
19
+ params: {
20
+ type: Object,
21
+ default: () => ({})
22
+ },
23
+ mdctrlActiveMode: {
24
+ type: Number,
25
+ default: void 0
26
+ }
27
+ },
28
+ setup() {
29
+ const c = useControlController((...args) => new CalendarController(...args));
30
+ const ns = useNamespace(`control-${c.model.controlType.toLowerCase()}`);
31
+ const calendarRef = ref();
32
+ const selectDate = (tag) => {
33
+ if (!calendarRef.value)
34
+ return;
35
+ calendarRef.value.selectDate(tag);
36
+ };
37
+ watch(() => c.state.selectedDate, (oldVal, newVal) => {
38
+ const oldDateString = dayjs(oldVal).format("YYYY-MM");
39
+ const newDateString = dayjs(newVal).format("YYYY-MM");
40
+ if (oldDateString === newDateString) {
41
+ return;
42
+ }
43
+ c.load();
44
+ });
45
+ const calcItemStyle = (data) => {
46
+ return {
47
+ color: data.color,
48
+ backgroundColor: data.bkColor
49
+ };
50
+ };
51
+ return {
52
+ c,
53
+ ns,
54
+ calendarRef,
55
+ selectDate,
56
+ calcItemStyle
57
+ };
58
+ },
59
+ render() {
60
+ const renderPanelItem = (item, modelData) => {
61
+ const {
62
+ context,
63
+ params
64
+ } = this.c;
65
+ const findIndex = this.c.state.selectedData.findIndex((data) => {
66
+ return data.deData.srfkey === item.deData.srfkey;
67
+ });
68
+ const itemClass = [this.ns.b("item"), this.ns.is("active", findIndex !== -1)];
69
+ const style = this.calcItemStyle(item);
70
+ return createVNode(resolveComponent("iBizControlShell"), {
71
+ "class": itemClass,
72
+ "data": item.deData,
73
+ "modelData": modelData,
74
+ "context": context,
75
+ "params": params,
76
+ "style": style,
77
+ "onClick": (e) => {
78
+ e.stopPropagation();
79
+ return this.c.onRowClick(item);
80
+ },
81
+ "onDblclick": (e) => {
82
+ e.stopPropagation();
83
+ return this.c.onDbRowClick(item);
84
+ }
85
+ }, null);
86
+ };
87
+ const renderDefaultItem = (item) => {
88
+ const findIndex = this.c.state.selectedData.findIndex((data) => {
89
+ return data.deData.srfkey === item.deData.srfkey;
90
+ });
91
+ const itemClass = [this.ns.b("item"), this.ns.is("active", findIndex !== -1)];
92
+ const style = this.calcItemStyle(item);
93
+ return createVNode("div", {
94
+ "class": itemClass,
95
+ "key": item.deData.srfkey,
96
+ "style": style,
97
+ "onClick": () => this.c.onRowClick(item),
98
+ "onDblclick": () => this.c.onDbRowClick(item)
99
+ }, [`${isNil(item.text) ? "" : item.text}`]);
100
+ };
101
+ const renderCalendarList = (items) => {
102
+ return items.map((item) => {
103
+ var _a;
104
+ const model = (_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.find((calendarItems) => {
105
+ return item.itemType === calendarItems.itemType;
106
+ });
107
+ const panel = model.layoutPanel;
108
+ return panel ? renderPanelItem(item, panel) : renderDefaultItem(item);
109
+ });
110
+ };
111
+ const renderCalendarItems = (date) => {
112
+ const dateString = dayjs(date).format("YYYY-MM-DD");
113
+ const items = this.c.state.items.filter((item) => {
114
+ const begin = new Date(item.beginTime);
115
+ return dateString === dayjs(begin).format("YYYY-MM-DD");
116
+ });
117
+ return renderCalendarList(items);
118
+ };
119
+ return createVNode(resolveComponent("iBizControlBase"), {
120
+ "controller": this.c
121
+ }, {
122
+ default: () => {
123
+ var _a;
124
+ return [createVNode("div", {
125
+ "class": this.ns.b("content")
126
+ }, [createVNode(resolveComponent("el-calendar"), {
127
+ "modelValue": this.c.state.selectedDate,
128
+ "onUpdate:modelValue": ($event) => this.c.state.selectedDate = $event,
129
+ "ref": "calendarRef"
130
+ }, {
131
+ header: ({
132
+ date
133
+ }) => {
134
+ return [createVNode("span", null, [date]), createVNode("div", {
135
+ "class": this.ns.b("content-header")
136
+ }, [createVNode(resolveComponent("el-date-picker"), {
137
+ "modelValue": this.c.state.selectedDate,
138
+ "onUpdate:modelValue": ($event) => this.c.state.selectedDate = $event,
139
+ "type": "month"
140
+ }, null), createVNode(resolveComponent("el-button-group"), null, {
141
+ default: () => [createVNode(resolveComponent("el-button"), {
142
+ "size": "small",
143
+ "onClick": () => {
144
+ this.selectDate("prev-year");
145
+ }
146
+ }, {
147
+ default: () => [createTextVNode("\u53BB\u5E74")]
148
+ }), createVNode(resolveComponent("el-button"), {
149
+ "size": "small",
150
+ "onClick": () => {
151
+ this.selectDate("prev-month");
152
+ }
153
+ }, {
154
+ default: () => [createTextVNode("\u4E0A\u4E2A\u6708")]
155
+ }), createVNode(resolveComponent("el-button"), {
156
+ "size": "small",
157
+ "onClick": () => {
158
+ this.selectDate("today");
159
+ }
160
+ }, {
161
+ default: () => [createTextVNode("\u4ECA\u5929")]
162
+ }), createVNode(resolveComponent("el-button"), {
163
+ "size": "small",
164
+ "onClick": () => {
165
+ this.selectDate("next-month");
166
+ }
167
+ }, {
168
+ default: () => [createTextVNode("\u4E0B\u4E2A\u6708")]
169
+ }), createVNode(resolveComponent("el-button"), {
170
+ "size": "small",
171
+ "onClick": () => {
172
+ this.selectDate("next-year");
173
+ }
174
+ }, {
175
+ default: () => [createTextVNode("\u660E\u5E74")]
176
+ })]
177
+ })])];
178
+ },
179
+ "date-cell": ({
180
+ data
181
+ }) => {
182
+ const {
183
+ date
184
+ } = data;
185
+ return createVNode("div", {
186
+ "class": this.ns.b("day")
187
+ }, [createVNode("p", {
188
+ "class": this.ns.b("date-text")
189
+ }, [date.getDate()]), createVNode("div", {
190
+ "class": this.ns.b("items")
191
+ }, [renderCalendarItems(date)])]);
192
+ }
193
+ }), createVNode("div", {
194
+ "class": this.ns.b("footer")
195
+ }, [(_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.map((calendarItem) => {
196
+ return createVNode("div", {
197
+ "class": this.ns.e("calendar-item")
198
+ }, [createVNode("div", {
199
+ "class": this.ns.e("icon"),
200
+ "style": {
201
+ background: calendarItem.bkcolor,
202
+ color: calendarItem.color
203
+ }
204
+ }, null), calendarItem.name]);
205
+ })])])];
206
+ }
207
+ });
208
+ }
209
+ });
210
+
211
+ export { CalendarControl };