123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- new Vue({
- el: '#main',
- data: {
- alertData1:'',//总人数
- alertData2:'',//新增人数
- alertData3:'',//门诊人次
- alertData4:'',//住院人次
- alertChart1:'',//左边第一块表格
- alertChart2:'',//右上第一块
- alertChart3:'',//右上第二块
- alertChart4:'',//右上第三块
- alertChart5:'',//右下
- bigData:'',//总数据
- alertType:0,
- alertTime:1,
- type:'',
- title:'',
- },
- mounted: function() {
- var vm = this;
- this.type = this.GetQueryString("type");
- if(this.type == 0){
- this.title = '高血压人群分布';
- vm.bigData = bigData;
- }else if(this.type == 1){
- this.title = '糖尿病人群分布';
- vm.bigData = bigData2;
- }else if(this.type == 2){
- this.title = '孕产妇人群';
- }else if(this.type == 3){
- this.title = '65岁以上老年人人数';
- }
- this.initData();
- var myDate = new Date();
- var maxMonth = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- var maxYear = myDate.getFullYear();
- var max = maxYear.toString()+'-'+maxMonth.toString();
- var moren = maxYear.toString()+'-'+(maxMonth-1).toString()+' 至 '+maxYear.toString()+'-'+(maxMonth-1).toString();
- layui.use('laydate', function(){
- var laydate = layui.laydate;
-
- //执行一个laydate实例
- laydate.render({
- elem: '#time', //指定元素,
- type:'month',
- range: '至', //或 range: '~' 来自定义分割字符
- theme: '#05273e',
- position: 'abolute',
- right:'200px',
- value: moren,
- max:max,
- btns: ['confirm'],
- done: function(value, date, endDate){
- console.log(value); //得到日期生成的值,如:2017-08-18
- console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
- console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
- }
- // showBottom: false
- });
- });
- },
- methods: {
- initData:function(){
- var vm = this;
- vm.alertData1 = vm.bigData['总人数'];
- vm.alertData2 = vm.bigData['新增人数'];
- vm.alertData3 = vm.bigData['门诊人次'];
- vm.alertData4 = vm.bigData['住院人次'];
- this.setAlertChart1(0);
- this.setAlertChart2(0);
- this.setAlertChart3(0);
- this.setAlertChart4(0);
- this.setAlertChart5(0,0);
- console.log(vm.bigData)
- },
- setAlertChart1:function(type){
- var t = '';
- switch(type){
- case 0:t = '全部';break;
- case 1:t = '门诊';break;
- case 2:t = '住院';break;
- }
- var options = this.bigData[t]['区县分布'];
- options.series[0].label = {show: true,position: "right",color: '#b5e1fc'}
- this.alertChart1 = options;
- },
- setAlertChart2:function(type){
- var t = '';
- switch(type){
- case 0:t = '全部';break;
- case 1:t = '门诊';break;
- case 2:t = '住院';break;
- }
- var options = this.bigData[t]['年龄段分布'];
- options.color = ["#6576e0","#03fa6c","#ff616f","#0fa5f2","#00e6f3"];
- options.legend.formatter = function(name) {
- var index = 0;
- var clientlabels = options.legend.data;
- var clientcounts = _.map(options.series[0].data,function(item,idx){
- return item.value;
- });
- clientlabels.forEach(function(value,i){
- if(value == name){
- index = i;
- }
- });
- return name + " " + clientcounts[index];
- }
- options.legend.left = '48%';
- options.legend.top = 0.044 * window.screen.width;//85;
- options.legend.itemWidth = 0.005 * window.screen.width;//10;
- options.legend.itemHeight = 0.005 * window.screen.width;//10;
- options.legend.itemGap = 0.0078 * window.screen.width;//15;
- options.series[0].center = ['25%','55%'];
- this.alertChart2 = options
- },
- setAlertChart3:function(type){
- var t = '';
- switch(type){
- case 0:t = '全部';break;
- case 1:t = '门诊';break;
- case 2:t = '住院';break;
- }
- var options = this.bigData[t]['性别分布'];
- options.color = ["#00E7F3","#ff616f"];
- options.legend.formatter = function(name) {
- var index = 0;
- var clientlabels = options.legend.data;
- var clientcounts = _.map(options.series[0].data,function(item,idx){
- return item.value;
- });
- clientlabels.forEach(function(value,i){
- if(value == name){
- index = i;
- }
- });
- return name + " " + clientcounts[index];
- }
- options.legend.left = '48%';
- options.legend.top = 0.0625 * window.screen.width;//120
- options.legend.itemWidth = 0.005 * window.screen.width;//10;
- options.legend.itemHeight = 0.005 * window.screen.width;//10;
- options.legend.itemGap = 0.0078 * window.screen.width;//15;
- options.series[0].center = ['25%','55%'];
- this.alertChart3 = options
- },
- setAlertChart4:function(type){
- var t = '';
- switch(type){
- case 0:t = '全部';break;
- case 1:t = '门诊';break;
- case 2:t = '住院';break;
- }
- var options = this.bigData[t]["并发症"];
- options.series[0].label = {show: true,position: "right",color: '#b5e1fc'};
- options.series[0].itemStyle.normal.color = '#FFF71A';
- this.alertChart4 = options
- },
- setAlertChart5:function(type,time){
- var t = '',m='';
- switch(type){
- case 0:t = '全部';break;
- case 1:t = '门诊';break;
- case 2:t = '住院';break;
- }
- switch(time){
- case 0:m = '日';break;
- case 1:m = '月';break;
- case 2:m = '季';break;
- case 3:m = '年';break;
- }
- var options = this.bigData[t]['新增患者趋势'][m];
- options.tooltip = {
- trigger: 'axis',
- axisPointer: {
- type : 'shadow'
- },
- formatter: '{b} <br /> {a0}: {c0}<br />{a1}: {c1}' + "%"
- }
- options.series[0].itemStyle.color = '#FF606E';
- this.alertChart5 = options
- },
- alertTitle:function(type){
- this.alertTime = 1;
- this.setAlertChart1(type);
- this.setAlertChart2(type);
- this.setAlertChart3(type);
- this.setAlertChart4(type);
- this.setAlertChart5(type,1);
- this.alertType = type;
- },
- alertChart:function(time){
- var type = this.alertType;
- this.alertTime = time;
- this.setAlertChart5(type,time);
- },
- closeAlertClick:function(){
- parent.layer.closeAll();
- },
- GetQueryString :function (name){
- var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
- var r = window.location.search.substr(1).match(reg);
- if(r!=null)return unescape(r[2]); return null;
- },
- chartArea:function(param){
- console.log(param);
- },
- clickBarItem:function(item){
- console.log(item)
- }
- }
- });
- //数字格式化
- function toThousands(str) {
- if(!str)return
- str =parseInt(str);
- if(typeof(str) == 'number')str = str.toString()
- var newStr = "";
- var count = 0;
- if(str.indexOf(".") == -1) {
- for(var i = str.length - 1; i >= 0; i--) {
- if(count % 3 == 0 && count != 0) {
- newStr = str.charAt(i) + "," + newStr;
- } else {
- newStr = str.charAt(i) + newStr;
- }
- count++;
- }
- str = newStr;
- } else {
- for(var i = str.indexOf(".") - 1; i >= 0; i--) {
- if(count % 3 == 0 && count != 0) {
- newStr = str.charAt(i) + "," + newStr;
- } else {
- newStr = str.charAt(i) + newStr; //逐个字符相接起来
- }
- count++;
- }
- str = newStr + (str + "00").substr((str + "00").indexOf("."), 3);
- }
- return str;
- }
|