diff --git a/frontend/src/components/left/EventTree.vue b/frontend/src/components/left/EventTree.vue
index f6297dd..9201c63 100644
--- a/frontend/src/components/left/EventTree.vue
+++ b/frontend/src/components/left/EventTree.vue
@@ -7,18 +7,14 @@
-
{{prop.node.label }}
-
+ {{ prop.node.label }}
-
{{ prop.node.label }}
+
{{ prop.node.label }}
@@ -27,7 +23,7 @@
-
{{ prop.node.label}}
+
{{ prop.node.label }}
@@ -42,7 +38,7 @@
import { QTree, useQuasar } from 'quasar';
import { ActionFlow, RootAction } from 'src/types/ActionTypes';
import { useFlowEditorStore } from 'stores/flowEditor';
-import { defineComponent, ref,watchEffect } from 'vue';
+import { defineComponent, ref, watchEffect } from 'vue';
import { IKintoneEvent, IKintoneEventGroup, IKintoneEventNode, kintoneEvent } from '../../types/KintoneEvents';
import FieldSelect from '../FieldSelect.vue';
import ShowDialog from '../ShowDialog.vue';
@@ -80,6 +76,11 @@ export default defineComponent({
const isFieldChange = (node: IKintoneEventNode) => {
return node.header == 'EVENT' && node.eventId.indexOf(".change.") > -1;
}
+
+ const getSelectedClass = (node: IKintoneEventNode) => {
+ return store.selectedEvent && node.eventId === store.selectedEvent.eventId ? 'selected-node' : '';
+ };
+
//フィールド値変更イベント追加
const closeDg = (val: string) => {
if (val == 'OK') {
@@ -132,7 +133,7 @@ export default defineComponent({
const screen = store.eventTree.findEventById(node.parentId);
let flow = store.findFlowByEventId(node.eventId);
- let screenName = screen !== null ? screen.label : "";
+ let screenName = screen !== null ? screen.label : '';
let nodeLabel = node.label;
// if(isFieldChange(node)){
// screenName=nodeLabel;
@@ -159,6 +160,7 @@ export default defineComponent({
tree,
showDialog,
isFieldChange,
+ getSelectedClass,
onSelected,
selectedEvent,
addChangeEvent,
diff --git a/frontend/src/layouts/MainLayout.vue b/frontend/src/layouts/MainLayout.vue
index bd890db..4e9c2d4 100644
--- a/frontend/src/layouts/MainLayout.vue
+++ b/frontend/src/layouts/MainLayout.vue
@@ -49,11 +49,18 @@ const essentialLinks: EssentialLinkProps[] = [
link: '/',
target: '_self'
},
+ // {
+ // title: 'フローエディター',
+ // caption: 'イベントを設定する',
+ // icon: 'account_tree',
+ // link: '/#/FlowChart',
+ // target: '_self'
+ // },
{
- title: 'フローエディター',
- caption: 'イベントを設定する',
- icon: 'account_tree',
- link: '/#/FlowChart',
+ title: 'アプリ管理',
+ caption: 'アプリを管理する',
+ icon: 'widgets',
+ link: '/#/app',
target: '_self'
},
// {
diff --git a/frontend/src/pages/AppManagement.vue b/frontend/src/pages/AppManagement.vue
new file mode 100644
index 0000000..bf2ed31
--- /dev/null
+++ b/frontend/src/pages/AppManagement.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/pages/FlowChart.vue b/frontend/src/pages/FlowChart.vue
index 874bead..73ee837 100644
--- a/frontend/src/pages/FlowChart.vue
+++ b/frontend/src/pages/FlowChart.vue
@@ -290,20 +290,8 @@ const onSaveAllFlow= async ()=>{
}
const fetchData = async () => {
+ await store.loadFlow();
drawerLeft.value = true;
- if (store.appInfo === undefined) return;
- const flowCtrl = new FlowCtrl();
- const actionFlows = await flowCtrl.getFlows(store.appInfo?.appId);
- if (actionFlows && actionFlows.length > 0) {
- store.setFlows(actionFlows);
- }
- if (actionFlows && actionFlows.length == 1) {
- store.selectFlow(actionFlows[0]);
- }
- const root = actionFlows[0].getRoot();
- if (root) {
- store.setActiveNode(root);
- }
}
const onClearFilter=()=>{
diff --git a/frontend/src/router/routes.ts b/frontend/src/router/routes.ts
index 364eb8d..66b2b26 100644
--- a/frontend/src/router/routes.ts
+++ b/frontend/src/router/routes.ts
@@ -27,6 +27,7 @@ const routes: RouteRecordRaw[] = [
{ path: 'domain', component: () => import('pages/TenantDomain.vue') },
// { path: 'userdomain', component: () => import('pages/UserDomain.vue')},
{ path: 'user', component: () => import('pages/UserManagement.vue')},
+ { path: 'app', component: () => import('pages/AppManagement.vue')},
{ path: 'condition', component: () => import('pages/conditionPage.vue') }
],
},
diff --git a/frontend/src/stores/flowEditor.ts b/frontend/src/stores/flowEditor.ts
index 75dbf11..db31fb8 100644
--- a/frontend/src/stores/flowEditor.ts
+++ b/frontend/src/stores/flowEditor.ts
@@ -64,7 +64,9 @@ export const useFlowEditorStore = defineStore('flowEditor', {
this.selectedFlow = flow;
if(flow!==undefined){
const eventId = flow.getRoot()?.name;
- this.selectedEvent=this.eventTree.findEventById(eventId) as IKintoneEvent;
+ this.selectedEvent = this.eventTree.findEventById(eventId) as IKintoneEvent;
+ } else {
+ this.selectedEvent = undefined;
}
},
setActiveNode(node: IActionNode) {
@@ -86,8 +88,8 @@ export const useFlowEditorStore = defineStore('flowEditor', {
//eventTreeにバンドする
this.eventTree.bindFlows(actionFlows);
if (actionFlows === undefined || actionFlows.length === 0) {
- this.flows = [];
- this.selectedFlow = undefined;
+ this.setFlows([]);
+ this.selectFlow(undefined);
this.expandedScreen =[];
return;
}
@@ -95,6 +97,11 @@ export const useFlowEditorStore = defineStore('flowEditor', {
if (actionFlows && actionFlows.length > 0) {
this.selectFlow(actionFlows[0]);
}
+ const root = actionFlows[0].getRoot();
+ if (root) {
+ this.setActiveNode(root);
+ }
+
const expandEventIds = actionFlows.map((flow) => flow.getRoot()?.name);
const expandScreens:string[]=[];
expandEventIds.forEach((eventid)=>{