设为首页 加入收藏

TOP

基于vue项目的js工具方法汇总(一)
2019-09-17 18:37:20 】 浏览:53
Tags:基于 vue 目的 工具 方法 汇总
以下是个人在vue项目的开发过程中经常会用到的一些公共方法,在此进行汇总,方便以后及有需要的朋友查看~

let util = {};

 

/**
 * @description 日期格式化
 * @param {Date} date 日期
 * @param {String} fmt 日期格式 eg: yyyy-MM-dd hh:mm:ss
 */
util.dateFormat = function (date, fmt) {
  var o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), //
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), //
    's+': date.getSeconds(), //
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  };
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
    }
  }
  return fmt;
};

 

/**
 * @description 文件下载
 * @param {Object} data  数据 
 * @param {String} fileName 下载文件名
 */
util.download = function (data, fileName) {
  //创建一个blob对象,file的一种
  let blob = new Blob([data], { type: 'application/x-xls' });
  if ('download' in document.createElement('a')) { // 非IE下载
    let link = document.createElement('a');
    if (window.URL) {
      link.href = window.URL.createObjectURL(blob);
    } else {
      link.href = window.webkitURL.createObjectURL(blob);
    }
    link.download = fileName;
    document.body.appendChild(link);
    link.click();
    link.remove();
  }else { // IE10+下载
    navigator.msSaveBlob(blob, fileName);
  }
};

 

/**
 * @description 校验导入execl格式
 * @param {file} file 导入文件对象
 */
util.validateExecl = function(file) {
  const isXLS = file.type === 'application/vnd.ms-excel';
  const isXLSX = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
  if (!isXLS && !isXLSX) {
    this.$message.error('只支持导入execl文件');
    return false;
  }
};

 

/**
 * @description 校验上传图片格式和大小
 * @param {file} file 导入文件对象
 */
util.validateImage = function(file) {
  const isPNG = file.type.toLowerCase() === 'image/png';
  const isJPG = file.type.toLowerCase() === 'image/jpeg';
  const isLt2M = file.size / 1024 / 1024 < 2;
  if (!isJPG && !isPNG) {
    this.$message.error('上传图片只能是JPG或PNG格式!');
    return false;
  }
  if (!isLt2M) {
    this.$message.error('上传图片大小不能超过 2M!');
    return false;
  }
};

 

AES加密/解密,需要先安装依赖 crypto-js。注:具体的选项参数可自行百度了解噢

// 自定义密钥
const key = CryptoJS.enc.Utf8.parse('ljycykxbchsbqtcy')
// 加密
util.encrypt = function(str) {
  let srcs = CryptoJS.enc.Utf8.parse(str)
  let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7})
  return encrypted.toString()
};
// 解密
util.decrypt = function(str) {
  let decrypt = CryptoJS.AES.decrypt(str, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7})
  return CryptoJS.enc.Utf8.stringify(decrypt).toString()
};

 

MD5加密,需要先安装依赖 js-md5

// 在main.js中添加以下代码
import md5 from 'js-md5';
Vue.prototype.$md5 = md5;

// str为需要加密字段
let md5Str = this.$md5(str);

 

/**
 * @description 倒计时
 * @param {} time 绑定展示的倒计时时间,初始值60s
 */
let timer = null
timer = setInterval(function() {
  if(this.time > 0) {
    this.time--
  }else {
    clearInterval(timer)
  }
}, 1000)

 

转换file文件对象为base64字符串

let reader = new FileReader()
// file为通过上传组件选择的文件对象
reader.readAsDataURL(file)
reader.onload = fun
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇js常用正则表达式 下一篇Vue组件间通信6种方式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目