欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于vue项目的js工具方法汇总

程序员文章站 2022-04-14 15:32:54
以下是个人过去一年在vue项目的开发过程中经常会用到的一些公共方法,在此进行汇总,方便以后及有需要的朋友查看~ AES加密/解密,需要先安装依赖 crypto-js。注:具体的选项参数可自行百度了解噢 MD5加密,需要先安装依赖 js-md5 持续更新中~~ ......
以下是个人过去一年在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);

 

export default util;

 

持续更新中~~