Vue插件 注册常用全局方法

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

组件中使用

在这里插入图片描述
在这里插入图片描述

方法中使用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值