123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- export default {
- //字节大小转换
- convertSize(limit) {
- var size = ''
- // if (limit < 0.1 * 1024) {
- // //小于0.1KB,则转化成B
- // size = limit.toFixed(2) + 'B'
- // } else if (limit < 0.1 * 1024 * 1024) {
- // //小于0.1MB,则转化成KB
- // size = (limit / 1024).toFixed(2) + 'KB'
- // } else if (limit < 0.1 * 1024 * 1024 * 1024) {
- // //小于0.1GB,则转化成MB
- // size = (limit / (1024 * 1024)).toFixed(2) + 'MB'
- // } else {
- // //其他转化成GB
- // size = (limit / (1024 * 1024 * 1024)).toFixed(2) + 'GB'
- // }
- size = (limit / (1024 * 1024 * 1024)).toFixed(2)
- var sizeStr = size + '' //转成字符串
- var index = sizeStr.indexOf('.') //获取小数点处的索引
- var dou = sizeStr.substr(index + 1, 2) //获取小数点后两位的值
- if (dou == '00') {
- //判断后两位是否为00,如果是则删除00
- return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2)
- }
- return size
- },
- //时间戳转日期
- getLocalTime(nS) {
- return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/, ' ');
- // return new Date(parseInt(nS))
- },
- //计算总天数
- totalDay(startime, endtime) {
- console.log(startime, endtime, '传进来的值')
- var date = new Date();
- let year = date.getFullYear()
- let month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
- var totaldays = 0
- month.forEach(item => {
- let days = 0
- if (item >= startime && item <= endtime) {
- switch (item) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- days = 31;
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- days = 30;
- break;
- case 2:
- let years = 0;
- if (startime < endtime)
- years = year;
- else
- years = year + 1;
- if (years % 4 == 0 && year % 100 != 0 || year % 400 == 0)
- days = 29;
- else
- days = 28;
- break;
- }
- totaldays += days;
- console.log(totaldays, days)
- }
- });
- return totaldays
- },
- timestampToTime(timestamp, state, isUtc=false) {
- if (timestamp === 0) { return 0 }
- let multiple = timestamp.toString().length === 13 ? 1 : 1000
- var date = new Date(Number(timestamp) * multiple); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
- if (isUtc) date = new Date(date.toLocaleString('en-US', { timeZone: 'UTC' }));
- var Y = date.getFullYear() + '-';
- var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
- var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
- if (state === 'all') {
- var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
- var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
- var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
- }
- var strDate = state !== 'all' ? Y + M + D : Y + M + D + h + m + s;
- return strDate; //2020-07-30 01:05:54
- },
- toCode(str) { //加密字符串
- //定义密钥,36个字母和数字
- var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- var l = key.length; //获取密钥的长度
- var a = key.split(""); //把密钥字符串转换为字符数组
- var s = "",
- b, b1, b2, b3; //定义临时变量
- for (var i = 0; i < str.length; i++) { //遍历字符串
- b = str.charCodeAt(i); //逐个提取每个字符,并获取Unicode编码值
- b1 = b % l; //求Unicode编码值得余数
- b = (b - b1) / l; //求最大倍数
- b2 = b % l; //求最大倍数的于是
- b = (b - b2) / l; //求最大倍数
- b3 = b % l; //求最大倍数的余数
- s += a[b3] + a[b2] + a[b1]; //根据余数值映射到密钥中对应下标位置的字符
- }
- return s; //返回这些映射的字符
- },
- fromCode(str) {
- //定义密钥,36个字母和数字
- var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- var l = key.length; //获取密钥的长度
- var b, b1, b2, b3, d = 0,
- s; //定义临时变量
- s = new Array(Math.floor(str.length / 3)); //计算加密字符串包含的字符数,并定义数组
- b = s.length; //获取数组的长度
- for (var i = 0; i < b; i++) { //以数组的长度循环次数,遍历加密字符串
- b1 = key.indexOf(str.charAt(d)); //截取周期内第一个字符串,计算在密钥中的下标值
- d++;
- b2 = key.indexOf(str.charAt(d)); //截取周期内第二个字符串,计算在密钥中的下标值
- d++;
- b3 = key.indexOf(str.charAt(d)); //截取周期内第三个字符串,计算在密钥中的下标值
- d++;
- s[i] = b1 * l * l + b2 * l + b3 //利用下标值,反推被加密字符的Unicode编码值
- }
- b = eval("String.fromCharCode(" + s.join(',') + ")");
- return b; //返回被解密的字符串
- },
- //检查是否为空对象
- isEmpty(obj) {
- Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
- },
- //计算两天之间相差多少天 格式(2022-11-03)
- dayDiff(date1, date2) {
- Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000);
- },
- //把数字转换成汉字
- toChinesNum(num) {
- let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
- let unit = ['', '十', '百', '千', '万']
- num = parseInt(num)
- let getWan = (temp) => {
- let strArr = temp.toString().split('').reverse()
- let newNum = ''
- let newArr = []
- strArr.forEach((item, index) => {
- newArr.unshift(item === '0' ? changeNum[item] : changeNum[item] + unit[index])
- })
- let numArr = []
- 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
- }
- let overWan = Math.floor(num / 10000)
- let noWan = num % 10000
- if (noWan.toString().length < 4) {
- noWan = '0' + noWan
- }
- return overWan ? getWan(overWan) + '万' + getWan(noWan) : getWan(num)
- },
- //处理数字 以数字+文字单位
- numberToTextWithUnit(number) {
- console.log('进入方法了123')
- let nowLanguage=localStorage.getItem('local') ? (localStorage.getItem('local')).toLowerCase():(navigator.language).toLowerCase();
- let spanValue=nowLanguage.indexOf('cn') !== -1 || nowLanguage.indexOf('tw') !==-1 ? 10000:1000
- console.log(spanValue,'进入方法了')
- if (isNaN(number)) {
- console.log("请输入有效数字")
- return;
- }
- if (number < spanValue) {
- return number.toString();
- }
- const unitCN=["万", "亿", "兆"];let unitTW=["萬","億","兆"];let unitEN=["k","M","B"]
- const units = nowLanguage.indexOf('cn') !== -1 ? unitCN:nowLanguage.indexOf('tw') !==-1 ?unitTW:unitEN
- let unitIndex = 0;
-
- while (number >= spanValue && unitIndex < units.length) {
- number /= spanValue;
- unitIndex++;
- }
-
- const roundedNumber =number.toFixed(1);
- const numberText = roundedNumber.toString();
-
- return numberText + units[unitIndex - 1];
- }
- }
|