Test shorurl (#4686)

* Short-chain burying (#4678)

* TrackRegisterParams

* 新增工作流导入功能,支持从URL获取工作流JSON数据并创建应用。实现了URL验证、CORS处理、剪贴板读取等功能,确保用户能够顺利导入工作流数据。

* 更新工作流导入功能,将导入逻辑从utils模块迁移至workflow模块,并修正相关导入路径。此更改有助于代码结构的清晰和模块化。

* 优化工作流导入组件,重构导入逻辑,增加从URL获取工作流数据的功能,并实现JSON配置导入窗口。修复了状态管理和错误处理,提升用户体验。

* 更新工作流导入功能,增加对UTM参数的支持,优化从URL获取工作流数据的逻辑,并重构相关API接口。修复了状态管理和错误处理,提升了用户体验。

* 更新创建应用的API接口,将UTM参数的字段名称从`shorUrlId`和`projectCode`修改为`shorUrlPlatform`和`shorUrlProjectCode`,以提高代码的可读性和一致性。

* impoter json

* Optimize the logic

* delete some console

* fix

* perf: sem code

---------

Co-authored-by: dreamer6680 <1468683855@qq.com>
This commit is contained in:
Archer
2025-04-27 22:56:42 +08:00
committed by GitHub
parent 5357aa402b
commit 659b8b1106
17 changed files with 285 additions and 61 deletions

View File

@@ -16,6 +16,14 @@ import { postCreateApp } from '@/web/core/app/api';
import { useRouter } from 'next/router';
import { form2AppWorkflow } from '@/web/core/app/utils';
import ImportAppConfigEditor from '@/pageComponents/app/ImportAppConfigEditor';
import { useToast } from '@fastgpt/web/hooks/useToast';
import { getFetchWorkflow } from '@/web/core/app/api/app';
import {
getUtmParams,
getUtmWorkflow,
removeUtmParams,
removeUtmWorkflow
} from '@/web/support/marketing/utils';
type FormType = {
avatar: string;
@@ -37,6 +45,24 @@ const JsonImportModal = ({ onClose }: { onClose: () => void }) => {
});
const workflowStr = watch('workflowStr');
const { loading: isFetching } = useRequest2(
async () => {
const url = getUtmWorkflow();
if (!url) return;
const workflowData = await getFetchWorkflow({ url });
setValue('workflowStr', JSON.stringify(workflowData, null, 2));
const utmParams = getUtmParams();
if (utmParams.shortUrlContent) setValue('name', utmParams.shortUrlContent);
removeUtmWorkflow();
removeUtmParams();
},
{ manual: false }
);
const avatar = watch('avatar');
const {
File,
@@ -97,7 +123,8 @@ const JsonImportModal = ({ onClose }: { onClose: () => void }) => {
type: appType,
modules: workflow.nodes,
edges: workflow.edges,
chatConfig: workflow.chatConfig
chatConfig: workflow.chatConfig,
utmParams: getUtmParams()
});
},
{
@@ -116,7 +143,7 @@ const JsonImportModal = ({ onClose }: { onClose: () => void }) => {
<MyModal
isOpen
onClose={onClose}
isLoading={isCreating}
isLoading={isCreating || isFetching}
title={t('app:type.Import from json')}
iconSrc="common/importLight"
iconColor={'primary.600'}