feat: 添加监听器请求地址非空校验

pull/654/head
Lesan 2025-01-08 15:03:06 +08:00
parent 35a0e69cd4
commit 5fa2a78e84
1 changed files with 148 additions and 142 deletions

View File

@ -436,155 +436,161 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="监听器" name="listener"> <el-tab-pane label="监听器" name="listener">
<div v-for="(listener, listenerIdx) in taskListener" :key="listenerIdx"> <el-form :model="configForm" label-position="top">
<el-form label-position="top"> <div v-for="(listener, listenerIdx) in taskListener" :key="listenerIdx">
<div> <el-divider content-position="left">
<el-divider content-position="left"> <el-text tag="b" size="large">{{ listener.name }}</el-text>
<el-text tag="b" size="large">{{ listener.name }}</el-text> </el-divider>
</el-divider> <el-form-item>
<el-switch
v-model="configForm[`task${listener.type}ListenerEnable`]"
active-text="开启"
inactive-text="关闭"
/>
</el-form-item>
<div v-if="configForm[`task${listener.type}ListenerEnable`]">
<el-form-item> <el-form-item>
<el-switch <el-alert
v-model="configForm[`task${listener.type}ListenerEnable`]" title="仅支持 POST 请求,以请求体方式接收参数"
active-text="开启" type="warning"
inactive-text="关闭" show-icon
:closable="false"
/> />
</el-form-item> </el-form-item>
<div v-if="configForm[`task${listener.type}ListenerEnable`]"> <el-form-item
<el-form-item> label="请求地址"
<el-alert :prop="`task${listener.type}ListenerPath`"
title="仅支持 POST 请求,以请求体方式接收参数" :rules="{
type="warning" required: true,
show-icon message: '请求地址不能为空',
:closable="false" trigger: 'blur'
/> }"
</el-form-item> >
<el-form-item label="请求地址"> <el-input v-model="configForm[`task${listener.type}ListenerPath`]" />
<el-input v-model="configForm[`task${listener.type}ListenerPath`]" /> </el-form-item>
</el-form-item> <el-form-item label="请求头">
<el-form-item label="请求头"> <div
<div class="flex pt-2"
class="flex pt-2" v-for="(item, index) in configForm[`task${listener.type}ListenerHeader`]"
v-for="(item, index) in configForm[`task${listener.type}ListenerHeader`]" :key="index"
:key="index" >
> <div class="mr-2">
<div class="mr-2"> <el-input class="w-160px" v-model="item.key" />
<el-input class="w-160px" v-model="item.key" />
</div>
<div class="mr-2">
<el-select class="w-100px!" v-model="item.type">
<el-option
v-for="types in LISTENER_MAP_TYPES"
:key="types.value"
:label="types.label"
:value="types.value"
/>
</el-select>
</div>
<div class="mr-2">
<el-input
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
class="w-160px"
v-model="item.value"
/>
<el-select
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
class="w-160px!"
v-model="item.value"
>
<el-option
v-for="(field, fIdx) in formFieldOptions"
:key="fIdx"
:label="field.title"
:value="field.field"
:disabled="!field.required"
/>
</el-select>
</div>
<div class="mr-1 flex items-center">
<Icon
icon="ep:delete"
:size="18"
@click="
deleteTaskListenerParam(
configForm[`task${listener.type}ListenerHeader`],
index
)
"
/>
</div>
</div> </div>
<el-button <div class="mr-2">
type="primary" <el-select class="w-100px!" v-model="item.type">
text <el-option
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerHeader`])" v-for="types in LISTENER_MAP_TYPES"
> :key="types.value"
<Icon icon="ep:plus" class="mr-5px" />添加一行 :label="types.label"
</el-button> :value="types.value"
</el-form-item>
<el-form-item label="请求体">
<div
class="flex pt-2"
v-for="(item, index) in configForm[`task${listener.type}ListenerBody`]"
:key="index"
>
<div class="mr-2">
<el-input class="w-160px" v-model="item.key" />
</div>
<div class="mr-2">
<el-select class="w-100px!" v-model="item.type">
<el-option
v-for="types in LISTENER_MAP_TYPES"
:key="types.value"
:label="types.label"
:value="types.value"
/>
</el-select>
</div>
<div class="mr-2">
<el-input
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
class="w-160px"
v-model="item.value"
/> />
<el-select </el-select>
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
class="w-160px!"
v-model="item.value"
>
<el-option
v-for="(field, fIdx) in formFieldOptions"
:key="fIdx"
:label="field.title"
:value="field.field"
:disabled="!field.required"
/>
</el-select>
</div>
<div class="mr-1 flex items-center">
<Icon
icon="ep:delete"
:size="18"
@click="
deleteTaskListenerParam(
configForm[`task${listener.type}ListenerBody`],
index
)
"
/>
</div>
</div> </div>
<el-button <div class="mr-2">
type="primary" <el-input
text v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerBody`])" class="w-160px"
> v-model="item.value"
<Icon icon="ep:plus" class="mr-5px" />添加一行 />
</el-button> <el-select
</el-form-item> v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
</div> class="w-160px!"
v-model="item.value"
>
<el-option
v-for="(field, fIdx) in formFieldOptions"
:key="fIdx"
:label="field.title"
:value="field.field"
:disabled="!field.required"
/>
</el-select>
</div>
<div class="mr-1 flex items-center">
<Icon
icon="ep:delete"
:size="18"
@click="
deleteTaskListenerParam(
configForm[`task${listener.type}ListenerHeader`],
index
)
"
/>
</div>
</div>
<el-button
type="primary"
text
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerHeader`])"
>
<Icon icon="ep:plus" class="mr-5px" />添加一行
</el-button>
</el-form-item>
<el-form-item label="请求体">
<div
class="flex pt-2"
v-for="(item, index) in configForm[`task${listener.type}ListenerBody`]"
:key="index"
>
<div class="mr-2">
<el-input class="w-160px" v-model="item.key" />
</div>
<div class="mr-2">
<el-select class="w-100px!" v-model="item.type">
<el-option
v-for="types in LISTENER_MAP_TYPES"
:key="types.value"
:label="types.label"
:value="types.value"
/>
</el-select>
</div>
<div class="mr-2">
<el-input
v-if="item.type === ListenerParamTypeEnum.FIXED_VALUE"
class="w-160px"
v-model="item.value"
/>
<el-select
v-if="item.type === ListenerParamTypeEnum.FROM_FORM"
class="w-160px!"
v-model="item.value"
>
<el-option
v-for="(field, fIdx) in formFieldOptions"
:key="fIdx"
:label="field.title"
:value="field.field"
:disabled="!field.required"
/>
</el-select>
</div>
<div class="mr-1 flex items-center">
<Icon
icon="ep:delete"
:size="18"
@click="
deleteTaskListenerParam(
configForm[`task${listener.type}ListenerBody`],
index
)
"
/>
</div>
</div>
<el-button
type="primary"
text
@click="addTaskListenerParam(configForm[`task${listener.type}ListenerBody`])"
>
<Icon icon="ep:plus" class="mr-5px" />添加一行
</el-button>
</el-form-item>
</div> </div>
</el-form> </div>
</div> </el-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<template #footer> <template #footer>