@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.
Files changed (154) hide show
  1. package/dist/index-U4v1OOOD.js +1 -0
  2. package/dist/index-lFGFvnYE.js +1 -0
  3. package/dist/index-m8q8r8br.js +4 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/map-chart-3dojS1dZ.js +1 -0
  7. package/dist/{wang-editor-z0RY8bO1.js → wang-editor-_06OYPpu.js} +1 -1
  8. package/dist/{xlsx-util-8Du1A340.js → xlsx-util-FNiwKrqm.js} +1 -1
  9. package/es/common/carousel/carousel.css +1 -1
  10. package/es/common/index.mjs +2 -0
  11. package/es/common/kanben-setting/kanben-setting.css +1 -0
  12. package/es/common/kanben-setting/kanben-setting.d.ts +42 -0
  13. package/es/common/kanben-setting/kanben-setting.mjs +65 -0
  14. package/es/common/map-chart/map-chart.mjs +6 -14
  15. package/es/control/calendar/calendar-util.d.ts +12 -0
  16. package/es/control/calendar/calendar-util.mjs +30 -1
  17. package/es/control/calendar/calendar.css +1 -1
  18. package/es/control/calendar/calendar.d.ts +2 -0
  19. package/es/control/calendar/calendar.mjs +106 -25
  20. package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  21. package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +2 -0
  22. package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +66 -16
  23. package/es/control/calendar/components/calendar-daily/index.d.ts +2 -0
  24. package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +3 -1
  25. package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +99 -44
  26. package/es/control/calendar/components/calendar-week/calendar-week.css +1 -1
  27. package/es/control/calendar/components/calendar-week/calendar-week.d.ts +6 -0
  28. package/es/control/calendar/components/calendar-week/calendar-week.mjs +74 -38
  29. package/es/control/calendar/components/calendar-week/index.d.ts +6 -0
  30. package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +12 -1
  31. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +313 -155
  32. package/es/control/calendar/components/constant/event.d.ts +1 -0
  33. package/es/control/calendar/components/constant/event.mjs +2 -1
  34. package/es/control/calendar/components/constant/index.mjs +1 -1
  35. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  36. package/es/control/calendar/components/custom-calendar/custom-calendar.d.ts +2 -0
  37. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +8 -10
  38. package/es/control/calendar/components/custom-calendar/index.d.ts +2 -0
  39. package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +4 -0
  40. package/es/control/calendar/components/interface/calendar-daily.d.ts +1 -0
  41. package/es/control/calendar/components/interface/calendar-daily.mjs +6 -1
  42. package/es/control/calendar/components/interface/calendar-week.d.ts +1 -0
  43. package/es/control/calendar/components/interface/calendar-week.mjs +2 -1
  44. package/es/control/calendar/components/interface/common.d.ts +20 -18
  45. package/es/control/calendar/components/interface/custom-calendar.d.ts +1 -0
  46. package/es/control/calendar/components/interface/custom-calendar.mjs +3 -2
  47. package/es/control/calendar/components/util/index.mjs +1 -1
  48. package/es/control/calendar/components/util/util.d.ts +20 -1
  49. package/es/control/calendar/components/util/util.mjs +10 -2
  50. package/es/control/calendar/index.d.ts +2 -0
  51. package/es/control/data-view/data-view.css +1 -1
  52. package/es/control/data-view/data-view.mjs +42 -13
  53. package/es/control/drbar/drbar.controller.mjs +2 -0
  54. package/es/control/drbar/drbar.mjs +6 -6
  55. package/es/control/drtab/drtab.controller.mjs +2 -0
  56. package/es/control/drtab/drtab.mjs +6 -6
  57. package/es/control/drtab/flow-drtab.css +1 -1
  58. package/es/control/drtab/flow-drtab.mjs +3 -1
  59. package/es/control/form/edit-form/edit-form.mjs +11 -0
  60. package/es/control/form/form-detail/form-item/form-item.mjs +11 -7
  61. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +4 -1
  62. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +1 -0
  63. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +6 -0
  64. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +4 -0
  65. package/es/control/grid/virtualized-table/virtualized-table.css +1 -1
  66. package/es/control/grid/virtualized-table/virtualized-table.mjs +4 -3
  67. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +4 -4
  68. package/es/control/kanban/kanban.css +1 -1
  69. package/es/control/kanban/kanban.mjs +22 -18
  70. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  71. package/es/control/kanban/{lane-kanban/lane-kanban.d.ts → swimlane-kanban/swimlane-kanban.d.ts} +3 -8
  72. package/es/control/kanban/{lane-kanban/lane-kanban.mjs → swimlane-kanban/swimlane-kanban.mjs} +42 -38
  73. package/es/control/list/list.css +1 -1
  74. package/es/control/list/list.mjs +14 -1
  75. package/es/control/map/map.mjs +1 -1
  76. package/es/control/medit-view-panel/index.d.ts +2 -0
  77. package/es/control/medit-view-panel/medit-view-panel.d.ts +2 -0
  78. package/es/control/medit-view-panel/medit-view-panel.mjs +19 -6
  79. package/es/control/search-bar/search-bar.mjs +1 -1
  80. package/es/editor/span/span/span.mjs +2 -1
  81. package/es/locale/en/index.d.ts +5 -0
  82. package/es/locale/en/index.mjs +6 -1
  83. package/es/locale/zh-CN/index.d.ts +5 -0
  84. package/es/locale/zh-CN/index.mjs +6 -1
  85. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +20 -5
  86. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +1950 -1
  87. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.d.ts +53 -6
  88. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
  89. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +2031 -0
  90. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +278 -0
  91. package/es/view-engine/index.mjs +4 -0
  92. package/lib/common/carousel/carousel.css +1 -1
  93. package/lib/common/index.cjs +2 -0
  94. package/lib/common/kanben-setting/kanben-setting.cjs +67 -0
  95. package/lib/common/kanben-setting/kanben-setting.css +1 -0
  96. package/lib/common/map-chart/map-chart.cjs +5 -13
  97. package/lib/control/calendar/calendar-util.cjs +30 -0
  98. package/lib/control/calendar/calendar.cjs +104 -23
  99. package/lib/control/calendar/calendar.css +1 -1
  100. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +64 -14
  101. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  102. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +98 -43
  103. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +73 -37
  104. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
  105. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +311 -153
  106. package/lib/control/calendar/components/constant/event.cjs +2 -0
  107. package/lib/control/calendar/components/constant/index.cjs +1 -0
  108. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +8 -10
  109. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  110. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +4 -0
  111. package/lib/control/calendar/components/interface/calendar-daily.cjs +6 -1
  112. package/lib/control/calendar/components/interface/calendar-week.cjs +2 -1
  113. package/lib/control/calendar/components/interface/custom-calendar.cjs +2 -1
  114. package/lib/control/calendar/components/util/index.cjs +2 -0
  115. package/lib/control/calendar/components/util/util.cjs +11 -1
  116. package/lib/control/data-view/data-view.cjs +42 -13
  117. package/lib/control/data-view/data-view.css +1 -1
  118. package/lib/control/drbar/drbar.cjs +6 -6
  119. package/lib/control/drbar/drbar.controller.cjs +2 -0
  120. package/lib/control/drtab/drtab.cjs +6 -6
  121. package/lib/control/drtab/drtab.controller.cjs +2 -0
  122. package/lib/control/drtab/flow-drtab.cjs +3 -1
  123. package/lib/control/drtab/flow-drtab.css +1 -1
  124. package/lib/control/form/edit-form/edit-form.cjs +11 -0
  125. package/lib/control/form/form-detail/form-item/form-item.cjs +11 -7
  126. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +4 -1
  127. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +1 -0
  128. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +4 -0
  129. package/lib/control/grid/virtualized-table/virtualized-table.cjs +3 -2
  130. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -1
  131. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +4 -4
  132. package/lib/control/kanban/kanban.cjs +21 -17
  133. package/lib/control/kanban/kanban.css +1 -1
  134. package/lib/control/kanban/{lane-kanban/lane-kanban.cjs → swimlane-kanban/swimlane-kanban.cjs} +42 -38
  135. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  136. package/lib/control/list/list.cjs +14 -1
  137. package/lib/control/list/list.css +1 -1
  138. package/lib/control/map/map.cjs +1 -1
  139. package/lib/control/medit-view-panel/medit-view-panel.cjs +19 -6
  140. package/lib/control/search-bar/search-bar.cjs +1 -1
  141. package/lib/editor/span/span/span.cjs +2 -1
  142. package/lib/locale/en/index.cjs +6 -1
  143. package/lib/locale/zh-CN/index.cjs +6 -1
  144. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +20 -5
  145. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +280 -0
  146. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
  147. package/lib/view-engine/index.cjs +4 -0
  148. package/package.json +4 -4
  149. package/dist/index-1fHusiqt.js +0 -4
  150. package/dist/index-EYFbyMUF.js +0 -1
  151. package/dist/index-kNUznzXY.js +0 -1
  152. package/dist/map-chart-HL7emT5a.js +0 -1
  153. package/es/control/kanban/lane-kanban/lane-kanban.css +0 -1
  154. 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
- eventClick,
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": () => eventClick(event, "head"),
68
- "style": eventContentStyle
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
- return renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "allday-info");
106
- })])])]), createVNode("div", {
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, "event", "time-pane");
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
- eventClick: (item: IUIEvent, location: string) => Promise<void>;
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 { isToday, handleTimeRange, handleBkColor, fade, handleEVentClick } from '../util/util.mjs';
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
- resizableHand.value.style.height = "".concat(heightChange, "px");
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 = (events2, curDate, legends2, calendarDaily2) => {
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 (calendarDaily2) {
42
- contentWidth = parseInt(window.getComputedStyle(calendarDaily2).width, 10);
42
+ if (_calendarDaily) {
43
+ contentWidth = parseInt(
44
+ window.getComputedStyle(_calendarDaily).width,
45
+ 10
46
+ );
43
47
  }
44
- events2.sort((a, b) => {
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 = events2.filter((event) => {
55
- return event && event.beginTime && event.endTime && isToday(curDate, event.beginTime) && isToday(curDate, event.endTime);
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
- if (event.beginTime && event.endTime) {
78
- const height = handleEventHeight(
79
- event.beginTime,
80
- event.endTime,
81
- curDate
82
- );
83
- const timeRange = handleTimeRange(
84
- event.beginTime,
85
- event.endTime,
86
- "HH:mm"
87
- );
88
- Object.assign(tempItem, { height, timeRange });
89
- }
90
- if (event.beginTime) {
91
- const { styleTop } = handleTopOrCurVal(new Date(event.beginTime));
92
- Object.assign(tempItem, { styleTop });
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 ? targetLegend.bkcolor : handleBkColor(tempColors, event.itemType);
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
- if (targetEvent) {
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 handleEventHeight = (startTime, endTime, date) => {
155
+ const getEventHeight = (startTime, endTime) => {
123
156
  let height = 1;
124
- if (isToday(startTime, date) && isToday(endTime, date)) {
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 eventClick = async (item, location) => {
165
- const res = await handleEVentClick(
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
- eventClick,
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:calc(100% - 7px);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:100%;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:#fff;background:var(--ibiz-color-primary)}.ibiz-calendar-week__header--events{display:flex;flex:1;justify-content:space-between;width:100%;height:30px;overflow:hidden}.ibiz-calendar-week__header--event-cell{position:relative;top:0;left:0;flex:1;width:100%;height:100%;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--event-box{position:absolute}.ibiz-calendar-week__header--event-content{position:relative;z-index:2;width:100%;height:22px;padding-left:4px;cursor:pointer;background-color:var(--ibiz-color-primary);border:none;border-radius:4px;outline:0}.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:100%;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:active{animation:pulse 1s linear}.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:24px 12px 8px}.ibiz-calendar-week__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-week__event-popover--scroll{width:auto;min-width:450px;height:auto;min-height:200px;overflow:auto}.ibiz-calendar-week__event-popover--close{position:absolute;top:8px;right:8px;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:#fff}.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)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes move{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(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: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;