alert5.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. new Vue({
  2. el: '#main',
  3. data: {
  4. alertChart1:'',//左边第一块表格
  5. alertChart2:'',//左边第二块表格
  6. alertChart3:'',//右上第一块
  7. alertChart4:'',//右上第二块
  8. alertChart5:'',//右下
  9. bigData:'',//总数据
  10. alertType:0,
  11. alertTime:0,
  12. firstDay: "", //上月第一天
  13. lastDay: "", //上月最后一天
  14. firstMonth:'',
  15. lastMonth:'',
  16. code:[
  17. 'VIEW_13_0018',//死亡原因-人
  18. 'VIEW_13_0019',//区县分布-人
  19. 'VIEW_13_0020',//年龄段分布
  20. 'VIEW_13_0021',//性别分布
  21. 'VIEW_13_0023',//新增患者月趋势
  22. 'VIEW_13_0025',//新增患者年趋势
  23. ],
  24. qushiMonth:'',
  25. qushiYear:'',
  26. firstDayYear: "", //本年第一天
  27. lastDayYear: "", //本年最后一天
  28. halfYearStartDate: "", //近半年开始时间
  29. halfYearEndDate: "", //近半年结束时间
  30. yesterdayDate:"",//昨天
  31. type:0
  32. },
  33. mounted: function() {
  34. var vm = this;
  35. updateFontSize();
  36. this.formatDate();
  37. this.initData(this.type);
  38. var myDate = new Date();
  39. var maxMonth = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
  40. var maxYear = myDate.getFullYear();
  41. var max = maxYear.toString()+'-'+maxMonth.toString();
  42. console.log(vm.firstMonth,vm.lastMonth)
  43. var moren = vm.firstMonth+' 至 '+vm.lastMonth;
  44. layui.use('laydate', function(){
  45. var laydate = layui.laydate;
  46. //执行一个laydate实例
  47. laydate.render({
  48. elem: '#time', //指定元素,
  49. type:'month',
  50. range: '至', //或 range: '~' 来自定义分割字符
  51. theme: '#05273e',
  52. position: 'abolute',
  53. right:'200px',
  54. value: moren,
  55. max:max,
  56. btns: ['confirm'],
  57. done: function(value, date, endDate){
  58. console.log(value); //得到日期生成的值,如:2017-08-18
  59. console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
  60. console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
  61. console.log(vm.firstDay);
  62. if(date.month < 10){
  63. vm.firstDay = date.year+'-0'+date.month+'-01';
  64. }else{
  65. vm.firstDay = date.year+'-'+date.month+'-01';
  66. }
  67. if(endDate.month < 10){
  68. vm.lastDay = endDate.year+'-0'+endDate.month+'-'+vm.getLastDay(endDate.year,endDate.month);
  69. }else{
  70. vm.lastDay = endDate.year+'-'+endDate.month+'-'+vm.getLastDay(endDate.year,endDate.month);
  71. }
  72. vm.halfYearStartDate = getLastHalfMonthArray(endDate.year+'-'+endDate.month)
  73. vm.halfYearEndDate = vm.lastDay;
  74. vm.initData(vm.type);
  75. vm.alertTime = 0;
  76. }
  77. // showBottom: false
  78. });
  79. });
  80. },
  81. methods: {
  82. initData:function(type){
  83. var vm = this;
  84. var linkageFilter1 = "quotaDate >= '" + vm.firstDay + "' and quotaDate <= '" + vm.lastDay + "';";
  85. var linkageFilter3 = "quotaDate >= '" + vm.halfYearStartDate + "' and quotaDate <= '" + vm.halfYearEndDate + "';";
  86. console.log(linkageFilter1)
  87. var code = this.code;
  88. var urlNumber = '/gov/report/getNoChartTemplateData';
  89. var urlChart = '/gov/report/getTemplateDataByViewCode';
  90. var reqUrl = [
  91. {url:urlNumber,reqType: 'get',data: {viewCodeStr:code[0],linkageFilter:linkageFilter1}},//死亡原因-人
  92. {url:urlNumber,reqType: 'get',data: {viewCodeStr:code[1],linkageFilter:linkageFilter1}},//区县分布-人
  93. {url:urlChart,reqType: 'get',data: {viewCode:code[2],linkageFilter:linkageFilter1}},//年龄段分布
  94. {url:urlChart,reqType: 'get',data: {viewCode:code[3],linkageFilter:linkageFilter1}},//性别分布
  95. {url:urlChart,reqType: 'get',data: {viewCode:code[4],linkageFilter:linkageFilter3}},//新增患者月趋势
  96. {url:urlChart,reqType: 'get',data: {viewCode:code[5]}},//老年人就诊趋势-年
  97. ]
  98. $(".div-mask-layer").show();
  99. httpRequest.getReqPromises(reqUrl).then(function(datas) {
  100. console.log(datas);
  101. vm.alertChart1 = datas[0].obj.VIEW_13_0018;
  102. vm.alertChart2 = datas[1].obj.VIEW_13_0019;
  103. // vm.alertData3 = datas[2].obj.VIEW_15_0002[0].HC_15_1003;
  104. // vm.alertData4 = datas[2].obj.VIEW_15_0002[0].HC_15_1004;
  105. var chart1 = datas[2].obj.viewInfos[0].options[0].option;
  106. var chart2 = datas[3].obj.viewInfos[0].options[0].option;
  107. var chart3 = datas[4].obj.viewInfos[0].options[0].option;
  108. var chart4 = datas[5].obj.viewInfos[0].options[0].option;
  109. // var chart5 = datas[7].obj.viewInfos[0].options[0].option;
  110. vm.qushiMonth = chart3;
  111. vm.qushiYear = chart4;
  112. vm.setAlertChart2(chart1);
  113. vm.setAlertChart3(chart2);
  114. // vm.setAlertChart4(chart3);
  115. vm.setAlertChart5(chart3);
  116. $(".div-mask-layer").hide();
  117. })
  118. },
  119. setAlertChart1:function(data){
  120. var options = JSON.parse(data);
  121. options = quxianChart(options);
  122. // var options = this.bigData[t]['区县分布'];
  123. // options.series[0].label = {show: true,position: "right",color: '#b5e1fc'}
  124. this.alertChart1 = options;
  125. },
  126. setAlertChart2:function(data){
  127. var options = JSON.parse(data);
  128. options = nianlingChart(options);
  129. options.color = ["#6576e0","#03fa6c","#ff616f","#0fa5f2","#00e6f3"];
  130. options.legend.formatter = function(name) {
  131. var index = 0;
  132. var clientlabels = options.legend.data;
  133. var clientcounts = _.map(options.series[0].data,function(item,idx){
  134. return item.value;
  135. });
  136. clientlabels.forEach(function(value,i){
  137. if(value == name){
  138. index = i;
  139. }
  140. });
  141. return name + " " + clientcounts[index];
  142. }
  143. options.legend.left = '58%';
  144. options.legend.top = 0.044 * window.screen.width;//85;
  145. options.legend.itemWidth = 0.005 * window.screen.width;//10;
  146. options.legend.itemHeight = 0.005 * window.screen.width;//10;
  147. options.legend.itemGap = 0.0078 * window.screen.width;//15;
  148. options.series[0].center = ['35%','55%'];
  149. this.alertChart3 = options
  150. },
  151. setAlertChart3:function(data){
  152. var options = JSON.parse(data);
  153. options = xingbieChart(options);
  154. options.color = ["#00E7F3","#ff616f"];
  155. options.legend.formatter = function(name) {
  156. var index = 0;
  157. var clientlabels = options.legend.data;
  158. var clientcounts = _.map(options.series[0].data,function(item,idx){
  159. return item.value;
  160. });
  161. clientlabels.forEach(function(value,i){
  162. if(value == name){
  163. index = i;
  164. }
  165. });
  166. return name + " " + clientcounts[index];
  167. }
  168. options.legend.left = '58%';
  169. options.legend.top = 0.0625 * window.screen.width;//120
  170. options.legend.itemWidth = 0.005 * window.screen.width;//10;
  171. options.legend.itemHeight = 0.005 * window.screen.width;//10;
  172. options.legend.itemGap = 0.0078 * window.screen.width;//15;
  173. options.series[0].center = ['35%','55%'];
  174. this.alertChart4 = options
  175. },
  176. setAlertChart4:function(data){
  177. var options = JSON.parse(data);
  178. options = jibingTopChart(options);
  179. options.series[0].label = {show: true,position: "right",color: '#b5e1fc'};
  180. options.series[0].itemStyle.normal.color = '#FFF71A';
  181. this.alertChart4 = options
  182. },
  183. setAlertChart5:function(data){
  184. var options = JSON.parse(data);
  185. options = qushiChart(options);
  186. // var options = this.bigData[t]['区县分布'];
  187. // options.series[0].label = {show: true,position: "right",color: '#b5e1fc'}
  188. this.alertChart5 = options;
  189. window.chart5 = this.$refs._alertChart5.chart
  190. },
  191. alertTitle:function(type){
  192. this.alertTime = 0;
  193. this.type = type;
  194. this.initData(type)
  195. },
  196. alertChart:function(time){
  197. var vm = this;
  198. this.alertTime = time;
  199. if(time == 0){
  200. vm.setAlertChart5(vm.qushiMonth);
  201. }else if(time == 1){
  202. vm.setAlertChart5(vm.qushiYear);
  203. }
  204. },
  205. closeAlertClick:function(){
  206. parent.layer.closeAll();
  207. },
  208. GetQueryString :function (name){
  209. var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  210. var r = window.location.search.substr(1).match(reg);
  211. if(r!=null)return unescape(r[2]); return null;
  212. },
  213. chartArea:function(param){
  214. console.log(param);
  215. },
  216. clickBarItem:function(item){
  217. console.log(item)
  218. },
  219. formatDate: function() {
  220. //获取上个月第一天
  221. var firstdate = new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1);
  222. //获取上个月最后一天
  223. var date = new Date();
  224. var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
  225. var enddate = new Date(new Date().getFullYear(), new Date().getMonth() - 1, day);
  226. //获取本年第一天和最后一天
  227. var firstYearDate = new Date();
  228. firstYearDate.setDate(1);
  229. firstYearMonty = firstYearDate.setMonth(0);
  230. //近半年开始时间
  231. var date1 = new Date();
  232. date1.setMonth(date1.getMonth() - 6);
  233. var year1 = date1.getFullYear() - 1;
  234. var month1 = date1.getMonth() + 1;
  235. month1 = (month1 < 10 ? "0" + month1 : month1);
  236. //格式化结果
  237. this.firstDay = firstdate.format("yyyy-MM-dd");
  238. this.firstMonth = firstdate.format("yyyy-MM");
  239. this.lastDay = enddate.format("yyyy-MM-dd");
  240. this.lastMonth = enddate.format("yyyy-MM");
  241. this.firstDayYear = firstYearDate.format("yyyy-MM-dd");
  242. this.lastDayYear = (new Date().getFullYear()-1) + "-12-31";
  243. this.halfYearStartDate = year1.toString() + '-' + month1.toString() + "-01";
  244. this.halfYearEndDate = this.getCurrentMonthLast2017();
  245. this.yesterdayDate = this.getYesterday2017(-1, '-');
  246. },
  247. getCurrentMonthLast: function() {
  248. var date = new Date();
  249. var currentMonth = date.getMonth();
  250. var nextMonth = ++currentMonth;
  251. var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth-1, 1);
  252. var oneDay = 1000 * 60 * 60 * 24;
  253. return(new Date(nextMonthFirstDay - oneDay)).format("yyyy-MM-dd");
  254. },
  255. getYesterday:function(num, str){
  256. var today = new Date();
  257. var nowTime = today.getTime();
  258. var ms = 24*3600*1000*num;
  259. today.setTime(parseInt(nowTime + ms));
  260. var oYear = today.getFullYear();
  261. var oMoth = (today.getMonth() + 1).toString();
  262. if (oMoth.length <= 1) oMoth = '0' + oMoth;
  263. var oDay = today.getDate().toString();
  264. if (oDay.length <= 1) oDay = '0' + oDay;
  265. return oYear + str + oMoth + str + oDay;
  266. },
  267. formatDate2017: function() {
  268. //获取上个月第一天
  269. var firstdate = new Date(new Date().getFullYear()-1, new Date().getMonth() - 1, 1);
  270. //获取上个月最后一天
  271. var date = new Date();
  272. var day = new Date(date.getFullYear()-1, date.getMonth(), 0).getDate();
  273. var enddate = new Date(new Date().getFullYear()-1, new Date().getMonth() - 1, day);
  274. //获取本年第一天和最后一天
  275. var firstYearDate = new Date();
  276. firstYearDate.setFullYear(new Date().getFullYear()-1)
  277. firstYearDate.setDate(1);
  278. firstYearMonty = firstYearDate.setMonth(0);
  279. //近半年开始时间
  280. var date1 = new Date();
  281. date1.setMonth(date1.getMonth() - 6);
  282. var year1 = date1.getFullYear() - 1;
  283. var month1 = date1.getMonth() + 1;
  284. month1 = (month1 < 10 ? "0" + month1 : month1);
  285. //格式化结果
  286. this.firstDay = firstdate.format("yyyy-MM-dd");
  287. this.firstMonth = firstdate.format("yyyy-MM");
  288. this.lastDay = enddate.format("yyyy-MM-dd");
  289. this.lastMonth = enddate.format("yyyy-MM");
  290. this.firstDayYear = firstYearDate.format("yyyy-MM-dd");
  291. this.lastDayYear = (new Date().getFullYear()-1) + "-12-31";
  292. this.halfYearStartDate = year1.toString() + '-' + month1.toString() + "-01";
  293. this.halfYearEndDate = this.getCurrentMonthLast2017();
  294. this.yesterdayDate = this.getYesterday2017(-1, '-');
  295. },
  296. getYesterday2017:function(num, str){
  297. var today = new Date();
  298. var nowTime = today.getTime();
  299. var ms = 24*3600*1000*num;
  300. today.setTime(parseInt(nowTime + ms));
  301. var oYear = today.getFullYear()-1;
  302. var oMoth = (today.getMonth() + 1).toString();
  303. if (oMoth.length <= 1) oMoth = '0' + oMoth;
  304. var oDay = today.getDate().toString();
  305. if (oDay.length <= 1) oDay = '0' + oDay;
  306. return oYear + str + oMoth + str + oDay;
  307. },
  308. getCurrentMonthLast2017: function() {
  309. var date = new Date();
  310. var currentMonth = date.getMonth();
  311. var nextMonth = ++currentMonth;
  312. var nextMonthFirstDay = new Date(date.getFullYear() - 1, nextMonth-1, 1);
  313. var oneDay = 1000 * 60 * 60 * 24;
  314. return(new Date(nextMonthFirstDay - oneDay)).format("yyyy-MM-dd");
  315. },
  316. getLastDay(year, month) {
  317. var new_year = year; //取当前的年份
  318. var new_month = month++; //取下一个月的第一天,方便计算(最后一天不固定)
  319. if (month > 12) {
  320. //如果当前大于12月,则年份转到下一年
  321. new_month -= 12; //月份减
  322. new_year++; //年份增
  323. }
  324. var new_date = new Date(new_year, new_month, 1); //取当年当月中的第一天
  325. return new Date(new_date.getTime() - 1000 * 60 * 60 * 24).getDate(); //获取当月最后一天日期
  326. },
  327. }
  328. });
  329. //数字格式化
  330. function toThousands(str) {
  331. if(!str)return
  332. str =parseInt(str);
  333. if(typeof(str) == 'number')str = str.toString()
  334. var newStr = "";
  335. var count = 0;
  336. if(str.indexOf(".") == -1) {
  337. for(var i = str.length - 1; i >= 0; i--) {
  338. if(count % 3 == 0 && count != 0) {
  339. newStr = str.charAt(i) + "," + newStr;
  340. } else {
  341. newStr = str.charAt(i) + newStr;
  342. }
  343. count++;
  344. }
  345. str = newStr;
  346. } else {
  347. for(var i = str.indexOf(".") - 1; i >= 0; i--) {
  348. if(count % 3 == 0 && count != 0) {
  349. newStr = str.charAt(i) + "," + newStr;
  350. } else {
  351. newStr = str.charAt(i) + newStr; //逐个字符相接起来
  352. }
  353. count++;
  354. }
  355. str = newStr + (str + "00").substr((str + "00").indexOf("."), 3);
  356. }
  357. return str;
  358. }