patients-consult-reply.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>添加病友圈回复</title>
  6. <meta name="format-detection" content="telephone=no"/>
  7. <meta name="viewport"
  8. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
  9. <meta name="apple-mobile-web-app-capable" content="yes"/>
  10. <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
  11. <link rel="stylesheet" href="../../../css/cross.css" type="text/css"/>
  12. <link rel="stylesheet" href="../../../css/cross.ui.css" type="text/css"/>
  13. <link rel="stylesheet" type="text/css" href="../../../iconfont/iconfont.css" />
  14. <link rel="stylesheet" type="text/css" href="../../../css/ss-style.css">
  15. <link rel="stylesheet" type="text/css" href="../css/zx-style.css">
  16. <script type="text/javascript" src="../../../js/jquery/2.1.3/jquery.js"></script>
  17. <script src="../js/ui_search_one.js"></script>
  18. <link rel="stylesheet" type="text/css" href="../../../widget/mobiscroll/2.15.1/css/mobiscroll.css">
  19. <script src="../../../widget/mobiscroll/2.15.1/js/mobiscroll.js"></script>
  20. <script src="../../../js/mui.min.js"></script>
  21. <script src="../../../js/app.js"></script>
  22. <script src="../../../js/common_http.js"></script>
  23. <script type="text/javascript" src="../../../js/weixin_common.js" ></script>
  24. <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  25. <link rel="stylesheet" type="text/css" href="../../../widget/artDialog/6.0.5/css/ui-dialog.min.css">
  26. <script src="../../../widget/artDialog/6.0.5/js/dialog-plus.min.js"></script>
  27. <script type="text/javascript" src="../../../js/commit_validate.js" ></script>
  28. </head>
  29. <body>
  30. <!--<div class="h45">
  31. <div class="demo-comtop">
  32. <a class="mui-action-back"></a>
  33. <h1>添加问题</h1>
  34. </div>
  35. </div>-->
  36. <ul class="n-list c-border-tb mt10 doc-detail">
  37. <li class="ptb12">
  38. <div class="n-list-key pr15 c-f17"><i class="required"></i>回复内容</div>
  39. </li>
  40. <li class="n-list-cover ptb12">
  41. <div class="n-list-info">
  42. <textarea id="txtContent" class="r-textarea" rows="4" placeholder="请填写您的回复内容,(请至少输入10个字)。"></textarea>
  43. </div>
  44. </li>
  45. </ul>
  46. <div class="mod mod-record mt15">
  47. <!--新增图片上传-->
  48. <ul class="n-list">
  49. <li class="ptb12">
  50. <div class="n-list-key pr15 c-f17">上传报告、照片</div>
  51. <div class="n-list-info c-t-right">
  52. <p class="c-ccc c-f12 c-t-right img-count" id="image_tips">0/9</p>
  53. </div>
  54. </li>
  55. <li class="n-list-cover ptb12">
  56. <div class="upload-img mt10">
  57. <ul id="img_ul">
  58. <li id="add_img_li">
  59. <a href="javascript:;" class="add-btn" onclick="chooseImage()"></a>
  60. </li>
  61. </ul>
  62. </div>
  63. </li>
  64. </ul>
  65. </div>
  66. <div id="info" style="display:none;color: red;text-align: center"></div>
  67. <div id="info2" style="display:none;color: green;text-align: center"></div>
  68. <div class="mb15 mlr15 mt20">
  69. <a href="javascript:;" id="commit" class="c-btn c-btn-4dcd70 c-btn-full c-btn-radius c-f18">提交回复</a>
  70. </div>
  71. &nbsp;
  72. <script>
  73. var dd = dialog({contentType:'load', skin:'bk-popup', content:'提交中...'});
  74. var Request = new Object();
  75. Request = GetRequest();
  76. var code = Request["code"];
  77. $(function(){
  78. //从后台那边获取签名等信息
  79. var params = {};
  80. params.pageUrl = server + "wx/html/zxwz/html/patients-consult-reply.html?code=" + code;
  81. $.ajax(server + "weixin/getSign", {
  82. data: params,
  83. dataType: "json",
  84. type: "post",
  85. success: function(res){
  86. if (res.status == 200) {
  87. var t = res.data.timestamp;
  88. var noncestr = res.data.noncestr;
  89. var signature = res.data.signature;
  90. wx.config({
  91. // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  92. appId: appId, // 必填,公众号的唯一标识
  93. timestamp: t, // 必填,生成签名的时间戳
  94. nonceStr: noncestr, // 必填,生成签名的随机串
  95. signature: signature,// 必填,签名,见附录1
  96. jsApiList: [
  97. 'chooseImage',
  98. 'uploadImage'
  99. ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  100. });
  101. }
  102. else{
  103. dialog({
  104. title:'提示',
  105. skin:"ui-dialog ax-popup pror",
  106. content:"获取微信签名失败",
  107. ok: function (){}
  108. }).showModal();
  109. window.location.href = "online-consulting.html";
  110. }
  111. }
  112. });
  113. //提交咨询
  114. document.querySelector("#commit").addEventListener("tap", function() {
  115. var data = {};
  116. data.consult = code;
  117. data.content = utf16toEntities($("#txtContent").val());
  118. if (validate(data)) {
  119. //验证通过执行
  120. dd.showModal();
  121. var images = getImages();
  122. if(images.length == 0){
  123. doSubmit(data);
  124. }
  125. else{
  126. uploadImage(data);
  127. }
  128. }
  129. });
  130. })
  131. //验证信息
  132. function validate(data) {
  133. if (data.content == '') {
  134. dialog({contentType:'tipsbox', skin:'bk-popup' , content:'请描述您的回复内容'}).show();
  135. return false;
  136. }
  137. if (data.content.length > 500) {
  138. dialog({contentType:'tipsbox', skin:'bk-popup' , content:'请用500字以内完成您的回复'}).show();
  139. return false;
  140. }
  141. if(data.content.length<10){
  142. dialog({contentType:'tipsbox', skin:'bk-popup' , content:'回复内容不能少于10个字'}).show();
  143. return false;
  144. }
  145. return true;
  146. }
  147. //微信上传图片
  148. var serverId = "";
  149. function chooseImage(){
  150. wx.chooseImage({
  151. count: 9-getImages().length,
  152. success: function (res) {
  153. for (var i in res.localIds) {
  154. appendFile(res.localIds[i]);
  155. }
  156. }
  157. });
  158. }
  159. function uploadImage(data){
  160. var images = getImages();
  161. if (images.length == 0) {
  162. return;
  163. }
  164. var i = 0, length = images.length;
  165. serverId = "";
  166. function upload() {
  167. wx.uploadImage({
  168. localId: images[i],
  169. isShowProgressTips: 0,
  170. success: function (res) {
  171. i++;
  172. if(serverId.length == 0){
  173. serverId = res.serverId;
  174. }
  175. else{
  176. serverId =serverId + "," + res.serverId;
  177. }
  178. if (i < length) {
  179. upload();
  180. }
  181. if(i == images.length){
  182. doSubmit(data);
  183. }
  184. },
  185. fail: function (res) {
  186. alert(JSON.stringify(res));
  187. }
  188. });
  189. }
  190. upload();
  191. }
  192. // 添加文件
  193. function appendFile(p) {
  194. var amount = getImages().length;
  195. if (amount >= 8) {
  196. $("#add_img_li").hide();
  197. }
  198. if(amount < 9){
  199. var $li = $('<li>' + ' <img src="' + p + '" data-src="' + p + '" onclick="viewImg(this)">' + ' <a href="javascript:;" class="del-img" onclick="delImg(this)"><i class="iconfont icon-laji"></i></a>' + '</li>');
  200. var $add_img_li = $("#add_img_li");
  201. $add_img_li.before($li);
  202. $("#image_tips").text(getImages().length + "/9");
  203. }
  204. }
  205. //获取需要上传的图片
  206. function getImages() {
  207. var images = [];
  208. $("#img_ul").find("img").each(function() {
  209. var imgSrc = $(this).attr("data-src");
  210. images.push(imgSrc);
  211. });
  212. return images;
  213. }
  214. //查看图片
  215. function viewImg(dom) {
  216. var $img = $(dom);
  217. var thissrc = $img.attr("data-src");
  218. var mWid = $(window).width();
  219. var mHei = $(window).height();
  220. var nHtml = '<div class="delimgpop"><div class="del-img-box"><div class="del-img-con"><img class="del-pop-img" src="' + thissrc + '" style="max-width:' + mWid + 'px; max-height:' + mHei + 'px;"></div></div></div>';
  221. $("body").append(nHtml);
  222. $(".delimgpop").click(function() {
  223. $(this).remove()
  224. });
  225. };
  226. //删除图片
  227. function delImg(dom) {
  228. var $li = $(dom).parent();
  229. $li.remove();
  230. $("#image_tips").text(getImages().length + "/9");
  231. var amount = getImages().length;
  232. if(amount <= 8){
  233. $("#add_img_li").show();
  234. }
  235. return;
  236. }
  237. //微信sdk配置出错
  238. wx.error(function (res) {
  239. alert("wx.error:" + res.errMsg);
  240. });
  241. //提交咨询
  242. function doSubmit(data) {
  243. data.mediaIds = serverId;
  244. sendPost('patient/consult/communication/reply', data, 'json', 'post', submitFailed, submitSuccess);
  245. }
  246. function submitFailed(res) {
  247. dd.close();
  248. if (res && res.msg) {
  249. dialog({contentType:'tipsbox', skin:'bk-popup' , content:res.msg}).show();
  250. } else {
  251. dialog({contentType:'tipsbox', skin:'bk-popup' , content:'提交失败'}).show();
  252. }
  253. }
  254. function submitSuccess(res) {
  255. if (res.status == 200) {
  256. dd.close();
  257. window.history.go(-1);
  258. //window.location.href = "patients-consult-detail.html?code=" + code;
  259. } else {
  260. submitFailed(res);
  261. }
  262. }
  263. </script>
  264. </body>
  265. </html>