V4.9.7 feature (#4669)
* update doc * feat: Add coupon redemption feature for team subscriptions (#4595) * feat: Add coupon redemption feature for team subscriptions - Introduced `TeamCouponSub` and `TeamCouponSchema` types - Added `redeemCoupon` API endpoint - Updated UI to include a modal for coupon redemption - Added new icon and translations for "Redeem coupon" * perf: remove field teamId * perf: use dynamic import * refactor: move to page component * perf: coupon code * perf: mcp server * perf: test * auto layout (#4634) * fix 4.9.6 (#4631) * fix debug quote list * delete next text node match * fix extract default boolean value * export latest 100 chat items * fix quote item ui * doc * fix doc * feat: auto layout * perf: auto layout * fix: auto layout null * add start node --------- Co-authored-by: heheer <heheer@sealos.io> * fix: share link (#4644) * Add workflow run duration;Get audio duration (#4645) * add duration * get audio duration * Custom config path (#4649) * feat: 通过环境变量DATA_PATH获取配置文件目录 (#4622) 通过环境变量DATA_PATH获取配置文件目录,以应对不同的部署方式的多样化需求 * feat: custom configjson path * doc --------- Co-authored-by: John Chen <sss1991@163.com> * 程序api调用场景下,如果大量调用带有图片或视频,产生的聊天记录会导致后台mongo数据库异常。这个修改给api客户端一个禁止生成聊天记录的选项,避免这个后果。 (#3964) * update special chatId * perf: vector db rename * update operationLog (#4647) * update operationLog * combine operationLogMap * solve operationI18nLogMap bug * remoce log * feat: Rerank usage (#4654) * refresh concat when update (#4655) * fix: refresh code * perf: timer lock * Fix operationLog (#4657) * perf: http streamable mcp * add alipay (#4630) * perf: subplan ui * perf: pay code * hiden bank tip * Fix: pay error (#4665) * fix quote number (#4666) * remove log --------- Co-authored-by: a.e. <49438478+I-Info@users.noreply.github.com> Co-authored-by: heheer <heheer@sealos.io> Co-authored-by: John Chen <sss1991@163.com> Co-authored-by: gaord <bengao168@msn.com> Co-authored-by: gggaaallleee <91131304+gggaaallleee@users.noreply.github.com>
This commit is contained in:
@@ -35,6 +35,7 @@ import { getAppFolderPath } from '@/web/core/app/api/app';
|
||||
import { AppFolderTypeList } from '@fastgpt/global/core/app/constants';
|
||||
import MyIcon from '@fastgpt/web/components/common/Icon';
|
||||
import { postCreateMcpServer, putUpdateMcpServer } from '../../../web/support/mcp/api';
|
||||
import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip';
|
||||
|
||||
export type EditMcForm = {
|
||||
id?: string;
|
||||
@@ -62,7 +63,7 @@ const SelectAppModal = ({
|
||||
{
|
||||
appId: string;
|
||||
toolName: string;
|
||||
toolAlias: string;
|
||||
appName: string;
|
||||
avatar: string;
|
||||
description: string;
|
||||
}[]
|
||||
@@ -76,7 +77,7 @@ const SelectAppModal = ({
|
||||
data.map((item) => ({
|
||||
appId: item.id,
|
||||
toolName: item.name,
|
||||
toolAlias: item.name,
|
||||
appName: item.name,
|
||||
avatar: item.avatar,
|
||||
description: selectedApps.find((app) => app.appId === item.id)?.description || ''
|
||||
}))
|
||||
@@ -176,7 +177,7 @@ const SelectAppModal = ({
|
||||
{
|
||||
appId: item._id,
|
||||
toolName: item.name,
|
||||
toolAlias: item.name,
|
||||
appName: item.name,
|
||||
avatar: item.avatar,
|
||||
description: item.intro
|
||||
}
|
||||
@@ -281,7 +282,7 @@ const EditMcpModal = ({
|
||||
apps: data.apps.map((item) => ({
|
||||
appId: item.appId,
|
||||
toolName: item.toolName,
|
||||
toolAlias: item.toolAlias,
|
||||
appName: item.appName,
|
||||
description: item.description
|
||||
}))
|
||||
}),
|
||||
@@ -299,7 +300,7 @@ const EditMcpModal = ({
|
||||
apps: data.apps.map((item) => ({
|
||||
appId: item.appId,
|
||||
toolName: item.toolName,
|
||||
toolAlias: item.toolAlias,
|
||||
appName: item.appName,
|
||||
description: item.description
|
||||
}))
|
||||
}),
|
||||
@@ -317,7 +318,7 @@ const EditMcpModal = ({
|
||||
iconSrc="key"
|
||||
title={isEdit ? t('dashboard_mcp:edit_mcp') : t('dashboard_mcp:create_mcp')}
|
||||
w={'100%'}
|
||||
maxW={['90vw', '600px']}
|
||||
maxW={['90vw', '800px']}
|
||||
isOpen
|
||||
onClose={onClose}
|
||||
>
|
||||
@@ -339,8 +340,11 @@ const EditMcpModal = ({
|
||||
<Table>
|
||||
<Thead>
|
||||
<Tr>
|
||||
<Th>
|
||||
{t('dashboard_mcp:tool_name')}
|
||||
<QuestionTip label={t('dashboard_mcp:tool_name_tip')} />
|
||||
</Th>
|
||||
<Th>{t('dashboard_mcp:app_name')}</Th>
|
||||
<Th>{t('dashboard_mcp:app_tool_name')}</Th>
|
||||
<Th>{t('dashboard_mcp:app_description')}</Th>
|
||||
<Th></Th>
|
||||
</Tr>
|
||||
@@ -349,15 +353,15 @@ const EditMcpModal = ({
|
||||
{apps.map((app, index) => {
|
||||
return (
|
||||
<Tr key={app.id} fontWeight={500} fontSize={'mini'} color={'myGray.900'}>
|
||||
<Td>{app.toolName}</Td>
|
||||
<Td>
|
||||
<Input
|
||||
{...register(`apps.${index}.toolAlias`)}
|
||||
placeholder={app.toolName}
|
||||
{...register(`apps.${index}.toolName`, { required: true })}
|
||||
placeholder={t('dashboard_mcp:tool_name_placeholder')}
|
||||
bg={'myGray.50'}
|
||||
w={'100%'}
|
||||
/>
|
||||
</Td>
|
||||
<Td>{app.appName}</Td>
|
||||
<Td>
|
||||
<Input
|
||||
{...register(`apps.${index}.description`, { required: true })}
|
||||
@@ -413,7 +417,7 @@ const EditMcpModal = ({
|
||||
e.map((item) => ({
|
||||
appId: item.appId,
|
||||
toolName: item.toolName,
|
||||
toolAlias: item.toolAlias,
|
||||
appName: item.appName,
|
||||
description: item.description
|
||||
}))
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user