diff --git a/packages/web/i18n/en/publish.json b/packages/web/i18n/en/publish.json index d6bdc9dd6..5fc1aa23d 100644 --- a/packages/web/i18n/en/publish.json +++ b/packages/web/i18n/en/publish.json @@ -45,5 +45,6 @@ "dingtalk.title": "Publish to DingTalk Bot", "dingtalk.api": "DingTalk API", "use_default_domain": "Use Default Domain", - "ip_whitelist": "IP Whitelist" + "ip_whitelist": "IP Whitelist", + "custom_domain_management": "Custom Domain Management" } diff --git a/packages/web/i18n/zh-CN/publish.json b/packages/web/i18n/zh-CN/publish.json index 0ac235cdd..d71a60200 100644 --- a/packages/web/i18n/zh-CN/publish.json +++ b/packages/web/i18n/zh-CN/publish.json @@ -45,5 +45,6 @@ "dingtalk.title": "发布到钉钉机器人", "dingtalk.api": "钉钉 API", "use_default_domain": "使用默认域名", - "ip_whitelist": "IP 白名单" + "ip_whitelist": "IP 白名单", + "custom_domain_management": "自定义域名管理" } diff --git a/packages/web/i18n/zh-Hant/publish.json b/packages/web/i18n/zh-Hant/publish.json index 26a71ca52..111e6024b 100644 --- a/packages/web/i18n/zh-Hant/publish.json +++ b/packages/web/i18n/zh-Hant/publish.json @@ -45,5 +45,6 @@ "dingtalk.title": "發布至釘釘聊天機器人", "dingtalk.api": "釘釘 API", "use_default_domain": "使用預設域名", - "ip_whitelist": "IP 白名單" + "ip_whitelist": "IP 白名單", + "custom_domain_management": "自訂域名管理" } diff --git a/projects/app/src/pageComponents/account/AccountContainer.tsx b/projects/app/src/pageComponents/account/AccountContainer.tsx index fc53a1571..6b31608c7 100644 --- a/projects/app/src/pageComponents/account/AccountContainer.tsx +++ b/projects/app/src/pageComponents/account/AccountContainer.tsx @@ -50,15 +50,6 @@ const AccountContainer = ({ label: t('account:personal_information'), value: TabEnum.info }, - ...(feConfigs.isPlus && feConfigs.customDomain?.enable - ? [ - { - icon: 'common/globalLine', - label: t('account:custom_domain'), - value: TabEnum.customDomain - } - ] - : []), ...(feConfigs?.isPlus ? [ { @@ -87,6 +78,15 @@ const AccountContainer = ({ label: t('account:third_party'), value: TabEnum.thirdParty }, + ...(feConfigs.isPlus && feConfigs.customDomain?.enable + ? [ + { + icon: 'common/globalLine', + label: t('account:custom_domain'), + value: TabEnum.customDomain + } + ] + : []), { icon: 'common/model', label: t('account:model_provider'), diff --git a/projects/app/src/pageComponents/account/customDomain/createModal.tsx b/projects/app/src/pageComponents/account/customDomain/createModal.tsx index 14bc6d09d..2b9719981 100644 --- a/projects/app/src/pageComponents/account/customDomain/createModal.tsx +++ b/projects/app/src/pageComponents/account/customDomain/createModal.tsx @@ -202,7 +202,7 @@ function CreateCustomDomainModal({ isDisabled={!editDomain || type === 'refresh'} /> - {!editDomain && domain ? ( + {!editDomain && domain && startDnsResolve ? ( DnsResolved ? ( {t('account:custom_domain.dns_resolved')} diff --git a/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx index b5266173f..936d6bd19 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx @@ -27,7 +27,7 @@ const WecomEditModal = ({ appId: string; defaultData: OutLinkEditType; onClose: () => void; - onCreate: (id: string) => void; + onCreate: (shareId: string) => Promise; onEdit: () => void; isEdit?: boolean; }) => { @@ -54,7 +54,12 @@ const WecomEditModal = ({ { errorToast: t('common:create_failed'), successToast: t('common:create_success'), - onSuccess: onCreate + onSuccess: async (shareId) => { + const _id = await onCreate(shareId); + if (_id) { + setValue('_id', _id); + } + } } ); @@ -70,6 +75,10 @@ const WecomEditModal = ({ const shareId = useMemo(() => createShareId || updatedShareId, [createShareId, updatedShareId]); + // 判断是否已经创建成功(有 createShareId 说明已经创建) + const isCreated = useMemo(() => !!createShareId, [createShareId]); + const isEditMode = useMemo(() => isEdit || isCreated, [isEdit, isCreated]); + const { feConfigs } = useSystemStore(); const { MyStep, activeStep, goToNext, goToPrevious } = useMyStep({ steps: [ @@ -90,7 +99,9 @@ const WecomEditModal = ({ return ( @@ -102,9 +113,9 @@ const WecomEditModal = ({ gridTemplateColumns={'200px 1fr'} rowGap="4" mt="4" - pb="4" + pb="24px" borderBottom="1px solid" - borderColor="myGray.300" + borderColor="myGray.200" > {t('publish:basic_info')} @@ -169,8 +180,8 @@ const WecomEditModal = ({ - - + + {t('publish:wecom.api')} @@ -226,7 +237,7 @@ const WecomEditModal = ({ )} - {activeStep === 0 && ( + {activeStep === 1 && ( + + + + @@ -200,7 +210,11 @@ const Wecom = ({ appId }: { appId: string }) => { refetchShareChatList()} + onCreate={async (shareId: string) => { + const newList = await refetchShareChatList(); + const newItem = newList.find((item) => item.shareId === shareId); + return newItem?._id; + }} onEdit={() => refetchShareChatList()} onClose={() => setEditWecomData(undefined)} isEdit={isEdit} diff --git a/projects/app/src/pages/account/customDomain/index.tsx b/projects/app/src/pages/account/customDomain/index.tsx index 45bfa3d0f..d884bdbd7 100644 --- a/projects/app/src/pages/account/customDomain/index.tsx +++ b/projects/app/src/pages/account/customDomain/index.tsx @@ -25,6 +25,7 @@ import { useState, useMemo } from 'react'; import { useUserStore } from '@/web/support/user/useUserStore'; import { StandardSubLevelEnum } from '@fastgpt/global/support/wallet/sub/constants'; import { useRouter } from 'next/router'; +import Tag from '@fastgpt/web/components/common/Tag'; const CreateCustomDomainModal = dynamic( () => import('@/pageComponents/account/customDomain/createModal') @@ -88,7 +89,11 @@ const CustomDomain = () => { {t('account:custom_domain')} - {customDomainList?.length ? `: (${customDomainList.length}/3)` : <>} + {customDomainList?.length ? ( + `: (${customDomainList.length}/${teamPlanStatus?.standardConstants?.customDomain})` + ) : ( + <> + )} - +
{customDomain.domain} {customDomain.cnameDomain} {t(providerMap[customDomain.provider])}{t(customDomainStatusMap[customDomain.status])} + {customDomain.status === 'active' ? ( + + {t(customDomainStatusMap[customDomain.status])} + + ) : ( + + {t(customDomainStatusMap[customDomain.status])} + + )} + + {customDomain.status === 'inactive' ? ( )} -