diff --git a/src/components/common/select-group.vue b/src/components/common/select-group.vue
new file mode 100644
index 0000000..3dde282
--- /dev/null
+++ b/src/components/common/select-group.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts
index 846771a..4adaba6 100644
--- a/src/locales/langs/en-us.ts
+++ b/src/locales/langs/en-us.ts
@@ -182,6 +182,7 @@ const local: App.I18n.Schema = {
retry: 'Retry task',
retry_task: 'Retry task',
retry_scene: 'Retry scene',
+ workflow: 'Workflow',
'manage_user-detail': 'User Detail',
manage_role: 'Role Manage',
manage_menu: 'Menu Manage',
@@ -697,6 +698,24 @@ const local: App.I18n.Schema = {
lru: 'LRU',
round: '轮询'
}
+ },
+ workflow: {
+ title: 'Workflow List',
+ workflowName: 'Workflow name',
+ groupName: 'Group name',
+ nextTriggerAt: 'Trigger time',
+ workflowStatus: 'State',
+ triggerType: 'Trigger type',
+ triggerInterval: 'Interval duration',
+ executorTimeout: 'Overtime time',
+ updateDt: 'Update time',
+ form: {
+ workflowName: 'Please enter Workflow name',
+ groupName: 'Please enter Group name',
+ workflowStatus: 'Please enter State'
+ },
+ addWorkflow: 'Add Workflow',
+ editWorkflow: 'Add Workflow'
}
},
form: {
diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts
index 6dfac5d..0486735 100644
--- a/src/locales/langs/zh-cn.ts
+++ b/src/locales/langs/zh-cn.ts
@@ -183,6 +183,7 @@ const local: App.I18n.Schema = {
retry: '重试任务',
retry_task: '重试任务',
retry_scene: '重试场景',
+ workflow: '工作流',
'manage_user-detail': '用户详情',
manage_role: '角色管理',
manage_menu: '菜单管理',
@@ -693,6 +694,24 @@ const local: App.I18n.Schema = {
lru: 'LRU',
round: '轮询'
}
+ },
+ workflow: {
+ title: '工作流列表',
+ workflowName: '工作流名称',
+ groupName: '组名称',
+ nextTriggerAt: '触发时间',
+ workflowStatus: '状态',
+ triggerType: '触发类型',
+ triggerInterval: '间隔时长',
+ executorTimeout: '超时时间',
+ updateDt: '更新时间',
+ form: {
+ workflowName: '请输入工作流名称',
+ groupName: '请输入组名称',
+ workflowStatus: '请输入状态'
+ },
+ addWorkflow: '新增工作流',
+ editWorkflow: '编辑工作流'
}
},
form: {
diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts
index 3af0063..4d910c5 100644
--- a/src/router/elegant/imports.ts
+++ b/src/router/elegant/imports.ts
@@ -43,4 +43,5 @@ export const views: Record Promise import("@/views/retry/scene/index.vue"),
retry_task: () => import("@/views/retry/task/index.vue"),
"user-center": () => import("@/views/user-center/index.vue"),
+ workflow: () => import("@/views/workflow/index.vue"),
};
diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts
index 1e96f78..d821cd9 100644
--- a/src/router/elegant/routes.ts
+++ b/src/router/elegant/routes.ts
@@ -419,5 +419,14 @@ export const generatedRoutes: GeneratedRoute[] = [
i18nKey: 'route.user-center',
hideInMenu: true
}
+ },
+ {
+ name: 'workflow',
+ path: '/workflow',
+ component: 'layout.base$view.workflow',
+ meta: {
+ title: 'workflow',
+ i18nKey: 'route.workflow'
+ }
}
];
diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts
index 2072217..d1dc1dd 100644
--- a/src/router/elegant/transform.ts
+++ b/src/router/elegant/transform.ts
@@ -183,7 +183,8 @@ const routeMap: RouteMap = {
"retry": "/retry",
"retry_scene": "/retry/scene",
"retry_task": "/retry/task",
- "user-center": "/user-center"
+ "user-center": "/user-center",
+ "workflow": "/workflow"
};
/**
diff --git a/src/service/api/index.ts b/src/service/api/index.ts
index 171b1f9..a4dec25 100644
--- a/src/service/api/index.ts
+++ b/src/service/api/index.ts
@@ -8,3 +8,4 @@ export * from './notify';
export * from './group-config';
export * from './retry-task';
export * from './retry';
+export * from './workflow';
diff --git a/src/service/api/workflow.ts b/src/service/api/workflow.ts
new file mode 100644
index 0000000..79a4ce0
--- /dev/null
+++ b/src/service/api/workflow.ts
@@ -0,0 +1,10 @@
+import { request } from '../request';
+
+/** get namespace list */
+export function fetchGetWorkflowPageList(params?: Api.Workflow.WorkflowSearchParams) {
+ return request({
+ url: '/workflow/page/list',
+ method: 'get',
+ params
+ });
+}
diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts
index c1c7574..c6b275a 100644
--- a/src/typings/api.d.ts
+++ b/src/typings/api.d.ts
@@ -749,4 +749,40 @@ declare namespace Api {
/** 1: 一致性Hash 2: 随机 3: LRU 4: 轮询 */
type RouteKey = 1 | 2 | 3 | 4;
}
+
+ /**
+ * namespace Workflow
+ *
+ * backend api module: "workflow"
+ */
+ namespace Workflow {
+ import EnableStatusNumber = Api.Common.EnableStatusNumber;
+ type CommonSearchParams = Pick;
+
+ /** workflow */
+ type Workflow = Common.CommonRecord<{
+ /** 工作流名称 */
+ workflowName: string;
+ /** 组名称 */
+ groupName: string;
+ /** 触发时间 */
+ nextTriggerAt: string;
+ /** 状态 */
+ workflowStatus: EnableStatusNumber;
+ /** 触发类型 */
+ triggerType: number;
+ /** 间隔时长 */
+ triggerInterval: string;
+ /** 超时时间 */
+ executorTimeout: number;
+ }>;
+
+ /** workflow search params */
+ type WorkflowSearchParams = CommonType.RecordNullable<
+ Pick & CommonSearchParams
+ >;
+
+ /** workflow list */
+ type WorkflowList = Common.PaginatingQueryRecord;
+ }
}
diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts
index 5e57ce7..01b8990 100644
--- a/src/typings/app.d.ts
+++ b/src/typings/app.d.ts
@@ -866,6 +866,24 @@ declare namespace App {
round: string;
};
};
+ workflow: {
+ title: string;
+ workflowName: string;
+ groupName: string;
+ nextTriggerAt: string;
+ workflowStatus: string;
+ triggerType: string;
+ triggerInterval: string;
+ executorTimeout: string;
+ updateDt: string;
+ form: {
+ workflowName: string;
+ groupName: string;
+ workflowStatus: string;
+ };
+ addWorkflow: string;
+ editWorkflow: string;
+ };
};
form: {
required: string;
diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts
index 66c2658..2c92956 100644
--- a/src/typings/components.d.ts
+++ b/src/typings/components.d.ts
@@ -96,6 +96,7 @@ declare module 'vue' {
RouterView: typeof import('vue-router')['RouterView']
Search: typeof import('../components/common/search-form.vue')['default']
SearchForm: typeof import('./../components/common/search-form.vue')['default']
+ SelectGroup: typeof import('./../components/common/select-group.vue')['default']
SoybeanAvatar: typeof import('./../components/custom/soybean-avatar.vue')['default']
SvgIcon: typeof import('./../components/custom/svg-icon.vue')['default']
SystemLogo: typeof import('./../components/common/system-logo.vue')['default']
diff --git a/src/typings/elegant-router.d.ts b/src/typings/elegant-router.d.ts
index a930d83..7e02934 100644
--- a/src/typings/elegant-router.d.ts
+++ b/src/typings/elegant-router.d.ts
@@ -58,6 +58,7 @@ declare module "@elegant-router/types" {
"retry_scene": "/retry/scene";
"retry_task": "/retry/task";
"user-center": "/user-center";
+ "workflow": "/workflow";
};
/**
@@ -108,6 +109,7 @@ declare module "@elegant-router/types" {
| "pods"
| "retry"
| "user-center"
+ | "workflow"
>;
/**
@@ -153,6 +155,7 @@ declare module "@elegant-router/types" {
| "retry_scene"
| "retry_task"
| "user-center"
+ | "workflow"
>;
/**
diff --git a/src/views/workflow/index.vue b/src/views/workflow/index.vue
new file mode 100644
index 0000000..cba9fa2
--- /dev/null
+++ b/src/views/workflow/index.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
diff --git a/src/views/workflow/modules/workflow-search.vue b/src/views/workflow/modules/workflow-search.vue
new file mode 100644
index 0000000..dbd7c2d
--- /dev/null
+++ b/src/views/workflow/modules/workflow-search.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+