export function getCookie(keys) {
var values = "";
var cookie = document.cookie;
var cookie_arr = cookie.split(";");
for (var i = 0; cookie_arr[i]; i++) {
var c_arr = cookie_arr[i].split("=");
var _key = c_arr[0].replace(" ", "");
if (_key == keys) {
values = c_arr[1];
break;
}
}
return values;
}
export function setCookie(name, value, time, cb) {
var strsec = getSec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec * 1);
document.cookie =
name + "=" + escape(value) + ";expires=" + exp.toGMTString();
typeof cb == "function" && cb();
function getSec(str) {
var str1 = str.substring(1, str.length) * 1;
var str2 = str.substring(0, 1);
if (str2 == "s") {
return str1 * 1000;
} else if (str2 == "h") {
return str1 * 60 * 60 * 1000;
} else if (str2 == "d") {
return str1 * 24 * 60 * 60 * 1000;
}
}
}
export function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURIComponent(r[2]);
return 0;
}
export function isWeiXin() {
let ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
}
export function mobileSystem() {
let u = navigator.userAgent,
app = navigator.appVersion;
let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1;
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
let m_system = "pc";
if (isAndroid) {
m_system = "android";
} else if (isIOS) {
m_system = "ios";
}
return m_system;
}
export function formatDateTwo(format = "Y-M-D h:m", timestamp = Date.now()) {
let date = new Date(timestamp);
let dateInfo = {
Y: date.getFullYear(),
M: date.getMonth() + 1,
D: date.getDate(),
h: date.getHours(),
m: date.getMinutes(),
s: date.getSeconds(),
};
let formatNumber = (n) => (n >= 10 ? n : "0" + n);
let res = format
.replace("Y", dateInfo.Y)
.replace("M", formatNumber(dateInfo.M))
.replace("D", formatNumber(dateInfo.D))
.replace("h", formatNumber(dateInfo.h))
.replace("m", formatNumber(dateInfo.m))
.replace("s", formatNumber(dateInfo.s));
return res;
}
function formatNumber(n) {
n = n.toString();
return n[1] ? n : "0" + n;
}
export function isPhone(ev) {
const reg = /^1\d{10}$/;
return reg.test(ev);
}
export function isFixedPhone(fixPhone) {
let reg = /^0(\d{2,3}-)?(\d{7,8})$/;
return reg.test(fixPhone);
}
export function isIdCardFun(ev) {
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(ev);
}
export function iszhongwenFun(ev) {
let reg = /^[\u4e00-\u9fa5]*$/;
return reg.test(ev);
}
export function isCompanyNameFun(ev) {
let reg = /[^0-9a-zA-Z()()《》·\u4e00-\u9fa5]/g;
return reg.test(ev);
}
export function toFixedFun(num) {
let numStr = num.toString();
if (numStr.indexOf(".") !== -1) {
let numItem = numStr.substring(0, numStr.indexOf(".") + 3);
return Number(numItem).toFixed(2);
} else {
return Number(num).toFixed(2);
}
}
export function isNumberFun(ev) {
let reg = /^[0-9]*$/;
return reg.test(ev);
}
export function addFun(num1, num2) {
var len1 = 0;
var len2 = 0;
var m = 0;
try {
len1 = num1.toString().split(".")[1].length;
} catch (e) {
len1 = 0;
}
try {
len2 = num2.toString().split(".")[1].length;
} catch (e) {
len2 = 0;
}
m = Math.pow(10, Math.max(len1, len2));
var m1 = num1 * m;
m1 = new Number(m1.toFixed(0));
var m2 = num2 * m;
m2 = new Number(m2.toFixed(0));
return (m1 + m2) / m;
}
export function subtractFun(num1, num2) {
var len1 = 0;
var len2 = 0;
var m = 0;
try {
len1 = num1.toString().split(".")[1].length;
} catch (e) {
len1 = 0;
}
try {
len2 = num2.toString().split(".")[1].length;
} catch (e) {
len2 = 0;
}
m = Math.pow(10, Math.max(len1, len2));
var m1 = num1 * m;
m1 = new Number(m1.toFixed(0));
var m2 = num2 * m;
m2 = new Number(m2.toFixed(0));
return (m1 - m2) / m;
}
export function multiplyFun(num1, num2) {
var len1 = 0;
var len2 = 0;
var m = 0;
try {
len1 = num1.toString().split(".")[1].length;
} catch (e) {
len1 = 0;
}
try {
len2 = num2.toString().split(".")[1].length;
} catch (e) {
len2 = 0;
}
m = Math.pow(10, Math.max(len1, len2) + 1);
var m1 = num1 * m;
m1 = new Number(m1.toFixed(0));
var m2 = num2 * m;
m2 = new Number(m2.toFixed(0));
var m3 = m * m;
var m4 = (m1 * m2) / m3;
return m4;
}
export function divideFun(num1, num2) {
var len1 = 0;
var len2 = 0;
var m = 0;
try {
len1 = num1.toString().split(".")[1].length;
} catch (e) {
len1 = 0;
}
try {
len2 = num2.toString().split(".")[1].length;
} catch (e) {
len2 = 0;
}
m = Math.pow(10, Math.max(len1, len2) + 1);
var m1 = num1 * m;
m1 = new Number(m1.toFixed(0));
var m2 = num2 * m;
m2 = new Number(m2.toFixed(0));
var m3 = m1 / m2;
return m3;
}
export const numberFormatFun = (number, decimals, decPoint, thousandsSep, roundtag) => {
number = (number + '').replace(/[^0-9+-Ee.]/g, '')
roundtag = roundtag || 'ceil'
var n = !isFinite(+number) ? 0 : +number
var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
var sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep
var dec = (typeof decPoint === 'undefined') ? '.' : decPoint
var s = ''
var toFixedFix = function (n, prec) {
var k = Math.pow(10, prec)
console.log()
return '' + parseFloat(Math[roundtag](parseFloat((n * k).toFixed(prec * 2))).toFixed(prec * 2)) / k
}
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
var re = /(-?\d+)(\d{3})/
while (re.test(s[0])) {
s[0] = s[0].replace(re, '$1' + sep + '$2')
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1).join('0')
}
return s.join(dec)
}
export const formatDate = (str) => {
return `${str.slice(0, 4)}-${str.slice(4, 6)}-${str.slice(6, 8)}`
}
export const loadJsFun=(src,id)=> {
return new Promise((resolve,reject)=>{
let script = document.createElement('script');
script.type = "text/javascript";
script.src= src;
script.id= id;
if(!document.getElementById(id)){
document.body.appendChild(script);
script.onload = ()=>{
resolve();
}
script.onerror = ()=>{
reject();
}
}else{
resolve();
}
})
}
export const telPhoneRulesFun = (rule, value, cb) => {
let reg = /^[1][0-9]{10}$/;
if (!reg.test(value)) {
return cb(new Error(rule.rulesMsg));
} else {
return cb();
}
};
export const msgRulesFun = (rule, value, cb) => {
let reg = /^[0-9]{6}$/;
if (!reg.test(value)) {
return cb(new Error(rule.rulesMsg));
} else {
return cb();
}
};
export const userNameRulesFun = (rule, value, cb) => {
let reg = /^[0-9a-zA-Z()()\u4e00-\u9fa5]*$/;
if (!reg.test(value)) {
return cb(new Error(rule.rulesMsg));
} else {
return cb();
}
};
export const dealerIdRulesFun = (rule, value, cb) => {
let reg = /^[0-9a-zA-Z]*$/;
console.log(reg.test(value))
if (!reg.test(value)) {
return cb(new Error(rule.rulesMsg));
} else {
return cb();
}
};
export const companyIdIdRulesFun = (rule, value, cb) => {
console.log('value', value)
let reg = /^[0-9]{9}$/;
if (!reg.test(value)) {
return cb(new Error(rule.rulesMsg));
} else {
return cb();
}
};
export const billMinMoneyRulesFun = (rule, value, cb) => {
console.log('value', value)
if (value != '') {
let reg = /^[0-9]*$/;
if (!reg.test(value)) {
return cb(new Error());
} else {
return cb();
}
} else {
return cb();
}
};
export const titleRegFun = (rule, value, cb) => {
const tsss = /[1-9]|[a-z]|[A-Z]|[()()《》.[]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
let tripsW = rule.lableName ? `${rule.lableName}仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•` : '仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if (value.match(tss)) {
if (value.match(tss).length > 50) {
return cb(new Error(tripsW));
}
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export const linkmanRegFun = (rule, value, cb) => {
const tsss = /[1-9]|[a-z]|[A-Z]|[()()《》.[]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
let tripsW = rule.lableName ? `${rule.lableName}仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•` : '仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if (value.match(tss)) {
if (value.match(tss).length > 50) {
return cb(new Error(tripsW));
}
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export const intentionDesRegFun = (rule, value, cb) => {
const tsss = /[1-9]|[a-z]|[A-Z]|[()()《》.#¥……——+-=【】{}:,。+-=_~\[\]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
let tripsW = rule.lableName ? `${rule.lableName}仅支持数字/大小写英文字母/汉字/部分特殊字符~·#¥……()——+-=【】{}:《》,。+-=_[]` : '仅支持数字/大小写英文字母/汉字/部分特殊字符~·#¥……()——+-=【】{}:《》,。+-=_[]'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if (value.match(tss)) {
if (value.match(tss).length > 500) {
return cb(new Error(tripsW));
}
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export const enterpriseNameRegFun = (rule, value, cb) => {
const tsss = /[0-9]|[a-z]|[A-Z]|[()()《》.[]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
const tssss = /[0-9]|[a-z]|[A-Z]|[()()《》.[]]/g
let tripsW = rule.lableName ? `${rule.lableName}仅支持120个字符,60个汉字,数字/大小写英文字母/汉字/部分特殊字符()()《》•` : '仅支持120个字符,60个汉字,数字/大小写英文字母/汉字/部分特殊字符()()《》•'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
let lengt=0
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if(value.match(tssss)){
console.log("非中文的",value.match(tssss).length)
lengt=value.match(tssss).length+lengt
}
if (value.match(tss)) {
console.log("中文的",value.match(tss).length)
lengt=lengt=value.match(tss).length*2+lengt
}
console.log('总长度',lengt)
if (lengt> 120) {
return cb(new Error(tripsW));
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export const nameRegFun = (rule, value, cb) => {
const tsss = /[0-9]|[a-z]|[A-Z]|[()()《》.[]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
let tripsW = rule.lableName ? `${rule.lableName}仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•` : '仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if (value.match(tss)) {
if (value.match(tss).length > 60) {
return cb(new Error(tripsW));
}
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURIComponent(r[2]);
return 0;
}
export function isPhone(ev) {
const reg = /^1\d{10}$/
return reg.test(ev);
}
export function isFixedPhone(fixPhone) {
let reg = /^0(\d{2,3}-)?(\d{7,8})$/;
return reg.test(fixPhone)
}
export function isIdCardFun(ev) {
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(ev);
}
export function iszhongwenFun(ev) {
let reg = /^[\u4e00-\u9fa5]*$/;
return reg.test(ev);
}
export function isCompanyNameFun(ev) {
let reg = /[^0-9a-zA-Z()()《》·\u4e00-\u9fa5]/g;
return reg.test(ev);
}
export function debounceFun(func, delay = 200) {
let timer
return function () {
console.log(func)
let context = this
clearTimeout(timer)
timer = setTimeout(() => {
func.call(context)
}, delay);
}()
}
export function formatDate(t, type) {
var date = new Date(t)
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
let retrunType = [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':');
if (type) {
let dateStyle = '/';
let dateStyleArray = ["/", ".", "-"];
let newForm = Array.from(type);
newForm = new Set(newForm);
newForm = [...newForm];
let dateArray = [];
let timeArray = [];
let isYear = false;
let isTime = false;
for (let item of newForm) {
if (item == ':' || item == 'm' || item == 's') {
isTime = true;
}
if (item == "Y") {
isYear = true;
}
if (dateStyleArray.includes(item)) {
dateStyle = item;
}
}
if (isYear) {
dateArray = [year, month, day];
} else {
dateArray = [month, day];
}
if (isTime) {
timeArray = [hour, minute, second];
}
retrunType = dateArray.map(formatNumber).join(dateStyle) + ' ' + timeArray.map(formatNumber).join(':');
}
return retrunType;
}
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
export const formatNumberTwo =(n) =>{
n = n.toString()
return n[1] ? n : '0' + n
}
export const formatStrDateFun = (str, hours) => {
if (!str) {
return ''
} else {
if (hours) {
return `${str.slice(0, 4)}-${str.slice(4, 6)}-${str.slice(6, 8)} ${str.slice(8, 10)}:${str.slice(10, 12)}:${str.slice(12, 14)}`
} else {
return `${str.slice(0, 4)}-${str.slice(4, 6)}-${str.slice(6, 8)}`
}
}
}
export function formatDateTwo(format = "Y-M-D h:m", timestamp = Date.now()) {
let date = new Date(timestamp);
let dateInfo = {
Y: date.getFullYear(),
M: date.getMonth() + 1,
D: date.getDate(),
h: date.getHours(),
m: date.getMinutes(),
s: date.getSeconds(),
};
let formatNumber = (n) => (n >= 10 ? n : "0" + n);
let res = format
.replace("Y", dateInfo.Y)
.replace("M", formatNumber(dateInfo.M))
.replace("D", formatNumber(dateInfo.D))
.replace("h", formatNumber(dateInfo.h))
.replace("m", formatNumber(dateInfo.m))
.replace("s", formatNumber(dateInfo.s));
return res;
}
export const getNumberPreFun = (num) => {
if (num!='') {
return toFixedFun(multiplyFun(num,100))
} else{
return 0
}
}
export const linkmanRegFun = (rule, value, cb) => {
const tsss = /[1-9]|[a-z]|[A-Z]|[()()《》.[]]|[\u4e00-\u9fa5]/g;
const tss = /[\u4e00-\u9fa5]/g;
let tripsW = rule.lableName ? `${rule.lableName}仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•` : '仅支持数字/大小写英文字母/汉字/部分特殊字符()()《》•'
console.log(value == '' && rule.required)
if (value == '' && rule.required) {
return cb(new Error(tripsW));
}
if (value.match(tsss)) {
if (value.match(tsss).length < value.length) {
return cb(new Error(tripsW));
}
if (value.match(tss)) {
if (value.match(tss).length > 50) {
return cb(new Error(tripsW));
}
}
return cb();
}
if (value.length === 0) {
return cb();
}
return cb(new Error(tripsW));
};
export function getBrowserVersion() {
const appVersion = navigator.appVersion
const index = appVersion.indexOf('Chrome/')
const ChromeStr = appVersion.substring(index + 7, appVersion.length)
const index_point = ChromeStr.indexOf('.')
const ChromeVersions = ChromeStr.substring(0, index_point)
console.log('userAgent', navigator.userAgent)
console.log('浏览器信息', appVersion)
console.log('谷歌浏览器的版本号', ChromeVersions)
if (appVersion.includes('Chrome')) {
if (ChromeVersions >= 80) {
return true
} else {
return false
}
} else {
return false
}
}
export function getBrowser() {
let appVersion = navigator.appVersion
let index = appVersion.indexOf('Chrome/')
let ChromeStr = appVersion.substring(index + 7, appVersion.length)
let index_point = ChromeStr.indexOf('.')
let ChromeVersions = ChromeStr.substring(0, index_point)
var ua = navigator.userAgent
console.log('浏览器ua', ua)
console.log('浏览器的版本号', ChromeVersions)
var isOpera = ua.indexOf('Opera') > -1
if (isOpera) {
return {
type: 'Opera',
versions: ChromeVersions
}
}
var isIE = (ua.indexOf('compatible') > -1) && (ua.indexOf('MSIE') > -1) && !isOpera
var isIE11 = (ua.indexOf('Trident') > -1) && (ua.indexOf("rv:11.0") > -1)
if (isIE11) {
return 'IE11'
} else if (isIE) {
var re = new RegExp('MSIE (\\d+\\.\\d+);')
re.test(ua)
var ver = parseFloat(RegExp["$1"])
if (ver == 7) {
return 'IE7'
} else if (ver == 8) {
return 'IE8'
} else if (ver == 9) {
return 'IE9'
} else if (ver == 10) {
return 'IE10'
} else { return "IE" }
}
var isEdge = ua.indexOf("Edg") > -1
if (isEdge) {
return {
type: 'Edg',
versions: ChromeVersions
}
}
var isFirefox = ua.indexOf("Firefox") > -1
if (isFirefox) {
return {
type: 'Firefox',
versions: ChromeVersions
}
}
var isSafari = (ua.indexOf("Safari") > -1) && (ua.indexOf("Chrome") == -1)
if (isSafari) {
return {
type: "Safari",
versions: ChromeVersions
}
}
var isChrome = (ua.indexOf("Chrome") > -1) && (ua.indexOf("Safari") > -1) && (ua.indexOf("Edg") == -1)
if (isChrome) {
return {
type: 'Chrome',
versions: ChromeVersions
}
}
var isUC = ua.indexOf("UBrowser") > -1
if (isUC) {
return {
type: 'UC',
versions: ChromeVersions
}
}
var isQQ = ua.indexOf("QQBrowser") > -1
if (isUC) {
return {
type: 'QQ',
versions: ChromeVersions
}
}
return {
type: '',
versions: ''
}
}