/*
|
* @Author: 小明丶
|
* @Date: 2019-08-15 10:40:29
|
* @LastEditors: 小明丶
|
* @LastEditTime: 2019-08-30 14:35:12
|
* @Description: 注册want组件
|
*/
|
|
import {
|
Notify,
|
} from 'vant';
|
import IDValidator from '@/utils/IDValidator';
|
|
|
import {
|
Selector,XHeader,Group,XInput,XButton
|
} from 'vux';
|
|
import FSpace from '@/components/old/FSpace';
|
import FButton from '@/components/old/FButton';
|
import FTips from '@/components/old/FTips';
|
import FFooter from '@/components/old/FFooter';
|
import FSearch from '@/components/old/FSearch';
|
import FConfirm from '@/components/old/FConfirm';
|
import FNoData from '@/components/old/FNoData';
|
|
// import
|
|
|
let arr = [
|
Selector,XHeader,Group,XInput,XButton
|
]
|
|
|
|
export default {
|
install(Vue, opt) {
|
Vue.component('selector', Selector);
|
Vue.component('f-space', FSpace);
|
Vue.component('f-button', FButton);
|
Vue.component('f-tips', FTips);
|
Vue.component('f-footer', FFooter);
|
Vue.component('f-search', FSearch);
|
Vue.component('f-confirm', FConfirm);
|
Vue.component('f-no-data', FNoData);
|
|
arr.forEach(item => {
|
Vue.component(item.name,item)
|
})
|
|
|
|
// 老项目的 函数
|
Vue.prototype.$tool = {
|
toast(text) {
|
Notify({
|
message: text,
|
background: '#1989fa'
|
})
|
},
|
// 金额格式化
|
formatMoney(str = 0) {
|
str = str + '';
|
let newStr = '';
|
let count = 0;
|
if (str.indexOf('.') === -1) {
|
for (let i = str.length - 1; i >= 0; i--) {
|
if (count % 3 === 0 && count !== 0) {
|
newStr = str.charAt(i) + ',' + newStr;
|
} else {
|
newStr = str.charAt(i) + newStr;
|
}
|
count++;
|
}
|
str = newStr + '.00'; // 自动补小数点后两位
|
return str;
|
} else {
|
for (let i = str.indexOf('.') - 1; i >= 0; i--) {
|
if (count % 3 === 0 && count !== 0) {
|
newStr = str.charAt(i) + ',' + newStr;
|
} else {
|
newStr = str.charAt(i) + newStr; // 逐个字符相接起来
|
}
|
count++;
|
}
|
str = newStr + (str + '00').substr((str + '00').indexOf('.'), 3);
|
return str;
|
}
|
},
|
// 身份证 中间用* 显示
|
cardIDHide(cardid) {
|
if (cardid) {
|
return cardid.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
|
} else {
|
return '';
|
}
|
},
|
//手机号,中间四位*显示
|
formatPhone(phone) {
|
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
|
},
|
// 电话号码格式
|
checkPhone(phone) {
|
let reg = /^1[0-9]{10}$/;
|
return reg.test(phone);
|
},
|
checkEmail(email) {
|
// 验证邮箱格式
|
let reg = /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/;
|
// let reg = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;
|
return reg.test(email);
|
},
|
checkVerifyCode(code) {
|
// 验证验证码格式
|
let reg = /^\d{6}$/;
|
return reg.test(code);
|
},
|
checkDynamicCode(code) {
|
// 验证邀请码格式
|
let reg = /^[A-Za-z0-9]{4}$/;
|
return reg.test(code);
|
},
|
// password check
|
checkPassword(password) {
|
// 验证密码格式
|
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/;
|
return reg.test(password);
|
},
|
// name check
|
checkName(name) {
|
// 验证用户名格式
|
let reg = /^[\u4E00-\u9FA5]{2,10}$/;
|
return reg.test(name);
|
},
|
// 账户名称的正则表达式
|
checkUsername(name) {
|
let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,16}$/;
|
return reg.test(name);
|
},
|
// 统一验证
|
checkCommonField(name) {
|
let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,30}$/;
|
return reg.test(name);
|
},
|
// idCard check
|
checkIDCard(idCard) {
|
// 验证身份证格式
|
return IDValidator.isValid(idCard);
|
},
|
isIdcard(val) {
|
let result = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(val);
|
return result;
|
},
|
checkValEmpty(str) {
|
// 验证是否为空
|
if (
|
str === undefined ||
|
str === null ||
|
str.length <= 0 ||
|
str === 'undefined'
|
) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
// 验证佣金输入金额
|
checkCommission(commission) {
|
// 小于100且后面可以带4个小数点
|
let reg = /^100$|^(\d|[1-9]\d)(\.\d{1,4})*$/;
|
//一亿以内,保留四位小数
|
// /^([1-9]\d{0,7}|0)(\.\d{1,4})?$/
|
// 如果通过的话,那么判断小数点的前几位数字
|
return reg.test(commission);
|
},
|
// 验证渠道编号是否符合规则--4-8位以内数字+字母,区分大小写
|
checkChannelNo(channelNo) {
|
let reg = /^[\w\d]{4,8}$/;
|
return reg.test(channelNo);
|
},
|
//验证是否包含空格
|
checkSpace(val) {
|
let reg = /^\s+$/;
|
if (reg.test(val)) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
//将发送请求中的参数格式化,如果为空则转为null
|
formatReq(obj) {
|
for (let i in obj) {
|
let item = obj[i];
|
if (item === null) continue;
|
if (
|
item === undefined ||
|
item === '' ||
|
item === 'undefined' ||
|
item.length <= 0 ||
|
JSON.stringify(item) == '{}'
|
) {
|
obj[i] = null;
|
}
|
}
|
return obj;
|
},
|
// 只能输入数字与小数点正则判断
|
checkIntegerAndDot(checkVal) {
|
let dotReg = /\./g;
|
let IntegerReg = /^[1-9]{1}\d{0,5}$/;
|
// 如果输入了多个点,直接不符合要求
|
if (checkVal.match(dotReg) && checkVal.match(dotReg).length > 1) {
|
return false;
|
// 输入了一个点
|
} else if (
|
checkVal.match(dotReg) &&
|
checkVal.match(dotReg).length === 1
|
) {
|
// 开头与结尾都不能出现点,点的前面与后面必须是数字
|
let strLen = checkVal.length;
|
if (
|
checkVal.indexOf('.') === 0 ||
|
checkVal.indexOf('.') === strLen - 1
|
) {
|
return false;
|
// 超过个数的限制的话
|
} else {
|
return strLen <= 6;
|
}
|
// 没有小数点的话,那么就是全部数字进行匹配
|
} else if (!checkVal.match(dotReg)) {
|
return IntegerReg.test(checkVal);
|
}
|
},
|
//银行卡验证
|
bankCard(iccid) {
|
let initCard = iccid;
|
var s1 = 0,
|
s2 = 0;
|
iccid = iccid.substring(0, iccid.length - 1);
|
var reverse = '';
|
for (var i = iccid.length; i > 0; i--) {
|
reverse += iccid.charAt(i - 1);
|
}
|
for (i = 0; i < reverse.length; i++) {
|
var digit = parseInt(reverse.charAt(i), 10);
|
if (i % 2 != 0) {
|
// this is for odd digits, they are 1-indexed in the
|
// algorithm
|
s1 += digit;
|
} else {
|
// add 2 * digit for 0-4, add 2 * digit - 9 for 5-9
|
s2 += 2 * digit;
|
if (digit >= 5) {
|
s2 -= 9;
|
}
|
}
|
}
|
var sum = 10 - ((s1 + s2) % 10);
|
if (sum === 10) {
|
sum = 0;
|
}
|
return iccid + sum == initCard;
|
},
|
date(date, fmt) {
|
if (!date) {
|
return null;
|
}
|
if (typeof date === 'string') {
|
date = new Date(date.replace(/-/g, '/'));
|
}
|
if (typeof date === 'number') {
|
date = new Date(date);
|
}
|
if (fmt === undefined) {
|
return Number(date);
|
} else {
|
var o = {
|
'M+': date.getMonth() + 1,
|
'D+': date.getDate(),
|
'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
|
'H+': date.getHours(),
|
'm+': date.getMinutes(),
|
's+': date.getSeconds(),
|
'q+': Math.floor((date.getMonth() + 3) / 3),
|
S: date.getMilliseconds()
|
};
|
var week = {
|
'0': '\u65e5',
|
'1': '\u4e00',
|
'2': '\u4e8c',
|
'3': '\u4e09',
|
'4': '\u56db',
|
'5': '\u4e94',
|
'6': '\u516d'
|
};
|
if (/(Y+)/.test(fmt)) {
|
fmt = fmt.replace(
|
RegExp.$1,
|
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
|
);
|
}
|
if (/(E+)/.test(fmt)) {
|
fmt = fmt.replace(
|
RegExp.$1,
|
(RegExp.$1.length > 1
|
? RegExp.$1.length > 2
|
? '\u661f\u671f'
|
: '\u5468'
|
: '') + week[date.getDay() + '']
|
);
|
}
|
for (var k in o) {
|
if (new RegExp('(' + k + ')').test(fmt)) {
|
fmt = fmt.replace(
|
RegExp.$1,
|
RegExp.$1.length === 1
|
? o[k]
|
: ('00' + o[k]).substr(('' + o[k]).length)
|
);
|
}
|
}
|
return fmt;
|
}
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
}
|
}
|