From 990c7a2693ccd11cf556d7320493a48f86359c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B6=85=E7=BA=A7=E8=80=81=E7=99=BD=E5=85=94?= Date: Thu, 30 Oct 2025 16:42:42 +0800 Subject: [PATCH] Refactor API interactions in GlobalPromptModal to utilize new initGlobalPrompt and saveGlobalPrompt functions. Update modal logic to handle prompt configuration more effectively, removing deprecated state management for enabling prompts. Enhance user experience with improved input handling and feedback mechanisms. --- .../mobile/workspace/ai-knowledge/list/api.ts | 46 ++++++++------- .../list/components/GlobalPromptModal.tsx | 58 ++++++++++--------- 2 files changed, 55 insertions(+), 49 deletions(-) diff --git a/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/api.ts b/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/api.ts index f84e30fb..e2e445e8 100644 --- a/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/api.ts +++ b/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/api.ts @@ -62,29 +62,33 @@ export function deleteKnowledgeBase(id: number): Promise { return request("/v1/knowledge/deleteType", { id }, "DELETE"); } -// 切换知识库状态(启用/禁用)- 注意:实际接口未提供,保留兼容 -export function toggleKnowledgeBaseStatus( - id: number, - status: 0 | 1, -): Promise { - // 由于接口文档中没有此接口,暂时使用编辑接口实现 - console.warn("toggleKnowledgeBaseStatus 接口未提供,需要后端补充"); - return Promise.resolve({ success: true }); +// 初始化统一提示词配置 +export function initGlobalPrompt(): Promise { + return request("/v1/knowledge/init", undefined, "GET"); } -// 获取统一提示词配置 - 使用发布接口返回的 prompt_info -export function getGlobalPrompt(): Promise { - // 注意:实际接口未单独提供,需要通过 release 接口获取 - console.warn("getGlobalPrompt 接口未提供,需要后端补充"); - return Promise.resolve({ - enabled: true, - content: "", - }); +interface SaveGlobalPromptData { + promptInfo: string; +} +interface PromptResponse { + id: number; + companyId: number; + userId: number; + config: { + name: string; + model_id: string; + prompt_info: string; + }; + createTime: string; + updateTime: string; + isRelease: number; + releaseTime: number; + botId: string; + datasetId: string; } - // 保存统一提示词配置 -export function saveGlobalPrompt(data: GlobalPromptConfig): Promise { - // 注意:实际接口未提供,需要后端补充 - console.warn("saveGlobalPrompt 接口未提供,需要后端补充"); - return Promise.resolve({ success: true }); +export function saveGlobalPrompt( + data: SaveGlobalPromptData, +): Promise { + return request("/v1/knowledge/savePrompt", data, "POST"); } diff --git a/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/components/GlobalPromptModal.tsx b/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/components/GlobalPromptModal.tsx index fb1d2086..3ffa9c37 100644 --- a/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/components/GlobalPromptModal.tsx +++ b/Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/components/GlobalPromptModal.tsx @@ -1,15 +1,15 @@ import React, { useState, useEffect } from "react"; import { Popup, Toast } from "antd-mobile"; -import { Input, Button, Switch } from "antd"; -import { CloseOutlined } from "@ant-design/icons"; +import { Input, Button } from "antd"; const { TextArea } = Input; import { InfoCircleOutlined, ExclamationCircleFilled, InfoCircleFilled, } from "@ant-design/icons"; -import { getGlobalPrompt, saveGlobalPrompt } from "../api"; +import { initGlobalPrompt, saveGlobalPrompt } from "../api"; import style from "../index.module.scss"; +import { config } from "antd-mobile/es/components/toast/methods"; interface GlobalPromptModalProps { visible: boolean; @@ -30,7 +30,6 @@ const GlobalPromptModal: React.FC = ({ }) => { const [loading, setLoading] = useState(false); const [saving, setSaving] = useState(false); - const [enabled, setEnabled] = useState(true); const [content, setContent] = useState(DEFAULT_PROMPT); useEffect(() => { @@ -43,9 +42,9 @@ const GlobalPromptModal: React.FC = ({ const fetchGlobalPrompt = async () => { setLoading(true); try { - const config = await getGlobalPrompt(); - setEnabled(config.enabled); - setContent(config.content || DEFAULT_PROMPT); + const res = await initGlobalPrompt(); + // 假定返回的数据结构包含 promptInfo 字段 + setContent(res?.config?.prompt_info || DEFAULT_PROMPT); } catch (error) { Toast.show({ content: "获取配置失败", position: "bottom" }); } finally { @@ -54,9 +53,9 @@ const GlobalPromptModal: React.FC = ({ }; const handleSave = async () => { - if (enabled && !content.trim()) { + if (!content.trim()) { Toast.show({ - content: "启用统一提示词时,请输入提示词内容", + content: "请输入提示词内容", position: "bottom", }); return; @@ -64,8 +63,7 @@ const GlobalPromptModal: React.FC = ({ setSaving(true); try { await saveGlobalPrompt({ - enabled, - content: content.trim(), + promptInfo: content.trim(), }); Toast.show({ content: "保存成功", position: "bottom" }); onClose(); @@ -105,26 +103,30 @@ const GlobalPromptModal: React.FC = ({ /> 统一提示词配置 - + + × +
设置所有知识库的通用回复规范
-
- 启用统一提示词 - -
- {enabled && ( -