| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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
- }
- },
- }
|