Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
merchant-manage-ui
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
ui
merchant-manage-ui
Commits
b920da7c
Commit
b920da7c
authored
Aug 09, 2022
by
武广
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 添加校验
parent
cbcb7f83
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
404 additions
and
7 deletions
+404
-7
storeModal.jsx
src/pages/chainStoreManage/components/storeModal.jsx
+5
-2
index.jsx
src/pages/chainStoreManage/index.jsx
+26
-5
validator.js
src/utils/validator.js
+373
-0
No files found.
src/pages/chainStoreManage/components/storeModal.jsx
View file @
b920da7c
...
...
@@ -16,7 +16,7 @@ import { apiAddrArea, apiCreatStore, apiEditStore } from '../services';
import
{
weekOptions
,
weekDefault
,
layout
}
from
'
../data
'
;
import
MapModal
from
'
@/components/BaiduMap
'
;
import
style
from
'
./style.less
'
;
// import { await } from '@umijs/deps/compiled/signale
';
import
{
isCheckNumberLine
}
from
'
@/utils/validator
'
;
const
FormItem
=
Form
.
Item
;
...
...
@@ -209,7 +209,10 @@ const StoreModal = props => {
</
FormItem
>
<
FormItem
label=
"门店电话"
name=
"phone"
>
{
getFieldDecorator
(
'
phone
'
,
{
rules
:
[{
required
:
true
,
message
:
'
请输入门店电话!
'
}],
rules
:
[
{
required
:
true
,
message
:
'
请输入门店电话!
'
},
{
validator
:
isCheckNumberLine
,
message
:
'
请输入正确的门店电话!
'
},
],
initialValue
:
formData
.
phone
,
})(<
Input
placeholder=
"请输入门店电话"
allowClear
maxLength=
{
20
}
/>)
}
</
FormItem
>
...
...
src/pages/chainStoreManage/index.jsx
View file @
b920da7c
...
...
@@ -127,6 +127,31 @@ export default () => {
getList
();
getAreaAddr
();
},
[]);
const
getWeekSlot
=
bw
=>
{
const
s
=
bw
[
0
];
let
e
=
bw
[
0
];
const
sy
=
[];
const
htmlarr
=
[];
bw
.
forEach
((
item
,
i
)
=>
{
if
(
s
+
i
===
item
)
{
e
=
item
;
}
else
{
sy
.
push
(<
span
key=
{
item
}
>
,
{
weeks
[
item
]
}
</
span
>);
}
});
if
(
s
===
e
)
{
htmlarr
.
push
(<
span
key=
{
s
}
>
{
weeks
[
s
]
}
</
span
>);
}
else
{
htmlarr
.
push
(
<
span
key=
{
s
}
>
{
weeks
[
s
]
}
~
{
weeks
[
e
]
}
</
span
>,
);
}
return
[...
htmlarr
,
...
sy
];
};
const
columns
=
[
{
title
:
'
门店名称
'
,
...
...
@@ -146,11 +171,7 @@ export default () => {
width
:
150
,
render
:
businessHours
=>
(
<
div
>
<
div
>
{
businessHours
.
weeks
.
map
(
item
=>
(
<
span
key=
{
item
}
>
{
weeks
[
item
]
}
</
span
>
))
}
</
div
>
<
div
>
{
getWeekSlot
(
businessHours
.
weeks
)
}
</
div
>
<
div
>
{
businessHours
.
hoursItems
.
map
(
item
=>
(
<
div
key=
{
item
.
begin
}
>
...
...
src/utils/validator.js
0 → 100644
View file @
b920da7c
/* 验证必填项 */
export
const
validateRequired
=
(
rule
,
value
,
callback
)
=>
{
const
reg
=
/^
\s
*$/
;
if
(
!
value
||
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
必填项
'
));
}
else
{
callback
();
}
};
/* 是否合法IP地址 */
export
function
validateIP
(
rule
,
value
,
callback
)
{
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
{
const
reg
=
/^
(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])\.(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])\.(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])\.(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])
$/
;
if
(
!
reg
.
test
(
value
)
&&
value
!==
''
)
{
callback
(
new
Error
(
'
请输入正确的IP地址
'
));
}
else
{
callback
();
}
}
}
/* 是否手机号码或者固话 */
export
function
validatePhoneTwo
(
rule
,
value
,
callback
)
{
const
reg
=
/^
((
0
\d{2,3}
-
\d{7,8})
|
(
1
[
34578
]\d{9}))
$/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
)
&&
value
!==
''
)
{
callback
(
new
Error
(
'
请输入正确的电话号码或者固话号码
'
));
}
else
{
callback
();
}
}
/* 是否固话 */
export
function
validateTelphone
(
rule
,
value
,
callback
)
{
const
reg
=
/0
\d{2}
-
\d{7,8}
/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
)
&&
value
!==
''
)
{
callback
(
new
Error
(
'
请输入正确的固话(格式:区号+号码,如010-1234567)
'
));
}
else
{
callback
();
}
}
/* 是否手机号码 */
export
function
validatePhone
(
rule
,
value
,
callback
)
{
const
reg
=
/^
[
1
][
3,4,5,6,7,8,9
][
0-9
]{9}
$/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
)
&&
value
!==
''
)
{
callback
(
new
Error
(
'
请输入正确的电话号码
'
));
}
else
{
callback
();
}
}
/* 是否身份证号码 */
export
function
validateIdNo
(
rule
,
value
,
callback
)
{
const
reg
=
/
(
^
\d{15}
$
)
|
(
^
\d{18}
$
)
|
(
^
\d{17}(\d
|X|x
)
$
)
/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
)
&&
value
!==
''
)
{
callback
(
new
Error
(
'
请输入正确的身份证号码
'
));
}
else
{
callback
();
}
}
/* 是否邮箱 */
export
function
validateEMail
(
rule
,
value
,
callback
)
{
const
reg
=
/^
([
a-zA-Z0-9
]
+
[
-_.
]?)
+@
[
a-zA-Z0-9
]
+.
[
a-z
]
+$/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
请输入正确的邮箱地址
'
));
}
else
{
callback
();
}
}
/* 验证内容是否英文数字以及下划线 */
export
function
isPassword
(
rule
,
value
,
callback
)
{
const
reg
=
/^
[
_a-zA-Z0-9
]
+$/
;
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
密码仅由英文字母,数字以及下划线组成
'
));
}
else
{
callback
();
}
}
/* 自动检验数值的范围 */
export
function
checkMaxNumber
(
rule
,
value
,
callback
)
{
const
re
=
/^
[
1-9
][
0-9
]{0,1}
$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
value
===
''
||
value
===
'
undefined
'
||
value
===
null
)
{
callback
();
}
else
if
(
rule
.
isInteger
&&
!
rsCheck
)
{
callback
(
new
Error
(
`请输入[
${
rule
.
min
}
,
${
rule
.
max
}
]之间的正整数`
));
}
else
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
`请输入[
${
rule
.
min
}
,
${
rule
.
max
}
]之间的数字`
));
}
else
if
(
value
<
rule
.
min
||
value
>
rule
.
max
)
{
callback
(
new
Error
(
`请输入[
${
rule
.
min
}
,
${
rule
.
max
}
]之间的数字`
));
}
else
{
callback
();
}
}
// 验证数字输入框最大数值,32767
export
function
checkMaxVal
(
rule
,
value
,
callback
)
{
if
(
value
<
0
||
value
>
32767
)
{
callback
(
new
Error
(
'
请输入[0,32767]之间的数字
'
));
}
else
{
callback
();
}
}
// 验证是否1-99之间
export
function
isOneToNinetyNine
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入正整数
'
));
}
else
{
const
re
=
/^
[
1-9
][
0-9
]{0,1}
$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入正整数,值为【1,99】
'
));
}
else
{
callback
();
}
}
},
0
);
}
// 验证是否整数
export
function
isInteger
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入正整数
'
));
}
else
{
const
re
=
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入正整数
'
));
}
else
{
callback
();
}
}
},
0
);
}
// 验证是否大于0的整数
export
const
isIntegerNotZero
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入大于0的正整数
'
));
}
else
{
const
re
=
/^
[
1-9
][
0-9
]{0,}
$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入大于0的正整数
'
));
}
else
{
callback
();
}
}
};
// 验证是否整数,非必填
export
function
isIntegerNotMust
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
();
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入正整数
'
));
}
else
{
const
re
=
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入正整数
'
));
}
else
{
callback
();
}
}
},
1000
);
}
// 验证是否是[0-1]的小数
export
function
isDecimal
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入[0,1]之间的数字
'
));
}
else
if
(
value
<
0
||
value
>
1
)
{
callback
(
new
Error
(
'
请输入[0,1]之间的数字
'
));
}
else
{
callback
();
}
},
100
);
}
// 验证是否是[1-10]的小数,即不可以等于0
export
function
isBtnOneToTen
(
rule
,
value
,
callback
)
{
if
(
typeof
value
===
'
undefined
'
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入正整数,值为[1,10]
'
));
}
else
if
(
!
(
value
===
'
1
'
||
value
===
'
2
'
||
value
===
'
3
'
||
value
===
'
4
'
||
value
===
'
5
'
||
value
===
'
6
'
||
value
===
'
7
'
||
value
===
'
8
'
||
value
===
'
9
'
||
value
===
'
10
'
)
)
{
callback
(
new
Error
(
'
请输入正整数,值为[1,10]
'
));
}
else
{
callback
();
}
},
100
);
}
// 验证是否是[1-100]的小数,即不可以等于0
export
function
isBtnOneToHundred
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入整数,值为[1,100]
'
));
}
else
if
(
value
<
1
||
value
>
100
)
{
callback
(
new
Error
(
'
请输入整数,值为[1,100]
'
));
}
else
{
callback
();
}
},
100
);
}
// 验证是否是[0-100]的小数
export
function
isBtnZeroToHundred
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
!
Number
(
value
))
{
callback
(
new
Error
(
'
请输入[1,100]之间的数字
'
));
}
else
if
(
value
<
0
||
value
>
100
)
{
callback
(
new
Error
(
'
请输入[1,100]之间的数字
'
));
}
else
{
callback
();
}
},
100
);
}
// 验证端口是否在[0,65535]之间
export
function
isPort
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
'
输入不可以为空
'
));
}
setTimeout
(()
=>
{
if
(
value
===
''
||
typeof
value
===
'
undefined
'
)
{
callback
(
new
Error
(
'
请输入端口值
'
));
}
else
{
const
re
=
/^
([
0-9
]
|
[
1-9
]\d
|
[
1-9
]\d{2}
|
[
1-9
]\d{3}
|
[
1-5
]\d{4}
|6
[
0-4
]\d{3}
|65
[
0-4
]\d{2}
|655
[
0-2
]\d
|6553
[
0-5
])
$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入在[0-65535]之间的端口值
'
));
}
else
{
callback
();
}
}
},
100
);
}
// 验证端口是否在[0,65535]之间,非必填,isMust表示是否必填
export
function
isCheckPort
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
();
}
setTimeout
(()
=>
{
if
(
value
===
''
||
typeof
value
===
'
undefined
'
)
{
// callback(new Error('请输入端口值'));
}
else
{
const
re
=
/^
([
0-9
]
|
[
1-9
]\d
|
[
1-9
]\d{2}
|
[
1-9
]\d{3}
|
[
1-5
]\d{4}
|6
[
0-4
]\d{3}
|65
[
0-4
]\d{2}
|655
[
0-2
]\d
|6553
[
0-5
])
$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入在[0-65535]之间的端口值
'
));
}
else
{
callback
();
}
}
},
100
);
}
/* 小写字母 */
export
function
validateLowerCase
(
str
)
{
const
reg
=
/^
[
a-z
]
+$/
;
return
reg
.
test
(
str
);
}
/* 保留2为小数 */
export
function
validatetoFixedNew
(
str
)
{
return
str
;
}
/* 验证key */
// export function validateKey (str) {
// var reg = /^[a-z_\-:]+$/;
// return reg.test(str);
// }
/* 大写字母 */
export
function
validateUpperCase
(
str
)
{
const
reg
=
/^
[
A-Z
]
+$/
;
return
reg
.
test
(
str
);
}
/* 大小写字母 */
export
function
validatAlphabets
(
str
)
{
const
reg
=
/^
[
A-Za-z
]
+$/
;
return
reg
.
test
(
str
);
}
/* 大小写字母数字 */
export
function
validatAlphabetsNumber
(
rule
,
value
,
callback
)
{
const
reg
=
/^
[
A-Za-z0-9
]
+$/
;
if
(
value
&&
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
请输入字母或数字
'
));
}
else
{
callback
();
}
}
// 验证数字和英文逗号
export
function
isCheckNumberComma
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
();
}
else
{
const
re
=
/^
\d
+
(
,+
\d
+
)
*$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入数字或数字+英文逗号,以数字结尾
'
));
}
else
{
callback
();
}
}
}
// 验证数字和-
export
function
isCheckNumberLine
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
();
}
else
{
const
re
=
/^
\d
+
(
-+
\d
+
)
*$/
;
const
rsCheck
=
re
.
test
(
value
);
if
(
!
rsCheck
)
{
callback
(
new
Error
(
'
请输入数字或数字和-,以数字结尾
'
));
}
else
{
callback
();
}
}
}
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