diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 564fc1a..18df177 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -18,6 +18,7 @@ const local: App.I18n.Schema = { confirm: 'Confirm', save: 'Save', delete: 'Delete', + rollback: 'RollBACK', deleteSuccess: 'Delete Success', confirmDelete: 'Are you sure you want to delete?', edit: 'Edit', @@ -262,7 +263,8 @@ const local: App.I18n.Schema = { retry: 'Retry task', retry_task: 'Retry task', retry_scene: 'Retry scene', - retry_log: 'Retry log', + retry_log: 'Retry Log', + 'retry_dead-letter': 'Retry Dead Letter', workflow: 'Workflow', workflow_task: 'Workflow Task', workflow_batch: 'Workflow Batch', @@ -366,6 +368,7 @@ const local: App.I18n.Schema = { jobTaskCount: 'Job Task', userCount: 'User', retryTask: 'Retry Task', + retryDeadLetter: 'Retry DeadLetter', retryTaskTip: 'Total task volume: retry/callback task volume', jobTask: 'Job Task', jobBatch: 'Job Batch', @@ -704,6 +707,26 @@ const local: App.I18n.Schema = { weCom: 'WeCom', lark: 'Lark' }, + retryDeadLetter: { + title: 'RetryDeadLetter List', + uniqueId: 'UniqueId', + groupName: 'Group name', + sceneName: 'Scene name', + idempotentId: 'Idempotent ID', + bizNo: 'bizNo', + taskType: 'taskType', + createDt: 'createDt', + form: { + title: 'Please enter RetryDeadLetter List', + uniqueId: 'Please enter UniqueId', + groupName: 'Please enter Group name', + sceneName: 'Please enter Scene name', + idempotentId: 'Please enter Idempotent ID', + bizNo: 'Please enter bizNo', + taskType: 'Please enter taskType', + createDt: 'Please enter createDt' + } + }, retryTask: { title: 'RetryTask List', uniqueId: 'UniqueId', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 3ac9898..b7f0bdc 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -18,6 +18,7 @@ const local: App.I18n.Schema = { confirm: '确认', save: '保存', delete: '删除', + rollback: '回滚', deleteSuccess: '删除成功', confirmDelete: '确认删除吗?', edit: '编辑', @@ -262,6 +263,7 @@ const local: App.I18n.Schema = { notify_scene: '通知场景', retry: '重试任务', retry_task: '重试任务', + 'retry_dead-letter': '死信任务', retry_scene: '重试场景', retry_log: '重试日志', workflow: '工作流', @@ -363,6 +365,7 @@ const local: App.I18n.Schema = { jobTaskCount: '定时任务', userCount: '用户', retryTask: '重试任务', + retryDeadLetter: '死信任务', retryTaskTip: '总任务量: 重试/回调任务量', jobTask: '定时任务', jobBatch: '任务批次', @@ -700,6 +703,26 @@ const local: App.I18n.Schema = { weCom: '企业微信', lark: '飞书' }, + retryDeadLetter: { + title: '死信任务列表', + uniqueId: 'UniqueId', + groupName: '组名', + sceneName: '场景名称', + idempotentId: '幂等ID', + bizNo: '业务编号', + taskType: '任务类型', + createDt: '创建时间', + form: { + title: '请输入死信任务列表', + uniqueId: '请输入UniqueId', + groupName: '请输入组名', + sceneName: '请输入场景名称', + idempotentId: '请输入幂等ID', + bizNo: '请输入业务编号', + taskType: '请输入任务类型', + createDt: '请输入创建时间' + } + }, retryTask: { title: '重试任务列表', uniqueId: 'UniqueId', diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts index 5cf5b2d..30e47eb 100644 --- a/src/router/elegant/imports.ts +++ b/src/router/elegant/imports.ts @@ -42,6 +42,7 @@ export const views: Record Promise import("@/views/notify/recipient/index.vue"), notify_scene: () => import("@/views/notify/scene/index.vue"), pods: () => import("@/views/pods/index.vue"), + "retry_dead-letter": () => import("@/views/retry/dead-letter/index.vue"), retry_log: () => import("@/views/retry/log/index.vue"), retry_scene: () => import("@/views/retry/scene/index.vue"), retry_task: () => import("@/views/retry/task/index.vue"), diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index 730aa7e..d4bb7eb 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -430,6 +430,15 @@ export const generatedRoutes: GeneratedRoute[] = [ icon: 'carbon:retry-failed' }, children: [ + { + name: 'retry_dead-letter', + path: '/retry/dead-letter', + component: 'view.retry_dead-letter', + meta: { + title: 'retry_dead-letter', + i18nKey: 'route.retry_dead-letter' + } + }, { name: 'retry_log', path: '/retry/log', diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index d6681a1..d66cb0a 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -184,6 +184,7 @@ const routeMap: RouteMap = { "notify_scene": "/notify/scene", "pods": "/pods", "retry": "/retry", + "retry_dead-letter": "/retry/dead-letter", "retry_log": "/retry/log", "retry_scene": "/retry/scene", "retry_task": "/retry/task", diff --git a/src/service/api/index.ts b/src/service/api/index.ts index dbc4d37..e1d82d2 100644 --- a/src/service/api/index.ts +++ b/src/service/api/index.ts @@ -8,6 +8,7 @@ export * from './notify'; export * from './group'; export * from './retry-task'; export * from './retry'; +export * from './retry-dead-letter'; export * from './workflow'; export * from './job'; export * from './job-batch'; diff --git a/src/service/api/retry-dead-letter.ts b/src/service/api/retry-dead-letter.ts new file mode 100644 index 0000000..e804f3f --- /dev/null +++ b/src/service/api/retry-dead-letter.ts @@ -0,0 +1,28 @@ +import { request } from '../request'; + +/** get retry dead letter list */ +export function fetchGetRetryDeadLetterPageList(params?: Api.RetryDeadLetter.RetryDeadLetterSearchParams) { + return request({ + url: '/retry-dead-letter/list', + method: 'get', + params + }); +} + +/** add retry scene */ +export function fetchRollbackRetryDeadLetter(data: { id: string | undefined | null }) { + return request({ + url: '/retry-dead-letter/batch/rollback', + method: 'post', + data + }); +} + +/** edit retry scene */ +export function fetchDeleteRetryDeadLetter(data: { id: string | undefined | null }) { + return request({ + url: '/retry-dead-letter/batch', + method: 'delete', + data + }); +} diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts index 60838ff..fb65e18 100644 --- a/src/typings/api.d.ts +++ b/src/typings/api.d.ts @@ -645,6 +645,44 @@ declare namespace Api { type AlarmType = 1 | 2 | 3 | 4; } + namespace RetryDeadLetter { + type CommonSearchParams = Pick; + + type TaskType = 1 | 2; + + /** deadLetter */ + type DeadLetter = Common.CommonRecord<{ + /** id */ + id?: string; + /** UniqueId */ + uniqueId?: string; + /** 组名称 */ + groupName?: string; + /** 场景名称 * */ + sceneName?: string; + /** 幂等ID */ + idempotentId?: string; + /** 业务编号 * */ + bizNo?: string; + /** 任务类型 * */ + taskType?: TaskType; + /** 创建时间 * */ + createDt?: string; + }>; + + /** deadLetter search params */ + type RetryDeadLetterSearchParams = CommonType.RecordNullable< + Pick< + Api.RetryDeadLetter.DeadLetter, + 'id' | 'uniqueId' | 'groupName' | 'sceneName' | 'idempotentId' | 'bizNo' | 'taskType' | 'createDt' + > & + CommonSearchParams + >; + + /** DeadLetter list */ + type RetryDeadLetterList = Common.PaginatingQueryRecord; + } + /** * namespace RetryTask * diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 0b53302..425e332 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -264,6 +264,7 @@ declare namespace App { confirm: string; save: string; delete: string; + rollback: string; deleteSuccess: string; confirmDelete: string; edit: string; @@ -527,6 +528,7 @@ declare namespace App { jobTaskCount: string; userCount: string; retryTask: string; + retryDeadLetter: string; retryTaskTip: string; jobTask: string; jobBatch: string; @@ -865,6 +867,26 @@ declare namespace App { weCom: string; lark: string; }; + retryDeadLetter: { + title: string; + uniqueId: string; + groupName: string; + sceneName: string; + idempotentId: string; + bizNo: string; + taskType: string; + createDt: string; + form: { + title: string; + uniqueId: string; + groupName: string; + sceneName: string; + idempotentId: string; + bizNo: string; + taskType: string; + createDt: string; + }; + }; retryTask: { title: string; uniqueId: string; diff --git a/src/views/retry/dead-letter/index.vue b/src/views/retry/dead-letter/index.vue new file mode 100644 index 0000000..aaf8959 --- /dev/null +++ b/src/views/retry/dead-letter/index.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/retry/dead-letter/modules/dead-letter-operate-drawer.vue b/src/views/retry/dead-letter/modules/dead-letter-operate-drawer.vue new file mode 100644 index 0000000..00c5cf8 --- /dev/null +++ b/src/views/retry/dead-letter/modules/dead-letter-operate-drawer.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/retry/dead-letter/modules/dead-letter-search.vue b/src/views/retry/dead-letter/modules/dead-letter-search.vue new file mode 100644 index 0000000..70af4e3 --- /dev/null +++ b/src/views/retry/dead-letter/modules/dead-letter-search.vue @@ -0,0 +1,77 @@ + + + + +