| | |
| | | /** |
| | | * 通用工具类 |
| | | */ |
| | | import CryptoJS from 'crypto-js' |
| | | |
| | | export default class func { |
| | | /** |
| | | * 单选表格行 |
| | | * 时间戳格式化 |
| | | */ |
| | | static formattedDate(val) { |
| | | // 创建一个 Date 对象 |
| | | const date = new Date(val); |
| | | |
| | | // 格式化时间的辅助函数 |
| | | const formatNumber = (number) => String(number).padStart(2, '0'); |
| | | |
| | | // 提取并格式化年、月、日、小时、分钟和秒 |
| | | const year = date.getFullYear(); |
| | | const month = formatNumber(date.getMonth() + 1); // 月份从0开始,需要+1 |
| | | const day = formatNumber(date.getDate()); |
| | | const hours = formatNumber(date.getHours()); |
| | | const minutes = formatNumber(date.getMinutes()); |
| | | const seconds = formatNumber(date.getSeconds()); |
| | | |
| | | // 格式化为 YYYY-MM-DD HH:MM:SS |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | } |
| | | |
| | | /** |
| | | * 单选表格行 |
| | | * row 当前行数据 |
| | | * CrudRef 表格ref绑定值 |
| | | * lastIndex 判断二次点击index是否和第一次点击一致 |
| | | * setLastIndex 更新lastIndex值 |
| | | * setSelectList 将下拉框保存数组置空 |
| | | */ |
| | | |
| | | static rowClickHandler(row, CrudRef, lastIndex, setLastIndex, setSelectList) { |
| | | /*if (lastIndex === row.$index) { |
| | | setSelectList(); |
| | | CrudRef.clearSelection(); |
| | | } else { |
| | | setSelectList(); |
| | | CrudRef.clearSelection(); |
| | | CrudRef.toggleRowSelection(row); |
| | | }*/ |
| | | setSelectList(); |
| | | CrudRef.toggleSelection(); |
| | | CrudRef.toggleRowSelection(row);//选中当前行 |
| | | setLastIndex(row.$index); |
| | | } |
| | | |
| | | /** |
| | | * 不为空 |
| | | * @param val |
| | |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 判断对象为空 |
| | | */ |
| | | |
| | | static isEmptyObject(obj) { |
| | | if(obj){ |
| | | return Object.keys(obj).length === 0; |
| | | }else { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | return item[attr] !== array[0][attr]; |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 3des加密 |
| | | * @param message |
| | | * @param key |
| | | * @returns {string} |
| | | */ |
| | | encryptByDES(message, key) { |
| | | const keyHex = CryptoJS.enc.Utf8.parse(key); |
| | | const encrypted = CryptoJS.DES.encrypt(message, keyHex, { |
| | | mode: CryptoJS.mode.ECB, |
| | | padding: CryptoJS.pad.Pkcs7 |
| | | }); |
| | | return encrypted.toString(); |
| | | } |
| | | |
| | | /** |
| | | * HmacMD5加密 |
| | | * @param message |
| | | * @param key |
| | | * @returns {string} |
| | | * @constructor |
| | | */ |
| | | static HmacMD5(message, key) { |
| | | const encrypted = CryptoJS.HmacMD5(message, key); |
| | | return encrypted.toString(); |
| | | } |
| | | |
| | | /** |
| | | * aes加密 |
| | | * @param data |
| | | * @param secretKey |
| | | * @returns {string} |
| | | */ |
| | | static encryptData(data, secretKey) { |
| | | const key = CryptoJS.enc.Utf8.parse(secretKey); |
| | | const iv = CryptoJS.enc.Utf8.parse(secretKey.substr(0, 16)); // AES block size is 128 bits (16 bytes) |
| | | const encrypted = CryptoJS.AES.encrypt(data, key, { |
| | | iv: iv, |
| | | mode: CryptoJS.mode.CBC, |
| | | padding: CryptoJS.pad.Pkcs7 |
| | | }); |
| | | return encrypted.toString(); |
| | | } |
| | | } |
| | | |
| | | |