Skip to content

Commit 5fa2a78

Browse files
committed
feat: 添加监听器请求地址非空校验
1 parent 35a0e69 commit 5fa2a78

File tree

1 file changed

+145
-139
lines changed

1 file changed

+145
-139
lines changed

src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue

Lines changed: 145 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -436,155 +436,161 @@
436436
</div>
437437
</el-tab-pane>
438438
<el-tab-pane label="监听器" name="listener">
439-
<div v-for="(listener, listenerIdx) in taskListener" :key="listenerIdx">
440-
<el-form label-position="top">
441-
<div>
442-
<el-divider content-position="left">
443-
<el-text tag="b" size="large">{{ listener.name }}</el-text>
444-
</el-divider>
439+
<el-form :model="configForm" label-position="top">
440+
<div v-for="(listener, listenerIdx) in taskListener" :key="listenerIdx">
441+
<el-divider content-position="left">
442+
<el-text tag="b" size="large">{{ listener.name }}</el-text>
443+
</el-divider>
444+
<el-form-item>
445+
<el-switch
446+
v-model="configForm[`task${listener.type}ListenerEnable`]"
447+
active-text="开启"
448+
inactive-text="关闭"
449+
/>
450+
</el-form-item>
451+
<div v-if="configForm[`task${listener.type}ListenerEnable`]">
445452
<el-form-item>
446-
<el-switch
447-
v-model="configForm[`task${listener.type}ListenerEnable`]"
448-
active-text="开启"
449-
inactive-text="关闭"
453+
<el-alert
454+
title="仅支持 POST 请求,以请求体方式接收参数"
455+
type="warning"
456+
show-icon
457+
:closable="false"
450458
/>
451459
</el-form-item>
452-
<div v-if="configForm[`task${listener.type}ListenerEnable`]">
453-
<el-form-item>
454-
<el-alert
455-
title="仅支持 POST 请求,以请求体方式接收参数"
456-
type="warning"
457-
show-icon
458-
:closable="false"
459-
/>
460-
</el-form-item>
461-
<el-form-item label="请求地址">
462-
<el-input v-model="configForm[`task${listener.type}ListenerPath`]" />
463-
</el-form-item>
464-
<el-form-item label="请求头">
465-
<div
466-
class="flex pt-2"
467-
v-for="(item, index) in configForm[`task${listener.type}ListenerHeader`]"
468-
:key="index"
469-
>
470-
<div class="mr-2">
471-
<el-input class="w-160px" v-model="item.key" />
472-
</div>
473-
<div class="mr-2">
474-
<el-select class="w-100px!" v-model="item.type">
475-
<el-option
476-
v-for="types in LISTENER_MAP_TYPES"
477-
:key="types.value"
478-
:label="types.label"
479-
:value="types.value"
480-
/>
481-
</el-select>
482-
</div>
483-
<div class="mr-2">
484-
<el-input
485-
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
486-
class="w-160px"
487-
v-model="item.value"
460+
<el-form-item
461+
label="请求地址"
462+
:prop="`task${listener.type}ListenerPath`"
463+
:rules="{
464+
required: true,
465+
message: '请求地址不能为空',
466+
trigger: 'blur'
467+
}"
468+
>
469+
<el-input v-model="configForm[`task${listener.type}ListenerPath`]" />
470+
</el-form-item>
471+
<el-form-item label="请求头">
472+
<div
473+
class="flex pt-2"
474+
v-for="(item, index) in configForm[`task${listener.type}ListenerHeader`]"
475+
:key="index"
476+
>
477+
<div class="mr-2">
478+
<el-input class="w-160px" v-model="item.key" />
479+
</div>
480+
<div class="mr-2">
481+
<el-select class="w-100px!" v-model="item.type">
482+
<el-option
483+
v-for="types in LISTENER_MAP_TYPES"
484+
:key="types.value"
485+
:label="types.label"
486+
:value="types.value"
488487
/>
489-
<el-select
490-
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
491-
class="w-160px!"
492-
v-model="item.value"
493-
>
494-
<el-option
495-
v-for="(field, fIdx) in formFieldOptions"
496-
:key="fIdx"
497-
:label="field.title"
498-
:value="field.field"
499-
:disabled="!field.required"
500-
/>
501-
</el-select>
502-
</div>
503-
<div class="mr-1 flex items-center">
504-
<Icon
505-
icon="ep:delete"
506-
:size="18"
507-
@click="
508-
deleteTaskListenerParam(
509-
configForm[`task${listener.type}ListenerHeader`],
510-
index
511-
)
512-
"
488+
</el-select>
489+
</div>
490+
<div class="mr-2">
491+
<el-input
492+
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
493+
class="w-160px"
494+
v-model="item.value"
495+
/>
496+
<el-select
497+
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
498+
class="w-160px!"
499+
v-model="item.value"
500+
>
501+
<el-option
502+
v-for="(field, fIdx) in formFieldOptions"
503+
:key="fIdx"
504+
:label="field.title"
505+
:value="field.field"
506+
:disabled="!field.required"
513507
/>
514-
</div>
508+
</el-select>
515509
</div>
516-
<el-button
517-
type="primary"
518-
text
519-
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerHeader`])"
520-
>
521-
<Icon icon="ep:plus" class="mr-5px" />添加一行
522-
</el-button>
523-
</el-form-item>
524-
<el-form-item label="请求体">
525-
<div
526-
class="flex pt-2"
527-
v-for="(item, index) in configForm[`task${listener.type}ListenerBody`]"
528-
:key="index"
529-
>
530-
<div class="mr-2">
531-
<el-input class="w-160px" v-model="item.key" />
532-
</div>
533-
<div class="mr-2">
534-
<el-select class="w-100px!" v-model="item.type">
535-
<el-option
536-
v-for="types in LISTENER_MAP_TYPES"
537-
:key="types.value"
538-
:label="types.label"
539-
:value="types.value"
540-
/>
541-
</el-select>
542-
</div>
543-
<div class="mr-2">
544-
<el-input
545-
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
546-
class="w-160px"
547-
v-model="item.value"
510+
<div class="mr-1 flex items-center">
511+
<Icon
512+
icon="ep:delete"
513+
:size="18"
514+
@click="
515+
deleteTaskListenerParam(
516+
configForm[`task${listener.type}ListenerHeader`],
517+
index
518+
)
519+
"
520+
/>
521+
</div>
522+
</div>
523+
<el-button
524+
type="primary"
525+
text
526+
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerHeader`])"
527+
>
528+
<Icon icon="ep:plus" class="mr-5px" />添加一行
529+
</el-button>
530+
</el-form-item>
531+
<el-form-item label="请求体">
532+
<div
533+
class="flex pt-2"
534+
v-for="(item, index) in configForm[`task${listener.type}ListenerBody`]"
535+
:key="index"
536+
>
537+
<div class="mr-2">
538+
<el-input class="w-160px" v-model="item.key" />
539+
</div>
540+
<div class="mr-2">
541+
<el-select class="w-100px!" v-model="item.type">
542+
<el-option
543+
v-for="types in LISTENER_MAP_TYPES"
544+
:key="types.value"
545+
:label="types.label"
546+
:value="types.value"
548547
/>
549-
<el-select
550-
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
551-
class="w-160px!"
552-
v-model="item.value"
553-
>
554-
<el-option
555-
v-for="(field, fIdx) in formFieldOptions"
556-
:key="fIdx"
557-
:label="field.title"
558-
:value="field.field"
559-
:disabled="!field.required"
560-
/>
561-
</el-select>
562-
</div>
563-
<div class="mr-1 flex items-center">
564-
<Icon
565-
icon="ep:delete"
566-
:size="18"
567-
@click="
568-
deleteTaskListenerParam(
569-
configForm[`task${listener.type}ListenerBody`],
570-
index
571-
)
572-
"
548+
</el-select>
549+
</div>
550+
<div class="mr-2">
551+
<el-input
552+
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
553+
class="w-160px"
554+
v-model="item.value"
555+
/>
556+
<el-select
557+
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
558+
class="w-160px!"
559+
v-model="item.value"
560+
>
561+
<el-option
562+
v-for="(field, fIdx) in formFieldOptions"
563+
:key="fIdx"
564+
:label="field.title"
565+
:value="field.field"
566+
:disabled="!field.required"
573567
/>
574-
</div>
568+
</el-select>
575569
</div>
576-
<el-button
577-
type="primary"
578-
text
579-
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerBody`])"
580-
>
581-
<Icon icon="ep:plus" class="mr-5px" />添加一行
582-
</el-button>
583-
</el-form-item>
584-
</div>
570+
<div class="mr-1 flex items-center">
571+
<Icon
572+
icon="ep:delete"
573+
:size="18"
574+
@click="
575+
deleteTaskListenerParam(
576+
configForm[`task${listener.type}ListenerBody`],
577+
index
578+
)
579+
"
580+
/>
581+
</div>
582+
</div>
583+
<el-button
584+
type="primary"
585+
text
586+
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerBody`])"
587+
>
588+
<Icon icon="ep:plus" class="mr-5px" />添加一行
589+
</el-button>
590+
</el-form-item>
585591
</div>
586-
</el-form>
587-
</div>
592+
</div>
593+
</el-form>
588594
</el-tab-pane>
589595
</el-tabs>
590596
<template #footer>

0 commit comments

Comments
 (0)