import numeral from 'numeral'; import dayjs from 'dayjs'; export const browser = () => { const u = navigator.userAgent; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/Mac OS X/), //ios终端 // ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('COLEXIUSTUDENT') > -1 || u.indexOf('Adr') > -1, //android终端 iPhone: u.indexOf('COLEXIUAPPI') > -1, //是否为iPhone或者QQHD浏览器 isApp: u.indexOf('COLEXIUAPPI') > -1 || u.indexOf('COLEXIUAPPA') > -1 || u.indexOf('Adr') > -1, iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) alipay: u.indexOf('AlipayClient') > -1, //是否支付宝 huawei: !!u.match(/huawei/i) || !!u.match(/honor/i), xiaomi: !!u.match(/mi\s/i) || !!u.match(/redmi/i) || !!u.match(/mix/i) }; }; // 获取授权的code码 export const getUrlCode = (name = 'code') => { // 截取url中的code方法 const url = location.search; const theRequest: any = new Object(); if (url.indexOf('?') != -1) { const str = url.substr(1); const strs = str.split('&'); for (let i = 0; i < strs.length; i++) { theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1]; } } console.log(theRequest, 'theRequest'); return theRequest[name]; }; export const getRandomKey = () => { const key = '' + new Date().getTime() + Math.floor(Math.random() * 1000000); return key; }; export function checkPhone(phone: string) { const phoneRule = /^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\d{8}$/; return phoneRule.test(phone); } /** * @description 格式化日期控件显示内容 * @param type * @param option * @returns OBJECT */ export const formatterDatePicker = (type: any, option: any) => { if (type === 'year') { option.text += '年'; } if (type === 'month') { option.text += '月'; } if (type === 'day') { option.text += '日'; } return option; }; /** * 数字转成汉字 * @params num === 要转换的数字 * @return 汉字 * */ export const toChinesNum = (num: any) => { const changeNum = [ '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' ]; const unit = ['', '十', '百', '千', '万']; num = parseInt(num); const getWan = (temp: any) => { const strArr = temp.toString().split('').reverse(); let newNum = ''; const newArr: string[] = []; strArr.forEach((item: any, index: any) => { newArr.unshift( item === '0' ? changeNum[item] : changeNum[item] + unit[index] ); }); const numArr: number[] = []; newArr.forEach((m, n) => { if (m !== '零') numArr.push(n); }); if (newArr.length > 1) { newArr.forEach((m, n) => { if (newArr[newArr.length - 1] === '零') { if (n <= numArr[numArr.length - 1]) { newNum += m; } } else { newNum += m; } }); } else { newNum = newArr[0]; } return newNum; }; const overWan = Math.floor(num / 10000); let noWan: any = num % 10000; if (noWan.toString().length < 4) { noWan = '0' + noWan; } return overWan ? getWan(overWan) + '万' + getWan(noWan) : getWan(num); }; // 秒转分 export const getSecondRPM = (second: number, type?: string) => { if (isNaN(second)) return '00:00'; const mm = Math.floor(second / 60) .toString() .padStart(2, '0'); const dd = Math.floor(second % 60) .toString() .padStart(2, '0'); if (type === 'cn') { return mm + '分' + dd + '秒'; } else { return mm + ':' + dd; } }; export const getWeekCh = (week: number, type = 0) => { const template = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']; const template2 = [ '星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ]; return type ? template2[week] : template[week]; }; export const numberFormat = (num: number, type?: string) => { if (type === 'percent') { return numeral(num).format('0.0%'); } return numeral(num).format('0,0'); }; export const moneyFormat = (value: number, format = '0,0.00') => { return numeral(value).format(format); }; export const dateFormat = ( value: string | Date, format = 'YYYY-MM-DD HH:mm:ss' ) => { return dayjs(value).format(format); };