Commit b76715cc authored by 陈明豪's avatar 陈明豪

数据统计-接口对接

parent abbec2fd
import request from '@/utils/request'
// 获取宠主统计
export function getPetDataStatistics() {
return request({
url: '/business/statistics/ownerStatistics',
method: 'get'
})
}
// 获取医院统计
export function getHospitalStatistics() {
return request({
url: '/business/statistics/hospitalStatistics',
method: 'get'
})
}
export function listHospital(query) {
return request({
url: '/system/hospital/list',
method: 'get',
params: query
})
}
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -9,7 +9,11 @@ export default { ...@@ -9,7 +9,11 @@ export default {
data() { data() {
return {} return {}
}, },
watch: {}, watch: {
yData(newVal) {
this.setEcharts()
}
},
created() { created() {
}, },
......
...@@ -7,11 +7,17 @@ ...@@ -7,11 +7,17 @@
<script> <script>
export default { export default {
name: 'RadarChartForHospital', name: 'RadarChartForHospital',
props: ['title', 'yData1', 'yData2'], props: ['title', 'yData1', 'yData2', 'max'],
data() { data() {
return {} return {
}
},
watch: {
max(newValue) {
// console.log('newMax',newValue)
this.formatMax(newValue)
}
}, },
watch: {},
mounted() { mounted() {
this.setCharts() this.setCharts()
}, },
...@@ -49,11 +55,11 @@ export default { ...@@ -49,11 +55,11 @@ export default {
center: ['50%', '55%'], center: ['50%', '55%'],
radius: 140, radius: 140,
indicator: [ indicator: [
{ name: '一星诊疗机构', max: 50 }, { name: '一星诊疗机构', max: _this.max },
{ name: '二星诊疗机构', max: 50 }, { name: '二星诊疗机构', max: _this.max },
{ name: '三星诊疗机构', max: 50 }, { name: '三星诊疗机构', max: _this.max },
{ name: '四星诊疗机构', max: 50 }, { name: '四星诊疗机构', max: _this.max },
{ name: '五星诊疗机构', max: 50 } { name: '五星诊疗机构', max: _this.max }
], ],
axisName: { // (圆外的标签)雷达图每个指示器名称的配置项。 axisName: { // (圆外的标签)雷达图每个指示器名称的配置项。
color: '#666666', color: '#666666',
...@@ -120,6 +126,13 @@ export default { ...@@ -120,6 +126,13 @@ export default {
} }
] ]
}) })
},
formatMax(max) {
const temp = max % 5
if (temp !== 0) {
this.max = max + (5 - temp)
this.setCharts()
}
} }
} }
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="hospital_info_statistics hospital_info_statistics_ruzhu"> <div class="hospital_info_statistics hospital_info_statistics_ruzhu">
<div style="display: flex;"> <div style="display: flex;">
<div class="numberColor">100</div> <div class="numberColor">{{ hospitalInfoStatistics.enteredHospitalCount }}</div>
<div class="fontColor"></div> <div class="fontColor"></div>
</div> </div>
<div class="bottomText"> <div class="bottomText">
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="hospital_info_statistics hospital_info_statistics_youxiao"> <div class="hospital_info_statistics hospital_info_statistics_youxiao">
<div style="display: flex;"> <div style="display: flex;">
<div class="numberColor">87</div> <div class="numberColor">{{ hospitalInfoStatistics.effectiveHospitalCount }}</div>
<div class="fontColor"></div> <div class="fontColor"></div>
</div> </div>
<div class="bottomText"> <div class="bottomText">
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="hospital_info_statistics hospital_info_statistics_changqi"> <div class="hospital_info_statistics hospital_info_statistics_changqi">
<div style="display: flex;"> <div style="display: flex;">
<div class="numberColor">31</div> <div class="numberColor">{{ hospitalInfoStatistics.longtimeHospitalCount }}</div>
<div class="fontColor"></div> <div class="fontColor"></div>
</div> </div>
<div class="bottomText"> <div class="bottomText">
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="hospital_info_statistics hospital_info_statistics_yuchuzhi"> <div class="hospital_info_statistics hospital_info_statistics_yuchuzhi">
<div style="display: flex;"> <div style="display: flex;">
<div class="numberColor">348,936,33</div> <div class="numberColor">{{ formatNum(hospitalInfoStatistics.prestoredValueTotal) }}</div>
<div class="fontColor"></div> <div class="fontColor"></div>
</div> </div>
<div class="bottomText"> <div class="bottomText">
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
当前有效状态医院占比 当前有效状态医院占比
</div> </div>
<div class="youxiao_percent"> <div class="youxiao_percent">
<el-progress type="circle" :percentage="90" width="90" stroke-width="9" /> <el-progress type="circle" :percentage="hospitalPercentInfo.effectivePercent" width="90" stroke-width="9" />
<progressColor style="width: 0;height: 0;" /> <progressColor style="width: 0;height: 0;" />
</div> </div>
</div> </div>
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
当前长期授权医院占比 当前长期授权医院占比
</div> </div>
<div class="changqi_percent"> <div class="changqi_percent">
<el-progress type="circle" :percentage="58" width="90" stroke-width="9" /> <el-progress type="circle" :percentage="hospitalPercentInfo.longtimePercent" width="90" stroke-width="9" />
<progressColor style="width: 0;height: 0;" /> <progressColor style="width: 0;height: 0;" />
</div> </div>
</div> </div>
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
当前预储值医院占比 当前预储值医院占比
</div> </div>
<div class="yuchuzhi_percent"> <div class="yuchuzhi_percent">
<el-progress type="circle" :percentage="37" width="90" stroke-width="9" /> <el-progress type="circle" :percentage="hospitalPercentInfo.prestoredPercent" width="90" stroke-width="9" />
<progressColor style="width: 0;height: 0;" /> <progressColor style="width: 0;height: 0;" />
</div> </div>
</div> </div>
...@@ -113,14 +113,15 @@ ...@@ -113,14 +113,15 @@
<div class="cardTitle" style="margin-bottom: 29px"> <div class="cardTitle" style="margin-bottom: 29px">
医院累计预储值排行 医院累计预储值排行
</div> </div>
<div class="rankInnerDiv">
<div v-for="(item, key) in hospitalPrestoredRank" :key="key" class="prestoredRankDiv"> <div v-for="(item, key) in hospitalPrestoredRank" :key="key" class="prestoredRankDiv">
<div class="rank_hospital_name_font"> <div class="rank_hospital_name_font">
<overlong-tool :text="item.name" :max="30" /> <overlong-tool :text="item.hospitalName" :max="30" />
</div> </div>
<el-row> <el-row>
<el-col :span="19"> <el-col :span="19">
<el-progress <el-progress
:percentage="item.percent" :percentage="item.total/hospitalPrestoredRank[0].total*100"
:stroke-width="9" :stroke-width="9"
:show-text="false" :show-text="false"
class="prestoredRankProgress" class="prestoredRankProgress"
...@@ -134,20 +135,22 @@ ...@@ -134,20 +135,22 @@
</el-row> </el-row>
</div> </div>
</div> </div>
</div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<div class="cardDiv"> <div class="cardDiv">
<div class="cardTitle" style="margin-bottom: 29px"> <div class="cardTitle" style="margin-bottom: 29px">
医院入驻时间排行 医院入驻时间排行
</div> </div>
<div class="rankInnerDiv">
<div v-for="(item, key) in hospitalTimeRank" :key="key" class="timeRankDiv"> <div v-for="(item, key) in hospitalTimeRank" :key="key" class="timeRankDiv">
<div class="rank_hospital_name_font"> <div class="rank_hospital_name_font">
<overlong-tool :text="item.name" :max="13" /> <overlong-tool :text="item.hospitalName" :max="13" />
</div> </div>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-progress <el-progress
:percentage="item.percent" :percentage="item.enterTime/hospitalTimeRank[0].enterTime*100"
:stroke-width="9" :stroke-width="9"
:show-text="false" :show-text="false"
class="timeRankProgress" class="timeRankProgress"
...@@ -155,12 +158,13 @@ ...@@ -155,12 +158,13 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="timeRankFont"> <div class="timeRankFont">
{{ item.total }} {{ item.enterTime }}
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24" class="row2"> <el-row :gutter="24" class="row2">
...@@ -172,7 +176,7 @@ ...@@ -172,7 +176,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="cardDiv" style="padding-bottom: 0px"> <div class="cardDiv" style="padding-bottom: 0px">
<columnar-chart <columnar-chart
title="医院评级分布" title="医院兽医数量分析"
start-color="#3490CE" start-color="#3490CE"
end-color="#5FB54B" end-color="#5FB54B"
label="医院数量" label="医院数量"
...@@ -186,8 +190,9 @@ ...@@ -186,8 +190,9 @@
<el-col :span="9"> <el-col :span="9">
<div class="cardDiv" style="padding-bottom: 0px"> <div class="cardDiv" style="padding-bottom: 0px">
<radar-chart-for-hospital <radar-chart-for-hospital
:y-data1="[42, 30, 20, 35, 50, 18]" :y-data1="radarChartData.yData1"
:y-data2="[50, 14, 28, 26, 42, 21]" :y-data2="radarChartData.yData2"
:max="getArrayMax([getArrayMax(radarChartData.yData1),getArrayMax(radarChartData.yData2)])"
/> />
</div> </div>
</el-col> </el-col>
...@@ -199,27 +204,62 @@ ...@@ -199,27 +204,62 @@
医院授权到期信息 医院授权到期信息
</div> </div>
<el-divider class="dividerLine" /> <el-divider class="dividerLine" />
<el-table :data="tableData" style="width: 100%"> <el-table
<el-table-column label="序号" min-width="20px" show-overflow-tooltip type="index" /> style="margin:20px 0 0 7px"
<el-table-column sortable label="医院名称" show-overflow-tooltip prop="name" /> :header-cell-style="{background:'#F4F4F4'}"
<el-table-column sortable label="科室ID" show-overflow-tooltip prop="deptId" /> border
<el-table-column sortable label="医院评级" show-overflow-tooltip prop="hospitalLevel" /> :data="hospitalList"
<el-table-column sortable label="联系人" show-overflow-tooltip prop="linkPerson" /> >
<el-table-column sortable label="联系人手机号" show-overflow-tooltip prop="linkPhone" /> <el-table-column label="序号" align="left" type="index" width="55" />
<el-table-column sortable label="医院地址" show-overflow-tooltip prop="address" /> <el-table-column label="医院名称" align="left" prop="hospitalName" show-overflow-tooltip />
<el-table-column sortable label="入驻日期" show-overflow-tooltip prop="inDate" /> <el-table-column label="医院ID" align="left" prop="ownId" show-overflow-tooltip>
<el-table-column sortable label="授权到期日期" show-overflow-tooltip prop="outDate" /> <template slot-scope="scope">
<el-table-column sortable label="预储值余额" show-overflow-tooltip prop="balance" /> <span>{{ scope.row.ownId || '-' }}</span>
<el-table-column label="状态" show-overflow-tooltip prop="status" /> </template>
<el-table-column label="操作"> </el-table-column>
<el-table-column label="医院评级" align="left" prop="hospitalRate">
<template slot-scope="scope">
<dict-tag
:options="dict.type.hospital_rate"
:value="scope.row.hospitalRate"
/>
</template>
</el-table-column>
<el-table-column label="联系人" align="left" prop="contactPerson" show-overflow-tooltip />
<el-table-column label="联系人手机号" align="left" prop="phonenumber" />
<el-table-column label="医院地址" align="left" prop="hospitalAddress" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.addressText + scope.row.hospitalAddress }}</span>
</template>
</el-table-column>
<el-table-column label="入驻日期" align="left" prop="createTime" width="120">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}/{m}/{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="授权到期日期" align="left" prop="authorizationExpirationDate">
<template slot-scope="scope">
<span>{{ showDueDate(scope.row.authorizationExpirationDate) || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="left" prop="state" width="60">
<template slot-scope="scope">
<span :style="showStatus(scope.row.authorizationExpirationDate) === '• 过期' ? 'color: #F8CA96' : 'color: #67C23A'">{{ showStatus(scope.row.authorizationExpirationDate) || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="预储值余额" align="left" prop="currentBalance">
<template slot-scope="scope">
{{ scope.row.currentBalance ? scope.row.currentBalance+'元': '-' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-hasPermi="['business:banner:query']"
icon="el-icon-document"
plain
size="mini" size="mini"
style="width: 50px; border-radius: 4px 4px 4px 4px;border: 1px solid #5fb54b;"
type="success" type="success"
icon="el-icon-document"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(95, 181, 75);color: #5FB54B;background: rgba(91,182,71,0.08);"
plain
@click="handleDetail(scope.row)" @click="handleDetail(scope.row)"
>详情 >详情
</el-button> </el-button>
...@@ -231,7 +271,7 @@ ...@@ -231,7 +271,7 @@
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getBannerList" @pagination="getHospitalList"
/> />
</div> </div>
</el-col> </el-col>
...@@ -246,148 +286,153 @@ import ProgressColor from '@/views/data-statistics/other-components/progress-col ...@@ -246,148 +286,153 @@ import ProgressColor from '@/views/data-statistics/other-components/progress-col
import OverlongTool from '@/views/data-statistics/other-components/overlong-tool.vue' import OverlongTool from '@/views/data-statistics/other-components/overlong-tool.vue'
import ColumnarChart from '@/views/data-statistics/echars-components/columnarChart.vue' import ColumnarChart from '@/views/data-statistics/echars-components/columnarChart.vue'
import RadarChartForHospital from '@/views/data-statistics/echars-components/radar-chart-for-hospital.vue' import RadarChartForHospital from '@/views/data-statistics/echars-components/radar-chart-for-hospital.vue'
import { getHospitalStatistics, listHospital } from '@/api/business/statistics'
import { parseTime } from '../../../utils/ruoyi'
export default { export default {
name: 'HospitalDataStatistics', name: 'HospitalDataStatistics',
components: { components: {
RadarChartForHospital, RadarChartForHospital,
ColumnarChart, OverlongTool, ProgressColor, TwoLineChart, ChinaMap }, ColumnarChart, OverlongTool, ProgressColor, TwoLineChart, ChinaMap },
dicts: ['hospital_rate'],
data() { data() {
return { return {
hospitalInfoStatistics: {},
hospitalPercentInfo: {},
mapData: [ mapData: [
{ {
name: '北京', name: '北京',
value: 200 value: 200
}, },
{ {
name: '天津', name: '天津',
value: 0 value: 0
}, },
{ {
name: '上海', name: '上海',
value: 200 value: 200
}, },
{ {
name: '重庆', name: '重庆',
value: 0 value: 0
}, },
{ {
name: '河北', name: '河北',
value: 0 value: 0
}, },
{ {
name: '河南', name: '河南',
value: 0 value: 0
}, },
{ {
name: '云南', name: '云南',
value: 0 value: 0
}, },
{ {
name: '辽宁', name: '辽宁',
value: 0 value: 0
}, },
{ {
name: '黑龙江', name: '黑龙江',
value: 0 value: 0
}, },
{ {
name: '湖南', name: '湖南',
value: 40 value: 40
}, },
{ {
name: '安徽', name: '安徽',
value: 10 value: 10
}, },
{ {
name: '山东', name: '山东',
value: 60 value: 60
}, },
{ {
name: '新疆', name: '新疆维吾尔自治区',
value: 0 value: 0
}, },
{ {
name: '江苏', name: '江苏',
value: 0 value: 0
}, },
{ {
name: '浙江', name: '浙江',
value: 0 value: 0
}, },
{ {
name: '江西', name: '江西',
value: 90 value: 90
}, },
{ {
name: '湖北', name: '湖北',
value: 70 value: 70
}, },
{ {
name: '广西', name: '广西壮族自治区',
value: 0 value: 0
}, },
{ {
name: '甘肃', name: '甘肃',
value: 0 value: 0
}, },
{ {
name: '山西', name: '山西',
value: 0 value: 0
}, },
{ {
name: '内蒙古', name: '内蒙古自治区',
value: 10 value: 10
}, },
{ {
name: '陕西', name: '陕西',
value: 0 value: 0
}, },
{ {
name: '吉林', name: '吉林',
value: 0 value: 0
}, },
{ {
name: '福建', name: '福建',
value: 60 value: 60
}, },
{ {
name: '贵州', name: '贵州',
value: 0 value: 0
}, },
{ {
name: '广东', name: '广东',
value: 800 value: 800
}, },
{ {
name: '青海', name: '青海',
value: 1 value: 1
}, },
{ {
name: '西藏', name: '西藏自治区',
value: 1 value: 1
}, },
{ {
name: '四川', name: '四川',
value: 0 value: 0
}, },
{ {
name: '宁夏', name: '宁夏回族自治区',
value: 0 value: 0
}, },
{ {
name: '海南', name: '海南',
value: 0 value: 0
}, },
{ {
name: '台湾', name: '台湾',
value: 0 value: 0
}, },
{ {
name: '香港', name: '香港特别行政区',
value: 0 value: 0
}, },
{ {
name: '澳门', name: '澳门特别行政区',
value: 0 value: 0
}, },
{ {
...@@ -409,28 +454,7 @@ export default { ...@@ -409,28 +454,7 @@ export default {
area_color: 'rgba(95,181,75,0.3)', area_color: 'rgba(95,181,75,0.3)',
unit: '万元' unit: '万元'
}, },
hospitalPrestoredRank: [ hospitalPrestoredRank: [],
{
name: '天津市某某宠物医院123123超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长超长',
percent: 100,
total: 214523
},
{
name: '天津市某某宠物医院2222578zzxc',
percent: 90,
total: 114523
},
{
name: '天津市某某宠物医院aaa',
percent: 50,
total: 84523
},
{
name: '天津市某某宠物医院adasgasf',
percent: 20,
total: 24523
}
],
hospitalTimeRank: [ hospitalTimeRank: [
{ {
name: '天津市某某宠物医院123123', name: '天津市某某宠物医院123123',
...@@ -454,253 +478,16 @@ export default { ...@@ -454,253 +478,16 @@ export default {
} }
], ],
columnarChartData: { columnarChartData: {
xData: ['1~5人', '2~10人', '10~15人', '15人以上'], xData: ['1~5人', '6~10人', '11~15人', '15人以上'],
yData: [453, 626, 66, 366] yData: []
},
radarChartData: {
yData1: [],
yData2: []
}, },
radarSelect: 'lastYear', radarSelect: 'lastYear',
tableData: [ hospitalList: [],
{ total: 0,
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
},
{
name: '乖乖宠物医院(八里台店)',
deptId: 'DUGYWB212345',
hospitalLevel: '三星诊疗医院',
linkPerson: 'JACK',
linkPhone: '13423453345',
address: '天津市滨海新区平山道57号增1',
inDate: '2023/10/23',
outDate: '2023/12/23',
balance: 13123,
status: '1'
}
],
total: 20,
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
...@@ -709,6 +496,91 @@ export default { ...@@ -709,6 +496,91 @@ export default {
}, },
watch: {}, watch: {},
created() { created() {
this.getStatistics()
this.getHospitalList()
},
methods: {
parseTime,
getStatistics() {
getHospitalStatistics().then(res => {
console.log('dataRes', res)
this.hospitalInfoStatistics = res.data.hospitalInfoStatistics
this.hospitalPercentInfo = res.data.hospitalPercentInfo
this.hospitalPrestoredRank = res.data.prestoredRankList
this.hospitalTimeRank = res.data.enterTimeRankList
this.columnarChartData.yData = res.data.hospitalDoctorAnalyze
this.radarChartData.yData1 = res.data.rateDistributionHistory
this.radarChartData.yData2 = res.data.rateDistributionValid
// console.log('maxIIII', this.getArrayMax(res.data.rateDistributionValid))
})
},
formatNum(value) {
return Number(value).toLocaleString()
},
getArrayMax(array = []) {
let max = 0
for (let i = 0; i < array.length; i++) {
if (array[i] > max) {
max = array[i]
}
}
return max
},
getHospitalList() {
listHospital(this.queryParams).then(response => {
this.hospitalList = response.rows
this.total = response.total
})
},
// 显示到期日期
showDueDate(date) {
if (date === null) {
return null
}
if (date.split('/')[0] > 2099) {
return '2099/12/31'
}
return parseTime(date, '{y}/{m}/{d}')
},
/** 通过授权历史获取到期日期 */
addDays(date, str) {
if (str === null) {
return null
}
const days = str.split('.')[0]
if (parseInt(days) >= 99) {
return '2099/12/31'
}
const result = new Date(date)
result.setDate(result.getDate() + days * 365)
const formatTime = this.formatTime(result)
return parseTime(formatTime, '{y}/{m}/{d}')
},
// 显示状态
showStatus(date) {
if (date === null) {
return null
}
const importDate = new Date(date)
const nowDate = new Date()
if (importDate.getTime() > nowDate.getTime()) {
return '• 有效'
} else {
return '• 过期'
}
},
/** 医院详情按钮操作 */
handleDetail(row) {
console.log('详情', row)
const authorizationExpirationDate = this.addDays(row.createTime, row.dueDate)
row.authorizationExpirationDate = authorizationExpirationDate
this.$router.push({
path: '/hospital-management/hospital-details',
query: { detail: row }
})
localStorage.setItem('hospitalDetail', JSON.stringify(row))
}
} }
} }
</script> </script>
...@@ -725,6 +597,10 @@ export default { ...@@ -725,6 +597,10 @@ export default {
width: 100%; width: 100%;
height: 181px; height: 181px;
text-align: center; text-align: center;
//padding-bottom: 10px;
.cardTitle {
margin-bottom: 10px;
}
} }
.cardDiv { .cardDiv {
padding: 20px; padding: 20px;
...@@ -999,4 +875,7 @@ export default { ...@@ -999,4 +875,7 @@ export default {
margin-top: 14px; margin-top: 14px;
margin-bottom: 24px; margin-bottom: 24px;
} }
.rankInnerDiv {
height: 389px;
}
</style> </style>
...@@ -503,6 +503,7 @@ import CrosswiseColumnarChart from '@/views/data-statistics/echars-components/cr ...@@ -503,6 +503,7 @@ import CrosswiseColumnarChart from '@/views/data-statistics/echars-components/cr
import CrosswiseColumnarChartOneLine from '@/views/data-statistics/echars-components/crosswiseColumnarChartOneLine.vue' import CrosswiseColumnarChartOneLine from '@/views/data-statistics/echars-components/crosswiseColumnarChartOneLine.vue'
import RadarChartForPetOwnerHospital import RadarChartForPetOwnerHospital
from '@/views/data-statistics/echars-components/radar-chart-for-petowner-hospital.vue' from '@/views/data-statistics/echars-components/radar-chart-for-petowner-hospital.vue'
import { getPetDataStatistics } from '@/api/business/statistics'
export default { export default {
name: 'PetDataStatistics', name: 'PetDataStatistics',
...@@ -517,139 +518,139 @@ export default { ...@@ -517,139 +518,139 @@ export default {
isPlatformRole: false, isPlatformRole: false,
mapData: [ mapData: [
{ {
name: '北京', name: '北京',
value: 200 value: 200
}, },
{ {
name: '天津', name: '天津',
value: 0 value: 0
}, },
{ {
name: '上海', name: '上海',
value: 200 value: 200
}, },
{ {
name: '重庆', name: '重庆',
value: 0 value: 0
}, },
{ {
name: '河北', name: '河北',
value: 0 value: 0
}, },
{ {
name: '河南', name: '河南',
value: 0 value: 0
}, },
{ {
name: '云南', name: '云南',
value: 0 value: 0
}, },
{ {
name: '辽宁', name: '辽宁',
value: 0 value: 0
}, },
{ {
name: '黑龙江', name: '黑龙江',
value: 0 value: 0
}, },
{ {
name: '湖南', name: '湖南',
value: 40 value: 40
}, },
{ {
name: '安徽', name: '安徽',
value: 10 value: 10
}, },
{ {
name: '山东', name: '山东',
value: 60 value: 60
}, },
{ {
name: '新疆', name: '新疆维吾尔自治区',
value: 0 value: 0
}, },
{ {
name: '江苏', name: '江苏',
value: 0 value: 0
}, },
{ {
name: '浙江', name: '浙江',
value: 0 value: 0
}, },
{ {
name: '江西', name: '江西',
value: 90 value: 90
}, },
{ {
name: '湖北', name: '湖北',
value: 70 value: 70
}, },
{ {
name: '广西', name: '广西壮族自治区',
value: 0 value: 0
}, },
{ {
name: '甘肃', name: '甘肃',
value: 0 value: 0
}, },
{ {
name: '山西', name: '山西',
value: 0 value: 0
}, },
{ {
name: '内蒙古', name: '内蒙古自治区',
value: 10 value: 10
}, },
{ {
name: '陕西', name: '陕西',
value: 0 value: 0
}, },
{ {
name: '吉林', name: '吉林',
value: 0 value: 0
}, },
{ {
name: '福建', name: '福建',
value: 60 value: 60
}, },
{ {
name: '贵州', name: '贵州',
value: 0 value: 0
}, },
{ {
name: '广东', name: '广东',
value: 800 value: 800
}, },
{ {
name: '青海', name: '青海',
value: 1 value: 1
}, },
{ {
name: '西藏', name: '西藏自治区',
value: 1 value: 1
}, },
{ {
name: '四川', name: '四川',
value: 0 value: 0
}, },
{ {
name: '宁夏', name: '宁夏回族自治区',
value: 0 value: 0
}, },
{ {
name: '海南', name: '海南',
value: 0 value: 0
}, },
{ {
name: '台湾', name: '台湾',
value: 0 value: 0
}, },
{ {
name: '香港', name: '香港特别行政区',
value: 0 value: 0
}, },
{ {
name: '澳门', name: '澳门特别行政区',
value: 0 value: 0
}, },
{ {
...@@ -1065,6 +1066,17 @@ export default { ...@@ -1065,6 +1066,17 @@ export default {
}, },
watch: {}, watch: {},
created() { created() {
this.getStatisticsData()
},
methods: {
// 获取宠主数据统计数据
getStatisticsData() {
getPetDataStatistics().then(res => {
if (res.code === 200) {
console.log('res', res)
}
})
}
} }
} }
</script> </script>
......
...@@ -677,139 +677,139 @@ export default { ...@@ -677,139 +677,139 @@ export default {
isPlatformRole: true, isPlatformRole: true,
mapData: [ mapData: [
{ {
name: '北京', name: '北京',
value: 200 value: 200
}, },
{ {
name: '天津', name: '天津',
value: 0 value: 0
}, },
{ {
name: '上海', name: '上海',
value: 200 value: 200
}, },
{ {
name: '重庆', name: '重庆',
value: 0 value: 0
}, },
{ {
name: '河北', name: '河北',
value: 0 value: 0
}, },
{ {
name: '河南', name: '河南',
value: 0 value: 0
}, },
{ {
name: '云南', name: '云南',
value: 0 value: 0
}, },
{ {
name: '辽宁', name: '辽宁',
value: 0 value: 0
}, },
{ {
name: '黑龙江', name: '黑龙江',
value: 0 value: 0
}, },
{ {
name: '湖南', name: '湖南',
value: 40 value: 40
}, },
{ {
name: '安徽', name: '安徽',
value: 10 value: 10
}, },
{ {
name: '山东', name: '山东',
value: 60 value: 60
}, },
{ {
name: '新疆', name: '新疆维吾尔自治区',
value: 0 value: 0
}, },
{ {
name: '江苏', name: '江苏',
value: 0 value: 0
}, },
{ {
name: '浙江', name: '浙江',
value: 0 value: 0
}, },
{ {
name: '江西', name: '江西',
value: 90 value: 90
}, },
{ {
name: '湖北', name: '湖北',
value: 70 value: 70
}, },
{ {
name: '广西', name: '广西壮族自治区',
value: 0 value: 0
}, },
{ {
name: '甘肃', name: '甘肃',
value: 0 value: 0
}, },
{ {
name: '山西', name: '山西',
value: 0 value: 0
}, },
{ {
name: '内蒙古', name: '内蒙古自治区',
value: 10 value: 10
}, },
{ {
name: '陕西', name: '陕西',
value: 0 value: 0
}, },
{ {
name: '吉林', name: '吉林',
value: 0 value: 0
}, },
{ {
name: '福建', name: '福建',
value: 60 value: 60
}, },
{ {
name: '贵州', name: '贵州',
value: 0 value: 0
}, },
{ {
name: '广东', name: '广东',
value: 800 value: 800
}, },
{ {
name: '青海', name: '青海',
value: 1 value: 1
}, },
{ {
name: '西藏', name: '西藏自治区',
value: 1 value: 1
}, },
{ {
name: '四川', name: '四川',
value: 0 value: 0
}, },
{ {
name: '宁夏', name: '宁夏回族自治区',
value: 0 value: 0
}, },
{ {
name: '海南', name: '海南',
value: 0 value: 0
}, },
{ {
name: '台湾', name: '台湾',
value: 0 value: 0
}, },
{ {
name: '香港', name: '香港特别行政区',
value: 0 value: 0
}, },
{ {
name: '澳门', name: '澳门特别行政区',
value: 0 value: 0
}, },
{ {
......
...@@ -69,8 +69,8 @@ module.exports = { ...@@ -69,8 +69,8 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:8091`, target: `http://localhost:8091`,
target: `http://114.67.241.140:8091`, // target: `http://114.67.241.140:8091`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
......
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