feat: 新增分片参数表单
This commit is contained in:
parent
bb9acb852c
commit
367371bfc1
@ -33,6 +33,10 @@ const emit = defineEmits<Emits>();
|
|||||||
const visible = defineModel<boolean>('visible', {
|
const visible = defineModel<boolean>('visible', {
|
||||||
default: false
|
default: false
|
||||||
});
|
});
|
||||||
|
// const argsTags = ref<string[]>([]);
|
||||||
|
const dynamicForm = reactive({
|
||||||
|
args: [{ arg: '' }]
|
||||||
|
});
|
||||||
|
|
||||||
const { formRef, validate, restoreValidation } = useNaiveForm();
|
const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||||
const { defaultRequiredRule } = useFormRules();
|
const { defaultRequiredRule } = useFormRules();
|
||||||
@ -136,6 +140,13 @@ function handleUpdateModelWhenEdit() {
|
|||||||
|
|
||||||
if (props.operateType === 'edit' && props.rowData) {
|
if (props.operateType === 'edit' && props.rowData) {
|
||||||
Object.assign(model, props.rowData);
|
Object.assign(model, props.rowData);
|
||||||
|
if (model.taskType === 3 && model.argsStr) {
|
||||||
|
Object.assign(dynamicForm, {
|
||||||
|
args: JSON.parse(model.argsStr).map((item: string) => {
|
||||||
|
return { arg: item };
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +161,6 @@ async function handleSubmit() {
|
|||||||
const {
|
const {
|
||||||
groupName,
|
groupName,
|
||||||
jobName,
|
jobName,
|
||||||
argsStr,
|
|
||||||
argsType,
|
argsType,
|
||||||
jobStatus,
|
jobStatus,
|
||||||
routeKey,
|
routeKey,
|
||||||
@ -169,7 +179,7 @@ async function handleSubmit() {
|
|||||||
const { error } = await fetchAddJob({
|
const { error } = await fetchAddJob({
|
||||||
groupName,
|
groupName,
|
||||||
jobName,
|
jobName,
|
||||||
argsStr,
|
argsStr: parseArgsStr(),
|
||||||
argsType,
|
argsType,
|
||||||
jobStatus,
|
jobStatus,
|
||||||
routeKey,
|
routeKey,
|
||||||
@ -194,7 +204,6 @@ async function handleSubmit() {
|
|||||||
id,
|
id,
|
||||||
groupName,
|
groupName,
|
||||||
jobName,
|
jobName,
|
||||||
argsStr,
|
|
||||||
argsType,
|
argsType,
|
||||||
jobStatus,
|
jobStatus,
|
||||||
routeKey,
|
routeKey,
|
||||||
@ -214,7 +223,7 @@ async function handleSubmit() {
|
|||||||
id,
|
id,
|
||||||
groupName,
|
groupName,
|
||||||
jobName,
|
jobName,
|
||||||
argsStr,
|
argsStr: parseArgsStr(),
|
||||||
argsType,
|
argsType,
|
||||||
jobStatus,
|
jobStatus,
|
||||||
routeKey,
|
routeKey,
|
||||||
@ -238,6 +247,21 @@ async function handleSubmit() {
|
|||||||
emit('submitted');
|
emit('submitted');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseArgsStr() {
|
||||||
|
if (model.taskType === 3 && dynamicForm.args) {
|
||||||
|
return JSON.stringify(dynamicForm.args.map(item => item.arg));
|
||||||
|
}
|
||||||
|
return model.argsStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const removeItem = (index: number) => {
|
||||||
|
dynamicForm.args.splice(index, 1);
|
||||||
|
};
|
||||||
|
|
||||||
|
const addItem = () => {
|
||||||
|
dynamicForm.args.push({ arg: '' });
|
||||||
|
};
|
||||||
|
|
||||||
watch(visible, () => {
|
watch(visible, () => {
|
||||||
if (visible.value) {
|
if (visible.value) {
|
||||||
handleUpdateModelWhenEdit();
|
handleUpdateModelWhenEdit();
|
||||||
@ -284,12 +308,40 @@ watch(visible, () => {
|
|||||||
<NFormItem :label="$t('page.jobTask.executorInfo')" path="executorInfo">
|
<NFormItem :label="$t('page.jobTask.executorInfo')" path="executorInfo">
|
||||||
<NInput v-model:value="model.executorInfo" :placeholder="$t('page.jobTask.form.executorInfo')" />
|
<NInput v-model:value="model.executorInfo" :placeholder="$t('page.jobTask.form.executorInfo')" />
|
||||||
</NFormItem>
|
</NFormItem>
|
||||||
<NFormItem :label="$t('page.jobTask.argsStr')" path="argsStr">
|
|
||||||
<CodeMirror v-model="model.argsStr" lang="json" :placeholder="$t('page.jobTask.form.argsStr')" />
|
|
||||||
</NFormItem>
|
|
||||||
<NFormItem :label="$t('page.jobTask.taskType')" path="taskType">
|
<NFormItem :label="$t('page.jobTask.taskType')" path="taskType">
|
||||||
<TaskType v-model:value="model.taskType" :placeholder="$t('page.jobTask.form.taskType')" />
|
<TaskType v-model:value="model.taskType" :placeholder="$t('page.jobTask.form.taskType')" />
|
||||||
</NFormItem>
|
</NFormItem>
|
||||||
|
<NFormItem
|
||||||
|
:label="$t('page.jobTask.argsStr')"
|
||||||
|
path="argsStr"
|
||||||
|
:rule="model.taskType === 3 ? defaultRequiredRule : undefined"
|
||||||
|
>
|
||||||
|
<NCard v-if="model.taskType === 3" class="flex-col">
|
||||||
|
<NFormItem
|
||||||
|
v-for="(item, index) in dynamicForm.args"
|
||||||
|
:key="index"
|
||||||
|
:label="`分片参数 ${index + 1}`"
|
||||||
|
:path="`args[${index}].arg`"
|
||||||
|
:show-feedback="false"
|
||||||
|
class="m-b-12px"
|
||||||
|
:rule="{
|
||||||
|
required: true,
|
||||||
|
message: `${$t('page.jobTask.form.argsStr')} ${index + 1}`,
|
||||||
|
trigger: ['input', 'blur'],
|
||||||
|
validator() {
|
||||||
|
return !!item.arg;
|
||||||
|
}
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<CodeMirror v-model="item.arg" lang="json" :placeholder="$t('page.jobTask.form.argsStr')" />
|
||||||
|
<NButton class="ml-12px" type="error" dashed @click="removeItem(index)">
|
||||||
|
<icon-ic-round-delete class="text-icon" />
|
||||||
|
</NButton>
|
||||||
|
</NFormItem>
|
||||||
|
<NButton block dashed attr-type="button" @click="addItem"><icon-ic-round-plus class="text-icon" /></NButton>
|
||||||
|
</NCard>
|
||||||
|
<CodeMirror v-else v-model="model.argsStr" lang="json" :placeholder="$t('page.jobTask.form.argsStr')" />
|
||||||
|
</NFormItem>
|
||||||
<NFormItem :label="$t('page.jobTask.triggerType')" path="triggerType">
|
<NFormItem :label="$t('page.jobTask.triggerType')" path="triggerType">
|
||||||
<TriggerType
|
<TriggerType
|
||||||
v-model:value="model.triggerType"
|
v-model:value="model.triggerType"
|
||||||
|
Loading…
Reference in New Issue
Block a user