disease-crowd.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. (function() {
  2. Vue.component('disease-crowd', {
  3. template: '<div v-if="data" class="left-panel-img">\
  4. <div class="div-disease-item" @click="diseaseClick(0)" :class="{active: activeIndex == 0}" @mouseout="diseaseMouseOut" @mouseover="diseaseMouseOver">\
  5. <h4 class="c-b5e1fc c-f16 c-t-center div-disease-title">高血压人群</h4>\
  6. <img src="../images/icon.png" class="icon-img" @click="detailClick(0)">\
  7. <div class="c-row">\
  8. <div class="c-33 bg-icon">\
  9. <div class="absolute-content">\
  10. <p class="c-b5e1fc c-f12">\
  11. <span class="c-b5e1fc c-f16">总人数</span>\
  12. </p>\
  13. <span class="c-fff71a c-f26 c-bold">{{data1.totalNumber}}</span>\
  14. <span class="c-b5e1fc c-f16">人</span>\
  15. </div>\
  16. </div>\
  17. <div class="c-33 bg-icon">\
  18. <div class="absolute-content">\
  19. <p class="c-b5e1fc c-f12">\
  20. <span class="c-b5e1fc c-f16">上月新增</span>\
  21. </p>\
  22. <span class="c-fff71a c-f26 c-bold">{{data1.addNumber}}</span>\
  23. <span class="c-b5e1fc c-f16">人</span>\
  24. </div>\
  25. </div>\
  26. <div class="c-33 bg-icon">\
  27. <div class="absolute-content">\
  28. <p class="c-b5e1fc c-f12">\
  29. <span class="c-b5e1fc c-f16">环比</span>\
  30. </p>\
  31. <img src="../images/zengzhang.png" class="zengzhang-img"/>\
  32. <span class="c-b5e1fc c-f26 ml20 c-bold">{{data1.ringRatio}}</span>\
  33. </div>\
  34. </div>\
  35. </div>\
  36. </div>\
  37. <div class="div-disease-item mt10" @click="diseaseClick(1)" :class="{active: activeIndex == 1}" @mouseout="diseaseMouseOut" @mouseover="diseaseMouseOver">\
  38. <h4 class="c-b5e1fc c-f16 c-t-center div-disease-title">糖尿病人群</h4>\
  39. <img src="../images/icon.png" class="icon-img" @click="detailClick(1)">\
  40. <div class="c-row">\
  41. <div class="c-33 bg-icon">\
  42. <div class="absolute-content">\
  43. <p class="c-b5e1fc c-f12">\
  44. <span class="c-b5e1fc c-f16">总人数</span>\
  45. </p>\
  46. <span class="c-fff71a c-f26 c-bold">{{data2.totalNumber}}</span>\
  47. <span class="c-b5e1fc c-f16">人</span>\
  48. </div>\
  49. </div>\
  50. <div class="c-33 bg-icon">\
  51. <div class="absolute-content">\
  52. <p class="c-b5e1fc c-f12">\
  53. <span class="c-b5e1fc c-f16">上月新增</span>\
  54. </p>\
  55. <span class="c-fff71a c-f26 c-bold">{{data2.addNumber}}</span>\
  56. <span class="c-b5e1fc c-f16">人</span>\
  57. </div>\
  58. </div>\
  59. <div class="c-33 bg-icon">\
  60. <div class="absolute-content">\
  61. <p class="c-b5e1fc c-f12">\
  62. <span class="c-b5e1fc c-f16">环比</span>\
  63. </p>\
  64. <img src="../images/zengzhang.png" class="zengzhang-img"/>\
  65. <span class="c-b5e1fc c-f26 ml20 c-bold">{{data2.ringRatio}}</span>\
  66. </div>\
  67. </div>\
  68. </div>\
  69. </div>\
  70. <div class="div-disease-item mt10" @click="diseaseClick(2)" :class="{active: activeIndex == 2}" @mouseout="diseaseMouseOut" @mouseover="diseaseMouseOver">\
  71. <h4 class="c-b5e1fc c-f16 c-t-center div-disease-title">孕产妇人群</h4>\
  72. <img src="../images/icon.png" class="icon-img" @click="detailClick(2)">\
  73. <div class="c-row">\
  74. <div class="c-33 bg-icon">\
  75. <div class="absolute-content">\
  76. <p class="c-b5e1fc c-f12">\
  77. <span class="c-b5e1fc c-f16">总人数</span>\
  78. </p>\
  79. <span class="c-fff71a c-f26 c-bold">{{data3.totalNumber}}</span>\
  80. <span class="c-b5e1fc c-f16">人</span>\
  81. </div>\
  82. </div>\
  83. <div class="c-33 bg-icon">\
  84. <div class="absolute-content">\
  85. <p class="c-b5e1fc c-f12">\
  86. <span class="c-b5e1fc c-f16">上月新增</span>\
  87. </p>\
  88. <span class="c-fff71a c-f26 c-bold">{{data3.addNumber}}</span>\
  89. <span class="c-b5e1fc c-f16">人</span>\
  90. </div>\
  91. </div>\
  92. <div class="c-33 bg-icon">\
  93. <div class="absolute-content">\
  94. <p class="c-b5e1fc c-f12">\
  95. <span class="c-b5e1fc c-f16">环比</span>\
  96. </p>\
  97. <img src="../images/zengzhang.png" class="zengzhang-img"/>\
  98. <span class="c-b5e1fc c-f26 ml20 c-bold">{{data3.ringRatio}}</span>\
  99. </div>\
  100. </div>\
  101. </div>\
  102. </div>\
  103. <div class="div-disease-item mt10" @click="diseaseClick(3)" :class="{active: activeIndex == 3}" @mouseout="diseaseMouseOut" @mouseover="diseaseMouseOver">\
  104. <h4 class="c-b5e1fc c-f16 c-t-center div-disease-title">65岁以上老年人人数</h4>\
  105. <img src="../images/icon.png" class="icon-img" @click="detailClick(3)">\
  106. <div class="c-row">\
  107. <div class="c-33 bg-icon">\
  108. <div class="absolute-content">\
  109. <p class="c-b5e1fc c-f12">\
  110. <span class="c-b5e1fc c-f16">总人数</span>\
  111. </p>\
  112. <span class="c-fff71a c-f26 c-bold">{{data4.totalNumber}}</span>\
  113. <span class="c-b5e1fc c-f16">人</span>\
  114. </div>\
  115. </div>\
  116. <div class="c-33 bg-icon">\
  117. <div class="absolute-content">\
  118. <p class="c-b5e1fc c-f12">\
  119. <span class="c-b5e1fc c-f16">上月新增</span>\
  120. </p>\
  121. <span class="c-fff71a c-f26 c-bold">{{data4.addNumber}}</span>\
  122. <span class="c-b5e1fc c-f16">人</span>\
  123. </div>\
  124. </div>\
  125. <div class="c-33 bg-icon">\
  126. <div class="absolute-content">\
  127. <p class="c-b5e1fc c-f12">\
  128. <span class="c-b5e1fc c-f16">环比</span>\
  129. </p>\
  130. <img src="../images/zengzhang.png" class="zengzhang-img"/>\
  131. <span class="c-b5e1fc c-f26 ml20 c-bold">{{data4.ringRatio}}</span>\
  132. </div>\
  133. </div>\
  134. </div>\
  135. </div>\
  136. </div>',
  137. props: ["data","town"],
  138. data: function() {
  139. return {
  140. activeIndex:0,
  141. cacheActiveIndex:0,
  142. data1:{},//高血压
  143. data2:{},//糖尿病
  144. data3:{},//孕产妇人群
  145. data4:{},//65岁以上老年人人数
  146. }
  147. },
  148. mounted: function() {
  149. },
  150. filters:{
  151. formatData:function(value){
  152. return toThousands(value)
  153. }
  154. },
  155. methods: {
  156. initData:function(){
  157. var data1 = this.data[0].successFlg?this.data[0].detailModelList:[];
  158. var data2 = this.data[1].successFlg?this.data[1].detailModelList:[];
  159. var data3 = this.data[2].successFlg?this.data[2].detailModelList:[];
  160. var data4 = this.data[3].successFlg?this.data[3].detailModelList:[];
  161. this.gxyformatData(data1);
  162. this.tnbformatData(data2);
  163. this.ycfformatData(data3);
  164. this.lnrformatData(data4);
  165. },
  166. gxyformatData:function(data){//高血压数据
  167. var vm = this,idx;
  168. _.map(data[0].VIEW_13_0013,function(item,index){
  169. if(vm.town=="上饶市" && item.firstColumn=="合计"){//上饶市
  170. idx = index;
  171. }else if(item.firstColumn==vm.town){
  172. idx = index;
  173. }
  174. })
  175. vm.data1 = {totalNumber:data[0].VIEW_13_0013[idx].HC_13_0021,addNumber:data[1].VIEW_13_0036[idx].HC_13_0021,ringRatio:(data[2].VIEW_13_0037[idx]&&data[2].VIEW_13_0037[idx].HC_13_0023 || "0")};
  176. },
  177. tnbformatData:function(data){//糖尿病数据
  178. var vm = this,idx;
  179. _.map(data[0].VIEW_13_0026 || [],function(item,index){
  180. if(vm.town=="上饶市" && item.firstColumn=="合计"){//上饶市
  181. idx = index;
  182. }else if(item.firstColumn==vm.town){
  183. idx = index;
  184. }
  185. })
  186. vm.data2 = {totalNumber:data[0].VIEW_13_0026[idx].HC_15_1006,addNumber:data[1].VIEW_13_0034[idx].HC_15_1006,ringRatio:(data[2].VIEW_13_0027[idx]&&data[2].VIEW_13_0027[idx].HC_15_1007 || "0")};
  187. },
  188. ycfformatData:function(data){//孕产妇数据
  189. var vm = this,idx;
  190. _.map(data[0].VIEW_16_0009,function(item,index){
  191. if(vm.town=="上饶市" && item.firstColumn=="合计"){//上饶市
  192. idx = index;
  193. }else if(item.firstColumn==vm.town){
  194. idx = index;
  195. }
  196. })
  197. vm.data3 = {totalNumber:data[0].VIEW_16_0009[idx].HC_15_1006,addNumber:data[1].VIEW_16_0010[idx].HC_15_1006,ringRatio:data[2].VIEW_16_0011[idx].HC_15_1007};
  198. },
  199. lnrformatData:function(data){//老年人数据
  200. var vm = this,idx;
  201. _.map(data[0].VIEW_15_0001,function(item,index){
  202. if(vm.town=="上饶市" && item.firstColumn=="合计"){//上饶市
  203. idx = index;
  204. }else if(item.firstColumn==vm.town){
  205. idx = index;
  206. }
  207. })
  208. vm.data4 = {totalNumber:data[0].VIEW_15_0001[idx].HC_15_1006,addNumber:data[1].VIEW_15_0011[idx].HC_15_1006,ringRatio:data[2].VIEW_15_0008[idx].HC_15_1009};
  209. },
  210. diseaseClick:function(type){
  211. this.activeIndex = type;
  212. this.cacheActiveIndex = type;
  213. if($(event.target).hasClass("icon-img")){//点击图片,则不触发重新请求数据
  214. return false;
  215. }
  216. EventBus.$emit('refresh-json-data', {type:type});//触发首页重新请求数据方法
  217. },
  218. diseaseMouseOver:function(){
  219. this.activeIndex = null;
  220. },
  221. diseaseMouseOut:function(){
  222. this.activeIndex = this.cacheActiveIndex;
  223. },
  224. detailClick:function(type){//type:0高血压 1糖尿病,2孕产妇3老年人
  225. var height = (0.42 * window.screen.width) + 'px',url=httpRequest.alertUrl;
  226. if(type==0){
  227. url += '/page/bigData/html/alert1.html';
  228. }else if(type==1){
  229. url += '/page/bigData/html/alert2.html';
  230. }else if(type==2){
  231. url += '/page/bigData/html/alert3.html';
  232. }else if(type==3){
  233. url += '/page/bigData/html/alert4.html';
  234. }
  235. var width = (0.7604 * window.screen.width) + 'px';
  236. var height = (0.41875 * window.screen.width) + 'px';
  237. var hei
  238. top.layer.open({
  239. id: 'LAY_layuipro', //设定一个id,防止重复弹出
  240. type: 2,
  241. title: false,
  242. closeBtn: 0,
  243. shade: 0.5,
  244. shadeClose: true,
  245. area: [width, height],
  246. content: url
  247. });
  248. }
  249. },
  250. watch:{
  251. data:function(data){
  252. if(data&&data.length>0){
  253. this.data = data;
  254. this.initData();
  255. }
  256. }
  257. }
  258. })
  259. })()