diff --git a/web/client/api/request.ts b/web/client/api/request.ts index 756c1b70b..b0d705527 100644 --- a/web/client/api/request.ts +++ b/web/client/api/request.ts @@ -275,8 +275,11 @@ export const addFlow = (data: IFlowUpdateParam) => { return POST('/api/v2/serve/awel/flows', data); }; -export const getFlows = () => { - return GET('/api/v2/serve/awel/flows'); +export const getFlows = (page?: number, page_size?: number) => { + return GET('/api/v2/serve/awel/flows', { + page, + page_size, + }); }; export const getFlowById = (id: string) => { diff --git a/web/components/flow/add-nodes.tsx b/web/components/flow/add-nodes.tsx index e12db16fc..2f557c6aa 100644 --- a/web/components/flow/add-nodes.tsx +++ b/web/components/flow/add-nodes.tsx @@ -122,7 +122,7 @@ const AddNodes: React.FC = () => { className="flex items-center justify-center rounded-full left-4 top-4" style={{ zIndex: 1050 }} icon={} - > + /> ); }; diff --git a/web/components/flow/canvas-node.tsx b/web/components/flow/canvas-node.tsx index 461d933f7..5f82de50a 100644 --- a/web/components/flow/canvas-node.tsx +++ b/web/components/flow/canvas-node.tsx @@ -80,8 +80,6 @@ const CanvasNode: React.FC = ({ data }) => { } async function updateDependsNodeValue(changedKey: string, changedVal: any) { - if (!changedVal) return; - const dependParamNodes = parameters.filter(({ ui }) => ui?.refresh_depends?.includes(changedKey)); if (dependParamNodes?.length === 0) return; @@ -107,20 +105,34 @@ const CanvasNode: React.FC = ({ data }) => { }; const [_, res] = await apiInterceptors(refreshFlowNodeById(params)); - // TODO: update node value - console.log('res', res); + + // update value of the node + if (res) { + reactFlow.setNodes((nodes) => + nodes.map((n) => { + return n.id === node.id + ? { + ...n, + data: { + ...n.data, + parameters: res.parameters, + }, + } + : n; + }), + ); + } }); } function onParameterValuesChange(changedValues: any, allValues: any) { - // TODO: update node value - console.log('Changed xxx', changedValues); - console.log('All xxx', allValues); const [changedKey, changedVal] = Object.entries(changedValues)[0]; updateCurrentNodeValue(changedKey, changedVal); - updateDependsNodeValue(changedKey, changedVal); + if (changedVal) { + updateDependsNodeValue(changedKey, changedVal); + } } return ( @@ -132,9 +144,11 @@ const CanvasNode: React.FC = ({ data }) => { + + { const { t } = useTranslation(); - // const { data, defaultValue } = params; const attr = convertKeysToCamelCase(data.ui?.attr || {}); const [isModalOpen, setIsModalOpen] = useState(false); diff --git a/web/pages/flow/canvas/index.tsx b/web/pages/flow/canvas/index.tsx index e7ae601aa..fb975c51a 100644 --- a/web/pages/flow/canvas/index.tsx +++ b/web/pages/flow/canvas/index.tsx @@ -269,6 +269,7 @@ const Canvas: React.FC = () => { + >([]); const [deploy, setDeploy] = useState(false); + const [page, setPage] = useState(1); + const [pageSize, setPageSize] = useState(10); + const [total, setTotal] = useState(0); const [messageApi, contextHolder] = message.useMessage(); const [form] = Form.useForm>(); - const copyFlowTemp = useRef(); async function getFlowList() { setLoading(true); - const [_, data] = await apiInterceptors(getFlows()); + const [_, data] = await apiInterceptors(getFlows(page, pageSize)); + setTotal(data?.total_count ?? 0); setLoading(false); setFlowList(data?.items ?? []); } useEffect(() => { getFlowList(); - }, []); + }, [page, pageSize]); function updateFlowList(uid: string) { setFlowList((flows) => flows.filter((flow) => flow.uid !== uid)); @@ -62,10 +65,16 @@ function Flow() { } }; + const onPageChange: PaginationProps['onChange'] = (page: number, pageSize: number) => { + setPage(page); + setPageSize(pageSize); + }; + return ( -
+
{contextHolder} +
-
- {flowList.map((flow) => ( - - ))} - {flowList.length === 0 && } + +
+
+ {flowList.map((flow) => ( + + ))} + {flowList.length === 0 && } +
+ +
+ `Total ${total} items`} + onChange={onPageChange} + /> +
+