当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 基于vue项目的js工具方法汇总

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

2019年05月18日  | 移动技术网IT编程  | 我要评论
以下是个人过去一年在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;

 

持续更新中~~

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网