11import { IUserFormProps } from './index.type' ;
22import { Form , Switch } from 'antd' ;
3+ import type { Rule } from 'antd/es/form' ;
34import { BasicInput , BasicSelect , EmptyBox } from '@actiontech/dms-kit' ;
45import React , { useEffect } from 'react' ;
56import { useTranslation } from 'react-i18next' ;
@@ -14,6 +15,27 @@ const UserForm: React.FC<IUserFormProps> = (props) => {
1415 opPermissionOptions,
1516 updateOpPermissionList
1617 } = useOpPermission ( ) ;
18+
19+ const getUsernameRules = ( ) : Rule [ ] => {
20+ const rules : Rule [ ] = [
21+ {
22+ required : true ,
23+ message : t ( 'common.form.rule.require' , {
24+ name : t ( 'dmsUserCenter.user.userForm.username' )
25+ } )
26+ }
27+ ] ;
28+
29+ if ( ! props . isUpdate ) {
30+ rules . push ( {
31+ pattern : / ^ \S ( .* \S ) ? $ / ,
32+ message : t ( 'dmsUserCenter.user.userForm.usernameNoSpaces' )
33+ } ) ;
34+ }
35+
36+ return rules ;
37+ } ;
38+
1739 useEffect ( ( ) => {
1840 if ( props . visible ) {
1941 updateOpPermissionList ( ListOpPermissionsFilterByTargetEnum . user ) ;
@@ -25,18 +47,7 @@ const UserForm: React.FC<IUserFormProps> = (props) => {
2547 name = "username"
2648 label = { t ( 'dmsUserCenter.user.userForm.username' ) }
2749 validateFirst = { true }
28- rules = { [
29- {
30- required : true ,
31- message : t ( 'common.form.rule.require' , {
32- name : t ( 'dmsUserCenter.user.userForm.username' )
33- } )
34- } ,
35- {
36- pattern : / ^ \S * $ / ,
37- message : t ( 'dmsUserCenter.user.userForm.usernameNoSpaces' )
38- }
39- ] }
50+ rules = { getUsernameRules ( ) }
4051 >
4152 < BasicInput
4253 disabled = { props . isUpdate }
0 commit comments