fix: 统计页面更新代码。

This commit is contained in:
tianyongbao
2024-12-02 13:00:04 +08:00
parent a8ea6eee25
commit e39690e1a2
4 changed files with 166 additions and 233 deletions

View File

@@ -9,11 +9,11 @@
</el-select>
</el-form-item>
<el-form-item label="健康档案" prop="recordId">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange" clearable>
<el-option v-for="health in healthRecordList" :key="health.id" :label="health.name" :value="health.id" />
</el-select>
</el-form-item>
<el-form-item label="用药日期" prop="time" v-if="queryParams.type === 1">
<el-form-item label="就医日期" prop="time" v-if="queryParams.type === 1">
<el-date-picker
v-model="queryParams.time"
type="daterange"
@@ -56,24 +56,87 @@
</div>
<div class="main-con" style="height: calc(100% - 1.45rem)">
<div class="summary-con" style="height: 115px">
<div class="right-con" v-show="mar.marCategoryCount > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">用药种类</div>
<div class="title">就医次数</div>
<div>
<span class="num">{{ mar.marCategoryCount }}</span
><span class="unit"></span>
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.marCount > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">药次数</div>
<div class="title">就医费</div>
<div>
<span class="num">{{ mar.marCount }}</span
><span class="unit"> </span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">常去医院</div>
<div>
<span class="num">{{ mar.qingre }}</span
><span class="unit">XXX</span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">常去科室</div>
<div>
<span class="num">{{ mar.zhike }}</span
><span class="unit">XXX</span>
</div>
</div>
</div>
</div>
<div class="summary-con" style="height: 115px">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">常看大夫</div>
<div>
<span class="num">{{ mar.wuhua }}</span
><span class="unit">XXX</span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">门诊次数</div>
<div>
<span class="num">{{ mar.marCategoryCount }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">急诊次数</div>
<div>
<span class="num">{{ mar.marCount }}</span
><span class="unit"> </span>
@@ -81,153 +144,54 @@
</div>
</div>
<div class="right-con" v-show="mar.qingre > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">清热解毒</div>
<div class="title">住院次数</div>
<div>
<span class="num">{{ mar.qingre }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.zhike > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">止咳化痰平喘</div>
<div>
<span class="num">{{ mar.zhike }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.wuhua > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">雾化消炎</div>
<div>
<span class="num">{{ mar.wuhua }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.kangjun > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗菌消炎</div>
<div>
<span class="num">{{ mar.kangjun }}</span> <span class="unit"></span>
</div>
</div>
</div>
</div>
<div class="summary-con" v-show="mar.kangguomin > 0 || mar.kangbingdu > 0 || mar.tuishao > 0 || mar.biyan > 0 || mar.changdao > 0" style="height: 115px">
<div class="right-con" v-show="mar.kangguomin > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗过敏</div>
<div>
<span class="num">{{ mar.kangguomin }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.kangbingdu > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗病毒</div>
<div>
<span class="num">{{ mar.kangbingdu }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.tuishao > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">退烧用药</div>
<div>
<span class="num">{{ mar.tuishao }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.biyan > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">鼻炎腺样体</div>
<div>
<span class="num">{{ mar.biyan }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.changdao > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">肠道消化</div>
<div>
<span class="num">{{ mar.changdao }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.mianyili > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">免疫力</div>
<div>
<span class="num">{{ mar.mianyili }}</span> <span class="unit"></span>
</div>
</div>
</div>
</div>
<div class="title-con" style="margin-top: 18px">
<div class="title">用药统计</div>
<div class="title">就医统计</div>
<div class="operate-btn-con">
<el-radio-group v-model="radioVal" @change="handleRadioChange">
<el-radio-button label="用药次数柱状图" />
<el-radio-button label="用药次数折线图" />
<el-radio-button label="按天用药明细" />
<el-radio-button label="用药分类明细" />
<el-radio-button label="就医费用柱状图" />
<el-radio-button label="就医费用折线图" />
<el-radio-button label="就诊医院统计" />
<el-radio-button label="就诊大夫统计" />
<el-radio-button label="就医明细统计" />
</el-radio-group>
</div>
</div>
<div class="content-con">
<div v-show="radioVal === '用药次数柱状图'" class="chart" id="chartBar" style="height: calc(100% - 225px); margin-top: -10px"></div>
<div v-show="radioVal === '用药次数折线图'" class="chart" id="chartLine" style="height: calc(100% - 225px); margin-top: -10px"></div>
<el-table v-show="radioVal === '按天用药明细'" v-loading="loading" :data="mar.tableMarList" height="calc(100% - 245px)">
<div v-show="radioVal === '就医费用柱状图'" class="chart" id="chartBar" style="height: calc(100% - 225px); margin-top: -10px"></div>
<div v-show="radioVal === '就医费用折线图'" class="chart" id="chartLine" style="height: calc(100% - 225px); margin-top: -10px"></div>
<el-table v-show="radioVal === '就诊医院统计'" v-loading="loading" :data="mar.marMapList" height="calc(100% - 245px)">
<el-table-column label="序号" width="50" type="index" align="center">
<template #default="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="用药日期" align="center" prop="time" />
<el-table-column prop="detail" label="用药明细" v-if="queryParams.type === 1">
<el-table-column label="医院名称" align="center" prop="time" />
<el-table-column label="就诊次数" align="center" prop="value" />
</el-table>
<el-table v-show="radioVal === '就诊大夫统计'" v-loading="loading" :data="mar.marMapList" height="calc(100% - 245px)">
<el-table-column label="序号" width="50" type="index" align="center">
<template #default="scope">
<span v-html="formatMultiLineData(scope.row.detail)"></span>
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="就诊大夫" align="center" prop="time" />
<el-table-column label="所在医院" align="center" prop="value" />
<el-table-column label="就诊次数" align="center" prop="dosage" />
</el-table>
<el-table v-show="radioVal === '用药分类明细'" v-loading="loading" :data="mar.marMapList" height="calc(100% - 245px)">
<el-table v-show="radioVal === '就医明细统计'" v-loading="loading" :data="mar.marMapList" height="calc(100% - 245px)">
<el-table-column label="序号" width="50" type="index" align="center">
<template #default="scope">
<span>{{ scope.$index + 1 }}</span>

View File

@@ -13,7 +13,7 @@
<el-option v-for="health in healthRecordList" :key="health.id" :label="health.name" :value="health.id" />
</el-select>
</el-form-item>
<el-form-item label="用药日期" prop="time" v-if="queryParams.type === 1">
<el-form-item label="建档日期" prop="time" v-if="queryParams.type === 1">
<el-date-picker
v-model="queryParams.time"
type="daterange"
@@ -61,19 +61,31 @@
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">用药种类</div>
<div class="title">建档次数</div>
<div>
<span class="num">{{ mar.marCategoryCount }}</span
><span class="unit"></span>
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.marCount > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">用药次数</div>
<div class="title">平均康复周期</div>
<div>
<span class="num">{{ mar.marCount }}</span
><span class="unit"> </span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">就医次数</div>
<div>
<span class="num">{{ mar.marCount }}</span
><span class="unit"> </span>
@@ -81,126 +93,70 @@
</div>
</div>
<div class="right-con" v-show="mar.qingre > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">清热解毒</div>
<div class="title">就医费用</div>
<div>
<span class="num">{{ mar.qingre }}</span
><span class="unit"></span>
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.zhike > 0">
</div>
<div class="summary-con" style="height: 115px">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">止咳化痰平喘</div>
<div class="title">用药种类</div>
<div>
<span class="num">{{ mar.zhike }}</span
><span class="unit"></span>
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.wuhua > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">雾化消炎</div>
<div class="title">用药天数</div>
<div>
<span class="num">{{ mar.wuhua }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">用药次数</div>
<div>
<span class="num">{{ mar.wuhua }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.kangjun > 0">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗菌消炎</div>
<div class="title">发烧天数</div>
<div>
<span class="num">{{ mar.kangjun }}</span> <span class="unit"></span>
</div>
</div>
</div>
</div>
<div class="summary-con" v-show="mar.kangguomin > 0 || mar.kangbingdu > 0 || mar.tuishao > 0 || mar.biyan > 0 || mar.changdao > 0" style="height: 115px">
<div class="right-con" v-show="mar.kangguomin > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗过敏</div>
<div>
<span class="num">{{ mar.kangguomin }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.kangbingdu > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">抗病毒</div>
<div>
<span class="num">{{ mar.kangbingdu }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.tuishao > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">退烧用药</div>
<div>
<span class="num">{{ mar.tuishao }}</span
><span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.biyan > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">鼻炎腺样体</div>
<div>
<span class="num">{{ mar.biyan }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.changdao > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">肠道消化</div>
<div>
<span class="num">{{ mar.changdao }}</span> <span class="unit"></span>
</div>
</div>
</div>
<div class="right-con" v-show="mar.mianyili > 0">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">免疫力</div>
<div>
<span class="num">{{ mar.mianyili }}</span> <span class="unit"></span>
<span class="num">{{ mar.kangjun }}</span> <span class="unit">(大于37)</span>
</div>
</div>
</div>
</div>
<div class="title-con" style="margin-top: 18px">
<div class="title">用药统计</div>
<div class="title">档案统计</div>
<div class="operate-btn-con">
<el-radio-group v-model="radioVal" @change="handleRadioChange">
<el-radio-button label="用药次数柱状图" />
@@ -349,14 +305,14 @@ function getPersonList() {
const today = new Date()
const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
const start = dayjs(end).add(-60, 'day')
const start = dayjs(end).add(-90, 'day')
queryParams.value.time = [start, end]
const handleTimeChange = (type) => {
queryParams.value.time = null
if (type === 1) {
const today = new Date()
const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
const start = dayjs(end).add(-60, 'day')
const start = dayjs(end).add(-90, 'day')
queryParams.value.time = [start, end]
} else if (type === 2) {
const today = new Date()

View File

@@ -9,7 +9,7 @@
</el-select>
</el-form-item>
<el-form-item label="健康档案" prop="recordId">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange" clearable>
<el-option v-for="health in healthRecordList" :key="health.id" :label="health.name" :value="health.id" />
</el-select>
</el-form-item>
@@ -203,10 +203,10 @@
<div class="title">用药统计</div>
<div class="operate-btn-con">
<el-radio-group v-model="radioVal" @change="handleRadioChange">
<el-radio-button label="用药分类明细" />
<el-radio-button label="按天用药明细" />
<el-radio-button label="用药次数柱状图" />
<el-radio-button label="用药次数折线图" />
<el-radio-button label="按天用药明细" />
<el-radio-button label="用药分类明细" />
</el-radio-group>
</div>
</div>
@@ -233,8 +233,9 @@
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="药品名称" align="center" prop="time" />
<el-table-column label="用药数" align="center" prop="value" />
<el-table-column label="药品名称" align="center" prop="medicalName" />
<el-table-column label="用药数" align="center" prop="useDays" />
<el-table-column label="用药次数" align="center" prop="count" />
<el-table-column label="用药总量" align="center" prop="dosage" />
<el-table-column label="单位" align="center" prop="unit" />
</el-table>
@@ -270,7 +271,7 @@ const dates = [{ value: 1, label: '日' }]
const accountsList = ref([])
const loading = ref(true)
const total = ref(0)
const radioVal = ref('用药次数柱状图')
const radioVal = ref('用药分类明细')
const dateValidate = (rules, value, callback) => {
const dateType = rules.dateType || 'days'
const num = rules.num || 31
@@ -347,10 +348,10 @@ function getPersonList() {
})
}
const today = new Date()
const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
const start = dayjs(end).add(-60, 'day')
queryParams.value.time = [start, end]
// const today = new Date()
// const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
// const start = dayjs(end).add(-60, 'day')
// queryParams.value.time = [start, end]
const handleTimeChange = (type) => {
queryParams.value.time = null
if (type === 1) {

View File

@@ -9,7 +9,7 @@
</el-select>
</el-form-item>
<el-form-item label="健康档案" prop="recordId">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange">
<el-select v-model="queryParams.recordId" placeholder="请选择健康档案" @change="handleRecordChange" clearable>
<el-option v-for="health in healthRecordList" :key="health.id" :label="health.name" :value="health.id" />
</el-select>
</el-form-item>
@@ -56,6 +56,18 @@
</div>
<div class="main-con" style="height: calc(100% - 1.45rem)">
<div class="summary-con" style="height: 115px">
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
</div>
<div class="item-wrap">
<div class="title">发烧天数</div>
<div>
<span class="num">{{ temp.feverDay }}</span
><span class="unit">大于37 </span>
</div>
</div>
</div>
<div class="right-con">
<div class="img">
<img src="@/assets/images/average.png" alt="" />
@@ -154,9 +166,9 @@
<div class="title">体温统计</div>
<div class="operate-btn-con">
<el-radio-group v-model="radioVal" @change="handleRadioChange">
<el-radio-button label="表格" />
<el-radio-button label="柱状图" />
<el-radio-button label="折线图" />
<el-radio-button label="表格" />
</el-radio-group>
</div>
</div>
@@ -212,7 +224,7 @@ const dates = [{ value: 1, label: '日' }]
const accountsList = ref([])
const loading = ref(true)
const total = ref(0)
const radioVal = ref('柱状图')
const radioVal = ref('表格')
const dateValidate = (rules, value, callback) => {
const dateType = rules.dateType || 'days'
const num = rules.num || 31
@@ -289,10 +301,10 @@ function getPersonList() {
})
}
const today = new Date()
const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
const start = dayjs(end).add(-60, 'day')
queryParams.value.time = [start, end]
// const today = new Date()
// const end = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2)
// const start = dayjs(end).add(-60, 'day')
// queryParams.value.time = [start, end]
const handleTimeChange = (type) => {
queryParams.value.time = null
if (type === 1) {