From 81058b27ef9708ae0b8da7ab5584766e0db8cb22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=87=E8=93=9D=E8=89=B2?= <565837861@qq.com> Date: Tue, 4 Mar 2025 20:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=8D=E4=BA=91=E5=88=97=E8=A1=A8-=E9=83=A8?= =?UTF-8?q?=E9=97=A8-=E4=B8=8A=E4=BC=A0-=E5=9B=BE=E7=89=87-=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.jsx | 26 +++++++- .../Documents/Directory/index.jsx | 3 +- .../Documents/UploadFile/index.jsx | 63 +++++++++--------- .../WorkspaceFileRow/index.jsx | 3 +- .../Documents/WorkspaceDirectory/index.jsx | 5 +- .../ManageWorkspace/Documents/index.jsx | 10 +-- .../ChatHistory/HistoricalMessage/index.jsx | 4 +- .../ChatHistory/PromptReply/index.jsx | 3 +- .../ChatContainer/ChatHistory/index.jsx | 2 +- .../SlashPresets/AddPresetModal.jsx | 29 ++++---- .../SlashPresets/EditPresetModal.jsx | 32 +++++---- .../ChatContainer/PromptInput/index.jsx | 45 +++++++++++-- .../pages/Admin/Users/NewUserModal/index.jsx | 34 +++++----- .../Users/UserRow/EditUserModal/index.jsx | 18 ++--- .../src/pages/Admin/Users/UserRow/index.jsx | 9 +-- frontend/src/pages/Admin/Users/index.jsx | 8 ++- .../Admin/Workspaces/WorkspaceRow/index.jsx | 2 +- .../src/pages/DataAnalysis/DataAnalysis.css | 5 +- frontend/src/pages/DataAnalysis/img/1.png | Bin 4592 -> 25077 bytes frontend/src/pages/DataAnalysis/img/10.png | Bin 3253 -> 33955 bytes frontend/src/pages/DataAnalysis/img/11.png | Bin 4319 -> 15073 bytes frontend/src/pages/DataAnalysis/img/12.png | Bin 5174 -> 35870 bytes frontend/src/pages/DataAnalysis/img/13.png | Bin 5007 -> 26968 bytes frontend/src/pages/DataAnalysis/img/14.png | Bin 4020 -> 39605 bytes frontend/src/pages/DataAnalysis/img/2.png | Bin 3673 -> 29224 bytes frontend/src/pages/DataAnalysis/img/3.png | Bin 4563 -> 27371 bytes frontend/src/pages/DataAnalysis/img/4.png | Bin 4460 -> 30814 bytes frontend/src/pages/DataAnalysis/img/5.png | Bin 5126 -> 39904 bytes frontend/src/pages/DataAnalysis/img/6.png | Bin 4151 -> 28872 bytes frontend/src/pages/DataAnalysis/img/7.png | Bin 3977 -> 39861 bytes frontend/src/pages/DataAnalysis/img/8.png | Bin 2988 -> 37602 bytes frontend/src/pages/DataAnalysis/img/9.png | Bin 3629 -> 30844 bytes frontend/src/pages/DataAnalysis/index.jsx | 45 +++++++------ frontend/src/pages/Home/index.jsx | 18 ++++- .../ReportGeneration/ReportGeneration.css | 5 +- frontend/src/pages/ReportGeneration/index.jsx | 44 +++++++----- frontend/src/pages/Tendency/Tendency.css | 5 +- frontend/src/pages/Tendency/index.jsx | 33 ++++++--- frontend/src/utils/constants.js | 4 +- frontend/src/utils/paths.js | 15 +++++ server/models/slashCommandsPresets.js | 5 +- server/utils/chats/commands/reset.js | 2 +- 42 files changed, 311 insertions(+), 166 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 20da6a4..2853853 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -24,7 +24,12 @@ const PolicyLibrary = lazy(() => import("@/pages/PolicyLibrary")); // 政策库 const DataAnalysis = lazy(() => import("@/pages/DataAnalysis")); // 数据分析 const Tendency = lazy(() => import("@/pages/Tendency")); // 趋势洞察 const Yuqingfenxi = lazy(() => import("@/pages/Yuqingfenxi")); // 分析详情 +const Economics = lazy(() => import("@/pages/Economics")); // 经济发展 +const Talents = lazy(() => import("@/pages/Talents")); // 人才分析 +const Industry = lazy(() => import("@/pages/Industry")); // 产业分析 +const TrendPrediction = lazy(() => import("@/pages/TrendPrediction")); // 趋势预测 const ReportGeneration = lazy(() => import("@/pages/ReportGeneration")); // 报告生成 +const Report = lazy(() => import("@/pages/Report")); // 报告生成1 const InvitePage = lazy(() => import("@/pages/Invite")); const WorkspaceChat = lazy(() => import("@/pages/WorkspaceChat")); @@ -110,6 +115,22 @@ export default function App() { path="/home/Yuqingfenxi" element={} /> + } + /> + } + /> + } + /> + } + /> } @@ -118,7 +139,10 @@ export default function App() { path="/home/ReportGeneration" element={} /> - + } + /> } /> { event.preventDefault(); diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx index 93fb747..fdd7371 100644 --- a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx +++ b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx @@ -80,7 +80,7 @@ export default function UploadFile({ return (
- Document Processor Unavailable + 文档处理器不可用
- We can't upload your files right now because the document - processor is offline. Please try again later. + 我们现在不能上传你的文件,因为文件 + 处理器脱机。请稍后再试。
- ) : files.length === 0 ? ( -
- -
- 单击上传或拖放 + ) + : files.length === 0 ? ( +
+ +
+ 单击上传或拖放 +
+
+ 支持文本文件,csv,电子表格,音频文件,和更多! +
-
- 支持文本文件,csv,电子表格,音频文件,和更多! + ) : ( +
+ {files.map((file) => ( + + ))}
-
- ) : ( -
- {files.map((file) => ( - - ))} -
- )} + )}
或者提交一个链接 diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx index 76bb371..576c3ba 100644 --- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx +++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx @@ -31,7 +31,8 @@ export default function WorkspaceFileRow({ setLoadingMessage(`从文件分析区中删除文件中`); await Workspace.modifyEmbeddings(workspace.slug, { adds: [], - deletes: [`${folderName}/${item.name}`], + // deletes: [`${folderName}/${item.name}`], + deletes: [`${item.relativePath}`], }); await fetchKeys(true); } catch (error) { diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx index 6662181..84a7ced 100644 --- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx +++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx @@ -26,7 +26,6 @@ function WorkspaceDirectory({ movedItems, }) { const [selectedItems, setSelectedItems] = useState({}); - const toggleSelection = (item) => { setSelectedItems((prevSelectedItems) => { const newSelectedItems = { ...prevSelectedItems }; @@ -41,6 +40,7 @@ function WorkspaceDirectory({ const toggleSelectAll = () => { const allItems = files.items.flatMap((folder) => folder.items); + const allSelected = allItems.every((item) => selectedItems[item.id]); if (allSelected) { setSelectedItems({}); @@ -53,6 +53,7 @@ function WorkspaceDirectory({ } }; + const removeSelectedItems = async () => { setLoading(true); setLoadingMessage("Removing selected files from workspace"); @@ -60,7 +61,9 @@ function WorkspaceDirectory({ const itemsToRemove = Object.keys(selectedItems).map((itemId) => { const folder = files.items.find((f) => f.items.some((i) => i.id === itemId) + ); + const item = folder.items.find((i) => i.id === itemId); return `${folder.name}/${item.name}`; }); diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/index.jsx index b857aa1..952f8eb 100644 --- a/frontend/src/components/Modals/ManageWorkspace/Documents/index.jsx +++ b/frontend/src/components/Modals/ManageWorkspace/Documents/index.jsx @@ -34,7 +34,7 @@ export default function DocumentSettings({ workspace, systemSettings }) { : workspace; const documentsInWorkspace = - currentWorkspace.documents.map((doc) => doc.docpath) || []; + currentWorkspace.documents.map((doc) => doc.filename) || []; // Documents that are not in the workspace const availableDocs = { @@ -46,7 +46,7 @@ export default function DocumentSettings({ workspace, systemSettings }) { items: folder.items.filter( (file) => file.type === "file" && - !documentsInWorkspace.includes(`${folder.name}/${file.name}`) + !documentsInWorkspace.includes(`${file.name}`) ), }; } else { @@ -65,7 +65,7 @@ export default function DocumentSettings({ workspace, systemSettings }) { items: folder.items.filter( (file) => file.type === "file" && - documentsInWorkspace.includes(`${folder.name}/${file.name}`) + documentsInWorkspace.includes(`${file.name}`) ), }; } else { @@ -90,9 +90,11 @@ export default function DocumentSettings({ workspace, systemSettings }) { setLoadingMessage("对于大型文档,这可能需要一段时间"); const changesToSend = { - adds: movedItems.map((item) => `${item.folderName}/${item.name}`), + // adds: movedItems.map((item) => `${item.folderName}/${item.name}`), + adds: movedItems.map((item) => `${item.relativePath}`), }; + setSelectedItems({}); setHasChanges(false); setHighlightWorkspace(false); diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx index fa1ebaa..5007c0b 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx @@ -53,7 +53,7 @@ const HistoricalMessage = ({ return (
@@ -81,7 +81,7 @@ const HistoricalMessage = ({ onAnimationEnd={onEndAnimation} className={`${ isDeleted ? "animate-remove" : "" - } flex justify-center items-end w-full group `} + } flex justify-center items-end w-full group`} >
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx index 71169bf..ab6f156 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx @@ -19,7 +19,8 @@ const PromptReply = ({ sources = [], closed = true, }) => { - const assistantBackgroundColor = "bg-theme-bg-chat"; + // const assistantBackgroundColor = bg-theme-bg-chat + const assistantBackgroundColor = "bg-[#F9FBFD]"; if (!reply && sources.length === 0 && !pending && !error) return null; diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx index e939dae..ee61f19 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx @@ -176,7 +176,7 @@ export default function ChatHistory({ if (history.length === 0 && !hasAttachments) { return ( -
+

欢迎来到你的新工作空间。 diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx index 2cabfda..4ea7a06 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx @@ -9,17 +9,22 @@ export default function AddPresetModal({ isOpen, onClose, onSave }) { const handleSubmit = async (e) => { e.preventDefault(); const form = new FormData(e.target); - const sanitizedCommand = command.replace(CMD_REGEX, ""); + // 修改默认输入框英文设置 + // const sanitizedCommand = command.replace(CMD_REGEX, ""); + const sanitizedCommand = command const saved = await onSave({ - command: `/${sanitizedCommand}`, + // command: `/${sanitizedCommand}`, + command:sanitizedCommand, prompt: form.get("prompt"), description: form.get("description"), }); if (saved) setCommand(""); + window.location.reload() }; const handleCommandChange = (e) => { - const value = e.target.value.replace(CMD_REGEX, ""); + // const value = e.target.value.replace(CMD_REGEX, ""); + const value = e.target.value setCommand(value); }; @@ -29,7 +34,7 @@ export default function AddPresetModal({ isOpen, onClose, onSave }) {

- Add New Preset + 添加新的提示词

diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx index 3d66102..6246c1e 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx @@ -22,27 +22,33 @@ export default function EditPresetModal({ const handleSubmit = (e) => { e.preventDefault(); const form = new FormData(e.target); - const sanitizedCommand = command.replace(CMD_REGEX, ""); + // 修改默认输入框英文设置 + // const sanitizedCommand = command.replace(CMD_REGEX, ""); + const sanitizedCommand = command onSave({ id: preset.id, - command: `/${sanitizedCommand}`, + // command: `/${sanitizedCommand}`, + command: sanitizedCommand, prompt: form.get("prompt"), description: form.get("description"), }); + window.location.reload() }; const handleCommandChange = (e) => { - const value = e.target.value.replace(CMD_REGEX, ""); + // const value = e.target.value.replace(CMD_REGEX, ""); + const value = e.target.value setCommand(value); }; const handleDelete = async () => { - if (!window.confirm("Are you sure you want to delete this preset?")) return; + if (!window.confirm("您确定要删除此预设吗?")) return; setDeleting(true); await onDelete(preset.id); setDeleting(false); onClose(); + window.location.reload() }; return ( @@ -51,7 +57,7 @@ export default function EditPresetModal({

- Edit Preset + 编辑预设