fix(@vben/web-antdv-next): 修复FormItem rules为数组形式

pull/364/head
XuZhiqiang 2026-06-18 16:22:02 +08:00
parent af681338c7
commit d8c8775af2
7 changed files with 147 additions and 105 deletions

View File

@ -464,11 +464,13 @@ onMounted(async () => {
<div class="mr-2"> <div class="mr-2">
<FormItem <FormItem
:name="['inVariables', index, 'source']" :name="['inVariables', index, 'source']"
:rules="{ :rules="[
required: true, {
message: '变量不能为空', required: true,
trigger: 'blur', message: '变量不能为空',
}" trigger: 'blur',
},
]"
> >
<Select class="!w-40" v-model:value="item.source"> <Select class="!w-40" v-model:value="item.source">
<SelectOption <SelectOption
@ -484,11 +486,13 @@ onMounted(async () => {
<div class="mr-2"> <div class="mr-2">
<FormItem <FormItem
:name="['inVariables', index, 'target']" :name="['inVariables', index, 'target']"
:rules="{ :rules="[
required: true, {
message: '变量不能为空', required: true,
trigger: 'blur', message: '变量不能为空',
}" trigger: 'blur',
},
]"
> >
<Select class="!w-40" v-model:value="item.target"> <Select class="!w-40" v-model:value="item.target">
<SelectOption <SelectOption
@ -534,11 +538,13 @@ onMounted(async () => {
<div class="mr-2"> <div class="mr-2">
<FormItem <FormItem
:name="['outVariables', index, 'source']" :name="['outVariables', index, 'source']"
:rules="{ :rules="[
required: true, {
message: '变量不能为空', required: true,
trigger: 'blur', message: '变量不能为空',
}" trigger: 'blur',
},
]"
> >
<Select class="!w-40" v-model:value="item.source"> <Select class="!w-40" v-model:value="item.source">
<SelectOption <SelectOption
@ -554,11 +560,13 @@ onMounted(async () => {
<div class="mr-2"> <div class="mr-2">
<FormItem <FormItem
:name="['outVariables', index, 'target']" :name="['outVariables', index, 'target']"
:rules="{ :rules="[
required: true, {
message: '变量不能为空', required: true,
trigger: 'blur', message: '变量不能为空',
}" trigger: 'blur',
},
]"
> >
<Select class="!w-40" v-model:value="item.target"> <Select class="!w-40" v-model:value="item.target">
<SelectOption <SelectOption
@ -795,11 +803,13 @@ onMounted(async () => {
label-align="left" label-align="left"
:label-col="{ span: 6 }" :label-col="{ span: 6 }"
:wrapper-col="{ span: 12 }" :wrapper-col="{ span: 12 }"
:rules="{ :rules="[
required: true, {
message: '固定数量不能为空', required: true,
trigger: 'change', message: '固定数量不能为空',
}" trigger: 'change',
},
]"
> >
<InputNumber <InputNumber
v-model:value="configForm.multiInstanceSource" v-model:value="configForm.multiInstanceSource"
@ -816,11 +826,13 @@ onMounted(async () => {
label-align="left" label-align="left"
:label-col="{ span: 6 }" :label-col="{ span: 6 }"
:wrapper-col="{ span: 12 }" :wrapper-col="{ span: 12 }"
:rules="{ :rules="[
required: true, {
message: '数字表单字段不能为空', required: true,
trigger: 'change', message: '数字表单字段不能为空',
}" trigger: 'change',
},
]"
> >
<Select v-model:value="configForm.multiInstanceSource"> <Select v-model:value="configForm.multiInstanceSource">
<SelectOption <SelectOption
@ -843,11 +855,13 @@ onMounted(async () => {
label-align="left" label-align="left"
:label-col="{ span: 6 }" :label-col="{ span: 6 }"
:wrapper-col="{ span: 12 }" :wrapper-col="{ span: 12 }"
:rules="{ :rules="[
required: true, {
message: '多选表单字段不能为空', required: true,
trigger: 'change', message: '多选表单字段不能为空',
}" trigger: 'change',
},
]"
> >
<Select v-model:value="configForm.multiInstanceSource"> <Select v-model:value="configForm.multiInstanceSource">
<SelectOption <SelectOption

View File

@ -224,11 +224,13 @@ defineExpose({ validate });
rIdx, rIdx,
'leftSide', 'leftSide',
]" ]"
:rules="{ :rules="[
required: true, {
message: '左值不能为空', required: true,
trigger: 'change', message: '左值不能为空',
}" trigger: 'change',
},
]"
> >
<Select <Select
v-model:value="rule.leftSide" v-model:value="rule.leftSide"
@ -276,11 +278,13 @@ defineExpose({ validate });
rIdx, rIdx,
'rightSide', 'rightSide',
]" ]"
:rules="{ :rules="[
required: true, {
message: '右值不能为空', required: true,
trigger: ['blur', 'change'], message: '右值不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input <Input
v-model:value="rule.rightSide" v-model:value="rule.rightSide"

View File

@ -65,11 +65,13 @@ function deleteHttpRequestParam(arr: HttpRequestParam[], index: number) {
<Col :span="7"> <Col :span="7">
<FormItem <FormItem
:name="[bind, 'header', index, 'key']" :name="[bind, 'header', index, 'key']"
:rules="{ :rules="[
required: true, {
message: '参数名不能为空', required: true,
trigger: ['blur', 'change'], message: '参数名不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input placeholder="参数名不能为空" v-model:value="item.key" /> <Input placeholder="参数名不能为空" v-model:value="item.key" />
</FormItem> </FormItem>
@ -89,22 +91,26 @@ function deleteHttpRequestParam(arr: HttpRequestParam[], index: number) {
<Col :span="10"> <Col :span="10">
<FormItem <FormItem
:name="[bind, 'header', index, 'value']" :name="[bind, 'header', index, 'value']"
:rules="{ :rules="[
required: true, {
message: '参数值不能为空', required: true,
trigger: ['blur', 'change'], message: '参数值不能为空',
}" trigger: ['blur', 'change'],
},
]"
v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE" v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE"
> >
<Input placeholder="请求头" v-model:value="item.value" /> <Input placeholder="请求头" v-model:value="item.value" />
</FormItem> </FormItem>
<FormItem <FormItem
:name="[bind, 'header', index, 'value']" :name="[bind, 'header', index, 'value']"
:rules="{ :rules="[
required: true, {
message: '参数值不能为空', required: true,
trigger: 'change', message: '参数值不能为空',
}" trigger: 'change',
},
]"
v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM" v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM"
> >
<Select v-model:value="item.value" placeholder="请选择表单字段"> <Select v-model:value="item.value" placeholder="请选择表单字段">
@ -150,11 +156,13 @@ function deleteHttpRequestParam(arr: HttpRequestParam[], index: number) {
<Col :span="7"> <Col :span="7">
<FormItem <FormItem
:name="[bind, 'body', index, 'key']" :name="[bind, 'body', index, 'key']"
:rules="{ :rules="[
required: true, {
message: '参数名不能为空', required: true,
trigger: ['blur', 'change'], message: '参数名不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input placeholder="参数名" v-model:value="item.key" /> <Input placeholder="参数名" v-model:value="item.key" />
</FormItem> </FormItem>
@ -174,22 +182,26 @@ function deleteHttpRequestParam(arr: HttpRequestParam[], index: number) {
<Col :span="10"> <Col :span="10">
<FormItem <FormItem
:name="[bind, 'body', index, 'value']" :name="[bind, 'body', index, 'value']"
:rules="{ :rules="[
required: true, {
message: '参数值不能为空', required: true,
trigger: ['blur', 'change'], message: '参数值不能为空',
}" trigger: ['blur', 'change'],
},
]"
v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE" v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE"
> >
<Input placeholder="参数值" v-model:value="item.value" /> <Input placeholder="参数值" v-model:value="item.value" />
</FormItem> </FormItem>
<FormItem <FormItem
:name="[bind, 'body', index, 'value']" :name="[bind, 'body', index, 'value']"
:rules="{ :rules="[
required: true, {
message: '参数值不能为空', required: true,
trigger: 'change', message: '参数值不能为空',
}" trigger: 'change',
},
]"
v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM" v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM"
> >
<Select v-model:value="item.value" placeholder="请选择表单字段"> <Select v-model:value="item.value" placeholder="请选择表单字段">

View File

@ -79,11 +79,13 @@ function deleteHttpResponseSetting(
:label-col="{ span: 24 }" :label-col="{ span: 24 }"
:wrapper-col="{ span: 24 }" :wrapper-col="{ span: 24 }"
:name="[formItemPrefix, 'url']" :name="[formItemPrefix, 'url']"
:rules="{ :rules="[
required: true, {
message: '请求地址不能为空', required: true,
trigger: ['blur', 'change'], message: '请求地址不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input v-model:value="setting.url" placeholder="请输入请求地址" /> <Input v-model:value="setting.url" placeholder="请输入请求地址" />
</FormItem> </FormItem>
@ -117,11 +119,13 @@ function deleteHttpResponseSetting(
<Col :span="10"> <Col :span="10">
<FormItem <FormItem
:name="[formItemPrefix, 'response', index, 'key']" :name="[formItemPrefix, 'response', index, 'key']"
:rules="{ :rules="[
required: true, {
message: '表单字段不能为空', required: true,
trigger: ['blur', 'change'], message: '表单字段不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Select <Select
v-model:value="item.key" v-model:value="item.key"
@ -143,11 +147,13 @@ function deleteHttpResponseSetting(
<Col :span="12"> <Col :span="12">
<FormItem <FormItem
:name="[formItemPrefix, 'response', index, 'value']" :name="[formItemPrefix, 'response', index, 'value']"
:rules="{ :rules="[
required: true, {
message: '请求返回字段不能为空', required: true,
trigger: ['blur', 'change'], message: '请求返回字段不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input v-model:value="item.value" placeholder="请求返回字段" /> <Input v-model:value="item.value" placeholder="请求返回字段" />
</FormItem> </FormItem>

View File

@ -90,11 +90,13 @@ defineExpose({ validate });
<FormItem <FormItem
label="请求地址" label="请求地址"
:name="`task${listener.type}ListenerPath`" :name="`task${listener.type}ListenerPath`"
:rules="{ :rules="[
required: true, {
message: '请求地址不能为空', required: true,
trigger: ['blur', 'change'], message: '请求地址不能为空',
}" trigger: ['blur', 'change'],
},
]"
> >
<Input <Input
v-model:value="configForm[`task${listener.type}ListenerPath`]" v-model:value="configForm[`task${listener.type}ListenerPath`]"

View File

@ -237,11 +237,13 @@ defineExpose({ openDrawer }); // 暴露方法给父组件
<FormItem <FormItem
class="mb-0 ml-4 inline-block w-48" class="mb-0 ml-4 inline-block w-48"
:name="['routerGroups', index, 'nodeId']" :name="['routerGroups', index, 'nodeId']"
:rules="{ :rules="[
required: true, {
message: '路由目标节点不能为空', required: true,
trigger: 'change', message: '路由目标节点不能为空',
}" trigger: 'change',
},
]"
> >
<Select <Select
v-model:value="item.nodeId" v-model:value="item.nodeId"

View File

@ -528,11 +528,13 @@ onMounted(() => {
<Col :span="10"> <Col :span="10">
<FormItem <FormItem
:name="['formSettings', index, 'updateFormFields', key]" :name="['formSettings', index, 'updateFormFields', key]"
:rules="{ :rules="[
required: true, {
message: '值不能为空', required: true,
trigger: 'blur', message: '值不能为空',
}" trigger: 'blur',
},
]"
> >
<Input <Input
v-model:value="formSetting.updateFormFields![key]" v-model:value="formSetting.updateFormFields![key]"