フロー保存の実装

This commit is contained in:
2023-10-16 13:38:51 +09:00
parent cdfb1d4310
commit 0b414fbfbe
12 changed files with 357 additions and 385 deletions

View File

@@ -10,6 +10,7 @@ export interface FlowEditorState{
selectedFlow?:IActionFlow|undefined;
eventTree:KintoneEventManager;
selectedEvent:IKintoneEvent|undefined;
expandedScreen:any[];
}
const flowCtrl=new FlowCtrl();
export const useFlowEditorStore = defineStore("flowEditor",{
@@ -19,7 +20,8 @@ export const useFlowEditorStore = defineStore("flowEditor",{
flows:[],
selectedFlow:undefined,
eventTree:kintoneEvents,
selectedEvent:undefined
selectedEvent:undefined,
expandedScreen:[]
}),
getters: {
/**
@@ -54,17 +56,46 @@ export const useFlowEditorStore = defineStore("flowEditor",{
setApp(app:AppInfo){
this.appInfo=app;
},
async setFlow(){
/**
* DBからフルーを保存する
* @returns
*/
async loadFlow(){
if(this.appInfo===undefined) return;
const actionFlows = await flowCtrl.getFlows(this.appInfo?.appId);
//eventTreeにバンドする
this.eventTree.bindFlows(actionFlows);
if(actionFlows && actionFlows.length>0){
this.setFlows(actionFlows);
if(actionFlows===undefined || actionFlows.length===0){
this.flows=[];
this.selectedFlow=undefined;
return;
}
if(actionFlows && actionFlows.length==1){
this.setFlows(actionFlows);
if(actionFlows && actionFlows.length>0){
this.selectFlow(actionFlows[0]);
}
const expandName =actionFlows[0].getRoot()?.title;
this.expandedScreen=[expandName];
},
/**
* フローをDBに保存及び更新する
*/
async saveFlow(flow:IActionFlow){
const root=flow.getRoot();
const isNew = flow.id==='';
const jsonData={
flowid: isNew ? flow.createNewId():flow.id,
appid: this.appInfo?.appId,
eventid: root?.name,
name: root?.subTitle,
content: JSON.stringify(flow)
}
if(isNew){
return await flowCtrl.SaveFlow(jsonData);
}else{
return await flowCtrl.UpdateFlow(jsonData);
}
}
}