export default { //获取图片 imgPreview(file, callback) { let self = this; let name = file.name.split('.')[0] //判断支不支持FileReader if (!file || !window.FileReader) return; if (/^image/.test(file.type)) { //创建一个reader let reader = new FileReader(); //将图片转成base64格式 reader.readAsDataURL(file); //读取成功后的回调 reader.onloadend = function() { let result = this.result; let img = new Image(); let formData = new FormData(); img.src = result; img.onload = function() { let data = self.compress(img,name); let blob = self.dataURItoBlob(data); formData.append("file", blob,name+'.jpeg'); //图片预览,配置文件,formData数据; callback && callback(data,formData); }; }; } }, // 压缩图片 compress(img) { let canvas = document.createElement("canvas"); let ctx = canvas.getContext("2d"); // let initSize = img.src.length; let width = img.width; let height = img.height; canvas.width = width; canvas.height = height; // 铺底色 ctx.fillStyle = "#fff"; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.drawImage(img, 0, 0, width, height); //进行压缩 let ndata = canvas.toDataURL("image/jpeg", 0.4); // console.log("*******压缩后的图片大小*******"); // console.log(ndata) return ndata; }, // base64转成bolb对象 dataURItoBlob(base64Data) { var byteString; if (base64Data.split(",")[0].indexOf("base64") >= 0) byteString = atob(base64Data.split(",")[1]); else byteString = unescape(base64Data.split(",")[1]); var mimeString = base64Data .split(",")[0] .split(":")[1] .split(";")[0]; var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString}); }, // setApiToken(name, controller, time, modules) { let str = name + 'customer-service' + controller + time + modules return str.toLocaleLowerCase() }, /** * 时间戳转日期自定义时间格式 * timeStamp:时间戳 * custom:转换日期时定义年月日用是什么符号隔开 * isDtae:0=月份、1=日期、3=时间 */ customFormatDateTime(timeStamp,custom,isDtae) { var date = new Date(); date.setTime(timeStamp * 1000); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; var h = date.getHours(); h = h < 10 ? ('0' + h) : h; var minute = date.getMinutes(); var second = date.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; if (isDtae == 0){ return y + custom + m //+'student'; }else if (isDtae ==1){ return y + custom + m + custom + d; }else{ return y + '-' + m + '-' + d + ' ' + h + ':' + minute //+ ':' + second; } }, /*****************屏蔽关键字******************/ /** * * @param {*} data * @param {*} sensitive * @param {*} */ shieldingKeyword(data,sensitive) { //将敏感词组用|转换字符串 let snstive = sensitive.join('|'); let num = 0,text=''; //匹配出会话中的敏感词 data.replace(eval('/' + snstive + '/g'), (res) => { // var str = ''; console.log(res) text +=','+res; // for (var i = 0; i < res.length; i++) { // str += '*'; // } num ++; // return str; }) return { text, num } }, }