feat(1.4.0-beta1): 1. 修复描述

This commit is contained in:
opensnail 2025-02-20 23:43:45 +08:00
parent afe83954ce
commit c64ad0cc81
13 changed files with 193 additions and 114 deletions

View File

@ -90,10 +90,10 @@ export const groupConfigYesOrNoRecord: Record<Api.GroupConfig.YesOrNoType, App.I
export const groupConfigYesOrNoOptions = transformRecordToNumberOption(groupConfigYesOrNoRecord, true); export const groupConfigYesOrNoOptions = transformRecordToNumberOption(groupConfigYesOrNoRecord, true);
export const retryStatusTypeRecord: Record<Api.Retry.RetryStatusType, App.I18n.I18nKey> = { export const retryStatusTypeRecord: Record<Api.Retry.RetryStatusType, App.I18n.I18nKey> = {
0: 'page.retryTask.retryStatusType.retrying', 0: 'page.retry.retryStatusType.retrying',
1: 'page.retryTask.retryStatusType.finished', 1: 'page.retry.retryStatusType.finished',
2: 'page.retryTask.retryStatusType.maxRetry', 2: 'page.retry.retryStatusType.maxRetry',
3: 'page.retryTask.retryStatusType.paused' 3: 'page.retry.retryStatusType.paused'
}; };
export const retryStatusTypeOptions = transformRecordToNumberOption(retryStatusTypeRecord); export const retryStatusTypeOptions = transformRecordToNumberOption(retryStatusTypeRecord);
@ -108,8 +108,8 @@ export const retryTaskStatusTypeRecord: Record<Api.Retry.RetryTaskStatusType, Ap
export const retryTaskStatusTypeOptions = transformRecordToNumberOption(retryTaskStatusTypeRecord); export const retryTaskStatusTypeOptions = transformRecordToNumberOption(retryTaskStatusTypeRecord);
export const retryTaskTypeRecord: Record<Api.Retry.TaskType, App.I18n.I18nKey> = { export const retryTaskTypeRecord: Record<Api.Retry.TaskType, App.I18n.I18nKey> = {
1: 'page.retryTask.taskTypeDict.retry', 1: 'page.retry.taskTypeDict.retry',
2: 'page.retryTask.taskTypeDict.callback' 2: 'page.retry.taskTypeDict.callback'
}; };
export const retryTaskTypeOptions = transformRecordToNumberOption(retryTaskTypeRecord); export const retryTaskTypeOptions = transformRecordToNumberOption(retryTaskTypeRecord);
@ -273,6 +273,21 @@ export const operationReasonRecord: Record<Api.Common.OperationReason, App.I18n.
}; };
export const operationReasonOptions = transformRecordToNumberOption(operationReasonRecord); export const operationReasonOptions = transformRecordToNumberOption(operationReasonRecord);
export const retryOperationReasonRecord: Record<Api.Common.RetryOperationReason, App.I18n.I18nKey> = {
0: 'common.retryOperationReason.items.none',
1: 'common.retryOperationReason.items.taskExecutionTimeout',
2: 'common.retryOperationReason.items.notClient',
3: 'common.retryOperationReason.items.closed',
4: 'common.retryOperationReason.items.discard',
5: 'common.retryOperationReason.items.overlay',
6: 'common.retryOperationReason.items.taskExecutionError',
7: 'common.retryOperationReason.items.mannerStop',
8: 'common.retryOperationReason.items.noRunningRetry',
9: 'common.retryOperationReason.items.sceneClosed',
10: 'common.retryOperationReason.items.retryFail'
};
export const retryOperationReasonOptions = transformRecordToNumberOption(retryOperationReasonRecord);
export const jobOperationReasonEnum: Workflow.JobTagType = { export const jobOperationReasonEnum: Workflow.JobTagType = {
0: { 0: {
name: operationReasonRecord[0], name: operationReasonRecord[0],

View File

@ -220,6 +220,25 @@ const local: App.I18n.Schema = {
workflowDecisionFailed: 'Workflow decision failed' workflowDecisionFailed: 'Workflow decision failed'
} }
}, },
retryOperationReason: {
label: 'Job Operation Reason',
form: 'Please enter job operation reason',
items: {
none: 'None',
taskExecutionTimeout: 'Task execution timeout',
notClient: 'No client',
closed: 'Job closed',
discard: 'Job discard',
overlay: 'Job overlapped',
notExecutionTask: 'No execution task',
taskExecutionError: 'Execution error',
mannerStop: 'Manual stop',
noRunningRetry: 'No running retry',
sceneClosed: 'Scene closed',
retryFail: 'Retry failed',
clientTriggerRetryStop: 'Client trigger stop'
}
},
updateDt: 'Updated Time', updateDt: 'Updated Time',
createDt: 'Created Time', createDt: 'Created Time',
today: 'Today', today: 'Today',
@ -652,10 +671,9 @@ const local: App.I18n.Schema = {
createDt: 'Please enter createDt' createDt: 'Please enter createDt'
} }
}, },
retryTask: { retry: {
title: 'RetryTask List', title: 'Retry List',
detail: 'RetryTask Detail', detail: 'Retry Detail',
uniqueId: 'UniqueId',
groupName: 'Group name', groupName: 'Group name',
sceneName: 'Scene name', sceneName: 'Scene name',
idempotentId: 'Idempotent ID', idempotentId: 'Idempotent ID',
@ -689,9 +707,9 @@ const local: App.I18n.Schema = {
callback: 'Callback data' callback: 'Callback data'
}, },
generateIdempotentId: 'Generate by client', generateIdempotentId: 'Generate by client',
addRetryTask: 'Add Retry task', addRetry: 'Add Retry task',
editRetryTask: 'Add Retry task', editRetry: 'Add Retry task',
batchAddRetryTask: 'Batch add retry task' batchAddRetry: 'Batch add retry task'
}, },
retryScene: { retryScene: {
title: 'Scene List', title: 'Scene List',
@ -741,10 +759,9 @@ const local: App.I18n.Schema = {
random: 'Random delay' random: 'Random delay'
} }
}, },
retryLog: { retryTask: {
title: 'RetryLog List', title: 'Retry Task List',
detail: 'Retry Log Detail', detail: 'Retry Task Detail',
UniqueId: 'UniqueId',
groupName: 'Group name', groupName: 'Group name',
sceneName: 'Scene name', sceneName: 'Scene name',
retryStatus: 'Retry status', retryStatus: 'Retry status',
@ -752,16 +769,15 @@ const local: App.I18n.Schema = {
idempotentId: 'Idempotent ID', idempotentId: 'Idempotent ID',
bizNo: 'Business Number', bizNo: 'Business Number',
createDt: 'Creation time', createDt: 'Creation time',
operationReason: 'Operation reason',
form: { form: {
groupName: 'Please enter Group name', groupName: 'Please enter Group name',
idempotentId: 'Please enter Idempotent ID', idempotentId: 'Please enter Idempotent ID',
sceneName: 'Please enter Scene name', sceneName: 'Please enter Scene name',
bizNo: 'Please enter Business Number', bizNo: 'Please enter Business Number'
UniqueId: 'Please enter UniqueId'
}, },
addRetryLog: 'Add Retry log', addRetryTask: 'Add Retry Task',
editRetryLog: 'Add Retry log' editRetryTask: 'Add Retry Task'
}, },
workflowBatch: { workflowBatch: {
title: 'Workflow Batch List', title: 'Workflow Batch List',

View File

@ -220,6 +220,25 @@ const local: App.I18n.Schema = {
workflowDecisionFailed: '判定未通过' workflowDecisionFailed: '判定未通过'
} }
}, },
retryOperationReason: {
label: '操作原因',
form: '请选择执行状态',
items: {
none: '无',
taskExecutionTimeout: '任务执行超时',
notClient: '无客户端节点',
closed: '任务已关闭',
discard: '任务丢弃',
overlay: '任务被覆盖',
notExecutionTask: '无可执行任务项',
taskExecutionError: '任务执行期间发生非预期异常',
mannerStop: '手动停止',
noRunningRetry: '当前重试非运行中',
sceneClosed: '当前场景已关闭',
retryFail: '重试失败',
clientTriggerRetryStop: '客户端触发任务停止'
}
},
updateDt: '更新时间', updateDt: '更新时间',
createDt: '创建时间', createDt: '创建时间',
today: '今天', today: '今天',
@ -660,10 +679,9 @@ const local: App.I18n.Schema = {
createDt: '请输入创建时间' createDt: '请输入创建时间'
} }
}, },
retryTask: { retry: {
title: '重试任务列表', title: '重试列表',
detail: '重试任务详情', detail: '重试详情',
uniqueId: 'UniqueId',
groupName: '组名称', groupName: '组名称',
sceneName: '场景名称', sceneName: '场景名称',
idempotentId: '幂等ID', idempotentId: '幂等ID',
@ -671,9 +689,9 @@ const local: App.I18n.Schema = {
executorName: '执行器名称', executorName: '执行器名称',
argsStr: '方法参数', argsStr: '方法参数',
nextTriggerAt: '下次触发时间', nextTriggerAt: '下次触发时间',
retryCount: '重试次数', retryCount: '次数',
retryStatus: '重试状态', retryStatus: '状态',
taskType: '任务类型', taskType: '类型',
form: { form: {
retryStatus: '请输入重试状态', retryStatus: '请输入重试状态',
bizNo: '请输入业务编号', bizNo: '请输入业务编号',
@ -697,9 +715,9 @@ const local: App.I18n.Schema = {
callback: '回调数据' callback: '回调数据'
}, },
generateIdempotentId: '通过客户端生成', generateIdempotentId: '通过客户端生成',
addRetryTask: '新增重试任务', addRetry: '新增重试',
editRetryTask: '编辑重试任务', editRetry: '编辑重试',
batchAddRetryTask: '批量新增重试任务' batchAddRetry: '批量新增'
}, },
retryScene: { retryScene: {
title: '场景列表', title: '场景列表',
@ -749,26 +767,25 @@ const local: App.I18n.Schema = {
random: '随机等待' random: '随机等待'
} }
}, },
retryLog: { retryTask: {
title: '重试日志列表', title: '重试任务列表',
detail: '重试日志详情', detail: '重试详情',
UniqueId: 'UniqueId',
groupName: '组名称', groupName: '组名称',
sceneName: '场景名称', sceneName: '场景名称',
retryStatus: '重试状态', retryStatus: '状态',
taskType: '任务类型', taskType: '类型',
idempotentId: '幂等id', idempotentId: '幂等ID',
bizNo: '业务编号', bizNo: '业务编号',
createDt: '创建时间', createDt: '创建时间',
operationReason: '操作原因',
form: { form: {
groupName: '请输入组名称', groupName: '请输入组名称',
idempotentId: '请输入幂等id', idempotentId: '请输入幂等id',
sceneName: '请输入场景名称', sceneName: '请输入场景名称',
bizNo: '请输入业务编号', bizNo: '请输入业务编号'
UniqueId: '请输入UniqueId'
}, },
addRetryLog: '新增重试日志', addRetryTask: '新增重试任务',
editRetryLog: '编辑重试日志' editRetryTask: '编辑重试任务'
}, },
workflow: { workflow: {
title: '工作流列表', title: '工作流列表',

View File

@ -114,6 +114,9 @@ declare namespace Api {
* 13 14 * 13 14
*/ */
type OperationReason = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14; type OperationReason = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;
/** 1、任务执行超时 2、无客户端节点 3、JOB已关闭 4、任务丢弃 5、任务被覆盖 6、无可执行任务项 7、任务执行期间发生非预期异常 8、手动停止 8、当前重试非运行中 9、当前场景已关闭 10、重试失败 */
type RetryOperationReason = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
} }
/** /**

37
src/typings/app.d.ts vendored
View File

@ -501,6 +501,25 @@ declare namespace App {
workflowDecisionFailed: string; workflowDecisionFailed: string;
}; };
}; };
retryOperationReason: {
label: string;
form: string;
items: {
none: string;
taskExecutionTimeout: string;
notClient: string;
closed: string;
discard: string;
overlay: string;
notExecutionTask: string;
taskExecutionError: string;
mannerStop: string;
noRunningRetry: string;
sceneClosed: string;
retryFail: string;
clientTriggerRetryStop: string;
};
};
updateDt: string; updateDt: string;
createDt: string; createDt: string;
today: string; today: string;
@ -860,10 +879,9 @@ declare namespace App {
createDt: string; createDt: string;
}; };
}; };
retryTask: { retry: {
title: string; title: string;
detail: string; detail: string;
uniqueId: string;
groupName: string; groupName: string;
sceneName: string; sceneName: string;
idempotentId: string; idempotentId: string;
@ -897,9 +915,9 @@ declare namespace App {
callback: string; callback: string;
}; };
generateIdempotentId: string; generateIdempotentId: string;
addRetryTask: string; addRetry: string;
editRetryTask: string; editRetry: string;
batchAddRetryTask: string; batchAddRetry: string;
}; };
retryScene: { retryScene: {
title: string; title: string;
@ -949,10 +967,9 @@ declare namespace App {
random: string; random: string;
}; };
}; };
retryLog: { retryTask: {
title: string; title: string;
detail: string; detail: string;
UniqueId: string;
groupName: string; groupName: string;
sceneName: string; sceneName: string;
retryStatus: string; retryStatus: string;
@ -960,15 +977,15 @@ declare namespace App {
idempotentId: string; idempotentId: string;
bizNo: string; bizNo: string;
createDt: string; createDt: string;
operationReason: string;
form: { form: {
groupName: string; groupName: string;
idempotentId: string; idempotentId: string;
sceneName: string; sceneName: string;
bizNo: string; bizNo: string;
UniqueId: string;
}; };
addRetryLog: string; addRetryTask: string;
editRetryLog: string; editRetryTask: string;
}; };
workflow: { workflow: {
title: string; title: string;

View File

@ -33,7 +33,7 @@ const title = computed(() => {
} }
if (type.value === 'retry') { if (type.value === 'retry') {
return `${$t('common.systemTaskType.retry') + $t('page.log.title')} ------ ${$t('page.retryLog.groupName')}: ${groupName}, ${$t('page.retryLog.UniqueId')}: ${uniqueId}`; return `${$t('common.systemTaskType.retry') + $t('page.log.title')} ------ ${$t('page.retryTask.groupName')}: ${groupName}, ${$t('page.retryTask.title')}: ${uniqueId}`;
} }
return $t('page.log.title'); return $t('page.log.title');

View File

@ -51,6 +51,7 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
title: $t('common.index'), title: $t('common.index'),
align: 'center', align: 'center',
width: 128, width: 128,
fixed: 'left',
render: row => { render: row => {
async function showDetailDrawer() { async function showDetailDrawer() {
await loadRetryInfo(row); await loadRetryInfo(row);
@ -66,36 +67,36 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
}, },
{ {
key: 'groupName', key: 'groupName',
title: $t('page.retryTask.groupName'), title: $t('page.retry.groupName'),
align: 'left', align: 'center',
resizable: true, resizable: true,
minWidth: 120, minWidth: 120,
maxWidth: 250 maxWidth: 250
}, },
{ {
key: 'sceneName', key: 'sceneName',
title: $t('page.retryTask.sceneName'), title: $t('page.retry.sceneName'),
align: 'left', align: 'center',
minWidth: 120 minWidth: 120
}, },
{ {
key: 'nextTriggerAt', key: 'nextTriggerAt',
title: $t('page.retryTask.nextTriggerAt'), title: $t('page.retry.nextTriggerAt'),
align: 'left', align: 'center',
resizable: true, resizable: true,
minWidth: 120, minWidth: 80,
maxWidth: 150 maxWidth: 150
}, },
{ {
key: 'retryCount', key: 'retryCount',
title: $t('page.retryTask.retryCount'), title: $t('page.retry.retryCount'),
align: 'center', align: 'center',
width: 80 width: 80
}, },
{ {
key: 'retryStatus', key: 'retryStatus',
title: $t('page.retryTask.retryStatus'), title: $t('page.retry.retryStatus'),
align: 'left', align: 'center',
width: 120, width: 120,
render: row => { render: row => {
if (row.retryStatus === null) { if (row.retryStatus === null) {
@ -108,8 +109,8 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
}, },
{ {
key: 'taskType', key: 'taskType',
title: $t('page.retryTask.taskType'), title: $t('page.retry.taskType'),
align: 'left', align: 'center',
width: 100, width: 100,
render: row => { render: row => {
if (row.taskType === null) { if (row.taskType === null) {
@ -126,16 +127,15 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
}, },
{ {
key: 'idempotentId', key: 'idempotentId',
title: $t('page.retryTask.idempotentId'), title: $t('page.retry.idempotentId'),
align: 'left', align: 'center',
resizable: true, resizable: true,
minWidth: 150, minWidth: 120
maxWidth: 300
}, },
{ {
key: 'bizNo', key: 'bizNo',
title: $t('page.retryTask.bizNo'), title: $t('page.retry.bizNo'),
align: 'left', align: 'center',
resizable: true, resizable: true,
minWidth: 150, minWidth: 150,
maxWidth: 300 maxWidth: 300
@ -317,7 +317,7 @@ onMounted(async () => {
<div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto"> <div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
<RetryTaskSearch v-model:model="searchParams" @reset="resetSearchParams" @search="getData" /> <RetryTaskSearch v-model:model="searchParams" @reset="resetSearchParams" @search="getData" />
<NCard <NCard
:title="$t('page.retryTask.title')" :title="$t('page.retry.title')"
:bordered="false" :bordered="false"
size="small" size="small"
class="sm:flex-1-hidden card-wrapper" class="sm:flex-1-hidden card-wrapper"

View File

@ -69,7 +69,7 @@ watch(visible, () => {
</script> </script>
<template> <template>
<OperateDrawer v-model="visible" :title="$t('page.retryTask.batchAddRetryTask')" @handle-submit="handleSubmit"> <OperateDrawer v-model="visible" :title="$t('page.retryTask.batchAddRetry')" @handle-submit="handleSubmit">
<NForm ref="formRef" :model="model" :rules="rules"> <NForm ref="formRef" :model="model" :rules="rules">
<NFormItem :label="$t('page.retryTask.groupName')" path="groupName"> <NFormItem :label="$t('page.retryTask.groupName')" path="groupName">
<SelectGroup v-model:value="model.groupName" /> <SelectGroup v-model:value="model.groupName" />

View File

@ -20,36 +20,36 @@ const visible = defineModel<boolean>('visible', {
</script> </script>
<template> <template>
<OperateDrawer v-model="visible" :title="$t('page.retryTask.detail')"> <OperateDrawer v-model="visible" :title="$t('page.retry.detail')">
<NDescriptions label-placement="top" bordered :column="2"> <NDescriptions label-placement="top" bordered :column="2">
<NDescriptionsItem :label="$t('page.retryTask.groupName')" :span="2"> <NDescriptionsItem :label="$t('page.retry.groupName')" :span="2">
{{ rowData?.groupName }} {{ rowData?.groupName }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.sceneName')" :span="2"> <NDescriptionsItem :label="$t('page.retry.sceneName')" :span="2">
{{ rowData?.sceneName }} {{ rowData?.sceneName }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.nextTriggerAt')" :span="1"> <NDescriptionsItem :label="$t('page.retry.nextTriggerAt')" :span="1">
{{ rowData?.nextTriggerAt }} {{ rowData?.nextTriggerAt }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.retryCount')" :span="1"> <NDescriptionsItem :label="$t('page.retry.retryCount')" :span="1">
{{ rowData?.retryCount }} {{ rowData?.retryCount }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.retryStatus')" :span="1"> <NDescriptionsItem :label="$t('page.retry.retryStatus')" :span="1">
<NTag :type="tagColor(rowData?.retryStatus!)"> <NTag :type="tagColor(rowData?.retryStatus!)">
{{ $t(retryStatusTypeRecord[rowData?.retryStatus!]) }} {{ $t(retryStatusTypeRecord[rowData?.retryStatus!]) }}
</NTag> </NTag>
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.taskType')" :span="1"> <NDescriptionsItem :label="$t('page.retry.taskType')" :span="1">
<NTag :type="tagColor(rowData?.taskType!)">{{ $t(retryTaskTypeRecord[rowData?.taskType!]) }}</NTag> <NTag :type="tagColor(rowData?.taskType!)">{{ $t(retryTaskTypeRecord[rowData?.taskType!]) }}</NTag>
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.bizNo')" :span="2">{{ rowData?.bizNo }}</NDescriptionsItem> <NDescriptionsItem :label="$t('page.retry.bizNo')" :span="2">{{ rowData?.bizNo }}</NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.idempotentId')" :span="2"> <NDescriptionsItem :label="$t('page.retry.idempotentId')" :span="2">
{{ rowData?.idempotentId }} {{ rowData?.idempotentId }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.executorName')" :span="2"> <NDescriptionsItem :label="$t('page.retry.executorName')" :span="2">
{{ rowData?.executorName }} {{ rowData?.executorName }}
</NDescriptionsItem> </NDescriptionsItem>
<NDescriptionsItem :label="$t('page.retryTask.argsStr')" :span="2">{{ rowData?.argsStr }}</NDescriptionsItem> <NDescriptionsItem :label="$t('page.retry.argsStr')" :span="2">{{ rowData?.argsStr }}</NDescriptionsItem>
<NDescriptionsItem :label="$t('common.createDt')" :span="1">{{ rowData?.createDt }}</NDescriptionsItem> <NDescriptionsItem :label="$t('common.createDt')" :span="1">{{ rowData?.createDt }}</NDescriptionsItem>
<NDescriptionsItem :label="$t('common.updateDt')" :span="1">{{ rowData?.updateDt }}</NDescriptionsItem> <NDescriptionsItem :label="$t('common.updateDt')" :span="1">{{ rowData?.updateDt }}</NDescriptionsItem>
</NDescriptions> </NDescriptions>

View File

@ -39,8 +39,8 @@ const { defaultRequiredRule } = useFormRules();
const title = computed(() => { const title = computed(() => {
const titles: Record<NaiveUI.TableOperateType, string> = { const titles: Record<NaiveUI.TableOperateType, string> = {
add: $t('page.retryTask.addRetryTask'), add: $t('page.retry.addRetry'),
edit: $t('page.retryTask.editRetryTask') edit: $t('page.retry.editRetry')
}; };
return titles[props.operateType]; return titles[props.operateType];
}); });

View File

@ -29,25 +29,22 @@ function search() {
<template> <template>
<SearchForm :model="model" @search="search" @reset="reset"> <SearchForm :model="model" @search="search" @reset="reset">
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.groupName')" path="groupName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retry.groupName')" path="groupName" class="pr-24px">
<SelectGroup v-model:value="model.groupName" clearable /> <SelectGroup v-model:value="model.groupName" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.sceneName')" path="sceneName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retry.sceneName')" path="sceneName" class="pr-24px">
<SelectScene v-model:value="model.sceneName" :group-name="model.groupName as string" clearable /> <SelectScene v-model:value="model.sceneName" :group-name="model.groupName as string" clearable />
</NFormItemGi> </NFormItemGi>
<!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.uniqueId')" path="uniqueId" class="pr-24px">--> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retry.idempotentId')" path="idempotentId" class="pr-24px">
<!-- <NInput v-model:value="model.uniqueId" :placeholder="$t('page.retryTask.form.uniqueId')" clearable />--> <NInput v-model:value="model.idempotentId" :placeholder="$t('page.retry.form.idempotentId')" clearable />
<!-- </NFormItemGi>-->
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.idempotentId')" path="idempotentId" class="pr-24px">
<NInput v-model:value="model.idempotentId" :placeholder="$t('page.retryTask.form.idempotentId')" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.bizNo')" path="bizNo" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retry.bizNo')" path="bizNo" class="pr-24px">
<NInput v-model:value="model.bizNo" :placeholder="$t('page.retryTask.form.bizNo')" clearable /> <NInput v-model:value="model.bizNo" :placeholder="$t('page.retry.form.bizNo')" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.retryStatus')" path="retryStatus" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retry.retryStatus')" path="retryStatus" class="pr-24px">
<NSelect <NSelect
v-model:value="model.retryStatus" v-model:value="model.retryStatus"
:placeholder="$t('page.retryTask.form.retryStatus')" :placeholder="$t('page.retry.form.retryStatus')"
:options="translateOptions(retryStatusTypeOptions)" :options="translateOptions(retryStatusTypeOptions)"
clearable clearable
/> />

View File

@ -6,7 +6,7 @@ import { fetchBatchDeleteRetryLog, fetchDeleteRetryLog, fetchRetryLogById, fetch
import { $t } from '@/locales'; import { $t } from '@/locales';
import { useAppStore } from '@/store/modules/app'; import { useAppStore } from '@/store/modules/app';
import { useTable, useTableOperate } from '@/hooks/common/table'; import { useTable, useTableOperate } from '@/hooks/common/table';
import { retryTaskStatusTypeRecord, retryTaskTypeRecord } from '@/constants/business'; import { operationReasonRecord, retryTaskStatusTypeRecord, retryTaskTypeRecord } from '@/constants/business';
import { monthRangeISO8601, tagColor } from '@/utils/common'; import { monthRangeISO8601, tagColor } from '@/utils/common';
import RetryLogSearch from './modules/retry-task-search.vue'; import RetryLogSearch from './modules/retry-task-search.vue';
import RetryLogDetailDrawer from './modules/retry-task-detail-drawer.vue'; import RetryLogDetailDrawer from './modules/retry-task-detail-drawer.vue';
@ -61,19 +61,19 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
}, },
{ {
key: 'groupName', key: 'groupName',
title: $t('page.retryLog.groupName'), title: $t('page.retryTask.groupName'),
align: 'left', align: 'left',
minWidth: 120 minWidth: 120
}, },
{ {
key: 'sceneName', key: 'sceneName',
title: $t('page.retryLog.sceneName'), title: $t('page.retryTask.sceneName'),
align: 'left', align: 'left',
minWidth: 120 minWidth: 120
}, },
{ {
key: 'taskStatus', key: 'taskStatus',
title: $t('page.retryLog.retryStatus'), title: $t('page.retryTask.retryStatus'),
align: 'left', align: 'left',
minWidth: 120, minWidth: 120,
render: row => { render: row => {
@ -94,9 +94,23 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
return <NTag type={tagMap[row.taskStatus!]}>{label}</NTag>; return <NTag type={tagMap[row.taskStatus!]}>{label}</NTag>;
} }
}, },
{
key: 'operationReason',
title: $t('page.retryTask.operationReason'),
align: 'center',
width: 120,
render: row => {
if (row.operationReason === null) {
return null;
}
const label = $t(operationReasonRecord[row.operationReason!]);
return <NTag type={tagColor(row.operationReason!)}>{label}</NTag>;
}
},
{ {
key: 'taskType', key: 'taskType',
title: $t('page.retryLog.taskType'), title: $t('page.retryTask.taskType'),
align: 'left', align: 'left',
minWidth: 120, minWidth: 120,
render: row => { render: row => {
@ -110,7 +124,7 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
}, },
{ {
key: 'createDt', key: 'createDt',
title: $t('page.retryLog.createDt'), title: $t('page.retryTask.createDt'),
align: 'left', align: 'left',
minWidth: 120 minWidth: 120
}, },
@ -165,7 +179,7 @@ async function loadRetryInfo(row: Api.RetryTask.RetryTask) {
<div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto"> <div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
<RetryLogSearch v-model:model="searchParams" @reset="resetSearchParams" @search="getData" /> <RetryLogSearch v-model:model="searchParams" @reset="resetSearchParams" @search="getData" />
<NCard <NCard
:title="$t('page.retryLog.title')" :title="$t('page.retryTask.title')"
:bordered="false" :bordered="false"
size="small" size="small"
class="sm:flex-1-hidden card-wrapper" class="sm:flex-1-hidden card-wrapper"

View File

@ -30,22 +30,22 @@ function search() {
<template> <template>
<SearchForm btn-span="24 xl:3" :model="model" @search="search" @reset="reset"> <SearchForm btn-span="24 xl:3" :model="model" @search="search" @reset="reset">
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.groupName')" path="groupName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.groupName')" path="groupName" class="pr-24px">
<SelectGroup v-model:value="model.groupName" clearable /> <SelectGroup v-model:value="model.groupName" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.sceneName')" path="sceneName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.sceneName')" path="sceneName" class="pr-24px">
<SelectScene v-model:value="model.sceneName" :group-name="model.groupName as string" clearable /> <SelectScene v-model:value="model.sceneName" :group-name="model.groupName as string" clearable />
</NFormItemGi> </NFormItemGi>
<!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.UniqueId')" path="UniqueId" class="pr-24px">--> <!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.UniqueId')" path="UniqueId" class="pr-24px">-->
<!-- <NInput v-model:value="model.uniqueId" :placeholder="$t('page.retryLog.form.UniqueId')" clearable />--> <!-- <NInput v-model:value="model.uniqueId" :placeholder="$t('page.retryTask.form.UniqueId')" clearable />-->
<!-- </NFormItemGi>--> <!-- </NFormItemGi>-->
<!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.idempotentId')" path="idempotentId" class="pr-24px">--> <!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.idempotentId')" path="idempotentId" class="pr-24px">-->
<!-- <NInput v-model:value="model.idempotentId" :placeholder="$t('page.retryLog.form.idempotentId')" clearable />--> <!-- <NInput v-model:value="model.idempotentId" :placeholder="$t('page.retryTask.form.idempotentId')" clearable />-->
<!-- </NFormItemGi>--> <!-- </NFormItemGi>-->
<!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.bizNo')" path="bizNo" class="pr-24px">--> <!-- <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.bizNo')" path="bizNo" class="pr-24px">-->
<!-- <NInput v-model:value="model.bizNo" :placeholder="$t('page.retryLog.form.bizNo')" clearable />--> <!-- <NInput v-model:value="model.bizNo" :placeholder="$t('page.retryTask.form.bizNo')" clearable />-->
<!-- </NFormItemGi>--> <!-- </NFormItemGi>-->
<NFormItemGi span="24 s:12 m:6" :label="$t('page.retryLog.retryStatus')" path="taskBatchStatus" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.retryStatus')" path="taskBatchStatus" class="pr-24px">
<NSelect <NSelect
v-model:value="model.taskStatus" v-model:value="model.taskStatus"
:placeholder="$t('page.retryTask.form.retryStatus')" :placeholder="$t('page.retryTask.form.retryStatus')"