disease-label-edit.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>病种列表</title>
  6. <meta name="author" content="yihu.com" />
  7. <meta name="format-detection" content="telephone=no" />
  8. <meta name="viewport" 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="../../../common/iconfont/iconfont.css" />
  12. <link rel="stylesheet" href="../../../common/cross/css/cross.min.css" />
  13. <link rel="stylesheet" type="text/css" href="../../../common/cross/css/cross.ui.css" />
  14. <link rel="stylesheet" href="../../../common/cross/css/ui.all.min.css" />
  15. <link rel="stylesheet" type="text/css" href="../../../common/css/ss-doctor.css">
  16. <link rel="stylesheet" type="text/css" href="../css/disease.css">
  17. </head>
  18. <body>
  19. <div class="h45">
  20. <div class="demo-comtop">
  21. <a class="mui-action-back"></a>
  22. <h1>选择标签</h1>
  23. <a href="javascript:void(0);" class="btntrue c-ccc">保存</a>
  24. </div>
  25. </div>
  26. <ul class="c-list msg-list" id='disease-box1'>
  27. <li class="mb15 c-head">
  28. <div><i class="other-icon"></i><span>服务类型</span></div>
  29. </li>
  30. <!-- <li class="c-list-add">
  31. <div><span id='add-span'>添加标签</span><input maxlength="6" class="add-input" id='labelinput' type="input"/></div>
  32. </li> -->
  33. </ul>
  34. <ul class="c-list msg-list" id='disease-box4'>
  35. <li class="mb15 c-head">
  36. <div><i class="other-icon"></i><span>自定义标签</span></div>
  37. </li>
  38. <!-- <li class="c-list-add">
  39. <div><span id='add-span'>添加标签</span><input maxlength="6" class="add-input" id='labelinput' type="input"/></div>
  40. </li> -->
  41. </ul>
  42. <ul class="c-list msg-list" id='disease-box3'>
  43. <li class="mb15 c-head">
  44. <div><i class="disease-icon"></i><span>疾病类型</span></div>
  45. </li>
  46. </ul>
  47. <script src="../../../js/mui.min.js" type="text/javascript" charset="utf-8"></script>
  48. <script src="../../../js/app.js" type="text/javascript" charset="utf-8"></script>
  49. <script src="../../../js/common_http.js" type="text/javascript" charset="utf-8"></script>
  50. <script src="../../../js/jquery/2.1.3/jquery.js" type="text/javascript" charset="utf-8"></script>
  51. <script src="../../../js/underscore.js"></script>
  52. <script src="../../../js/es6-promise.js"></script>
  53. <script>
  54. mui.init({
  55. beforeback: function() {
  56. if(!$(".btntrue").hasClass("c-ccc")){
  57. mui.confirm("您有未保存的变动,是否保存?", "提示", ["保存", "不了,谢谢"], function(e) {
  58. if(e.index == 0) {
  59. saveData();
  60. } else {
  61. plus.webview.currentWebview().close();
  62. }
  63. })
  64. return false;
  65. }
  66. }
  67. });
  68. $(function(){
  69. $("#add-span").bind("click",function(){
  70. $(this).hide();
  71. $("#labelinput").show();
  72. $("#labelinput").focus();
  73. })
  74. $("#labelinput").bind("blur",function(){
  75. var val = $(this).val();
  76. if(val.trim()==""){
  77. $("#add-span").show();
  78. $("#labelinput").hide();
  79. return;
  80. }
  81. });
  82. $("#disease-box4").on("click",".c-list-li",function(){
  83. if(!$(this).hasClass('cant-active')){
  84. if($(this).hasClass("active-icon")){
  85. $(this).removeClass("active-icon");
  86. $(this).addClass("no-active");
  87. }else{
  88. $(this).removeClass("no-active");
  89. $(this).addClass("active-icon");
  90. }
  91. }
  92. })
  93. $("#disease-box1").on("click",".c-list-li",function(){
  94. if(!$(this).hasClass('cant-active')){
  95. var active1=false;
  96. if($(this).hasClass("active-icon")){
  97. active1=true
  98. }
  99. $("#disease-box1 .c-list-li").removeClass("active-icon").addClass("no-active");
  100. if(!active1){
  101. $(this).addClass("active-icon").removeClass("no-active");
  102. }
  103. }
  104. })
  105. $("#disease-box3").on("click",".c-list-li",function(){
  106. if(!$(this).hasClass('cant-active')){
  107. if($(this).attr('data-noselect') == 'true'){
  108. mui.toast("该疾病类型不能取消!");
  109. return false;
  110. }
  111. if($(this).hasClass("active-icon")){
  112. $(this).removeClass("active-icon");
  113. $(this).addClass("no-active");
  114. }else{
  115. $(this).removeClass("no-active");
  116. $(this).addClass("active-icon");
  117. }
  118. }
  119. changeLabelState3()
  120. })
  121. $("#disease-box2").on("click",".c-list-li",function(){
  122. _this = this;
  123. if(!$(this).hasClass('cant-active')){
  124. $("#disease-box2 .c-list-li").each(function(){
  125. if(_this!=this && !$(this).hasClass('cant-active')){
  126. $(this).removeClass("active-icon");
  127. $(this).addClass("no-active");
  128. }
  129. })
  130. if($(this).hasClass("active-icon")){
  131. $(this).removeClass("active-icon");
  132. $(this).addClass("no-active");
  133. }else{
  134. $(this).removeClass("no-active");
  135. $(this).addClass("active-icon");
  136. }
  137. }
  138. changeLabelState2($(this).index())
  139. })
  140. $(".demo-comtop").on("tap",".btntrue:not(.c-ccc)",function(){
  141. $(this).addClass('c-ccc');
  142. plus.nativeUI.showWaiting();
  143. saveData();
  144. })
  145. //控制标签显示
  146. function changeLabelState2(num){
  147. if(num == 1){
  148. $("#disease-box3").find(".c-list-li").addClass('cant-active');
  149. }else{
  150. $("#disease-box3").find(".c-list-li").removeClass('cant-active');
  151. }
  152. }
  153. function changeLabelState3(){
  154. var that = $("#disease-box3").find('li.active-icon').length;
  155. if(that>0){
  156. $("#disease-box2").find(".c-list-li").eq(0).addClass('cant-active');
  157. }else{
  158. $("#disease-box2").find(".c-list-li").eq(0).removeClass('cant-active');
  159. }
  160. }
  161. })
  162. function saveData(){
  163. var health = [];//服务类型
  164. var disease=[];
  165. var custom =[];
  166. var diseaseName = [];
  167. $("#disease-box1 .active-icon").each(function(){
  168. var val = $(this).attr("data-code");
  169. health.push(val);
  170. diseaseName.push($(this).attr("data-name"));
  171. });
  172. $("#disease-box3 .active-icon").each(function(){
  173. var val = $(this).attr("data-code");
  174. disease.push(val);
  175. diseaseName.push($(this).attr("data-name"));
  176. });
  177. $("#disease-box4 .active-icon").each(function(){
  178. var val = $(this).attr("data-code");
  179. custom.push(val);
  180. diseaseName.push($(this).attr("data-name"));
  181. });
  182. // if(health.length<=0){
  183. // mui.toast("请选择患者健康情况!");
  184. // plus.nativeUI.closeWaiting();
  185. // $(".btntrue").removeClass('c-ccc');
  186. // return false;
  187. // }
  188. //保存服务类型
  189. sendPost("doctor/sign/updateSignServerByCode",
  190. {signCode:signCode, sevId:serviceCode},null,
  191. function(res){
  192. if(res.status == 200){
  193. }else{
  194. mui.toast('服务类型保存失败');
  195. }
  196. },'POST','',true);
  197. var params = {};
  198. params.health = health.join(",");
  199. params.disease = disease.join(",");
  200. params.custom = custom.join(",");
  201. params.patient = patientCode;
  202. console.error(JSON.stringify(params))
  203. sendPost("doctor/patient_label_info/patient_label_update",params,addPatientLabelErr,function(res){
  204. if(res.status==200){
  205. mui.toast('保存成功');
  206. refreshHz();
  207. setTimeout(function(){
  208. $(".btntrue").removeClass('c-ccc');
  209. plus.nativeUI.closeWaiting();
  210. var xxWv = plus.webview.getWebviewById(viewId);
  211. if(xxWv) {
  212. if(viewId == 'huanzhexinxi.html' || 'huanzhexinxi'){
  213. mui.fire(xxWv, "setDiseaseTypes", {
  214. names: diseaseName.join(","),
  215. disease: disease.join(",")
  216. });
  217. }else{
  218. mui.fire(xxWv, "refresh");
  219. }
  220. plus.webview.currentWebview().close();
  221. xxWv.show();
  222. }
  223. },1000)
  224. }else{
  225. plus.nativeUI.closeWaiting();
  226. $(".btntrue").removeClass('c-ccc');
  227. addPatientLabelErr(res);
  228. }
  229. })
  230. }
  231. var teamCodes,
  232. viewId,
  233. serviceCode,
  234. isChange,
  235. signCode,
  236. patientCode;
  237. mui.plusReady(function() {
  238. plus.nativeUI.showWaiting();
  239. var self = plus.webview.currentWebview();
  240. patientCode = self.patientCode;//获取界面CODE
  241. viewId = self.viewId;
  242. serviceCode = self.serviceCode;
  243. signCode = self.signCode;
  244. isChange = self.isChange;
  245. init();
  246. })
  247. //获取病人所有标签信息
  248. // function getPatientAllLabels(){
  249. // sendPost("/",
  250. // {patient: patiCode}, null,
  251. // function(res){
  252. // console.log(res)
  253. // if(res.status == 200){
  254. // if(res.data){
  255. // var str = ''
  256. // res.data.map(function(v,i){
  257. // str+=v.labelName;
  258. // if(i+1 != res.data.length)str+=','
  259. // })
  260. // $('#diseases').html(str)
  261. // }
  262. // } else {
  263. // mui.toast("获取标签情况失败");
  264. // }
  265. // },'POST','',true);
  266. // }
  267. var activeArr =[];//选中的标签
  268. function init(){
  269. var docInfo = JSON.parse(plus.storage.getItem("docInfo"));
  270. promise = getReqPromises([{url:"/doctor/patient_label/labels_by_type",data:{labelType:2}},
  271. {url:"/doctor/patient_label/labels_by_type",data:{labelType:3}},
  272. {url:"/doctor/patient_label/labels_by_type",data:{labelType:4,teamCode:docInfo.adminTeamCode}},
  273. {url:"/doctor/patient_label/patientAllLabels",data:{patient:patientCode}}, //获取选中的标签
  274. {url:"/wlyygc/doctor/label/labels", reqType: "get" ,data:{labelType:1}},//服务类型
  275. ])
  276. return promise.then(function(datas){
  277. var data0 = datas[0],
  278. data1 = datas[1],
  279. data2 = datas[2];
  280. activeArr = datas[3].data
  281. initData(2,data0);
  282. initData(3,data1);
  283. initData(4,data2);
  284. serviceTypeData(datas[4])
  285. console.error(activeArr.length+JSON.stringify(activeArr))
  286. setTimeout(function(){
  287. isValueChange();
  288. },1000)
  289. plus.nativeUI.closeWaiting();
  290. });
  291. }
  292. function initData(type,res){
  293. // if(type == 4){
  294. // if(res.status==200){
  295. // res.data = res.data.map(function(v){
  296. // v.labelCode = v.label;
  297. // return v
  298. // })
  299. // if(res.data.length>0)
  300. // appendLabel(res.data);
  301. // }else{
  302. // queryFailed(res);
  303. // }
  304. // } else
  305. querySuccess(res);
  306. }
  307. function serviceTypeData(res){
  308. var labelhtml ="";
  309. if(res.status==10000){
  310. var data = res.result;
  311. for(var j in data){
  312. var disabled = "no-active";
  313. var noselect = "";
  314. var isExit=false;
  315. activeArr.map(function(v){
  316. console.error("v.label:"+v.label)
  317. console.error("data[j].code:"+data[j].code)
  318. if(v.label == data[j].code && v.labelType=='1')isExit =true;
  319. })
  320. if(isExit)disabled = "active-icon" //本来就有的默认高亮
  321. labelhtml +='<li id="'+data[j].code+'" data-code="'+data[j].code+'" data-name="'+data[j].name+'" data-noselect="' + noselect + '" class="c-list-li '+disabled+'">'+
  322. '<div><span >'+data[j].name+'</span></div>'+
  323. '</li>'
  324. }
  325. $("#disease-box1").append(labelhtml);
  326. }
  327. }
  328. function initPatientData(type){
  329. sendPost("/doctor/patient_label_info/patient_label",{labelType:type,patient:patientCode},queryFailed,function(res){
  330. if(res.status==200){
  331. for(var j=0;j<res.data.length;j++){
  332. $('#disease-box'+type+' li[data-code="'+ res.data[j].label +'"]').removeClass("no-active").addClass("active-icon");
  333. }
  334. //有疾病标签就没有健康人群
  335. if(type == 3){
  336. if(res.data.length>0){
  337. $("#disease-box2").find(".c-list-li").eq(0).addClass('cant-active');
  338. }
  339. }
  340. if(type == 2){
  341. if(res.data[0].label == 1){
  342. $("#disease-box3").find(".c-list-li").addClass('cant-active');
  343. }
  344. }
  345. }
  346. })
  347. }
  348. function querySuccess(res){
  349. if(res.status==200){
  350. if(res.data&&res.data.length>0){
  351. appendLabel(res.data);
  352. }
  353. }else{
  354. queryFailed(res);
  355. }
  356. }
  357. function addLabelSuc(res){
  358. if(res.status==200){
  359. if(res.data && res.data.length){
  360. var codes = [];
  361. var name = "";
  362. for(var k in res.data){
  363. name = res.data[k].labelName;
  364. codes.push(res.data[k].labelCode);
  365. }
  366. $("#add-span").show();
  367. $("#labelinput").hide();
  368. $("#labelinput").val("");
  369. $(".c-list-add").before('<li data-code=",'+codes.join(',')+'," class=\"c-list-li active-icon\"><div><span>'+name+'</span></div></li>');
  370. } else
  371. addLabelErr(res);
  372. }else{
  373. addLabelErr(res);
  374. }
  375. }
  376. function appendLabel(data){
  377. var labelhtml ="",
  378. labelType = data[0].labelType;
  379. var serArr = serviceCode.split(',');
  380. var diseaseServiceCode = ["4","5","10","11","12"]; //患病的人群的服务类型
  381. for(var j in data){
  382. //根据服务类型判断标签显示的样子
  383. var disabled = "no-active";
  384. var noselect = "";
  385. if(isChange){
  386. $.map(serArr,function(item,index){
  387. var item = item.trim();
  388. if(diseaseServiceCode.indexOf(item) > -1){
  389. //健康情况的健康人群置为不可选
  390. (labelType == 2) && (data[j].labelCode == 1) && (disabled = "cant-active");
  391. //针对不同服务类型,对应的疾病类型选中不可修改
  392. if(labelType == 3){
  393. //高血压
  394. (item == "4") && (data[j].labelCode == 1) &&(disabled = "active-icon") &&(noselect = "true");
  395. //糖尿病
  396. (item == "5") && (data[j].labelCode == 2) &&(disabled = "active-icon") &&(noselect = "true");
  397. //重性精神病
  398. (item == "10") && (data[j].labelCode == 10) && (disabled = "active-icon") &&(noselect = "true");
  399. //结核病
  400. (item == "12") && (data[j].labelCode == 8) && (disabled = "active-icon") &&(noselect = "true");
  401. //残疾人
  402. (item == "11") && (data[j].labelCode == 9) && (disabled = "active-icon") &&(noselect = "true");
  403. }
  404. }
  405. })
  406. }
  407. var isExit=false;
  408. activeArr.map(function(v){
  409. if(v.label == data[j].labelCode)isExit =true;
  410. })
  411. if(isExit)disabled = "active-icon" //本来就有的默认高亮
  412. labelhtml +='<li id="'+data[j].labelType+'-'+data[j].labelCode+'" data-code="'+data[j].labelCode+'" data-name="'+data[j].labelName+'" data-noselect="' + noselect + '" class="c-list-li '+disabled+'">'+
  413. '<div><span >'+data[j].labelName+'</span></div>'+
  414. '</li>'
  415. }
  416. if(data[0].labelType==4){
  417. // $(".c-list-add").before(labelhtml);
  418. $("#disease-box4").append(labelhtml);
  419. }
  420. if(data[0].labelType==3){
  421. $("#disease-box3").append(labelhtml);
  422. }
  423. if(data[0].labelType==2){
  424. $("#disease-box2").append(labelhtml);
  425. }
  426. //加载病人标签
  427. if(!isChange){
  428. initPatientData(data[0].labelType);
  429. }
  430. }
  431. function queryFailed(res){
  432. if(res.msg){
  433. mui.toast(res.msg);
  434. }else{
  435. mui.toast("标签加载失败!");
  436. }
  437. }
  438. function addLabelErr(res){
  439. $("#labelinput").select();
  440. if(res.msg){
  441. mui.toast(res.msg);
  442. }else{
  443. mui.toast("标签添加失败!");
  444. }
  445. }
  446. function addPatientLabelErr(res){
  447. $("#labelinput").select();
  448. if(res.msg){
  449. mui.toast(res.msg);
  450. }else{
  451. mui.toast("病人标签添加失败!");
  452. }
  453. }
  454. function refreshHz(){
  455. var page = plus.webview.getWebviewById("huanzhexinxi");
  456. if(page){
  457. mui.fire(page, "refresh1");
  458. }
  459. }
  460. //监听标签值是否有变化
  461. function isValueChange(){
  462. var initTagArr = $(".c-list li.active-icon");
  463. var initTagStr = "";
  464. _.filter(initTagArr,function(item,index){
  465. initTagStr+=$(item).find("span").html()+",";
  466. });
  467. var update = localStorage.getItem('updateService');
  468. var int= setInterval(function() {
  469. var changeTagArr = $(".c-list li.active-icon");
  470. var changeTagStr = "";
  471. _.filter(changeTagArr,function(item,index){
  472. changeTagStr+=$(item).find("span").html()+",";
  473. });
  474. if(initTagStr!=changeTagStr || update){
  475. clearInterval(int);
  476. int = null;
  477. $(".btntrue").removeClass("c-ccc");
  478. }else{
  479. $(".btntrue").addClass("c-ccc");
  480. }
  481. },300);
  482. }
  483. </script>
  484. </body>
  485. </html>