mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-20 09:20:59 +00:00
没修好
This commit is contained in:
@@ -670,7 +670,7 @@ function WorkflowEditorInner() {
|
|||||||
|
|
||||||
{/* Right: Property Panel (conditionally rendered) */}
|
{/* Right: Property Panel (conditionally rendered) */}
|
||||||
{showPropertyPanel && (
|
{showPropertyPanel && (
|
||||||
<div className="w-80 border-l bg-muted/30 overflow-hidden flex-shrink-0 h-full">
|
<div className="w-[28rem] xl:w-[32rem] min-w-[24rem] border-l bg-muted/30 overflow-hidden flex-shrink-0 h-full">
|
||||||
<PropertyPanel
|
<PropertyPanel
|
||||||
selectedNodeId={selectedNodeId}
|
selectedNodeId={selectedNodeId}
|
||||||
selectedEdgeId={selectedEdgeId}
|
selectedEdgeId={selectedEdgeId}
|
||||||
|
|||||||
+32
-18
@@ -627,28 +627,37 @@ export default function WorkflowExecutionsTab({
|
|||||||
: 'border-border'
|
: 'border-border'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div className="flex items-center justify-between gap-3">
|
<div className="flex items-start justify-between gap-3">
|
||||||
<span className={isFailedNode ? 'font-medium text-red-700 dark:text-red-300' : 'font-medium'}>
|
<div className="min-w-0 flex-1">
|
||||||
{nodeExec.node_id}
|
<div className="flex items-center gap-2 min-w-0 flex-wrap">
|
||||||
</span>
|
<span className={isFailedNode ? 'font-medium text-red-700 dark:text-red-300 break-all' : 'font-medium break-all'}>
|
||||||
<Badge className={statusColors[nodeExec.status]}>
|
{nodeExec.node_id}
|
||||||
|
</span>
|
||||||
|
{typeof nodeExec.retry_count === 'number' && nodeExec.retry_count > 0 && (
|
||||||
|
<Badge variant="outline" className="text-[10px] px-1.5 py-0 h-5">
|
||||||
|
retry {nodeExec.retry_count}
|
||||||
|
</Badge>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className={`text-xs mt-1 break-all ${
|
||||||
|
isFailedNode
|
||||||
|
? 'text-red-600/80 dark:text-red-400/80'
|
||||||
|
: 'text-muted-foreground'
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{nodeExec.node_type}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<Badge className={`${statusColors[nodeExec.status]} shrink-0`}>
|
||||||
<NodeStatusIcon className="size-3 mr-1" />
|
<NodeStatusIcon className="size-3 mr-1" />
|
||||||
{nodeExec.status}
|
{nodeExec.status}
|
||||||
</Badge>
|
</Badge>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
className={`text-xs mt-1 ${
|
|
||||||
isFailedNode
|
|
||||||
? 'text-red-600/80 dark:text-red-400/80'
|
|
||||||
: 'text-muted-foreground'
|
|
||||||
}`}
|
|
||||||
>
|
|
||||||
{nodeExec.node_type}
|
|
||||||
</div>
|
|
||||||
{nodeExec.inputs && Object.keys(nodeExec.inputs).length > 0 && (
|
{nodeExec.inputs && Object.keys(nodeExec.inputs).length > 0 && (
|
||||||
<div className="mt-2">
|
<div className="mt-2">
|
||||||
<div className="text-xs text-muted-foreground mb-1">{t('workflows.inputs')}:</div>
|
<div className="text-xs text-muted-foreground mb-1">{t('workflows.inputs')}:</div>
|
||||||
<pre className="bg-muted p-2 rounded text-xs overflow-x-auto max-h-[100px]">
|
<pre className="bg-muted p-2 rounded text-xs overflow-x-auto max-h-[100px] whitespace-pre-wrap break-all">
|
||||||
{JSON.stringify(nodeExec.inputs, null, 2)}
|
{JSON.stringify(nodeExec.inputs, null, 2)}
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@@ -656,14 +665,19 @@ export default function WorkflowExecutionsTab({
|
|||||||
{nodeExec.outputs && Object.keys(nodeExec.outputs).length > 0 && (
|
{nodeExec.outputs && Object.keys(nodeExec.outputs).length > 0 && (
|
||||||
<div className="mt-2">
|
<div className="mt-2">
|
||||||
<div className="text-xs text-muted-foreground mb-1">{t('workflows.outputs')}:</div>
|
<div className="text-xs text-muted-foreground mb-1">{t('workflows.outputs')}:</div>
|
||||||
<pre className="bg-muted p-2 rounded text-xs overflow-x-auto max-h-[100px]">
|
<pre className="bg-muted p-2 rounded text-xs overflow-x-auto max-h-[100px] whitespace-pre-wrap break-all">
|
||||||
{JSON.stringify(nodeExec.outputs, null, 2)}
|
{JSON.stringify(nodeExec.outputs, null, 2)}
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{nodeExec.error && (
|
{nodeExec.error && (
|
||||||
<div className="text-destructive text-xs mt-2 bg-destructive/10 p-2 rounded">
|
<div className="mt-2 rounded border border-destructive/20 bg-destructive/10 p-2">
|
||||||
{nodeExec.error}
|
<div className="text-[11px] font-medium text-destructive mb-1">
|
||||||
|
{t('workflows.error')}
|
||||||
|
</div>
|
||||||
|
<div className="text-destructive text-xs whitespace-pre-wrap break-all font-mono">
|
||||||
|
{nodeExec.error}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user