diff --git a/packages/global/core/chat/setting/type.d.ts b/packages/global/core/chat/setting/type.d.ts index ce0cf7b3e..47dfdb1fc 100644 --- a/packages/global/core/chat/setting/type.d.ts +++ b/packages/global/core/chat/setting/type.d.ts @@ -4,6 +4,7 @@ export type ChatSettingSchema = { teamId: string; slogan: string; dialogTips: string; + enableHome: boolean; homeTabTitle: string; wideLogoUrl?: string; squareLogoUrl?: string; diff --git a/packages/service/core/chat/setting/schema.ts b/packages/service/core/chat/setting/schema.ts index e421137fe..193ce7054 100644 --- a/packages/service/core/chat/setting/schema.ts +++ b/packages/service/core/chat/setting/schema.ts @@ -18,6 +18,10 @@ const ChatSettingSchema = new Schema({ ref: AppCollectionName, required: true }, + enableHome: { + type: Boolean, + default: true + }, slogan: String, dialogTips: String, selectedTools: { diff --git a/packages/web/i18n/en/chat.json b/packages/web/i18n/en/chat.json index e0b5e51b8..6030a45bd 100644 --- a/packages/web/i18n/en/chat.json +++ b/packages/web/i18n/en/chat.json @@ -135,6 +135,7 @@ "setting.home.dialogue_tips": "Dialog prompt text", "setting.home.dialogue_tips.default": "You can ask me any questions", "setting.home.dialogue_tips_placeholder": "Please enter the prompt text of the dialog box", + "setting.home.enable": "Enable home page", "setting.home.home_tab_title": "Home Page Title", "setting.home.home_tab_title_placeholder": "Please enter the title of the homepage", "setting.home.no_selected_app": "No selected App", diff --git a/packages/web/i18n/zh-CN/chat.json b/packages/web/i18n/zh-CN/chat.json index 8707378f2..fe81ea6c6 100644 --- a/packages/web/i18n/zh-CN/chat.json +++ b/packages/web/i18n/zh-CN/chat.json @@ -147,6 +147,7 @@ "setting.home.cancel_button": "取消", "setting.home.confirm_button": "确定", "setting.home.no_selected_app": "未选择应用", + "setting.home.enable": "启用首页", "setting.incorrect_plan": "当前套餐不支持该功能,请升级订阅套餐", "setting.incorrect_version": "当前版本不支持该功能", "setting.log_details.title": "首页日志", diff --git a/packages/web/i18n/zh-Hant/chat.json b/packages/web/i18n/zh-Hant/chat.json index e55292a15..3968c8d92 100644 --- a/packages/web/i18n/zh-Hant/chat.json +++ b/packages/web/i18n/zh-Hant/chat.json @@ -134,6 +134,7 @@ "setting.home.dialogue_tips": "對話框提示文字", "setting.home.dialogue_tips.default": "你可以問我任何問題", "setting.home.dialogue_tips_placeholder": "請輸入對話框提示文字", + "setting.home.enable": "啟用首頁", "setting.home.home_tab_title": "首頁標題", "setting.home.home_tab_title_placeholder": "請輸入首頁標題", "setting.home.no_selected_app": "未選擇應用", diff --git a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx index 52fed72e6..3cff6d9ad 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx @@ -1,4 +1,13 @@ -import { Box, Button, Flex, Grid, IconButton, Input, useDisclosure } from '@chakra-ui/react'; +import { + Switch, + Box, + Button, + Flex, + Grid, + IconButton, + Input, + useDisclosure +} from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; import MyInput from '@/components/MyInput'; import { useCallback, useState } from 'react'; @@ -8,7 +17,6 @@ import { updateChatSetting } from '@/web/core/chat/api'; import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; import ImageUpload from '@/pageComponents/chat/ChatSetting/ImageUpload'; import type { - ChatSettingSchema, ChatSettingUpdateParams, QuickAppType, SelectedToolType @@ -28,6 +36,7 @@ import { import { useSystem } from '@fastgpt/web/hooks/useSystem'; import dynamic from 'next/dynamic'; import type { ChatSettingReturnType } from '@fastgpt/global/core/chat/setting/type'; +import MyPopover from '@fastgpt/web/components/common/MyPopover'; const AddQuickAppModal = dynamic( () => import('@/pageComponents/chat/ChatSetting/HomepageSetting/AddQuickAppModal') @@ -54,6 +63,7 @@ const HomepageSetting = ({ Header, onDiagramShow }: Props) => { const chatSettings2Form = useCallback( (data?: ChatSettingReturnType) => { return { + enableHome: data?.enableHome, slogan: data?.slogan || t('chat:setting.home.slogan.default'), dialogTips: data?.dialogTips || t('chat:setting.home.dialogue_tips.default'), homeTabTitle: data?.homeTabTitle || 'FastGPT', @@ -168,6 +178,14 @@ const HomepageSetting = ({ Header, onDiagramShow }: Props) => { > + {/* ENABLE HOME */} + + + {t('chat:setting.home.enable')} + + + + {/* QUICK APPS */} diff --git a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx index bbbadc45a..ecddc8594 100644 --- a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx +++ b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx @@ -190,7 +190,7 @@ const HomeChatWindow = ({ myApps }: Props) => { }; useMount(() => { - if (!feConfigs?.isPlus) { + if (!feConfigs?.isPlus || !chatSettings?.enableHome) { handlePaneChange(ChatSidebarPaneEnum.TEAM_APPS); } }); diff --git a/projects/app/src/pageComponents/chat/slider/index.tsx b/projects/app/src/pageComponents/chat/slider/index.tsx index 596d2cd00..f53536340 100644 --- a/projects/app/src/pageComponents/chat/slider/index.tsx +++ b/projects/app/src/pageComponents/chat/slider/index.tsx @@ -255,6 +255,7 @@ const NavigationSection = () => { const { t } = useTranslation(); const { feConfigs } = useSystemStore(); + const isEnableHome = useContextSelector(ChatSettingContext, (v) => v.chatSettings?.enableHome); const isCollapsed = useContextSelector(ChatSettingContext, (v) => v.collapse === 1); const onTriggerCollapse = useContextSelector(ChatSettingContext, (v) => v.onTriggerCollapse); const isHomeActive = useContextSelector( @@ -283,12 +284,14 @@ const NavigationSection = () => { {feConfigs.isPlus && ( <> - handlePaneChange(ChatSidebarPaneEnum.HOME)} - /> + {isEnableHome && ( + handlePaneChange(ChatSidebarPaneEnum.HOME)} + /> + )} { {feConfigs.isPlus && ( <> - handlePaneChange(ChatSidebarPaneEnum.HOME)} - /> + {isEnableHome && ( + handlePaneChange(ChatSidebarPaneEnum.HOME)} + /> + )}