feat(sj_1.2.0-beta1): 重试任务任务参数支持多参数
This commit is contained in:
parent
b135ec5afe
commit
7d428e5b42
@ -1,10 +1,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, reactive, watch } from 'vue';
|
import { computed, reactive, ref, watch } from 'vue';
|
||||||
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
|
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
|
||||||
import OperateDrawer from '@/components/common/operate-drawer.vue';
|
import OperateDrawer from '@/components/common/operate-drawer.vue';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
import { fetchAddRetryTask, fetchIdempotentIdGenerate } from '@/service/api';
|
import { fetchAddRetryTask, fetchIdempotentIdGenerate } from '@/service/api';
|
||||||
import { translateOptions } from '@/utils/common';
|
import { isNotNull, translateOptions } from '@/utils/common';
|
||||||
import { retryTaskStatusTypeOptions } from '@/constants/business';
|
import { retryTaskStatusTypeOptions } from '@/constants/business';
|
||||||
import CodeMirror from '@/components/common/code-mirror.vue';
|
import CodeMirror from '@/components/common/code-mirror.vue';
|
||||||
import SelectGroup from '@/components/common/select-group.vue';
|
import SelectGroup from '@/components/common/select-group.vue';
|
||||||
@ -33,6 +33,7 @@ const visible = defineModel<boolean>('visible', {
|
|||||||
default: false
|
default: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const argsList = ref<string[]>([]);
|
||||||
const { formRef, validate, restoreValidation } = useNaiveForm();
|
const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||||
const { defaultRequiredRule } = useFormRules();
|
const { defaultRequiredRule } = useFormRules();
|
||||||
|
|
||||||
@ -74,11 +75,31 @@ const rules: Record<RuleKey, App.Global.FormRule> = {
|
|||||||
idempotentId: defaultRequiredRule,
|
idempotentId: defaultRequiredRule,
|
||||||
bizNo: defaultRequiredRule,
|
bizNo: defaultRequiredRule,
|
||||||
executorName: defaultRequiredRule,
|
executorName: defaultRequiredRule,
|
||||||
argsStr: defaultRequiredRule,
|
argsStr: { ...defaultRequiredRule, validator: validatorArgsStr },
|
||||||
retryStatus: defaultRequiredRule
|
retryStatus: defaultRequiredRule
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function validatorArgsStr() {
|
||||||
|
if (argsList.value.length === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
argsList.value.forEach(arg => {
|
||||||
|
if (!isNotNull(arg)) {
|
||||||
|
throw new Error($t('form.required'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
function handleUpdateModelWhenEdit() {
|
function handleUpdateModelWhenEdit() {
|
||||||
|
argsList.value = [];
|
||||||
|
|
||||||
if (props.operateType === 'add') {
|
if (props.operateType === 'add') {
|
||||||
Object.assign(model, createDefaultModel());
|
Object.assign(model, createDefaultModel());
|
||||||
return;
|
return;
|
||||||
@ -86,6 +107,7 @@ function handleUpdateModelWhenEdit() {
|
|||||||
|
|
||||||
if (props.operateType === 'edit' && props.rowData) {
|
if (props.operateType === 'edit' && props.rowData) {
|
||||||
Object.assign(model, props.rowData);
|
Object.assign(model, props.rowData);
|
||||||
|
argsList.value = JSON.parse(props.rowData.argsStr || '[]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,14 +119,14 @@ async function handleSubmit() {
|
|||||||
await validate();
|
await validate();
|
||||||
|
|
||||||
if (props.operateType === 'add') {
|
if (props.operateType === 'add') {
|
||||||
const { groupName, sceneName, idempotentId, bizNo, executorName, argsStr, retryStatus } = model;
|
const { groupName, sceneName, idempotentId, bizNo, executorName, retryStatus } = model;
|
||||||
const { error } = await fetchAddRetryTask({
|
const { error } = await fetchAddRetryTask({
|
||||||
groupName,
|
groupName,
|
||||||
sceneName,
|
sceneName,
|
||||||
idempotentId,
|
idempotentId,
|
||||||
bizNo,
|
bizNo,
|
||||||
executorName,
|
executorName,
|
||||||
argsStr,
|
argsStr: JSON.stringify(argsList.value),
|
||||||
retryStatus
|
retryStatus
|
||||||
});
|
});
|
||||||
if (error) return;
|
if (error) return;
|
||||||
@ -184,7 +206,19 @@ async function setIdempotentId() {
|
|||||||
/>
|
/>
|
||||||
</NFormItem>
|
</NFormItem>
|
||||||
<NFormItem :label="$t('page.retryTask.argsStr')" path="argsStr">
|
<NFormItem :label="$t('page.retryTask.argsStr')" path="argsStr">
|
||||||
<CodeMirror v-model="model.argsStr" lang="json" :placeholder="$t('page.jobTask.form.argsStr')" />
|
<NDynamicInput v-model:value="argsList" :on-create="() => ''">
|
||||||
|
<template #default="{ index }">
|
||||||
|
<NFormItem
|
||||||
|
class="w-full"
|
||||||
|
ignore-path-change
|
||||||
|
:show-label="false"
|
||||||
|
:show-feedback="false"
|
||||||
|
:path="`argsStr[${index}]`"
|
||||||
|
>
|
||||||
|
<CodeMirror v-model="argsList[index]" lang="json" :placeholder="$t('page.jobTask.form.argsStr')" />
|
||||||
|
</NFormItem>
|
||||||
|
</template>
|
||||||
|
</NDynamicInput>
|
||||||
</NFormItem>
|
</NFormItem>
|
||||||
<NFormItem :label="$t('page.retryTask.retryStatus')" path="retryStatus">
|
<NFormItem :label="$t('page.retryTask.retryStatus')" path="retryStatus">
|
||||||
<NSelect
|
<NSelect
|
||||||
|
Loading…
Reference in New Issue
Block a user