Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
8d93e047
提交
8d93e047
authored
4月 08, 2022
作者:
zuihou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 已经存在rules时,required不生效
上级
fb43e548
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
19 行增加
和
11 行删除
+19
-11
FormItem.vue
src/components/Form/src/components/FormItem.vue
+19
-11
没有找到文件。
src/components/Form/src/components/FormItem.vue
浏览文件 @
8d93e047
<
script
lang=
"tsx"
>
import
type
{
PropType
,
Ref
}
from
'vue'
;
import
type
{
FormActionType
,
FormProps
}
from
'../types/form
'
;
import
type
{
FormSchema
}
from
'../types/form'
;
import
{
computed
,
defineComponent
,
toRefs
,
unref
}
from
'vue
'
;
import
type
{
Form
ActionType
,
FormProps
,
Form
Schema
}
from
'../types/form'
;
import
type
{
ValidationRule
}
from
'ant-design-vue/lib/form/Form'
;
import
type
{
TableActionType
}
from
'/@/components/Table'
;
import
{
defineComponent
,
computed
,
unref
,
toRefs
}
from
'vue'
;
import
{
Form
,
Col
,
Divider
}
from
'ant-design-vue'
;
import
{
Col
,
Divider
,
Form
}
from
'ant-design-vue'
;
import
{
componentMap
}
from
'../componentMap'
;
import
{
BasicHelp
}
from
'/@/components/Basic'
;
import
{
isBoolean
,
isFunction
,
isNull
}
from
'/@/utils/is'
;
import
{
getSlot
}
from
'/@/utils/helper/tsxHelper'
;
import
{
createPlaceholderMessage
,
setComponentRuleType
}
from
'../helper'
;
import
{
upperFirst
,
cloneDeep
}
from
'lodash-es'
;
import
{
cloneDeep
,
upperFirst
}
from
'lodash-es'
;
import
{
useItemLabelWidth
}
from
'../hooks/useLabelWidth'
;
import
{
useI18n
}
from
'/@/hooks/web/useI18n'
;
...
...
@@ -178,18 +177,27 @@
const
getRequired
=
isFunction
(
required
)
?
required
(
unref
(
getValues
))
:
required
;
if
((
!
rules
||
rules
.
length
===
0
)
&&
getRequired
)
{
rules
=
[{
required
:
getRequired
,
validator
}];
/*
* 1、若设置了required属性,又没有其他的rules,就创建一个验证规则;
* 2、若设置了required属性,又存在其他的rules,则只rules中不存在required属性时,才添加验证required的规则
* 也就是说rules中的required,优先级大于required
*/
if
(
getRequired
)
{
if
(
!
rules
||
rules
.
length
===
0
)
{
rules
=
[{
required
:
getRequired
,
validator
}];
}
else
{
const
requiredIndex
:
number
=
rules
.
findIndex
((
rule
)
=>
Reflect
.
has
(
rule
,
'required'
));
if
(
requiredIndex
===
-
1
)
{
rules
.
push
({
required
:
getRequired
,
validator
});
}
}
}
const
requiredRuleIndex
:
number
=
rules
.
findIndex
(
(
rule
)
=>
Reflect
.
has
(
rule
,
'required'
)
&&
!
Reflect
.
has
(
rule
,
'validator'
),
);
if
(
requiredRuleIndex
===
-
1
&&
getRequired
)
{
rules
.
push
({
required
:
getRequired
,
validator
});
}
if
(
requiredRuleIndex
!==
-
1
)
{
const
rule
=
rules
[
requiredRuleIndex
];
const
{
isShow
}
=
getShow
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论