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' //滚动滑块
});
});