|
|
@ -1,106 +1,84 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<div class="app-container"> |
|
|
|
<!-- 静脉溶栓 数据对比 --> |
|
|
|
<div class="dis" style="width: 100%"> |
|
|
|
<div style="flex: 1"> |
|
|
|
<div style="flex: 1; margin-right: 20px"> |
|
|
|
<el-card shadow="always"> |
|
|
|
<div class="dis title-box"> |
|
|
|
<span class="header-title">静脉溶栓率 </span> |
|
|
|
<span class="header-title">病种排名</span> |
|
|
|
<div class="dis"></div> |
|
|
|
</div> |
|
|
|
<!-- 统计图 --> |
|
|
|
<div style="height: 300px" v-loading="loading"> |
|
|
|
<div id="JMz" style="width: 100%"></div> |
|
|
|
<div id="diagnose" style="width: 100%"></div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
<div style="flex: 1; margin-left: 20px"> |
|
|
|
<el-card shadow="always"> |
|
|
|
<div class="dis title-box"> |
|
|
|
<span class="header-title">数据对比</span> |
|
|
|
<div class="dis"> |
|
|
|
<div class="dian-box dis"> |
|
|
|
<span class="dian" style="background: #00d1a1"></span> |
|
|
|
静脉溶栓人数 |
|
|
|
</div> |
|
|
|
<div class="dian-box dis"> |
|
|
|
<span class="dian" style="background: #4f8bff"></span> |
|
|
|
急救特征人数 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 统计图 --> |
|
|
|
<div style="height: 300px" v-loading="loading"> |
|
|
|
<div id="JMy" style="width: 100%"></div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- DNT分布 sICH发生率 --> |
|
|
|
<div class="dis" style="width: 100%"> |
|
|
|
<div style="flex: 1"> |
|
|
|
<el-card shadow="always"> |
|
|
|
<div class="dis title-box"> |
|
|
|
<span class="header-title">DNT分布 </span> |
|
|
|
<span class="header-title">体型分布</span> |
|
|
|
<div class="dis"> |
|
|
|
<div class="dian-box dis"> |
|
|
|
<span class="dian" style="background: #ffcd6c"></span> ≤45 min |
|
|
|
</div> |
|
|
|
<div class="dian-box dis"> |
|
|
|
<span class="dian" style="background: #f97186"></span> ≤60 min |
|
|
|
</div> |
|
|
|
<div class="dian-box dis"> |
|
|
|
<span class="dian" style="background: #4f8bff"></span> >60 min |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 统计图 --> |
|
|
|
<div style="height: 300px" v-loading="loading"> |
|
|
|
<div id="DNT" style="width: 100%"></div> |
|
|
|
<!-- <div id="gender" style="width: 100%"></div> --> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
<div style="flex: 1; margin-left: 20px"> |
|
|
|
<el-card shadow="always"> |
|
|
|
<div class="dis title-box"> |
|
|
|
<span class="header-title">sICH发生率</span> |
|
|
|
</div> |
|
|
|
<!-- 统计图 --> |
|
|
|
<div style="height: 300px" v-loading="loading"> |
|
|
|
<div id="sICH" style="width: 100%"></div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import * as echarts from "echarts"; |
|
|
|
require("echarts/theme/macarons"); // echarts theme |
|
|
|
import resize from "@/views/dashboard/mixins/resize"; |
|
|
|
import { queryDntResult, querySichResult, queryJmrs } from "@/api/indexCom.js"; |
|
|
|
import { JMRSL, JMSJDB, DNT, SICH } from "./index"; |
|
|
|
export default { |
|
|
|
import * as echarts from "echarts"; |
|
|
|
require("echarts/theme/macarons"); // echarts theme |
|
|
|
import resize from "@/views/dashboard/mixins/resize"; |
|
|
|
import { |
|
|
|
zlInfo |
|
|
|
} from "@/api/indexCom.js"; |
|
|
|
import { |
|
|
|
diagnoseEcharts |
|
|
|
} from "./index"; |
|
|
|
export default { |
|
|
|
name: "Post", |
|
|
|
props: ["title"], |
|
|
|
mixins: [resize], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
loading: false, |
|
|
|
JMRSLvalue: null, |
|
|
|
DNTvalue: null, |
|
|
|
SICHvalue: null, |
|
|
|
// 查询参数 |
|
|
|
diagnoseValue: null, // 患者总数统计值 |
|
|
|
queryParams: { |
|
|
|
param: { |
|
|
|
timeType: 4, |
|
|
|
startTime: "", |
|
|
|
endTime: "", |
|
|
|
}, |
|
|
|
}, |
|
|
|
jwbzObj: { |
|
|
|
"gxy": "高血压", //高血压 |
|
|
|
"nxgb": "脑血管病", //脑血管病 |
|
|
|
"exzl": "恶性肿瘤", //恶性肿瘤 |
|
|
|
"gxb": "冠心病", //冠心病 |
|
|
|
"jsjb": "精神疾病", //精神疾病 |
|
|
|
"whsezcky": "胃和十二指肠溃疡", //胃和十二指肠溃疡 |
|
|
|
"fpz": "肥胖症", //肥胖症 |
|
|
|
"gzssz": "骨质疏松症", //骨质疏松症 |
|
|
|
"ycxXtxjb": "遗传性、先天性疾病", //遗传性、先天性疾病 |
|
|
|
"tnb": "糖尿病", //糖尿病 |
|
|
|
"mxfxjb": "慢性肺系疾病", //慢性肺系疾病 |
|
|
|
"gzxz": "高脂血症", //高脂血症 |
|
|
|
"gzjb": "肝脏疾病", //肝脏疾病 |
|
|
|
"gmxjb": "过敏性疾病", //过敏性疾病 |
|
|
|
"gjy": "关节炎", //关节炎 |
|
|
|
"tf": "痛风", //痛风 |
|
|
|
"sySb": "肾炎、肾病", //肾炎、肾病 |
|
|
|
"other": "其他" //其他 |
|
|
|
} |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
// this.getData(); |
|
|
|
// this.Linepatient(); |
|
|
|
this.getData(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
statistics(_data, _type) { |
|
|
@ -108,112 +86,33 @@ export default { |
|
|
|
this.loading = true; |
|
|
|
this.getData(); // 获取数据 |
|
|
|
}, |
|
|
|
// 查询 |
|
|
|
//患者信息 |
|
|
|
async getData() { |
|
|
|
try { |
|
|
|
//RSL 静脉溶栓率 |
|
|
|
await queryJmrs(this.queryParams).then((res) => { |
|
|
|
this.JMRSLvalue = res.data; |
|
|
|
console.log("this.JMRSLvalue: ", this.JMRSLvalue); |
|
|
|
this.columnar(); |
|
|
|
}); |
|
|
|
//DNT |
|
|
|
await queryDntResult(this.queryParams).then((res) => { |
|
|
|
this.DNTvalue = res.data; |
|
|
|
console.log("this.DNTvalue: ", this.DNTvalue); |
|
|
|
this.lineDNT(); |
|
|
|
}); |
|
|
|
// //数据对比 |
|
|
|
await querySichResult(this.queryParams).then((res) => { |
|
|
|
this.SICHvalue = res.data; |
|
|
|
this.LineSICH(); |
|
|
|
await zlInfo(this.queryParams).then((res) => { |
|
|
|
const {jlfb,smfb,sort,ttfb,txfb,zytz} = res.data |
|
|
|
// 病种(主要诊断) |
|
|
|
this.diagnoseValue = sort.sort((a, b) => a.total-b.total) |
|
|
|
this.handleDiagnose() |
|
|
|
}); |
|
|
|
|
|
|
|
this.LineJM(); |
|
|
|
this.columnar(); |
|
|
|
this.lineDNT(); |
|
|
|
this.LineSICH(); |
|
|
|
this.loading = false; |
|
|
|
} catch (e) {} |
|
|
|
}, |
|
|
|
// 静脉溶栓率` 数据对比 |
|
|
|
LineJM() { |
|
|
|
JMSJDB.series[0].data = this.JMRSLvalue?.map((item) => { |
|
|
|
return item.gailv; |
|
|
|
}); |
|
|
|
JMSJDB.series[1].data = this.JMRSLvalue?.map((item) => { |
|
|
|
// 病种(主要诊断) |
|
|
|
handleDiagnose() { |
|
|
|
|
|
|
|
diagnoseEcharts.series[0].data = this.diagnoseValue?.map((item) => { |
|
|
|
return item.total; |
|
|
|
}); |
|
|
|
JMSJDB.xAxis[0].data = this.JMRSLvalue?.map((item) => { |
|
|
|
return item.date; //X轴 |
|
|
|
}); |
|
|
|
this.$nextTick(() => { |
|
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
|
var myChart = echarts.init(document.getElementById("JMy"), null, { |
|
|
|
height: 300, |
|
|
|
}); |
|
|
|
myChart.setOption(JMSJDB, true); |
|
|
|
myChart.resize(); |
|
|
|
window.onresize = myChart.resize; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 静脉溶栓率 |
|
|
|
columnar() { |
|
|
|
JMRSL.series[0].data = this.JMRSLvalue?.map((item) => { |
|
|
|
return item.decimal; |
|
|
|
}); |
|
|
|
JMRSL.xAxis.data = this.JMRSLvalue?.map((item) => { |
|
|
|
return item.date; |
|
|
|
}); |
|
|
|
JMRSL.series[0].data = this.JMRSLvalue?.map((item) => { |
|
|
|
return item.decimal; |
|
|
|
}); |
|
|
|
this.$nextTick(() => { |
|
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
|
var myChart = echarts.init(document.getElementById("JMz"), null, { |
|
|
|
height: 300, |
|
|
|
}); |
|
|
|
myChart.setOption(JMRSL, true); |
|
|
|
myChart.resize(); |
|
|
|
window.onresize = myChart.resize; |
|
|
|
}); |
|
|
|
}, |
|
|
|
lineDNT() { |
|
|
|
DNT.series[0].data = this.DNTvalue?.map((item) => { |
|
|
|
return item.dy45; //≤45 |
|
|
|
}); |
|
|
|
DNT.series[1].data = this.DNTvalue?.map((item) => { |
|
|
|
return item.dy60; //≤60 |
|
|
|
}); |
|
|
|
DNT.series[2].data = this.DNTvalue?.map((item) => { |
|
|
|
return item.other; //>60 |
|
|
|
}); |
|
|
|
DNT.xAxis.data = this.DNTvalue?.map((item) => { |
|
|
|
return item.date; //X轴 |
|
|
|
}); |
|
|
|
this.$nextTick(() => { |
|
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
|
var myChart = echarts.init(document.getElementById("DNT"), null, { |
|
|
|
height: 300, |
|
|
|
}); |
|
|
|
myChart.setOption(DNT, true); |
|
|
|
myChart.resize(); |
|
|
|
window.onresize = myChart.resize; |
|
|
|
}); |
|
|
|
}, |
|
|
|
LineSICH() { |
|
|
|
SICH.series[0].data = this.SICHvalue?.map((item) => { |
|
|
|
return item.decimal; //≤45 |
|
|
|
}); |
|
|
|
SICH.xAxis[0].data = this.SICHvalue?.map((item) => { |
|
|
|
return item.time; //X轴 |
|
|
|
diagnoseEcharts.yAxis.data = this.diagnoseValue?.map((item) => { |
|
|
|
return item.type; |
|
|
|
}); |
|
|
|
console.log('diagnoseEcharts',diagnoseEcharts) |
|
|
|
this.$nextTick(() => { |
|
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
|
var myChart = echarts.init(document.getElementById("sICH"), null, { |
|
|
|
var myChart = echarts.init(document.getElementById("diagnose"), null, { |
|
|
|
height: 300, |
|
|
|
}); |
|
|
|
myChart.setOption(SICH, true); |
|
|
|
myChart.setOption(diagnoseEcharts, true); |
|
|
|
myChart.resize(); |
|
|
|
window.onresize = myChart.resize; |
|
|
|
}); |
|
|
@ -223,74 +122,85 @@ export default { |
|
|
|
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD"); |
|
|
|
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD"); |
|
|
|
this.queryParams.param = { |
|
|
|
timeType: _type, |
|
|
|
startTime: _data[0] + " " + "00:00:00", |
|
|
|
endTime: _data[1] + " " + "23:59:59", |
|
|
|
}; |
|
|
|
}, |
|
|
|
// 重新渲染图标 |
|
|
|
getRenew() { |
|
|
|
this.LineJM(); |
|
|
|
this.Linepatient(); |
|
|
|
this.columnar(); |
|
|
|
this.lineDNT(); |
|
|
|
this.LineSICH(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped src="@/assets/styles/common.css"></style> |
|
|
|
<style scoped> |
|
|
|
>>> .el-card__body { |
|
|
|
>>>.el-card__body { |
|
|
|
padding: 10px 0 !important; |
|
|
|
} |
|
|
|
.dis { |
|
|
|
} |
|
|
|
|
|
|
|
.dis { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
.header-title { |
|
|
|
} |
|
|
|
|
|
|
|
.header-title { |
|
|
|
font-size: 18px; |
|
|
|
} |
|
|
|
.title-box { |
|
|
|
} |
|
|
|
|
|
|
|
.title-box { |
|
|
|
padding: 10px 20px; |
|
|
|
border-bottom: 1px solid #dfe6ec; |
|
|
|
} |
|
|
|
.dian-box { |
|
|
|
} |
|
|
|
|
|
|
|
.dian-box { |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
.dian { |
|
|
|
} |
|
|
|
|
|
|
|
.dian { |
|
|
|
display: inline-block; |
|
|
|
width: 16px; |
|
|
|
height: 16px; |
|
|
|
border-radius: 50%; |
|
|
|
margin: 0 10px; |
|
|
|
} |
|
|
|
.title-box { |
|
|
|
} |
|
|
|
|
|
|
|
.title-box { |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
. >>> .el-radio--small.is-bordered { |
|
|
|
} |
|
|
|
|
|
|
|
.>>>.el-radio--small.is-bordered { |
|
|
|
margin-right: 20px !important; |
|
|
|
margin-left: 0 !important; |
|
|
|
} |
|
|
|
>>> .el-radio__input { |
|
|
|
} |
|
|
|
|
|
|
|
>>>.el-radio__input { |
|
|
|
display: none; |
|
|
|
} |
|
|
|
>>> .el-radio__label { |
|
|
|
} |
|
|
|
|
|
|
|
>>>.el-radio__label { |
|
|
|
padding-left: 5px; |
|
|
|
} |
|
|
|
.app-container { |
|
|
|
} |
|
|
|
|
|
|
|
.app-container { |
|
|
|
padding: 0; |
|
|
|
} |
|
|
|
.title1 { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
|
|
|
|
.title { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: 600; |
|
|
|
} |
|
|
|
.title-bor { |
|
|
|
} |
|
|
|
|
|
|
|
.title-bor { |
|
|
|
display: inline-block; |
|
|
|
height: 20px; |
|
|
|
width: 6px; |
|
|
|
background: #4f8bff; |
|
|
|
margin-right: 10px; |
|
|
|
border-radius: 8px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |