From 7e973cede9d7ba41be10694fb441accb034b7415 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 21 Apr 2024 12:45:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.0.0):=20=E9=87=8D=E8=AF=95=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1-=E5=88=9D=E7=A8=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/business.ts | 14 ++ src/locales/langs/en-us.ts | 39 ++++ src/locales/langs/zh-cn.ts | 39 ++++ src/router/elegant/imports.ts | 1 + src/router/elegant/routes.ts | 9 + src/router/elegant/transform.ts | 1 + src/service/api/index.ts | 1 + src/service/api/retry-task.ts | 28 +++ src/service/api/retry.ts | 2 +- src/typings/api.d.ts | 50 +++++ src/typings/app.d.ts | 38 ++++ src/typings/elegant-router.d.ts | 2 + src/views/retry/task/index.vue | 207 ++++++++++++++++++ .../modules/retry-task-operate-drawer.vue | 202 +++++++++++++++++ .../retry/task/modules/retry-task-search.vue | 93 ++++++++ 15 files changed, 725 insertions(+), 1 deletion(-) create mode 100644 src/service/api/retry-task.ts create mode 100644 src/views/retry/task/index.vue create mode 100644 src/views/retry/task/modules/retry-task-operate-drawer.vue create mode 100644 src/views/retry/task/modules/retry-task-search.vue diff --git a/src/constants/business.ts b/src/constants/business.ts index 42d8440..2de192c 100644 --- a/src/constants/business.ts +++ b/src/constants/business.ts @@ -94,6 +94,20 @@ export const groupConfigYesOrNoRecord: Record = { + 0: 'page.retryTask.retryStatusType.retrying', + 1: 'page.retryTask.retryStatusType.finished', + 2: 'page.retryTask.retryStatusType.maxRetry', + 3: 'page.retryTask.retryStatusType.paused' +}; +export const retryTaskStatusTypeOptions = transformRecordToNumberOption(retryTaskStatusTypeRecord); + +export const retryTaskTypeRecord: Record = { + 1: 'page.retryTask.taskTypeDict.retry', + 2: 'page.retryTask.taskTypeDict.callback' +}; +export const retryTaskTypeOptions = transformRecordToNumberOption(retryTaskTypeRecord); + export const backOffRecord: Record = { 1: 'page.retryScene.backOffItem.delayLevel', 2: 'page.retryScene.backOffItem.fixed', diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 3a247e3..15361d6 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -170,6 +170,7 @@ const local: App.I18n.Schema = { notify_recipient: 'Notify recipient', notify_scene: 'Notify scene', retry: 'Retry task', + retry_task: 'Retry task', retry_scene: 'Retry scene', 'manage_user-detail': 'User Detail', manage_role: 'Role Manage', @@ -605,6 +606,44 @@ const local: App.I18n.Schema = { weCom: 'WeCom', lark: 'Lark' }, + retryTask: { + title: 'RetryTask List', + uniqueId: 'UniqueId', + groupName: 'Group name', + sceneName: 'Scene name', + idempotentId: 'Idempotent ID', + bizNo: 'Business Number', + executorName: 'Actuator name', + argsStr: 'Actuator arguments', + nextTriggerAt: 'Next trigger time', + retryCount: 'Number of retries', + retryStatus: 'Retry status', + taskType: 'Task type', + form: { + retryStatus: 'Please enter Retry status', + bizNo: 'Please enter Business Number', + uniqueId: 'Please enter UniqueId', + groupName: 'Please enter Group name', + argsStr: 'Please enter Execution method parameters', + sceneName: 'Please enter Scene name', + executorName: 'Please enter Actuator name', + taskType: 'Please enter Task type', + idempotentId: 'Please enter Idempotent ID' + }, + retryStatusType: { + retrying: 'Retrying', + finished: 'Finished', + maxRetry: 'Maximum retry count reached', + paused: 'Paused' + }, + taskTypeDict: { + retry: 'Retry data', + callback: 'Callback data' + }, + generateIdempotentId: 'Generate by client', + addRetryTask: 'Add Retry task', + editRetryTask: 'Add Retry task' + }, retryScene: { title: 'Scene List', groupName: 'Group name', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 2483937..afc7a32 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -171,6 +171,7 @@ const local: App.I18n.Schema = { notify_recipient: '通知人', notify_scene: '通知场景', retry: '重试任务', + retry_task: '重试任务', retry_scene: '重试场景', 'manage_user-detail': '用户详情', manage_role: '角色管理', @@ -601,6 +602,44 @@ const local: App.I18n.Schema = { weCom: '企业微信', lark: '飞书' }, + retryTask: { + title: '重试任务列表', + uniqueId: 'UniqueId', + groupName: '组名称', + sceneName: '场景名称', + idempotentId: '幂等ID', + bizNo: '业务编号', + executorName: '执行器名称', + argsStr: '方法参数', + nextTriggerAt: '下次触发时间', + retryCount: '重试次数', + retryStatus: '重试状态', + taskType: '任务类型', + form: { + retryStatus: '请输入重试状态', + bizNo: '请输入业务编号', + uniqueId: '请输入UniqueId', + groupName: '请输入组名称', + argsStr: '请输入执行方法参数', + sceneName: '请输入场景名称', + executorName: '请输入执行器名称', + taskType: '请输入任务类型', + idempotentId: '请输入幂等id' + }, + retryStatusType: { + retrying: '处理中', + finished: '完成', + maxRetry: '最大重试次数', + paused: '暂停' + }, + taskTypeDict: { + retry: '重试数据', + callback: '回调数据' + }, + generateIdempotentId: '通过客户端生成', + addRetryTask: '新增重试任务', + editRetryTask: '编辑重试任务' + }, retryScene: { title: '场景列表', groupName: '组名', diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts index 517d50e..3af0063 100644 --- a/src/router/elegant/imports.ts +++ b/src/router/elegant/imports.ts @@ -41,5 +41,6 @@ export const views: Record Promise import("@/views/notify/scene/index.vue"), pods: () => import("@/views/pods/index.vue"), retry_scene: () => import("@/views/retry/scene/index.vue"), + retry_task: () => import("@/views/retry/task/index.vue"), "user-center": () => import("@/views/user-center/index.vue"), }; diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index aa624dd..1e96f78 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -398,6 +398,15 @@ export const generatedRoutes: GeneratedRoute[] = [ title: 'retry_scene', i18nKey: 'route.retry_scene' } + }, + { + name: 'retry_task', + path: '/retry/task', + component: 'view.retry_task', + meta: { + title: 'retry_task', + i18nKey: 'route.retry_task' + } } ] }, diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index 7860899..2072217 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -182,6 +182,7 @@ const routeMap: RouteMap = { "pods": "/pods", "retry": "/retry", "retry_scene": "/retry/scene", + "retry_task": "/retry/task", "user-center": "/user-center" }; diff --git a/src/service/api/index.ts b/src/service/api/index.ts index 132be1d..171b1f9 100644 --- a/src/service/api/index.ts +++ b/src/service/api/index.ts @@ -6,4 +6,5 @@ export * from './namespace'; export * from './system-manage'; export * from './notify'; export * from './group-config'; +export * from './retry-task'; export * from './retry'; diff --git a/src/service/api/retry-task.ts b/src/service/api/retry-task.ts new file mode 100644 index 0000000..849841f --- /dev/null +++ b/src/service/api/retry-task.ts @@ -0,0 +1,28 @@ +import { request } from '../request'; + +/** get retryTask list */ +export function fetchGetRetryTaskList(params?: Api.RetryTask.RetryTaskSearchParams) { + return request({ + url: '/retry-task/list', + method: 'get', + params + }); +} + +/** add retryTask */ +export function fetchAddRetryTask(data: Api.RetryTask.RetryTask) { + return request({ + url: '/retry-task', + method: 'post', + data + }); +} + +/** edit retryTask */ +export function fetchEditRetryTask(data: Api.RetryTask.RetryTask) { + return request({ + url: '/retry-task', + method: 'put', + data + }); +} diff --git a/src/service/api/retry.ts b/src/service/api/retry.ts index 9b4125f..d9b618d 100644 --- a/src/service/api/retry.ts +++ b/src/service/api/retry.ts @@ -11,7 +11,7 @@ export function fetchGetRetryScenePageList(params?: Api.RetryScene.SceneSearchPa /** get retry scene list */ export function fetchGetRetrySceneList(params?: Api.RetryScene.SceneSearchParams) { - return request({ + return request({ url: '/scene-config/list', method: 'get', params diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts index f935799..350d6cc 100644 --- a/src/typings/api.d.ts +++ b/src/typings/api.d.ts @@ -611,6 +611,56 @@ declare namespace Api { type AlarmType = 1 | 2 | 3 | 4; } + /** + * namespace RetryTask + * + * backend api module: "retryTask" + */ + namespace RetryTask { + type CommonSearchParams = Pick; + + type RetryStatusType = 0 | 1 | 2 | 3; + + type TaskType = 1 | 2; + + /** RetryTask */ + type RetryTask = Common.CommonRecord<{ + /** UniqueId */ + uniqueId?: string; + /** 组名称 */ + groupName: string; + /** 场景名称 */ + sceneName: string; + /** 幂等id */ + idempotentId: string; + /** 业务编号 */ + bizNo: string; + /** 执行器名称 */ + executorName: string; + /** 执行方法参数 */ + argsStr: string; + /** 扩展字段 */ + extAttrs?: string; + /** 下次触发时间 */ + nextTriggerAt?: string; + /** 重试次数 */ + retryCount?: number; + /** 重试状态 0、重试中 1、重试完成 2、最大次数 3、暂停 */ + retryStatus: RetryStatusType; + /** 任务类型 1、重试数据 2、回调数据 */ + taskType?: TaskType; + }>; + + /** RetryTask search params */ + type RetryTaskSearchParams = CommonType.RecordNullable< + Pick & + CommonSearchParams + >; + + /** RetryTask list */ + type RetryTaskList = Common.PaginatingQueryRecord; + } + /** * namespace Scene * diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 01d6995..55c7546 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -774,6 +774,44 @@ declare namespace App { weCom: string; lark: string; }; + retryTask: { + title: string; + uniqueId: string; + groupName: string; + sceneName: string; + idempotentId: string; + bizNo: string; + executorName: string; + argsStr: string; + nextTriggerAt: string; + retryCount: string; + retryStatus: string; + taskType: string; + form: { + retryStatus: string; + bizNo: string; + uniqueId: string; + groupName: string; + argsStr: string; + sceneName: string; + executorName: string; + taskType: string; + idempotentId: string; + }; + retryStatusType: { + retrying: string; + finished: string; + maxRetry: string; + paused: string; + }; + taskTypeDict: { + retry: string; + callback: string; + }; + generateIdempotentId: string; + addRetryTask: string; + editRetryTask: string; + }; retryScene: { title: string; groupName: string; diff --git a/src/typings/elegant-router.d.ts b/src/typings/elegant-router.d.ts index 0a6d5c8..a930d83 100644 --- a/src/typings/elegant-router.d.ts +++ b/src/typings/elegant-router.d.ts @@ -56,6 +56,7 @@ declare module "@elegant-router/types" { "pods": "/pods"; "retry": "/retry"; "retry_scene": "/retry/scene"; + "retry_task": "/retry/task"; "user-center": "/user-center"; }; @@ -150,6 +151,7 @@ declare module "@elegant-router/types" { | "notify_scene" | "pods" | "retry_scene" + | "retry_task" | "user-center" >; diff --git a/src/views/retry/task/index.vue b/src/views/retry/task/index.vue new file mode 100644 index 0000000..5741a55 --- /dev/null +++ b/src/views/retry/task/index.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/views/retry/task/modules/retry-task-operate-drawer.vue b/src/views/retry/task/modules/retry-task-operate-drawer.vue new file mode 100644 index 0000000..dc5d2ef --- /dev/null +++ b/src/views/retry/task/modules/retry-task-operate-drawer.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/retry/task/modules/retry-task-search.vue b/src/views/retry/task/modules/retry-task-search.vue new file mode 100644 index 0000000..886b742 --- /dev/null +++ b/src/views/retry/task/modules/retry-task-search.vue @@ -0,0 +1,93 @@ + + + + +