publicMethods.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. export default {
  2. //获取图片
  3. imgPreview(file, callback) {
  4. let self = this;
  5. let name = file.name.split('.')[0]
  6. //判断支不支持FileReader
  7. if (!file || !window.FileReader) return;
  8. if (/^image/.test(file.type)) {
  9. //创建一个reader
  10. let reader = new FileReader();
  11. //将图片转成base64格式
  12. reader.readAsDataURL(file);
  13. //读取成功后的回调
  14. reader.onloadend = function() {
  15. let result = this.result;
  16. let img = new Image();
  17. let formData = new FormData();
  18. img.src = result;
  19. img.onload = function() {
  20. let data = self.compress(img,name);
  21. let blob = self.dataURItoBlob(data);
  22. formData.append("file", blob,name+'.jpeg');
  23. //图片预览,配置文件,formData数据;
  24. callback && callback(data,formData);
  25. };
  26. };
  27. }
  28. },
  29. // 压缩图片
  30. compress(img) {
  31. let canvas = document.createElement("canvas");
  32. let ctx = canvas.getContext("2d");
  33. // let initSize = img.src.length;
  34. let width = img.width;
  35. let height = img.height;
  36. canvas.width = width;
  37. canvas.height = height;
  38. // 铺底色
  39. ctx.fillStyle = "#fff";
  40. ctx.fillRect(0, 0, canvas.width, canvas.height);
  41. ctx.drawImage(img, 0, 0, width, height);
  42. //进行压缩
  43. let ndata = canvas.toDataURL("image/jpeg", 0.4);
  44. // console.log("*******压缩后的图片大小*******");
  45. // console.log(ndata)
  46. return ndata;
  47. },
  48. // base64转成bolb对象
  49. dataURItoBlob(base64Data) {
  50. var byteString;
  51. if (base64Data.split(",")[0].indexOf("base64") >= 0)
  52. byteString = atob(base64Data.split(",")[1]);
  53. else byteString = unescape(base64Data.split(",")[1]);
  54. var mimeString = base64Data
  55. .split(",")[0]
  56. .split(":")[1]
  57. .split(";")[0];
  58. var ia = new Uint8Array(byteString.length);
  59. for (var i = 0; i < byteString.length; i++) {
  60. ia[i] = byteString.charCodeAt(i);
  61. }
  62. return new Blob([ia], { type: mimeString});
  63. },
  64. //
  65. setApiToken(name, controller, time, modules) {
  66. let str = name + 'customer-service' + controller + time + modules
  67. return str.toLocaleLowerCase()
  68. },
  69. /**
  70. * 时间戳转日期自定义时间格式
  71. * timeStamp:时间戳
  72. * custom:转换日期时定义年月日用是什么符号隔开
  73. * isDtae:0=月份、1=日期、3=时间
  74. */
  75. customFormatDateTime(timeStamp,custom,isDtae) {
  76. var date = new Date();
  77. date.setTime(timeStamp * 1000);
  78. var y = date.getFullYear();
  79. var m = date.getMonth() + 1;
  80. m = m < 10 ? ('0' + m) : m;
  81. var d = date.getDate();
  82. d = d < 10 ? ('0' + d) : d;
  83. var h = date.getHours();
  84. h = h < 10 ? ('0' + h) : h;
  85. var minute = date.getMinutes();
  86. var second = date.getSeconds();
  87. minute = minute < 10 ? ('0' + minute) : minute;
  88. second = second < 10 ? ('0' + second) : second;
  89. if (isDtae == 0){
  90. return y + custom + m //+'student';
  91. }else if (isDtae ==1){
  92. return y + custom + m + custom + d;
  93. }else{
  94. return y + '-' + m + '-' + d + ' ' + h + ':' + minute //+ ':' + second;
  95. }
  96. },
  97. /*****************屏蔽关键字******************/
  98. /**
  99. *
  100. * @param {*} data
  101. * @param {*} sensitive
  102. * @param {*}
  103. */
  104. shieldingKeyword(data,sensitive) {
  105. //将敏感词组用|转换字符串
  106. let snstive = sensitive.join('|');
  107. let num = 0,text='';
  108. //匹配出会话中的敏感词
  109. data.replace(eval('/' + snstive + '/g'), (res) => {
  110. // var str = '';
  111. console.log(res)
  112. text +=','+res;
  113. // for (var i = 0; i < res.length; i++) {
  114. // str += '*';
  115. // }
  116. num ++;
  117. // return str;
  118. })
  119. return {
  120. text,
  121. num
  122. }
  123. },
  124. }