Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2b62b9e

Browse files
authored
Merge pull request#737 from lowcoder-org/dev
Dev -> Main - v2.3.1 Fix
2 parents86100fe +f31c4f9 commit2b62b9e

File tree

68 files changed

+1679
-530
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1679
-530
lines changed

‎.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"workbench.colorCustomizations": {
3+
"activityBar.background":"#2A3012",
4+
"titleBar.activeBackground":"#3B431A",
5+
"titleBar.activeForeground":"#F9FAF2"
6+
}
7+
}

‎client/packages/lowcoder-comps/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
{
22
"name":"lowcoder-comps",
3-
"version":"0.0.24",
3+
"version":"0.0.26",
44
"type":"module",
55
"license":"MIT",
66
"dependencies": {
7+
"@fullcalendar/adaptive":"^6.1.11",
78
"@fullcalendar/core":"^6.1.6",
89
"@fullcalendar/daygrid":"^6.1.6",
910
"@fullcalendar/interaction":"^6.1.6",
1011
"@fullcalendar/list":"^6.1.9",
1112
"@fullcalendar/moment":"^6.1.6",
1213
"@fullcalendar/react":"^6.1.6",
14+
"@fullcalendar/resource":"^6.1.11",
15+
"@fullcalendar/resource-timegrid":"^6.1.11",
16+
"@fullcalendar/resource-timeline":"^6.1.11",
1317
"@fullcalendar/timegrid":"^6.1.6",
1418
"@types/react":"^18.2.45",
1519
"@types/react-dom":"^18.2.18",

‎client/packages/lowcoder-comps/src/comps/calendarComp/calendarComp.tsx

Lines changed: 94 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ import { default as Form } from "antd/es/form";
2626
import{defaultasInput}from"antd/es/input";
2727
import{trans,getCalendarLocale}from"../../i18n/comps";
2828
import{createRef,useContext,useRef,useState}from"react";
29+
importresourceTimelinePluginfrom"@fullcalendar/resource-timeline";
30+
importresourceTimeGridPluginfrom"@fullcalendar/resource-timegrid";
31+
importadaptivePluginfrom"@fullcalendar/adaptive";
32+
2933
importFullCalendarfrom"@fullcalendar/react";
3034
importdayGridPluginfrom"@fullcalendar/daygrid";
3135
importtimeGridPluginfrom"@fullcalendar/timegrid";
@@ -35,7 +39,8 @@ import allLocales from "@fullcalendar/core/locales-all";
3539
import{EventContentArg,DateSelectArg}from"@fullcalendar/core";
3640
importmomentPluginfrom"@fullcalendar/moment";
3741
import{
38-
DefaultViewOptions,
42+
DefaultWithFreeViewOptions,
43+
DefaultWithPremiumViewOptions,
3944
FirstDayOptions,
4045
Wrapper,
4146
Event,
@@ -52,20 +57,28 @@ import {
5257
}from"./calendarConstants";
5358
importdayjsfrom"dayjs";
5459

60+
functionfilterViews(){}
61+
5562
constchildrenMap={
5663
events:jsonValueExposingStateControl("events",defaultData),
5764
onEvent:ChangeEventHandlerControl,
5865

5966
editable:withDefault(BoolControl,true),
6067
defaultDate:withDefault(StringControl,"{{ new Date() }}"),
61-
defaultView:dropdownControl(DefaultViewOptions,"timeGridWeek"),
68+
defaultFreeView:dropdownControl(DefaultWithFreeViewOptions,"timeGridWeek"),
69+
defaultPremiumView:dropdownControl(
70+
DefaultWithPremiumViewOptions,
71+
"timeGridWeek"
72+
),
73+
6274
firstDay:dropdownControl(FirstDayOptions,"1"),
6375
showEventTime:withDefault(BoolControl,true),
6476
showWeekends:withDefault(BoolControl,true),
6577
showAllDay:withDefault(BoolControl,true),
6678
dayMaxEvents:withDefault(NumberControl,2),
6779
eventMaxStack:withDefault(NumberControl,0),
6880
style:styleControl(CalendarStyle),
81+
licenceKey:withDefault(StringControl,""),
6982
};
7083

7184
letCalendarBasicComp=(function(){
@@ -83,14 +96,17 @@ let CalendarBasicComp = (function () {
8396
start:dayjs(item.start,DateParser).format(),
8497
end:dayjs(item.end,DateParser).format(),
8598
allDay:item.allDay,
86-
color:isValidColor(item.color||"") ?item.color :theme?.theme?.primary,
99+
color:isValidColor(item.color||"")
100+
?item.color
101+
:theme?.theme?.primary,
87102
...(item.groupId ?{groupId:item.groupId} :null),
88103
};
89104
});
90105

91106
const{
92107
defaultDate,
93-
defaultView,
108+
defaultFreeView,
109+
defaultPremiumView,
94110
showEventTime,
95111
showWeekends,
96112
showAllDay,
@@ -99,13 +115,19 @@ let CalendarBasicComp = (function () {
99115
style,
100116
firstDay,
101117
editable,
118+
licenceKey,
102119
}=props;
103120

104121
functionrenderEventContent(eventInfo:EventContentArg){
105122
constisList=eventInfo.view.type==="listWeek";
106123
letsizeClass="";
107-
if([ViewType.WEEK,ViewType.DAY].includes(eventInfo.view.typeasViewType)){
108-
constduration=dayjs(eventInfo.event.end).diff(dayjs(eventInfo.event.start),"minutes");
124+
if(
125+
[ViewType.WEEK,ViewType.DAY].includes(eventInfo.view.typeasViewType)
126+
){
127+
constduration=dayjs(eventInfo.event.end).diff(
128+
dayjs(eventInfo.event.start),
129+
"minutes"
130+
);
109131
if(duration<=30||eventInfo.event.allDay){
110132
sizeClass="small";
111133
}elseif(duration<=60){
@@ -137,7 +159,9 @@ let CalendarBasicComp = (function () {
137159
onClick={(e)=>{
138160
e.stopPropagation();
139161
props.onEvent("change");
140-
constevent=events.filter((item:EventType)=>item.id!==eventInfo.event.id);
162+
constevent=events.filter(
163+
(item:EventType)=>item.id!==eventInfo.event.id
164+
);
141165
props.events.onChange(event);
142166
}}
143167
onMouseDown={(e)=>{
@@ -195,7 +219,9 @@ let CalendarBasicComp = (function () {
195219
};
196220

197221
constshowModal=(event:EventType,ifEdit:boolean)=>{
198-
constmodalTitle=ifEdit ?trans("calendar.editEvent") :trans("calendar.creatEvent");
222+
constmodalTitle=ifEdit
223+
?trans("calendar.editEvent")
224+
:trans("calendar.creatEvent");
199225
form&&form.setFieldsValue(event);
200226
consteventId=editEvent.current?.id;
201227
CustomModal.confirm({
@@ -209,14 +235,18 @@ let CalendarBasicComp = (function () {
209235
</Tooltip>
210236
}
211237
name="id"
212-
rules={[{required:true,message:trans("calendar.eventIdRequire")}]}
238+
rules={[
239+
{required:true,message:trans("calendar.eventIdRequire")},
240+
]}
213241
>
214242
<Input/>
215243
</Form.Item>
216244
<Form.Item
217245
label={trans("calendar.eventName")}
218246
name="title"
219-
rules={[{required:true,message:trans("calendar.eventNameRequire")}]}
247+
rules={[
248+
{required:true,message:trans("calendar.eventNameRequire")},
249+
]}
220250
>
221251
<Input/>
222252
</Form.Item>
@@ -239,9 +269,13 @@ let CalendarBasicComp = (function () {
239269
form.submit();
240270
returnform.validateFields().then(()=>{
241271
const{ id, groupId, color, title=""}=form.getFieldsValue();
242-
constidExist=props.events.value.findIndex((item:EventType)=>item.id===id);
272+
constidExist=props.events.value.findIndex(
273+
(item:EventType)=>item.id===id
274+
);
243275
if(idExist>-1&&id!==eventId){
244-
form.setFields([{name:"id",errors:[trans("calendar.eventIdExist")]}]);
276+
form.setFields([
277+
{name:"id",errors:[trans("calendar.eventIdExist")]},
278+
]);
245279
thrownewError();
246280
}
247281
if(ifEdit){
@@ -287,6 +321,10 @@ let CalendarBasicComp = (function () {
287321
}catch(error){
288322
initialDate=undefined;
289323
}
324+
letdefaultView=defaultFreeView;
325+
if(licenceKey!=""){
326+
defaultView=defaultPremiumView;
327+
}
290328

291329
return(
292330
<Wrapper
@@ -306,7 +344,16 @@ let CalendarBasicComp = (function () {
306344
locale={getCalendarLocale()}
307345
locales={allLocales}
308346
firstDay={Number(firstDay)}
309-
plugins={[dayGridPlugin,timeGridPlugin,interactionPlugin,listPlugin,momentPlugin]}
347+
plugins={[
348+
dayGridPlugin,
349+
timeGridPlugin,
350+
interactionPlugin,
351+
listPlugin,
352+
momentPlugin,
353+
resourceTimelinePlugin,
354+
resourceTimeGridPlugin,
355+
adaptivePlugin,
356+
]}
310357
headerToolbar={headerToolbar}
311358
moreLinkClick={(info)=>{
312359
letleft=0;
@@ -319,15 +366,19 @@ let CalendarBasicComp = (function () {
319366
}
320367
}else{
321368
if(info.allDay){
322-
left=ele.offsetParent?.parentElement?.parentElement?.offsetLeft||0;
369+
left=
370+
ele.offsetParent?.parentElement?.parentElement?.offsetLeft||
371+
0;
323372
}else{
324373
left=
325-
ele.offsetParent?.parentElement?.parentElement?.parentElement?.offsetLeft||0;
374+
ele.offsetParent?.parentElement?.parentElement?.parentElement
375+
?.offsetLeft||0;
326376
}
327377
}
328378
setLeft(left);
329379
}}
330380
buttonText={buttonText}
381+
schedulerLicenseKey={licenceKey}
331382
views={views}
332383
eventClassNames={()=>(!showEventTime ?"no-time" :"")}
333384
slotLabelFormat={slotLabelFormat}
@@ -346,7 +397,9 @@ let CalendarBasicComp = (function () {
346397
eventContent={renderEventContent}
347398
select={(info)=>handleCreate(info)}
348399
eventClick={(info)=>{
349-
constevent=events.find((item:EventType)=>item.id===info.event.id);
400+
constevent=events.find(
401+
(item:EventType)=>item.id===info.event.id
402+
);
350403
editEvent.current=event;
351404
setTimeout(()=>{
352405
editEvent.current=undefined;
@@ -385,10 +438,18 @@ let CalendarBasicComp = (function () {
385438
);
386439
})
387440
.setPropertyViewFn((children)=>{
441+
letlicence=children.licenceKey.getView();
388442
return(
389443
<>
390-
<Sectionname={sectionNames.basic}>{children.events.propertyView({})}</Section>
391-
<Sectionname={sectionNames.interaction}>{children.onEvent.getPropertyView()}</Section>
444+
<Sectionname={sectionNames.basic}>
445+
{children.events.propertyView({})}
446+
</Section>
447+
<Sectionname={sectionNames.interaction}>
448+
{children.licenceKey.propertyView({
449+
label:trans("calendar.licence"),
450+
})}
451+
{children.onEvent.getPropertyView()}
452+
</Section>
392453
<Sectionname={sectionNames.advanced}>
393454
{children.editable.propertyView({
394455
label:trans("calendar.editable"),
@@ -397,10 +458,15 @@ let CalendarBasicComp = (function () {
397458
label:trans("calendar.defaultDate"),
398459
tooltip:trans("calendar.defaultDateTooltip"),
399460
})}
400-
{children.defaultView.propertyView({
401-
label:trans("calendar.defaultView"),
402-
tooltip:trans("calendar.defaultViewTooltip"),
403-
})}
461+
{licence==""
462+
?children.defaultFreeView.propertyView({
463+
label:trans("calendar.defaultView"),
464+
tooltip:trans("calendar.defaultViewTooltip"),
465+
})
466+
:children.defaultPremiumView.propertyView({
467+
label:trans("calendar.defaultView"),
468+
tooltip:trans("calendar.defaultViewTooltip"),
469+
})}
404470
{children.firstDay.propertyView({
405471
label:trans("calendar.startWeek"),
406472
})}
@@ -424,8 +490,12 @@ let CalendarBasicComp = (function () {
424490
tooltip:trans("calendar.eventMaxStackTooltip"),
425491
})}
426492
</Section>
427-
<Sectionname={sectionNames.layout}>{hiddenPropertyView(children)}</Section>
428-
<Sectionname={sectionNames.style}>{children.style.getPropertyView()}</Section>
493+
<Sectionname={sectionNames.layout}>
494+
{hiddenPropertyView(children)}
495+
</Section>
496+
<Sectionname={sectionNames.style}>
497+
{children.style.getPropertyView()}
498+
</Section>
429499
</>
430500
);
431501
})

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp