Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
9b2d41ea
Unverified
Commit
9b2d41ea
authored
May 20, 2021
by
Netfan
Committed by
GitHub
May 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(form): add prop autoSubmitOnEnter (#620)
为Form添加autoSubmitOnEnter属性,当设置为true时,可以在input组件上按下回车时自动提交表单
parent
3bb6d11e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
13 deletions
+34
-13
BasicForm.vue
src/components/Form/src/BasicForm.vue
+26
-12
props.ts
src/components/Form/src/props.ts
+2
-0
form.ts
src/components/Form/src/types/form.ts
+6
-1
No files found.
src/components/Form/src/BasicForm.vue
View file @
9b2d41ea
<
template
>
<
template
>
<Form
v-bind=
"
{ ...$attrs, ...$props }" :class="getFormClass" ref="formElRef" :model="formModel">
<Form
v-bind=
"
{ ...$attrs, ...$props }"
:class="getFormClass"
ref="formElRef"
:model="formModel"
@keypress.enter="handleEnterPress"
>
<Row
:style=
"getRowWrapStyle"
>
<Row
:style=
"getRowWrapStyle"
>
<slot
name=
"formHeader"
></slot>
<slot
name=
"formHeader"
></slot>
<template
v-for=
"schema in getSchema"
:key=
"schema.field"
>
<template
v-for=
"schema in getSchema"
:key=
"schema.field"
>
...
@@ -81,11 +87,9 @@
...
@@ -81,11 +87,9 @@
const
{
prefixCls
}
=
useDesign
(
'
basic-form
'
);
const
{
prefixCls
}
=
useDesign
(
'
basic-form
'
);
// Get the basic configuration of the form
// Get the basic configuration of the form
const
getProps
=
computed
(
const
getProps
=
computed
(():
FormProps
=>
{
():
FormProps
=>
{
return
{
...
props
,
...
unref
(
propsRef
)
}
as
FormProps
;
return
{
...
props
,
...
unref
(
propsRef
)
}
as
FormProps
;
});
}
);
const
getFormClass
=
computed
(()
=>
{
const
getFormClass
=
computed
(()
=>
{
return
[
return
[
...
@@ -97,12 +101,10 @@
...
@@ -97,12 +101,10 @@
});
});
// Get uniform row style
// Get uniform row style
const
getRowWrapStyle
=
computed
(
const
getRowWrapStyle
=
computed
(():
CSSProperties
=>
{
():
CSSProperties
=>
{
const
{
baseRowStyle
=
{}
}
=
unref
(
getProps
);
const
{
baseRowStyle
=
{}
}
=
unref
(
getProps
);
return
baseRowStyle
;
return
baseRowStyle
;
});
}
);
const
getSchema
=
computed
(():
FormSchema
[]
=>
{
const
getSchema
=
computed
(():
FormSchema
[]
=>
{
const
schemas
:
FormSchema
[]
=
unref
(
schemaRef
)
||
(
unref
(
getProps
).
schemas
as
any
);
const
schemas
:
FormSchema
[]
=
unref
(
schemaRef
)
||
(
unref
(
getProps
).
schemas
as
any
);
...
@@ -213,6 +215,17 @@
...
@@ -213,6 +215,17 @@
formModel
[
key
]
=
value
;
formModel
[
key
]
=
value
;
}
}
function
handleEnterPress
(
e
:
KeyboardEvent
)
{
const
{
autoSubmitOnEnter
}
=
unref
(
getProps
);
if
(
!
autoSubmitOnEnter
)
return
;
if
(
e
.
key
===
'
Enter
'
&&
e
.
target
&&
e
.
target
instanceof
HTMLElement
)
{
const
target
:
HTMLElement
=
e
.
target
as
HTMLElement
;
if
(
target
&&
target
.
tagName
&&
target
.
tagName
.
toUpperCase
()
==
'
INPUT
'
)
{
handleSubmit
();
}
}
}
const
formActionType
:
Partial
<
FormActionType
>
=
{
const
formActionType
:
Partial
<
FormActionType
>
=
{
getFieldsValue
,
getFieldsValue
,
setFieldsValue
,
setFieldsValue
,
...
@@ -236,6 +249,7 @@
...
@@ -236,6 +249,7 @@
return
{
return
{
handleToggleAdvanced
,
handleToggleAdvanced
,
handleEnterPress
,
formModel
,
formModel
,
defaultValueRef
,
defaultValueRef
,
advanceState
,
advanceState
,
...
...
src/components/Form/src/props.ts
View file @
9b2d41ea
...
@@ -37,6 +37,8 @@ export const basicProps = {
...
@@ -37,6 +37,8 @@ export const basicProps = {
type
:
Object
as
PropType
<
Partial
<
ColEx
>>
,
type
:
Object
as
PropType
<
Partial
<
ColEx
>>
,
},
},
autoSetPlaceHolder
:
propTypes
.
bool
.
def
(
true
),
autoSetPlaceHolder
:
propTypes
.
bool
.
def
(
true
),
// 在INPUT组件上单击回车时,是否自动提交
autoSubmitOnEnter
:
propTypes
.
bool
.
def
(
false
),
submitOnReset
:
propTypes
.
bool
,
submitOnReset
:
propTypes
.
bool
,
size
:
propTypes
.
oneOf
([
'
default
'
,
'
small
'
,
'
large
'
]).
def
(
'
default
'
),
size
:
propTypes
.
oneOf
([
'
default
'
,
'
small
'
,
'
large
'
]).
def
(
'
default
'
),
// 禁用表单
// 禁用表单
...
...
src/components/Form/src/types/form.ts
View file @
9b2d41ea
...
@@ -83,6 +83,8 @@ export interface FormProps {
...
@@ -83,6 +83,8 @@ export interface FormProps {
fieldMapToTime
?:
FieldMapToTime
;
fieldMapToTime
?:
FieldMapToTime
;
// Placeholder is set automatically
// Placeholder is set automatically
autoSetPlaceHolder
?:
boolean
;
autoSetPlaceHolder
?:
boolean
;
// Auto submit on press enter on input
autoSubmitOnEnter
?:
boolean
;
// Check whether the information is added to the label
// Check whether the information is added to the label
rulesMessageJoinLabel
?:
boolean
;
rulesMessageJoinLabel
?:
boolean
;
// Whether to show collapse and expand buttons
// Whether to show collapse and expand buttons
...
@@ -125,7 +127,10 @@ export interface FormSchema {
...
@@ -125,7 +127,10 @@ export interface FormSchema {
// Auxiliary text
// Auxiliary text
subLabel
?:
string
;
subLabel
?:
string
;
// Help text on the right side of the text
// Help text on the right side of the text
helpMessage
?:
string
|
string
[]
|
((
renderCallbackParams
:
RenderCallbackParams
)
=>
string
|
string
[]);
helpMessage
?:
|
string
|
string
[]
|
((
renderCallbackParams
:
RenderCallbackParams
)
=>
string
|
string
[]);
// BaseHelp component props
// BaseHelp component props
helpComponentProps
?:
Partial
<
HelpComponentProps
>
;
helpComponentProps
?:
Partial
<
HelpComponentProps
>
;
// Label width, if it is passed, the labelCol and WrapperCol configured by itemProps will be invalid
// Label width, if it is passed, the labelCol and WrapperCol configured by itemProps will be invalid
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment