disease-crowd.js 10 KB

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