123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- new Vue({
- el: '#app',
- data: {
- pickerOptions0: {
- disabledDate:function(time) {
- return time.getTime() > Date.now() - 8.64e6
- }},
- city: '上饶市',
- town: [],
- selectTown:["0"],
- cityVal:"0",
- timeType: '1', //时间过滤条件 1是上月 2是半年
- leftData1: {}, //左边数据块1
- leftData2: {}, //左边数据块2
- bakLeftData1:{},//缓存左边数据块1
- bakLeftData2:{},//缓存左边数据块2
- yesterdayData: {},
- leftChart1: null, //左边的图表1
- leftChart2: null, //左边的图表2
- leftData3:null,//左边的图表3
- leftData2_legend:null,//左边的图表2中间数据
- tableData1: null, //表格数据1
- tableData2: null, //表格数据2
- mapData: null,
- allData: null, //所有的数据 用来切换区县
- lineHeightIndex: null,
- skipShow: 0,
- hasData1:true,
- hasData2:true,
- hasData3:true,
- hasData4:true,
- hasData5:true,
- hasData6:true,
- hasMapData:true,
- time:'',
- middleData1:'',
- middleData2:'',
- middleData3:'',
- linkageFilter1:'',
- linkageFilter3:'',
- },
- mounted: function() {
- var _nowMonth;
- nowMonth == '0'?_nowMonth = 12:_nowMonth=nowMonth
- this.time = new Date(nowYear+'-'+ (_nowMonth))
- this.linkageFilter1 = "quotaDate >= '" + getLastMonthStartDate() + "' and quotaDate <= '" + getLastMonthEndDate() + "';";
- this.linkageFilter2 = "quotaDate >= '" + getHalfYearStartDate() + "' and quotaDate <= '" + getHalfYearEndDate() + "';";
- this.initData();
- },
- filters:{
- formatData:function(value){
- if(value>100000){
- if(value>1000000000){
- return (value/100000000).toFixed(2)+"亿"
- }else{
- return (value/10000).toFixed(2)+"万"
- }
- }else{
- return value
- }
- }
- },
- methods: {
- initData: function() {
- this.timeType = 1;//默认显示本月
- $(".div-mask-layer").show();
- var vm = this;
- // debugger
- // 这个月
- var linkageFilter1 = this.linkageFilter1
- // console.log(linkageFilter1)
- if(vm.cityVal!="0") {
- linkageFilter1 += "town=" + vm.cityVal[0] + ";";
- if(vm.cityVal[1]){
- linkageFilter1 += "org='" + vm.cityVal[1] + "';";
- }
- }
- // 半年
- var linkageFilter2 = this.linkageFilter2
- if(vm.cityVal!="0") {
- linkageFilter2 += "town=" + vm.cityVal[0] + ";";
- if(vm.cityVal[1]){
- linkageFilter2 += "org='" + vm.cityVal[1] + "';";
- }
- }
- // console.log(linkageFilter2)
- // 本月,没有地区条件
- var linkageFilter3 = vm.linkageFilter1;
- // console.log(linkageFilter3)
- var reqUrl = [{url: bigDataAPI.getCityHospital,reqType: 'get',data: {}},
- {url: bigDataAPI.getNoChartTemplateData,reqType: 'get',data: {viewCodeStr: "VIEW_22_0004",linkageFilter:linkageFilter1}},//医保费用
- {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_22_0003",linkageFilter:linkageFilter2}},//医保支出费用月趋势
- {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_22_0002",linkageFilter:linkageFilter1}},//医保目录外费用占比
- {url: bigDataAPI.getTemplateDataByViewCode,reqType: 'get',data: {viewCode: "VIEW_22_0005",linkageFilter:linkageFilter1}},//
- {url:bigDataAPI.getMapJingWeiDuInfo,reqType: 'get',data:{}},//上饶地图经纬度数据
- {url: bigDataAPI.getNoChartTemplateData,reqType: 'get',data: {viewCodeStr: "VIEW_22_0001",linkageFilter:linkageFilter1,limitCondition:JSON.stringify({'VIEW_22_0001': '50'})}},//机构排行
- {url: bigDataAPI.getNoChartTemplateData,reqType: 'get',data: {viewCodeStr: "VIEW_22_0006",linkageFilter:linkageFilter1,limitCondition:JSON.stringify({'VIEW_22_0006': '50'})}},//疾病
- {url: bigDataAPI.getNoChartTemplateData,reqType: 'get',data: {viewCodeStr: "VIEW_22_0004",linkageFilter:linkageFilter3}}//医保费用地图数据
- ];
- // debugger
- httpRequest.getReqPromises(reqUrl).then(function(datas) {
- vm.town = datas[0].map((item, index, arr) => {
- item.children.map((t) => {
- return t.label = t.text;
- })
- item.label = item.text;
- return item;
- })
- vm.town.unshift({
- label: '上饶市',
- value: '0'
- })
- // debugger
- // console.log(datas[1])
- vm.middleData1 = toThousands(datas[1].obj.VIEW_22_0004[0].HC_22_1001/10000);
- vm.middleData3 = toThousands(datas[1].obj.VIEW_22_0004[0].HC_22_1006/10000);
- if(vm.middleData3 != "0"){
- vm.middleData2 = ((datas[1].obj.VIEW_22_0004[0].HC_22_1001-datas[1].obj.VIEW_22_0004[0].HC_22_1006)/datas[1].obj.VIEW_22_0004[0].HC_22_1006*100).toFixed(2);
- }else{
- vm.middleData2 = 0
- }
- console.log(vm.middleData2)
- if(vm.middleData2 == 'NaN'){
- vm.middleData2 = 0;
- }
- var chart2 = datas[2].obj.viewInfos[0].options[0].option;
- // vm.leftData1 = datas[1];
- var chart3 = datas[3].obj.viewInfos[0].options[0].option;
- var chart4 = datas[4].obj.viewInfos[0].options[0].option;
- var data5 = datas[5];
- var data6 = datas[6];
- var data7 = datas[7];
- var data8 = datas[8];
- vm.setLeftChart1(chart2);
- vm.setLeftChart2(chart3);
- vm.setLeftChart3(chart4);
- vm.setTable1(data6)
- vm.setTable2(data7)
- echarts.registerMap('上饶',data5);
- vm.setMapData(data8);
- vm.setYesterDay(data8);
- $(".div-mask-layer").hide();
- })
- },
- setleftData1: function() {
- var options = {},options1={},options2={},vm=this;
- if(this.leftData1.successFlg) {
- _.map(vm.leftData1.obj.VIEW_14_0011,function(item,index){
- if(vm.cityVal=="0"){//上饶市
- options1 = vm.leftData1.obj.VIEW_14_0011[0];
- }else if(item.firstColumn==vm.city){
- options1 = item;
- }
- })
- }
- if(this.leftData2.successFlg) {
- _.map(vm.leftData2.obj.VIEW_14_0011,function(item,index){
- if(vm.cityVal=="0"){//上饶市
- options2 = vm.leftData2.obj.VIEW_14_0011[0];
- }else if(item.firstColumn==vm.city){
- options2 = item;
- }
- })
- }
- vm.bakLeftData1 = this.setFormater(options1);
- vm.bakLeftData2 = this.setFormater(options2);
- this.leftData = vm.bakLeftData1;
- },
- setYesterDay: function(data3) {
- var options = {},vm=this;
- if(data3.successFlg) {
- _.map(data3.obj&&data3.obj.VIEW_14_0012||[],function(item,index){
- if(vm.cityVal=="0"){//上饶市
- options = data3.obj.VIEW_14_0012[0];
- }else if(item.firstColumn==vm.city){
- options = item;
- }
- })
- }
- if(options){
- this.setFormater(options);
- this.yesterdayData = options;
- }
- },
- setLeftChart1: function(data) {
- var options = JSON.parse(data);
- options = leftChart1(options);
- this.leftData1 = options;
- },
- setLeftChart2: function(data) {
- var options = JSON.parse(data);
- this.leftData2_legend = null;
- if(options.series[0].data[0] && options.series[0].data[1]){
- if(options.series[0].data[0].value && options.series[0].data[1].value){
- this.leftData2_legend = toThousands((Number(options.series[0].data[0].value)+Number(options.series[0].data[1].value))/10000)
- }
- }
- options = leftChart2(options);
- this.leftData2 = options;
- },
- setLeftChart3: function(data) {
- // debugger
- var options = JSON.parse(data);
- options = leftChart3(options);
- this.leftData3 = options;
- },
- setMapData: function(data3) {
- // debugger
- var optionData = [];
- _.map(data3.obj&&data3.obj.VIEW_22_0004||[], function(item) {
- if(item.firstColumn != "合计") {
- optionData.push({
- name: item.town,
- value: parseInt(item.HC_22_1001)
- })
- }
- })
- if(optionData.length>0){
- var options = optionData;
- this.mapData = {
- data: options,
- index: this.lineHeightIndex
- };
- this.hasMapData = true;
- }else{
- this.hasMapData = false;
- }
- },
- setTable1: function(data) {
- var arr = data.obj.VIEW_22_0001;
- arr.shift()
- arr = arr.map(function(item){
- item.HC_22_1001 = toThousands(Number(item.HC_22_1001)/10000)
- return item;
- })
- if(arr.length == 0){
- this.tableData1 = false;
- }else{
- this.tableData1 = arr;
- }
- // console.log(this.tableData1)
- },
- setTable2: function(data) {
- // console.log(data)
- var arr = data.obj.VIEW_22_0006;
- arr.shift()
- arr = arr.map(function(item){
- if(item.HC_22_1004 == 0){
- return item;
- }
- item.HC_22_1004 = toThousands(Number(item.HC_22_1004)/10000)
- return item;
- })
- if(arr.length == 0){
- this.tableData2 = false;
- }else{
- this.tableData2 = arr;
- }
- // console.log(this.tableData2)
- },
- setCity(item) {
- this.city = item.name;
- },
- setTimeStr(v) {
- this.timeType = v;
- this.timeType == 1?this.leftData=this.bakLeftData1:this.leftData=this.bakLeftData2;
- },
- setFormater: function(obj) {
- for(var c in obj) {
- if(obj[c].toString().indexOf(",") == -1){//不存在,,说明要格式化
- var re = /^[0-9]+.?[0-9]*/;//判断字符串是否为数字//判断正整数/[1−9]+[0−9]∗]∗/
- if (!re.test(obj[c])) { //不是数字,则不格式化
- continue;
- }
- if(obj[c]>100000){
- obj[c] = (obj[c]/10000).toFixed(2)+"万"
- }else{
- obj[c] = toThousands(obj[c]);
- }
- }
- }
- return obj;
- },
- newObj: function(obj) {
- return JSON.parse(JSON.stringify(obj))
- },
- clickMap: function(res) {
- var vm = this;
- // console.log(res)
- this.city = res.name;
- // console.log(this.town)
- var k = null;
- this.town.map(function(item,index){
- if(item.label == res.name){
- k = item.value
- }
- if(item.label == vm.city) {
- vm.cityVal = item.value;
- }
- })
- this.selectTown = [];
- this.selectTown.push(k);
- },
- skipClick: function() {
- // console.log(222)
- this.skipShow == 0 ? this.skipShow = 1 : this.skipShow = 0
- },
- areaChange:function(data){
- console.log(data)
- console.log(this.town)
- var cityValue = [],city=null;
- this.town.map(function(item,index){
- if(item.value == data[0]){
- cityValue.push(item.value);
- city = item.label
- if(data[1]){
- item.children.map(function(t){
- if(t.value == data[1]){
- cityValue.push(t.value)
- }
- })
- }
- }
- })
- console.log(cityValue)
- this.cityVal = cityValue;
- this.city = city;
- },
- clickTime:function(data){
- // console.log(data);
- var year = data.substring(0,4);
- var month = data.substring(5,7);
- var linkageFilter1 = "quotaDate >= '" + data +"-01' and quotaDate <= '" + data+'-'+getDaysInMonth(year,month)+"';"
- var linkageFilter2 = "quotaDate >= '" + getLastHalfMonthArray(data) +"' and quotaDate <= '" + data+'-'+getDaysInMonth(year,month)+"';"
- this.linkageFilter1 = linkageFilter1;
- this.linkageFilter2 = linkageFilter2;
- this.initData();
- }
- },
- watch: {
- cityVal: function(value) {
- // console.log(value)
- var that = this;
- that.lineHeightIndex = this.city;
- // this.selectTown = value;
- this.initData();
- }
- }
- });
- //数字格式化
- function toThousands(num) {
- if (!num && num !== 0) return ''
- if (typeof (num) == 'number') {
- num = num.toString()
- }
- var str = ''
- if (num.indexOf('.') != -1) {
- num = Number(num).toFixed(2);
- str = num.split('.')[1];
- num = num.split('.')[0];
- }
- if (str) {
- str = '.' + str
- }
- return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + str;
- }
- document.getElementById("full").onclick = function (event) {
- var app = document.getElementById('app');
- console.log()
- if($("#full").attr('src') == "../images/full-q.png"){
- $("#full").attr('src',"../images/full-s.png")
- FullScreen(app);
- }else{
- $("#full").attr('src',"../images/full-q.png")
- exitfullscreen()
- }
- }
- function FullScreen() {
- var el = document.documentElement;
- var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen; //定义不同浏览器的全屏API
- //执行全屏
- if (typeof rfs != "undefined" && rfs) {
- debugger
- rfs.call(el);
- } else if (typeof window.ActiveXObject != "undefined") {
- var wscript = new ActiveXObject("WScript.Shell");
- if (wscript != null) {
- debugger
- wscript.SendKeys("{F11}");
- }
- }
- }
- function exitfullscreen() { //退出全屏
- if (document.exitFullscreen) {
- document.exitFullscreen();
- }
- else if (document.mozCancelFullScreen) {
- document.mozCancelFullScreen();
- }
- else if (document.webkitCancelFullScreen) {
- document.webkitCancelFullScreen();
- }
- else if (document.msExitFullscreen) {
- document.msExitFullscreen();
- }
- }
|