patient-add-problem.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  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. <style>
  29. .ui-dialog-content{font-size: 16px;}
  30. .ax-popup .ui-dialog-footer button{color:#323232 !important;}
  31. .ax-popup .ui-dialog-footer button.ui-dialog-autofocus{color:#75BF00 !important;}
  32. </style>
  33. </head>
  34. <body>
  35. <!--<div class="h45">
  36. <div class="demo-comtop">
  37. <a class="mui-action-back"></a>
  38. <h1>添加问题</h1>
  39. </div>
  40. </div>-->
  41. <ul class="n-list c-border-tb mt10 doc-detail">
  42. <li class="list-arrow-d ptb12 ill-time1">
  43. <div class="n-list-key pr15 c-f15"><i class="required"></i>疾病社区</div>
  44. <div class="n-list-info c-t-right">
  45. <input id="txtDiseases" type="text" data-time="illTime1" class="r-input c-5b5b5b" value="" placeholder="请选择疾病类型" readonly/>
  46. <input id="txtDiseasesCode" type="text" style="display: none;"/>
  47. </div>
  48. </li>
  49. </ul>
  50. <ul class="n-list c-border-tb mt10 doc-detail">
  51. <li class="ptb12">
  52. <div class="n-list-key pr15 c-f17"><i class="required"></i>标题</div>
  53. </li>
  54. <li class="n-list-cover ptb12">
  55. <div class="n-list-info">
  56. <textarea id="txtTitle" class="r-textarea" rows="2" placeholder="请填写您的标题,(请至少输入5个字)。"></textarea>
  57. </div>
  58. </li>
  59. </ul>
  60. <ul class="n-list c-border-tb mt10 doc-detail">
  61. <li class="ptb12">
  62. <div class="n-list-key pr15 c-f17"><i class="required"></i>内容</div>
  63. </li>
  64. <li class="n-list-cover ptb12">
  65. <div class="n-list-info">
  66. <textarea id="txtContent" class="r-textarea" rows="4" placeholder="请填写内容,(请至少输入10个字)。"></textarea>
  67. </div>
  68. </li>
  69. </ul>
  70. <div class="mod mod-record mt15">
  71. <!--新增图片上传-->
  72. <ul class="n-list">
  73. <li class="ptb12">
  74. <div class="n-list-key pr15 c-f17">附件</div>
  75. <div class="n-list-info c-t-right">
  76. <p class="c-ccc c-f12 c-t-right img-count" id="image_tips">0/9</p>
  77. </div>
  78. </li>
  79. <li class="n-list-cover ptb12">
  80. <div class="upload-img mt10">
  81. <ul id="img_ul">
  82. <li id="add_img_li">
  83. <a href="javascript:;" class="add-btn" onclick="chooseImage()"></a>
  84. </li>
  85. </ul>
  86. </div>
  87. </li>
  88. </ul>
  89. </div>
  90. <div id="info" style="display:none;color: red;text-align: center"></div>
  91. <div id="info2" style="display:none;color: green;text-align: center"></div>
  92. <div class="mb15 mlr15 mt20">
  93. <a href="javascript:;" id="commit" class="c-btn c-btn-4dcd70 c-btn-full c-btn-radius c-f18">提交问题</a>
  94. </div>
  95. &nbsp;
  96. <script>
  97. var d = dialog({contentType:'load', skin:'bk-popup'});
  98. var dd = dialog({contentType:'load', skin:'bk-popup', content:'提交中...'});
  99. var Request = new Object();
  100. Request = GetRequest();
  101. var disease = Request["disease"];
  102. var diseaseName = Request["diseaseName"];
  103. $(function(){
  104. queryDisease();
  105. //从后台那边获取签名等信息
  106. var params = {};
  107. params.pageUrl = window.location.href;
  108. $.ajax(server + "weixin/getSign", {
  109. data: params,
  110. dataType: "json",
  111. type: "post",
  112. success: function(res){
  113. if (res.status == 200) {
  114. var t = res.data.timestamp;
  115. var noncestr = res.data.noncestr;
  116. var signature = res.data.signature;
  117. wx.config({
  118. // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  119. appId: appId, // 必填,公众号的唯一标识
  120. timestamp: t, // 必填,生成签名的时间戳
  121. nonceStr: noncestr, // 必填,生成签名的随机串
  122. signature: signature,// 必填,签名,见附录1
  123. jsApiList: [
  124. 'chooseImage',
  125. 'uploadImage'
  126. ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  127. });
  128. }
  129. else{
  130. dialog({
  131. skin:"ui-dialog ax-popup pror",
  132. content:"获取微信签名失败",
  133. ok: function (){},
  134. cancle:function(){}
  135. }).showModal();
  136. window.location.href = "online-consulting.html";
  137. }
  138. }
  139. });
  140. //提交咨询
  141. document.querySelector("#commit").addEventListener("tap", function() {
  142. var data = {};
  143. data.disease = disease==0?"":disease;//0为界面传入的全部
  144. data.diseaseName = decodeURI(diseaseName);
  145. if($("#txtTitle").val() == null)
  146. data.question = "";
  147. else
  148. data.question = utf16toEntities($("#txtTitle").val().replace(/\s+/g,""));
  149. if($("#txtContent").val() == null)
  150. data.content = "";
  151. else
  152. data.content = utf16toEntities($("#txtContent").val().replace(/\s+/g,""));
  153. if (validate(data)) {
  154. //验证通过执行
  155. dd.showModal();
  156. var images = getImages();
  157. if(images.length == 0){
  158. doSubmit(data);
  159. }
  160. else{
  161. uploadImage(data);
  162. }
  163. }
  164. });
  165. })
  166. //查询疾病类型
  167. function queryDisease(){
  168. d.show();
  169. var arr_key=['1', '2'];
  170. var arr_value=['高血压社区', '糖尿病社区'];
  171. $('li.ill-time1').mobiscroll({
  172. theme: 'ios',
  173. lang: 'zh',
  174. formatValue: function(d) {
  175. return d.join(',');
  176. },
  177. customWheels: true,
  178. wheels: [
  179. [{
  180. keys: arr_key,
  181. values: arr_value
  182. }]
  183. ],
  184. onSelect: function(valueText, inst) {
  185. var dd = eval("[" + valueText + "]");
  186. $('#txtDiseasesCode').val(dd[0].keys);
  187. $('input[data-time=illTime1]').val(dd[0].values);
  188. disease = dd[0].keys;
  189. diseaseName = dd[0].values;
  190. }
  191. });
  192. $('#txtDiseasesCode').val(disease);
  193. $('input[data-time=illTime1]').val(decodeURI(diseaseName));
  194. d.close();
  195. }
  196. function queryDiseaseFailed(res) {
  197. d.close();
  198. if (res && res.msg) {
  199. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  200. } else {
  201. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'疾病类型获取失败'}).show();
  202. }
  203. }
  204. function queryDiseaseSuccess(res) {
  205. if (res.status == 200) {} else {
  206. queryDiseaseFailed(res);
  207. }
  208. }
  209. //验证信息
  210. function validate(data) {
  211. if (data.disease == '') {
  212. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请选择疾病类型'}).show();
  213. return false;
  214. }
  215. if (data.question.length < 5) {
  216. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请至少用5个字描述您的标题'}).show();
  217. return false;
  218. }
  219. if (data.content.length < 10) {
  220. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请至少用10个字描述您的内容'}).show();
  221. return false;
  222. }
  223. if (data.question.length > 300) {
  224. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请用300字以内完成您的标题'}).show();
  225. return false;
  226. }
  227. if (data.content.length > 500) {
  228. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请在500字以内完成您的内容'}).show();
  229. return false;
  230. }
  231. return true;
  232. }
  233. //微信上传图片
  234. var serverId = "";
  235. function chooseImage(){
  236. wx.chooseImage({
  237. count: 9-getImages().length,
  238. success: function (res) {
  239. for (var i in res.localIds) {
  240. appendFile(res.localIds[i]);
  241. }
  242. }
  243. });
  244. }
  245. function uploadImage(data){
  246. var images = getImages();
  247. if (images.length == 0) {
  248. return;
  249. }
  250. var i = 0, length = images.length;
  251. serverId = "";
  252. function upload() {
  253. wx.uploadImage({
  254. localId: images[i],
  255. isShowProgressTips: 0,
  256. success: function (res) {
  257. i++;
  258. if(serverId.length == 0){
  259. serverId = res.serverId;
  260. }
  261. else{
  262. serverId =serverId + "," + res.serverId;
  263. }
  264. if (i < length) {
  265. upload();
  266. }
  267. if(i == images.length){
  268. doSubmit(data);
  269. }
  270. },
  271. fail: function (res) {
  272. alert(JSON.stringify(res));
  273. }
  274. });
  275. }
  276. upload();
  277. }
  278. // 添加文件
  279. function appendFile(p) {
  280. var amount = getImages().length;
  281. if (amount >= 8) {
  282. $("#add_img_li").hide();
  283. }
  284. if(amount < 9){
  285. 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>');
  286. var $add_img_li = $("#add_img_li");
  287. $add_img_li.before($li);
  288. $("#image_tips").text(getImages().length + "/9");
  289. }
  290. }
  291. //获取需要上传的图片
  292. function getImages() {
  293. var images = [];
  294. $("#img_ul").find("img").each(function() {
  295. var imgSrc = $(this).attr("data-src");
  296. images.push(imgSrc);
  297. });
  298. return images;
  299. }
  300. //查看图片
  301. function viewImg(dom) {
  302. var $img = $(dom);
  303. var thissrc = getImgUrl($img.attr("data-src"));
  304. var mWid = $(window).width();
  305. var mHei = $(window).height();
  306. 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>';
  307. $("body").append(nHtml);
  308. $(".delimgpop").click(function() {
  309. $(this).remove()
  310. });
  311. };
  312. //删除图片
  313. function delImg(dom) {
  314. var $li = $(dom).parent();
  315. $li.remove();
  316. $("#image_tips").text(getImages().length + "/9");
  317. var amount = getImages().length;
  318. if(amount <= 8){
  319. $("#add_img_li").show();
  320. }
  321. return;
  322. }
  323. //微信sdk配置出错
  324. wx.error(function (res) {
  325. alert("wx.error:" + res.errMsg);
  326. });
  327. //提交咨询
  328. function doSubmit(data) {
  329. data.mediaIds = serverId;
  330. sendPost('patient/consult/communication/add', data, 'json', 'post', submitFailed, submitSuccess);
  331. }
  332. function submitFailed(res) {
  333. dd.close();
  334. if (res && res.msg) {
  335. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  336. } else {
  337. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'提交失败'}).show();
  338. }
  339. }
  340. function submitSuccess(res) {
  341. if (res.status == 200) {
  342. dd.close();
  343. location.href = "disease-community.html?type=2";
  344. } else {
  345. submitFailed(res);
  346. }
  347. }
  348. </script>
  349. </body>
  350. </html>