@ibiz-template/vue3-components 0.7.26-alpha.0 → 0.7.26-alpha.2
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-_h-elF6t.js → index-8tGeBxpc.js} +1 -1
- package/dist/{index--XeT2CTZ.js → index-CDgQJyai.js} +1 -1
- package/dist/index-o58Mv9D4.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{xlsx-util-W01Wk5pi.js → xlsx-util-Ux1_tuw5.js} +1 -1
- package/es/_virtual/localeData.mjs +3 -0
- package/es/control/calendar/calendar.css +1 -1
- package/es/control/calendar/calendar.d.ts +2 -3
- package/es/control/calendar/calendar.mjs +104 -173
- package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -0
- package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +18 -0
- package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +175 -0
- package/es/control/calendar/components/calendar-daily/index.d.ts +18 -0
- package/es/control/calendar/components/calendar-daily/index.mjs +9 -0
- package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +154 -0
- package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +196 -0
- package/es/control/calendar/components/calendar-month/calendar-month.css +1 -0
- package/es/control/calendar/components/calendar-month/calendar-month.d.ts +18 -0
- package/es/control/calendar/components/calendar-month/calendar-month.mjs +242 -0
- package/es/control/calendar/components/calendar-month/index.d.ts +18 -0
- package/es/control/calendar/components/calendar-month/index.mjs +9 -0
- package/es/control/calendar/components/calendar-month/use-calendar-month.d.ts +3 -0
- package/es/control/calendar/components/calendar-month/use-calendar-month.mjs +384 -0
- package/es/control/calendar/components/calendar-week/calendar-week.css +1 -0
- package/es/control/calendar/components/calendar-week/calendar-week.d.ts +18 -0
- package/es/control/calendar/components/calendar-week/calendar-week.mjs +241 -0
- package/es/control/calendar/components/calendar-week/index.d.ts +18 -0
- package/es/control/calendar/components/calendar-week/index.mjs +9 -0
- package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +159 -0
- package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +399 -0
- package/es/control/calendar/components/constant/event.d.ts +5 -0
- package/es/control/calendar/components/constant/event.mjs +8 -0
- package/es/control/calendar/components/constant/index.d.ts +1 -0
- package/es/control/calendar/components/constant/index.mjs +3 -0
- package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -0
- package/es/control/calendar/components/custom-calendar/custom-calendar.d.ts +24 -0
- package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +283 -0
- package/es/control/calendar/components/custom-calendar/index.d.ts +24 -0
- package/es/control/calendar/components/custom-calendar/index.mjs +12 -0
- package/es/control/calendar/components/custom-calendar/use-custom-calendar.d.ts +3 -0
- package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +264 -0
- package/es/control/calendar/components/interface/calendar-daily.d.ts +12 -0
- package/es/control/calendar/components/interface/calendar-daily.mjs +34 -0
- package/es/control/calendar/components/interface/calendar-month.d.ts +20 -0
- package/es/control/calendar/components/interface/calendar-month.mjs +43 -0
- package/es/control/calendar/components/interface/calendar-week.d.ts +12 -0
- package/es/control/calendar/components/interface/calendar-week.mjs +34 -0
- package/es/control/calendar/components/interface/common.d.ts +116 -0
- package/es/control/calendar/components/interface/common.mjs +1 -0
- package/es/control/calendar/components/interface/custom-calendar.d.ts +14 -0
- package/es/control/calendar/components/interface/custom-calendar.mjs +67 -0
- package/es/control/calendar/components/interface/index.d.ts +5 -0
- package/es/control/calendar/components/interface/index.mjs +7 -0
- package/es/control/calendar/components/util/index.d.ts +1 -0
- package/es/control/calendar/components/util/index.mjs +4 -0
- package/es/control/calendar/components/util/util.d.ts +89 -0
- package/es/control/calendar/components/util/util.mjs +281 -0
- package/es/control/calendar/index.d.ts +1 -2
- package/es/control/calendar/index.mjs +2 -0
- package/es/control/kanban/kanban.css +1 -1
- package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +2 -2
- package/es/editor/date-picker/date-picker-editor.controller.mjs +3 -0
- package/es/editor/date-range/date-range-editor.controller.mjs +3 -0
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -1
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +11 -2
- package/es/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
- package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +2 -0
- package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +76 -21
- package/es/locale/en/index.d.ts +46 -0
- package/es/locale/en/index.mjs +44 -1
- package/es/locale/zh-CN/index.d.ts +42 -0
- package/es/locale/zh-CN/index.mjs +40 -1
- package/es/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.mjs +13 -0
- package/lib/_virtual/localeData.cjs +5 -0
- package/lib/control/calendar/calendar.cjs +104 -173
- package/lib/control/calendar/calendar.css +1 -1
- package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +177 -0
- package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -0
- package/lib/control/calendar/components/calendar-daily/index.cjs +14 -0
- package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +198 -0
- package/lib/control/calendar/components/calendar-month/calendar-month.cjs +244 -0
- package/lib/control/calendar/components/calendar-month/calendar-month.css +1 -0
- package/lib/control/calendar/components/calendar-month/index.cjs +14 -0
- package/lib/control/calendar/components/calendar-month/use-calendar-month.cjs +386 -0
- package/lib/control/calendar/components/calendar-week/calendar-week.cjs +243 -0
- package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -0
- package/lib/control/calendar/components/calendar-week/index.cjs +14 -0
- package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +401 -0
- package/lib/control/calendar/components/constant/event.cjs +14 -0
- package/lib/control/calendar/components/constant/index.cjs +11 -0
- package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +285 -0
- package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -0
- package/lib/control/calendar/components/custom-calendar/index.cjs +17 -0
- package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +266 -0
- package/lib/control/calendar/components/interface/calendar-daily.cjs +37 -0
- package/lib/control/calendar/components/interface/calendar-month.cjs +46 -0
- package/lib/control/calendar/components/interface/calendar-week.cjs +37 -0
- package/lib/control/calendar/components/interface/common.cjs +3 -0
- package/lib/control/calendar/components/interface/custom-calendar.cjs +70 -0
- package/lib/control/calendar/components/interface/index.cjs +18 -0
- package/lib/control/calendar/components/util/index.cjs +42 -0
- package/lib/control/calendar/components/util/util.cjs +316 -0
- package/lib/control/calendar/index.cjs +2 -0
- package/lib/control/kanban/kanban.css +1 -1
- package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +2 -2
- package/lib/editor/date-picker/date-picker-editor.controller.cjs +3 -0
- package/lib/editor/date-range/date-range-editor.controller.cjs +3 -0
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +11 -2
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -1
- package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +76 -21
- package/lib/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
- package/lib/locale/en/index.cjs +44 -1
- package/lib/locale/zh-CN/index.cjs +40 -1
- package/lib/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.cjs +17 -0
- package/package.json +7 -7
- package/dist/index-WMgMgSGZ.js +0 -4
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import { ref, computed } from 'vue';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import localeData from '../../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.mjs';
|
|
4
|
+
import { clone } from 'ramda';
|
|
5
|
+
import { useLocale } from 'element-plus';
|
|
6
|
+
import '../util/index.mjs';
|
|
7
|
+
import { rangeArr, getCurWeekDates, isToday, isTimeGreaterThan, isDateInCurWeek, handleBkColor, handleTimeRange, handleEVentClick } from '../util/util.mjs';
|
|
8
|
+
|
|
9
|
+
"use strict";
|
|
10
|
+
const useCalendarMonth = (props, emit) => {
|
|
11
|
+
dayjs.extend(localeData);
|
|
12
|
+
const firstDayOfWeek = dayjs.localeData().firstDayOfWeek();
|
|
13
|
+
const { lang } = useLocale();
|
|
14
|
+
const now = dayjs().locale(lang.value);
|
|
15
|
+
const rows = ref([]);
|
|
16
|
+
const multiple = computed(() => props.multiple === true);
|
|
17
|
+
const selectedData = ref([]);
|
|
18
|
+
const popVisible = ref(true);
|
|
19
|
+
const tableTd = ref();
|
|
20
|
+
const legends = ref([]);
|
|
21
|
+
const selectedDay = ref();
|
|
22
|
+
const hideHeader = computed(() => props.hideHeader);
|
|
23
|
+
const isInRange = computed(() => !!props.range && !!props.range.length);
|
|
24
|
+
const weekDays = computed(() => {
|
|
25
|
+
const start = firstDayOfWeek;
|
|
26
|
+
let tempValue;
|
|
27
|
+
const tempWeeks = [
|
|
28
|
+
"sunday",
|
|
29
|
+
"monday",
|
|
30
|
+
"tuesday",
|
|
31
|
+
"wednesday",
|
|
32
|
+
"thursday",
|
|
33
|
+
"friday",
|
|
34
|
+
"saturday"
|
|
35
|
+
];
|
|
36
|
+
if (start === 0) {
|
|
37
|
+
tempValue = tempWeeks.map((item) => {
|
|
38
|
+
return ibiz.i18n.t("control.calendar.calendarmonth.weeks.".concat(item));
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
tempValue = tempWeeks.slice(start).concat(tempWeeks.slice(0, start)).map((item) => {
|
|
42
|
+
return ibiz.i18n.t("control.calendar.calendarmonth.weeks.".concat(item));
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return tempValue;
|
|
46
|
+
});
|
|
47
|
+
const getPrevMonthLastDays = (date, count) => {
|
|
48
|
+
const lastDay = date.subtract(1, "month").endOf("month").date();
|
|
49
|
+
return rangeArr(count).map(
|
|
50
|
+
(_, index) => lastDay - (count - index - 1)
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
const getMonthDays = (date) => {
|
|
54
|
+
const days = date.daysInMonth();
|
|
55
|
+
return rangeArr(days).map((_, index) => index + 1);
|
|
56
|
+
};
|
|
57
|
+
const toNestedArr = (days) => rangeArr(days.length / 7).map((index) => {
|
|
58
|
+
const start = index * 7;
|
|
59
|
+
return days.slice(start, start + 7);
|
|
60
|
+
});
|
|
61
|
+
const isDateRange = (curDate, event) => {
|
|
62
|
+
const startDate = new Date(event == null ? void 0 : event.beginTime);
|
|
63
|
+
const endDate = new Date(event == null ? void 0 : event.endTime);
|
|
64
|
+
startDate.setHours(0, 0, 0, 0);
|
|
65
|
+
endDate.setHours(0, 0, 0, 0);
|
|
66
|
+
return curDate && (event == null ? void 0 : event.beginTime) && (event == null ? void 0 : event.endTime) && curDate.getTime() <= new Date(endDate).getTime() && curDate.getTime() >= new Date(startDate).getTime() && startDate.getTime() !== endDate.getTime();
|
|
67
|
+
};
|
|
68
|
+
const handleCurDayEvent = (curDate, events, td) => {
|
|
69
|
+
let tempEvents = [];
|
|
70
|
+
const tempArray = [];
|
|
71
|
+
const todayEvents = [];
|
|
72
|
+
const rangeEvents = [];
|
|
73
|
+
const tempColors = /* @__PURE__ */ new Map();
|
|
74
|
+
const { firstDay, lastDay } = getCurWeekDates(curDate);
|
|
75
|
+
events.forEach((event) => {
|
|
76
|
+
const tempEvent = {};
|
|
77
|
+
Object.assign(tempEvent, event);
|
|
78
|
+
if (curDate && event.beginTime) {
|
|
79
|
+
if (!(event == null ? void 0 : event.endTime)) {
|
|
80
|
+
Object.assign(tempEvent, { endTime: event.beginTime });
|
|
81
|
+
}
|
|
82
|
+
if (isToday(tempEvent == null ? void 0 : tempEvent.beginTime, curDate) && isToday(tempEvent.beginTime, tempEvent.endTime)) {
|
|
83
|
+
todayEvents.push(tempEvent);
|
|
84
|
+
} else if (curDate && isDateRange(curDate, tempEvent)) {
|
|
85
|
+
Object.assign(tempEvent, { isRange: true });
|
|
86
|
+
rangeEvents.push(tempEvent);
|
|
87
|
+
} else if (!isToday(tempEvent.beginTime, tempEvent.endTime) && isTimeGreaterThan(curDate, tempEvent.beginTime) && (isDateInCurWeek(tempEvent.beginTime, firstDay, lastDay) || isDateInCurWeek(tempEvent.endTime, firstDay, lastDay))) {
|
|
88
|
+
Object.assign(tempEvent, { isShow: false });
|
|
89
|
+
rangeEvents.push(tempEvent);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
rangeEvents.sort((a, b) => {
|
|
94
|
+
const type = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
|
|
95
|
+
return type;
|
|
96
|
+
});
|
|
97
|
+
todayEvents.sort((a, b) => {
|
|
98
|
+
const type = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
|
|
99
|
+
return type;
|
|
100
|
+
});
|
|
101
|
+
tempEvents = tempEvents.concat(rangeEvents, todayEvents);
|
|
102
|
+
tempEvents.forEach((event, index) => {
|
|
103
|
+
handleBkColor(tempColors, event.itemType);
|
|
104
|
+
const legendIndex = legends.value.findIndex(
|
|
105
|
+
(legendItem) => Object.is(legendItem.id, event.itemType)
|
|
106
|
+
);
|
|
107
|
+
const targetEvent = selectedData.value.find(
|
|
108
|
+
(item) => item.id === event.id
|
|
109
|
+
);
|
|
110
|
+
const tempEvent = {};
|
|
111
|
+
Object.assign(tempEvent, event);
|
|
112
|
+
Object.assign(tempEvent, {
|
|
113
|
+
beginTime: event.beginTime,
|
|
114
|
+
end: event.endTime,
|
|
115
|
+
id: event.id
|
|
116
|
+
});
|
|
117
|
+
if (event.endTime) {
|
|
118
|
+
const format = isToday(event == null ? void 0 : event.beginTime, event.endTime) ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD";
|
|
119
|
+
const timeRange = handleTimeRange(
|
|
120
|
+
event.beginTime,
|
|
121
|
+
event.endTime,
|
|
122
|
+
format,
|
|
123
|
+
"~"
|
|
124
|
+
);
|
|
125
|
+
Object.assign(tempEvent, { timeRange });
|
|
126
|
+
}
|
|
127
|
+
if (!(event == null ? void 0 : event.bkColor)) {
|
|
128
|
+
const bkColor = legendIndex !== -1 ? legends.value[legendIndex].bkcolor : handleBkColor(tempColors, event.itemType);
|
|
129
|
+
Object.assign(tempEvent, { bkColor });
|
|
130
|
+
}
|
|
131
|
+
if (!(event == null ? void 0 : event.color)) {
|
|
132
|
+
Object.assign(tempEvent, { color: "#FFF" });
|
|
133
|
+
}
|
|
134
|
+
if (isToday(event == null ? void 0 : event.beginTime, curDate) && isToday(event == null ? void 0 : event.beginTime, event == null ? void 0 : event.endTime)) {
|
|
135
|
+
Object.assign(tempEvent, { isToday: true });
|
|
136
|
+
}
|
|
137
|
+
if (isDateRange(curDate, event) && (curDate.getDay() === 0 || isToday(event == null ? void 0 : event.beginTime, curDate))) {
|
|
138
|
+
if (td && index < 3) {
|
|
139
|
+
const currentDay = curDate.getDay();
|
|
140
|
+
const saturdayDate = new Date(curDate);
|
|
141
|
+
saturdayDate.setDate(curDate.getDate() + (6 - currentDay));
|
|
142
|
+
const endDate = new Date(event == null ? void 0 : event.endTime);
|
|
143
|
+
let week = 1;
|
|
144
|
+
if (currentDay === 0) {
|
|
145
|
+
if (endDate.getTime() > saturdayDate.getTime() || isToday(endDate, saturdayDate)) {
|
|
146
|
+
week = 7;
|
|
147
|
+
} else {
|
|
148
|
+
week = endDate.getDay() + 1;
|
|
149
|
+
}
|
|
150
|
+
} else if (endDate.getTime() > saturdayDate.getTime()) {
|
|
151
|
+
week = 7 - currentDay;
|
|
152
|
+
} else {
|
|
153
|
+
week = endDate.getDay() - currentDay;
|
|
154
|
+
week += 1;
|
|
155
|
+
}
|
|
156
|
+
const tempWidth = week * 100;
|
|
157
|
+
let tempVal = 0;
|
|
158
|
+
const fillUp = week - 1;
|
|
159
|
+
let widthDifference = 0;
|
|
160
|
+
if (currentDay === 0) {
|
|
161
|
+
widthDifference = 5;
|
|
162
|
+
tempVal += widthDifference * fillUp;
|
|
163
|
+
if (endDate.getTime() > saturdayDate.getTime()) {
|
|
164
|
+
tempVal += 3;
|
|
165
|
+
} else {
|
|
166
|
+
tempVal += 2;
|
|
167
|
+
}
|
|
168
|
+
} else if (week > 1) {
|
|
169
|
+
widthDifference = 4;
|
|
170
|
+
tempVal += widthDifference * fillUp;
|
|
171
|
+
}
|
|
172
|
+
const width = "calc(".concat(tempWidth, "% + ").concat(tempVal, "px)");
|
|
173
|
+
Object.assign(tempEvent, { width });
|
|
174
|
+
}
|
|
175
|
+
Object.assign(tempEvent, { isShow: true });
|
|
176
|
+
}
|
|
177
|
+
if (targetEvent) {
|
|
178
|
+
Object.assign(tempEvent, { isSelectedEvent: true });
|
|
179
|
+
} else {
|
|
180
|
+
Object.assign(tempEvent, { isSelectedEvent: false });
|
|
181
|
+
}
|
|
182
|
+
if (legendIndex !== -1 && legends.value[legendIndex].isShow || legendIndex === -1) {
|
|
183
|
+
tempArray.push(tempEvent);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
tempColors.clear();
|
|
187
|
+
return tempArray;
|
|
188
|
+
};
|
|
189
|
+
const handleMonthDraw = () => {
|
|
190
|
+
let days = [];
|
|
191
|
+
if (isInRange.value) {
|
|
192
|
+
const [start, end] = props.range;
|
|
193
|
+
const currentMonthRange = rangeArr(
|
|
194
|
+
end.date() - start.date() + 1
|
|
195
|
+
).map((index) => {
|
|
196
|
+
const curDate = new Date(
|
|
197
|
+
start.year(),
|
|
198
|
+
start.month(),
|
|
199
|
+
start.date() + index
|
|
200
|
+
);
|
|
201
|
+
const curDayEvents = handleCurDayEvent(
|
|
202
|
+
curDate,
|
|
203
|
+
props.events,
|
|
204
|
+
tableTd.value
|
|
205
|
+
);
|
|
206
|
+
return {
|
|
207
|
+
text: start.date() + index,
|
|
208
|
+
type: "current",
|
|
209
|
+
events: curDayEvents,
|
|
210
|
+
curDate: dayjs(curDate)
|
|
211
|
+
};
|
|
212
|
+
});
|
|
213
|
+
let remaining = currentMonthRange.length % 7;
|
|
214
|
+
remaining = remaining === 0 ? 0 : 7 - remaining;
|
|
215
|
+
const nextMonthRange = rangeArr(remaining).map(
|
|
216
|
+
(_, index) => {
|
|
217
|
+
const curDate = new Date(start.year(), start.month() + 1, index + 1);
|
|
218
|
+
const curDayEvents = handleCurDayEvent(
|
|
219
|
+
curDate,
|
|
220
|
+
props.events,
|
|
221
|
+
tableTd.value
|
|
222
|
+
);
|
|
223
|
+
return {
|
|
224
|
+
text: index + 1,
|
|
225
|
+
type: "next",
|
|
226
|
+
events: curDayEvents,
|
|
227
|
+
curDate: dayjs(curDate)
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
);
|
|
231
|
+
days = currentMonthRange.concat(nextMonthRange);
|
|
232
|
+
} else {
|
|
233
|
+
const firstDay = props.date.startOf("month").day();
|
|
234
|
+
const prevMonthDays = getPrevMonthLastDays(
|
|
235
|
+
props.date,
|
|
236
|
+
(firstDay - firstDayOfWeek + 7) % 7
|
|
237
|
+
).map((day) => {
|
|
238
|
+
const curDate = new Date(
|
|
239
|
+
props.date.year(),
|
|
240
|
+
props.date.month() - 1,
|
|
241
|
+
day
|
|
242
|
+
);
|
|
243
|
+
const curDayEvents = handleCurDayEvent(
|
|
244
|
+
curDate,
|
|
245
|
+
props.events,
|
|
246
|
+
tableTd.value
|
|
247
|
+
);
|
|
248
|
+
return {
|
|
249
|
+
text: day,
|
|
250
|
+
type: "prev",
|
|
251
|
+
events: curDayEvents,
|
|
252
|
+
curDate: dayjs(curDate)
|
|
253
|
+
};
|
|
254
|
+
});
|
|
255
|
+
const currentMonthDays = getMonthDays(props.date).map(
|
|
256
|
+
(day) => {
|
|
257
|
+
const curDate = new Date(props.date.year(), props.date.month(), day);
|
|
258
|
+
const curDayEvents = handleCurDayEvent(
|
|
259
|
+
curDate,
|
|
260
|
+
props.events,
|
|
261
|
+
tableTd.value
|
|
262
|
+
);
|
|
263
|
+
return {
|
|
264
|
+
text: day,
|
|
265
|
+
type: "current",
|
|
266
|
+
events: curDayEvents,
|
|
267
|
+
curDate: dayjs(curDate)
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
days = [...prevMonthDays, ...currentMonthDays];
|
|
272
|
+
const remaining = 7 - (days.length % 7 || 7);
|
|
273
|
+
const nextMonthDays = rangeArr(remaining).map(
|
|
274
|
+
(_, index) => {
|
|
275
|
+
const curDate = new Date(
|
|
276
|
+
props.date.year(),
|
|
277
|
+
props.date.month() + 1,
|
|
278
|
+
index + 1
|
|
279
|
+
);
|
|
280
|
+
const curDayEvents = handleCurDayEvent(
|
|
281
|
+
curDate,
|
|
282
|
+
props.events,
|
|
283
|
+
tableTd.value
|
|
284
|
+
);
|
|
285
|
+
return {
|
|
286
|
+
text: index + 1,
|
|
287
|
+
type: "next",
|
|
288
|
+
events: curDayEvents,
|
|
289
|
+
curDate: dayjs(curDate)
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
);
|
|
293
|
+
days = days.concat(nextMonthDays);
|
|
294
|
+
}
|
|
295
|
+
rows.value = toNestedArr(days);
|
|
296
|
+
};
|
|
297
|
+
const getFormattedDate = (day, type) => {
|
|
298
|
+
switch (type) {
|
|
299
|
+
case "prev":
|
|
300
|
+
return props.date.startOf("month").subtract(1, "month").date(day);
|
|
301
|
+
case "next":
|
|
302
|
+
return props.date.startOf("month").add(1, "month").date(day);
|
|
303
|
+
case "current":
|
|
304
|
+
return props.date.date(day);
|
|
305
|
+
default:
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
const handlePickDay = ({ text, type }) => {
|
|
310
|
+
const date = getFormattedDate(text, type);
|
|
311
|
+
selectedDay.value = date;
|
|
312
|
+
if (type === "prev" || type === "next") {
|
|
313
|
+
emit("pickEvent", date);
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
const getSlotData = ({ text, type, events }) => {
|
|
317
|
+
const day = getFormattedDate(text, type);
|
|
318
|
+
return {
|
|
319
|
+
isSelected: day.isSame(props.selectedDay),
|
|
320
|
+
type: "".concat(type, "-month"),
|
|
321
|
+
day: day.format("YYYY-MM-DD"),
|
|
322
|
+
date: day.toDate(),
|
|
323
|
+
events
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
const getCellClass = ({ text, type }) => {
|
|
327
|
+
const classes = [type];
|
|
328
|
+
if (type === "current") {
|
|
329
|
+
const date = getFormattedDate(text, type);
|
|
330
|
+
if (date.isSame(selectedDay.value, "day")) {
|
|
331
|
+
classes.push("is-selected");
|
|
332
|
+
}
|
|
333
|
+
if (date.isSame(now, "day")) {
|
|
334
|
+
classes.push("is-today");
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return classes;
|
|
338
|
+
};
|
|
339
|
+
const eventClick = async (item, location) => {
|
|
340
|
+
const res = await handleEVentClick(
|
|
341
|
+
item,
|
|
342
|
+
location,
|
|
343
|
+
props.events,
|
|
344
|
+
multiple.value,
|
|
345
|
+
selectedData.value,
|
|
346
|
+
emit
|
|
347
|
+
);
|
|
348
|
+
const { tempSelectedData } = res;
|
|
349
|
+
selectedData.value = tempSelectedData;
|
|
350
|
+
handleMonthDraw();
|
|
351
|
+
};
|
|
352
|
+
const handleEventsMoreData = (cell) => {
|
|
353
|
+
let events = clone(cell.events);
|
|
354
|
+
const { curDate } = cell;
|
|
355
|
+
const tempEvents = [];
|
|
356
|
+
events = events.splice(3, events.length);
|
|
357
|
+
events.forEach((event) => {
|
|
358
|
+
if (curDate && isDateRange(new Date(curDate), event) || isToday(event.beginTime, event.endTime)) {
|
|
359
|
+
tempEvents.push(event);
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
return tempEvents;
|
|
363
|
+
};
|
|
364
|
+
return {
|
|
365
|
+
isInRange,
|
|
366
|
+
rows,
|
|
367
|
+
weekDays,
|
|
368
|
+
hideHeader,
|
|
369
|
+
tableTd,
|
|
370
|
+
legends,
|
|
371
|
+
selectedDay,
|
|
372
|
+
selectedData,
|
|
373
|
+
popVisible,
|
|
374
|
+
getFormattedDate,
|
|
375
|
+
handlePickDay,
|
|
376
|
+
getSlotData,
|
|
377
|
+
getCellClass,
|
|
378
|
+
eventClick,
|
|
379
|
+
handleMonthDraw,
|
|
380
|
+
handleEventsMoreData
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
export { useCalendarMonth };
|
|
@@ -0,0 +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:12px 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;line-height:30px;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)}}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import './calendar-week.scss';
|
|
2
|
+
export declare const CalendarWeek: import("vue").DefineComponent<IParams, {
|
|
3
|
+
ns: import("@ibiz-template/core").Namespace;
|
|
4
|
+
calendarWeek: import("vue").Ref<any>;
|
|
5
|
+
renderHeader: () => JSX.Element;
|
|
6
|
+
renderContent: () => JSX.Element;
|
|
7
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
+
pick: (value: import("dayjs").Dayjs) => boolean;
|
|
9
|
+
eventClick: (value: IParams) => IParams;
|
|
10
|
+
eventDblClick: (value: IParams) => IParams;
|
|
11
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<IParams>> & {
|
|
12
|
+
onEventClick?: ((value: IParams) => any) | undefined;
|
|
13
|
+
onEventDblClick?: ((value: IParams) => any) | undefined;
|
|
14
|
+
onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
[x: string]: any;
|
|
17
|
+
[x: symbol]: any;
|
|
18
|
+
}, {}>;
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { ref, watch, onMounted, onUnmounted, createVNode, resolveComponent, defineComponent } from 'vue';
|
|
2
|
+
import { useNamespace } from '@ibiz-template/vue3-util';
|
|
3
|
+
import '../interface/index.mjs';
|
|
4
|
+
import { useCalendarWeek } from './use-calendar-week.mjs';
|
|
5
|
+
import './calendar-week.css';
|
|
6
|
+
import '../util/index.mjs';
|
|
7
|
+
import { calendarWeekProps, calendarWeekEmits } from '../interface/calendar-week.mjs';
|
|
8
|
+
import { handlePopClose, closeIcon } from '../util/util.mjs';
|
|
9
|
+
|
|
10
|
+
"use strict";
|
|
11
|
+
const CalendarWeek = /* @__PURE__ */ defineComponent({
|
|
12
|
+
name: "CalendarWeek",
|
|
13
|
+
props: calendarWeekProps,
|
|
14
|
+
emits: calendarWeekEmits,
|
|
15
|
+
setup(props, {
|
|
16
|
+
emit,
|
|
17
|
+
slots
|
|
18
|
+
}) {
|
|
19
|
+
const ns = useNamespace("calendar-week");
|
|
20
|
+
const {
|
|
21
|
+
drawData,
|
|
22
|
+
resizableHand,
|
|
23
|
+
rows,
|
|
24
|
+
weekDays,
|
|
25
|
+
curTimeTimer,
|
|
26
|
+
calendarWeek,
|
|
27
|
+
selectedData,
|
|
28
|
+
legends,
|
|
29
|
+
rowsHeader,
|
|
30
|
+
popVisible,
|
|
31
|
+
eventClick,
|
|
32
|
+
handleDrag,
|
|
33
|
+
handleDragStart,
|
|
34
|
+
handleCurTime,
|
|
35
|
+
initDrawData,
|
|
36
|
+
handleUIEvents
|
|
37
|
+
} = useCalendarWeek(props, emit);
|
|
38
|
+
const hoverItem = ref("");
|
|
39
|
+
props.controller._evt.on("onActive", () => {
|
|
40
|
+
popVisible.value = false;
|
|
41
|
+
});
|
|
42
|
+
watch(() => props.selectedData, () => {
|
|
43
|
+
if (props.selectedData && props.selectedData.length > 0) {
|
|
44
|
+
const data = props.selectedData.length > selectedData.value.length ? props.selectedData : selectedData.value;
|
|
45
|
+
selectedData.value = data;
|
|
46
|
+
} else {
|
|
47
|
+
selectedData.value = [];
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
immediate: true,
|
|
51
|
+
deep: true
|
|
52
|
+
});
|
|
53
|
+
watch(() => props.legends, () => {
|
|
54
|
+
legends.value = props.legends || [];
|
|
55
|
+
handleUIEvents();
|
|
56
|
+
}, {
|
|
57
|
+
immediate: true,
|
|
58
|
+
deep: true
|
|
59
|
+
});
|
|
60
|
+
watch(() => props.events, () => {
|
|
61
|
+
handleUIEvents();
|
|
62
|
+
}, {
|
|
63
|
+
immediate: true,
|
|
64
|
+
deep: true
|
|
65
|
+
});
|
|
66
|
+
onMounted(() => {
|
|
67
|
+
handleCurTime();
|
|
68
|
+
drawData.value = initDrawData();
|
|
69
|
+
curTimeTimer.value = setInterval(() => handleCurTime(), 1e3);
|
|
70
|
+
});
|
|
71
|
+
onUnmounted(() => {
|
|
72
|
+
const timer = curTimeTimer.value;
|
|
73
|
+
if (timer) {
|
|
74
|
+
clearInterval(timer);
|
|
75
|
+
curTimeTimer.value = null;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
const onMouseenter = (event) => {
|
|
79
|
+
hoverItem.value = String(event.id);
|
|
80
|
+
popVisible.value = true;
|
|
81
|
+
};
|
|
82
|
+
const onMouseleavee = () => {
|
|
83
|
+
hoverItem.value = "";
|
|
84
|
+
popVisible.value = false;
|
|
85
|
+
};
|
|
86
|
+
const renderEventItem = (location, eventBoxStyle, eventContentStyle, event, index, slotNme, classEName) => {
|
|
87
|
+
var _a;
|
|
88
|
+
return createVNode("div", {
|
|
89
|
+
"key": index,
|
|
90
|
+
"class": [ns.em(classEName, "event-box")],
|
|
91
|
+
"style": eventBoxStyle,
|
|
92
|
+
"onMouseenter": () => onMouseenter(event),
|
|
93
|
+
"onMouseleave": onMouseleavee
|
|
94
|
+
}, [createVNode("button", {
|
|
95
|
+
"class": [ns.em(classEName, "event-content"), event.isSelectedEvent ? "is-selected-event" : "", event.classname],
|
|
96
|
+
"onClick": () => eventClick(event, "head"),
|
|
97
|
+
"style": eventContentStyle
|
|
98
|
+
}, [slots[slotNme] ? (_a = slots[slotNme]) == null ? void 0 : _a.call(slots, {
|
|
99
|
+
data: event
|
|
100
|
+
}) : createVNode("div", {
|
|
101
|
+
"class": [ns.em(classEName, "event-summary"), event.classname],
|
|
102
|
+
"title": location === "header" ? "".concat(event.text || "", " ").concat(event.timeRange || "") : ""
|
|
103
|
+
}, [event.icon && createVNode("span", {
|
|
104
|
+
"class": [event.icon, ns.em(classEName, "event-icon")],
|
|
105
|
+
"style": {
|
|
106
|
+
color: event.bkColor
|
|
107
|
+
}
|
|
108
|
+
}, null), event.text && createVNode("span", {
|
|
109
|
+
"class": [ns.em(classEName, "event-name")]
|
|
110
|
+
}, [event.text])]), location === "header" && event.isSelectedEvent ? createVNode("span", {
|
|
111
|
+
"class": ["fa fa-check", ns.em(classEName, "check")]
|
|
112
|
+
}, null) : ""])]);
|
|
113
|
+
};
|
|
114
|
+
const renderPopover = (content, event) => {
|
|
115
|
+
if (!props.controller.state.showDetail) {
|
|
116
|
+
return content;
|
|
117
|
+
}
|
|
118
|
+
return createVNode(resolveComponent("el-popover"), {
|
|
119
|
+
"visible": popVisible.value && event.id === hoverItem.value,
|
|
120
|
+
"show-after": 1e3,
|
|
121
|
+
"offset": 4,
|
|
122
|
+
"width": "auto",
|
|
123
|
+
"popper-class": ns.e("event-popover"),
|
|
124
|
+
"placement": "right-start"
|
|
125
|
+
}, {
|
|
126
|
+
reference: () => content,
|
|
127
|
+
default: () => {
|
|
128
|
+
var _a;
|
|
129
|
+
return createVNode("div", {
|
|
130
|
+
"class": [ns.em("event-popover", "body")]
|
|
131
|
+
}, [createVNode("div", {
|
|
132
|
+
"class": [ns.em("event-popover", "close")],
|
|
133
|
+
"onClick": (el) => handlePopClose(el),
|
|
134
|
+
"innerHTML": closeIcon
|
|
135
|
+
}, null), createVNode("div", {
|
|
136
|
+
"class": [ns.em("event-popover", "scroll")]
|
|
137
|
+
}, [(slots == null ? void 0 : slots.event) ? (_a = slots.event) == null ? void 0 : _a.call(slots, {
|
|
138
|
+
data: event
|
|
139
|
+
}) : createVNode("div", {
|
|
140
|
+
"class": [ns.em("event-popover", "content")]
|
|
141
|
+
}, ["".concat(event.text || "", " ").concat(event.timeRange || "")])])]);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const renderHeader = () => {
|
|
146
|
+
return createVNode("div", {
|
|
147
|
+
"class": [ns.e("header")],
|
|
148
|
+
"ref": (el) => {
|
|
149
|
+
resizableHand.value = el;
|
|
150
|
+
}
|
|
151
|
+
}, [createVNode("div", {
|
|
152
|
+
"class": [ns.em("header", "dates")]
|
|
153
|
+
}, [createVNode("div", {
|
|
154
|
+
"class": [ns.em("header", "date-cell-first")]
|
|
155
|
+
}, null), weekDays.value.map((weekDay) => createVNode("div", {
|
|
156
|
+
"class": [ns.em("header", "date-cell")]
|
|
157
|
+
}, [createVNode("div", {
|
|
158
|
+
"class": [ns.em("header", "date-week")]
|
|
159
|
+
}, [weekDay.caption]), createVNode("div", {
|
|
160
|
+
"class": [ns.em("header", "date-day"), weekDay.isActivate ? "is-today" : ""]
|
|
161
|
+
}, [weekDay.day])]))]), createVNode("div", {
|
|
162
|
+
"class": [ns.em("header", "events")]
|
|
163
|
+
}, [createVNode("div", {
|
|
164
|
+
"class": [ns.em("header", "event-cell-first")]
|
|
165
|
+
}, [ibiz.i18n.t("control.calendar.calendardaily.tip")]), rowsHeader.value.map((item) => createVNode("div", {
|
|
166
|
+
"class": [ns.em("header", "event-cell")]
|
|
167
|
+
}, [item.map((event, index) => {
|
|
168
|
+
const eventBoxStyle = {
|
|
169
|
+
top: "".concat(Number(index * 26) + 2, "px"),
|
|
170
|
+
left: "".concat(event.styleLeft),
|
|
171
|
+
width: "".concat(event == null ? void 0 : event.width)
|
|
172
|
+
};
|
|
173
|
+
const eventContentStyle = {
|
|
174
|
+
color: event.color,
|
|
175
|
+
background: event.bkColorFade
|
|
176
|
+
};
|
|
177
|
+
return event.isShow ? renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "header") : "";
|
|
178
|
+
})]))]), createVNode("div", {
|
|
179
|
+
"class": ns.em("header", "resizable-handle"),
|
|
180
|
+
"draggable": "true",
|
|
181
|
+
"onDrag": (event) => handleDrag(event),
|
|
182
|
+
"onDragstart": (event) => handleDragStart(event)
|
|
183
|
+
}, [createVNode("div", {
|
|
184
|
+
"class": ns.em("header", "resize-line")
|
|
185
|
+
}, null)])]);
|
|
186
|
+
};
|
|
187
|
+
const renderContent = () => {
|
|
188
|
+
return createVNode("div", {
|
|
189
|
+
"class": [ns.e("scroll-area")]
|
|
190
|
+
}, [createVNode("div", {
|
|
191
|
+
"class": ns.e("time-pane")
|
|
192
|
+
}, [createVNode("div", {
|
|
193
|
+
"class": ns.em("time-pane", "time-labels")
|
|
194
|
+
}, [drawData.value.map((timescale) => createVNode("div", {
|
|
195
|
+
"key": timescale,
|
|
196
|
+
"class": [ns.em("time-pane", "time-label")]
|
|
197
|
+
}, [timescale]))]), rows.value.map((item) => createVNode("div", {
|
|
198
|
+
"class": ns.em("time-pane", "time-columns")
|
|
199
|
+
}, [drawData.value.map((timescale, index) => createVNode("div", {
|
|
200
|
+
"key": timescale,
|
|
201
|
+
"class": [ns.em("time-pane", "time-column"), index === drawData.value.length - 1 && ns.em("time-pane", "time-column-last")]
|
|
202
|
+
}, null)), createVNode("div", {
|
|
203
|
+
"class": ns.em("time-pane", "event-timed-container")
|
|
204
|
+
}, [createVNode("div", {
|
|
205
|
+
"class": ns.em("time-pane", "container-scroll")
|
|
206
|
+
}, [item.map((event, index) => {
|
|
207
|
+
const eventBoxStyle = {
|
|
208
|
+
top: "".concat(event.styleTop, "px"),
|
|
209
|
+
left: "".concat(event.styleLeft),
|
|
210
|
+
height: "".concat(event.height, "px"),
|
|
211
|
+
width: "".concat(event.width),
|
|
212
|
+
"min-height": "".concat(event.height, "px"),
|
|
213
|
+
"z-index": event.zIndex
|
|
214
|
+
};
|
|
215
|
+
const eventContentStyle = {
|
|
216
|
+
background: event.bkColorFade,
|
|
217
|
+
"border-left": "3px solid ".concat(event.bkColor),
|
|
218
|
+
color: event.color
|
|
219
|
+
};
|
|
220
|
+
const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "", "time-pane");
|
|
221
|
+
return renderPopover(tempContent, event);
|
|
222
|
+
})])])]))])]);
|
|
223
|
+
};
|
|
224
|
+
return {
|
|
225
|
+
ns,
|
|
226
|
+
calendarWeek,
|
|
227
|
+
renderHeader,
|
|
228
|
+
renderContent
|
|
229
|
+
};
|
|
230
|
+
},
|
|
231
|
+
render() {
|
|
232
|
+
return createVNode("div", {
|
|
233
|
+
"ref": (el) => {
|
|
234
|
+
this.calendarWeek = el;
|
|
235
|
+
},
|
|
236
|
+
"class": this.ns.b()
|
|
237
|
+
}, [this.renderHeader(), this.renderContent()]);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
export { CalendarWeek };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const IBizCalendarWeek: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<IParams, {
|
|
2
|
+
ns: import("@ibiz-template/core").Namespace;
|
|
3
|
+
calendarWeek: import("vue").Ref<any>;
|
|
4
|
+
renderHeader: () => JSX.Element;
|
|
5
|
+
renderContent: () => JSX.Element;
|
|
6
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
pick: (value: import("dayjs").Dayjs) => boolean;
|
|
8
|
+
eventClick: (value: IParams) => IParams;
|
|
9
|
+
eventDblClick: (value: IParams) => IParams;
|
|
10
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<IParams>> & {
|
|
11
|
+
onEventClick?: ((value: IParams) => any) | undefined;
|
|
12
|
+
onEventDblClick?: ((value: IParams) => any) | undefined;
|
|
13
|
+
onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
[x: string]: any;
|
|
16
|
+
[x: symbol]: any;
|
|
17
|
+
}, {}>>;
|
|
18
|
+
export default IBizCalendarWeek;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { withInstall } from '@ibiz-template/vue3-util';
|
|
2
|
+
import { CalendarWeek } from './calendar-week.mjs';
|
|
3
|
+
|
|
4
|
+
"use strict";
|
|
5
|
+
const IBizCalendarWeek = withInstall(CalendarWeek, function(v) {
|
|
6
|
+
v.component(CalendarWeek.name, CalendarWeek);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export { IBizCalendarWeek, IBizCalendarWeek as default };
|