From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/app/text-generate/item/result-tab.tsx |   99 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 68 insertions(+), 31 deletions(-)

diff --git a/app/components/app/text-generate/item/result-tab.tsx b/app/components/app/text-generate/item/result-tab.tsx
index 94d5ded..1e324d2 100644
--- a/app/components/app/text-generate/item/result-tab.tsx
+++ b/app/components/app/text-generate/item/result-tab.tsx
@@ -1,6 +1,9 @@
 import {
   memo,
+  useEffect,
 } from 'react'
+import { useTranslation } from 'react-i18next'
+import cn from '@/utils/classnames'
 import { Markdown } from '@/app/components/base/markdown'
 import CodeEditor from '@/app/components/workflow/nodes/_base/components/editor/code-editor'
 import { CodeLanguage } from '@/app/components/workflow/nodes/code/types'
@@ -11,45 +14,79 @@
   data,
   content,
   currentTab,
+  onCurrentTabChange,
 }: {
   data?: WorkflowProcess
   content: any
   currentTab: string
+  onCurrentTabChange: (tab: string) => void
 }) => {
+  const { t } = useTranslation()
+
+  const switchTab = async (tab: string) => {
+    onCurrentTabChange(tab)
+  }
+  useEffect(() => {
+    if (data?.resultText || !!data?.files?.length)
+      switchTab('RESULT')
+    else
+      switchTab('DETAIL')
+  }, [data?.files?.length, data?.resultText])
+
   return (
-    <>
-      {currentTab === 'RESULT' && (
-        <div className='space-y-3 p-4'>
-          {data?.resultText && <Markdown content={data?.resultText || ''} />}
-          {!!data?.files?.length && (
-            <div className='flex flex-col gap-2'>
-              {data?.files.map((item: any) => (
-                <div key={item.varName} className='system-xs-regular flex flex-col gap-1'>
-                  <div className='py-1 text-text-tertiary '>{item.varName}</div>
-                  <FileList
-                    files={item.list}
-                    showDeleteAction={false}
-                    showDownloadAction
-                    canPreview
-                  />
-                </div>
-              ))}
-            </div>
-          )}
+    <div className='grow relative flex flex-col'>
+      {(data?.resultText || !!data?.files?.length) && (
+        <div className='shrink-0 flex items-center mb-2 border-b-[0.5px] border-[rgba(0,0,0,0.05)]'>
+          <div
+            className={cn(
+              'mr-6 py-3 border-b-2 border-transparent text-[13px] font-semibold leading-[18px] text-gray-400 cursor-pointer',
+              currentTab === 'RESULT' && '!border-[rgb(21,94,239)] text-gray-700',
+            )}
+            onClick={() => switchTab('RESULT')}
+          >{t('runLog.result')}</div>
+          <div
+            className={cn(
+              'mr-6 py-3 border-b-2 border-transparent text-[13px] font-semibold leading-[18px] text-gray-400 cursor-pointer',
+              currentTab === 'DETAIL' && '!border-[rgb(21,94,239)] text-gray-700',
+            )}
+            onClick={() => switchTab('DETAIL')}
+          >{t('runLog.detail')}</div>
         </div>
       )}
-      {currentTab === 'DETAIL' && content && (
-        <div className='p-4'>
-          <CodeEditor
-            readOnly
-            title={<div>JSON OUTPUT</div>}
-            language={CodeLanguage.json}
-            value={content}
-            isJSONStringifyBeauty
-          />
-        </div>
-      )}
-    </>
+      <div className={cn('grow bg-white')}>
+        {currentTab === 'RESULT' && (
+          <>
+            {data?.resultText && <Markdown content={data?.resultText || ''} />}
+            {!!data?.files?.length && (
+              <div className='flex flex-col gap-2'>
+                {data?.files.map((item: any) => (
+                  <div key={item.varName} className='flex flex-col gap-1 system-xs-regular'>
+                    <div className='py-1 text-text-tertiary '>{item.varName}</div>
+                    <FileList
+                      files={item.list}
+                      showDeleteAction={false}
+                      showDownloadAction
+                      canPreview
+                    />
+                  </div>
+                ))}
+              </div>
+            )}
+          </>
+        )}
+        {currentTab === 'DETAIL' && content && (
+          <div className='mt-1'>
+            <CodeEditor
+              readOnly
+              title={<div>JSON OUTPUT</div>}
+              language={CodeLanguage.json}
+              value={content}
+              isJSONStringifyBeauty
+            />
+          </div>
+        )}
+      </div>
+    </div>
   )
 }
 

--
Gitblit v1.8.0