diff --git a/web/src/components/chunk_image/index.less b/web/src/components/chunk_image/index.less new file mode 100644 index 0000000..6aff0bd --- /dev/null +++ b/web/src/components/chunk_image/index.less @@ -0,0 +1,15 @@ +.primitiveImg { + display: inline-block; + max-height: 100px; +} + +.image { + max-width: 100px; + object-fit: contain; +} + +.imagePreview { + display: block; + max-width: 45vw; + max-height: 40vh; +} diff --git a/web/src/components/chunk_image/index.tsx b/web/src/components/chunk_image/index.tsx new file mode 100644 index 0000000..13c22c1 --- /dev/null +++ b/web/src/components/chunk_image/index.tsx @@ -0,0 +1,36 @@ +import { api_host } from '@/utils/api'; +import { Popover } from 'antd'; +import classNames from 'classnames'; + +import styles from './index.less'; + +interface IImage { + id: string; + className: string; +} + +const ChunkImage = ({ id, className, ...props }: IImage) => { + return ( + + ); +}; + +export default ChunkImage; + +export const ImageWithPopover = ({ id }: { id: string }) => { + return ( + + } + > + + + ); +}; diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/index.less b/web/src/pages/add-knowledge/components/knowledge-chunk/index.less index a41a35a..617f479 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/index.less +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/index.less @@ -90,3 +90,32 @@ cursor: pointer; } + +.imagePreviewPane { + width: 200px; + min-width: 200px; + background-color: var(--colors-background-inverse-weak); + border-radius: 8px; + padding: 16px; + display: flex; + flex-direction: column; + + h4 { + margin-bottom: 12px; + font-weight: 500; + } + + .imagePreviewContainer { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + + .fullSizeImage { + max-width: 100%; + max-height: 100%; + object-fit: contain; + } + } +} diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx index 6bce601..52967f5 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx @@ -1,3 +1,4 @@ +import ChunkImage from '@/components/chunk_image'; import { useFetchNextChunkList, useSwitchChunk } from '@/hooks/chunk-hooks'; import type { PaginationProps } from 'antd'; import { Divider, Flex, Pagination, Space, Spin, message } from 'antd'; @@ -46,6 +47,9 @@ const Chunk = () => { documentId, } = useUpdateChunk(); + // 获取选中的chunk + const selectedChunk = data.find((item) => item.chunk_id === selectedChunkId); + const onPaginationChange: PaginationProps['onShowSizeChange'] = ( page, size, @@ -134,6 +138,37 @@ const Chunk = () => { > + {/* 左侧图片预览窗格 */} +
+

{t('关联图片显示区域')}

+ {selectedChunk ? ( + selectedChunk.img_id ? ( +
+ +
+ ) : ( +
+ {' '} + {/* 新增的容器,可能需要样式 */} +

{t('chunk.noImageAssociated', '此区块没有关联图片')}

+
+ ) + ) : ( +
+ {' '} + {/* 新增的容器,可能需要样式 */} +

+ {t( + 'chunk.selectChunkToViewImage', + '请选择一个块以查看其图片', + )} +

+
+ )} +