addArticle.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. var uploadImages = [],//上传内容图片相关
  2. imgUrls = [],
  3. uploadSingleImg = [],//上传标题图片相关
  4. imgSingleUrl = [],
  5. $submit_btn = $("#submit_btn"),
  6. img_count = 0,
  7. img_counts = 0,
  8. hospitalName,//认证机构名称
  9. articleId,//文章Id,放空位新增,不为空时为编辑
  10. articleTitle,//
  11. articlelevel,//文章级别
  12. secondLevelCategoryId,//文章二级分类id
  13. secondLevelCategoryName,//文章二级分类名称
  14. firstLevelCategoryId,//文章一级分类id
  15. firstLevelCategoryName,//文章一级分类名称
  16. content,//文章内容
  17. imageUrl,//文章封面图片地址
  18. userScope,//使用范围(1、全市使用,2、全区使用,3、全社区使用)
  19. currentUserRole;//如果是管理员则传入管理员的userrole里的code,如果是普通医生,则传入医生所属社区的CODE
  20. mui.plusReady(function() {
  21. var self = plus.webview.currentWebview();
  22. firstLevelCategoryId = self.firstLevelCategoryId;
  23. currentUserRole = self.currentUserRole;
  24. hospitalName = self.hospitalName;
  25. $('#hospitalName').text(hospitalName);
  26. setHealthCategory();
  27. bindEvents();
  28. })
  29. /**
  30. * 获取健康类别下的所有二级分类
  31. */
  32. function setHealthCategory() {
  33. var secondLevelCategoryIdArr = [];
  34. var secondLevelCategoryNameArr = [];
  35. sendPost("/third/jkEdu/Article/getCategoryByName",{name:'健康文章'}, null, function(res){
  36. if(res.status == 200){
  37. var healthList = res.data.list;
  38. firstLevelCategoryId = res.data.cid;
  39. for(var i = 0; i < healthList.length; i++){
  40. secondLevelCategoryIdArr.push(res.data.list[i].categoryid);
  41. secondLevelCategoryNameArr.push(res.data.list[i].categoryname);
  42. }
  43. activHealthCategory(secondLevelCategoryIdArr, secondLevelCategoryNameArr);
  44. }
  45. },'get')
  46. }
  47. /**
  48. * 设置健康类别下的所有二级分类下拉框
  49. */
  50. function activHealthCategory(secondLevelCategoryIdArr, secondLevelCategoryNameArr) {
  51. $('#li_expenses').mobiscroll({
  52. theme: 'ios',
  53. lang: 'zh',
  54. customWheels: true,
  55. wheels: [
  56. [{
  57. keys: secondLevelCategoryIdArr,
  58. values: secondLevelCategoryNameArr
  59. }]
  60. ],
  61. onSelect: function(valueText, inst) {
  62. var dd = eval("[" + valueText + "]");
  63. $(this).val(dd[0].values).attr("secondCategory-code", dd[0].keys);
  64. $(this).val(dd[0].values).attr("firstCategory-code", firstLevelCategoryId);
  65. }
  66. }
  67. )}
  68. //
  69. function getPhotos(url){
  70. uploadImages.push(url);
  71. fillImages(url);
  72. }
  73. function fillImages(url){
  74. img_counts ++;
  75. $("#imgCount").html(img_counts);
  76. var html = '<div class="add-img2"><img class="uploads_img" src="'+url+'" width="50" height="50">'+
  77. '<div class="delete-icons"><img src="../images/delete_icon.png" width="18"></div></div>';
  78. $("#add_picMul").append(html);
  79. }
  80. function getPhoto(url){
  81. uploadSingleImg.push(url);
  82. fillImage(url);
  83. }
  84. function fillImage(url){
  85. img_count ++;
  86. var html = '<div class="ui-col-0 add-img2"><img class="upload_img" src="'+url+'" width="50" height="50">'+
  87. '<div class="delete-icon"><img src="../images/delete_icon.png" width="18"></div></div>';
  88. $("#img_wrap").before(html);
  89. }
  90. //上传标题图片
  91. var upload_count = 0;
  92. function uploadImg(cb){
  93. var len = uploadSingleImg.length;
  94. if(upload_count < len){
  95. var task = plus.uploader.createUpload(server + "/upload/image", {
  96. method: "post"
  97. }, function(t, sta) {
  98. if(sta == 200) {
  99. var msg = t.responseText;
  100. var oImg = JSON.parse(msg);
  101. var imgUrl = oImg.urls;
  102. var re = new RegExp("\\\\", "g");
  103. imgUrl = imgUrl.replace(re, "/");
  104. imgSingleUrl.push(imgUrl);
  105. uploadImg(cb);
  106. } else {
  107. mui.toast("上传图片失败!");
  108. plus.nativeUI.closeWaiting();
  109. }
  110. });
  111. var url = uploadSingleImg[upload_count];
  112. upload_count ++;
  113. task.addFile(url, {});
  114. task.start();
  115. }else{
  116. cb();
  117. }
  118. }
  119. var upload_countReal = 0;
  120. function uploadImgs(cb){
  121. var len = uploadImages.length;
  122. if(upload_countReal < len){
  123. var task = plus.uploader.createUpload(server + "/upload/fastDFSImag", {
  124. method: "post"
  125. }, function(t, sta) {
  126. if(sta == 200) {
  127. var msg = t.responseText;
  128. var oImg = JSON.parse(msg);
  129. if(oImg.status == 200) {
  130. imgUrls.push(oImg.data);
  131. uploadImgs(cb);
  132. } else {
  133. mui.toast("上传内容图片失败!");
  134. plus.nativeUI.closeWaiting();
  135. upload_countReal = 0;
  136. return false;
  137. }
  138. } else {
  139. mui.toast("上传内容图片失败!");
  140. plus.nativeUI.closeWaiting();
  141. upload_countReal = 0;
  142. return false;
  143. }
  144. });
  145. var url = uploadImages[upload_countReal];
  146. upload_countReal ++;
  147. task.addFile(url, {key: "file"});
  148. task.start();
  149. } else {
  150. cb();
  151. }
  152. }
  153. function bindEvents(){
  154. //输入框内容限制
  155. $("#title").on('keyup', function(){
  156. var text = $(this).val();
  157. });
  158. $("#addContentImg").on('click', function(){
  159. if(img_counts < 9){
  160. getAutoRecCompressImageLocalPath(getPhotos,9-img_counts,9);
  161. }else{
  162. dialog({
  163. contentType: 'tipsbox',
  164. skin: 'bk-popup',
  165. content: '最多只能上传9张图片',
  166. closeTime: 2000
  167. }).showModal();
  168. }
  169. });
  170. $("#addCoverImg").on('click', function(){
  171. if(img_count < 1){
  172. getAutoRecCompressImageLocalPath(getPhoto,1-img_count,1);
  173. }else{
  174. dialog({
  175. contentType: 'tipsbox',
  176. skin: 'bk-popup',
  177. content: '最多只能上传1张封面',
  178. closeTime: 2000
  179. }).showModal();
  180. }
  181. });
  182. //图片删除功能
  183. $(document).on('click', '.delete-icon', function(e){
  184. e.stopPropagation();
  185. var $this = $(this);
  186. //获得图片路径
  187. var url = $this.parent().find(".upload_img").attr("src");
  188. for(var j=0; j<uploadSingleImg.length; j++){
  189. if(uploadSingleImg[j] == url){
  190. uploadSingleImg.splice(j, 1);
  191. img_count --;
  192. break;
  193. }
  194. }
  195. $this.parent().remove();
  196. });
  197. //图片删除功能
  198. $(document).on('click', '.delete-icons', function(e){
  199. e.stopPropagation();
  200. var $this = $(this);
  201. //获得图片路径
  202. var urls = $this.parent().find(".uploads_img").attr("src");
  203. var count = parseInt($("#imgCount").text());
  204. for(var j=0; j<uploadImages.length; j++){
  205. if(uploadImages[j] == urls){
  206. uploadImages.splice(j, 1);
  207. count --;
  208. $("#imgCount").text(count);
  209. break;
  210. }
  211. }
  212. img_counts --;
  213. $("#imgCount").html(img_counts);
  214. $this.parent().remove();
  215. });
  216. //action 按钮
  217. $("#submit_btn").on('click', function(){
  218. articleTitle = $.trim($("#title").val());
  219. secondLevelCategoryId = $("#li_expenses").attr('secondCategory-code');
  220. secondLevelCategoryName = $.trim($("#li_expenses").val());
  221. content = $.trim($('#content').html());
  222. userScope = $.trim($("input[type='radio']:checked").val());
  223. if(articleTitle){
  224. if(secondLevelCategoryName){
  225. if(content){
  226. if(userScope){
  227. plus.nativeUI.showWaiting();
  228. // 内容图上传
  229. uploadImgs(function() {
  230. var params = {};
  231. params.content = content;//文章内容
  232. for(var i = 0, len = imgUrls.length; i < len; i++) {
  233. params.content += '<img style="display: block; max-width: 100%;" alt="内容图" src="' + imgUrls[i] + '"/>'
  234. }
  235. //先将新增的图片上传然后再处理其他业务
  236. params.articleTitle = articleTitle; //文章标题
  237. params.secondLevelCategoryId = secondLevelCategoryId;//文章二级分类id
  238. params.secondLevelCategoryName = secondLevelCategoryName;//文章二级分类名称
  239. params.firstLevelCategoryId = firstLevelCategoryId;//文章一级分类id
  240. params.firstLevelCategoryName = '健康文章';//文章一级分类名称
  241. // params.imageUrl = imageUrl;//文章封面图片地址
  242. params.articlelevel = 3;//文章级别
  243. params.userScope = userScope;//使用范围(1、全市使用,2、全区使用,3、全社区使用)
  244. params.currentUserRole = currentUserRole;//如果是管理员则传入管理员的userrole里的code,如果是普通医生,则传入医生所属社区的CODE
  245. params.currentUserRoleLevel = 4;
  246. params.roleType = 1;//1、普通医生,2、管理员
  247. // 封面图
  248. uploadImg(function(){
  249. params.imageUrl = imgSingleUrl ? imgSingleUrl.join(","): "";
  250. sendPost("/doctor/jkEdu/article/PC/saveArticle", params, null, function(res){
  251. if(res.status == 200){
  252. mui.toast('新增文章成功');
  253. setTimeout(function() {
  254. var view = plus.webview.getWebviewById("myArticle");
  255. if(view){
  256. mui.fire(view,"reloadPage");
  257. }
  258. mui.back();
  259. }, 1000)
  260. } else {
  261. mui.toast(res.msg);
  262. }
  263. plus.nativeUI.closeWaiting();
  264. }, 'POST', '', true);
  265. })
  266. });
  267. } else {
  268. mui.toast('使用范围不能为空');
  269. return false;
  270. }
  271. } else {
  272. mui.toast('内容不能为空');
  273. return false;
  274. }
  275. } else {
  276. mui.toast('分类不能为空');
  277. return false;
  278. }
  279. } else {
  280. mui.toast('文章标题不能为空');
  281. return false;
  282. }
  283. })
  284. // 预览功能
  285. $('.preview').on('tap',function(){
  286. articleTitle = $.trim($("#title").val()),
  287. secondLevelCategoryId = $("#li_expenses").attr('secondCategory-code');
  288. secondLevelCategoryName = $.trim($("#li_expenses").val());
  289. content = $.trim($('#content').html());
  290. userScope = $.trim($("input[type='radio']:checked").val());
  291. if(articleTitle){
  292. if(secondLevelCategoryName){
  293. if(content){
  294. if(userScope){
  295. mui.openWindow({
  296. id: "preview",
  297. url: "preview.html",
  298. extras: {
  299. articleTitle:articleTitle,
  300. secondLevelCategoryName:secondLevelCategoryName,
  301. imgCover:uploadSingleImg,//封面图
  302. content:content,//内容
  303. imgContent:uploadImages,//内容图
  304. userScope:userScope//使用范围
  305. }
  306. })
  307. }else{
  308. mui.toast('使用范围不能为空');
  309. return false;
  310. }
  311. }else{
  312. mui.toast('内容不能为空');
  313. return false;
  314. }
  315. }else{
  316. mui.toast('分类不能为空');
  317. return false;
  318. }
  319. }else{
  320. mui.toast('文章标题不能为空');
  321. return false;
  322. }
  323. })
  324. }