Преглед изворни кода

fix: 修复应用市场与AI助手bug

liaojiaxing пре 3 недеља
родитељ
комит
b1655c5e32

+ 1 - 0
.umirc.ts

@@ -9,6 +9,7 @@ export default defineConfig({
   styles: ["//at.alicdn.com/t/c/font_4840729_yq3mj2py5j.css"],
   scripts: ["//at.alicdn.com/t/c/font_4840729_qpwqs1eruu.js"],
   model: {},
+  title: "易码工坊",
   metas: [
     {
       name: "viewport",

+ 10 - 1
src/hooks/useChat.ts

@@ -331,6 +331,14 @@ export function useChat({ app_name, onSuccess, onUpdate, onError }: ChatProps) {
     }
   };
 
+  /**
+   * 更新会话列表
+   */
+  const refreshConversationList = () => {
+    setPageIndex(1);
+    getSession(1);
+  };
+
   return {
     agent,
     loading,
@@ -347,6 +355,7 @@ export function useChat({ app_name, onSuccess, onUpdate, onError }: ChatProps) {
     addConversation,
     changeConversation,
     loadMoreConversation,
-    hasMoreConversation
+    hasMoreConversation,
+    refreshConversationList
   };
 }

+ 2 - 3
src/pages/ai/Assistant.tsx

@@ -101,6 +101,7 @@ export default (props: AssistantProps) => {
     setConversationList,
     loadMoreConversation,
     hasMoreConversation,
+    refreshConversationList
   } = useChat({
     app_name: props.agent?.key || "",
     onSuccess: (msg) => {
@@ -189,9 +190,7 @@ export default (props: AssistantProps) => {
           session_id: conversation.key,
         }).then(() => {
           message.success("删除成功");
-          setConversationList((list) =>
-            list?.filter((item) => item.key !== conversation.key)
-          );
+          refreshConversationList()
 
           addConversation();
         });

+ 20 - 2
src/pages/ai/data.tsx

@@ -133,8 +133,8 @@ export const assistantList: AgentItem[] = [
   {
     key: "code_generate",
     name: "代码生成",
-    icon: icon6,
-    description: "我可以帮你生成页面代码、JS代码、后端代码、SQL代码等",
+    icon: icon4,
+    description: "我可以帮你生成页面代码、JS代码、后端代码等",
     promptsItems: [
       {
         key: "1",
@@ -148,4 +148,22 @@ export const assistantList: AgentItem[] = [
       },
     ]
   },
+  {
+    key: "sql_generate",
+    name: "SQL生成",
+    icon: icon3,
+    description: "我可以帮你生成各种各样的查询、创建、更新方法~",
+    promptsItems: [
+      {
+        key: "1",
+        icon: <SmileOutlined style={{ color: "#52C41A" }} />,
+        description: "用户统计",
+      },
+      {
+        key: "2",
+        icon: <SmileOutlined style={{ color: "#52C41A" }} />,
+        description: "视图查询",
+      },
+    ]
+  },
 ];

+ 5 - 2
src/pages/management/AddAppDrawer.tsx

@@ -48,6 +48,8 @@ export default ({
   useEffect(() => {
     if (!drawerVisit) {
       onClose();
+      formRef.current?.resetFields();
+      setHtml("");
     }
   }, [drawerVisit]);
 
@@ -55,8 +57,8 @@ export default ({
     if (editData) {
       return {
         ...editData,
-        industries: JSON.parse(editData.industries),
-        applicationScenarios: JSON.parse(editData.applicationScenarios),
+        industries: editData.industries ? JSON.parse(editData.industries) : [],
+        applicationScenarios: editData.applicationScenarios ? JSON.parse(editData.applicationScenarios) : [],
         icon: editData.icon
           ? [
               {
@@ -107,6 +109,7 @@ export default ({
         initialValues={initialValues}
         drawerProps={{
           maskClosable: false,
+          destroyOnClose: true,
         }}
         formRef={formRef}
         size="small"

+ 9 - 3
src/pages/management/AddTemplateDrawer.tsx

@@ -9,7 +9,8 @@ import {
   ProFormMoney,
 } from "@ant-design/pro-components";
 import { Button, Space, message } from "antd";
-import { useEffect, useState, useMemo } from "react";
+import type { FormInstance } from "@ant-design/pro-components";
+import { useEffect, useState, useMemo, useRef } from "react";
 import Editor from "@/components/Editor";
 import { customUploadRequest } from "@/utils";
 import { SaveOrUpdateTemplate, GetTemplateDetail } from "@/api/templateStore";
@@ -31,6 +32,7 @@ export default ({
 }) => {
   const [drawerVisit, setDrawerVisit] = useState(false);
   const [html, setHtml] = useState("");
+  const formRef = useRef<FormInstance>();
 
   const { run } = useRequest(GetTemplateDetail, {
     manual: true,
@@ -51,6 +53,8 @@ export default ({
   useEffect(() => {
     if (!drawerVisit) {
       onClose();
+      setHtml("");
+      formRef.current?.resetFields();
     }
   }, [drawerVisit]);
 
@@ -58,8 +62,8 @@ export default ({
     if (editData) {
       return {
         ...editData,
-        industries: JSON.parse(editData.industries),
-        applicationScenarios: JSON.parse(editData.applicationScenarios),
+        industries: editData.industries ? JSON.parse(editData.industries) : [],
+        applicationScenarios: editData.applicationScenarios ? JSON.parse(editData.applicationScenarios) : [],
         icon: editData.icon
           ? [
               {
@@ -110,7 +114,9 @@ export default ({
         }}
         drawerProps={{
           maskClosable: false,
+          destroyOnClose: true,
         }}
+        formRef={formRef}
         size="small"
       >
         <ProForm.Group title="基础信息">