From a9eedd743ed2276bbbdac380ac9689fa5b9abf84 Mon Sep 17 00:00:00 2001 From: linfeng <2819853134@qq.com> Date: Fri, 21 Mar 2025 22:34:24 +0800 Subject: [PATCH] lin --- .../app/main/admin/deptsettingpage/page.tsx | 36 ++++++++----------- .../admin/sharecode/sharecodegenerator.tsx | 12 ++++--- .../admin/sharecode/sharecodevalidator.tsx | 4 +-- 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/apps/web/src/app/main/admin/deptsettingpage/page.tsx b/apps/web/src/app/main/admin/deptsettingpage/page.tsx index 40a307a..868396a 100644 --- a/apps/web/src/app/main/admin/deptsettingpage/page.tsx +++ b/apps/web/src/app/main/admin/deptsettingpage/page.tsx @@ -2,9 +2,9 @@ import { useTusUpload } from "@web/src/hooks/useTusUpload"; import { ShareCodeGenerator } from "../sharecode/sharecodegenerator"; import { ShareCodeValidator } from "../sharecode/sharecodevalidator"; import { useState, useRef, useCallback } from "react"; -import { message, Progress, Button, Tabs } from "antd"; +import { message, Progress, Button, Tabs, DatePicker } from "antd"; import { UploadOutlined, DeleteOutlined, InboxOutlined } from "@ant-design/icons"; - +import {env} from '../../../../env' const { TabPane } = Tabs; export default function DeptSettingPage() { @@ -13,6 +13,7 @@ export default function DeptSettingPage() { const [fileNameMap, setFileNameMap] = useState>({}); const [uploadedFiles, setUploadedFiles] = useState<{id: string, name: string}[]>([]); const [isDragging, setIsDragging] = useState(false); + const [expireTime, setExpireTime] = useState(null); const dropRef = useRef(null); // 使用您的 useTusUpload hook @@ -51,7 +52,7 @@ export default function DeptSettingPage() { try { console.log('正在保存文件名到数据库:', result.fileName, '对应文件ID:', result.fileId); - const response = await fetch('http://localhost:3000/upload/filename', { + const response = await fetch(`http://${env.SERVER_IP}:${env.SERVER_PORT}/upload/filename`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -87,11 +88,9 @@ export default function DeptSettingPage() { }; // 处理多个文件上传 - const handleFilesUpload = (files: FileList | File[]) => { - Array.from(files).forEach(file => { - handleFileSelect(file); - }); - }; + // const handleFilesUpload = (file: File) => { + // handleFileSelect(file); + // }; // 拖拽相关处理函数 const handleDragEnter = useCallback((e: React.DragEvent) => { @@ -117,15 +116,9 @@ export default function DeptSettingPage() { e.stopPropagation(); setIsDragging(false); - if (e.dataTransfer.files && e.dataTransfer.files.length > 0) { - handleFilesUpload(e.dataTransfer.files); - } + handleFileSelect(e.dataTransfer.files[0]); }, []); - // 删除文件 - const handleDeleteFile = (index: number) => { - setUploadedFiles(prev => prev.filter((_, i) => i !== index)); - }; // 处理分享码生成成功 const handleShareSuccess = (code: string) => { @@ -165,6 +158,7 @@ export default function DeptSettingPage() { } }; + return (

文件分享中心

@@ -192,20 +186,20 @@ export default function DeptSettingPage() { >

点击或拖拽文件到此区域进行上传

-

支持单个或批量上传文件

+

支持单个上传文件

{ - const files = e.target.files; - if (files && files.length > 0) { - handleFilesUpload(files); + const file = e.target.files[0]; + if (file) { + handleFileSelect(file); } }} disabled={isUploading} - multiple + />
))} @@ -287,6 +280,7 @@ export default function DeptSettingPage() { {uploadedFileId && (

第二步:生成分享码

+ void; @@ -23,7 +23,7 @@ export const ShareCodeGenerator: React.FC = ({ console.log('开始生成分享码,fileId:', fileId, 'fileName:', fileName); try { - const response = await fetch(`http://localhost:3000/upload/share/${fileId}`, { + const response = await fetch(`http://${env.SERVER_IP}:${env.SERVER_PORT}/upload/share/${fileId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -33,7 +33,7 @@ export const ShareCodeGenerator: React.FC = ({ }) }); console.log('Current fileId:', fileId); // 确保 fileId 有效 - console.log('请求URL:', `/upload/share/${fileId}`); + console.log('请求URL:', `http://${env.SERVER_IP}:${env.SERVER_PORT}/upload/share/${fileId}`); console.log('API响应状态:', response.status); const responseText = await response.text(); @@ -119,10 +119,14 @@ export const ShareCodeGenerator: React.FC = ({ }} />
- {expiresAt && ( + {expiresAt ? (
有效期至: {expiresAt.toLocaleString()}
+ ) : ( +
+ 未获取到有效期信息 +
)} )} diff --git a/apps/web/src/app/main/admin/sharecode/sharecodevalidator.tsx b/apps/web/src/app/main/admin/sharecode/sharecodevalidator.tsx index a973456..dc6ae85 100644 --- a/apps/web/src/app/main/admin/sharecode/sharecodevalidator.tsx +++ b/apps/web/src/app/main/admin/sharecode/sharecodevalidator.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { Input, Button, message } from 'antd'; import styles from './ShareCodeValidator.module.css'; - +import {env} from '../../../../env' interface ShareCodeValidatorProps { onValidSuccess: (fileId: string, fileName: string) => void; } @@ -20,7 +20,7 @@ export const ShareCodeValidator: React.FC = ({ setLoading(true); try { - const response = await fetch(`http://localhost:3000/upload/share/${code.trim()}`); + const response = await fetch(`http://${env.SERVER_IP}:${env.SERVER_PORT}/upload/share/${code.trim()}`); if (!response.ok) { const errorData = await response.json().catch(() => ({}));