home.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. toastr.options = {
  2. "closeButton": true,
  3. "positionClass": "toast-top-center",
  4. "preventDuplicates": true
  5. }
  6. new Vue({
  7. el: '#main',
  8. data: {
  9. type:0,//0:高血压 1:糖尿病 2:孕产妇 3:65岁以上老年人人数
  10. jsonUrl:"../../../dataJson/jumingHealthJson/高血压人群.json",
  11. jsonData:null,
  12. city: '上饶市',
  13. town: [],
  14. cityVal:"0",
  15. diseaseData:[],
  16. mapData:null,
  17. zhongDianData:[],
  18. gaoFaData:null,
  19. siWangData:[],
  20. skipShow:0,
  21. lineHeightIndex:null,
  22. },
  23. mounted: function() {
  24. this.bindEvents();
  25. this.initData();
  26. // this.getJsonData();
  27. },
  28. methods: {
  29. initData:function(){
  30. var vm = this,townStr="",viewMapJsonGXY = null,viewMapJsonTNB = null,viewMapJsonYCF = null,viewMapJsonGL = null,zhongDianViewCodeMonth="",zhongDianViewCodeYear="";
  31. $(".div-mask-layer").show();
  32. //封装参数
  33. vm.cityVal!="0"?townStr = "town="+vm.cityVal+";":townStr = "";//vm.cityVal=0 查询整个市
  34. var diseaseLinkAgeFliter = "quotaDate >= '" + getLastMonthStartDate() + "' and quotaDate <= '" + getLastMonthEndDate() + "';";//疾病列表参数(上个月数据)
  35. var zhongDianLinkageFilter = "quotaDate >= '" + getLastYearMonthArray()[11] + "' and quotaDate <= '" + getLastYearMonthArray()[0] + "';";//重点人群参数(过去12个月数据)
  36. var gaoFaLinkageFilterMonth = "quotaDate >= '" + getMonthStartDate() + "' and quotaDate <= '" + getMonthEndDate() + "';";//高发疾病参数(本月数据)
  37. var gaoFaLinkageFilterYear = "quotaDate >= '" + getYearStartDate() + "' and quotaDate <= '" + getYearEndDate() + "';";//高发疾病参数(本年数据)
  38. viewMapJsonGXY = {VIEW_13_0013:townStr,VIEW_13_0036:townStr+diseaseLinkAgeFliter,VIEW_13_0037:townStr+diseaseLinkAgeFliter};//高血压
  39. viewMapJsonTNB = {VIEW_13_0026:townStr,VIEW_13_0034:townStr+diseaseLinkAgeFliter,VIEW_13_0027:townStr+diseaseLinkAgeFliter};//糖尿病
  40. viewMapJsonYCF = {VIEW_16_0009:townStr,VIEW_16_0010:townStr+diseaseLinkAgeFliter,VIEW_16_0011:townStr+diseaseLinkAgeFliter};//孕产妇
  41. viewMapJsonGL = {VIEW_15_0001:townStr,VIEW_15_0011:townStr+diseaseLinkAgeFliter,VIEW_15_0008:townStr+diseaseLinkAgeFliter};//65岁以上
  42. if(vm.type==0){//高血压
  43. zhongDianViewCodeMonth = "VIEW_13_0017";//重点人群+按月
  44. zhongDianViewCodeYear = "VIEW_13_0022";//重点人群+按年
  45. }else if(vm.type==1){//糖尿病
  46. zhongDianViewCodeMonth = "VIEW_13_0028";//重点人群+按月
  47. zhongDianViewCodeYear = "VIEW_13_0029";//重点人群+按年
  48. }else if(vm.type==2){//孕产妇
  49. zhongDianViewCodeMonth = "VIEW_16_0004";//重点人群+按月
  50. zhongDianViewCodeYear = "VIEW_16_0005";//重点人群+按年
  51. }else if(vm.type==3){//65岁以上
  52. zhongDianViewCodeMonth = "VIEW_15_0009";//重点人群+按月
  53. zhongDianViewCodeYear = "VIEW_15_0010";//重点人群+按年
  54. }
  55. //整理请求参数集合
  56. var reqUrl = [
  57. {url: bigDataAPI.getCityArea,reqType: 'get',data: {}},
  58. {url:bigDataAPI.getMapJingWeiDuInfo,reqType: 'get',data:{}},//上饶地图经纬度数据
  59. {url:bigDataAPI.getMoreNoChartTemplateData,reqType: 'get',data:{viewMapJson:JSON.stringify(viewMapJsonGXY)}},//高血压疾病数据+地图
  60. {url:bigDataAPI.getMoreNoChartTemplateData,reqType: 'get',data:{viewMapJson:JSON.stringify(viewMapJsonTNB)}},//糖尿病疾病数据+地图
  61. {url:bigDataAPI.getMoreNoChartTemplateData,reqType: 'get',data:{viewMapJson:JSON.stringify(viewMapJsonYCF)}},//孕产妇疾病数据+地图
  62. {url:bigDataAPI.getMoreNoChartTemplateData,reqType: 'get',data:{viewMapJson:JSON.stringify(viewMapJsonGL)}},//65岁以上疾病数据+地图
  63. {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: zhongDianViewCodeMonth,linkageFilter:zhongDianLinkageFilter+townStr}},//重点人群+按月
  64. {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: zhongDianViewCodeYear,linkageFilter:zhongDianLinkageFilter+townStr}},//重点人群+按年
  65. {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_13_0007",linkageFilter:gaoFaLinkageFilterMonth+townStr,limitCondition:10}},//高发疾病排行----筛选条件:全部+本月(默认),其他情况数据在组件里请求数据
  66. {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_13_0007",linkageFilter:gaoFaLinkageFilterYear+townStr,limitCondition:10}},//高发疾病排行----筛选条件:全部+本年(默认),其他情况数据在组件里请求数据
  67. {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_13_0008",linkageFilter:townStr}},//死亡原因
  68. ];
  69. httpRequest.getReqPromises(reqUrl).then(function(datas) {
  70. vm.town = [{"name": "上饶市","id": "0"}].concat(datas[0]);
  71. echarts.registerMap('上饶',datas[1]);
  72. vm.diseaseData.push(datas[2]);
  73. vm.diseaseData.push(datas[3]);
  74. vm.diseaseData.push(datas[4]);
  75. vm.diseaseData.push(datas[5]);
  76. if(vm.type==0){//高血压
  77. vm.setMapData(datas[2]);
  78. }else if(vm.type==1){//糖尿病
  79. vm.setMapData(datas[3]);
  80. }else if(vm.type==2){//孕产妇
  81. vm.setMapData(datas[4]);
  82. }else if(vm.type==3){//65岁以上
  83. vm.setMapData(datas[5]);
  84. }
  85. vm.zhongDianData = [datas[6],datas[7]];//重点人群+按月、重点人群+按年
  86. vm.gaoFaData = [datas[8],datas[9]];//高发疾病排行----筛选条件:本月(默认)、本年
  87. vm.siWangData = datas[10];//死亡原因
  88. $(".div-mask-layer").hide();
  89. })
  90. },
  91. setMapData: function(data) {
  92. var optionData = [],vm=this;
  93. if(vm.type==0){//高血压
  94. data = data.successFlg?data.detailModelList&&data.detailModelList[1].VIEW_13_0036 || []:[];
  95. _.map(data, function(item) {
  96. if(item.firstColumn != "合计") {
  97. optionData.push({
  98. name: item.townName,
  99. value: parseInt(item.HC_13_0021)
  100. })
  101. }
  102. })
  103. }else if(vm.type==1){//糖尿病
  104. data = data.successFlg?data.detailModelList&&data.detailModelList[1].VIEW_13_0034 || []:[];
  105. _.map(data, function(item) {
  106. if(item.firstColumn != "合计") {
  107. optionData.push({
  108. name: item.townName,
  109. value: parseInt(item.HC_15_1006)
  110. })
  111. }
  112. })
  113. }else if(vm.type==2){//孕产妇
  114. data = data.successFlg?data.detailModelList&&data.detailModelList[1].VIEW_16_0010 || []:[];
  115. _.map(data, function(item) {
  116. if(item.firstColumn != "合计") {
  117. optionData.push({
  118. name: item.townName,
  119. value: parseInt(item.HC_15_1006)
  120. })
  121. }
  122. })
  123. }else if(vm.type==3){//65岁以上
  124. data = data.successFlg?data.detailModelList&&data.detailModelList[1].VIEW_15_0011 || []:[];
  125. _.map(data, function(item) {
  126. if(item.firstColumn != "合计") {
  127. optionData.push({
  128. name: item.townName,
  129. value: parseInt(item.HC_15_1006)
  130. })
  131. }
  132. })
  133. }
  134. var options = optionData;
  135. this.mapData = {
  136. data: options,
  137. index: this.lineHeightIndex
  138. };
  139. },
  140. getJsonData:function(){
  141. var vm = this;
  142. bigDataAPI.getJsonData(this.jsonUrl).then(function(res){
  143. vm.jsonData = res;
  144. var options = _.map(res.town,function(item,idx){
  145. var it = {name:item.townName,value:item.result}
  146. return it;
  147. })
  148. vm.mapData ={data:options,zoom:1,index:vm.lineHeightIndex};
  149. })
  150. },
  151. bindEvents:function(){
  152. var vm = this;
  153. EventBus.$on("refresh-json-data", function(arg) {
  154. vm.type = arg.type;//0:高血压 1:糖尿病 2:孕产妇 3:65岁以上老年人人数
  155. vm.initData();
  156. });
  157. },
  158. setCity(item){
  159. this.city = item.name;
  160. },
  161. clickMap:function(res){
  162. this.city = res.name;
  163. },
  164. refreshAllData:function(cityVal){
  165. var vm = this;
  166. cityVal = parseInt(cityVal)
  167. switch(cityVal){
  168. case 0: vm.jsonUrl = "../../../dataJson/jumingHealthJson/高血压人群.json"; break;//贵港市
  169. case 26531: vm.jsonUrl = "../../../dataJson/jumingHealthJson/港北区.json"; break;//港北区
  170. case 25634: vm.jsonUrl = "../../../dataJson/jumingHealthJson/港南区.json";break;//港南区
  171. case 113485: vm.jsonUrl = "../../../dataJson/jumingHealthJson/桂平市.json"; break;//桂平市
  172. case 74128: vm.jsonUrl = "../../../dataJson/jumingHealthJson/平南县.json"; break;//平南县
  173. case 12587:vm.jsonUrl = "../../../dataJson/jumingHealthJson/覃塘区.json"; break;//覃塘区
  174. default:break;
  175. }
  176. vm.getJsonData();
  177. },
  178. skipClick:function(){
  179. console.log(222)
  180. this.skipShow == 0 ? this.skipShow = 1 : this.skipShow = 0
  181. }
  182. },
  183. watch:{
  184. jsonData:function(data){
  185. this.jsonData = data;
  186. },
  187. city:function(value){
  188. var vm =this;
  189. vm.lineHeightIndex =value;
  190. this.town.map(function(v,i){
  191. if(v.name == value) {
  192. vm.cityVal = v.id;
  193. }
  194. })
  195. vm.initData();
  196. }
  197. }
  198. });
  199. //数字格式化
  200. function toThousands(str) {
  201. if(!str)return
  202. str =parseInt(str);
  203. if(typeof(str) == 'number')str = str.toString()
  204. var newStr = "";
  205. var count = 0;
  206. if(str.indexOf(".") == -1) {
  207. for(var i = str.length - 1; i >= 0; i--) {
  208. if(count % 3 == 0 && count != 0) {
  209. newStr = str.charAt(i) + "," + newStr;
  210. } else {
  211. newStr = str.charAt(i) + newStr;
  212. }
  213. count++;
  214. }
  215. str = newStr;
  216. } else {
  217. for(var i = str.indexOf(".") - 1; i >= 0; i--) {
  218. if(count % 3 == 0 && count != 0) {
  219. newStr = str.charAt(i) + "," + newStr;
  220. } else {
  221. newStr = str.charAt(i) + newStr; //逐个字符相接起来
  222. }
  223. count++;
  224. }
  225. str = newStr + (str + "00").substr((str + "00").indexOf("."), 3);
  226. }
  227. return str;
  228. }