feat: show doc info and tech params

This commit is contained in:
Joel 2025-02-28 14:32:53 +08:00
parent 61c46aa625
commit 45d6f23553
4 changed files with 37 additions and 10 deletions

View File

@ -279,9 +279,7 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => {
className='mr-2 mt-3'
datasetId={datasetId}
documentId={documentId}
// docDetail={{ ...documentDetail, ...documentMetadata, doc_type: documentMetadata?.doc_type === 'others' ? '' : documentMetadata?.doc_type } as any}
// loading={isMetadataLoading}
// onUpdate={metadataMutate}
docDetail={{ ...documentDetail, ...documentMetadata, doc_type: documentMetadata?.doc_type === 'others' ? '' : documentMetadata?.doc_type } as any}
/>
</FloatRightContainer>
</div>

View File

@ -2,7 +2,9 @@ import { useBatchUpdateDocMetadata } from '@/service/knowledge/use-metadata'
import { DataType, type MetadataItemWithValue } from '../types'
import { useState } from 'react'
import Toast from '@/app/components/base/toast'
import type { FullDocumentDetail } from '@/models/datasets'
import { useTranslation } from 'react-i18next'
import { useMetadataMap } from '@/hooks/use-metadata'
const testList = [
{
@ -28,11 +30,13 @@ const testList = [
type Props = {
datasetId: string
documentId: string
docDetail: FullDocumentDetail
}
const useMetadataDocument = ({
datasetId,
documentId,
docDetail,
}: Props) => {
const { t } = useTranslation()
@ -85,6 +89,27 @@ const useMetadataDocument = ({
},
]
// old metadata and technical params
const metadataMap = useMetadataMap()
const getReadOnlyMetaData = (mainField: 'originInfo' | 'technicalParameters') => {
const fieldMap = metadataMap[mainField]?.subFieldsMap
const sourceData = docDetail
const fieldList = Object.keys(fieldMap).map((key) => {
const field = fieldMap[key]
return {
id: field?.label,
type: DataType.string,
name: field?.label,
value: sourceData[key],
}
})
return fieldList
}
const originInfo = getReadOnlyMetaData('originInfo')
const technicalParameters = getReadOnlyMetaData('technicalParameters')
return {
isEdit,
setIsEdit,
@ -98,6 +123,8 @@ const useMetadataDocument = ({
startToEdit,
handleSave,
handleCancel,
originInfo,
technicalParameters,
}
}

View File

@ -8,6 +8,7 @@ import { RiEditLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import Divider from '@/app/components/base/divider'
import useMetadataDocument from '../hooks/use-metadata-document'
import type { FullDocumentDetail } from '@/models/datasets'
import cn from '@/utils/classnames'
const i18nPrefix = 'dataset.metadata.documentMetadata'
@ -16,11 +17,13 @@ type Props = {
datasetId: string
documentId: string
className?: string
docDetail: FullDocumentDetail
}
const MetadataDocument: FC<Props> = ({
datasetId,
documentId,
className,
docDetail,
}) => {
const { t } = useTranslation()
const {
@ -35,10 +38,9 @@ const MetadataDocument: FC<Props> = ({
startToEdit,
handleSave,
handleCancel,
} = useMetadataDocument({ datasetId, documentId })
const documentInfoList = builtList
const technicalParams = builtList
originInfo,
technicalParameters,
} = useMetadataDocument({ datasetId, documentId, docDetail })
return (
<div className={cn('w-[388px] space-y-4', className)}>
@ -98,12 +100,12 @@ const MetadataDocument: FC<Props> = ({
<InfoGroup
className='pl-2'
title={t(`${i18nPrefix}.documentInformation`)}
list={documentInfoList}
list={originInfo}
/>
<InfoGroup
className='pl-2'
title={t(`${i18nPrefix}.technicalParameters`)}
list={technicalParams}
list={technicalParameters}
/>
</div>
)

View File

@ -58,7 +58,7 @@ const InfoGroup: FC<Props> = ({
</div>
)}
<div className={cn('mt-3 space-y-1', !noHeader && 'mt-0', contentClassName)}>
<div className={cn('mt-3 space-y-1', contentClassName)}>
{isEdit && (
<div>
<SelectMetadataModal