diff --git a/backend/app/api/api_v1/routers/platform.py b/backend/app/api/api_v1/routers/platform.py index c6f4c8f..d309d72 100644 --- a/backend/app/api/api_v1/routers/platform.py +++ b/backend/app/api/api_v1/routers/platform.py @@ -3,6 +3,7 @@ from app.db import Base,engine from app.db.session import get_db from app.db.crud import * from app.db.schemas import * +from typing import List platform_router = r = APIRouter() @@ -91,7 +92,21 @@ async def flow_details( ): app = get_flow(db, flowid) return app - + + +@r.get( + "/flows/{appid}", + response_model=List[Flow], + response_model_exclude_none=True, +) +async def flow_list( + request: Request, + appid: str, + db=Depends(get_db), +): + flows = get_flows_by_app(db, appid) + return flows + @r.post("/flow", response_model=Flow, response_model_exclude_none=True) async def flow_create( diff --git a/backend/app/db/crud.py b/backend/app/db/crud.py index b0cf96d..c8dfea3 100644 --- a/backend/app/db/crud.py +++ b/backend/app/db/crud.py @@ -173,4 +173,10 @@ def get_flow(db: Session, flowid: str): flow = db.query(models.Flow).filter(models.Flow.flowid == flowid).first() if not flow: raise HTTPException(status_code=404, detail="Data not found") - return flow \ No newline at end of file + return flow + +def get_flows_by_app(db: Session, appid: str): + flows = db.query(models.Flow).filter(models.Flow.appid == appid).all() + if not flows: + raise HTTPException(status_code=404, detail="Data not found") + return flows \ No newline at end of file diff --git a/document/kintone開発自動化ツール UIデザイン案.pptx b/document/kintone開発自動化ツール UIデザイン案.pptx new file mode 100644 index 0000000..48781f1 Binary files /dev/null and b/document/kintone開発自動化ツール UIデザイン案.pptx differ diff --git a/frontend/src/components/ActionList.vue b/frontend/src/components/ActionList.vue deleted file mode 100644 index e69de29..0000000 diff --git a/frontend/src/components/ActionSelect.vue b/frontend/src/components/ActionSelect.vue index 9bf184a..bd8dfd0 100644 --- a/frontend/src/components/ActionSelect.vue +++ b/frontend/src/components/ActionSelect.vue @@ -1,6 +1,12 @@ + diff --git a/frontend/src/components/left/AppSelector.vue b/frontend/src/components/left/AppSelector.vue new file mode 100644 index 0000000..369386b --- /dev/null +++ b/frontend/src/components/left/AppSelector.vue @@ -0,0 +1,50 @@ + + + diff --git a/frontend/src/components/left/EventTree.vue b/frontend/src/components/left/EventTree.vue new file mode 100644 index 0000000..04f96a4 --- /dev/null +++ b/frontend/src/components/left/EventTree.vue @@ -0,0 +1,72 @@ + + + + diff --git a/frontend/src/control/flowctrl.ts b/frontend/src/control/flowctrl.ts index 883ceb9..81e7d67 100644 --- a/frontend/src/control/flowctrl.ts +++ b/frontend/src/control/flowctrl.ts @@ -1,8 +1,23 @@ import { api } from 'boot/axios'; +import { ActionFlow } from 'src/types/ActionTypes'; export class FlowCtrl { + async getFlows(appId:string):Promise + { + const result = await api.get(`http://127.0.0.1:8000/api/flows/${appId}`); + //console.info(result.data); + if(!result.data || !Array.isArray(result.data)){ + return []; + } + const flows:ActionFlow[]=[]; + for(const flow of result.data){ + flows.push(ActionFlow.fromJSON(flow.content)); + } + return flows; + } + async SaveFlow(jsonData:any):Promise { const result = await api.post('http://127.0.0.1:8000/api/flow',jsonData); diff --git a/frontend/src/pages/FlowChart.vue b/frontend/src/pages/FlowChart.vue new file mode 100644 index 0000000..f430317 --- /dev/null +++ b/frontend/src/pages/FlowChart.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/frontend/src/pages/FlowChartTest.vue b/frontend/src/pages/FlowChartTest.vue index 1d0917f..b98881e 100644 --- a/frontend/src/pages/FlowChartTest.vue +++ b/frontend/src/pages/FlowChartTest.vue @@ -1,5 +1,6 @@