Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
bb1b267e
提交
bb1b267e
authored
11月 26, 2020
作者:
vben
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(form): fix form verification and console error message issues
上级
e04aaa06
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
27 行增加
和
19 行删除
+27
-19
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+1
-0
BasicForm.vue
src/components/Form/src/BasicForm.vue
+6
-6
FormItem.tsx
src/components/Form/src/FormItem.tsx
+11
-6
useFormAction.ts
src/components/Form/src/hooks/useFormAction.ts
+1
-3
useFormValues.ts
src/components/Form/src/hooks/useFormValues.ts
+4
-4
form.ts
src/locales/lang/en/component/form.ts
+2
-0
form.ts
src/locales/lang/zh_CN/component/form.ts
+2
-0
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
bb1b267e
...
...
@@ -23,6 +23,7 @@
-
修复 tree 文本超出挡住操作按钮问题
-
修复通过 useRedo 刷新页面参数丢失问题
-
修复表单校验先设置在校验及控制台错误信息问题
### 🎫 Chores
...
...
src/components/Form/src/BasicForm.vue
浏览文件 @
bb1b267e
...
...
@@ -71,17 +71,17 @@
const
schemaRef
=
ref
<
Nullable
<
FormSchema
[]
>>
(
null
);
const
formElRef
=
ref
<
Nullable
<
FormActionType
>>
(
null
);
const
getRowWrapStyleRef
=
computed
(():
any
=>
{
const
{
baseRowStyle
}
=
unref
(
getProps
);
return
baseRowStyle
||
{};
});
const
getMergePropsRef
=
computed
(
():
FormProps
=>
{
return
deepMerge
(
cloneDeep
(
props
),
unref
(
propsRef
));
}
);
const
getRowWrapStyleRef
=
computed
(():
any
=>
{
const
{
baseRowStyle
}
=
unref
(
getMergePropsRef
);
return
baseRowStyle
||
{};
});
// 获取表单基本配置
const
getProps
=
computed
(
():
FormProps
=>
{
...
...
@@ -103,7 +103,7 @@
const
schemas
:
FormSchema
[]
=
unref
(
schemaRef
)
||
(
unref
(
getProps
).
schemas
as
any
);
for
(
const
schema
of
schemas
)
{
const
{
defaultValue
,
component
}
=
schema
;
if
(
defaultValue
&&
dateItemType
.
includes
(
component
!
))
{
if
(
defaultValue
&&
dateItemType
.
includes
(
component
))
{
if
(
!
Array
.
isArray
(
defaultValue
))
{
schema
.
defaultValue
=
moment
(
defaultValue
);
}
else
{
...
...
src/components/Form/src/FormItem.tsx
浏览文件 @
bb1b267e
...
...
@@ -17,6 +17,7 @@ import { upperFirst, cloneDeep } from 'lodash-es';
import
{
useItemLabelWidth
}
from
'./hooks/useLabelWidth'
;
import
{
ComponentType
}
from
'./types'
;
import
{
isNumber
}
from
'/@/utils/is'
;
import
{
useI18n
}
from
'/@/hooks/web/useI18n'
;
export
default
defineComponent
({
name
:
'BasicFormItem'
,
...
...
@@ -46,6 +47,8 @@ export default defineComponent({
},
},
setup
(
props
,
{
slots
})
{
const
{
t
}
=
useI18n
(
'component.form'
);
// @ts-ignore
const
itemLabelWidthRef
=
useItemLabelWidth
(
toRef
(
props
,
'schema'
),
toRef
(
props
,
'formProps'
));
const
getValuesRef
=
computed
(()
=>
{
...
...
@@ -132,7 +135,7 @@ export default defineComponent({
let
rules
:
ValidationRule
[]
=
cloneDeep
(
defRules
)
as
ValidationRule
[];
if
((
!
rules
||
rules
.
length
===
0
)
&&
required
)
{
rules
=
[{
required
}];
rules
=
[{
required
,
type
:
'string'
}];
}
const
requiredRuleIndex
:
number
=
rules
.
findIndex
(
...
...
@@ -142,6 +145,9 @@ export default defineComponent({
if
(
requiredRuleIndex
!==
-
1
)
{
const
rule
=
rules
[
requiredRuleIndex
];
if
(
rule
.
required
&&
component
)
{
if
(
!
Reflect
.
has
(
rule
,
'type'
))
{
rule
.
type
=
'string'
;
}
const
joinLabel
=
Reflect
.
has
(
props
.
schema
,
'rulesMessageJoinLabel'
)
?
rulesMessageJoinLabel
:
globalRulesMessageJoinLabel
;
...
...
@@ -157,11 +163,9 @@ export default defineComponent({
component
.
includes
(
'TimePicker'
)
)
{
rule
.
type
=
'object'
;
}
if
(
component
.
includes
(
'RangePicker'
)
||
component
.
includes
(
'Upload'
))
{
}
else
if
(
component
.
includes
(
'RangePicker'
)
||
component
.
includes
(
'Upload'
))
{
rule
.
type
=
'array'
;
}
if
(
component
.
includes
(
'InputNumber'
))
{
}
else
if
(
component
.
includes
(
'InputNumber'
))
{
rule
.
type
=
'number'
;
}
}
...
...
@@ -171,7 +175,7 @@ export default defineComponent({
const
characterInx
=
rules
.
findIndex
((
val
)
=>
val
.
max
);
if
(
characterInx
!==
-
1
&&
!
rules
[
characterInx
].
validator
)
{
rules
[
characterInx
].
message
=
rules
[
characterInx
].
message
||
`字符数应小于
${
rules
[
characterInx
].
max
}
位`
;
rules
[
characterInx
].
message
||
t
(
'maxTip'
,
[
rules
[
characterInx
].
max
])
;
}
return
rules
;
}
...
...
@@ -237,6 +241,7 @@ export default defineComponent({
const
bindValue
=
{
[
valueField
||
(
isCheck
?
'checked'
:
'value'
)]:
handleValue
(
component
,
field
),
};
if
(
!
renderComponentContent
)
{
return
<
Comp
{
...
propsData
}
{
...
on
}
{
...
bindValue
}
/>;
}
...
...
src/components/Form/src/hooks/useFormAction.ts
浏览文件 @
bb1b267e
...
...
@@ -79,9 +79,7 @@ export function useFormAction({
validKeys
.
push
(
key
);
}
});
// if (formEl) {
// formEl.validateFields(validKeys);
// }
validateFields
(
validKeys
);
}
/**
* @description: Delete based on field name
...
...
src/components/Form/src/hooks/useFormValues.ts
浏览文件 @
bb1b267e
...
...
@@ -19,11 +19,11 @@ export function useFormValues({
formModel
,
}:
UseFormValuesContext
)
{
// Processing form values
function
handleFormValues
(
values
:
any
)
{
function
handleFormValues
(
values
:
Record
<
string
,
any
>
)
{
if
(
!
isObject
(
values
))
{
return
{};
}
const
resMap
:
any
=
{};
const
resMap
:
Record
<
string
,
any
>
=
{};
for
(
const
item
of
Object
.
entries
(
values
))
{
let
[,
value
]
=
item
;
const
[
key
]
=
item
;
...
...
@@ -49,7 +49,7 @@ export function useFormValues({
/**
* @description: Processing time interval parameters
*/
function
handleRangeTimeValue
(
values
:
any
)
{
function
handleRangeTimeValue
(
values
:
Record
<
string
,
any
>
)
{
const
fieldMapToTime
=
unref
(
fieldMapToTimeRef
);
if
(
!
fieldMapToTime
||
!
Array
.
isArray
(
fieldMapToTime
))
{
...
...
@@ -72,7 +72,7 @@ export function useFormValues({
function
initDefault
()
{
const
schemas
=
unref
(
getSchema
);
const
obj
:
any
=
{};
const
obj
:
Record
<
string
,
any
>
=
{};
schemas
.
forEach
((
item
)
=>
{
if
(
item
.
defaultValue
)
{
obj
[
item
.
field
]
=
item
.
defaultValue
;
...
...
src/locales/lang/en/component/form.ts
浏览文件 @
bb1b267e
...
...
@@ -6,4 +6,6 @@ export default {
input
:
'Please Input'
,
choose
:
'Please Choose'
,
maxTip
:
'The number of characters should be less than {0}'
,
};
src/locales/lang/zh_CN/component/form.ts
浏览文件 @
bb1b267e
...
...
@@ -6,4 +6,6 @@ export default {
input
:
'请输入'
,
choose
:
'请选择'
,
maxTip
:
'字符数应小于{0}位'
,
};
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论