@ibiz-template/vue3-components 0.7.41-alpha.14 → 0.7.41-alpha.16
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/index-U4v1OOOD.js +1 -0
- package/dist/index-lFGFvnYE.js +1 -0
- package/dist/index-m8q8r8br.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/map-chart-3dojS1dZ.js +1 -0
- package/dist/{wang-editor-z0RY8bO1.js → wang-editor-_06OYPpu.js} +1 -1
- package/dist/{xlsx-util-8Du1A340.js → xlsx-util-FNiwKrqm.js} +1 -1
- package/es/common/carousel/carousel.css +1 -1
- package/es/common/index.mjs +2 -0
- package/es/common/kanben-setting/kanben-setting.css +1 -0
- package/es/common/kanben-setting/kanben-setting.d.ts +42 -0
- package/es/common/kanben-setting/kanben-setting.mjs +65 -0
- package/es/common/map-chart/map-chart.mjs +6 -14
- package/es/control/calendar/calendar-util.d.ts +12 -0
- package/es/control/calendar/calendar-util.mjs +30 -1
- package/es/control/calendar/calendar.css +1 -1
- package/es/control/calendar/calendar.d.ts +2 -0
- package/es/control/calendar/calendar.mjs +106 -25
- package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
- package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +2 -0
- package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +66 -16
- package/es/control/calendar/components/calendar-daily/index.d.ts +2 -0
- package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +3 -1
- package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +99 -44
- package/es/control/calendar/components/calendar-week/calendar-week.css +1 -1
- package/es/control/calendar/components/calendar-week/calendar-week.d.ts +6 -0
- package/es/control/calendar/components/calendar-week/calendar-week.mjs +74 -38
- package/es/control/calendar/components/calendar-week/index.d.ts +6 -0
- package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +12 -1
- package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +313 -155
- package/es/control/calendar/components/constant/event.d.ts +1 -0
- package/es/control/calendar/components/constant/event.mjs +2 -1
- package/es/control/calendar/components/constant/index.mjs +1 -1
- package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
- package/es/control/calendar/components/custom-calendar/custom-calendar.d.ts +2 -0
- package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +8 -10
- package/es/control/calendar/components/custom-calendar/index.d.ts +2 -0
- package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +4 -0
- package/es/control/calendar/components/interface/calendar-daily.d.ts +1 -0
- package/es/control/calendar/components/interface/calendar-daily.mjs +6 -1
- package/es/control/calendar/components/interface/calendar-week.d.ts +1 -0
- package/es/control/calendar/components/interface/calendar-week.mjs +2 -1
- package/es/control/calendar/components/interface/common.d.ts +20 -18
- package/es/control/calendar/components/interface/custom-calendar.d.ts +1 -0
- package/es/control/calendar/components/interface/custom-calendar.mjs +3 -2
- package/es/control/calendar/components/util/index.mjs +1 -1
- package/es/control/calendar/components/util/util.d.ts +20 -1
- package/es/control/calendar/components/util/util.mjs +10 -2
- package/es/control/calendar/index.d.ts +2 -0
- package/es/control/data-view/data-view.css +1 -1
- package/es/control/data-view/data-view.mjs +42 -13
- package/es/control/drbar/drbar.controller.mjs +2 -0
- package/es/control/drbar/drbar.mjs +6 -6
- package/es/control/drtab/drtab.controller.mjs +2 -0
- package/es/control/drtab/drtab.mjs +6 -6
- package/es/control/drtab/flow-drtab.css +1 -1
- package/es/control/drtab/flow-drtab.mjs +3 -1
- package/es/control/form/edit-form/edit-form.mjs +11 -0
- package/es/control/form/form-detail/form-item/form-item.mjs +11 -7
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +4 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +1 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +6 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +4 -0
- package/es/control/grid/virtualized-table/virtualized-table.css +1 -1
- package/es/control/grid/virtualized-table/virtualized-table.mjs +4 -3
- package/es/control/grid/virtualized-table/virtualized-table.util.mjs +4 -4
- package/es/control/kanban/kanban.css +1 -1
- package/es/control/kanban/kanban.mjs +22 -18
- package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
- package/es/control/kanban/{lane-kanban/lane-kanban.d.ts → swimlane-kanban/swimlane-kanban.d.ts} +3 -8
- package/es/control/kanban/{lane-kanban/lane-kanban.mjs → swimlane-kanban/swimlane-kanban.mjs} +42 -38
- package/es/control/list/list.css +1 -1
- package/es/control/list/list.mjs +14 -1
- package/es/control/map/map.mjs +1 -1
- package/es/control/medit-view-panel/index.d.ts +2 -0
- package/es/control/medit-view-panel/medit-view-panel.d.ts +2 -0
- package/es/control/medit-view-panel/medit-view-panel.mjs +19 -6
- package/es/control/search-bar/search-bar.mjs +1 -1
- package/es/editor/span/span/span.mjs +2 -1
- package/es/locale/en/index.d.ts +5 -0
- package/es/locale/en/index.mjs +6 -1
- package/es/locale/zh-CN/index.d.ts +5 -0
- package/es/locale/zh-CN/index.mjs +6 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +20 -5
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +1950 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.d.ts +53 -6
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +2031 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +278 -0
- package/es/view-engine/index.mjs +4 -0
- package/lib/common/carousel/carousel.css +1 -1
- package/lib/common/index.cjs +2 -0
- package/lib/common/kanben-setting/kanben-setting.cjs +67 -0
- package/lib/common/kanben-setting/kanben-setting.css +1 -0
- package/lib/common/map-chart/map-chart.cjs +5 -13
- package/lib/control/calendar/calendar-util.cjs +30 -0
- package/lib/control/calendar/calendar.cjs +104 -23
- package/lib/control/calendar/calendar.css +1 -1
- package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +64 -14
- package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
- package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +98 -43
- package/lib/control/calendar/components/calendar-week/calendar-week.cjs +73 -37
- package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
- package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +311 -153
- package/lib/control/calendar/components/constant/event.cjs +2 -0
- package/lib/control/calendar/components/constant/index.cjs +1 -0
- package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +8 -10
- package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
- package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +4 -0
- package/lib/control/calendar/components/interface/calendar-daily.cjs +6 -1
- package/lib/control/calendar/components/interface/calendar-week.cjs +2 -1
- package/lib/control/calendar/components/interface/custom-calendar.cjs +2 -1
- package/lib/control/calendar/components/util/index.cjs +2 -0
- package/lib/control/calendar/components/util/util.cjs +11 -1
- package/lib/control/data-view/data-view.cjs +42 -13
- package/lib/control/data-view/data-view.css +1 -1
- package/lib/control/drbar/drbar.cjs +6 -6
- package/lib/control/drbar/drbar.controller.cjs +2 -0
- package/lib/control/drtab/drtab.cjs +6 -6
- package/lib/control/drtab/drtab.controller.cjs +2 -0
- package/lib/control/drtab/flow-drtab.cjs +3 -1
- package/lib/control/drtab/flow-drtab.css +1 -1
- package/lib/control/form/edit-form/edit-form.cjs +11 -0
- package/lib/control/form/form-detail/form-item/form-item.cjs +11 -7
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +4 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +1 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +4 -0
- package/lib/control/grid/virtualized-table/virtualized-table.cjs +3 -2
- package/lib/control/grid/virtualized-table/virtualized-table.css +1 -1
- package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +4 -4
- package/lib/control/kanban/kanban.cjs +21 -17
- package/lib/control/kanban/kanban.css +1 -1
- package/lib/control/kanban/{lane-kanban/lane-kanban.cjs → swimlane-kanban/swimlane-kanban.cjs} +42 -38
- package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
- package/lib/control/list/list.cjs +14 -1
- package/lib/control/list/list.css +1 -1
- package/lib/control/map/map.cjs +1 -1
- package/lib/control/medit-view-panel/medit-view-panel.cjs +19 -6
- package/lib/control/search-bar/search-bar.cjs +1 -1
- package/lib/editor/span/span/span.cjs +2 -1
- package/lib/locale/en/index.cjs +6 -1
- package/lib/locale/zh-CN/index.cjs +6 -1
- package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +20 -5
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +280 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
- package/lib/view-engine/index.cjs +4 -0
- package/package.json +4 -4
- package/dist/index-1fHusiqt.js +0 -4
- package/dist/index-EYFbyMUF.js +0 -1
- package/dist/index-kNUznzXY.js +0 -1
- package/dist/map-chart-HL7emT5a.js +0 -1
- package/es/control/kanban/lane-kanban/lane-kanban.css +0 -1
- package/lib/control/kanban/lane-kanban/lane-kanban.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { watch, onMounted, onUnmounted, createVNode, defineComponent } from 'vue';
|
|
1
|
+
import { watch, onMounted, onUnmounted, createVNode, resolveComponent, defineComponent } from 'vue';
|
|
2
2
|
import { useNamespace } from '@ibiz-template/vue3-util';
|
|
3
3
|
import { showTitle } from '@ibiz-template/core';
|
|
4
4
|
import '../interface/index.mjs';
|
|
@@ -6,7 +6,7 @@ import '../util/index.mjs';
|
|
|
6
6
|
import { useCalendarDaily } from './use-calendar-daily.mjs';
|
|
7
7
|
import './calendar-daily.css';
|
|
8
8
|
import { calendarDailyProps, calendarDailyEmits } from '../interface/calendar-daily.mjs';
|
|
9
|
-
import { isToday } from '../util/util.mjs';
|
|
9
|
+
import { handlePopClose, closeIcon, isToday } from '../util/util.mjs';
|
|
10
10
|
|
|
11
11
|
"use strict";
|
|
12
12
|
const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
@@ -27,11 +27,13 @@ const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
|
27
27
|
curTimeTimer,
|
|
28
28
|
calendarDaily,
|
|
29
29
|
selectedData,
|
|
30
|
-
|
|
30
|
+
handleEventClick,
|
|
31
|
+
handleEventDblClick,
|
|
31
32
|
handleDrag,
|
|
32
33
|
handleDragStart,
|
|
33
34
|
handleCurTime,
|
|
34
|
-
initDrawData
|
|
35
|
+
initDrawData,
|
|
36
|
+
eventContextmenu
|
|
35
37
|
} = useCalendarDaily(props, emit);
|
|
36
38
|
watch(() => props.selectedData, () => {
|
|
37
39
|
if (props.selectedData && props.selectedData.length > 0) {
|
|
@@ -58,19 +60,31 @@ const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
|
58
60
|
});
|
|
59
61
|
const renderEventItem = (location, eventBoxStyle, eventContentStyle, event, index, slotNme, classEName) => {
|
|
60
62
|
var _a;
|
|
63
|
+
let title = "".concat(event.text || "");
|
|
64
|
+
if (location === "header" && event.timeRange)
|
|
65
|
+
title = "".concat(title, " ").concat(event.timeRange || "");
|
|
66
|
+
title = showTitle(title) || "";
|
|
67
|
+
if (props.showDetail)
|
|
68
|
+
title = "";
|
|
61
69
|
return createVNode("div", {
|
|
62
70
|
"key": index,
|
|
63
71
|
"class": [ns.em(classEName, "event-box")],
|
|
64
72
|
"style": eventBoxStyle
|
|
65
73
|
}, [createVNode("button", {
|
|
66
74
|
"class": [ns.em(classEName, "event-content"), event.isSelectedEvent ? "is-selected-event" : "", event.classname],
|
|
67
|
-
"onClick": () =>
|
|
68
|
-
|
|
75
|
+
"onClick": () => {
|
|
76
|
+
handleEventClick(event, "head");
|
|
77
|
+
},
|
|
78
|
+
"onDblclick": () => {
|
|
79
|
+
handleEventDblClick(event, "head");
|
|
80
|
+
},
|
|
81
|
+
"onContextmenu": (e) => eventContextmenu(event, e),
|
|
82
|
+
"style": eventContentStyle,
|
|
83
|
+
"title": title
|
|
69
84
|
}, [slots[slotNme] ? (_a = slots[slotNme]) == null ? void 0 : _a.call(slots, {
|
|
70
85
|
data: event
|
|
71
86
|
}) : createVNode("div", {
|
|
72
|
-
"class": [ns.em(classEName, "event-summary"), event.classname]
|
|
73
|
-
"title": showTitle("".concat(event.text || "", " ").concat(event.timeRange || ""))
|
|
87
|
+
"class": [ns.em(classEName, "event-summary"), event.classname]
|
|
74
88
|
}, [event.icon && createVNode("span", {
|
|
75
89
|
"class": [event.icon, ns.em(classEName, "event-icon")],
|
|
76
90
|
"style": {
|
|
@@ -82,6 +96,41 @@ const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
|
82
96
|
"class": ["fa fa-check", ns.em(classEName, "check")]
|
|
83
97
|
}, null) : ""])]);
|
|
84
98
|
};
|
|
99
|
+
const renderPopover = (content, event, placement) => {
|
|
100
|
+
if (!props.showDetail) {
|
|
101
|
+
return content;
|
|
102
|
+
}
|
|
103
|
+
const _tempEvent = {
|
|
104
|
+
...event,
|
|
105
|
+
color: "",
|
|
106
|
+
bkColor: ""
|
|
107
|
+
};
|
|
108
|
+
return createVNode(resolveComponent("el-popover"), {
|
|
109
|
+
"show-after": 100,
|
|
110
|
+
"offset": 4,
|
|
111
|
+
"width": "auto",
|
|
112
|
+
"popper-class": [ns.e("event-popover")],
|
|
113
|
+
"placement": placement || "right-start"
|
|
114
|
+
}, {
|
|
115
|
+
reference: () => content,
|
|
116
|
+
default: () => {
|
|
117
|
+
var _a;
|
|
118
|
+
return createVNode("div", {
|
|
119
|
+
"class": [ns.em("event-popover", "body")]
|
|
120
|
+
}, [createVNode("div", {
|
|
121
|
+
"class": [ns.em("event-popover", "close")],
|
|
122
|
+
"onClick": (el) => handlePopClose(el),
|
|
123
|
+
"innerHTML": closeIcon
|
|
124
|
+
}, null), createVNode("div", {
|
|
125
|
+
"class": [ns.em("event-popover", "scroll")]
|
|
126
|
+
}, [(slots == null ? void 0 : slots.event) ? (_a = slots.event) == null ? void 0 : _a.call(slots, {
|
|
127
|
+
data: _tempEvent
|
|
128
|
+
}) : createVNode("div", {
|
|
129
|
+
"class": [ns.em("event-popover", "content")]
|
|
130
|
+
}, ["".concat(event.text || "", " ").concat(event.timeRange || "")])])]);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
};
|
|
85
134
|
const renderHeader = () => {
|
|
86
135
|
return createVNode("div", {
|
|
87
136
|
"class": [ns.e("calendar-daily__head")],
|
|
@@ -96,14 +145,16 @@ const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
|
96
145
|
"class": ns.em("allday-info", "work-items-scroll")
|
|
97
146
|
}, [createVNode("div", {
|
|
98
147
|
"class": ns.em("allday-info", "work-items-body")
|
|
99
|
-
}, [events.value.map((event, index) => {
|
|
148
|
+
}, [events.value.length > 0 ? events.value.map((event, index) => {
|
|
100
149
|
const eventBoxStyle = {};
|
|
101
150
|
const eventContentStyle = {
|
|
102
|
-
color: event.color,
|
|
103
151
|
background: event.bkColorFade
|
|
104
152
|
};
|
|
105
|
-
|
|
106
|
-
|
|
153
|
+
const tempContent = renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "allday-info");
|
|
154
|
+
return renderPopover(tempContent, event, "bottom");
|
|
155
|
+
}) : createVNode(resolveComponent("iBizNoData"), {
|
|
156
|
+
"hideNoDataImage": true
|
|
157
|
+
}, null)])])]), createVNode("div", {
|
|
107
158
|
"class": ns.e("resizable-handle"),
|
|
108
159
|
"draggable": "true",
|
|
109
160
|
"onDrag": (event) => handleDrag(event),
|
|
@@ -146,11 +197,10 @@ const CalendarDaily = /* @__PURE__ */ defineComponent({
|
|
|
146
197
|
}
|
|
147
198
|
const eventContentStyle = {
|
|
148
199
|
background: event.bkColorFade,
|
|
149
|
-
"border-left": "3px solid ".concat(event.bkColor)
|
|
150
|
-
color: event.color
|
|
200
|
+
"border-left": "3px solid ".concat(event.bkColor)
|
|
151
201
|
};
|
|
152
|
-
const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "
|
|
153
|
-
return tempContent;
|
|
202
|
+
const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "", "time-pane");
|
|
203
|
+
return renderPopover(tempContent, event);
|
|
154
204
|
})])])]), isToday(props == null ? void 0 : props.selectedDay, /* @__PURE__ */ new Date()) ? createVNode("div", {
|
|
155
205
|
"class": ns.em("time-pane", "current-time"),
|
|
156
206
|
"style": {
|
|
@@ -7,10 +7,12 @@ export declare const IBizCalendarDaily: import("@ibiz-template/vue3-util").TypeW
|
|
|
7
7
|
pick: (value: import("dayjs").Dayjs) => boolean;
|
|
8
8
|
eventClick: (value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
9
9
|
eventDblClick: (value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
10
|
+
eventContextmenu: (_value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
10
11
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<import("@ibiz-template/core").IApiParams>> & {
|
|
11
12
|
onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
|
|
12
13
|
onEventClick?: ((value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
13
14
|
onEventDblClick?: ((value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
15
|
+
onEventContextmenu?: ((_value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
14
16
|
}, {
|
|
15
17
|
[x: string]: any;
|
|
16
18
|
[x: symbol]: any;
|
|
@@ -149,6 +149,8 @@ export declare const useCalendarDaily: (props: CalendarDailyProps, emit: SetupCo
|
|
|
149
149
|
handleCurTime: () => void;
|
|
150
150
|
handleDrag: (event: DragEvent) => void;
|
|
151
151
|
handleDragStart: (event: DragEvent) => void;
|
|
152
|
-
|
|
152
|
+
handleEventClick: (item: IUIEvent, location: string) => void;
|
|
153
|
+
handleEventDblClick: (item: IUIEvent, location: string) => void;
|
|
154
|
+
eventContextmenu: (item: IUIEvent, evt: MouseEvent) => Promise<void>;
|
|
153
155
|
initDrawData: () => string[];
|
|
154
156
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed } from 'vue';
|
|
2
2
|
import '../util/index.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import { checkDateRangeIncludes, handleTimeRange, isToday, handleBkColor, fade, handleEmit } from '../util/util.mjs';
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
const useCalendarDaily = (props, emit) => {
|
|
@@ -24,7 +24,8 @@ const useCalendarDaily = (props, emit) => {
|
|
|
24
24
|
};
|
|
25
25
|
const handleDrag = (event) => {
|
|
26
26
|
const heightChange = event.clientY - initialMouseY + initialHeight;
|
|
27
|
-
|
|
27
|
+
if (heightChange < 320)
|
|
28
|
+
resizableHand.value.style.height = "".concat(heightChange, "px");
|
|
28
29
|
};
|
|
29
30
|
const events = computed(() => {
|
|
30
31
|
return computeUIEvents(
|
|
@@ -34,14 +35,17 @@ const useCalendarDaily = (props, emit) => {
|
|
|
34
35
|
calendarDaily.value
|
|
35
36
|
);
|
|
36
37
|
});
|
|
37
|
-
const computeUIEvents = (
|
|
38
|
+
const computeUIEvents = (_events, curDate, _legends, _calendarDaily) => {
|
|
38
39
|
const tempEvents = [];
|
|
39
40
|
const tempColors = /* @__PURE__ */ new Map();
|
|
40
41
|
let contentWidth = 0;
|
|
41
|
-
if (
|
|
42
|
-
contentWidth = parseInt(
|
|
42
|
+
if (_calendarDaily) {
|
|
43
|
+
contentWidth = parseInt(
|
|
44
|
+
window.getComputedStyle(_calendarDaily).width,
|
|
45
|
+
10
|
|
46
|
+
);
|
|
43
47
|
}
|
|
44
|
-
|
|
48
|
+
_events.sort((a, b) => {
|
|
45
49
|
const beginTimeDifference = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
|
|
46
50
|
let type;
|
|
47
51
|
if (beginTimeDifference === 0) {
|
|
@@ -51,18 +55,33 @@ const useCalendarDaily = (props, emit) => {
|
|
|
51
55
|
}
|
|
52
56
|
return type;
|
|
53
57
|
});
|
|
54
|
-
const tempArray =
|
|
55
|
-
|
|
58
|
+
const tempArray = [];
|
|
59
|
+
_events.forEach((event) => {
|
|
60
|
+
const targetLegend = _legends.find(
|
|
61
|
+
(legendItem) => Object.is(legendItem.id, event.itemType)
|
|
62
|
+
);
|
|
63
|
+
if (!targetLegend || !targetLegend.isShow)
|
|
64
|
+
return;
|
|
65
|
+
if (event && event.beginTime && checkDateRangeIncludes(event.beginTime, event.endTime, curDate)) {
|
|
66
|
+
const item = { ...event, targetLegend };
|
|
67
|
+
const targetEvent = selectedData.value.find(
|
|
68
|
+
(tempItem) => tempItem.id === event.id
|
|
69
|
+
);
|
|
70
|
+
if (targetEvent) {
|
|
71
|
+
Object.assign(item, { isSelectedEvent: true });
|
|
72
|
+
} else {
|
|
73
|
+
Object.assign(item, { isSelectedEvent: false });
|
|
74
|
+
}
|
|
75
|
+
if (!event.endTime && event.beginTime) {
|
|
76
|
+
Object.assign(item, { endTime: event.beginTime });
|
|
77
|
+
}
|
|
78
|
+
tempArray.push(item);
|
|
79
|
+
}
|
|
56
80
|
});
|
|
57
81
|
tempArray.forEach((event, index) => {
|
|
82
|
+
const { targetLegend } = event;
|
|
58
83
|
const tempItem = {};
|
|
59
84
|
Object.assign(tempItem, event);
|
|
60
|
-
const targetLegend = legends2.find(
|
|
61
|
-
(legendItem) => Object.is(legendItem.id, event.itemType)
|
|
62
|
-
);
|
|
63
|
-
const targetEvent = selectedData.value.find(
|
|
64
|
-
(item) => item.id === event.id
|
|
65
|
-
);
|
|
66
85
|
Object.assign(tempItem, { zIndex: index + 1 });
|
|
67
86
|
const length = tempArray.length;
|
|
68
87
|
const itemWidth = (contentWidth - 90) / length;
|
|
@@ -74,25 +93,40 @@ const useCalendarDaily = (props, emit) => {
|
|
|
74
93
|
styleLeft = "".concat(index * 100, "px");
|
|
75
94
|
}
|
|
76
95
|
Object.assign(tempItem, { width, styleLeft });
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
let height = "auto";
|
|
97
|
+
let styleTop = 60;
|
|
98
|
+
const timeRange = handleTimeRange(
|
|
99
|
+
event.beginTime,
|
|
100
|
+
event.endTime,
|
|
101
|
+
"YYYY-MM-DD HH:mm:ss"
|
|
102
|
+
);
|
|
103
|
+
if (isToday(event.beginTime, event.endTime)) {
|
|
104
|
+
height = getEventHeight(event.beginTime, event.endTime);
|
|
105
|
+
const tempVal = handleTopOrCurVal(new Date(event.beginTime));
|
|
106
|
+
styleTop = tempVal.styleTop;
|
|
107
|
+
} else if (isToday(event.beginTime, curDate) && !isToday(event.endTime, curDate)) {
|
|
108
|
+
const endDate = new Date(curDate);
|
|
109
|
+
endDate.setHours(23, 59, 59, 0);
|
|
110
|
+
height = getEventHeight(event.beginTime, endDate);
|
|
111
|
+
const tempVal = handleTopOrCurVal(new Date(event.beginTime));
|
|
112
|
+
styleTop = tempVal.styleTop;
|
|
113
|
+
} else if (isToday(event.endTime, curDate) && !isToday(event.beginTime, curDate)) {
|
|
114
|
+
const beginDate = new Date(curDate);
|
|
115
|
+
beginDate.setHours(0, 0, 0, 0);
|
|
116
|
+
height = getEventHeight(beginDate, event.endTime);
|
|
117
|
+
const tempVal = handleTopOrCurVal(new Date(beginDate));
|
|
118
|
+
styleTop = tempVal.styleTop;
|
|
119
|
+
} else {
|
|
120
|
+
const date = new Date(curDate);
|
|
121
|
+
const beginDate = new Date(date.setHours(0, 0, 0, 0));
|
|
122
|
+
const endDate = new Date(date.setHours(23, 59, 59, 59));
|
|
123
|
+
height = getEventHeight(beginDate, endDate);
|
|
124
|
+
const tempVal = handleTopOrCurVal(new Date(beginDate));
|
|
125
|
+
styleTop = tempVal.styleTop;
|
|
93
126
|
}
|
|
127
|
+
Object.assign(tempItem, { height, styleTop, timeRange });
|
|
94
128
|
if (!(event == null ? void 0 : event.bkColor)) {
|
|
95
|
-
const bkColor = targetLegend
|
|
129
|
+
const bkColor = targetLegend && targetLegend.bkcolor || handleBkColor(tempColors, event.itemType);
|
|
96
130
|
Object.assign(tempItem, { bkColor });
|
|
97
131
|
}
|
|
98
132
|
if (tempItem.bkColor) {
|
|
@@ -101,27 +135,26 @@ const useCalendarDaily = (props, emit) => {
|
|
|
101
135
|
bkColorFade: tempBkColor
|
|
102
136
|
});
|
|
103
137
|
}
|
|
138
|
+
if (!(event == null ? void 0 : event.color)) {
|
|
139
|
+
const tempColor = targetLegend && targetLegend.color;
|
|
140
|
+
Object.assign(tempItem, {
|
|
141
|
+
color: tempColor
|
|
142
|
+
});
|
|
143
|
+
}
|
|
104
144
|
if ((tempItem == null ? void 0 : tempItem.height) && (tempItem == null ? void 0 : tempItem.height) > 10) {
|
|
105
145
|
const border = "1px solid #FFF";
|
|
106
146
|
Object.assign(tempItem, { border });
|
|
107
147
|
} else {
|
|
108
148
|
Object.assign(tempItem, { border: "none" });
|
|
109
149
|
}
|
|
110
|
-
|
|
111
|
-
Object.assign(tempItem, { isSelectedEvent: true });
|
|
112
|
-
} else {
|
|
113
|
-
Object.assign(tempItem, { isSelectedEvent: false });
|
|
114
|
-
}
|
|
115
|
-
if (targetLegend && targetLegend.isShow || !targetLegend) {
|
|
116
|
-
tempEvents.push(tempItem);
|
|
117
|
-
}
|
|
150
|
+
tempEvents.push(tempItem);
|
|
118
151
|
});
|
|
119
152
|
tempColors.clear();
|
|
120
153
|
return tempEvents;
|
|
121
154
|
};
|
|
122
|
-
const
|
|
155
|
+
const getEventHeight = (startTime, endTime) => {
|
|
123
156
|
let height = 1;
|
|
124
|
-
if (isToday(startTime,
|
|
157
|
+
if (isToday(startTime, endTime)) {
|
|
125
158
|
const difference = new Date(endTime).getTime() - new Date(startTime).getTime();
|
|
126
159
|
height = Math.floor(difference / (1e3 * 60));
|
|
127
160
|
}
|
|
@@ -161,8 +194,25 @@ const useCalendarDaily = (props, emit) => {
|
|
|
161
194
|
}
|
|
162
195
|
return tempDrawData;
|
|
163
196
|
};
|
|
164
|
-
const
|
|
165
|
-
const res =
|
|
197
|
+
const handleEventClick = (item, location) => {
|
|
198
|
+
const res = handleEmit(
|
|
199
|
+
"eventClick",
|
|
200
|
+
item,
|
|
201
|
+
location,
|
|
202
|
+
props.events,
|
|
203
|
+
multiple.value,
|
|
204
|
+
selectedData.value,
|
|
205
|
+
emit
|
|
206
|
+
);
|
|
207
|
+
const { tempSelectedData, isSelectedEvent } = res;
|
|
208
|
+
if (!isSelectedEvent) {
|
|
209
|
+
Object.assign(item, { isSelectedEvent });
|
|
210
|
+
}
|
|
211
|
+
selectedData.value = tempSelectedData;
|
|
212
|
+
};
|
|
213
|
+
const handleEventDblClick = (item, location) => {
|
|
214
|
+
const res = handleEmit(
|
|
215
|
+
"eventDblClick",
|
|
166
216
|
item,
|
|
167
217
|
location,
|
|
168
218
|
props.events,
|
|
@@ -176,6 +226,9 @@ const useCalendarDaily = (props, emit) => {
|
|
|
176
226
|
}
|
|
177
227
|
selectedData.value = tempSelectedData;
|
|
178
228
|
};
|
|
229
|
+
const eventContextmenu = async (item, evt) => {
|
|
230
|
+
emit("eventContextmenu", { evt, data: [item] });
|
|
231
|
+
};
|
|
179
232
|
return {
|
|
180
233
|
drawData,
|
|
181
234
|
curTimeTimer,
|
|
@@ -188,7 +241,9 @@ const useCalendarDaily = (props, emit) => {
|
|
|
188
241
|
handleCurTime,
|
|
189
242
|
handleDrag,
|
|
190
243
|
handleDragStart,
|
|
191
|
-
|
|
244
|
+
handleEventClick,
|
|
245
|
+
handleEventDblClick,
|
|
246
|
+
eventContextmenu,
|
|
192
247
|
initDrawData
|
|
193
248
|
};
|
|
194
249
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-calendar-week{display:flex;flex:1;flex-direction:column;width:100%;height:100%;overflow:hidden}.ibiz-calendar-week__header{position:relative;z-index:100;display:flex;flex-direction:column;width:
|
|
1
|
+
.ibiz-calendar-week{display:flex;flex:1;flex-direction:column;width:100%;height:100%;overflow:hidden}.ibiz-calendar-week__header{position:relative;z-index:100;display:flex;flex-direction:column;width:100%;height:150px;min-height:150px}.ibiz-calendar-week__header--date-cell-first{width:90px;max-width:90px;height:100%;border-right:1px solid var(--ibiz-color-border);border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--event-cell-first{display:flex;align-items:center;justify-content:center;width:90px;max-width:90px;height:100%;padding-left:40px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--dates{display:flex;justify-content:space-between;width:calc(100% - 7px);height:96px}.ibiz-calendar-week__header--date-cell{display:flex;flex:1;flex-direction:column;align-items:center;border-right:1px solid var(--ibiz-color-border);border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--date-week{width:100%;height:26px;margin-top:6px;text-align:center}.ibiz-calendar-week__header--date-day{display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin-top:6px;font-weight:600;border:none;border-radius:50%}.ibiz-calendar-week__header--date-day.is-today{color:var(--ibiz-color-primary-text);background:var(--ibiz-color-primary)}.ibiz-calendar-week__header--events{display:flex;flex:1;width:100%;height:30px;overflow:hidden;position:relative}.ibiz-calendar-week__header--event-container{width:calc(100% - 97px);height:100%;overflow-y:auto;overflow-x:hidden}.ibiz-calendar-week__header--event-container::-webkit-scrollbar{display:none}.ibiz-calendar-week__header--container-scroll{display:flex;height:auto}.ibiz-calendar-week__header--event-cell{position:relative;top:0;left:0;flex:1;width:100%;height:auto}.ibiz-calendar-week__header--event-cell::after{content:"";display:block;position:absolute;top:0;right:0;width:1px;height:var(--ibiz-calendar-week-header-event-scroll-real-height);border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--event-box{position:absolute;display:flex;min-width:32px}.ibiz-calendar-week__header--event-box:has(.ibiz-calendar-week__header--check){min-width:50px}.ibiz-calendar-week__header--event-content{position:relative;z-index:2;width:100%;height:100%;min-height:22px;padding-left:4px;cursor:pointer;background-color:var(--ibiz-color-primary);border:none;outline:0}.ibiz-calendar-week__header--event-content.is-selected-event{padding-right:20px}.ibiz-calendar-week__header--event-summary{width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-week__header--resizable-handle{position:absolute;bottom:-6px;display:flex;align-items:center;width:calc(100% - 7px);height:10px;cursor:row-resize}.ibiz-calendar-week__header--resize-line{width:100%;height:1px;background-color:var(--ibiz-color-border)}.ibiz-calendar-week__header--check{position:absolute;top:50%;right:6px;color:var(--ibiz-color-primary);transform:translate(0,-50%)}.ibiz-calendar-week__scroll-area{flex:1;overflow:hidden scroll}.ibiz-calendar-week__time-pane{position:relative;display:flex;flex:1 1 0%;width:calc(100% - 3px);height:auto}.ibiz-calendar-week__time-pane--time-labels{position:sticky;left:0;width:90px;min-width:90px;padding:27px 0 27px 40px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-label{height:22px;margin-top:38px;line-height:22px;text-align:left}.ibiz-calendar-week__time-pane--time-label:nth-child(1){height:22px;margin-top:22px}.ibiz-calendar-week__time-pane--time-columns{position:relative;flex:1;padding-bottom:60px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-column{height:60px;border-top:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-column:nth-child(1){border-top:none}.ibiz-calendar-week__time-pane--time-column-last{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--event-timed-container{position:absolute;top:0;width:100%;height:100%;overflow:hidden}.ibiz-calendar-week__time-pane--container-scroll{position:relative;top:0;width:100%;height:100%;overflow:auto;overflow:hidden}.ibiz-calendar-week__time-pane--event-box{position:absolute;width:auto;height:auto;padding:0 2px}.ibiz-calendar-week__time-pane--event-content{position:relative;z-index:3;width:100%;height:100%;padding:8px;overflow:hidden;line-height:100%;text-align:left;cursor:pointer;border:none;outline:0}.ibiz-calendar-week__time-pane--event-content.is-selected-event{border:1px solid var(--ibiz-color-primary)}.ibiz-calendar-week__time-pane--event-summary{width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-week__time-pane--event-summary>span{margin-right:4px}.ibiz-calendar-week__event-popover{position:relative;width:auto;height:auto;padding:0}.ibiz-calendar-week__event-popover.el-popover.el-popper{padding:8px}.ibiz-calendar-week__event-popover:has(.ibiz-control-calendar-item-default){display:none!important}.ibiz-calendar-week__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-week__event-popover--scroll{width:auto;min-width:200px;height:auto;max-height:80%;overflow:auto;pointer-events:none}.ibiz-calendar-week__event-popover--scroll .ibiz-control-calendar-item:last-child{margin-bottom:0}.ibiz-calendar-week__event-popover--scroll .ibiz-control-calendar-item.is-active{background-color:transparent;border-color:transparent}.ibiz-calendar-week__event-popover--close{position:absolute;top:8px;right:8px;display:none;cursor:pointer}.ibiz-calendar-week__event-popover--close:hover .el-icon{background:var(--ibiz-color-primary);border-radius:50%}.ibiz-calendar-week__event-popover--close:hover .el-icon svg{fill:var(--ibiz-color-white)}.ibiz-calendar-week__event-popover .el-icon{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;font-size:20px}.ibiz-calendar-week__event-popover .el-icon svg{fill:var(--el-text-color-secondary)}.ibiz-calendar-week-scroll-bar{position:absolute;top:var(--ibiz-calendar-week-header-event-scroll-bar-thumb-top);right:0;z-index:10;width:4px;height:100%;border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-calendar-week-scroll-bar__thumb{width:4px;height:var(--ibiz-calendar-week-header-event-scroll-bar-thumb-height);cursor:pointer;background-color:var(--ibiz-color-fill-2);border-radius:var(--ibiz-border-radius-extra-small)}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import './calendar-week.scss';
|
|
2
2
|
export declare const CalendarWeek: import("vue").DefineComponent<import("@ibiz-template/core").IApiParams, {
|
|
3
3
|
ns: import("@ibiz-template/core").Namespace;
|
|
4
|
+
thumbHeight: import("vue").Ref<number>;
|
|
4
5
|
calendarWeek: import("vue").Ref<any>;
|
|
6
|
+
scrollTop: import("vue").Ref<number>;
|
|
7
|
+
realHeight: import("vue").Ref<number>;
|
|
8
|
+
headerEventRef: import("vue").Ref<any>;
|
|
5
9
|
renderHeader: () => JSX.Element;
|
|
6
10
|
renderContent: () => JSX.Element;
|
|
7
11
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
12
|
pick: (value: import("dayjs").Dayjs) => boolean;
|
|
9
13
|
eventClick: (value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
10
14
|
eventDblClick: (value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
15
|
+
eventContextmenu: (_value: import("@ibiz-template/core").IApiParams) => import("@ibiz-template/core").IApiParams;
|
|
11
16
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<import("@ibiz-template/core").IApiParams>> & {
|
|
12
17
|
onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
|
|
13
18
|
onEventClick?: ((value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
14
19
|
onEventDblClick?: ((value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
20
|
+
onEventContextmenu?: ((_value: import("@ibiz-template/core").IApiParams) => any) | undefined;
|
|
15
21
|
}, {
|
|
16
22
|
[x: string]: any;
|
|
17
23
|
[x: symbol]: any;
|