Skip to content

Commit 66b527b

Browse files
fix events data mapping in calendar
1 parent 9afa178 commit 66b527b

File tree

2 files changed

+67
-22
lines changed

2 files changed

+67
-22
lines changed

client/packages/lowcoder-comps/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lowcoder-comps",
3-
"version": "2.4.18",
3+
"version": "2.4.19",
44
"type": "module",
55
"license": "MIT",
66
"dependencies": {

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

+66-21
Original file line numberDiff line numberDiff line change
@@ -84,34 +84,67 @@ function fixOldData(oldData: any) {
8484
if(!Boolean(oldData)) return;
8585
let {events, resourcesEvents, ...data } = oldData;
8686
let allEvents: any[] = [];
87+
let isDynamicEventData = false;
8788

8889
if (events && typeof events === 'string') {
89-
let eventsList = JSON.parse(events);
90-
if (eventsList && eventsList.length) {
91-
eventsList = eventsList?.map(event => {
92-
const {title, ...eventData} = event;
93-
return {
94-
...eventData,
95-
label: title, // replace title field with label
96-
}
97-
});
98-
allEvents = allEvents.concat(eventsList);
90+
try {
91+
let eventsList = JSON.parse(events);
92+
if (eventsList && eventsList.length) {
93+
eventsList = eventsList?.map(event => {
94+
const {title, ...eventData} = event;
95+
return {
96+
...eventData,
97+
label: title, // replace title field with label
98+
}
99+
});
100+
allEvents = allEvents.concat(eventsList);
101+
}
102+
} catch (_) {
103+
isDynamicEventData = true;
99104
}
100105
}
101106
if (resourcesEvents && typeof resourcesEvents === 'string') {
102-
let resourceEventsList = JSON.parse(resourcesEvents);
103-
if (resourceEventsList && resourceEventsList.length) {
104-
resourceEventsList = resourceEventsList?.map(event => {
105-
const {title, ...eventData} = event;
106-
return {
107-
...eventData,
108-
label: title, // replace title field with label
109-
}
110-
});
111-
allEvents = allEvents.concat(resourceEventsList);
112-
}
107+
try {
108+
let resourceEventsList = JSON.parse(resourcesEvents);
109+
if (resourceEventsList && resourceEventsList.length) {
110+
resourceEventsList = resourceEventsList?.map(event => {
111+
const {title, ...eventData} = event;
112+
return {
113+
...eventData,
114+
label: title, // replace title field with label
115+
}
116+
});
117+
allEvents = allEvents.concat(resourceEventsList);
118+
}
119+
} catch (_) {}
113120
}
114121

122+
if (isDynamicEventData) {
123+
return {
124+
...data,
125+
events: {
126+
manual: {
127+
manual: allEvents,
128+
},
129+
mapData: {
130+
data: events,
131+
mapData: {
132+
id: "{{item.id}}",
133+
label: "{{item.title}}",
134+
detail: "{{item.detail}}",
135+
start: "{{item.start}}",
136+
end: "{{item.end}}",
137+
color: "{{item.color}}",
138+
allDay: "{{item.allDay}}",
139+
groupId: "{{item.groupId}}",
140+
resourceId: "{{item.resourceId}}",
141+
}
142+
},
143+
optionType: "map",
144+
},
145+
};
146+
}
147+
115148
if (allEvents.length) {
116149
return {
117150
...data,
@@ -121,11 +154,23 @@ function fixOldData(oldData: any) {
121154
},
122155
mapData: {
123156
data: JSON.stringify(allEvents, null, 2),
157+
mapData: {
158+
id: "{{item.id}}",
159+
label: "{{item.title}}",
160+
detail: "{{item.detail}}",
161+
start: "{{item.start}}",
162+
end: "{{item.end}}",
163+
color: "{{item.color}}",
164+
allDay: "{{item.allDay}}",
165+
groupId: "{{item.groupId}}",
166+
resourceId: "{{item.resourceId}}",
167+
}
124168
},
125169
optionType: "manual",
126170
},
127171
};
128172
}
173+
129174
return {
130175
...data,
131176
events,

0 commit comments

Comments
 (0)