Vue插件 注册常用全局方法
1.新建一个format.js
一下是一些常用的全局方法
/*
* @Description: 全局格式化方法
* @Version: @1.0.0
* @Autor: YJY
* @Date: 2021-06-22 09:32:51
* @LastEditors: YJY
* @LastEditTime: 2021-06-22 10:10:20
*/
export default {
install(Vue) {
/**
* 判断值是否为空
* @param {*} val
*/
Vue.prototype.isEmpty = (val) => {
if ("" == val || undefined == val || null == val) {
return true;
}
return false;
};
/**
* 格式化时间毫秒数
* @param {*} time
*/
Vue.prototype.FormatTime = (time) => {
if ("" == time || undefined == time || null == time) {
return "";
}
var date = new Date(time);
var Y = date.getFullYear();
var m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
var d = date.getDate();
if (d < 10) {
d = "0" + d;
}
var h = date.getHours();
if (h < 10) {
h = "0" + h;
}
var i = date.getMinutes();
if (i < 10) {
i = "0" + i;
}
var s = date.getSeconds();
if (s < 10) {
s = "0" + s;
}
return Y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
};
Vue.prototype.FormatDate = (time) => {
if ("" == time || undefined == time || null == time) {
return "";
}
var date = new Date(time);
var Y = date.getFullYear();
var m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
var d = date.getDate();
if (d < 10) {
d = "0" + d;
}
var h = date.getHours();
if (h < 10) {
h = "0" + h;
}
var i = date.getMinutes();
if (i < 10) {
i = "0" + i;
}
var s = date.getSeconds();
if (s < 10) {
s = "0" + s;
}
return Y + '-' + m + '-' + d;
};
/**
* 时间戳转化年份
*/
Vue.prototype.FormatYear = (time) => {
if ("" == time || undefined == time || null == time) {
return "";
}
var date = new Date(time);
var Y = date.getFullYear();
var m = date.getMonth() + 1;
if (m < 10) {
m = "0" + m;
}
var d = date.getDate();
if (d < 10) {
d = "0" + d;
}
var h = date.getHours();
if (h < 10) {
h = "0" + h;
}
var i = date.getMinutes();
if (i < 10) {
i = "0" + i;
}
var s = date.getSeconds();
if (s < 10) {
s = "0" + s;
}
return Y ;
};
/**
* 判断值是否为Null
* @param {*} val
*/
Vue.prototype.ifNull = (str) => {
let data = '';
if (str == null || str == '') {
data = 'N/A';
} else {
data = str;
}
return data;
};
/**
* 获取当前时间的时间戳
* @param {*} val
*/
Vue.prototype.$getTime = (time) => {
return new Date(time).getTime();
};
/**
* 获取当前时间的时间戳
* @param {*} date 时间 form 格式
*/
Vue.prototype.$date = function (date, form) {
// y-m-d hh:mm:ss
let d = new Date(date);
let year = d.getFullYear();
let month = d.getMonth() + 1;
month = month < 10 ? '0' + month : month;
let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate();
let hour = d.getHours() < 10 ? '0' + d.getHours() : '' + d.getHours();
let minutes = d.getMinutes() < 10 ? '0' + d.getMinutes() : '' + d.getMinutes();
let seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : '' + d.getSeconds();
switch (form) {
case 'y-m-d':
return year + '-' + month + '-' + day;
break;
case 'hh:mm:ss':
return hour + ':' + minutes + ':' + seconds;
break;
case 'hh:mm':
return hour + ':' + minutes;
break;
default:
return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;
}
};
Vue.prototype.getTimeStamp = (date, seconds) => {
var time = '';
var h = parseInt(seconds / (60 * 60), 10) > 10 ? parseInt(seconds / (60 * 60), 10) : '0' + parseInt(seconds / (60 * 60), 10);
var m = parseInt(seconds % (60 * 60) / 60, 10) > 10 ? parseInt(seconds % (60 * 60) / 60, 10) : '0' + parseInt(seconds % (60 * 60) / 60, 10);
var s = parseInt(seconds % (60 * 60) % 60, 10) > 10 ? parseInt(seconds % (60 * 60) % 60, 10) : '0' + parseInt(seconds % (60 * 60) % 60, 10);
time = date + ' ' + h + ':' + m + ':' + s;
//console.log(time);
//console.log(new Date(time).getTime());
//console.log(new Date().getTime());
return new Date(time).getTime();
};
/**
* //转化为时分秒
* @param {*} value 时间戳
*/
Vue.prototype.formatSeconds = (value) => {
var secondTime = 0;
if (value) {
secondTime = parseInt(value);// 秒
}
var minuteTime = 0;// 分
var hourTime = 0;// 小时
if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
//获取分钟,除以60取整数,得到整数分钟
minuteTime = parseInt(secondTime / 60);
//获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60);
//如果分钟大于60,将分钟转换成小时
if (minuteTime > 60) {
//获取小时,获取分钟除以60,得到整数小时
hourTime = parseInt(minuteTime / 60);
//获取小时后取佘的分,获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if (minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if (hourTime > 0) {
result = "" + parseInt(hourTime) + "小时" + result;
}
return result;
};
/**
* 获取上一个月
*
* @date 格式为yyyy-mm-dd的日期,如:2014-01-25
*/
Vue.prototype.getPreMonth = (date) => {
var arr = date.split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //获取当前日期中月的天数
var year2 = year;
var month2 = parseInt(month) - 1;
if (month2 == 0) {
year2 = parseInt(year2) - 1;
month2 = 12;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
};
/**
* 数组对象方法排序:根据数组的中的字段值大小排序从小到大
*
*
*/
Vue.prototype.sortByKey = (array, key) => {
return array.sort(function (a, b) {
var x = a[key];
var y = b[key];
((x < y) ? -1 : (x > y) ? 1 : 0)
})
};
/***
* string 字符串;
str 指定字符;
split(),用于把一个字符串分割成字符串数组;
split(str)[0],读取数组中索引为0的值(第一个值),所有数组索引默认从0开始;
*/
Vue.prototype.getStr = (string, str, isAfter) => {
var str_before = string.split(str)[0];
var str_after = string.split(str)[1];
if (isAfter) {
return str_after;
} else {
return str_before;
}
},
/****
* 邮箱验证
*/
Vue.prototype.emailCheck = (value) => {
let temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/
let tempOne = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
if (value && (!(temp).test(value))) {
Vue.prototype.$message.error('邮箱格式不符合规范');
return false;
} else {
return true;
}
};
/*****
* 手机号验证.电话
*/
Vue.prototype.phoneNumber = (value) => {
if (value && (!(/^[1][34578]\d{9}$/).test(value) || !(/^[1-9]\d*$/).test(value) || value.length !== 11)) {
Vue.prototype.$message.error('手机号码不符合规范');
return false;
} else {
return true;
}
};
/****
* 对数字进行三位分割
* @param {*} value 需要进行分割的数字
* @returns 返回分割后的数字
*/
Vue.prototype.NumFormat = (value) => {
if (!value) return '0'
var intPart = Number(value).toFixed(0) // 获取整数部分
var intPartFormat = intPart.toString()
.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
var floatPart = '.00' // 预定义小数部分
var value2Array = value.toString().split('.')
// =2表示数据有小数位
if (value2Array.length === 2) {
floatPart = value2Array[1].toString() // 拿到小数部分
if (floatPart.length === 1) {
// 补0
return intPartFormat + '.' + floatPart + '0'
} else {
return intPartFormat + '.' + floatPart
}
} else {
return intPartFormat
}
}
}
}
2.全局进行注册
import format from '@/public/format/format.js'
Vue.use(format);
3.使用demo
组件中使用