[agent-pipeline] pipe-20260329143602-hu6g round-2
This commit is contained in:
+46
-46
@@ -44,7 +44,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
const [isLoadingRightColumns, setIsLoadingRightColumns] = useState(false);
|
||||
|
||||
const [localConfig, setLocalConfig] = useState({
|
||||
screenId: config.screenId || 0,
|
||||
screenId: config.screen_id || 0,
|
||||
leftScreenId: config.leftScreenId || 0,
|
||||
rightScreenId: config.rightScreenId || 0,
|
||||
splitRatio: config.splitRatio || 50,
|
||||
@@ -61,7 +61,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
useEffect(() => {
|
||||
console.log("🔄 [ScreenSplitPanelConfigPanel] config prop 변경 감지:", config);
|
||||
setLocalConfig({
|
||||
screenId: config.screenId || 0,
|
||||
screenId: config.screen_id || 0,
|
||||
leftScreenId: config.leftScreenId || 0,
|
||||
rightScreenId: config.rightScreenId || 0,
|
||||
splitRatio: config.splitRatio || 50,
|
||||
@@ -98,8 +98,8 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
const columnsResponse = await getTableColumns(screenData.table_name);
|
||||
if (columnsResponse.success && columnsResponse.data?.columns) {
|
||||
const columns = columnsResponse.data.columns.map((col: any) => ({
|
||||
columnName: col.column_name || col.columnName,
|
||||
columnLabel: col.column_label || col.columnLabel || col.column_name || col.columnName,
|
||||
columnName: col.column_name || col.column_name,
|
||||
columnLabel: col.column_label || col.column_label || col.column_name || col.column_name,
|
||||
}));
|
||||
setLeftScreenColumns(columns);
|
||||
console.log("📋 좌측 화면 컬럼 로드 완료:", columns.length);
|
||||
@@ -138,8 +138,8 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
tableName: screenData.table_name,
|
||||
screenName: screenData.screen_name || "메인 화면",
|
||||
columns: columnsResponse.data.columns.map((col: any) => ({
|
||||
columnName: col.column_name || col.columnName,
|
||||
columnLabel: col.column_label || col.columnLabel || col.column_name || col.columnName,
|
||||
columnName: col.column_name || col.column_name,
|
||||
columnLabel: col.column_label || col.column_label || col.column_name || col.column_name,
|
||||
})),
|
||||
});
|
||||
}
|
||||
@@ -160,9 +160,9 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
// TabsWidget의 탭들
|
||||
if (comp.componentType === "tabs-widget" && config.tabs) {
|
||||
for (const tab of config.tabs) {
|
||||
if (tab.screenId) {
|
||||
embeddedScreenIds.add(tab.screenId);
|
||||
console.log("🔍 탭에서 화면 발견:", tab.screenId, tab.screenName);
|
||||
if (tab.screen_id) {
|
||||
embeddedScreenIds.add(tab.screen_id);
|
||||
console.log("🔍 탭에서 화면 발견:", tab.screen_id, tab.screen_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -174,8 +174,8 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
}
|
||||
|
||||
// EmbeddedScreen
|
||||
if (comp.componentType === "embedded-screen" && config.screenId) {
|
||||
embeddedScreenIds.add(config.screenId);
|
||||
if (comp.componentType === "embedded-screen" && config.screen_id) {
|
||||
embeddedScreenIds.add(config.screen_id);
|
||||
}
|
||||
|
||||
// 중첩된 컴포넌트 검색
|
||||
@@ -194,15 +194,15 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
const embeddedScreen = await screenApi.getScreen(embeddedScreenId);
|
||||
if (embeddedScreen?.table_name) {
|
||||
// 이미 추가된 테이블인지 확인
|
||||
if (!tables.find(t => t.tableName === embeddedScreen.table_name)) {
|
||||
if (!tables.find(t => t.table_name === embeddedScreen.table_name)) {
|
||||
const columnsResponse = await getTableColumns(embeddedScreen.table_name);
|
||||
if (columnsResponse.success && columnsResponse.data?.columns) {
|
||||
tables.push({
|
||||
tableName: embeddedScreen.table_name,
|
||||
screenName: embeddedScreen.screen_name || `화면 ${embeddedScreenId}`,
|
||||
columns: columnsResponse.data.columns.map((col: any) => ({
|
||||
columnName: col.column_name || col.columnName,
|
||||
columnLabel: col.column_label || col.columnLabel || col.column_name || col.columnName,
|
||||
columnName: col.column_name || col.column_name,
|
||||
columnLabel: col.column_label || col.column_label || col.column_name || col.column_name,
|
||||
})),
|
||||
});
|
||||
console.log("✅ 테이블 추가:", embeddedScreen.table_name);
|
||||
@@ -216,7 +216,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
}
|
||||
|
||||
setRightScreenTables(tables);
|
||||
console.log("📋 우측 화면 테이블 로드 완료:", tables.map(t => t.tableName));
|
||||
console.log("📋 우측 화면 테이블 로드 완료:", tables.map(t => t.table_name));
|
||||
} catch (error) {
|
||||
console.error("우측 화면 컬럼 로드 실패:", error);
|
||||
setRightScreenTables([]);
|
||||
@@ -440,7 +440,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
className="h-9 w-full justify-between text-xs"
|
||||
>
|
||||
{localConfig.leftScreenId
|
||||
? screens.find((s) => s.screenId === localConfig.leftScreenId)?.screenName || "화면 선택..."
|
||||
? screens.find((s) => s.screen_id === localConfig.leftScreenId)?.screen_name || "화면 선택..."
|
||||
: "화면 선택..."}
|
||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||
</Button>
|
||||
@@ -457,10 +457,10 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<CommandGroup>
|
||||
{screens.map((screen) => (
|
||||
<CommandItem
|
||||
key={screen.screenId}
|
||||
value={`${screen.screenName} ${screen.screenCode}`}
|
||||
key={screen.screen_id}
|
||||
value={`${screen.screen_name} ${screen.screen_code}`}
|
||||
onSelect={() => {
|
||||
updateConfig("leftScreenId", screen.screenId);
|
||||
updateConfig("leftScreenId", screen.screen_id);
|
||||
setLeftOpen(false);
|
||||
}}
|
||||
className="text-xs"
|
||||
@@ -468,12 +468,12 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<Check
|
||||
className={cn(
|
||||
"mr-2 h-4 w-4",
|
||||
localConfig.leftScreenId === screen.screenId ? "opacity-100" : "opacity-0",
|
||||
localConfig.leftScreenId === screen.screen_id ? "opacity-100" : "opacity-0",
|
||||
)}
|
||||
/>
|
||||
<div className="flex flex-col">
|
||||
<span className="font-medium">{screen.screenName}</span>
|
||||
<span className="text-[10px] text-muted-foreground">{screen.screenCode}</span>
|
||||
<span className="font-medium">{screen.screen_name}</span>
|
||||
<span className="text-[10px] text-muted-foreground">{screen.screen_code}</span>
|
||||
</div>
|
||||
</CommandItem>
|
||||
))}
|
||||
@@ -500,7 +500,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
className="h-9 w-full justify-between text-xs"
|
||||
>
|
||||
{localConfig.rightScreenId
|
||||
? screens.find((s) => s.screenId === localConfig.rightScreenId)?.screenName ||
|
||||
? screens.find((s) => s.screen_id === localConfig.rightScreenId)?.screen_name ||
|
||||
"화면 선택..."
|
||||
: "화면 선택..."}
|
||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||
@@ -518,10 +518,10 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<CommandGroup>
|
||||
{screens.map((screen) => (
|
||||
<CommandItem
|
||||
key={screen.screenId}
|
||||
value={`${screen.screenName} ${screen.screenCode}`}
|
||||
key={screen.screen_id}
|
||||
value={`${screen.screen_name} ${screen.screen_code}`}
|
||||
onSelect={() => {
|
||||
updateConfig("rightScreenId", screen.screenId);
|
||||
updateConfig("rightScreenId", screen.screen_id);
|
||||
setRightOpen(false);
|
||||
}}
|
||||
className="text-xs"
|
||||
@@ -529,12 +529,12 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<Check
|
||||
className={cn(
|
||||
"mr-2 h-4 w-4",
|
||||
localConfig.rightScreenId === screen.screenId ? "opacity-100" : "opacity-0",
|
||||
localConfig.rightScreenId === screen.screen_id ? "opacity-100" : "opacity-0",
|
||||
)}
|
||||
/>
|
||||
<div className="flex flex-col">
|
||||
<span className="font-medium">{screen.screenName}</span>
|
||||
<span className="text-[10px] text-muted-foreground">{screen.screenCode}</span>
|
||||
<span className="font-medium">{screen.screen_name}</span>
|
||||
<span className="text-[10px] text-muted-foreground">{screen.screen_code}</span>
|
||||
</div>
|
||||
</CommandItem>
|
||||
))}
|
||||
@@ -627,8 +627,8 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{leftScreenColumns.map((col) => (
|
||||
<SelectItem key={col.columnName} value={col.columnName} className="text-xs">
|
||||
{col.columnLabel} ({col.columnName})
|
||||
<SelectItem key={col.column_name} value={col.column_name} className="text-xs">
|
||||
{col.column_label} ({col.column_name})
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
@@ -648,17 +648,17 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{rightScreenTables.map((table) => (
|
||||
<React.Fragment key={table.tableName}>
|
||||
<React.Fragment key={table.table_name}>
|
||||
<div className="px-2 py-1.5 text-xs font-semibold text-muted-foreground bg-muted dark:bg-foreground/90">
|
||||
{table.screenName} ({table.tableName})
|
||||
{table.screen_name} ({table.table_name})
|
||||
</div>
|
||||
{table.columns.map((col) => (
|
||||
<SelectItem
|
||||
key={`${table.tableName}.${col.columnName}`}
|
||||
value={`${table.tableName}.${col.columnName}`}
|
||||
key={`${table.table_name}.${col.column_name}`}
|
||||
value={`${table.table_name}.${col.column_name}`}
|
||||
className="text-xs"
|
||||
>
|
||||
{col.columnLabel} ({col.columnName})
|
||||
{col.column_label} ({col.column_name})
|
||||
</SelectItem>
|
||||
))}
|
||||
</React.Fragment>
|
||||
@@ -732,7 +732,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
</p>
|
||||
<ul className="text-xs text-emerald-700 dark:text-emerald-300 space-y-0.5">
|
||||
{rightScreenTables.map((table) => (
|
||||
<li key={table.tableName}>• {table.screenName}: <code className="bg-emerald-100 dark:bg-emerald-900 px-1 rounded">{table.tableName}</code></li>
|
||||
<li key={table.table_name}>• {table.screen_name}: <code className="bg-emerald-100 dark:bg-emerald-900 px-1 rounded">{table.table_name}</code></li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -764,8 +764,8 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{leftScreenColumns.map((col) => (
|
||||
<SelectItem key={col.columnName} value={col.columnName} className="text-xs">
|
||||
{col.columnLabel} ({col.columnName})
|
||||
<SelectItem key={col.column_name} value={col.column_name} className="text-xs">
|
||||
{col.column_label} ({col.column_name})
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
@@ -785,17 +785,17 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{rightScreenTables.map((table) => (
|
||||
<React.Fragment key={table.tableName}>
|
||||
<React.Fragment key={table.table_name}>
|
||||
<div className="px-2 py-1.5 text-xs font-semibold text-muted-foreground bg-muted dark:bg-foreground/90">
|
||||
{table.screenName} ({table.tableName})
|
||||
{table.screen_name} ({table.table_name})
|
||||
</div>
|
||||
{table.columns.map((col) => (
|
||||
<SelectItem
|
||||
key={`${table.tableName}.${col.columnName}`}
|
||||
value={col.columnName}
|
||||
key={`${table.table_name}.${col.column_name}`}
|
||||
value={col.column_name}
|
||||
className="text-xs pl-4"
|
||||
>
|
||||
{col.columnLabel} ({col.columnName})
|
||||
{col.column_label} ({col.column_name})
|
||||
</SelectItem>
|
||||
))}
|
||||
</React.Fragment>
|
||||
@@ -856,7 +856,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<span className="text-muted-foreground">좌측 화면:</span>
|
||||
<span className="font-medium">
|
||||
{localConfig.leftScreenId
|
||||
? screens.find((s) => s.screenId === localConfig.leftScreenId)?.screenName ||
|
||||
? screens.find((s) => s.screen_id === localConfig.leftScreenId)?.screen_name ||
|
||||
`ID: ${localConfig.leftScreenId}`
|
||||
: "미설정"}
|
||||
</span>
|
||||
@@ -865,7 +865,7 @@ export function ScreenSplitPanelConfigPanel({ config = {}, onChange }: ScreenSpl
|
||||
<span className="text-muted-foreground">우측 화면:</span>
|
||||
<span className="font-medium">
|
||||
{localConfig.rightScreenId
|
||||
? screens.find((s) => s.screenId === localConfig.rightScreenId)?.screenName ||
|
||||
? screens.find((s) => s.screen_id === localConfig.rightScreenId)?.screen_name ||
|
||||
`ID: ${localConfig.rightScreenId}`
|
||||
: "미설정"}
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user