const $ = require('jquery'); require("../css/reset.less") require("../css/console.less") require("../images/logo.png") require("../images/arrow_down.png") require('./modal.js'); require('./scrollBar.js') // import 'zrender/lib/svg/svg'; const {api} = require('./api.js') const echarts = require('echarts'); require('./../resource/jquery-ui/jquery-ui.min.js'); require('./../resource/jquery-ui/jquery-ui.min.css'); const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData} = require('../js/utils.js'); const { get } = require('jquery'); let payMoney = [],behosDateStart="",ownSelectDate='',behosDateEnd="",dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科",deptId="",level="甲",lineType="合格率",lineType1=[],lineType2=[],lineType3=[],lineType4=[]; $(function(){ if(!hasData('YH-KZT')){ $("body").html('') } // if(hospital == "台州市立"){ // $(".part03 .partTitlePub .name").html('各科室甲级病例占比') // $(".innerOuter").css("display","block") // }else{ // $(".part03 .partTitlePub .name").html('病案首页合格率') // $(".innerOuter").css("display","none") // } $(".partTitle p span").html(hospital) resizeBox() initConsole()//质控列表 // getBarData(2)//图标数据获取 dateChange() $(window).resize(function(){ resizeBox() }) $(window).click(function(){ window.parent.userActionHide() $(".toggleSlide ul").css("display","none") }) let sildeIS = true if(!hasData('FUNC000045')&&!hasData('FUNC000046')){ $(".toggleSlide").css("opacity","0.5") sildeIS = false } $(".toggleSlide p").click(function(e){ if(!sildeIS)return e.stopPropagation() $(this).next().slideToggle() }) $(".toggleSlide li").click(function(){ let str = $(this).attr("data-str"),type = $(this).attr("data-type") if(type == 1){ // if(!hasData('FUNC000045')){ // return // } slideType = 1 level = "甲" getEveryDeptLevel() // $(".pubEchart .title span").html("科室平均住院天数柱状图") // barChart(dayLis,dateType) $(this).parent().slideToggle().prev().find("span").html(str) }else if(type == 2){ // if(!hasData('FUNC000046')){ // return // } slideType = 2 level = "乙" getEveryDeptLevel() // $(".pubEchart .title span").html("科室平均住院花费柱状图") // barChart(payMoney,dateType) $(this).parent().slideToggle().prev().find("span").html(str) }else if(type == 6){ // if(!hasData('FUNC000046')){ // return // } slideType = 6 level = "丙" getEveryDeptLevel() // $(".pubEchart .title span").html("科室平均住院花费柱状图") // barChart(payMoney,dateType) $(this).parent().slideToggle().prev().find("span").html(str) }else if(type == 3){//科室平均分内科 if(!hasData('FUNC000091')){ return } deptType="内科" getAverageScoreLis() $(this).parent().slideToggle().prev().find("span").html(str+"系统") }else if(type == 4){//科室平均分外科 if(!hasData('FUNC000091')){ return } deptType="外科" getAverageScoreLis() $(this).parent().slideToggle().prev().find("span").html(str+"系统") }else if(type == 7){//病案首页firstLevelPercent emptyPercent errorPercent lineType="合格率" getHomeData('firstLevelPercent') $(this).parent().slideToggle().prev().find("span").html(str) }else if(type == 8){//病案首页 lineType = "完整率" getHomeData('emptyPercent') $(this).parent().slideToggle().prev().find("span").html(str) }else if(type == 9){//病案首页 lineType = "完善率" getHomeData('errorPercent') $(this).parent().slideToggle().prev().find("span").html(str) } }) $(".part02").on("mouseenter",".bingli li.sec",function(){ $(this).find(".explainNum").css("color","#00A1FF") }) $(".part02").on("mouseleave",".bingli li.sec",function(){ $(this).find(".explainNum").css("color","#A5ADBF") }) getEveryDeptLevel() }) function getDetails(dateType){ $(".pubEchartB.paymoney .title").click(function(){ focusMenuItem("YH-ZKK-GKSQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType+"&deptType="+deptType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".part02 .bingliLis").click(function(){ focusMenuItem("YH-ZKK-GKSQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".part03 .circle .title").click(function(){ focusMenuItem("YH-ZKK-TMQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&shijian="+dateType+"&qxName=&selectReject=1"+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".part02").on("click",".bingli li.sec",function(){ focusMenuItem("YH-BLZK-ZKPF"); let dataC = $(this).attr("data-c") let chengdu = dataC == 1?'甲':dataC==2?'乙':'丙' $(parent.document).find("#contentIframe").attr("src","./qcList.html?from=1&dateType="+dateType+"&chengdu="+chengdu+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".part03 .partTitlePub").click(function(){ // if(hospital=="台州市立"){ // focusMenuItem("YH-ZKK-GKSJJBLZB_XQ") // $(parent.document).find("#contentIframe").attr("src","./jiaji.html?from=1&dateType="+dateType) // }else{ // focusMenuItem("YH-ZKK-BASYHGLZB_XQ"); // $(parent.document).find("#contentIframe").attr("src","./partDetailControl.html?from=1&dateType="+dateType) // } focusMenuItem("YH-ZKK-BASYHGLZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./partDetailControl.html?from=1&dateType="+dateType+"&lineType="+lineType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".paymoney.pubEchart .title").click(function(){ // if($(this).text().indexOf("花费")!==-1){ // focusMenuItem("YH-ZKK-KSPJZYHF_XQ"); // $(parent.document).find("#contentIframe").attr("src","./payDetail.html?from=1&dateType="+dateType) // }else{ // focusMenuItem("YH-ZKK-KSPJZYTS_XQ"); // $(parent.document).find("#contentIframe").attr("src","./dayDetail.html?from=1&dateType="+dateType) // } focusMenuItem("YH-ZKK-GKSQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".defect .partTitlePub").click(function(){ //from 1 console / 2 deptConsole focusMenuItem("YH-ZKK-GMKQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./mukuaiControl.html?from=1&dateType="+dateType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $(".circleB .title").click(function(){ focusMenuItem("YH-ZKK-TMQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&shijian="+dateType+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $("body").on("click",".homegodetail",function(){ let name = $(this).attr("data-name") focusMenuItem("YH-ZKK-TMQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&shijian="+dateType+"&model="+name+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) $("body").on("click",".explainPanT .explainLi",function(){ let deptName = $(this).attr("data-dept") let deptId = $(this).attr("dept-id") focusMenuItem("YH-ZKK-TMQXZB_XQ"); $(parent.document).find("#contentIframe").attr("src","singleVeto.html?from=1&shijian="+dateType+"&qxName="+deptName+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd) }) } //判断有无某一权限 function hasData(data){ let lis = JSON.parse(getCookie("codeLis")) // console.log(lis) if(lis.indexOf(data)>-1){//有权限 return true } return false; } function resizeBox(){ $(".partWrap").css({ height:$(window).height()-43+'px' }) } //所有数据切换日期筛选 function dateChange(){ $(".monthYear .mon").click(function(){ $(this).css({ backgroundColor:'#00A1FF', color:'#E9EBEF', "border-color":'#00A1FF' }).siblings().css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) dateType = 1 ownSelectDate = '' dateConsole(1,true) }) $(".monthYear .year").click(function(){ $(this).css({ backgroundColor:'#00A1FF', color:'#E9EBEF', "border-color":'#00A1FF' }).siblings().css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) dateType = 2 ownSelectDate = '' dateConsole(2,true) }) } //控制台数 function initConsole(result){ let url = { '本月病历数':require("../images/icon6.png"), '本月不合格病历-机器':require("../images/icon7.png"), '本月质控数-机器':require("../images/icon10.png"), '本月甲级病历-机器':require("../images/icon8.png"), '本月乙级病历-机器':require("../images/icon9.png"), '本年病历数':require("../images/icon6.png"), '本年不合格病历-机器':require("../images/icon7.png"), '本年质控数-机器':require("../images/icon10.png"), '本年甲级病历-机器':require("../images/icon8.png"), '本年乙级病历-机器':require("../images/icon9.png"), } let dom = ''; for(let i in result){ if(i.indexOf("人工")==-1){ let name = i.split("-")[0]; let num = 0; if(name=='本月病历数'||name=='本年病历数'){ num = result[i] }else{ num = result[name+'-人工']+result[i] } dom += `
  • ${name}

    ${num}

  • ` } } $(".partAll").html(dom) } //平均分 function getAverageScoreLis(){ let url = '' if(hospital=="台州市立"&&hasData('FUNC000091')){ url = api.getAverageScoreByDeptClass }else if(hospital=="长兴医院"&&hasData('FUNC000047')){ url = api.getAverageScore }else{ return } post(url,{//各科室质控平均分 "type": dateType||1,//1月2年 "deptClass":deptType, "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ let result1 = (hospital=="台州市立"?data.data:data.data['各科室质控平均分'])||[] let dataX1=[],dataY1=[] for(let i = 0;i < result1.length;i++){ dataX1.push(result1[i].name) dataY1.push(result1[i].averageValue) } barChartPay(dataX1,dataY1) } }) } //获取各科室病历等级占比 function getEveryDeptLevel(){ if(1){//权限暂无 post(api.qcResultLevelPercent,{//各科室病历等级占比 "type": dateType||2,//1月2年 "level":level, "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ let result1 = data.data||[] let dataX1=[],dataY1=[] for(let i = 0;i < result1.length;i++){ dataX1.push(result1[i].deptName) dataY1.push(result1[i].percentStr.replace('%','')) } barChartLevel(dataX1,dataY1) } }) }else{ $(".toggleSlide1").css("opacity",0.5) } } //病案首页合格率 firstLevelPercent emptyPercent errorPercent function getHomeData(name){ if(hasData("FUNC000075")){ post(api.homePageLevelLimit,{//病案首页 "type": dateType||2,//1月2年 "startDate":behosDateStart, "endDate":behosDateEnd, "desc": name }).then((res)=>{ let data = res.data; if(data.code == 0){ let result1 = data.data||[] let dataX=[],dataY1=[],dataY2=[],dataY3=[] for(let i = 0;i < result1.length;i++){ dataX.push(result1[i].deptName) dataY1.push((result1[i].firstLevelPercentStr.replace('%','')-0)) dataY2.push((result1[i].emptyPercentStr.replace('%','')-0)) dataY3.push((result1[i].errorPercentStr.replace('%','')-0)) } // lineType1 = dataY1.sort(function(a, b){return b - a}) // lineType2 = dataY2.sort(function(a, b){return b - a}) // lineType3 = dataY3.sort(function(a, b){return b - a}) lineType4 = dataX let datay = (lineType == "合格率")?dataY1:(lineType=="完整率"?dataY2:dataY3) lineChartHome(dataX,datay) } }) } } //获取图表数据 function getBarData(type){ // if(hasData('FUNC000045')){ // post(api.getAverageDayNum,{//平均住院天数 // "type": type||1//1月2年 // }).then((res)=>{ // let data = res.data; // if(data.code == 0){ // let result2 = data.data['平均住院日']||[] // dayLis = result2 // if(slideType == 1){ // barChart(result2,type||1) // } // } // }) // }else{ // $(".toggleSlide1").css("opacity",0.5) // } // if(hasData('FUNC000046')){ // post(api.getAverageFee,{//平均住院费用 // "type": type||1//1月2年 // }).then((res)=>{ // let data = res.data; // if(data.code == 0){ // let result3 = data.data['平均住院费用']||[] // payMoney = result3; // if(slideType == 2){ // barChart(result3,type||1) // } // } // }) // }else{ // $(".toggleSlide2").css("opacity",0.5) // } // if(hasData('FUNC000048')&&hospital=="台州市立"){ // post(api.getLevelResultDept,{//各科室甲级占比 // "type": type||1//1月2年 // }).then((res)=>{ // let data = res.data; // if(data.code == 0){ // let result2 = data.data['各科室甲级病历占比']||[] // let dataX2=[],dataY2=[]; // for(let i = 0;i < result2.length;i++){ // dataX2.push(result2[i].deptName) // dataY2.push(result2[i].firstPercent.replace('%','')) // } // lineChart(dataX2,dataY2) // } // }) // } // if(hasData('FUNC000075')&&hospital=="长兴医院"){ // post(api.homePageLevelLimit,{//病案首页 // "type": type||1//1月2年 // }).then((res)=>{ // let data = res.data; // if(data.code == 0){ // let result1 = data.data||[] // let dataX1=[],dataY1=[] // for(let i = 0;i < result1.length;i++){ // dataX1.push(result1[i].deptName) // dataY1.push(result1[i].firstLevelPercentStr.replace('%','')) // } // lineChartSpecial(dataX1,dataY1) // } // }) // } if(hasData('FUNC000049')){ post(api.leaveHosCount,{//出院人数统计 "type": type||1,//1月2年 "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ // barChart(result2,type||1) // console.log(data) let result1 = data.data['出院人数统计']||[] personNum(result1) } }) } if(hasData('FUNC000050')){ post(api.mrCount,{//质控病历统计 "type": type||1,//1月2年 "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data if(data.code == 0){ let result3 = data.data['病历数统计']||[] setNumDetail(result3) } }) } if(hasData('FUNC000051')){ post(api.entryCountGroupByCase,{//各模块缺陷占比排行 "type": type||1,//1月2年 "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ let result1 = data.data['各模块缺陷占比排行']||[]; // result1.length>8?result1.length=8:""; queList(result1) } }) } if(hasData('FUNC000052')){ post(api.entryCountGroupByEntry,{//条目缺陷占比 "type": type||1,//1月2年 "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ let result3 = data.data['条目缺陷占比']||[] for(let i = 0;i < result3.length;i++){ result3[i].value = result3[i].num } emptyCircleB(result3) panDetailB(result3) } }) } // if(hasData('FUNC000053')){ // post(api.entryByDept,{//各科室缺陷占比 // "type": type||1//1月2年 // }).then((res)=>{ // let data = res.data; // if(data.code == 0){ // let result2 = data.data['各科室缺陷占比']||[] // for(let i = 0;i < result2.length;i++){ // result2[i].value = result2[i].num // } // emptyCircle(result2) // panDetail(result2) // } // }) // } // if(1){ post(api.entryRejectPercent,{//单项否决 "type": type||2,//1月2年 "deptClass": "", "level": "", "startDate":behosDateStart, "endDate":behosDateEnd }).then((res)=>{ let data = res.data; if(data.code == 0){ let result2 = data.data||[] for(let i = 0;i < result2.length;i++){ result2[i].value = result2[i].num } emptyCircle(result2) panDetail(result2) } }) // } } //part01 function personNum(data){ if(data['总人数']==0){ $(".chuyuan,.personNum").css("display","none") picEmptyData(".chuyuanEmpty") return }else{ $(".chuyuanEmpty").css("display","none") $(".chuyuan,.personNum").css("display","block") } $(".personNum").html("总人数:"+data['总人数']) $(".died").html(data['死亡人数']) $(".newborn").html(data['新生儿人数']) $(".patientNum").html(data['手术病人数']) } //part02 function setNumDetail(data){ // console.log(data,2222222222) if(data.length == 0){ $(".pingfendengji").css("display","block") $(".bldjs").css("display","none") picEmptyData(".pingfendengjiEmpty") return }else{ $(".bldjs").css("display","block") $(".pingfendengji").css("display","none") } let str = '' for(let i = 0;i < data.length;i++){ str += `
  • ${data[i].num}

    ${data[i].name}

  • ` if(data[i].name == '甲级病历'){ let tmp = [] data[i].value = data[i].num tmp.push(data[i]) tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num}) part02pan(tmp,'fen01') } if(data[i].name == '乙级病历'){ let tmp = [] data[i].value = data[i].num tmp.push(data[i]) tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num}) part02pan(tmp,'fen02') } if(data[i].name == '丙级病历'){ let tmp = [] data[i].value = data[i].num tmp.push(data[i]) tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num}) part02pan(tmp,'fen03') } } $('.bingli').html(str) } //part02pan function part02pan(data,dom){ // console.log(data,33333) dom = echarts.init(document.getElementById(dom)); $(window).resize(function(){ dom.resize() }); let bgColor = '#fff'; let title = '总量'; let color = ['#3fffd1','#4c5c82']; let echartData = data; option = { //backgroundColor: bgColor, color: color, title: [{ text:'{val|' + echartData[0].percentStr + '}', top: 'center', left: 'center', textStyle: { rich: { val: { fontSize: 12, color: '#E9EBEF', /*fontWeight: 'bold',*/ padding: [10, 0] }, name: { fontSize: 12, fontWeight: 'normal', color: '#E9EBEF', } } } }], series: [{ name: '', type: 'pie', radius: ['65%', '95%'], data: echartData, hoverAnimation:true, hoverOffset:3, itemStyle: { normal: { borderColor: '#203463', borderWidth: 3 } }, label: { normal: { show:false, } }, }] }; dom.setOption(option); } //折现图各科室甲级病历占比(长兴) function lineChart(dataX,dataY){ if(dataX.length==0&&dataY.length==0){ $(".barChartLine").css("display","none") picEmptyData(".barChartLineEmpty") return }else{ $(".barChartLine").css("display","block") $(".barChartLineEmpty").css("display","none") } var myCharts = echarts.init(document.getElementById('lineChart')); $(window).resize(function(){ myCharts.resize() }); option = { color:"#00A1FF", tooltip: { trigger: 'axis', color:'#fff', formatter: function(param) { return '
    '+ param[0].name + "
    " +"甲级病历占比:"+ param[0].value+"%" + "
    " '
    ' } }, grid: { left: '3%', right: '5%', bottom: '3%', containLabel: true }, title:[{ text: dataX.length>0?'百分比':'', top: 15, left: 0, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }], toolbox: { show: false, feature: { dataZoom: { yAxisIndex: 'none' }, dataView: {readOnly: false}, magicType: {type: ['line', 'bar']}, restore: { }, saveAsImage: {} }, emphasis:{ iconStyle:{ color:'red' } }, }, xAxis: { type: 'category', boundaryGap: false, data: dataX, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:'45', formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } } }, yAxis: { type: 'value', axisLabel: { formatter: '{value} %', textStyle: { color: '#E9EBEF' } }, axisLine: {//y轴 show: false }, axisTick: { show: false }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } }, series: [ { name: '甲级病历占比:', type: 'line', data: dataY, } ] }; myCharts.setOption(option); } function lineChartSpecial(dataX,dataY){ if(dataX.length==0&&dataY.length==0){ $(".barChartLine").css("display","none") picEmptyData(".barChartLineEmpty") return }else{ $(".barChartLine").css("display","block") $(".barChartLineEmpty").css("display","none") } var myCharts = echarts.init(document.getElementById('lineChart')); $(window).resize(function(){ myCharts.resize() }); option = { color: ['#37C4FC'], tooltip: { trigger: 'axis', position: 'right', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'line' // 默认为直线,可选为:'line' | 'shadow' }, formatter: function(param) { return '
    '+ param[0].name + "
    " +'病案首页合格率:'+ param[0].value+"%" + "
    " '
    ' } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: dataX, axisTick: { alignWithLabel: true }, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:45, formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } } } ], yAxis: [ { type: 'value', axisLine: {//y轴 show: false }, axisTick: { show: false }, axisLabel: {//y轴刻度 textStyle: { color: '#E9EBEF' } }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } } ], title:[{ text: '合格率', top: 15, left: 10, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }], series: [ { name: '病案首页合格率', type: 'bar', barWidth: '23%', data: dataY } ] }; myCharts.setOption(option); } //折线图病案首页 function lineChartHome(dataX,dataY){ // console.log(dataX,dataY) if(dataX.length==0){ $(".barChartLine").css("display","none") picEmptyData(".barChartLineEmpty") return }else{ $(".barChartLine").css("display","block") $(".barChartLineEmpty").css("display","none") } var myCharts = echarts.init(document.getElementById('lineChart')); $(window).resize(function(){ myCharts.resize() }); option = { color:(lineType == "合格率")?'#00A1FF':(lineType=="完整率"?'#FF2B92':'#3EFFD1'), title: { text: '百分比', top: 15, left: 10, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }, tooltip: { trigger: 'axis', position: 'right', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'line' // 默认为直线,可选为:'line' | 'shadow' }, formatter: function(param) { return `
    ${param[0].name}
    病案首页${lineType}:${param[0]&¶m[0].value}%
    ` } }, // legend: { // selectedMode :false, // right:15, // top:15, // data: [ // { // name: '合格率', // textStyle: { // color: '#A5ADBF' // } // }, // { // name: '完整率', // textStyle: { // color: '#A5ADBF' // } // }, // { // name: '完善率', // textStyle: { // color: '#A5ADBF' // } // } // ] // }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'category', boundaryGap: false, data: dataX, axisTick: { alignWithLabel: true }, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:45, formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } } }, yAxis: { type: 'value', min:0, max:100, boundaryGap: [0.01, 0.01],axisLabel: { show: true, }, axisLine: {//y轴 show: false }, axisTick: { show: false }, axisLabel: {//y轴刻度 textStyle: { color: '#E9EBEF' }, interval: 'auto', formatter: '{value} %' }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } }, series: [ { name: lineType, type: 'line', // stack: '总量', data: dataY }, // { // name: '完整率', // type: 'line', // // stack: '总量', // data: dataY2 // }, // { // name: '完善率', // type: 'line', // // stack: '总量', // data: dataY3 // } ] }; myCharts.setOption(option); } //柱状图住院费用 function barChartPay(dataX,dataY){ // console.log(dataX,dataY,78787878) if(dataX.length==0&&dataY.length==0){ $("#barChartPay,.innerOuter").css("display","none") picEmptyData('.barChartPayEmptys') return }else{ if(hospital == "台州市立"){ $(".innerOuter").css("display","block") }else{ $(".innerOuter").css("display","none") } $("#barChartPay").css("display","block") $(".barChartPayEmptys").css("display","none") } var myCharts = echarts.init(document.getElementById('barChartPay')); $(window).resize(function(){ myCharts.resize() }); option = { color: ['#37C4FC'], tooltip: { trigger: 'axis', position: 'right', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'line' // 默认为直线,可选为:'line' | 'shadow' } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: dataX, axisTick: { alignWithLabel: true }, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:45, formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } } } ], yAxis: [ { type: 'value', axisLine: {//y轴 show: false }, axisTick: { show: false }, axisLabel: {//y轴刻度 textStyle: { color: '#E9EBEF' } }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } } ], title:[{ text: dataX.length>0?'分数':'', top: 15, left: 10, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }], series: [ { name: '质控平均分', type: 'bar', barWidth: '23%', data: dataY } ] }; myCharts.setOption(option); } //柱状图住院日期 function barChartLevel(dataX,dataY){ // console.log(dataX,dataY,7887878787) if(dataX.length==0&&dataY.length==0){ $("#barChart,.innerOuter").css("display","none") picEmptyData('.barChartPayEmpty') return }else{ $("#barChart").css("display","block") $(".barChartPayEmpty").css("display","none") } var myCharts = echarts.init(document.getElementById('barChart')); $(window).resize(function(){ myCharts.resize() }); option = { color: ['#37C4FC'], tooltip: { trigger: 'axis', position: 'right', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'line' // 默认为直线,可选为:'line' | 'shadow' }, formatter: function(param) { return `
    ${param[0].name}
    ${level}级病历占比:${param[0]&¶m[0].value}%
    ` } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: dataX, axisTick: { alignWithLabel: true }, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:45, formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } } } ], yAxis: [ { type: 'value', axisLine: {//y轴 show: false }, axisTick: { show: false }, axisLabel: {//y轴刻度 textStyle: { color: '#E9EBEF' }, interval: 'auto', formatter: '{value} %' }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } } ], title:[{ text: dataX.length>0?'百分比':'', top: 15, left: 10, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }], series: [ { name: level+'级病历占比', type: 'bar', barWidth: '23%', data: dataY } ] }; myCharts.setOption(option); } function barChart(data,type){ // console.log(data,type,78787888787787) if(data.length==0){ $(".toggleSlide,#barChart").css("display","none") picEmptyData('.barChartPayEmpty') return }else{ $(".toggleSlide,#barChart").css("display","block") $(".barChartPayEmpty").css("display","none") } var myChart = echarts.init(document.getElementById('barChart')); $(window).resize(function(){ myChart.resize() }); var posList = [ 'left', 'right', 'top', 'bottom', 'inside', 'insideTop', 'insideLeft', 'insideRight', 'insideBottom', 'insideTopLeft', 'insideTopRight', 'insideBottomLeft', 'insideBottomRight' ]; let app = {} app.configParameters = { rotate: { min: -90, max: 90 }, align: { options: { left: 'left', center: 'center', right: 'right' } }, verticalAlign: { options: { top: 'top', middle: 'middle', bottom: 'bottom' } }, position: { options: echarts.util.reduce(posList, function (map, pos) { map[pos] = pos; return map; }, {}) }, distance: { min: 0, max: 100 } }; app.config = { rotate: 90, align: 'left', verticalAlign: 'middle', position: 'insideBottom', distance: 15, onChange: function () { var labelOption = { normal: { rotate: app.config.rotate, align: app.config.align, verticalAlign: app.config.verticalAlign, position: app.config.position, distance: app.config.distance } }; myChart.setOption({ series: [{ label: labelOption }, { label: labelOption }, { label: labelOption }, { label: labelOption }] }); } }; var labelOption = { show: false, position: app.config.position, distance: app.config.distance, align: app.config.align, verticalAlign: app.config.verticalAlign, rotate: app.config.rotate, formatter: '{c} {name|{a}}', fontSize: 12, rich: { name: { textBorderColor: '#fff' } } }; let dataX = [] let data1 = [] let data2 = [] let data3 = [] for(let i = 0;i < data.length;i++){ dataX.push(data[i].name) data1.push(data[i].averageValue)//本月 data2.push(data[i].lastAverageValue)//本年 data3.push(data[i].lastYearAverageValue)//去年本月 } option = { color: ['#37CBCB','#5A8EEE', '#FAD336' ], tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, title:[{ text: dataX.length>0?(slideType==1?'天数':'元'):'', top: 15, left: 10, textStyle: { fontSize: 14, color:'#E9EBEF', fontWeight: 400 } }], legend: { itemWidth :10, itemHeight :10, right:15, top:15, selectedMode:false, textStyle:{ color:'#E9EBEF' }, formatter: function (name) { return name; } }, toolbox: { show: false, orient: 'vertical', left: 'right', top: 'center', feature: { mark: {show: true}, dataView: {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar', 'stack', 'tiled']}, restore: {show: true}, saveAsImage: {show: true} } }, xAxis: [ { type: 'category', axisTick: {show: false}, data: dataX, axisLabel: {//x轴刻度 textStyle: { color: '#E9EBEF' }, rotate:'45', formatter: function (value) { //x轴的文字改为竖版显示 if(value.length>7){ return value.slice(0,7)+'...' } return value; } }, axisLine: {//x轴 lineStyle:{ color:'#4A5D8E' } }, } ], yAxis: [ { type: 'value', axisLine: {//y轴 show: false }, axisTick: { show: false }, axisLabel: {//y轴刻度 textStyle: { color: '#E9EBEF' } }, splitLine:{//分割线 lineStyle:{ color:'#344876' } } } ], series: [ { name: type==1?'上月':'', type: 'bar', barGap: 0, label: labelOption, barWidth: '15%', data: type==1?data2:[] }, { name: type==1?'去年本月':'去年', type: 'bar', label: labelOption, barWidth: '15%', data: data3 }, { name: type==1?'本月':'本年', type: 'bar', label: labelOption, barWidth: '15%', data: data1 } ] }; myChart.setOption(option); } //空心饼图 function emptyCircle(data){ // console.log(data,1111111111) var myChart = echarts.init(document.getElementById('emptyCircle')); $(window).resize(function(){ myChart.resize() }); if(data.length == 0){ $(".emptyCircleWrap").css("'display","none !important") picEmptyData("#emptyCircleWrapEmpty") }else{ $(".emptyCircleWrap").css("'display","block") $(".console #emptyCircleWrapEmpty").html('') } let bgColor = '#203463'; let title = '总量'; let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336']; let echartData = data; let total = echartData.length>0?echartData[0].totleNum:0; option = { /*backgroundColor: bgColor,*/ color: color, title: [{ text: data.length>0?'{val|' + total + '}\n{name|' + title + '}':'', top: 'center', left: 'center', textStyle: { rich: { val: { fontSize: 24, color: '#E9EBEF', fontWeight: 'bold', padding: [10, 0] }, name: { fontSize: 12, fontWeight: 'normal', color: '#E9EBEF', } } } }], tooltip: { trigger: 'item', // formatter: '{b} : {c} ({d}%)', formatter:function(item){ const {name, num, percentStr} = item.data return `${name} : ${num} (${percentStr})` } }, series: [{ name: '', type: 'pie', radius: ['70%', '90%'], data: echartData, hoverAnimation:true, hoverOffset:5, itemStyle: { normal: { borderColor: bgColor, borderWidth: 2 } }, labelLine: { normal: { length: 20, length2: 120, lineStyle: { color: '#e6e6e6' } } }, label: { normal: { show:false, formatter: params => { return params.name == 'A类'?params.name:'' }, padding: [0 , -100, 25, -100], rich: { icon: { fontSize: 16 }, name: { fontSize: 14, padding: [0, 10, 0, 4], color: '#666666' }, value: { fontSize: 18, fontWeight: 'bold', color: '#333333' } } } }, }] }; myChart.setOption(option); } function emptyCircleB(data){ if(data.length == 0){ $(".emptyCircleBData,.emptyCircle").css("'display","none !important") picEmptyData(".emptyCircleBWrap") }else{ $(".emptyCircleBData").css("'display","block") $(".emptyCircleBWrap").css("display","none") } var myChart = echarts.init(document.getElementById('emptyCircleB')); $(window).resize(function(){ myChart.resize() }); let bgColor = '#203463'; let title = '总量'; let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336']; let echartData = data; let total = echartData.length>0?echartData[0].totleNum:0; option = { /*backgroundColor: bgColor,*/ color: color, title: [{ text: data.length>0?'{val|' + total + '}\n{name|' + title + '}':'', top: 'center', left: 'center', textStyle: { rich: { val: { fontSize: 24, color: '#E9EBEF', fontWeight: 'bold', padding: [10, 0] }, name: { fontSize: 12, fontWeight: 'normal', color: '#E9EBEF', } } } }], tooltip: { trigger: 'item', position: 'right', // formatter: '{b} : {c} ({d}%)', formatter:function(item){ const {name, num, percentStr} = item.data return `${name} : ${num} (${percentStr})` } }, series: [{ name: '', type: 'pie', radius: ['70%', '90%'], data: echartData, hoverAnimation:true, hoverOffset:5, itemStyle: { normal: { borderColor: bgColor, borderWidth: 2 } }, labelLine: { normal: { length: 20, length2: 120, lineStyle: { color: '#e6e6e6' } } }, label: { normal: { show:false, formatter: params => { return params.name == 'A类'?params.name:'' }, padding: [0 , -100, 25, -100], rich: { icon: { fontSize: 16 }, name: { fontSize: 14, padding: [0, 10, 0, 4], color: '#666666' }, value: { fontSize: 18, fontWeight: 'bold', color: '#333333' } } } }, }] }; myChart.setOption(option); } //缺陷列表渲染 function queList(data){ let strAll = '',tmp = `mm 排名 缺陷详情 缺陷占比 ` if(data.length == 0){ $(".qtable").css("display","none") picEmptyData(".qtableEmpty") return }else{ $(".qtableEmpty").css("display","none") $(".qtable").css("display","table") } for(let i = 0;i < data.length;i++){ strAll += ` ${i+1}

    ${data[i].name}

    ${data[i].percentStr} ` } $(".qtable").html(tmp+strAll) } //饼图列表注释渲染 function panDetail(data){ let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336']; let strAll = ''; for(let i = 0;i < data.length;i++){ strAll += `

    ${data[i].name}

    ${data[i].num} (${data[i].percentStr}) ` } $(".explainPanT table").html(strAll); } function panDetailB(data){ let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336']; let strAll = ''; for(let i = 0;i < data.length;i++){ strAll += `

    ${data[i].name}

    ${data[i].num} (${data[i].percentStr}) ` } $(".explainPanB table").html(strAll); $(".explainPan").css({ marginTop:-($(".explainPan").height()/2-20)+'px' }) } //时间获取 function getTimeDetail(){ const d = new Date(); const days = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; let sec = d.getSeconds() let min = d.getMinutes() let hour = d.getHours() let str = `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日 / ${days[d.getDay()]} / ${hour>9?hour:'0'+hour}:${min>9?min:'0'+min}:${sec>9?sec:'0'+sec}` $(".dateDetail").html(str) } $(".sureDate").click(function(){ if(!getStaticDate()){ return } let dateStartI = behosDateStart.split(" ")[0] let dateEndI = behosDateEnd.split(" ")[0] setCookieAction(dateStartI,dateEndI) $(".monthYear .year").css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) $(".monthYear .mon").css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) ownSelectDate = 3 getBarData(dateType) getAverageScoreLis() getEveryDeptLevel() getHomeData('firstLevelPercent') getDetails(ownSelectDate||dateType) }) //日期联动 function dateConsole(dateType,flg){ let startDate = "", endDate=new Date() let year = new Date().getFullYear() let month = new Date().getMonth() + 1 if(dateType == '1'){ startDate = new Date(`${year}/${month}/01`) }else if(dateType == '2'){ startDate = new Date(`${year}/01/01`) } else { startDate = "-6d" } if(getCookie("behosDateStart")&&!flg){ startDate = new Date(getCookie("behosDateStart")) endDate = new Date(getCookie("behosDateEnd")) ownSelectDate = 3 $(".monthYear .year").css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) $(".monthYear .mon").css({ "border-color":'#A5ADBF', color:'#A5ADBF', backgroundColor:'#203463' }) } getDetails(ownSelectDate||dateType) $( "#datepicker" ).datepicker({ yearRange: "2015:"+year, changeMonth: true, changeYear: true, dateFormat:"yy/mm/dd", }).datepicker( "setDate", startDate); $( "#datepicker2" ).datepicker({ yearRange: "2015:"+year, changeMonth: true, changeYear: true, dateFormat:"yy/mm/dd" }).datepicker( "setDate",endDate); getStaticDate(flg) } function setCookieAction(startDate,endDate){ setCookie('behosDateStart',startDate) setCookie('behosDateEnd',endDate) } function getStaticDate(flg){ behosDateStart = $("#datepicker").val() behosDateEnd = $("#datepicker2").val() const start = new Date(behosDateStart).getTime() const end = new Date(behosDateEnd).getTime() if(start > end){ $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)}); return false } if(flg){ setCookieAction(behosDateStart,behosDateEnd) } if(behosDateStart){ behosDateStart = behosDateStart.replace(/\//g,'-') + ' 00:00:00' } if(behosDateEnd){ behosDateEnd = behosDateEnd.replace(/\//g,'-') + ' 23:59:59' } getBarData(dateType) getHomeData('firstLevelPercent') getAverageScoreLis() getEveryDeptLevel() return true } $(function() { const iconCalenBlue= require("./../images/darkDate.png") const iconCalenGrey= require("./../images/icon_calen_grey.png") $.datepicker.regional['zh-CN'] = { clearText: '清除', clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期', closeText: '关闭', closeStatus: '不改变当前选择', prevText: '<上月', prevStatus: '显示上月', prevBigText: '<<', prevBigStatus: '显示上一年', nextText: '下月>', nextStatus: '显示下月', nextBigText: '>>', nextBigStatus: '显示下一年', currentText: '今天', currentStatus: '显示本月', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthStatus: '选择月份', yearStatus: '选择年份', weekHeader: '周', weekStatus: '年内周次', dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], dayStatus: '设置 DD 为一周起始', dateStatus: '选择 m月 d日, DD', dateFormat: 'yy-mm-dd', firstDay: 1, initStatus: '请选择日期', isRTL: false}; $.datepicker.setDefaults($.datepicker.regional['zh-CN']); dateConsole(dateType) // $(".filter").click(); //初始查询 $('.iconCalen').on("mouseenter", function(e){ $(this).attr("src", iconCalenBlue) }) $('.iconCalen').on("mouseleave", function(e){ $(this).attr("src", iconCalenGrey) }) $('.iconCalen').on("click", function(e){ $(this).parent().find("input").focus() }) new CusScrollBar({ contentSelector: '.console_scroll_cont', //滚动内容区 barSelector: '.console_scroll_bar', //滚动条 sliderSelector: '.console_scroll_slider' //滚动滑块 }); new CusScrollBar({ contentSelector: '.explainPan_scroll_cont' , //滚动内容区 barSelector: '.explainPan_scroll_bar', //滚动条 sliderSelector: '.explainPan_scroll_slider' //滚动滑块 }); });