|
|
@ -71,69 +71,77 @@ |
|
|
|
<el-row :gutter="16" style="height:100%"> |
|
|
|
<span class="statics-title-date"> |
|
|
|
<p class="statics-title">手术量统计</p> |
|
|
|
<el-select v-model="operaTj.doctorId" placeholder="医生" size="small" clearable @clear="newOperaCensus()" |
|
|
|
@change="newOperaCensus()" style="margin-right:20px;"> |
|
|
|
<el-select v-model="operaTj.doctorId" placeholder="医生" size="small" clearable @clear="operaRefresh()" |
|
|
|
@change="operaRefresh()" style="margin-right:20px;"> |
|
|
|
<el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName" |
|
|
|
:value="item.doctorCode" /> |
|
|
|
</el-select> |
|
|
|
<el-date-picker style="margin-right:20px;" v-model="operaStartEndTime" size="small" type="daterange" |
|
|
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" |
|
|
|
@change="operaDateChange" /> |
|
|
|
<el-radio-group v-model="operaTj.type" size="mini" @change="newOperaCensus()"> |
|
|
|
<el-radio-group v-model="operaTj.type" size="mini" @change="radioOperaTypeChange()"> |
|
|
|
<el-radio-button label="3">周</el-radio-button> |
|
|
|
<el-radio-button label="2">月</el-radio-button> |
|
|
|
<el-radio-button label="1">年</el-radio-button> |
|
|
|
</el-radio-group> |
|
|
|
<el-button style="margin-left:30px;" type="primary">导出</el-button> |
|
|
|
<el-button style="margin-left:30px;" type="primary" size="mini">导出</el-button> |
|
|
|
</span> |
|
|
|
<el-col :span="12" style="height:100%;"> |
|
|
|
<el-col :span="12" style="height:90%;"> |
|
|
|
<div class="operation-volume-echarts"> |
|
|
|
<operation-volume-echarts v-if="operationVolumeHeight" id-name="operation-volume" |
|
|
|
:chart-data="operationVolumeList" :height="operationVolumeHeight" ref="operaRef" /> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-table :data="operaCensusDataList"> |
|
|
|
<el-col :span="12" style="height:90%;"> |
|
|
|
<el-table :data="operaCensusDataList" :height="operationVolumeHeight1 - 45"> |
|
|
|
<el-table-column prop="doctorName" label="医生姓名" width="90"></el-table-column> |
|
|
|
<el-table-column prop="operaDate" label="手术时间" width="110"></el-table-column> |
|
|
|
<el-table-column prop="operaName" label="手术名称"></el-table-column> |
|
|
|
<el-table-column prop="patientName" label="患者姓名" width="90"></el-table-column> |
|
|
|
<el-table-column prop="patientId" label="PID" width="90"></el-table-column> |
|
|
|
<el-table-column prop="patientId" label="PID" width="120"></el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination background layout="total, prev, pager, next" :total="opearTotal" :page-size="operaTj.limit" |
|
|
|
:current-page.sync="operaTj.page" @current-change="pageCurrentChangeHandle" /> |
|
|
|
<el-pagination background layout="total, prev, pager, next" :total="opearTotal" :page-size="operaTj.limit" style="margin-top:10px;" |
|
|
|
:current-page.sync="operaTj.page" @current-change="operaPageCurrentChangeHandle" /> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
<div class="statics-bottom"> |
|
|
|
<el-row :gutter="16"> |
|
|
|
<span class="doctor-ssl-title-date" style="margin-top:10px;"> |
|
|
|
<span class="jzrc-title-date" style="margin-top:10px;"> |
|
|
|
<p style="margin-right:10px;font-size:20px;">就诊人次统计</p> |
|
|
|
<el-select v-model="jzrcTj.doctorId" placeholder="医生" size="small" clearable @clear="newJzrcCensus()" |
|
|
|
@change="newJzrcCensus()" style="margin-right:20px;"> |
|
|
|
<el-select v-model="jzrcTj.doctorId" placeholder="医生" size="small" clearable @clear="jzrcRefresh()" |
|
|
|
@change="jzrcRefresh()" style="margin-right:20px;"> |
|
|
|
<el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName" |
|
|
|
:value="item.doctorCode" /> |
|
|
|
</el-select> |
|
|
|
<el-date-picker style="margin-right:20px;" v-model="jzrcStartEndTime" size="small" type="daterange" |
|
|
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" |
|
|
|
@change="operaDateChange" /> |
|
|
|
<el-radio-group v-model="jzrcTj.type" size="mini" @change="newJzrcCensus"> |
|
|
|
@change="jzrcDateChange" /> |
|
|
|
<el-radio-group v-model="jzrcTj.type" size="mini" @change="radioJzrcTypeChange"> |
|
|
|
<el-radio-button label="3">本周</el-radio-button> |
|
|
|
<el-radio-button label="2">本月</el-radio-button> |
|
|
|
<el-radio-button label="1">本年</el-radio-button> |
|
|
|
</el-radio-group> |
|
|
|
<el-button style="margin-left:30px;" type="primary">导出</el-button> |
|
|
|
<el-button style="margin-left:30px;" type="primary" size="mini">导出</el-button> |
|
|
|
</span> |
|
|
|
<el-col :span="12"> |
|
|
|
<div class="doctor-ssl"> |
|
|
|
<div class="doctor-ssl-echearts"> |
|
|
|
<doctor-ssl-echarts v-if="doctorSSLEchartsHeight" id-name="doctor-ssl-bar" :chart-data="doctorSSLBarList" |
|
|
|
:height="doctorSSLEchartsHeight" /> |
|
|
|
<div class="jzrc"> |
|
|
|
<div class="jzrc-echearts"> |
|
|
|
<jzrc-echarts v-if="jzrcEchartsHeight" id-name="jzrc-bar" :chart-data="jzrcCensusList" |
|
|
|
:height="jzrcEchartsHeight" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
123 |
|
|
|
<el-table :data="jzrcCensusDataList" :height="jzrcEchartsHeight1 - 45"> |
|
|
|
<el-table-column prop="patientId" label="PID"></el-table-column> |
|
|
|
<el-table-column prop="patientName" label="患者姓名" ></el-table-column> |
|
|
|
<el-table-column prop="patientSex" label="患者性别"></el-table-column> |
|
|
|
<el-table-column prop="patientBirthday" label="患者生日" ></el-table-column> |
|
|
|
<el-table-column prop="doctorName" label="医生姓名"></el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination background layout="total, prev, pager, next" :total="jzrcTotal" :page-size="jzrcTj.limit" style="margin-top:10px;" |
|
|
|
:current-page.sync="jzrcTj.page" @current-change="jzrcPageCurrentChangeHandle" /> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
@ -142,21 +150,23 @@ |
|
|
|
<script> |
|
|
|
import operationVolumeEcharts from './operation-volume-echarts.vue' |
|
|
|
import ssfxEcharts from './ssfx-echarts.vue' |
|
|
|
import doctorSslEcharts from './doctor-ssl-echarts.vue' |
|
|
|
import jzrcEcharts from './jzrc-echarts.vue' |
|
|
|
import wjtjEcharts from './wjtj-echarts.vue' |
|
|
|
export default { |
|
|
|
components: { |
|
|
|
operationVolumeEcharts, |
|
|
|
ssfxEcharts, |
|
|
|
doctorSslEcharts, |
|
|
|
jzrcEcharts, |
|
|
|
wjtjEcharts |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
todayShow: false, |
|
|
|
operationVolumeHeight: '', |
|
|
|
operationVolumeHeight1:'', |
|
|
|
ssfxEchartsHeight: '', |
|
|
|
doctorSSLEchartsHeight: '', |
|
|
|
jzrcEchartsHeight: '', |
|
|
|
jzrcEchartsHeight1:'', |
|
|
|
wjtjEchartsHeight: '', |
|
|
|
todayCensusList: {}, |
|
|
|
operationVolumeList: [], |
|
|
@ -164,6 +174,7 @@ export default { |
|
|
|
jzrcCensusList: [], |
|
|
|
jzrcCensusDataList: [], |
|
|
|
opearTotal: 0, |
|
|
|
jzrcTotal: 0, |
|
|
|
ssfxPieList: [], |
|
|
|
doctorSSLBarList: [], |
|
|
|
operaStartEndTime: '', |
|
|
@ -198,9 +209,11 @@ export default { |
|
|
|
this.getDoctorList() |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.operationVolumeHeight = document.querySelector('.operation-volume-echarts') ? document.querySelector('.operation-volume-echarts').offsetHeight + 'px' : '' |
|
|
|
this.operationVolumeHeight = document.querySelector('.operation-volume-echarts') ? (document.querySelector('.operation-volume-echarts').offsetHeight) + 'px' : '' |
|
|
|
this.operationVolumeHeight1 = document.querySelector('.operation-volume-echarts') ? (document.querySelector('.operation-volume-echarts').offsetHeight) : '' |
|
|
|
this.ssfxEchartsHeight = document.querySelector('.ssfx-echarts') ? document.querySelector('.ssfx-echarts').offsetHeight + 'px' : '' |
|
|
|
this.doctorSSLEchartsHeight = document.querySelector('.doctor-ssl-echearts') ? document.querySelector('.doctor-ssl-echearts').offsetHeight + 'px' : '' |
|
|
|
this.jzrcEchartsHeight = document.querySelector('.jzrc-echearts') ? (document.querySelector('.jzrc-echearts').offsetHeight - 40) + 'px' : '' |
|
|
|
this.jzrcEchartsHeight1 = document.querySelector('.jzrc-echearts') ? (document.querySelector('.jzrc-echearts').offsetHeight - 40) : '' |
|
|
|
this.wjtjEchartsHeight = document.querySelector('.wjtj-echarts') ? document.querySelector('.wjtj-echarts').offsetHeight + 'px' : '' |
|
|
|
}, |
|
|
|
methods: { |
|
|
@ -213,10 +226,6 @@ export default { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}, |
|
|
|
newOperaCensus() { |
|
|
|
this.getOperaCensus() |
|
|
|
this.getOperaCensusDataList() |
|
|
|
}, |
|
|
|
// 获取今日数据统计 |
|
|
|
async getTodayCensus() { |
|
|
|
this.todayShow = false |
|
|
@ -230,12 +239,25 @@ export default { |
|
|
|
this.todayCensusList.surveyCompare = survey[1].value - survey[0].value |
|
|
|
this.todayShow = true |
|
|
|
}, |
|
|
|
// 日期改变时 |
|
|
|
// 手术量-刷新 |
|
|
|
operaRefresh() { |
|
|
|
this.getOperaCensus() |
|
|
|
this.getOperaCensusDataList() |
|
|
|
}, |
|
|
|
// 手术量-点击周月年 |
|
|
|
radioOperaTypeChange() { |
|
|
|
this.operaTj.beginDate = '' |
|
|
|
this.operaTj.endDate = '' |
|
|
|
this.operaStartEndTime = '' |
|
|
|
this.operaRefresh() |
|
|
|
}, |
|
|
|
// 手术量-日期改变时 |
|
|
|
operaDateChange(e) { |
|
|
|
console.log('e', e); |
|
|
|
console.log('手术量e', e); |
|
|
|
this.operaTj.type = '' |
|
|
|
this.operaTj.beginDate = e ? e[0] : '' |
|
|
|
this.operaTj.endDate = e ? e[1] : '' |
|
|
|
this.newOperaCensus() |
|
|
|
this.operaRefresh() |
|
|
|
}, |
|
|
|
// 手术量统计echarts |
|
|
|
// type传值的时候,beginDate和endDate不要传值 |
|
|
@ -263,28 +285,37 @@ export default { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}, |
|
|
|
// 分页, 当前页 |
|
|
|
pageCurrentChangeHandle(val) { |
|
|
|
// 手术量统计 - 分页, 当前页 |
|
|
|
operaPageCurrentChangeHandle(val) { |
|
|
|
this.operaTj.page = val |
|
|
|
this.getOperaCensusDataList() |
|
|
|
}, |
|
|
|
newJzrcCensus() { |
|
|
|
// 就诊人次-刷新 |
|
|
|
jzrcRefresh() { |
|
|
|
this.getJzrcCensus() |
|
|
|
this.getJzrcCensusDataList() |
|
|
|
}, |
|
|
|
// 就诊人次-点击周月年 |
|
|
|
radioJzrcTypeChange() { |
|
|
|
this.jzrcTj.beginDate = '' |
|
|
|
this.jzrcTj.endDate = '' |
|
|
|
this.jzrcStartEndTime = '' |
|
|
|
this.jzrcRefresh() |
|
|
|
}, |
|
|
|
// 日期改变时 |
|
|
|
// 就诊人次-日期改变时 |
|
|
|
jzrcDateChange(e) { |
|
|
|
console.log('e', e); |
|
|
|
console.log('就诊人次e', e); |
|
|
|
this.jzrcTj.beginDate = e ? e[0] : '' |
|
|
|
this.jzrcTj.endDate = e ? e[1] : '' |
|
|
|
this.newJzrcCensus() |
|
|
|
this.jzrcTj.type = '' |
|
|
|
this.jzrcRefresh() |
|
|
|
}, |
|
|
|
// 就诊人次统计echarts |
|
|
|
// type传值的时候,beginDate和endDate不要传值 |
|
|
|
// beginDate和endDate传值的时候,type不要传值 |
|
|
|
async getJzrcCensus() { |
|
|
|
const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensus`, { |
|
|
|
params: this.operaTj |
|
|
|
params: this.jzrcTj |
|
|
|
}) |
|
|
|
if (res.code === 0) { |
|
|
|
this.jzrcCensusList = res.data |
|
|
@ -293,10 +324,10 @@ export default { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}, |
|
|
|
// 手术量统计table |
|
|
|
// 就诊人次统计table |
|
|
|
async getJzrcCensusDataList() { |
|
|
|
const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensusDataList`, { |
|
|
|
params: this.operaTj |
|
|
|
params: this.jzrcTj |
|
|
|
}) |
|
|
|
if (res.code === 0) { |
|
|
|
this.jzrcCensusDataList = res.data.list |
|
|
@ -305,6 +336,11 @@ export default { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}, |
|
|
|
// 就诊人次统计 - 分页, 当前页 |
|
|
|
jzrcPageCurrentChangeHandle(val) { |
|
|
|
this.operaTj.page = val |
|
|
|
this.getJzrcCensusDataList() |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
@ -358,12 +394,12 @@ export default { |
|
|
|
// height:calc(100vh - 430px); |
|
|
|
height: 40%; |
|
|
|
.operation-volume-echarts { |
|
|
|
height: 90%; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
.statics-title-date, |
|
|
|
.ssfx-title-date, |
|
|
|
.doctor-ssl-title-date, |
|
|
|
.jzrc-title-date, |
|
|
|
.wjtj-title-date { |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
@ -378,21 +414,20 @@ export default { |
|
|
|
.statics-bottom { |
|
|
|
// height: 260px; |
|
|
|
background: #fff; |
|
|
|
height: 55%; |
|
|
|
height: 50%; |
|
|
|
.el-row, |
|
|
|
.el-col { |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
.ssfx, |
|
|
|
.doctor-ssl, |
|
|
|
.jzrc, |
|
|
|
.wjtj { |
|
|
|
height: 100%; |
|
|
|
background: #fff; |
|
|
|
padding: 16px; |
|
|
|
} |
|
|
|
.ssfx-echarts, |
|
|
|
.doctor-ssl-echearts, |
|
|
|
.jzrc-echearts, |
|
|
|
.wjtj-echarts { |
|
|
|
height: 90%; |
|
|
|
} |
|
|
@ -411,5 +446,11 @@ export default { |
|
|
|
.el-radio-button:first-child .el-radio-button__inner { |
|
|
|
border-left: none; |
|
|
|
} |
|
|
|
.el-pagination { |
|
|
|
margin-top:0; |
|
|
|
} |
|
|
|
.el-table--medium .el-table__cell { |
|
|
|
padding: 6px 0; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|