瀏覽代碼

fix: add spin to parsing status icon of dataset table (#649)

### What problem does this PR solve?

fix: add spin to parsing status icon of dataset table
#648 

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.5.0
balibabu 1 年之前
父節點
當前提交
385dbe5ab5
沒有連結到貢獻者的電子郵件帳戶。

+ 6
- 0
web/src/hooks/documentHooks.ts 查看文件

import { IHighlight } from 'react-pdf-highlighter'; import { IHighlight } from 'react-pdf-highlighter';
import { useDispatch, useSelector } from 'umi'; import { useDispatch, useSelector } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook'; import { useGetKnowledgeSearchParams } from './routeHook';
import { useOneNamespaceEffectsLoading } from './storeHooks';


export const useGetDocumentUrl = (documentId: string) => { export const useGetDocumentUrl = (documentId: string) => {
const url = useMemo(() => { const url = useMemo(() => {


return runDocumentByIds; return runDocumentByIds;
}; };

export const useSelectRunDocumentLoading = () => {
const loading = useOneNamespaceEffectsLoading('kFModel', ['document_run']);
return loading;
};

+ 35
- 0
web/src/pages/add-knowledge/components/knowledge-file/hooks.ts 查看文件

import { import {
useCreateDocument, useCreateDocument,
useFetchDocumentList, useFetchDocumentList,
useRunDocument,
useSaveDocumentName, useSaveDocumentName,
useSelectRunDocumentLoading,
useSetDocumentParser, useSetDocumentParser,
useUploadDocument, useUploadDocument,
} from '@/hooks/documentHooks'; } from '@/hooks/documentHooks';
showDocumentUploadModal, showDocumentUploadModal,
}; };
}; };

export const useHandleRunDocumentByIds = (id: string) => {
const loading = useSelectRunDocumentLoading();
const runDocumentByIds = useRunDocument();
const [currentId, setCurrentId] = useState<string>('');
const isLoading = loading && currentId !== '' && currentId === id;

const handleRunDocumentByIds = async (
documentId: string,
knowledgeBaseId: string,
isRunning: boolean,
) => {
if (isLoading) {
return;
}
setCurrentId(documentId);
try {
await runDocumentByIds({
doc_ids: [documentId],
run: isRunning ? 2 : 1,
knowledgeBaseId,
});
setCurrentId('');
} catch (error) {
setCurrentId('');
}
};

return {
handleRunDocumentByIds,
loading: isLoading,
};
};

+ 11
- 0
web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.less 查看文件

cursor: pointer; cursor: pointer;
} }
} }
.operationIconSpin {
animation: spin 1s linear infinite;
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
}

+ 12
- 8
web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx 查看文件

import { ReactComponent as RefreshIcon } from '@/assets/svg/refresh.svg'; import { ReactComponent as RefreshIcon } from '@/assets/svg/refresh.svg';
import { ReactComponent as RunIcon } from '@/assets/svg/run.svg'; import { ReactComponent as RunIcon } from '@/assets/svg/run.svg';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/commonHooks';
import { useRunDocument } from '@/hooks/documentHooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd'; import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd';
import classNames from 'classnames';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import reactStringReplace from 'react-string-replace'; import reactStringReplace from 'react-string-replace';
import { RunningStatus, RunningStatusMap } from '../constant'; import { RunningStatus, RunningStatusMap } from '../constant';
import { useHandleRunDocumentByIds } from '../hooks';
import { isParserRunning } from '../utils'; import { isParserRunning } from '../utils';
import styles from './index.less'; import styles from './index.less';


const text = record.run; const text = record.run;
const runningStatus = RunningStatusMap[text]; const runningStatus = RunningStatusMap[text];
const { t } = useTranslation(); const { t } = useTranslation();
const runDocumentByIds = useRunDocument();
const { handleRunDocumentByIds, loading } = useHandleRunDocumentByIds(
record.id,
);


const isRunning = isParserRunning(text); const isRunning = isParserRunning(text);


const label = t(`knowledgeDetails.runningStatus${text}`); const label = t(`knowledgeDetails.runningStatus${text}`);


const handleOperationIconClick = () => { const handleOperationIconClick = () => {
runDocumentByIds({
doc_ids: [record.id],
run: isRunning ? 2 : 1,
knowledgeBaseId: record.kb_id,
});
handleRunDocumentByIds(record.id, record.kb_id, isRunning);
}; };


return ( return (
)} )}
</Tag> </Tag>
</Popover> </Popover>
<div onClick={handleOperationIconClick} className={styles.operationIcon}>
<div
onClick={handleOperationIconClick}
className={classNames(styles.operationIcon, {
[styles.operationIconSpin]: loading,
})}
>
<OperationIcon /> <OperationIcon />
</div> </div>
</Flex> </Flex>

+ 1
- 1
web/src/pages/file-manager/index.less 查看文件

.fileManagerWrapper { .fileManagerWrapper {
flex-basis: 100%;
width: 100%;
padding: 32px; padding: 32px;
} }



Loading…
取消
儲存