const $ = require('jquery');
require("../css/reset.less")
require("../css/console.less")
require("../images/logo.png")
// import 'zrender/lib/svg/svg';
const echarts = require('echarts');
const {post,setCookie,delCookie} = require('../js/utils.js');
$(function(){
// var mySwiper = new Swiper('.swiper-container',{
// // autoplay : 500,//可选选项,自动滑动
// loop : true,//可选选项,开启循环
// slidesPerView : 3,
// })
$(".partWrap").css({
height:$(window).height()-38+'px'
})
initConsole()//质控列表
getBarData()//图标数据获取
dateChange()
// $(window).click(function(){
// window.parent.userActionHide()
// })
})
//所有数据切换日期筛选
function dateChange(){
$(".monthYear .mon").click(function(){
$(this).css({
backgroundColor:'#5A8EEE',
color:'#fff'
}).siblings().css({
color:'#5A8EEE',
backgroundColor:'#fff'
})
getBarData(1)
})
$(".monthYear .year").click(function(){
$(this).css({
backgroundColor:'#5A8EEE',
color:'#fff'
}).siblings().css({
color:'#5A8EEE',
backgroundColor:'#fff'
})
getBarData(2)
})
}
//控制台数
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 getBarData(type){
post('/console/mrStatistics',{
"type": type||1//1月2年
}).then((res)=>{
let data = res.data;
if(data.code == 0){
let result = data.data
initConsole(result)
}
})
post('/console/averageStatistics',{//柱状数据
type:type||1
}).then((res)=>{
let data = res.data;
if(data.code == 0){
let result1 = data.data['平均住院费用']
let result2 = data.data['平均住院日']
let dataX1=[],dataY1=[],dataX2=[],dataY2=[];
for(let i = 0;i < result1.length;i++){
dataX1.push(result1[i].deptName)
dataY1.push(result1[i].averageValue)
}
for(let i = 0;i < result2.length;i++){
dataX2.push(result2[i].deptName)
dataY2.push(result2[i].averageValue)
}
barChartPay(dataX1,dataY1)
barChart(dataX2,dataY2)
}
})
post('/console/resultStatistics',{//饼图数据
type:type||1
}).then((res)=>{
let data = res.data;
if(data.code == 0){
let result1 = data.data['缺陷排行列表']
let result2 = data.data['各科室缺陷占比']
for(let i = 0;i < result2.length;i++){
result2[i].value = result2[i].num
}
queList(result1)
emptyCircle(result2)
panDetail(result2)
}
})
}
//柱状图住院费用
function barChartPay(dataX,dataY){
var myCharts = echarts.init(document.getElementById('barChartPay'));
var lengthNum = dataX.length;
$(window).resize(function(){
myCharts.resize()
});
option = {
color: ['#3398DB'],
tooltip: {
trigger: 'axis',
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: '#333'
},
rotate:lengthNum>8?30:0
},
axisLine: {//x轴
lineStyle:{
color:'#AAAAAA'
}
}
}
],
yAxis: [
{
type: 'value',
axisLine: {//y轴
show: false
},
axisTick: {
show: false
},
axisLabel: {//y轴刻度
textStyle: {
color: '#333333'
}
},
splitLine:{//分割线
lineStyle:{
color:'#EFF3FC'
}
}
}
],
title:[{
text: '平均住院费用',
top: 15,
left: 10,
textStyle: {
fontSize: 14,
color:'#666666',
fontWeight: 400
}
}],
series: [
{
name: '平均住院费用',
type: 'bar',
barWidth: lengthNum<5?'8%':'23%',
data: dataY
}
]
};
myCharts.setOption(option);
}
//柱状图住院日期
function barChart(dataX,dataY){
var myChart = echarts.init(document.getElementById('barChart'));
var lengthNum = dataX.length;
$(window).resize(function(){
myChart.resize()
});
option = {
color: ['#3398DB'],
tooltip: {
trigger: 'axis',
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: '#333'
},
rotate:lengthNum>8?30:0
},
axisLine: {//x轴
lineStyle:{
color:'#AAAAAA'
}
}
}
],
yAxis: [
{
type: 'value',
axisLine: {//y轴
show: false
},
axisTick: {
show: false
},
axisLabel: {//y轴刻度
textStyle: {
color: '#333333'
}
},
splitLine:{//分割线
lineStyle:{
color:'#EFF3FC'
}
}
}
],
title:[{
text: '平均住院日',
top: 15,
left: 10,
textStyle: {
fontSize: 14,
color:'#666666',
fontWeight: 400
}
}],
series: [
{
name: '平均住院日',
type: 'bar',
barWidth: lengthNum<5?'8%':'23%',
data: dataY
}
]
};
myChart.setOption(option);
}
//空心饼图
function emptyCircle(data){
var myChart = echarts.init(document.getElementById('emptyCircle'));
$(window).resize(function(){
myChart.resize()
});
let bgColor = '#fff';
let title = '总量';
let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
let echartData = data;
let total = 0;
for(let i = 0;i < echartData.length;i++){
total += echartData[i].num
}
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: '#333',
fontWeight: 'bold',
padding: [10, 0]
},
name: {
fontSize: 12,
fontWeight: 'normal',
color: '#777',
}
}
}
}],
tooltip: {
trigger: 'item',
formatter: '{b} : {c} ({d}%)'
},
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 = `
排名 |
缺陷名称 |
数量 |
占比 |
`
for(let i = 0;i < data.length;i++){
strAll += `
${i+1} |
${data[i].name} |
${data[i].num} |
${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}) |
`
}
$(".explainPan table").html(strAll);
$(".explainPan").css({
marginTop:-($(".explainPan").height()/2-20)+'px'
})
}