基于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;
持续更新中~~
上一篇: 亲戚介绍了个妹子
下一篇: QT中.pro文件的写法