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

Commitd381f21

Browse files
authored
Merge pull request#1241 from lowcoder-org/dev
Dev > Main 2.4.10
2 parentsa43f807 +d632bbd commitd381f21

File tree

18 files changed

+44828
-523
lines changed

18 files changed

+44828
-523
lines changed

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

Lines changed: 1 addition & 1 deletion
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‎

Lines changed: 66 additions & 21 deletions
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
letallEvents:any[]=[];
87+
letisDynamicEventData=false;
8788

8889
if(events&&typeofevents==='string'){
89-
leteventsList=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+
leteventsList=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&&typeofresourcesEvents==='string'){
102-
letresourceEventsList=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+
letresourceEventsList=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,

‎client/packages/lowcoder/src/comps/comps/remoteComp/loaders.tsx‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ import {
88
}from"types/remoteComp";
99

1010
asyncfunctionnpmLoader(
11-
remoteInfo:RemoteCompInfo
11+
{
12+
appId,
13+
...remoteInfo
14+
}:RemoteCompInfo&{appId?:string}
1215
):Promise<CompConstructor|null>{
1316

1417
// Falk: removed "packageVersion = "latest" as default value fir packageVersion - to ensure no automatic version jumping.
1518
constlocalPackageVersion=remoteInfo.packageVersion||"latest";
1619
const{ packageName, packageVersion, compName}=remoteInfo;
17-
constentry=`${NPM_PLUGIN_ASSETS_BASE_URL}/${packageName}@${localPackageVersion}/index.js`;
20+
constentry=`${NPM_PLUGIN_ASSETS_BASE_URL}/${appId}/${packageName}@${localPackageVersion}/index.js`;
1821

1922
try{
2023
constmodule=awaitimport(
@@ -51,7 +54,7 @@ async function bundleLoader(
5154
returncomp;
5255
}
5356

54-
exportconstloaders:Record<RemoteCompSource,RemoteCompLoader>={
57+
exportconstloaders:Record<RemoteCompSource,RemoteCompLoader<RemoteCompInfo&{appId?:string}>>={
5558
npm:npmLoader,
5659
bundle:bundleLoader,
5760
};

‎client/packages/lowcoder/src/comps/comps/remoteComp/remoteComp.tsx‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { CompContext } from "@lowcoder-ee/comps/utils/compContext";
1616
importReactfrom"react";
1717
importtype{AppState}from"@lowcoder-ee/redux/reducers";
1818
import{useSelector}from"react-redux";
19+
import{useApplicationId}from"@lowcoder-ee/util/hooks";
1920

2021
constViewError=styled.div`
2122
display: flex;
@@ -51,7 +52,7 @@ interface RemoteCompReadyAction {
5152

5253
interfaceRemoteCompViewProps{
5354
isLowcoderComp?:boolean;
54-
loadComp:(packageVersion?:string)=>Promise<void>;
55+
loadComp:(packageVersion?:string,appId?:string)=>Promise<void>;
5556
loadingElement?:()=>React.ReactNode;
5657
errorElement?:(error:any)=>React.ReactNode;
5758
source?:RemoteCompSource;
@@ -62,6 +63,7 @@ const RemoteCompView = React.memo((props: React.PropsWithChildren<RemoteCompView
6263
const[error,setError]=useState<any>("");
6364
consteditorState=useContext(EditorContext);
6465
constcompState=useContext(CompContext);
66+
constappId=useApplicationId();
6567
constlowcoderCompPackageVersion=editorState?.getAppSettings().lowcoderCompVersion||'latest';
6668
constlatestLowcoderCompsVersion=useSelector((state:AppState)=>state.npmPlugin.packageVersion['lowcoder-comps']);
6769

@@ -79,7 +81,7 @@ const RemoteCompView = React.memo((props: React.PropsWithChildren<RemoteCompView
7981

8082
useMount(()=>{
8183
setError("");
82-
loadComp(packageVersion).catch((e)=>{
84+
loadComp(packageVersion,appId).catch((e)=>{
8385
setError(String(e));
8486
});
8587
});
@@ -117,7 +119,7 @@ export function remoteComp<T extends RemoteCompInfo = RemoteCompInfo>(
117119
this.compValue=params.value;
118120
}
119121

120-
privateasyncload(packageVersion='latest'){
122+
privateasyncload(packageVersion='latest',appId='none'){
121123
if(!remoteInfo){
122124
return;
123125
}
@@ -129,7 +131,7 @@ export function remoteComp<T extends RemoteCompInfo = RemoteCompInfo>(
129131
log.error("loader not found, remote info:",remoteInfo);
130132
return;
131133
}
132-
constRemoteExportedComp=awaitfinalLoader({...remoteInfo, packageVersion});
134+
constRemoteExportedComp=awaitfinalLoader({...remoteInfo, packageVersion, appId});
133135
if(!RemoteExportedComp){
134136
return;
135137
}
@@ -159,7 +161,7 @@ export function remoteComp<T extends RemoteCompInfo = RemoteCompInfo>(
159161
<RemoteCompView
160162
key={key}
161163
isLowcoderComp={remoteInfo?.packageName==='lowcoder-comps'}
162-
loadComp={(packageVersion?:string)=>this.load(packageVersion)}
164+
loadComp={(packageVersion?:string,appId?:string)=>this.load(packageVersion,appId)}
163165
loadingElement={loadingElement}
164166
source={remoteInfo?.source}
165167
/>

‎client/packages/lowcoder/src/comps/comps/selectInputComp/stepControl.tsx‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const StepsChildrenMap = {
9595
style:styleControl(StepsStyle,'style'),
9696
viewRef:RefControl<HTMLDivElement>,
9797
animationStyle:styleControl(AnimationStyle,'animationStyle'),
98-
showVerticalScrollbar:withDefault(BoolControl,false),
98+
showScrollBars:withDefault(BoolControl,false),
9999
minHorizontalWidth:withDefault(RadiusControl,''),
100100
};
101101

@@ -182,7 +182,7 @@ let StepControlBasicComp = (function () {
182182
padding:"0px",
183183
}}
184184
overflow="scroll"
185-
hideScrollbar={!props.showVerticalScrollbar}>
185+
hideScrollbar={!props.showScrollBars}>
186186
<Steps
187187
initial={props.initialValue.value-1}
188188
current={current}
@@ -197,6 +197,7 @@ let StepControlBasicComp = (function () {
197197
>
198198
{props.options.map((option,index)=>(
199199
<Steps.Step
200+
style={{minWidth:props.minHorizontalWidth||'100%'}}
200201
key={index}
201202
title={option.label}
202203
subTitle={option.subTitle}
@@ -234,15 +235,6 @@ let StepControlBasicComp = (function () {
234235
{["layout","both"].includes(useContext(EditorContext).editorModeStatus)&&(
235236
<Sectionname={sectionNames.layout}>
236237
{children.autoHeight.getPropertyView()}
237-
{!children.autoHeight.getView()&&(
238-
children.showVerticalScrollbar.propertyView({
239-
label:trans("prop.showVerticalScrollbar"),
240-
})
241-
)}
242-
{children.minHorizontalWidth.propertyView({
243-
label:trans("prop.minHorizontalWidth"),
244-
placeholder:'100px',
245-
})}
246238
{children.size.propertyView({
247239
label:trans("step.size"),
248240
radioButton:true,
@@ -261,15 +253,23 @@ let StepControlBasicComp = (function () {
261253
radioButton:true,
262254
})
263255
}
256+
{children.direction.getView()=="horizontal"&&(
257+
children.minHorizontalWidth.propertyView({
258+
label:trans("prop.minHorizontalWidth"),
259+
placeholder:'100px',
260+
})
261+
)}
262+
{!children.autoHeight.getView()&&(
263+
children.showScrollBars.propertyView({
264+
label:trans("prop.scrollbar"),
265+
})
266+
)}
264267
{children.displayType.getView()!="inline"&&!children.showIcons.getView()&&(
265268
children.showDots.propertyView({label:trans("step.showDots")}
266269
))}
267270
{children.displayType.getView()!="inline"&&!children.showDots.getView()&&(
268271
children.showIcons.propertyView({label:trans("step.showIcons")}
269272
))}
270-
{!children.autoHeight.getView()&&(
271-
children.showVerticalScrollbar.propertyView({label:trans("prop.showVerticalScrollbar")})
272-
)}
273273
</Section>
274274
)}
275275

‎client/packages/lowcoder/src/comps/utils/remote.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function parseCompType(compType: string) {
3939
}
4040

4141
exportasyncfunctiongetNpmPackageMeta(packageName:string){
42-
constres=awaitaxios.get<NpmPackageMeta>(`${NPM_REGISTRY_URL}/${packageName}`);
42+
constres=awaitaxios.get<NpmPackageMeta>(`${NPM_REGISTRY_URL}/none/${packageName}`);
4343
if(res.status>=400){
4444
returnnull;
4545
}
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
exportconstSERVER_HOST=`${REACT_APP_NODE_SERVICE_URL??""}`;
2-
exportconstNPM_REGISTRY_URL=`${SERVER_HOST}/node-service/api/npm/registry`;
3-
exportconstNPM_PLUGIN_ASSETS_BASE_URL=`${SERVER_HOST}/node-service/api/npm/package`;
1+
// export const SERVER_HOST = `${REACT_APP_NODE_SERVICE_URL ?? ""}`;
2+
// export const NPM_REGISTRY_URL = `${SERVER_HOST}/node-service/api/npm/registry`;
3+
// export const NPM_PLUGIN_ASSETS_BASE_URL = `${SERVER_HOST}/node-service/api/npm/package`;
4+
5+
exportconstSERVER_HOST=`${REACT_APP_API_SERVICE_URL??""}`;
6+
exportconstNPM_REGISTRY_URL=`${SERVER_HOST}/api/npm/registry`;
7+
exportconstNPM_PLUGIN_ASSETS_BASE_URL=`${SERVER_HOST}/api/npm/package`;

‎client/packages/lowcoder/src/pages/editor/right/PluginPanel/PluginCompItem.tsx‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { LowcoderCompMeta } from "types/remoteComp";
1111
import{TransparentImg}from"util/commonUtils";
1212
import{ModuleIcon}from"lowcoder-design";
1313
import{NPM_PLUGIN_ASSETS_BASE_URL}from"constants/npmPlugins";
14+
import{useApplicationId}from"@lowcoder-ee/index.sdk";
1415

1516
constItemWrapper=styled.div`
1617
display: flex;
@@ -75,10 +76,11 @@ interface PluginCompItemProps {
7576
}
7677

7778
exportfunctionPluginCompItem(props:PluginCompItemProps){
79+
constappId=useApplicationId();
7880
const{ packageName, packageVersion, compName, compMeta, onDrag}=props;
7981
constcompType=getRemoteCompType("npm",packageName,packageVersion,compName);
8082

81-
consticon=`${NPM_PLUGIN_ASSETS_BASE_URL}/${packageName}@${packageVersion}/${compMeta.icon}`;
83+
consticon=`${NPM_PLUGIN_ASSETS_BASE_URL}/${appId}/${packageName}@${packageVersion}/${compMeta.icon}`;
8284

8385
return(
8486
<ItemWrapper

‎client/packages/lowcoder/src/pages/editor/right/PluginPanel/PluginItem.tsx‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
importaxiosfrom"axios";
22
import{EmptyContent}from"components/EmptyContent";
33
import{LinkButton}from"lowcoder-design";
4-
import{useShallowEqualSelector}from"util/hooks";
4+
import{useApplicationId,useShallowEqualSelector}from"util/hooks";
55
import{useContext,useEffect,useMemo,useState}from"react";
66
import{useDispatch,useSelector}from"react-redux";
77
import{AppState}from"redux/reducers";
@@ -55,6 +55,7 @@ interface PluginViewProps {
5555
exportfunctionPluginItem(props:PluginViewProps){
5656
const{ name, onRemove}=props;
5757
constdispatch=useDispatch();
58+
constappId=useApplicationId();
5859
const{ onDrag, searchValue}=useContext(RightContext);
5960
const[loading,setLoading]=useState(false);
6061
constpackageMeta=useShallowEqualSelector(
@@ -67,7 +68,7 @@ export function PluginItem(props: PluginViewProps) {
6768

6869
useEffect(()=>{
6970
setLoading(true);
70-
axios.get<NpmPackageMeta>(`${NPM_REGISTRY_URL}/${name}`).then((res)=>{
71+
axios.get<NpmPackageMeta>(`${NPM_REGISTRY_URL}/${appId}/${name}`).then((res)=>{
7172
if(res.status>=400){
7273
return;
7374
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/security/SecurityConfig.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
145145
ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET,NewUrl.ORGANIZATION_URL +"/*/datasourceTypes"),// datasource types
146146
ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET,NewUrl.ORGANIZATION_URL +"/byuser/*"),
147147
ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET,NewUrl.DATASOURCE_URL +"/jsDatasourcePlugins"),
148+
ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET,NewUrl.NPM_REGISTRY +"/**"),
148149
ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET,"/api/docs/**")
149150
)
150151
.permitAll()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp