Brak opisu

feedback-page-work.js 6.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. var fileArr = [],fileSrcLength,imgUpLength=0,imgsLength=0;
  2. mui.init({
  3. swipeBack: true //启用右滑关闭功能
  4. });
  5. document.getElementById('headImage').addEventListener('tap', function() {
  6. if (mui.os.plus) {
  7. var buttonTit = [{
  8. title: "拍照"
  9. }, {
  10. title: "从手机相册选择"
  11. }];
  12. plus.nativeUI.actionSheet({
  13. title: "上传图片",
  14. cancel: "取消",
  15. buttons: buttonTit
  16. }, function(b) { /*actionSheet 按钮点击事件*/
  17. switch (b.index) {
  18. case 0:
  19. break;
  20. case 1:
  21. getImage(); /*拍照*/
  22. break;
  23. case 2:
  24. galleryImg(); /*打开相册*/
  25. break;
  26. default:
  27. break;
  28. }
  29. })
  30. } else if (typeof window !== 'undefined' && window.File && window.FileReader && window.FileList && window.Blob) {
  31. var input = document.createElement('input');
  32. input.type = 'file';
  33. input.accept = 'image/*';
  34. input.multiple = true; // 允许选择多张图片
  35. input.capture = 'camera';
  36. input.onchange = function(e) {
  37. var files = e.target.files;
  38. if (files.length > 0) {
  39. var promises = [];
  40. for (var i = 0; i < files.length; i++) {
  41. var file = files[i];
  42. var reader = new FileReader();
  43. var promise = new Promise(function(resolve, reject) {
  44. reader.onload = function(e) {
  45. var base64 = e.target.result;
  46. resolve({
  47. base64
  48. });
  49. };
  50. reader.onerror = function(e) {
  51. reject(e);
  52. };
  53. reader.readAsDataURL(file);
  54. });
  55. promises.push(promise);
  56. }
  57. Promise.all(promises).then(function(res) {
  58. for (var info of res) {
  59. if (info.base64) {
  60. setHtml(info.base64, info.base64);
  61. fileArr.push(info.base64);
  62. }
  63. }
  64. upFile();
  65. }).catch(function(error) {
  66. console.error('读取文件失败:', error);
  67. });
  68. }
  69. };
  70. input.click();
  71. }
  72. }, false);
  73. // 拍照获取图片  
  74. function getImage() {
  75. var c = plus.camera.getCamera();
  76. fileArr = [];
  77. imgUpLength = 0;
  78. c.captureImage(function(e) {
  79. plus.io.resolveLocalFileSystemURL(e, function(entry) {
  80. plus.nativeUI.showWaiting()
  81. var imgSrc = entry.toLocalURL() + "?version=" + new Date().getTime(); //拿到图片路径  
  82. imgUpLength++;
  83. appendFile(imgSrc);
  84. }, function(e) {
  85. console.log("读取拍照文件错误:" + e.message);
  86. });
  87. }, function(s) {
  88. console.log("error" + s.message);
  89. }, {
  90. filename: "_doc/camera/"
  91. })
  92. }
  93. // 从相册中选择图片   
  94. function galleryImg() {
  95. // 从相册中选择图片  
  96. fileArr = [];
  97. imgUpLength = 0;
  98. plus.gallery.pick(function(e) {
  99. for (var i in e.files) {
  100. var fileSrc = e.files[i];
  101. fileSrcLength = e.files.length;
  102. imgUpLength++;
  103. appendFile(fileSrc);
  104. }
  105. plus.nativeUI.showWaiting();
  106. }, function(e) {
  107. console.log("取消选择图片");
  108. }, {
  109. filter: "image",
  110. multiple: true,
  111. //maximum: 5,
  112. system: false,
  113. onmaxed: function() {
  114. plus.nativeUI.alert('最多只能选择5张图片');
  115. }
  116. });
  117. }
  118. function setHtml(path, fl) {
  119. var str = '';
  120. str = '<li class="mui-table-view-cell" imgId=""><div class="img_div">' +
  121. '<img src="' + path + '" base64="' + f1 + '">' +
  122. '<div class="mui-icon mui-icon-trash deleteBtn"></div>' +
  123. '</div></li>';
  124. $("#imgs").append(str);
  125. }
  126. $("#imgs").on("tap", ".deleteBtn", function() {
  127. var btnArray = ['取消', '确定'];
  128. var index=$(this).parent().parent();
  129. mui.confirm('确认删除', '提示', btnArray, function(e) {
  130. if(e.index == 1) {
  131. index.remove();
  132. imgsLength--;
  133. } else {
  134. plus.nativeUI.toast('取消');
  135. }
  136. })
  137. })
  138. function upFile() {
  139. console.log(fileArr, 'fileArr')
  140. mui.ajax(huayi.config.callcenter_url + '/ApplicationsVersion/UploadBase64', {
  141. data: {
  142. "dataurl": fileArr
  143. },
  144. dataType: 'json', //服务器返回json格式数据
  145. type: 'post', //HTTP请求类型
  146. timeout: 300000, //超时时间设置为30秒
  147. success: function(data) {
  148. if (data.state == "success") {
  149. console.log(1)
  150. for (var i in data.acs) {
  151. $("#imgs li").eq(Number(imgsLength)).attr("imgId", data.acs[i].F_Id)
  152. imgsLength++;
  153. }
  154. mui.toast("图片上传成功");
  155. // plus.nativeUI.closeWaiting();
  156. } else {
  157. mui.alert("上传失败");
  158. //plus.nativeUI.closeWaiting();
  159. }
  160. },
  161. error: function(xhr, type, errorThrown) {
  162. mui.alert(errorThrown);
  163. // plus.nativeUI.closeWaiting();
  164. }
  165. });
  166. }
  167. // 添加文件
  168. var f1 = null;
  169. function appendFile(path) {
  170. //fileArr=[]
  171. var bitmap = new plus.nativeObj.Bitmap("test");
  172. // 从本地加载Bitmap图片
  173. bitmap.load(path,function(){
  174. var base64 = bitmap.toBase64Data()
  175. var img = new Image();
  176. img .crossOrigin = "Anonymous";
  177. img.src = path; // 传过来的图片路径在这里用。
  178. img.onload = function() {
  179. var that = this;
  180. //生成比例
  181. var w = that.width,
  182. h = that.height,
  183. scale = w / h;
  184. w = 480 || w; //480 你想压缩到多大,改这里
  185. h = w / scale;
  186. //生成canvas
  187. var canvas = document.createElement('canvas');
  188. var ctx = canvas.getContext('2d');
  189. $(canvas).attr({
  190. width: w,
  191. height: h
  192. });
  193. ctx.drawImage(that, 0, 0, w, h);
  194. var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。哎开心就好,开心就好
  195. f1 = base64; // 把base64数据丢过去,上传要用。
  196. setHtml(path, f1);
  197. fileArr.push(f1);
  198. if (imgUpLength == fileArr.length) {
  199. upFile()
  200. }
  201. }
  202. },function(e){
  203. console.log('加载图片失败:'+JSON.stringify(e));
  204. });
  205. }
  206. // function appendFile(path) {
  207. // var img = new Image();
  208. // img.src = path; // 传过来的图片路径在这里用。
  209. // img.onload = function() {
  210. // var that = this;
  211. // //生成比例
  212. // var w = that.width,
  213. // h = that.height,
  214. // scale = w / h;
  215. // w = 480 || w; //480 你想压缩到多大,改这里
  216. // h = w / scale;
  217. // //生成canvas
  218. // var canvas = document.createElement('canvas');
  219. // var ctx = canvas.getContext('2d');
  220. // $(canvas).attr({
  221. // width: w,
  222. // height: h
  223. // });
  224. // ctx.drawImage(that, 0, 0, w, h);
  225. // var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。哎开心就好,开心就好
  226. // f1 = base64; // 把base64数据丢过去,上传要用。
  227. // setHtml(path, f1)
  228. // fileArr.push(f1);
  229. // if(imgUpLength==fileArr.length){
  230. // upFile()
  231. // }
  232. // }
  233. // }