@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.
- package/dist/{chart-efad8ee0.js → chart-0d4e59ff.js} +2 -2
- package/dist/chart-0d4e59ff.js.map +1 -0
- package/dist/{ibiz-markdown-editor-3745dfd5.js → ibiz-markdown-editor-a426becc.js} +2 -2
- package/dist/ibiz-markdown-editor-a426becc.js.map +1 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +3 -3
- package/dist/index.system.min.js.map +1 -1
- package/dist/wang-editor-675011c6.js.map +1 -1
- package/dist/xlsx-util-fac1c045.js.map +1 -1
- package/es/common/icon/icon.d.ts +1 -3
- package/es/common/index.d.ts +0 -2
- package/es/common/index.mjs +1 -5
- package/es/common/router-view/router-view.d.ts +1 -3
- package/es/control/app-menu/app-menu.css +1 -1
- package/es/control/app-menu-icon-view/app-menu-icon-view.d.ts +3 -3
- package/es/control/app-menu-icon-view/index.d.ts +6 -2
- package/es/control/calendar/calendar.controller.d.ts +93 -0
- package/es/control/calendar/calendar.controller.mjs +162 -0
- package/es/control/calendar/calendar.css +1 -0
- package/es/control/calendar/calendar.d.ts +49 -0
- package/es/control/calendar/calendar.mjs +211 -0
- package/es/control/calendar/calendar.provider.d.ts +13 -0
- package/es/control/calendar/calendar.provider.mjs +13 -0
- package/es/control/calendar/calendar.service.d.ts +49 -0
- package/es/control/calendar/calendar.service.mjs +88 -0
- package/es/control/calendar/index.d.ts +47 -0
- package/es/control/calendar/index.mjs +15 -0
- package/es/control/chart/generator/chart-options-generator.mjs +1 -1
- package/es/control/chart/generator/funnel-series-generator.d.ts +1 -1
- package/es/control/chart/generator/pie-series-generator.d.ts +1 -1
- package/es/control/dashboard/dashboard.css +1 -0
- package/es/control/dashboard/dashboard.d.ts +1 -0
- package/es/control/dashboard/dashboard.mjs +1 -0
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +1 -0
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +1 -0
- package/es/control/dashboard/portlet/portlet-part/portlet-part.controller.mjs +1 -1
- package/es/control/data-view/data-view.controller.mjs +0 -1
- package/es/control/data-view/data-view.css +1 -1
- package/es/control/drbar/drbar.controller.d.ts +2 -5
- package/es/control/drbar/drbar.d.ts +2 -2
- package/es/control/drbar/index.d.ts +3 -1
- package/es/control/drtab/drtab.controller.d.ts +2 -5
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.d.ts +34 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.mjs +89 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.d.ts +49 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.mjs +78 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.d.ts +11 -0
- package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.mjs +13 -0
- package/es/control/exp-bar/calendar-exp-bar/index.d.ts +49 -0
- package/es/control/exp-bar/calendar-exp-bar/index.mjs +18 -0
- package/es/control/exp-bar/exp-bar.controller.d.ts +5 -5
- package/es/control/exp-bar/exp-bar.controller.mjs +17 -11
- package/es/control/exp-bar/index.d.ts +1 -0
- package/es/control/exp-bar/index.mjs +3 -0
- package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.d.ts +20 -3
- package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.mjs +49 -25
- package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.mjs +2 -1
- package/es/control/form/form/form.d.ts +1 -5
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +4 -3
- package/es/control/form/form-detail/form-page/form-page.mjs +2 -2
- package/es/control/grid/grid/grid-control.util.d.ts +2 -1
- package/es/control/grid/grid/grid.controller.d.ts +73 -5
- package/es/control/grid/grid/grid.controller.mjs +201 -6
- package/es/control/grid/grid/grid.css +1 -1
- package/es/control/grid/grid/grid.d.ts +6 -1
- package/es/control/grid/grid/grid.mjs +62 -10
- package/es/control/grid/grid/index.d.ts +5 -1
- package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +11 -2
- package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.mjs +53 -0
- package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
- package/es/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
- package/es/control/index.d.ts +1 -0
- package/es/control/index.mjs +6 -0
- package/es/control/toolbar/index.d.ts +6 -2
- package/es/control/toolbar/toolbar.d.ts +3 -3
- package/es/control/tree/index.d.ts +7 -1
- package/es/control/tree/tree.controller.d.ts +23 -11
- package/es/control/tree/tree.controller.mjs +60 -44
- package/es/control/tree/tree.d.ts +7 -1
- package/es/control/tree/tree.mjs +27 -7
- package/es/control/tree/tree.service.d.ts +23 -4
- package/es/control/tree/tree.service.mjs +123 -50
- package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.d.ts +1 -1
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
- package/es/editor/code/code-editor.controller.d.ts +2 -2
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
- package/es/editor/html/wang-editor/wang-editor.d.ts +1 -1
- package/es/editor/upload/use/use-ibiz-upload.d.ts +2 -2
- package/es/editor/upload/use/use-iview-upload.d.ts +2 -2
- package/es/index.mjs +9 -2
- package/es/panel-component/nav-pos/nav-pos.mjs +6 -4
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -2
- package/es/panel-component/nav-pos-index/nav-pos-index.mjs +3 -2
- package/es/panel-component/nav-pos-index/nav-pos-index.state.mjs +1 -1
- package/es/panel-component/panel-app-title/panel-app-title.css +1 -1
- package/es/panel-component/panel-app-title/panel-app-title.mjs +1 -1
- package/es/panel-component/panel-field/panel-field.controller.d.ts +1 -1
- package/es/view/portal-view/portal-view.mjs +1 -18
- package/es/view-engine/calendar-exp-view.engine.d.ts +25 -0
- package/es/view-engine/calendar-exp-view.engine.mjs +33 -0
- package/es/view-engine/calendar-view.engine.d.ts +5 -0
- package/es/view-engine/calendar-view.engine.mjs +6 -0
- package/es/view-engine/grid-view.engine.mjs +1 -1
- package/es/view-engine/index.mjs +10 -0
- package/es/view-engine/pickup-view2.engine.mjs +5 -1
- package/es/view-engine/wf-dyna-action-view.engine.mjs +1 -1
- package/es/view-engine/wf-dyna-start-view.engine.mjs +1 -1
- package/lib/common/index.cjs +0 -13
- package/lib/control/app-menu/app-menu.css +1 -1
- package/lib/control/calendar/calendar.cjs +213 -0
- package/lib/control/calendar/calendar.controller.cjs +164 -0
- package/lib/control/calendar/calendar.css +1 -0
- package/lib/control/calendar/calendar.provider.cjs +15 -0
- package/lib/control/calendar/calendar.service.cjs +90 -0
- package/lib/control/calendar/index.cjs +22 -0
- package/lib/control/chart/generator/chart-options-generator.cjs +1 -1
- package/lib/control/dashboard/dashboard.cjs +1 -0
- package/lib/control/dashboard/dashboard.css +1 -0
- package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +1 -0
- package/lib/control/dashboard/portlet/portlet-part/portlet-part.controller.cjs +1 -1
- package/lib/control/data-view/data-view.controller.cjs +0 -1
- package/lib/control/data-view/data-view.css +1 -1
- package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.cjs +80 -0
- package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.cjs +91 -0
- package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
- package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.cjs +15 -0
- package/lib/control/exp-bar/calendar-exp-bar/index.cjs +25 -0
- package/lib/control/exp-bar/exp-bar.controller.cjs +17 -11
- package/lib/control/exp-bar/index.cjs +6 -0
- package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.cjs +2 -1
- package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.cjs +49 -25
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +4 -3
- package/lib/control/form/form-detail/form-page/form-page.cjs +2 -2
- package/lib/control/grid/grid/grid.cjs +62 -10
- package/lib/control/grid/grid/grid.controller.cjs +200 -5
- package/lib/control/grid/grid/grid.css +1 -1
- package/lib/control/grid/grid-column/grid-field-column/grid-field-column.controller.cjs +53 -0
- package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
- package/lib/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
- package/lib/control/index.cjs +28 -16
- package/lib/control/tree/tree.cjs +27 -7
- package/lib/control/tree/tree.controller.cjs +59 -43
- package/lib/control/tree/tree.service.cjs +122 -49
- package/lib/index.cjs +79 -76
- package/lib/panel-component/nav-pos/nav-pos.cjs +6 -4
- package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +3 -2
- package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -2
- package/lib/panel-component/nav-pos-index/nav-pos-index.state.cjs +1 -1
- package/lib/panel-component/panel-app-title/panel-app-title.cjs +1 -1
- package/lib/panel-component/panel-app-title/panel-app-title.css +1 -1
- package/lib/view/portal-view/portal-view.cjs +1 -18
- package/lib/view-engine/calendar-exp-view.engine.cjs +35 -0
- package/lib/view-engine/calendar-view.engine.cjs +8 -0
- package/lib/view-engine/grid-view.engine.cjs +1 -1
- package/lib/view-engine/index.cjs +10 -0
- package/lib/view-engine/pickup-view2.engine.cjs +5 -1
- package/lib/view-engine/wf-dyna-action-view.engine.cjs +1 -1
- package/lib/view-engine/wf-dyna-start-view.engine.cjs +1 -1
- package/package.json +18 -18
- package/dist/chart-efad8ee0.js.map +0 -1
- package/dist/ibiz-markdown-editor-3745dfd5.js.map +0 -1
- package/es/common/keep-alive/keep-alive.d.ts +0 -45
- package/es/common/keep-alive/keep-alive.mjs +0 -293
- package/es/common/keep-alive/scheduler.d.ts +0 -41
- package/es/common/keep-alive/scheduler.mjs +0 -168
- package/lib/common/keep-alive/keep-alive.cjs +0 -304
- package/lib/common/keep-alive/scheduler.cjs +0 -178
package/es/common/icon/icon.d.ts
CHANGED
|
@@ -12,9 +12,7 @@ export declare const IBizIcon: import("vue").DefineComponent<{
|
|
|
12
12
|
type: StringConstructor;
|
|
13
13
|
default: string;
|
|
14
14
|
};
|
|
15
|
-
}, () => VNode
|
|
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
|
};
|
package/es/common/index.d.ts
CHANGED
|
@@ -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';
|
package/es/common/index.mjs
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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) =>
|
|
27
|
-
renderItem: (item: IAppMenuItem) =>
|
|
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) =>
|
|
24
|
-
|
|
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 };
|