diff --git a/web/client/api/flow/index.ts b/web/client/api/flow/index.ts index 7f32ac1d9..d32ec4b4d 100644 --- a/web/client/api/flow/index.ts +++ b/web/client/api/flow/index.ts @@ -71,3 +71,6 @@ export const getFlowTemplateList = () => { export const getFlowTemplateById = (id: string) => { return GET(`/api/v2/serve/awel/flow/templates/${id}`); }; +export const metadataBatch = (data: IUploadFileRequestParams) => { + return POST>('/api/v2/serve/file/files/metadata/batch', data); +}; \ No newline at end of file diff --git a/web/components/flow/canvas-node.tsx b/web/components/flow/canvas-node.tsx index 568c51ebf..cd9eaf578 100644 --- a/web/components/flow/canvas-node.tsx +++ b/web/components/flow/canvas-node.tsx @@ -193,8 +193,11 @@ const CanvasNode: React.FC = ({ data }) => { >
= ({ formValuesChange, n if (ui_type === 'slider' && data.is_list) { defaultValue = [0, 1]; } + return ( { const { t } = useTranslation(); const urlList = useRef([]); const { data, formValuesChange } = params; -console.log(data); + const [fileList, setFileList] = useState([]) + + // 获取上传文件元数据 + useEffect(() => { + if (data.value) { + let uris:string[] = [] + typeof(data.value) === 'string'? uris.push(data.value):uris = data.value + let parameter:any = { + uris + } + metadataBatch(parameter).then((res)=>{ + let urlList:UploadFile[] = [] + for (let index = 0; index < res.data.data.length; index++) { + const element = res.data.data[index]; + urlList.push({ + uid: element.file_id, + name:element.file_name, + status: 'done', + url: element.uri, + }) + } + setFileList(urlList) + }).catch((res)=>{ + debugger + }) + } + + + + }, []); const attr = convertKeysToCamelCase(data.ui?.attr || {}); const [uploading, setUploading] = useState(false); @@ -75,13 +105,13 @@ console.log(data); return (
{data.is_list ? ( - + ) : ( - + diff --git a/web/pages/construct/flow/canvas/index.tsx b/web/pages/construct/flow/canvas/index.tsx index 5957074ea..438a3ffb5 100644 --- a/web/pages/construct/flow/canvas/index.tsx +++ b/web/pages/construct/flow/canvas/index.tsx @@ -28,8 +28,9 @@ import 'reactflow/dist/style.css'; const nodeTypes = { customNode: CanvasNode }; const edgeTypes = { buttonedge: ButtonEdge }; +let importData :any= null +const Canvas: React.FC = (props:any) => { -const Canvas: React.FC = () => { const { t } = useTranslation(); const [messageApi, contextHolder] = message.useMessage(); @@ -45,7 +46,17 @@ const Canvas: React.FC = () => { const [isSaveFlowModalOpen, setIsSaveFlowModalOpen] = useState(false); const [isExportFlowModalOpen, setIsExportFlowModalOpen] = useState(false); const [isImportModalOpen, setIsImportFlowModalOpen] = useState(false); - + + if (localStorage.getItem('importFlowData') ) { + const importFlowData = JSON.parse(localStorage.getItem('importFlowData') ); + localStorage.removeItem('importFlowData') + setLoading(true); + const flowData = mapUnderlineToHump(importFlowData.flow_data); + setFlowInfo(importFlowData); + setNodes(flowData.nodes); + setEdges(flowData.edges); + setLoading(false); + } async function getFlowData() { setLoading(true); const [_, data] = await apiInterceptors(getFlowById(id)); @@ -286,7 +297,11 @@ const Canvas: React.FC = () => { ); }; -export default function CanvasWrapper() { +export default function CanvasWrapper(data:any) { + + importData = data + console.log(importData); + return ( diff --git a/web/styles/globals.css b/web/styles/globals.css index 524fb68f5..dc3fa7947 100644 --- a/web/styles/globals.css +++ b/web/styles/globals.css @@ -122,4 +122,11 @@ table { .rc-md-editor .editor-container>.section { border-right: none !important; +} + +.w-530{ + width: 530px; +} +.w-256{ + width:256px; } \ No newline at end of file