Commit b920da7c authored by 武广's avatar 武广

fix: 添加校验

parent cbcb7f83
...@@ -16,7 +16,7 @@ import { apiAddrArea, apiCreatStore, apiEditStore } from '../services'; ...@@ -16,7 +16,7 @@ import { apiAddrArea, apiCreatStore, apiEditStore } from '../services';
import { weekOptions, weekDefault, layout } from '../data'; import { weekOptions, weekDefault, layout } from '../data';
import MapModal from '@/components/BaiduMap'; import MapModal from '@/components/BaiduMap';
import style from './style.less'; import style from './style.less';
// import { await } from '@umijs/deps/compiled/signale'; import { isCheckNumberLine } from '@/utils/validator';
const FormItem = Form.Item; const FormItem = Form.Item;
...@@ -209,7 +209,10 @@ const StoreModal = props => { ...@@ -209,7 +209,10 @@ const StoreModal = props => {
</FormItem> </FormItem>
<FormItem label="门店电话" name="phone"> <FormItem label="门店电话" name="phone">
{getFieldDecorator('phone', { {getFieldDecorator('phone', {
rules: [{ required: true, message: '请输入门店电话!' }], rules: [
{ required: true, message: '请输入门店电话!' },
{ validator: isCheckNumberLine, message: '请输入正确的门店电话!' },
],
initialValue: formData.phone, initialValue: formData.phone,
})(<Input placeholder="请输入门店电话" allowClear maxLength={20} />)} })(<Input placeholder="请输入门店电话" allowClear maxLength={20} />)}
</FormItem> </FormItem>
......
...@@ -127,6 +127,31 @@ export default () => { ...@@ -127,6 +127,31 @@ export default () => {
getList(); getList();
getAreaAddr(); 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 = [ const columns = [
{ {
title: '门店名称', title: '门店名称',
...@@ -146,11 +171,7 @@ export default () => { ...@@ -146,11 +171,7 @@ export default () => {
width: 150, width: 150,
render: businessHours => ( render: businessHours => (
<div> <div>
<div> <div>{getWeekSlot(businessHours.weeks)}</div>
{businessHours.weeks.map(item => (
<span key={item}>{weeks[item]}</span>
))}
</div>
<div> <div>
{businessHours.hoursItems.map(item => ( {businessHours.hoursItems.map(item => (
<div key={item.begin}> <div key={item.begin}>
......
/* 验证必填项 */
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();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment