fix(web): height calculate

This commit is contained in:
zhaoying
2026-03-27 12:02:50 +08:00
parent 9ae1d2f0d9
commit 6f7fee18c9
64 changed files with 545 additions and 569 deletions

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 17:57:26
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-02-09 14:28:34
* @Last Modified time: 2026-03-26 18:59:53
*/
/**
* Neo4j User Memory Detail View
@@ -75,7 +75,7 @@ const Neo4j: FC = () => {
return (
<div className="rb:h-screen rb:w-screen rb:p-3 rb:relative" onClick={() => setSelectedKey(null)}>
<Flex className="rb:h-[calc(100vh-24px)]" gap={12}>
<Flex className="rb:h-full!" gap={12}>
<Flex gap={15} vertical justify="space-between" align="center" className="rb:h-full! rb:px-4! rb:pt-6! rb:pb-5! rb:bg-white rb:w-20 rb:rounded-xl">
<Flex gap={15} vertical>
<Popover

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 17:57:11
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-20 11:27:53
* @Last Modified time: 2026-03-27 10:26:31
*/
/**
* RAG User Memory Detail View
@@ -113,10 +113,11 @@ const Rag: FC = () => {
})
}
return (
<Row gutter={[16, 16]}>
<Row gutter={[16, 16]} className="rb:h-full!">
<Col span={8}>
<RbCard
bodyClassName="rb:p-3! rb:pt-4! rb:h-[calc(100vh-76px)]"
bodyClassName="rb:p-3! rb:pt-4!"
className="rb:h-full!"
>
<Flex align="center" gap={12} className="rb:mb-6!">
<div className="rb:size-12 rb:text-center rb:font-semibold rb:text-[28px] rb:leading-12 rb:rounded-xl rb:text-white rb:bg-[#155EEF]">{name?.[0]}</div>

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:34:23
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-02-11 15:03:05
* @Last Modified time: 2026-03-27 11:09:52
*/
/**
* About Me Component
@@ -67,12 +67,12 @@ const AboutMe = forwardRef<AboutMeRef, { className?: string; }>(({ className },
title={t('userMemory.aboutMe')}
headerClassName="rb:min-h-[46px]!! rb:font-medium!"
className={clsx("rb:bg-[#FFFFFF]! rb:shadow-[0px_2px_6px_0px_rgba(33,35,50,0.13)]! rb:absolute! rb:w-100 rb:top-29 rb:left-26", className)}
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-176px)] rb:overflow-y-auto!"
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-186px)]! rb:overflow-y-auto!"
>
{loading
? <Skeleton className="rb:mt-4" />
: Object.keys(data).filter(key => data[key] !== null).length > 0
? <>
? <div className="rb:overflow-y-auto rb:h-full">
{data.user_summary &&
<div className="rb:font-regular rb:leading-5 rb:text-[#5B6167]">
{data.user_summary}
@@ -95,7 +95,7 @@ const AboutMe = forwardRef<AboutMeRef, { className?: string; }>(({ className },
{data.one_sentence &&
<RbAlert className="rb:mt-4! rb:text-[14px]!">{data.one_sentence}</RbAlert>
}
</>
</div>
: <Empty size={88} className="rb:mt-12 rb:mb-20.25" />
}
</RbCard>

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:34:16
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 11:36:02
* @Last Modified time: 2026-03-27 11:22:10
*/
import { type FC } from 'react'
import { useTranslation } from 'react-i18next'
@@ -32,7 +32,7 @@ const ActivationMetricsPieCard: FC<ActivationMetricsPieCardProps> = ({ chartData
className="rb:h-full!"
>
{loading
? <Loading size={249} />
? <Loading size={150} />
: <PieChart
chartData={chartData as { name: string; value: number }[]}
height={214}

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:34:04
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-20 11:04:52
* @Last Modified time: 2026-03-27 10:28:53
*/
import { type FC } from 'react'
import { useTranslation } from 'react-i18next'
@@ -20,8 +20,10 @@ const ConversationMemory: FC = () => {
return (
<RbCard
title={t('userMemory.conversationMemory')}
headerClassName="rb:text-[18px]! rb:leading-[24px]"
bodyClassName="rb:h-[100%]! rb:overflow-hidden rb:py-0!"
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:pt-0! rb:mb-0! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-4! rb:pt-0! rb:h-[calc(100%-54px)]!"
className="rb:h-full!"
>
<PageScrollList<string>
url={getRagContentUrl}

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:33:30
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-24 17:55:02
* @Last Modified time: 2026-03-27 11:11:09
*/
/**
* End User Profile Component
@@ -85,7 +85,7 @@ const EndUserProfile = forwardRef<EndUserProfileRef, EndUserProfileProps>(({ cla
}
headerClassName="rb:min-h-[46px]!! rb:font-medium!"
className={clsx("rb:bg-[#FFFFFF]! rb:shadow-[0px_2px_6px_0px_rgba(33,35,50,0.13)]! rb:absolute! rb:w-80 rb:top-29 rb:left-26", className)}
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-176px)] rb:overflow-auto"
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-186px)] rb:overflow-auto"
>
{loading
? <Skeleton />

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:33:06
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 14:05:10
* @Last Modified time: 2026-03-27 11:18:47
*/
import { useEffect, useState, forwardRef, useImperativeHandle } from 'react'
import { useTranslation } from 'react-i18next'
@@ -83,7 +83,7 @@ const Habits = forwardRef<{ handleRefresh: () => void; }>((_props, ref) => {
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
{loading
? <Skeleton active />

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:32:47
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-02-05 18:29:29
* @Last Modified time: 2026-03-27 11:11:35
*/
/**
* Interest Distribution Component
@@ -77,7 +77,7 @@ const InterestDistribution: FC<{ className?: string; }> = ({ className }) => {
title={t('userMemory.interestDistribution')}
headerClassName="rb:min-h-[46px]!! rb:font-medium!"
className={clsx("rb:bg-[#FFFFFF]! rb:shadow-[0px_2px_6px_0px_rgba(33,35,50,0.13)]! rb:absolute! rb:w-100 rb:top-29 rb:left-26", className)}
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-176px)] rb:overflow-auto"
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-186px)] rb:overflow-auto"
>
{loading
? <Loading size={249} />

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:32:41
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-02-05 18:35:01
* @Last Modified time: 2026-03-27 11:11:46
*/
/**
* Memory Insight Component
@@ -66,7 +66,7 @@ const MemoryInsight = forwardRef<MemoryInsightRef, { className?: string; }>(({ c
title={t('userMemory.memoryInsight')}
headerClassName="rb:min-h-[46px]!! rb:font-medium!"
className={clsx("rb:bg-[#FFFFFF]! rb:shadow-[0px_2px_6px_0px_rgba(33,35,50,0.13)]! rb:absolute! rb:w-100 rb:top-29 rb:left-26", className)}
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-176px)] rb:overflow-auto"
bodyClassName="rb:px-5! rb:pb-5! rb:pt-3.75! rb:max-h-[calc(100vh-186px)] rb:overflow-auto"
>
{loading
? <Skeleton />

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:32:23
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-25 12:09:53
* @Last Modified time: 2026-03-27 11:13:27
*/
import { type FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
@@ -119,7 +119,7 @@ const PerceptualLastInfo: FC = () => {
headerType="borderless"
headerClassName="rb:min-h-[50px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-4! rb:pt-0! rb:h-[calc(100%-50px)] rb:overflow-y-auto"
className="rb:h-[calc(100vh-88px)]! rb:w-full!"
className="rb:h-full! rb:w-full!"
>
<Flex align="center" gap={8} className="rb:mb-4!">
{Object.keys(KEYS).map(key => (

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:32:07
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 11:49:29
* @Last Modified time: 2026-03-27 11:23:11
*/
import { type FC, useRef } from 'react'
import { useTranslation } from 'react-i18next'
@@ -72,7 +72,7 @@ const RecentTrendsLineCard: FC<RecentTrendsLineCardProps> = ({ chartData, series
className="rb:h-full!"
>
{loading
? <Loading size={249} />
? <Loading size={150} />
: !chartData || chartData.length === 0
? <Empty size={120} className="rb:mt-12 rb:mb-20.25" />
: <ReactEcharts

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-02-03 18:31:50
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-25 11:50:16
* @Last Modified time: 2026-03-27 11:36:27
*/
import { useEffect, useState, useRef, forwardRef, useImperativeHandle } from 'react'
import { useTranslation } from 'react-i18next'

View File

@@ -1,8 +1,8 @@
/*
* @Author: ZhaoYing
* @Date: 2026-02-03 18:31:36
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:02:11
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-27 11:13:44
*/
import { type FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
@@ -86,7 +86,7 @@ const Timeline: FC = () => {
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:pl-5! rb:pt-0! rb:pr-3! rb:pb-4! rb:h-[calc(100%-54px)] rb:overflow-y-auto"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
{loading
? <Skeleton active />

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-01-08 19:46:02
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:03:50
* @Last Modified time: 2026-03-27 11:20:40
*/
import { type FC, useEffect, useState } from 'react'
import clsx from 'clsx'
@@ -148,15 +148,15 @@ const EpisodicDetail: FC = () => {
}
return (
<Row gutter={16}>
<Col flex="400px">
<Row gutter={16} className="rb:h-full!">
<Col flex="400px" className="rb:h-full!">
<RbCard
title={<div className="rb:leading-5.5!">
<span className="rb:font-[MiSans-Bold] rb:font-bold">{t('episodicDetail.curResult')}</span>
<span className="rb:text-[#5B6167] rb:font-regular!"> ({data.total || 0}{t('episodicDetail.unix')})</span>
</div>}
headerType="borderless"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
headerClassName="rb:min-h-[38px]! rb:pt-3! rb:mb-0!"
bodyClassName="rb:p-3! rb:pb-0! rb:h-[calc(100%-38px)]!"
>
@@ -231,11 +231,11 @@ const EpisodicDetail: FC = () => {
}
</RbCard>
</Col>
<Col flex="1">
<Col flex="1" className="rb:h-full!">
<RbCard
title={selected?.title}
headerType="borderless"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)]! rb:overflow-y-auto"
>

View File

@@ -1,8 +1,8 @@
/*
* @Author: ZhaoYing
* @Date: 2026-01-10 17:35:17
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:05:06
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-27 11:19:38
*/
import { type FC, useEffect, useState, useRef } from 'react'
import { useTranslation } from 'react-i18next'
@@ -132,14 +132,14 @@ const ExplicitDetail: FC = () => {
return () => { chartInstance.current?.dispose(); chartInstance.current = null }
}, [data.semantic_memories])
return (
<Row gutter={12} className="rb:h-full">
<Col span={12}>
<Row gutter={12} className="rb:h-full!">
<Col span={12} className="rb:h-full!">
<RbCard
title={t('explicitDetail.episodic_memories')}
headerType="borderless"
headerClassName="rb:min-h-[50px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-50px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
{loading ?
<Skeleton active />
@@ -163,13 +163,13 @@ const ExplicitDetail: FC = () => {
}
</RbCard>
</Col>
<Col span={12}>
<Col span={12} className="rb:h-full!">
<RbCard
title={t('explicitDetail.semantic_memories')}
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
{loading ?
<Skeleton active />

View File

@@ -113,13 +113,13 @@ const GraphDetail = forwardRef<GraphDetailRef>((_props, ref) => {
}
/>
<Row gutter={12} className="rb:p-3! rb:pr-0! rb:h-[calc(100vh-64px)] rb:w-full! rb:flex-nowrap! rb:overflow-hidden!">
<Col flex="480px">
<Col flex="480px" className="rb:h-full!">
<RbCard
title={t('userMemory.relationshipEvolution')}
headerType="borderless"
headerClassName="rb:min-h-[56px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-56px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
<Flex vertical gap={16}>
<EmotionLine chartData={emotionData} loading={loading} />
@@ -127,13 +127,13 @@ const GraphDetail = forwardRef<GraphDetailRef>((_props, ref) => {
</Flex>
</RbCard>
</Col>
<Col className="rb:w-[calc(100%-480px)]!">
<Col flex="1" className="rb:h-full!">
<RbCard
title={t('userMemory.timelineMemories')}
headerType="borderless"
headerClassName="rb:min-h-[53px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0!"
className="rb:w-full!"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-53px)]!"
className="rb:w-full! rb:h-full!"
>
<BtnTabs
className="rb:mb-4!"
@@ -144,7 +144,7 @@ const GraphDetail = forwardRef<GraphDetailRef>((_props, ref) => {
}))}
onChange={(key: string) => setActiveTab(key)}
/>
<div className="rb:h-[calc(100vh-193px)] rb:overflow-y-auto">
<div className="rb:h-[calc(100%-42px)] rb:overflow-y-auto">
{timelineLoading
? <Skeleton active />
: !activeContent || activeContent.length === 0

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-01-08 19:46:02
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-25 11:56:55
* @Last Modified time: 2026-03-27 11:18:50
*/
import { forwardRef, useImperativeHandle, useRef, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
@@ -83,41 +83,39 @@ const ImplicitDetail = forwardRef<{ handleRefresh: () => void; }, { refresh: ()
}
return (
<div className="rb:h-full">
<Row gutter={12}>
<Col span={12}>
<RbCard
title={t('implicitDetail.subconscious')}
headerType="borderless"
headerClassName="rb:min-h-[50px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)]"
className="rb:h-[calc(100vh-88px)]!"
>
<RadioGroupButton
value={activeTab}
options={[
{ value: 'preferences', label: t('implicitDetail.preferences') },
{ value: 'portrait', label: t('implicitDetail.portrait') },
]}
onChange={handleChangeTab}
/>
<Row gutter={12} className="rb:h-full!">
<Col span={12} className="rb:h-full!">
<RbCard
title={t('implicitDetail.subconscious')}
headerType="borderless"
headerClassName="rb:min-h-[50px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)]"
className="rb:h-full!"
>
<RadioGroupButton
value={activeTab}
options={[
{ value: 'preferences', label: t('implicitDetail.preferences') },
{ value: 'portrait', label: t('implicitDetail.portrait') },
]}
onChange={handleChangeTab}
/>
<div className="rb:mt-3 rb:h-[calc(100%-32px)]">
{activeTab === 'preferences'
? <Preferences ref={preferencesRef} />
: <div className="rb:h-full rb:overflow-y-auto">
<Portrait ref={portraitRef} />
<InterestAreas ref={interestAreasRef} />
</div>
}
</div>
</RbCard>
</Col>
<Col span={12}>
<Habits ref={habitsRef} />
</Col>
</Row>
</div>
<div className="rb:mt-3 rb:h-[calc(100%-32px)]">
{activeTab === 'preferences'
? <Preferences ref={preferencesRef} />
: <div className="rb:h-full rb:overflow-y-auto">
<Portrait ref={portraitRef} />
<InterestAreas ref={interestAreasRef} />
</div>
}
</div>
</RbCard>
</Col>
<Col span={12} className="rb:h-full!">
<Habits ref={habitsRef} />
</Col>
</Row>
)
})
export default ImplicitDetail

View File

@@ -1,8 +1,8 @@
/*
* @Author: ZhaoYing
* @Date: 2026-01-08 19:46:02
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:09:12
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-27 11:13:19
*/
import { type FC } from 'react'
import { Row, Col } from 'antd'
@@ -22,11 +22,11 @@ import Timeline from '../components/Timeline'
const PerceptualDetail: FC = () => {
return (
<Row gutter={12}>
<Col flex="480px">
<Row gutter={12} className="rb:h-full!">
<Col flex="480px" className="rb:h-full!">
<PerceptualLastInfo />
</Col>
<Col flex="1">
<Col flex="1" className="rb:h-full!">
<Timeline />
</Col>
</Row>

View File

@@ -1,8 +1,8 @@
/*
* @Author: ZhaoYing
* @Date: 2026-01-08 19:46:02
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:09:49
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-27 11:17:22
*/
import { type FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
@@ -87,8 +87,8 @@ const ShortTermDetail: FC = () => {
}
return (
<Row gutter={12}>
<Col span={12}>
<Row gutter={12} className="rb:h-full!">
<Col span={12} className="rb:h-full!">
<div className="rb:grid rb:grid-cols-3 rb:gap-3 rb:mb-3">
{(['retrieval_number', 'entity', 'long_term_number'] as const).map(key => (
<Flex key={key} align="center" justify="space-between" className="rb:bg-white rb:rounded-xl rb:py-3! rb:pl-5! rb:pr-4!">
@@ -115,10 +115,10 @@ const ShortTermDetail: FC = () => {
</Space>)}
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-183px)]!"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)]"
className="rb:h-[calc(100%-94px)]!"
>
<Flex gap={12} vertical>
<Flex gap={12} vertical className="rb:h-full! rb:overflow-y-auto!">
{loading
? <Skeleton active />
: !data.short_term || data.short_term.length === 0
@@ -189,7 +189,7 @@ const ShortTermDetail: FC = () => {
</Flex>
</RbCard>
</Col>
<Col span={12}>
<Col span={12} className="rb:h-full!">
<RbCard
title={() => (<Space size={4}>
{t('shortTermDetail.longTermTitle')}
@@ -200,7 +200,7 @@ const ShortTermDetail: FC = () => {
headerType="borderless"
headerClassName="rb:min-h-[54px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName="rb:p-3! rb:pt-0! rb:h-[calc(100%-54px)] rb:overflow-y-auto!"
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
<Flex vertical gap={12}>
{loading

View File

@@ -1,8 +1,8 @@
/*
* @Author: ZhaoYing
* @Date: 2025-12-19 16:54:52
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-16 15:06:29
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-27 11:35:37
*/
import { forwardRef, useImperativeHandle, useRef } from 'react'
import { Row, Col } from 'antd';
@@ -46,8 +46,8 @@ const StatementDetail = forwardRef<{ handleRefresh: () => void },{ refresh: () =
handleRefresh
}));
return (
<Row gutter={[12, 12]}>
<Col span={12}>
<Row gutter={[12, 12]} className="rb:h-full!">
<Col span={12} className="rb:h-full!">
<Row gutter={[12, 12]}>
<Col span={24}>
<WordCloud />
@@ -60,7 +60,7 @@ const StatementDetail = forwardRef<{ handleRefresh: () => void },{ refresh: () =
</Col>
</Row>
</Col>
<Col span={12}>
<Col span={12} className="rb:h-full!">
<Suggestions ref={suggestionsRef} refresh={refresh} />
</Col>
</Row>

View File

@@ -2,7 +2,7 @@
* @Author: ZhaoYing
* @Date: 2026-01-12 14:42:02
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-03-25 11:55:36
* @Last Modified time: 2026-03-27 11:15:05
*/
import { type FC, useEffect, useState, useMemo, useRef } from 'react'
import clsx from 'clsx'
@@ -155,14 +155,14 @@ const WorkingDetail: FC = () => {
: data.length === 0
? <Empty />
:(
<Row gutter={16}>
<Col span={5}>
<Row gutter={16} className="rb:h-full!">
<Col span={5} className="rb:h-full!">
<RbCard
title={t('workingDetail.conversation')}
headerType="borderless"
headerClassName="rb:min-h-[58px]! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName='rb:p-3! rb:pt-0! rb:h-[calc(100%-58px)]'
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
<div id="conversation-list" className="rb:h-full! rb:overflow-y-auto">
<InfiniteScroll
@@ -197,13 +197,13 @@ const WorkingDetail: FC = () => {
</RbCard>
</Col>
{selected && <>
<Col flex="auto" className="rb:h-full">
<Col flex="auto" className="rb:h-full!">
<RbCard
title={selected.title}
headerType="borderless"
headerClassName="rb:min-h-[42px]! rb:pt-4! rb:font-[MiSans-Bold] rb:font-bold"
bodyClassName='rb:p-4! rb:pt-0! rb:h-[calc(100%-42px)]'
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
<div className="rb:text-[#5B6167] rb:leading-4.5 rb:text-[12px]">{timeRange}</div>
<Flex justify="space-between" align="center" className="rb:bg-[#F6F6F6] rb:rounded-lg rb:py-2.5! rb:pr-2.5! rb:pl-3.25! rb:mt-3!">
@@ -226,13 +226,13 @@ const WorkingDetail: FC = () => {
}
</RbCard>
</Col>
<Col flex='360px' className="rb:h-full">
<Col flex='360px' className="rb:h-full!">
<RbCard
title={t('workingDetail.successfulTitle')}
headerType="borderless"
headerClassName="rb:min-h-[50px]! rb:font-[MiSans-Bold] rb:font-bold rb:leading-5.5"
bodyClassName='rb:p-4! rb:pt-0! rb:h-[calc(100%-50px)] rb:overflow-y-auto!'
className="rb:h-[calc(100vh-88px)]!"
className="rb:h-full!"
>
{detailLoading
? <Skeleton active />