Commit 78d76529 authored by xieshoubao's avatar xieshoubao 💂

协同平台 展示的三个页面

parent 96eab0e6
...@@ -67,11 +67,26 @@ export function businessOperationStatistics(params){ ...@@ -67,11 +67,26 @@ export function businessOperationStatistics(params){
data: params data: params
}) })
} }
export function queryHospitalList(params,str){ export function queryHospitalList(params,str,area){
var name=str?str:'';
return request({ return request({
url:`/api/team/hospital/queryHospitalList?name=${name}`, url:`/api/team/hospital/queryHospitalList?name=${str?str:''}&area=${area?area:''}`,
method: 'GET', method: 'GET',
data: params data: params
}) })
}
export function getList(params){
return request({
url:`/api/team/importExcel/getList`,
method: 'POST',
data: params
})
}
export function uploadExcel(params){
return request({
url:`/api/team/importExcel/uploadExcel`,
method: 'POST',
data: params
})
} }
\ No newline at end of file
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<div class="main-page"> <div class="main-page">
<div class="main-page-header"> <div class="main-page-header">
<p class="title">院内急救信息</p> <p class="title">院内急救信息</p>
<el-form :inline="true" :model="searchForm" ref="searchForm" size="small"> <el-form :inline="true" :model="searchForm" ref="searchForm" size="small" class="InHosFirstAid_form">
<el-form-item prop="hospitalCode" label="选择医院"> <el-form-item prop="hospitalCode" label="选择医院">
<el-select v-model="searchForm.hospitalCode" placeholder="请选择医院名称"> <el-select v-model="searchForm.hospitalCode" placeholder="请选择医院名称" :disabled="roleId==2">
<el-option v-for="item in hospitalList" :key="item.code" :label="item.Name" :value="item.code"></el-option> <el-option v-for="item in hospitalList" :key="item.code" :label="item.Name" :value="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -12,12 +12,13 @@ ...@@ -12,12 +12,13 @@
<el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" v-model="searchForm.rangeDate" prefix-icon="el-icon-date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" v-model="searchForm.rangeDate" prefix-icon="el-icon-date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<div class="btns"> <div class="btns">
<el-button type="primary" size="small" @click="search">查询</el-button> <el-button type="primary" size="small" @click="BTNClickSearch">查询</el-button>
<el-button size="small" @click="$refs.FileInputEl.click()">导入EXCEL</el-button> <el-button size="small" @click="resetForm('searchForm')">重置</el-button>
<el-button v-if="roleId==2" size="small" @click="$refs.FileInputEl.click()">导入EXCEL</el-button>
</div> </div>
</el-form> </el-form>
<div style="display:none;"> <div style="display:none;">
<input type="file" ref="FileInputEl" accept=".csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"> <input type="file" ref="FileInputEl" @change="changeSelectFileFn" accept=".csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel">
</div> </div>
</div> </div>
<div class="main-page-body"> <div class="main-page-body">
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
</div> </div>
<div class="table-cont"> <div class="table-cont">
<table-mixin :pageSize="pageSize" :pageNum="pageNum" :total="total" :pagination="pagination" :handleSizeChange="handleSizeChange" :handleCurrentChange="handleCurrentChange"> <table-mixin :pageSize="pageSize" :pageNum="pageNum" :total="total" :pagination="pagination" :handleSizeChange="handleSizeChange" :handleCurrentChange="handleCurrentChange">
<el-table style="width:100%" border v-loading="tableData.loading" :data="tableData.body" @sort-change="handleSortChange"> <el-table style="width:100%" :fit="true" border v-loading="tableData.loading" :data="tableData.body" @sort-change="handleSortChange">
<div slot="empty" class="noData"></div> <div slot="empty" class="noData"></div>
<el-table-column v-for="(item,index) in tableData.head" :prop="item.key" :label="item.name" align="left" :formatter="item.formatter" :sortable="item.sortable" :fixed="item.fixed" :key="item.key+'_'+index" :min-width="item.width"></el-table-column> <el-table-column v-for="(item,index) in tableData.head" :prop="item.key" :label="item.name" align="left" :formatter="item.formatter" :sortable="item.sortable" :fixed="item.fixed" :key="item.key+'_'+index" :min-width="item.width"></el-table-column>
</el-table> </el-table>
...@@ -41,16 +42,16 @@ ...@@ -41,16 +42,16 @@
<script> <script>
import { tableDataMixin } from '@/common/js/mixin'; import { tableDataMixin } from '@/common/js/mixin';
import { queryIntegrationList,queryHospitalList } from '@/api/hospital'; import { getList,queryHospitalList,uploadExcel} from '@/api/hospital';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
export default { export default {
name: 'InHosFirstAid',
mixins: [tableDataMixin], mixins: [tableDataMixin],
data() { data() {
var d=new Date();var yar=d.getFullYear(),month=d.getMonth()+1,day=d.getDate();month=(month<10)?('0'+month):(month);day=(day<10)?('0'+day):(day); var d=new Date();var yar=d.getFullYear(),month=d.getMonth()+1,day=d.getDate();month=(month<10)?('0'+month):(month);day=(day<10)?('0'+day):(day);
let oDate=[`${yar}-01-01`,`${yar}-${month}-${day}`]; let oDate=[`${yar}-01-01`,`${yar}-${month}-${day}`];
return { return {
activeTab:'2', roleId:null,
activeTab:'1',
hospitalList:[], hospitalList:[],
searchForm: { searchForm: {
hospitalCode:'', hospitalCode:'',
...@@ -67,21 +68,31 @@ export default { ...@@ -67,21 +68,31 @@ export default {
} }
}, },
computed:{ computed:{
...mapGetters(['userInfo']) ...mapGetters(['userInfo']),
TableField:function(){ return((this.activeTab==1)?([{name:"门诊ID",key:"certificateNo"},{name:"姓名",key:"name"},{name:"性别",key:"gender"},{name:"年龄",key:"age"},{name:"电话",key:"phoneNo"},{name:"住院ID",key:"inPatientId"},{name:"发病时间",key:"attackTime"},{name:"初步诊断",key:"firstDiagnosis"},{name:"诊断时间",key:"diagnosisTime"},{name:"来院方式",key:"toHospitalWay"},{name:"到达医院大门时间",key:"toHospitalTime"},{name:"首次医疗接触时间",key:"firstContactTime"},{name:"首诊医师接诊时间",key:"firstDoctorContactTime"},{name:"转出医院名称",key:"transferOutHospitalName"},{name:"转出医院入门时间",key:"transOutIntoTime"},{name:"转出医院出门时间",key:"transOutLeaveTime"},{name:"心电图采集时间",key:"ecgCollectTime"},{name:"心电图诊断时间",key:"ecgDiagTime"},{name:"肌钙蛋白抽血时间",key:"bloodDrawingTime"},{name:"肌钙蛋白报告时间",key:"bloodReportTime"},{name:"肌钙蛋白检测值",key:"checkValue"},{name:"请会诊时间",key:"consulationTime"},{name:"会诊到达时间",key:"consulationArriveTime"},{name:"抗血小板治疗药物",key:"antiplateMedical"},{name:"抗血小板给药时间",key:"antiplateTime"},{name:"抗凝给药时间",key:"anticoaTime"},{name:"再灌注措施",key:"refersionMessure"},{name:"开始知情同意",key:"startInformedConsent"},{name:"签署知情同意",key:"signInformedConsent"},{name:"启动导管室时间",key:"startCatherRoomTime"},{name:"激活导管室时间",key:"activeCatherRoomTime"},{name:"导丝通过时间",key:"guideWirePassTime"},{name:"溶栓开始时间",key:"startThrombolysisTime"},{name:"溶栓结束时间",key:"endThrombolysisTime"},{name:"出院诊断",key:"dischargeDiagnosis"}]):([{name:"序号",key:"idx"},{name:"住院号",key:"hospitalId"},{name:"病患姓名",key:"name"},{name:"性别",key:"gender"},{name:"年龄",key:"age"},{name:"初步诊断",key:"firstDiagnosis"},{name:"诊断时间",key:"diagnosisTime"},{name:"治疗类型",key:"treatmentType"},{name:"住院时间",key:"inHospitalTime"},{name:"入院途径",key:"admissionRoute"},{name:"是否在院卒中",key:"isInHospitalStroke"},{name:"来院方式",key:"toHospitalWay"},{name:"发病时间",key:"attackTime"},{name:"患者到院时间",key:"toHospitalTime"},{name:"患者到达急诊科时间",key:"arrivedEmergencyTime"},{name:"申请会诊时间",key:"consulationTime"},{name:"卒中团队到达急诊科时间",key:"stokeArrivedEmergencyTime"},{name:"患者离开急诊科时间",key:"leaveEmergencyTime"},{name:"患者到达CT时间",key:"arriveCtTime"},{name:"患者到达MRI时间",key:"arriveMrTime"},{name:"获得CT结果时间",key:"getCtTime"},{name:"获得MRI结果时间",key:"getMriTime"},{name:"抽血开始时间(院内首次)",key:"firstBloodTime"},{name:"血液样本送达检验科时间",key:"sampleDeliverLabTime"},{name:"获得血常规时间",key:"bloodRoutineTime"},{name:"获取凝血常规时间",key:"coagulationRoutineTime"},{name:"获取肾功能结果时间",key:"renalFunctionTime"},{name:"获取电解质结果时间",key:"electrolyteTime"},{name:"开始溶栓知情同意",key:"startInformedConsent"},{name:"签署知情同意时间",key:"signInformedConsent"},{name:"首剂给药时间",key:"firstMedicalTime"},{name:"开始穿刺时间",key:"startPunctureTime"},{name:"穿刺成功时间",key:"successPunctureTime"},{name:"血管再通时间",key:"recanalizationTime"},{name:"出院时间",key:"dischargeTime"},{name:"急诊科耗时",key:"emergencyCostTime"},{name:"发病时长",key:"durationOfOnset"},{name:"患者入院-抽血开始时间耗时",key:"admissionDrawingTime"},{name:"抽血开始时间-血液送达检验科耗时",key:"drawingLabTime"},{name:"血液样本送达检验科-血常规结果时间(≤10分钟)",key:"labGetRoutineTime"},{name:"DNT时长",key:"dntOfTime"},{name:"DIT时长",key:"ditOfTime"},{name:"DTP时长",key:"dtpOfTime"},{name:"DRT时长",key:"drtOfTime"},{name:"急诊接诊医生",key:"emergencyDoctor"},{name:"急诊接诊护士",key:"emergencyNurse"},{name:"溶栓医生",key:"thrombolysisDoctor"},{name:"介入医生",key:"interventionalDoctor"}])) },
}, },
created(){ created(){
var that=this; var that=this;
that.ChangeSetTableHead(); that.ChangeSetTableHead();
let code=that.userInfo.hospitalCode; that.roleId=that.userInfo.roleId;
let Name=that.userInfo.hospitalName; // that.roleId=2;
var HosLis=[{code:code,Name:Name}]; var HosLis=[];
that.searchForm.hospitalCode=code; var params={area:''};var code,Name;
queryHospitalList({}).then((res)=>{ if(that.roleId==2){
code=that.userInfo.hospitalCode;
Name=that.userInfo.hospitalName;
HosLis=[{code:code,Name:Name}];
that.searchForm.hospitalCode=code;
that.hospitalList=HosLis;
}else if(that.roleId==3){
params.area=that.userInfo.area;
}
queryHospitalList(params,'',params.area).then((res)=>{
if(res.msg==201){ if(res.msg==201){
var hospitalList=(Array.isArray(res.respData)?(res.respData):[]).map(function(item){ var hospitalList=(Array.isArray(res.respData)?(res.respData):[]).map(function(item){
return Object.freeze({ code:item.hospitalCode, Name:item.hospitalName }); return Object.freeze({ code:item.hospitalCode, Name:item.hospitalName });
}); });
let flag=hospitalList.some(function(c){return c.code==code;}); let flag=(that.roleId==2)&&(!(hospitalList.some(function(c){return c.code==code;})));
if(!flag){ if(!flag){
that.hospitalList=Object.freeze((HosLis).concat(hospitalList)) that.hospitalList=Object.freeze((HosLis).concat(hospitalList))
}else{ }else{
...@@ -94,37 +105,61 @@ export default { ...@@ -94,37 +105,61 @@ export default {
}) })
}, },
mounted() { mounted() {
this.search()
}, },
methods: { methods: {
BTNClickSearch(){
this.pageNum=1;
this.search();
},
changeSelectFileFn(e){
var that=this;
var File=e.target.files[0]
var formData=new FormData();
formData.append('file',File);
formData.append('productType',that.activeTab);
uploadExcel(formData).then(res=>{
that.$refs.FileInputEl.value="";
if (res.msg == 201) {
that.$message.success(res.content||'上传成功');
that.search();
} else {
that.$message.error(res.content||"上传失败");
}
})
},
ChangeSetTableHead(){ ChangeSetTableHead(){
var that=this; var that=this;
var kys1=[{name:"门诊ID",key:"certificateNo"},{name:"姓名",key:"name"},{name:"性别",key:"gender"},{name:"年龄",key:"age"},{name:"电话",key:"phoneNo"},{name:"住院ID",key:"inPatientId"},{name:"发病时间",key:"attackTime"},{name:"初步诊断",key:"firstDiagnosis"},{name:"诊断时间",key:"diagnosisTime"},{name:"来院方式",key:"toHospitalWay"},{name:"到达医院大门时间",key:"toHospitalTime"},{name:"首次医疗接触时间",key:"firstContactTime"},{name:"首诊医师接诊时间",key:"firstDoctorContactTime"},{name:"转出医院名称",key:"transferOutHospitalName"},{name:"转出医院入门时间",key:"transOutIntoTime"},{name:"转出医院出门时间",key:"transOutLeaveTime"},{name:"心电图采集时间",key:"ecgCollectTime"},{name:"心电图诊断时间",key:"ecgDiagTime"},{name:"肌钙蛋白抽血时间",key:"bloodDrawingTime"},{name:"肌钙蛋白报告时间",key:"bloodReportTime"},{name:"肌钙蛋白检测值",key:"checkValue"},{name:"请会诊时间",key:"consulationTime"},{name:"会诊到达时间",key:"consulationArriveTime"},{name:"抗血小板治疗药物",key:"antiplateMedical"},{name:"抗血小板给药时间",key:"antiplateTime"},{name:"抗凝给药时间",key:"anticoaTime"},{name:"再灌注措施",key:"refersionMessure"},{name:"开始知情同意",key:"startInformedConsent"},{name:"签署知情同意",key:"signInformedConsent"},{name:"启动导管室时间",key:"startCatherRoomTime"},{name:"激活导管室时间",key:"activeCatherRoomTime"},{name:"导丝通过时间",key:"guideWirePassTime"},{name:"溶栓开始时间",key:"startThrombolysisTime"},{name:"溶栓结束时间",key:"endThrombolysisTime"},{name:"出院诊断",key:"dischargeDiagnosis"}]; var tableHead=that.TableField;
var kys2=[{name:"序号",key:"idx"},{name:"住院号",key:"hospitalId"},{name:"病患姓名",key:"name"},{name:"性别",key:"gender"},{name:"年龄",key:"age"},{name:"初步诊断",key:"firstDiagnosis"},{name:"诊断时间",key:"diagnosisTime"},{name:"治疗类型",key:"treatmentType"},{name:"住院时间",key:"inHospitalTime"},{name:"入院途径",key:"admissionRoute"},{name:"是否在院卒中",key:"isInHospitalStroke"},{name:"来院方式",key:"toHospitalWay"},{name:"发病时间",key:"attackTime"},{name:"患者到院时间",key:"toHospitalTime"},{name:"患者到达急诊科时间",key:"arrivedEmergencyTime"},{name:"申请会诊时间",key:"consulationTime"},{name:"卒中团队到达急诊科时间",key:"stokeArrivedEmergencyTime"},{name:"患者离开急诊科时间",key:"leaveEmergencyTime"},{name:"患者到达CT时间",key:"arriveCtTime"},{name:"患者到达MRI时间",key:"arriveMrTime"},{name:"获得CT结果时间",key:"getCtTime"},{name:"获得MRI结果时间",key:"getMriTime"},{name:"抽血开始时间(院内首次)",key:"firstBloodTime"},{name:"血液样本送达检验科时间",key:"sampleDeliverLabTime"},{name:"获得血常规时间",key:"bloodRoutineTime"},{name:"获取凝血常规时间",key:"coagulationRoutineTime"},{name:"获取肾功能结果时间",key:"renalFunctionTime"},{name:"获取电解质结果时间",key:"electrolyteTime"},{name:"开始溶栓知情同意",key:"startInformedConsent"},{name:"签署知情同意时间",key:"signInformedConsent"},{name:"首剂给药时间",key:"firstMedicalTime"},{name:"开始穿刺时间",key:"startPunctureTime"},{name:"穿刺成功时间",key:"successPunctureTime"},{name:"血管再通时间",key:"recanalizationTime"},{name:"出院时间",key:"dischargeTime"},{name:"急诊科耗时",key:"emergencyCostTime"},{name:"发病时长",key:"durationOfOnset"},{name:"患者入院-抽血开始时间耗时",key:"admissionDrawingTime"},{name:"抽血开始时间-血液送达检验科耗时",key:"drawingLabTime"},{name:"血液样本送达检验科-血常规结果时间(≤10分钟)",key:"labGetRoutineTime"},{name:"DNT时长",key:"dntOfTime"},{name:"DIT时长",key:"ditOfTime"},{name:"DTP时长",key:"dipOfTime"},{name:"DRT时长",key:"drtOfTime"},{name:"急诊接诊医生",key:"emergencyDoctor"},{name:"急诊接诊护士",key:"emergencyNurse"},{name:"溶栓医生",key:"thrombolysisDoctor"},{name:"介入医生",key:"interventionalDoctor"}]; var head=tableHead.map(function(item,index){
var tableHead=that.activeTab==1?kys1:kys2; var oc={name:item.name,key:item.key}
var head=tableHead.map(function(oc,index){
oc.fixed=!!(index<2); oc.fixed=!!(index<2);
oc.sortable=false; oc.sortable=false;
oc.width=null; oc.width=null;
if(oc.name.indexOf('姓名')!=-1){ if(oc.name.indexOf('姓名')!=-1){
oc.width='150'; oc.width='150';
};
if((oc.name.indexOf('时间')!=-1)&&(oc.name.indexOf('-')!=-1)){
oc.width='100';
}else if(oc.name.indexOf('时间')!=-1){
oc.width='165';
}; };
if(oc.name=='门诊ID'){ if(oc.name=='门诊ID'){
oc.width='100'; oc.width='100';
} }else if(oc.name=='电话'){
if(oc.name=='年龄'){ oc.width='120';
}else if(oc.name=='年龄'){
oc.width='80'; oc.width='80';
} }else if(oc.name=="性别"){
if(oc.name=="性别"){
oc.width='80'; oc.width='80';
oc.formatter=((row, column, cellValue, index)=>{ return cellValue === 1 ? '男' : cellValue === 2 ? '女' : '' }); oc.formatter=(function(row, column, cellValue, index){
if(cellValue =='1'){ return `男` }else if(cellValue =='2'){ return `女` }else{ return `未知` };
});
}else if(oc.name=='出院诊断'){
oc.width='850';
} }
if(oc.name.indexOf('时间')!=-1){
oc.width='180';
};
return Object.freeze(oc); return Object.freeze(oc);
}); });
// console.log(head)
that.tableData.head=Object.freeze(head); that.tableData.head=Object.freeze(head);
}, },
changeTab(num){ changeTab(num){
...@@ -132,18 +167,41 @@ export default { ...@@ -132,18 +167,41 @@ export default {
this.search(); this.search();
}, },
getTableData() { getTableData() {
this.tableData.loading = true; var that=this;
this.ChangeSetTableHead(); that.tableData.loading = true;
that.ChangeSetTableHead();
var Code=that.searchForm.hospitalCode;
var startDate="",endDate="";
if(that.searchForm.rangeDate&&Array.isArray(that.searchForm.rangeDate)){
startDate=(that.searchForm.rangeDate)[0];
endDate=(that.searchForm.rangeDate)[1];
}
var result=that.hospitalList.find(function(co){ return co.code==Code;});
var hName="";
if(result){ hName=result.Name; }
const params = { const params = {
patientType: this.searchForm.patientType, productType:that.activeTab,
pageNo: this.pageNum, startDate:startDate,
pageSize: this.pageSize endDate:endDate,
hospitalCode:Code,
hospitalName:hName,
pageNo: that.pageNum,
pageSize: that.pageSize
};
if(that.roleId==3){
params.area=that.userInfo.area;
} }
queryIntegrationList(params).then((res) => { getList(params).then((res)=>{
if (res.msg == 201) { if(res.msg==201){
this.dealTableResponse(res) var tableField=that.TableField;
} else { res.respData.list=(Array.isArray(res.respData.list)?(res.respData.list):[]).map(function(row){
this.$message.error(res.content) var rowobj={};
tableField.forEach(function({key}){ rowobj[key]=(row[key])?(row[key]):``;(row[key]===undefined)?(console.log("列表数据缺少字段:"+key )):null })
return rowobj;
});
that.dealTableResponse(res)
}else{
that.$message.error(res.content)
} }
}) })
}, },
...@@ -172,6 +230,9 @@ export default { ...@@ -172,6 +230,9 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.InHosFirstAid{ .InHosFirstAid{
.el-input.is-disabled .el-input__inner{
color:#606266;
}
.tab-btn{ .tab-btn{
font-size:0; font-size:0;
button.el-button{ button.el-button{
...@@ -198,6 +259,10 @@ export default { ...@@ -198,6 +259,10 @@ export default {
.table-cont{ .table-cont{
padding:20px; padding:20px;
} }
}
</style>
<style lang="scss">
.InHosFirstAid_form .el-input.is-disabled .el-input__inner{
color:#606266;
} }
</style> </style>
\ No newline at end of file
...@@ -118,9 +118,9 @@ ...@@ -118,9 +118,9 @@
<div class="p-title"> <div class="p-title">
<span>区域院前急救统计</span> <span>区域院前急救统计</span>
<div class="right-Box"> <div class="right-Box">
<el-button type="text" @click="ChangeDateCharts(1)">近三个月</el-button> <el-button type="text" @click="ChangeDateCharts(1)" :class="{sel:activePanel=='v1'}">近三个月</el-button>
<div class="vh">|</div> <div class="vh">|</div>
<el-button type="text" @click="ChangeDateCharts(2)">近一年</el-button> <el-button type="text" @click="ChangeDateCharts(2)" :class="{sel:activePanel=='v2'}">近一年</el-button>
</div> </div>
</div> </div>
<div> <div>
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<div class="padding-right12"> <div class="padding-right12">
<div class="panel"> <div class="panel">
<div class="p-title"> <div class="p-title">
<span>院前急救转运平均时间</span> <span>院前急救转运平均时间(分钟)</span>
</div> </div>
<div> <div>
<div class="c50_charts" ref="c50Bar"></div> <div class="c50_charts" ref="c50Bar"></div>
...@@ -204,12 +204,9 @@ export default{ ...@@ -204,12 +204,9 @@ export default{
} }
}, },
mounted(){ mounted(){
this.getv1Data();
this.getv2Data();
this.$nextTick(()=>{ this.$nextTick(()=>{
// this.barChartsInit(); this.getv1Data();
this.drawc50Bar(); this.getv2Data();
this.drawc50Pie();
}); });
}, },
methods:{ methods:{
...@@ -224,7 +221,6 @@ export default{ ...@@ -224,7 +221,6 @@ export default{
} }
}) })
}, },
getv2Data(){ getv2Data(){
var that=this; var that=this;
var d=new Date();var yar=d.getFullYear(),moth=d.getMonth()+1,dey=d.getDate();moth=(moth<10)?('0'+moth):moth;dey=(dey<10)?('0'+dey):dey; var d=new Date();var yar=d.getFullYear(),moth=d.getMonth()+1,dey=d.getDate();moth=(moth<10)?('0'+moth):moth;dey=(dey<10)?('0'+dey):dey;
...@@ -232,7 +228,7 @@ export default{ ...@@ -232,7 +228,7 @@ export default{
businessTeamStatistics(params).then((res)=>{ businessTeamStatistics(params).then((res)=>{
if (res.msg == 201) { if (res.msg == 201) {
var areaPreTotal=that.gv(res.respData.areaPreTotal,[]); var areaPreTotal=that.gv(res.respData.areaPreTotal,[]);
var kys=['chestTotal','strokeTotal','traumaTotal','burnTotal']; var kys=['chestCount','strokeCount','traumaCount','burnCount'];
var result=areaPreTotal.reduce(function(prv,cur,i,arr){ var result=areaPreTotal.reduce(function(prv,cur,i,arr){
prv.Names.push(cur.areaStr); prv.Names.push(cur.areaStr);
kys.forEach((ky,j)=>{ prv.arr[j].push(cur[ky]||0) }) kys.forEach((ky,j)=>{ prv.arr[j].push(cur[ky]||0) })
...@@ -261,7 +257,7 @@ export default{ ...@@ -261,7 +257,7 @@ export default{
traumaCount:that.gv(p2.traumaCount,'0'), traumaCount:that.gv(p2.traumaCount,'0'),
burnCount:that.gv(p2.burnCount,'0'), burnCount:that.gv(p2.burnCount,'0'),
}; };
var kys=['chestTotal','strokeTotal','traumaTotal','burnTotal']; var kys=['chestCount','strokeCount','traumaCount','burnCount'];
var areaPreTotal=that.gv(respData.areaPreTotal,[]); var areaPreTotal=that.gv(respData.areaPreTotal,[]);
var result=areaPreTotal.reduce(function(prv,cur,i,arr){ var result=areaPreTotal.reduce(function(prv,cur,i,arr){
prv.Names.push(cur.areaStr); prv.Names.push(cur.areaStr);
...@@ -271,19 +267,19 @@ export default{ ...@@ -271,19 +267,19 @@ export default{
that.BarDatav1.Namelis=Object.freeze(result.Names); that.BarDatav1.Namelis=Object.freeze(result.Names);
that.BarDatav1.Arr=Object.freeze(result.arr.map(Object.freeze)); that.BarDatav1.Arr=Object.freeze(result.arr.map(Object.freeze));
that.barChartsInit(); that.barChartsInit();
var preTransferTimeTotal=that.gv(respData.preTransferTimeTotal,{}); var preTransferTimeTotal=that.gv(respData.preTransferTimeTotal,{});
var kys=['chestTransferTime','strokeTransferTime','traumaTransferTime','burnTransferTime']; var kys=['chestTransferTime','strokeTransferTime','traumaTransferTime','burnTransferTime'];
that.drawc50Bar(kys.map(function(ky){ return that.gv(preTransferTimeTotal[ky],0) })) that.drawc50Bar(kys.map(function(ky){ return that.gv(preTransferTimeTotal[ky],0) }))
var piekys=[`chestCount`,`strokeCount`,`traumaCount`,`burnCount`]; var piekys=[`chestCount`,`strokeCount`,`traumaCount`,`burnCount`];
var Names=[`胸痛`,`卒中`,`创伤`,`烧伤`]; var Names=[`胸痛`,`卒中`,`创伤`,`烧伤`];
that.drawc50Pie(piekys.map(function(ky,i){return{value:that.gv(p1[ky],0),name:Names[i]}})); that.drawc50Pie(piekys.map(function(ky,i){return{value:that.gv(p1[ky],0),name:Names[i]}}));
}, },
barChartsInit(){ barChartsInit(){
var that=this; var that=this;
var Oc={datakey:'BarData',dom:'BarEl',scBox:'BarScBox',scline:'BarScLine',vlen:'persw'}; var Oc={datakey:'BarData',dom:'BarEl',scBox:'BarScBox',scline:'BarScLine',vlen:'persw'};
var drData=that[(Oc.datakey+that.activePanel)]; var drData=that[(Oc.datakey+that.activePanel)];
var Namelis=drData.Namelis; var Namelis=drData.Namelis;
if(Namelis.length=='0'){ return; } // if(Namelis.length=='0'){ return; }
var Arr=drData.Arr; var Arr=drData.Arr;
var Wh=(that.$refs[(Oc.scBox)]).offsetWidth; var Wh=(that.$refs[(Oc.scBox)]).offsetWidth;
var ViLen=Math.ceil((Wh-150)/200); var ViLen=Math.ceil((Wh-150)/200);
...@@ -316,135 +312,135 @@ export default{ ...@@ -316,135 +312,135 @@ export default{
}, },
drawBarEchart(dom,NameLis,arr){ drawBarEchart(dom,NameLis,arr){
var that=this; var that=this;
let myChart = that.getCtx(dom) let myChart = that.getCtx(dom);
var option ={ if(NameLis.length===0){ myChart.clear(); };
grid:{ var opts ={
left:40, // 默认10%,给24就挺合适的。 grid:{
top:60, // 默认60 left:40, // 默认10%,给24就挺合适的。
right:10, // 默认10% top:60, // 默认60
bottom:35, // 默认60 right:10, // 默认10%
}, bottom:35, // 默认60
legend: { },
// orient: 'vertical', legend: {
right: '8', // orient: 'vertical',
top: '2', right: '8',
// 设置图例形状 top: '2',
itemWidth:12, // 设置宽度 // 设置图例形状
itemHeight:12, // 设置高度 itemWidth:12, // 设置宽度
textStyle:{ itemHeight:12, // 设置高度
color:"#000", textStyle:{
fontSize: 14, color:"#000",
}, fontSize: 14,
}, },
xAxis: { },
type: 'category', xAxis: {
axisTick: { show:false },/*影藏坐标轴刻度*/ type: 'category',
// data: ['张三丰', '刘天宇', '王自大', '孙乾坤', '李自傲', '周天启', '冯天成','任天雨'] axisTick: { show:false },/*影藏坐标轴刻度*/
data:NameLis // data: ['张三丰', '刘天宇', '王自大', '孙乾坤', '李自傲', '周天启', '冯天成','任天雨']
}, data:NameLis
yAxis: { },
type: 'value', yAxis: {
minInterval:1, type: 'value',
axisTick: { show:false } minInterval:1,
}, axisTick: { show:false }
tooltip: { },
trigger: 'axis', tooltip: {
axisPointer: { trigger: 'axis',
type: 'none', axisPointer: {
show: false type: 'none',
}, show: false
backgroundColor:'#FFF', },
boxShadow:'0 2px 12px 0 rgba(0,0,0,0.1)', backgroundColor:'#FFF',
textStyle:{ boxShadow:'0 2px 12px 0 rgba(0,0,0,0.1)',
color:'#444' textStyle:{
}, color:'#444'
formatter: function(params){ },
var st='';var sg=0;var reslt; formatter: function(params){
for(let s=0;s<params.length;s++){ var st='';var sg=0;var reslt;
let itm=params[s]; for(let s=0;s<params.length;s++){
sg+=itm.value; let itm=params[s];
st+=`<div style='line-height:25px;'> sg+=itm.value;
<div style='float:left;padding-right:15px;'> st+=`<div style='line-height:25px;'>
<span style='display:inline-block;width:10px;height:10px;margin-right:5px;background-color:${itm.color};'></span> <div style='float:left;padding-right:15px;'>
<span>${itm.seriesName}</span> <span style='display:inline-block;width:10px;height:10px;margin-right:5px;background-color:${itm.color};'></span>
</div> <span>${itm.seriesName}</span>
<div style='float:right;color:#000;font-weight:bold;'>${itm.value}</div><br> </div>
</div>`; <div style='float:right;color:#000;font-weight:bold;'>${itm.value}</div><br>
} </div>`;
reslt=`<div style='line-height:30px;'> }
<div>${((params[0])["axisValue"])}</div> reslt=`<div style='line-height:30px;'>
</div>`; <div>${((params[0])["axisValue"])}</div>
reslt+=st; </div>`;
return `<div style="padding:0 10px 0 10px;">${reslt}</div>`; reslt+=st;
} return `<div style="padding:0 10px 0 10px;">${reslt}</div>`;
}, }
series: [ },
{ series: [
name:"胸痛", {
// data: [100, 200, 150, 80, 70, 110, 130,45], name:"胸痛",
data:arr[0], // data: [100, 200, 150, 80, 70, 110, 130,45],
// stack:'sum', data:arr[0],
type: 'bar', // stack:'sum',
barGap:0.05, type: 'bar',
barMaxWidth:30, barGap:0.05,
barMinWidth:10, barMaxWidth:30,
itemStyle:{ barMinWidth:10,
normal:{ itemStyle:{
color:'#3683B8' normal:{
} color:'#3683B8'
}, }
}, },
{ },
name:"卒中", {
// data: [80, 200, 150, 80, 70, 110, 130,45], name:"卒中",
data:arr[1], // data: [80, 200, 150, 80, 70, 110, 130,45],
// stack:'sum', data:arr[1],
type: 'bar', // stack:'sum',
barGap:0.05, type: 'bar',
barMaxWidth:30, barGap:0.05,
barMinWidth:10, barMaxWidth:30,
itemStyle:{ barMinWidth:10,
normal:{ itemStyle:{
color:'#4294EA' normal:{
} color:'#4294EA'
}, }
},
}, },
{ {
name:"创伤", name:"创伤",
// data: [70, 200, 150, 80, 70, 110, 130,45], // data: [70, 200, 150, 80, 70, 110, 130,45],
data:arr[2], data:arr[2],
// stack:'sum', // stack:'sum',
type: 'bar', type: 'bar',
barGap:0.05, barGap:0.05,
barMaxWidth:30, barMaxWidth:30,
barMinWidth:10, barMinWidth:10,
itemStyle:{ itemStyle:{
normal:{ normal:{
color:'#8DCA86' color:'#8DCA86'
} }
}, },
}, },
{ {
name:"烧伤", name:"烧伤",
// data: [90, 200, 150, 80, 70, 110, 130,45], // data: [90, 200, 150, 80, 70, 110, 130,45],
data:arr[3], data:arr[3],
// stack:'sum', // stack:'sum',
type: 'bar', type: 'bar',
barGap:0.05, barGap:0.05,
barMaxWidth:30, barMaxWidth:30,
barMinWidth:10, barMinWidth:10,
itemStyle:{ itemStyle:{
normal:{ normal:{
color:'#E8AC63' color:'#E8AC63'
}
}
} }
} ]
} };
] myChart.setOption(opts);
};
//console.log(option)
myChart.setOption(option);
}, },
drawc50Bar(data){ drawc50Bar(data){
var that=this; var that=this;
...@@ -541,7 +537,7 @@ export default{ ...@@ -541,7 +537,7 @@ export default{
}; };
myChart.setOption(opts); myChart.setOption(opts);
}, },
ChangeDateCharts(num){this.activePanel=(num==1)?'v1':'v2';this.barChartsInit();}, ChangeDateCharts(num){this.activePanel=`v${num}`;this.barChartsInit();},
getCtx(refName){ return echarts.init((this.$refs)[refName]); } getCtx(refName){ return echarts.init((this.$refs)[refName]); }
} }
} }
...@@ -577,6 +573,10 @@ export default{ ...@@ -577,6 +573,10 @@ export default{
button{ button{
padding-top:1px; padding-top:1px;
padding-bottom:1px; padding-bottom:1px;
color:#444444;
&.sel{
color:#4294EA;
}
} }
} }
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<img src="@/assets/icon_img/v2.png" alt="" /> <img src="@/assets/icon_img/v2.png" alt="" />
</div> </div>
<div class="txt"> <div class="txt">
<div class="type-desc">胸痛中心</div> <div class="type-desc">卒中中心</div>
<div class="num-desc"><span>{{strokeTotal}}</span></div> <div class="num-desc"><span>{{strokeTotal}}</span></div>
</div> </div>
</div> </div>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<img src="@/assets/icon_img/v3.png" alt=""> <img src="@/assets/icon_img/v3.png" alt="">
</div> </div>
<div class="txt"> <div class="txt">
<div class="type-desc">胸痛中心</div> <div class="type-desc">创伤中心</div>
<div class="num-desc"><span>{{traumaTotal}}</span></div> <div class="num-desc"><span>{{traumaTotal}}</span></div>
</div> </div>
</div> </div>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<img src="@/assets/icon_img/v4.png" alt=""> <img src="@/assets/icon_img/v4.png" alt="">
</div> </div>
<div class="txt"> <div class="txt">
<div class="type-desc">胸痛中心</div> <div class="type-desc">烧伤中心</div>
<div class="num-desc"><span>{{burnTotal}}</span></div> <div class="num-desc"><span>{{burnTotal}}</span></div>
</div> </div>
</div> </div>
...@@ -47,11 +47,11 @@ ...@@ -47,11 +47,11 @@
</div> </div>
<div class="w50"> <div class="w50">
<div class="div-charts"> <div class="div-charts">
<div class="charts-title"> 2021年武汉市各中心授牌数量({{p1itemTotal}}) <span>{{descTxt}}<i :class="[addOrReduce==1?`el-icon-top`:`el-icon-bottom`,`bold`]"></i></span></div> <div class="charts-title">{{newyear}}年武汉市各中心授牌数量({{p1itemTotal}}) <span :class="{down:addOrReduce!=1}">{{descTxt}}<i :class="[addOrReduce==1?`el-icon-top`:`el-icon-bottom`,`bold`]"></i></span></div>
<div class="charts-cont" ref="pie01"></div> <div class="charts-cont" ref="pie01"></div>
</div> </div>
<div class="div-charts"> <div class="div-charts">
<div class="charts-title"> 2021年武汉市各中心授牌数量({{p2itemTotal}})</div> <div class="charts-title">{{oldyear}}年武汉市各中心授牌数量({{p2itemTotal}})</div>
<div class="charts-cont" ref="pie02"></div> <div class="charts-cont" ref="pie02"></div>
</div> </div>
</div> </div>
...@@ -78,7 +78,10 @@ import {constructionStatistics} from '@/api/hospital'; ...@@ -78,7 +78,10 @@ import {constructionStatistics} from '@/api/hospital';
export default{ export default{
name: 'overviewIndex', name: 'overviewIndex',
data() { data() {
var year=(new Date()).getFullYear(),oldYear=year-1;
return { return {
oldyear:oldYear,
newyear:year,
chestTotal:'', chestTotal:'',
strokeTotal:'', strokeTotal:'',
traumaTotal:'', traumaTotal:'',
...@@ -619,6 +622,9 @@ export default{ ...@@ -619,6 +622,9 @@ export default{
span{ span{
font-size:16px; font-size:16px;
color:#3CBF2D; color:#3CBF2D;
&.down{
color:red;
}
.bold{ .bold{
font-weight:bold; font-weight:bold;
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="page-runStatis"> <div class="page-runStatis">
<el-form :inline="true" :model="searchForm" ref="searchForm" size="small"> <el-form :inline="true" :model="searchForm" ref="searchForm" size="small">
<el-form-item prop="searchDate" label="查询日期"> <el-form-item prop="searchDate" label="查询日期">
<el-date-picker v-model="searchForm.searchDate" type="year" placeholder="请选择日期"></el-date-picker> <el-date-picker v-model="searchForm.searchDate" type="year" placeholder="请选择年份" value-format="yyyy" format="yyyy"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item prop="hospitalCode" label="选择医院"> <el-form-item prop="hospitalCode" label="选择医院">
<el-select v-model="searchForm.hospitalCode" placeholder="请输入医院名称" filterable remote reserve-keyword :remote-method="debounceFn(getHospitalLis,200)" :loading="loading"> <el-select v-model="searchForm.hospitalCode" placeholder="请输入医院名称" filterable remote reserve-keyword :remote-method="debounceFn(getHospitalLis,200)" :loading="loading">
...@@ -21,12 +21,12 @@ ...@@ -21,12 +21,12 @@
</el-form> </el-form>
<div class="panel-Box padding_bottom45"> <div class="panel-Box padding_bottom45">
<div class="charts-box"> <div class="charts-box">
<div class="charts" ref="lineBar"></div> <div class="charts1" ref="lineBar"></div>
</div> </div>
</div> </div>
<div class="panel-Box"> <div class="panel-Box">
<div class="charts-box"> <div class="charts-box">
<div class="charts" ref="vhBar"></div> <div class="charts2" ref="vhBar"></div>
<div class="scroll_box" ref="BarScBox" @scroll="SCOllBoxFn(`BarData`,`vhBar`,`BarScBox`,`BarScLine`,`persw`)"> <div class="scroll_box" ref="BarScBox" @scroll="SCOllBoxFn(`BarData`,`vhBar`,`BarScBox`,`BarScLine`,`persw`)">
<div class="scroll_line" ref="BarScLine"></div> <div class="scroll_line" ref="BarScLine"></div>
</div> </div>
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import {businessOperationStatistics,queryHospitalList} from '@/api/hospital.js'; import {businessOperationStatistics,queryHospitalList} from '@/api/hospital.js';
import { mapGetters } from 'vuex';
export default{ export default{
name:"runStatis", name:"runStatis",
data(){ data(){
...@@ -52,7 +53,8 @@ export default{ ...@@ -52,7 +53,8 @@ export default{
hospitalList:[], hospitalList:[],
lineBar:{ lineBar:{
nameLis:[], nameLis:[],
Arr:[] Arr:[],
TLis:[]
}, },
BarData:{ BarData:{
Namelis:[ Namelis:[
...@@ -74,7 +76,7 @@ export default{ ...@@ -74,7 +76,7 @@ export default{
// [16,26,50,26,35,32,92,49,20,43,7,5,41,7,85,82,85,15,70,14,98,29,13,3,86,72,75,22,12,40,16,38,24,72,30,36,55,72,54,63,21,46,70,69,81,12,7,0,99,74,29,64,31,10,41,47,99,0,99,99,97,93,8,40,31,68,63,47,32,9,66,4,4,48,88,94,15,79,72,80,23,4,46,49,78,79,7,25,81,19,87,67,23,66,46,34,52,89,36,76], // [16,26,50,26,35,32,92,49,20,43,7,5,41,7,85,82,85,15,70,14,98,29,13,3,86,72,75,22,12,40,16,38,24,72,30,36,55,72,54,63,21,46,70,69,81,12,7,0,99,74,29,64,31,10,41,47,99,0,99,99,97,93,8,40,31,68,63,47,32,9,66,4,4,48,88,94,15,79,72,80,23,4,46,49,78,79,7,25,81,19,87,67,23,66,46,34,52,89,36,76],
// [94,24,91,69,46,85,3,8,33,49,31,5,59,7,56,6,80,74,52,74,32,60,8,77,80,46,26,94,63,86,80,99,83,34,38,35,22,14,64,7,66,30,34,87,38,78,98,3,23,16,42,18,18,8,99,92,6,11,65,21,94,59,89,80,9,99,2,48,11,55,76,56,6,64,97,73,10,74,45,3,22,50,70,2,13,7,61,67,55,65,94,87,29,91,91,70,57,92,40,97], // [94,24,91,69,46,85,3,8,33,49,31,5,59,7,56,6,80,74,52,74,32,60,8,77,80,46,26,94,63,86,80,99,83,34,38,35,22,14,64,7,66,30,34,87,38,78,98,3,23,16,42,18,18,8,99,92,6,11,65,21,94,59,89,80,9,99,2,48,11,55,76,56,6,64,97,73,10,74,45,3,22,50,70,2,13,7,61,67,55,65,94,87,29,91,91,70,57,92,40,97],
// [39,50,46,32,19,24,41,55,1,85,80,14,37,90,37,19,70,29,81,44,34,26,48,9,35,47,41,5,68,88,65,86,7,11,24,89,31,90,13,80,10,67,26,40,53,10,42,51,96,43,72,64,74,85,28,44,65,86,25,27,29,79,65,70,81,98,69,80,31,34,80,50,42,18,57,1,91,36,41,23,83,53,67,40,47,43,36,48,11,51,54,57,25,36,58,89,22,95,97,91] // [39,50,46,32,19,24,41,55,1,85,80,14,37,90,37,19,70,29,81,44,34,26,48,9,35,47,41,5,68,88,65,86,7,11,24,89,31,90,13,80,10,67,26,40,53,10,42,51,96,43,72,64,74,85,28,44,65,86,25,27,29,79,65,70,81,98,69,80,31,34,80,50,42,18,57,1,91,36,41,23,83,53,67,40,47,43,36,48,11,51,54,57,25,36,58,89,22,95,97,91]
// , // ,
// [50,54,75,60,41,59,88,62,76,70,55,4,52,26,96,90,25,59,19,18,17,36,69,94,36,85,14,68,65,13,66,65,37,0,26,18,35,26,84,93,57,54,20,69,24,13,82,30,19,20,77,55,74,90,18,20,68,72,86,64,67,28,28,49,60,68,89,35,38,17,25,21,9,51,73,37,98,83,61,62,26,0,17,90,94,89,87,9,41,78,41,94,84,48,91,13,9,50,85,13], // [50,54,75,60,41,59,88,62,76,70,55,4,52,26,96,90,25,59,19,18,17,36,69,94,36,85,14,68,65,13,66,65,37,0,26,18,35,26,84,93,57,54,20,69,24,13,82,30,19,20,77,55,74,90,18,20,68,72,86,64,67,28,28,49,60,68,89,35,38,17,25,21,9,51,73,37,98,83,61,62,26,0,17,90,94,89,87,9,41,78,41,94,84,48,91,13,9,50,85,13],
// [16,26,50,26,35,32,92,49,20,43,7,5,41,7,85,82,85,15,70,14,98,29,13,3,86,72,75,22,12,40,16,38,24,72,30,36,55,72,54,63,21,46,70,69,81,12,7,0,99,74,29,64,31,10,41,47,99,0,99,99,97,93,8,40,31,68,63,47,32,9,66,4,4,48,88,94,15,79,72,80,23,4,46,49,78,79,7,25,81,19,87,67,23,66,46,34,52,89,36,76], // [16,26,50,26,35,32,92,49,20,43,7,5,41,7,85,82,85,15,70,14,98,29,13,3,86,72,75,22,12,40,16,38,24,72,30,36,55,72,54,63,21,46,70,69,81,12,7,0,99,74,29,64,31,10,41,47,99,0,99,99,97,93,8,40,31,68,63,47,32,9,66,4,4,48,88,94,15,79,72,80,23,4,46,49,78,79,7,25,81,19,87,67,23,66,46,34,52,89,36,76],
// [94,24,91,69,46,85,3,8,33,49,31,5,59,7,56,6,80,74,52,74,32,60,8,77,80,46,26,94,63,86,80,99,83,34,38,35,22,14,64,7,66,30,34,87,38,78,98,3,23,16,42,18,18,8,99,92,6,11,65,21,94,59,89,80,9,99,2,48,11,55,76,56,6,64,97,73,10,74,45,3,22,50,70,2,13,7,61,67,55,65,94,87,29,91,91,70,57,92,40,97], // [94,24,91,69,46,85,3,8,33,49,31,5,59,7,56,6,80,74,52,74,32,60,8,77,80,46,26,94,63,86,80,99,83,34,38,35,22,14,64,7,66,30,34,87,38,78,98,3,23,16,42,18,18,8,99,92,6,11,65,21,94,59,89,80,9,99,2,48,11,55,76,56,6,64,97,73,10,74,45,3,22,50,70,2,13,7,61,67,55,65,94,87,29,91,91,70,57,92,40,97],
...@@ -94,15 +96,27 @@ export default{ ...@@ -94,15 +96,27 @@ export default{
}, },
created(){ created(){
var that=this; var that=this;
let code=that.userInfo.hospitalCode;
let Name=that.userInfo.hospitalName;
// that.hospitalList=[{Name:Name,code:code}];
// that.searchForm.hospitalCode=code;
that.getServeData(); that.getServeData();
that.getHospitalLis(); that.getHospitalLis();
console.log("this.$el",this.$el)
},
computed:{
...mapGetters(['userInfo'])
},
beforeMount() {
console.log("this.$el",this.$el)
}, },
mounted(){ mounted(){
this.$nextTick(()=>{ this.$nextTick(()=>{
this.ISmounted=true; this.ISmounted=true;
console.log("this.$el",this.$el)
if(this.ISDataComplate){ if(this.ISDataComplate){
that.drawLineBar(this.lineBar.nameLis,this.lineBar.Arr); try{ that.drawLineBar(this.lineBar.nameLis,this.lineBar.Arr,this.lineBar.TLis); }catch(e){console.log(e);}
that.drawBar(); try{ that.drawBar(); }catch(e){console.log(e);}
}else{ }else{
console.log("dom挂载完成,但数据没准备好"); console.log("dom挂载完成,但数据没准备好");
} }
...@@ -112,9 +126,9 @@ export default{ ...@@ -112,9 +126,9 @@ export default{
gv(value,dValue){ return (value)?value:dValue }, gv(value,dValue){ return (value)?value:dValue },
debounceFn(fn,delay){ debounceFn(fn,delay){
let timer = null let timer = null
return function(args) { return function(args){
if(timer){ if(timer){
clearTimeout(timer) clearTimeout(timer)
} }
timer = setTimeout(fn(args),delay) timer = setTimeout(fn(args),delay)
} }
...@@ -153,19 +167,22 @@ export default{ ...@@ -153,19 +167,22 @@ export default{
fillServeData(respData){ fillServeData(respData){
var that=this; var that=this;
var result=that.gv(respData.hospitalVoList,[]).reduce(function(prv,cur,index,arr){ var result=that.gv(respData.hospitalVoList,[]).reduce(function(prv,cur,index,arr){
prv.nameLis.push(cue.hospitalName); prv.nameLis.push(cur.hospitalName);
prv.dataLis.push(cue.systemCount); prv.dataLis.push(cur.systemCount);
prv.totalLis.push(cur.totalCount);
return prv; return prv;
},{nameLis:[],dataLis:[]}); },{nameLis:[],dataLis:[],totalLis:[]});
that.lineBar.nameLis=Object.freeze(result.nameLis); that.lineBar.nameLis=Object.freeze(result.nameLis);
that.lineBar.Arr=Object.freeze(result.dataLis); that.lineBar.Arr=Object.freeze(result.dataLis);
that.lineBar.TLis=Object.freeze(result.totalLis);
console.log("this.$el",this.$el)
if(that.ISmounted){ if(that.ISmounted){
that.drawLineBar(result.nameLis,result.dataLis); try{ that.drawLineBar(result.nameLis,result.dataLis,result.totalLis); }catch(e){ console.log(e); }
}else{ }else{
console.log("数据准备好了,但dom没挂在完成") console.log("数据准备好了,但dom没挂在完成")
} }
var VoLis=(that.activeTab==1)?(that.gv(respData.chestVoList,[])):(that.gv(respData.strokeVoList,[])) var VoLis=(that.activeTab==1)?(that.gv(respData.chestVoList,[])):(that.gv(respData.strokeVoList,[]))
var kys=(that.activeTab==1)?([`thrombolysisCount`,`operationCount`,`conservativeCount`,`monthTotal`]):([`diagnoseCount`,`sTEMICount`,`nSTEMICount`,`uACount`,`aorticCount`,`pulmonaryCount`,`unAcsCount`,`otherAcsCount`,`giveUpCount`,`otherCount`,`monthTotal`]) var kys=(that.activeTab==1)?([`diagnoseCount`,`sTEMICount`,`nSTEMICount`,`uACount`,`aorticCount`,`pulmonaryCount`,`unAcsCount`,`otherAcsCount`,`giveUpCount`,`otherCount`,`monthTotal`]):([`thrombolysisCount`,`operationCount`,`conservativeCount`,`monthTotal`]);
var oAr=kys.map(function(){return [];}); var oAr=kys.map(function(){return [];});
var result=VoLis.reduce(function(prv,cur,index,arr){ var result=VoLis.reduce(function(prv,cur,index,arr){
prv.NameLis.push(cur.month); prv.NameLis.push(cur.month);
...@@ -173,11 +190,11 @@ export default{ ...@@ -173,11 +190,11 @@ export default{
(prv.arr)[j].push(cur[ky]); (prv.arr)[j].push(cur[ky]);
}) })
return prv; return prv;
},{NameLis:[],arr:oAr}) },{NameLis:[],arr:oAr});
that.BarData.Namelis=Object.freeze(result.NameLis); that.BarData.Namelis=Object.freeze(result.NameLis);
that.BarData.Arr=Object.freeze(result.arr.map(Object.freeze)) that.BarData.Arr=Object.freeze(result.arr.map(Object.freeze));
if(that.ISmounted){ if(that.ISmounted){
that.drawBar(); try{ that.drawBar(); }catch(e){ console.log(e); }
} }
that.ISDataComplate=true; that.ISDataComplate=true;
}, },
...@@ -186,9 +203,13 @@ export default{ ...@@ -186,9 +203,13 @@ export default{
this.getServeData(); this.getServeData();
}, },
resetForm(formName){ this.$refs[formName].resetFields(); }, resetForm(formName){ this.$refs[formName].resetFields(); },
drawLineBar(NameLis,dataLis){ drawLineBar(NameLis,dataLis,totalLis){
var that=this; var that=this;
var charts=that.getCtx(`lineBar`); var charts=that.getCtx(`lineBar`);
if(NameLis.length==0){ charts.clear(); };
var maxLen=5;
if(NameLis.length!='0'){ maxLen=Math.max(...(NameLis.map(function(c){return c.length;}))); };
var Left=(maxLen<6)?80:(80+(13*(maxLen-6)));
var title=that.activeTab==1?'胸痛中心上报病历数':'卒中中心上报病历数'; var title=that.activeTab==1?'胸痛中心上报病历数':'卒中中心上报病历数';
var opts={ var opts={
title:{ title:{
...@@ -201,13 +222,45 @@ export default{ ...@@ -201,13 +222,45 @@ export default{
} }
}, },
grid:{ grid:{
left:150, left:Left,
top:64, top:64,
right:50, right:50,
bottom:20, bottom:20,
}, },
xAxis: { xAxis: {
max: 'dataMax' max: 'dataMax',
minInterval:1,
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'none',
show: false
},
backgroundColor:'#FFF',
boxShadow:'0 2px 12px 0 rgba(0,0,0,0.1)',
textStyle:{
color:'#444'
},
formatter:function(params){
var st='';var sg=0;var reslt;
for(let s=0;s<params.length;s++){
let itm=params[s];
sg+=itm.value;
st+=`<div style='line-height:25px;'>
<div style='float:left;padding-right:15px;'>
<span style='display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;background-color:${itm.color};'></span>
<span>${itm.seriesName}</span>
</div>
<div style='float:right;color:#000;font-weight:bold;'>${itm.value}</div><br>
</div>`;
}
reslt=`<div style='line-height:30px;'>
<div>${((params[0])["axisValue"])}</div>
</div>`;
reslt+=st;
return `<div style="padding:0 10px 0 10px;">${reslt}</div>`;
}
}, },
yAxis: { yAxis: {
type: 'category', type: 'category',
...@@ -217,38 +270,55 @@ export default{ ...@@ -217,38 +270,55 @@ export default{
axisTick:{ axisTick:{
show:false show:false
}, },
animationDuration: 300, // animationDuration: 300,
animationDurationUpdate: 300, // animationDurationUpdate: 300,
max:9 // only the largest 3 bars will be displayed max:9 // only the largest 3 bars will be displayed
}, },
series: [ series: [
{ {
realtimeSort: true, // realtimeSort: true,
name: 'X', name: '系统上报人数',
type: 'bar', type: 'bar',
barWidth:20, barWidth:20,
// data: [100,200,190,210,250,500,100,200,190,210], stack: 'V1',
data:dataLis, color:'#4495E6',
label: { // data: [100,200,190,210,250,500,100,200,190,210],
show:true, data:dataLis,
position: 'right', // label: {
valueAnimation: true // show:true,
} // position: 'right',
// valueAnimation: true
// }
},
{
// realtimeSort: true,
name: '系统新建人数',
type: 'bar',
barWidth:20,
stack: 'V1',
color:'#8DCA86',
// data: [100,200,190,210,250,500,100,200,190,210],
data:totalLis,
// label: {
// show:true,
// position: 'right',
// valueAnimation: true
// }
} }
], ],
animationDuration: 0, // animationDuration: 0,
animationDurationUpdate: 3000, // animationDurationUpdate: 3000,
animationEasing: 'linear', // animationEasing: 'linear',
animationEasingUpdate: 'linear' // animationEasingUpdate: 'linear'
}; };
charts.setOption(opts); charts.setOption(opts);
}, },
drawBar(){ drawBar(){
var that=this; var that=this;
var Oc={datakey:'BarData',dom:'vhBar',scBox:'BarScBox',scline:'BarScLine',vlen:'persw'}; var Oc={datakey:'BarData',dom:'vhBar',scBox:'BarScBox',scline:'BarScLine',vlen:'persw'};
var drData=that[(Oc.datakey)]; var drData=that[(Oc.datakey)];
var Namelis=drData.Namelis; var Namelis=drData.Namelis;
if(Namelis.length=='0'){ return; } // if(Namelis.length=='0'){ return; }
var Arr=drData.Arr; var Arr=drData.Arr;
var Wh=(that.$refs[(Oc.scBox)]).offsetWidth; var Wh=(that.$refs[(Oc.scBox)]).offsetWidth;
var barW=(that.activeTab==1)?300:120; var barW=(that.activeTab==1)?300:120;
...@@ -303,9 +373,9 @@ export default{ ...@@ -303,9 +373,9 @@ export default{
<span>${rtem.seriesName}</span> <span>${rtem.seriesName}</span>
</div> </div>
<div class="v">${rtem.value}</div><br> <div class="v">${rtem.value}</div><br>
</div>` </div>`
} }
st+=`</div>`; st+=`</div>`;
} }
var resStr=`<style type="text/css"> var resStr=`<style type="text/css">
.box1648092821403{ .box1648092821403{
...@@ -373,7 +443,7 @@ export default{ ...@@ -373,7 +443,7 @@ export default{
<div class="title">${((params[0])["axisValue"])}</div> <div class="title">${((params[0])["axisValue"])}</div>
${st} ${st}
</div>`; </div>`;
return resStr; return resStr;
} }
}else{ }else{
return function(params){ return function(params){
...@@ -423,7 +493,7 @@ export default{ ...@@ -423,7 +493,7 @@ export default{
return{ return{
grid:{ grid:{
left:40, // 默认10%,给24就挺合适的。 left:40, // 默认10%,给24就挺合适的。
top:60, // 默认60 top:90, // 默认60
right:50, // 默认10% right:50, // 默认10%
bottom:35, // 默认60 bottom:35, // 默认60
}, },
...@@ -436,7 +506,7 @@ export default{ ...@@ -436,7 +506,7 @@ export default{
}, },
legend:[ legend:[
{ {
top:40, top:43,
right:100, right:100,
itemWidth:12, // 设置宽度 itemWidth:12, // 设置宽度
itemHeight:12, // 设置高度 itemHeight:12, // 设置高度
...@@ -448,7 +518,7 @@ export default{ ...@@ -448,7 +518,7 @@ export default{
}, },
data:result.leg1 data:result.leg1
},{ },{
top:40, top:43,
right:20, right:20,
data:result.leg2 data:result.leg2
} }
...@@ -484,7 +554,7 @@ export default{ ...@@ -484,7 +554,7 @@ export default{
drawBarEchart(dom,NameLis,arr,isClear){ drawBarEchart(dom,NameLis,arr,isClear){
var that=this; var that=this;
var charts=that.getCtx(dom); var charts=that.getCtx(dom);
if(isClear){ charts.clear(); } if(isClear||(NameLis.length===0)){ charts.clear(); }
charts.setOption(that.getOpts(NameLis,arr)); charts.setOption(that.getOpts(NameLis,arr));
}, },
getCtx(refName){ return echarts.init((this.$refs)[refName]); } getCtx(refName){ return echarts.init((this.$refs)[refName]); }
...@@ -494,7 +564,7 @@ export default{ ...@@ -494,7 +564,7 @@ export default{
<style lang="scss"> <style lang="scss">
.main-page{ .main-page{
.tab-btn{ .tab-btn{
font-size:0; font-size:0;
button.el-button{ button.el-button{
position: relative; position: relative;
font-size:14px; font-size:14px;
...@@ -514,7 +584,7 @@ export default{ ...@@ -514,7 +584,7 @@ export default{
border-radius:50%; border-radius:50%;
} }
} }
} }
} }
.page-runStatis{ .page-runStatis{
padding: 24px 32px 24px; padding: 24px 32px 24px;
...@@ -533,16 +603,19 @@ export default{ ...@@ -533,16 +603,19 @@ export default{
.panel-Box{ .panel-Box{
padding-top:20px; padding-top:20px;
padding-bottom: 10px; padding-bottom: 10px;
.title{ .title{
font-size:20px; font-size:20px;
font-weight:bold; font-weight:bold;
color:rgba(0, 0, 0, 0.87); color:rgba(0, 0, 0, 0.87);
} }
.charts-box{ .charts-box{
.charts{ .charts1{
height:358px; height:358px;
} }
.charts2{
height:428px;
}
.scroll_box{ .scroll_box{
width:100%; width:100%;
overflow-x:auto; overflow-x:auto;
......
...@@ -44,76 +44,6 @@ export const LoginByToken = function({ ...@@ -44,76 +44,6 @@ export const LoginByToken = function({
token, token,
userDto userDto
} = res.respData; } = res.respData;
// debugger;
// console.log(parentMenuList[4].secondMenuList[0]);
// parentMenuList[4].secondMenuList.splice(1,0,
// {
// isAvailable: null,
// isCheck: 1,
// isDelete: 0,
// keyName: "overview",
// menuId: 13,
// menuName: "建设概览",
// menuType: 2,
// parentMenuId: 18,
// roleId: 1,
// secondMenuList: null,
// sortId: 2,
// url: "/business/overview"
// },
// {
// isAvailable: null,
// isCheck: 1,
// isDelete: 0,
// keyName: "collStatis",
// menuId: 19,
// menuName: "业务协同统计",
// menuType: 2,
// parentMenuId: 18,
// roleId: 1,
// secondMenuList: null,
// sortId: 3,
// url: "/business/collStatis"
// },
// {
// isAvailable: null,
// isCheck: 1,
// isDelete: 0,
// keyName: "runStatis",
// menuId: 24,
// menuName: "业务运行统计",
// menuType: 2,
// parentMenuId: 18,
// roleId: 1,
// secondMenuList: null,
// sortId: 4,
// url: "/business/runStatis"
// }
// )
// debugger;
/*
parentMenuList[4].secondMenuList.splice(1,0,{
isAvailable: null,
isCheck: 1,
isDelete: 0,
keyName: "InHosFirstAid",
menuId:19,
menuName: "院内急救信息",
menuType: 2,
parentMenuId: 18,
roleId: 1,
secondMenuList: null,
sortId: 2,
url: "/business/inhosfirstaid"
})
parentMenuList.forEach(function(item,index){
console.log(index+" menuId:"+item.menuId+" menuType:"+item.menuType+" parentMenuId:"+item.parentMenuId+" sortId:"+item.sortId);
(Array.isArray(item.secondMenuList)?(item.secondMenuList):[]).forEach(function(lik,i){
console.log(" "+index+'-'+i+"menuId:"+lik.menuId+" menuType:"+lik.menuType+" parentMenuId:"+lik.parentMenuId+" sortId:"+lik.sortId)
})
})
*/
if (res.msg === 201 && parentMenuList && parentMenuList.length > 0) { if (res.msg === 201 && parentMenuList && parentMenuList.length > 0) {
await commit(types.SET_MENUMAP, Cache.setMenuMap(parentMenuList)) await commit(types.SET_MENUMAP, Cache.setMenuMap(parentMenuList))
await commit(types.SET_USERINFO, Cache.setUserInfo(userDto)) await commit(types.SET_USERINFO, Cache.setUserInfo(userDto))
......
...@@ -28,7 +28,10 @@ service.interceptors.request.use( ...@@ -28,7 +28,10 @@ service.interceptors.request.use(
config => { config => {
if (Auth.getLoginInfo()) { if (Auth.getLoginInfo()) {
config.headers['token'] = Auth.getLoginInfo() config.headers['token'] = Auth.getLoginInfo()
} };
if(config.url==`/api/team/importExcel/uploadExcel`){ //上传文件接口
config.headers['productType']=config.data.get('productType');
};
return config return config
}, },
err => { err => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment