diff --git a/src/components/FileStatus/FileStatus.tsx b/src/components/FileStatus/FileStatus.tsx index 9910cf8..ad21fa5 100644 --- a/src/components/FileStatus/FileStatus.tsx +++ b/src/components/FileStatus/FileStatus.tsx @@ -10,6 +10,9 @@ import { Progress, Button } from 'antd'; import { TaskStatus, TaskType } from '@/services/API.helper'; import { DATA } from '@/services/API'; import { identity } from 'lodash'; +import { useCallback } from 'react'; +import { fetchLocalApi } from '@/utils/request'; +import system from '@/services/system'; interface FileStatusProps { className?: string; @@ -31,6 +34,15 @@ export default function FileStatus(props: FileStatusProps) { ? `${data.createUserName}同步` : ''; }, [data]); + + const redoTask = useCallback(() => { + fetchLocalApi('restartTask', { taskIds: data.taskId }); + }, [data.taskId]); + + const checkFile = useCallback(() => { + system.openFilePosition(data); + }, [data]); + return (
@@ -61,7 +73,12 @@ export default function FileStatus(props: FileStatusProps) {
{/* 查看1: 已下载 文件打开文件夹 */} {data.taskSyncStatus === TaskStatus.FINISH ? ( - ) : null} @@ -69,6 +86,16 @@ export default function FileStatus(props: FileStatusProps) { {/* 下载: 未下载 且 未删除 文件 */} {/* 重新下载: 下载失败时出现 */} {/* 重新上传: 上传失败时出现 */} + {data.taskSyncStatus === TaskStatus.FAILED ? ( + + ) : null} {/* */} {/* */} {/* */} diff --git a/src/components/SyncModal/SyncModal.tsx b/src/components/SyncModal/SyncModal.tsx index 706ef8e..0041223 100644 --- a/src/components/SyncModal/SyncModal.tsx +++ b/src/components/SyncModal/SyncModal.tsx @@ -71,6 +71,7 @@ export default function SyncModal() { cancelText="取消" okText="确定" width={540} + maskClosable={false} onCancel={() => setModalVisible(false)} okButtonProps={{ disabled: selectedKeys.length === 0, diff --git a/src/services/system.ts b/src/services/system.ts index 3369118..7f28dc7 100644 --- a/src/services/system.ts +++ b/src/services/system.ts @@ -26,14 +26,16 @@ const system = { } ipcRenderer.invoke('open-browser', url); }, - // 选择文件 + // 选择文件夹 chooseFolder: safeCall(async () => { const res = await ipcRenderer.invoke('select-folder'); const { canceled, filePaths } = res; if (canceled) return null; return filePaths[0] as string; }), - + openFilePosition: safeCall((message: DATA.SocketFileMsg) => { + ipcRenderer.invoke('open-file-position', message); + }), storage: { set: safeCall((key: string, value: any) => { ipcRenderer.invoke('storage:set', { key, value }); @@ -68,11 +70,15 @@ const system = { if (isClient) { window.addIpcRendererListener( 'request-resync-file', - (e, msg: DATA.SocketFileMsg) => {}, + (e, msg: DATA.SocketFileMsg) => { + fetchLocalApi('restartTask', { taskIds: msg.taskId }); + }, ); window.addIpcRendererListener( 'request-download-file', - (e, msg: DATA.SocketFileMsg) => {}, + (e, msg: DATA.SocketFileMsg) => { + fetchLocalApi('restartTask', { taskIds: msg.taskId }); + }, ); }