Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
md-vue-chc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何鹏程
md-vue-chc
Commits
78d76529
Commit
78d76529
authored
May 13, 2022
by
xieshoubao
💂
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
协同平台 展示的三个页面
parent
96eab0e6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
408 additions
and
316 deletions
+408
-316
hospital.js
src/api/hospital.js
+18
-3
index.vue
src/page/InHosFirstAid/index.vue
+106
-41
index.vue
src/page/collStatis/index.vue
+145
-145
index.vue
src/page/overview/index.vue
+11
-5
index.vue
src/page/runStatis/index.vue
+124
-51
actions.js
src/store/actions.js
+0
-70
ajax.js
src/util/ajax.js
+4
-1
No files found.
src/api/hospital.js
View file @
78d76529
...
...
@@ -67,11 +67,26 @@ export function businessOperationStatistics(params){
data
:
params
})
}
export
function
queryHospitalList
(
params
,
str
){
var
name
=
str
?
str
:
''
;
export
function
queryHospitalList
(
params
,
str
,
area
){
return
request
({
url
:
`/api/team/hospital/queryHospitalList?name=
${
name
}
`
,
url
:
`/api/team/hospital/queryHospitalList?name=
${
str
?
str
:
''
}
&area=
${
area
?
area
:
''
}
`
,
method
:
'GET'
,
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
src/page/InHosFirstAid/index.vue
View file @
78d76529
...
...
@@ -2,9 +2,9 @@
<div
class=
"main-page"
>
<div
class=
"main-page-header"
>
<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-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-select>
</el-form-item>
...
...
@@ -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-form-item>
<div
class=
"btns"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"search"
>
查询
</el-button>
<el-button
size=
"small"
@
click=
"$refs.FileInputEl.click()"
>
导入EXCEL
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"BTNClickSearch"
>
查询
</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>
</el-form>
<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
class=
"main-page-body"
>
...
...
@@ -28,7 +29,7 @@
</div>
<div
class=
"table-cont"
>
<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>
<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>
...
...
@@ -41,16 +42,16 @@
<
script
>
import
{
tableDataMixin
}
from
'@/common/js/mixin'
;
import
{
queryIntegrationList
,
queryHospitalList
}
from
'@/api/hospital'
;
import
{
getList
,
queryHospitalList
,
uploadExcel
}
from
'@/api/hospital'
;
import
{
mapGetters
}
from
'vuex'
;
export
default
{
name
:
'InHosFirstAid'
,
mixins
:
[
tableDataMixin
],
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
);
let
oDate
=
[
`
${
yar
}
-01-01`
,
`
${
yar
}
-
${
month
}
-
${
day
}
`
];
return
{
activeTab
:
'2'
,
roleId
:
null
,
activeTab
:
'1'
,
hospitalList
:[],
searchForm
:
{
hospitalCode
:
''
,
...
...
@@ -67,21 +68,31 @@ export default {
}
},
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
(){
var
that
=
this
;
that
.
ChangeSetTableHead
();
let
code
=
that
.
userInfo
.
hospitalCode
;
let
Name
=
that
.
userInfo
.
hospitalName
;
var
HosLis
=
[{
code
:
code
,
Name
:
Name
}];
that
.
searchForm
.
hospitalCode
=
code
;
queryHospitalList
({}).
then
((
res
)
=>
{
that
.
roleId
=
that
.
userInfo
.
roleId
;
// that.roleId=2;
var
HosLis
=
[];
var
params
=
{
area
:
''
};
var
code
,
Name
;
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
){
var
hospitalList
=
(
Array
.
isArray
(
res
.
respData
)?(
res
.
respData
):[]).
map
(
function
(
item
){
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
){
that
.
hospitalList
=
Object
.
freeze
((
HosLis
).
concat
(
hospitalList
))
}
else
{
...
...
@@ -94,37 +105,61 @@ export default {
})
},
mounted
()
{
this
.
search
()
},
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
(){
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
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
tableHead
=
that
.
activeTab
==
1
?
kys1
:
kys2
;
var
head
=
tableHead
.
map
(
function
(
oc
,
index
){
var
tableHead
=
that
.
TableField
;
var
head
=
tableHead
.
map
(
function
(
item
,
index
){
var
oc
=
{
name
:
item
.
name
,
key
:
item
.
key
}
oc
.
fixed
=!!
(
index
<
2
);
oc
.
sortable
=
false
;
oc
.
width
=
null
;
if
(
oc
.
name
.
indexOf
(
'姓名'
)
!=-
1
){
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'
){
oc
.
width
=
'100'
;
}
if
(
oc
.
name
==
'年龄'
){
}
else
if
(
oc
.
name
==
'电话'
){
oc
.
width
=
'120'
;
}
else
if
(
oc
.
name
==
'年龄'
){
oc
.
width
=
'80'
;
}
if
(
oc
.
name
==
"性别"
){
}
else
if
(
oc
.
name
==
"性别"
){
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
);
});
// console.log(head)
that
.
tableData
.
head
=
Object
.
freeze
(
head
);
},
changeTab
(
num
){
...
...
@@ -132,18 +167,41 @@ export default {
this
.
search
();
},
getTableData
()
{
this
.
tableData
.
loading
=
true
;
this
.
ChangeSetTableHead
();
var
that
=
this
;
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
=
{
patientType
:
this
.
searchForm
.
patientType
,
pageNo
:
this
.
pageNum
,
pageSize
:
this
.
pageSize
productType
:
that
.
activeTab
,
startDate
:
startDate
,
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
)
=>
{
if
(
res
.
msg
==
201
)
{
this
.
dealTableResponse
(
res
)
}
else
{
this
.
$message
.
error
(
res
.
content
)
getList
(
params
).
then
((
res
)
=>
{
if
(
res
.
msg
==
201
){
var
tableField
=
that
.
TableField
;
res
.
respData
.
list
=
(
Array
.
isArray
(
res
.
respData
.
list
)?(
res
.
respData
.
list
):[]).
map
(
function
(
row
){
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 {
<
style
lang=
"scss"
scoped
>
.InHosFirstAid
{
.el-input.is-disabled
.el-input__inner
{
color
:
#606266
;
}
.tab-btn
{
font-size
:
0
;
button
.el-button
{
...
...
@@ -198,6 +259,10 @@ export default {
.table-cont
{
padding
:
20px
;
}
}
</
style
>
<
style
lang=
"scss"
>
.InHosFirstAid_form
.el-input.is-disabled
.el-input__inner
{
color
:
#606266
;
}
</
style
>
\ No newline at end of file
src/page/collStatis/index.vue
View file @
78d76529
...
...
@@ -118,9 +118,9 @@
<div
class=
"p-title"
>
<span>
区域院前急救统计
</span>
<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>
<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>
...
...
@@ -136,7 +136,7 @@
<div
class=
"padding-right12"
>
<div
class=
"panel"
>
<div
class=
"p-title"
>
<span>
院前急救转运平均时间
</span>
<span>
院前急救转运平均时间
(分钟)
</span>
</div>
<div>
<div
class=
"c50_charts"
ref=
"c50Bar"
></div>
...
...
@@ -204,12 +204,9 @@ export default{
}
},
mounted
(){
this
.
getv1Data
();
this
.
getv2Data
();
this
.
$nextTick
(()
=>
{
// this.barChartsInit();
this
.
drawc50Bar
();
this
.
drawc50Pie
();
this
.
getv1Data
();
this
.
getv2Data
();
});
},
methods
:{
...
...
@@ -224,7 +221,6 @@ export default{
}
})
},
getv2Data
(){
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
;
...
...
@@ -232,7 +228,7 @@ export default{
businessTeamStatistics
(
params
).
then
((
res
)
=>
{
if
(
res
.
msg
==
201
)
{
var
areaPreTotal
=
that
.
gv
(
res
.
respData
.
areaPreTotal
,[]);
var
kys
=
[
'chest
Total'
,
'strokeTotal'
,
'traumaTotal'
,
'burnTotal
'
];
var
kys
=
[
'chest
Count'
,
'strokeCount'
,
'traumaCount'
,
'burnCount
'
];
var
result
=
areaPreTotal
.
reduce
(
function
(
prv
,
cur
,
i
,
arr
){
prv
.
Names
.
push
(
cur
.
areaStr
);
kys
.
forEach
((
ky
,
j
)
=>
{
prv
.
arr
[
j
].
push
(
cur
[
ky
]
||
0
)
})
...
...
@@ -261,7 +257,7 @@ export default{
traumaCount
:
that
.
gv
(
p2
.
traumaCount
,
'0'
),
burnCount
:
that
.
gv
(
p2
.
burnCount
,
'0'
),
};
var
kys
=
[
'chest
Total'
,
'strokeTotal'
,
'traumaTotal'
,
'burnTotal
'
];
var
kys
=
[
'chest
Count'
,
'strokeCount'
,
'traumaCount'
,
'burnCount
'
];
var
areaPreTotal
=
that
.
gv
(
respData
.
areaPreTotal
,[]);
var
result
=
areaPreTotal
.
reduce
(
function
(
prv
,
cur
,
i
,
arr
){
prv
.
Names
.
push
(
cur
.
areaStr
);
...
...
@@ -271,19 +267,19 @@ export default{
that
.
BarDatav1
.
Namelis
=
Object
.
freeze
(
result
.
Names
);
that
.
BarDatav1
.
Arr
=
Object
.
freeze
(
result
.
arr
.
map
(
Object
.
freeze
));
that
.
barChartsInit
();
var
preTransferTimeTotal
=
that
.
gv
(
respData
.
preTransferTimeTotal
,{});
var
kys
=
[
'chestTransferTime'
,
'strokeTransferTime'
,
'traumaTransferTime'
,
'burnTransferTime'
];
that
.
drawc50Bar
(
kys
.
map
(
function
(
ky
){
return
that
.
gv
(
preTransferTimeTotal
[
ky
],
0
)
}))
var
piekys
=
[
`chestCount`
,
`strokeCount`
,
`traumaCount`
,
`burnCount`
];
var
Names
=
[
`胸痛`
,
`卒中`
,
`创伤`
,
`烧伤`
];
that
.
drawc50Pie
(
piekys
.
map
(
function
(
ky
,
i
){
return
{
value
:
that
.
gv
(
p1
[
ky
],
0
),
name
:
Names
[
i
]}}));
var
preTransferTimeTotal
=
that
.
gv
(
respData
.
preTransferTimeTotal
,{});
var
kys
=
[
'chestTransferTime'
,
'strokeTransferTime'
,
'traumaTransferTime'
,
'burnTransferTime'
];
that
.
drawc50Bar
(
kys
.
map
(
function
(
ky
){
return
that
.
gv
(
preTransferTimeTotal
[
ky
],
0
)
}))
var
piekys
=
[
`chestCount`
,
`strokeCount`
,
`traumaCount`
,
`burnCount`
];
var
Names
=
[
`胸痛`
,
`卒中`
,
`创伤`
,
`烧伤`
];
that
.
drawc50Pie
(
piekys
.
map
(
function
(
ky
,
i
){
return
{
value
:
that
.
gv
(
p1
[
ky
],
0
),
name
:
Names
[
i
]}}));
},
barChartsInit
(){
var
that
=
this
;
var
Oc
=
{
datakey
:
'BarData'
,
dom
:
'BarEl'
,
scBox
:
'BarScBox'
,
scline
:
'BarScLine'
,
vlen
:
'persw'
};
var
drData
=
that
[(
Oc
.
datakey
+
that
.
activePanel
)];
var
Namelis
=
drData
.
Namelis
;
if
(
Namelis
.
length
==
'0'
){
return
;
}
//
if(Namelis.length=='0'){ return; }
var
Arr
=
drData
.
Arr
;
var
Wh
=
(
that
.
$refs
[(
Oc
.
scBox
)]).
offsetWidth
;
var
ViLen
=
Math
.
ceil
((
Wh
-
150
)
/
200
);
...
...
@@ -316,135 +312,135 @@ export default{
},
drawBarEchart
(
dom
,
NameLis
,
arr
){
var
that
=
this
;
let
myChart
=
that
.
getCtx
(
dom
)
var
option
=
{
grid
:{
left
:
40
,
// 默认10%,给24就挺合适的。
top
:
60
,
// 默认60
right
:
10
,
// 默认10%
bottom
:
35
,
// 默认60
},
legend
:
{
// orient: 'vertical',
right
:
'8'
,
top
:
'2'
,
// 设置图例形状
itemWidth
:
12
,
// 设置宽度
itemHeight
:
12
,
// 设置高度
textStyle
:{
color
:
"#000"
,
fontSize
:
14
,
},
},
xAxis
:
{
type
:
'category'
,
axisTick
:
{
show
:
false
},
/*影藏坐标轴刻度*/
// data: ['张三丰', '刘天宇', '王自大', '孙乾坤', '李自傲', '周天启', '冯天成','任天雨']
data
:
NameLis
},
yAxis
:
{
type
:
'value'
,
minInterval
:
1
,
axisTick
:
{
show
:
false
}
},
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;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>`
;
}
},
series
:
[
{
name
:
"胸痛"
,
// data: [100, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
0
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#3683B8'
}
},
},
{
name
:
"卒中"
,
// data: [80, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
1
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#4294EA'
}
},
let
myChart
=
that
.
getCtx
(
dom
);
if
(
NameLis
.
length
===
0
){
myChart
.
clear
();
};
var
opts
=
{
grid
:{
left
:
40
,
// 默认10%,给24就挺合适的。
top
:
60
,
// 默认60
right
:
10
,
// 默认10%
bottom
:
35
,
// 默认60
},
legend
:
{
// orient: 'vertical',
right
:
'8'
,
top
:
'2'
,
// 设置图例形状
itemWidth
:
12
,
// 设置宽度
itemHeight
:
12
,
// 设置高度
textStyle
:{
color
:
"#000"
,
fontSize
:
14
,
},
},
xAxis
:
{
type
:
'category'
,
axisTick
:
{
show
:
false
},
/*影藏坐标轴刻度*/
// data: ['张三丰', '刘天宇', '王自大', '孙乾坤', '李自傲', '周天启', '冯天成','任天雨']
data
:
NameLis
},
yAxis
:
{
type
:
'value'
,
minInterval
:
1
,
axisTick
:
{
show
:
false
}
},
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;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>`
;
}
},
series
:
[
{
name
:
"胸痛"
,
// data: [100, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
0
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#3683B8'
}
},
},
{
name
:
"卒中"
,
// data: [80, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
1
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#4294EA'
}
},
},
{
name
:
"创伤"
,
// data: [70, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
2
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#8DCA86'
}
},
},
{
name
:
"创伤"
,
// data: [70, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
2
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#8DCA86'
}
},
},
{
name
:
"烧伤"
,
// data: [90, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
3
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#E8AC63'
},
{
name
:
"烧伤"
,
// data: [90, 200, 150, 80, 70, 110, 130,45],
data
:
arr
[
3
],
// stack:'sum',
type
:
'bar'
,
barGap
:
0.05
,
barMaxWidth
:
30
,
barMinWidth
:
10
,
itemStyle
:{
normal
:{
color
:
'#E8AC63'
}
}
}
}
}
]
};
//console.log(option)
myChart
.
setOption
(
option
);
]
};
myChart
.
setOption
(
opts
);
},
drawc50Bar
(
data
){
var
that
=
this
;
...
...
@@ -541,7 +537,7 @@ export default{
};
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
]);
}
}
}
...
...
@@ -577,6 +573,10 @@ export default{
button
{
padding-top
:
1px
;
padding-bottom
:
1px
;
color
:
#444444
;
&
.sel
{
color
:
#4294EA
;
}
}
}
}
...
...
src/page/overview/index.vue
View file @
78d76529
...
...
@@ -18,7 +18,7 @@
<img
src=
"@/assets/icon_img/v2.png"
alt=
""
/>
</div>
<div
class=
"txt"
>
<div
class=
"type-desc"
>
胸痛
中心
</div>
<div
class=
"type-desc"
>
卒中
中心
</div>
<div
class=
"num-desc"
><span>
{{
strokeTotal
}}
</span>
个
</div>
</div>
</div>
...
...
@@ -27,7 +27,7 @@
<img
src=
"@/assets/icon_img/v3.png"
alt=
""
>
</div>
<div
class=
"txt"
>
<div
class=
"type-desc"
>
胸痛
中心
</div>
<div
class=
"type-desc"
>
创伤
中心
</div>
<div
class=
"num-desc"
><span>
{{
traumaTotal
}}
</span>
个
</div>
</div>
</div>
...
...
@@ -36,7 +36,7 @@
<img
src=
"@/assets/icon_img/v4.png"
alt=
""
>
</div>
<div
class=
"txt"
>
<div
class=
"type-desc"
>
胸痛
中心
</div>
<div
class=
"type-desc"
>
烧伤
中心
</div>
<div
class=
"num-desc"
><span>
{{
burnTotal
}}
</span>
个
</div>
</div>
</div>
...
...
@@ -47,11 +47,11 @@
</div>
<div
class=
"w50"
>
<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>
<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>
</div>
...
...
@@ -78,7 +78,10 @@ import {constructionStatistics} from '@/api/hospital';
export
default
{
name
:
'overviewIndex'
,
data
()
{
var
year
=
(
new
Date
()).
getFullYear
(),
oldYear
=
year
-
1
;
return
{
oldyear
:
oldYear
,
newyear
:
year
,
chestTotal
:
''
,
strokeTotal
:
''
,
traumaTotal
:
''
,
...
...
@@ -619,6 +622,9 @@ export default{
span
{
font-size
:
16px
;
color
:
#3CBF2D
;
&
.down
{
color
:red
;
}
.bold
{
font-weight
:bold
;
}
...
...
src/page/runStatis/index.vue
View file @
78d76529
...
...
@@ -7,7 +7,7 @@
<div
class=
"page-runStatis"
>
<el-form
:inline=
"true"
:model=
"searchForm"
ref=
"searchForm"
size=
"small"
>
<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
prop=
"hospitalCode"
label=
"选择医院"
>
<el-select
v-model=
"searchForm.hospitalCode"
placeholder=
"请输入医院名称"
filterable
remote
reserve-keyword
:remote-method=
"debounceFn(getHospitalLis,200)"
:loading=
"loading"
>
...
...
@@ -21,12 +21,12 @@
</el-form>
<div
class=
"panel-Box padding_bottom45"
>
<div
class=
"charts-box"
>
<div
class=
"charts"
ref=
"lineBar"
></div>
<div
class=
"charts
1
"
ref=
"lineBar"
></div>
</div>
</div>
<div
class=
"panel-Box"
>
<div
class=
"charts-box"
>
<div
class=
"charts"
ref=
"vhBar"
></div>
<div
class=
"charts
2
"
ref=
"vhBar"
></div>
<div
class=
"scroll_box"
ref=
"BarScBox"
@
scroll=
"SCOllBoxFn(`BarData`,`vhBar`,`BarScBox`,`BarScLine`,`persw`)"
>
<div
class=
"scroll_line"
ref=
"BarScLine"
></div>
</div>
...
...
@@ -38,6 +38,7 @@
<
script
>
import
*
as
echarts
from
'echarts'
;
import
{
businessOperationStatistics
,
queryHospitalList
}
from
'@/api/hospital.js'
;
import
{
mapGetters
}
from
'vuex'
;
export
default
{
name
:
"runStatis"
,
data
(){
...
...
@@ -52,7 +53,8 @@ export default{
hospitalList
:[],
lineBar
:{
nameLis
:[],
Arr
:[]
Arr
:[],
TLis
:[]
},
BarData
:{
Namelis
:[
...
...
@@ -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],
// [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]
// ,
// ,
// [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],
// [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{
},
created
(){
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
.
getHospitalLis
();
console
.
log
(
"this.$el"
,
this
.
$el
)
},
computed
:{
...
mapGetters
([
'userInfo'
])
},
beforeMount
()
{
console
.
log
(
"this.$el"
,
this
.
$el
)
},
mounted
(){
this
.
$nextTick
(()
=>
{
this
.
ISmounted
=
true
;
console
.
log
(
"this.$el"
,
this
.
$el
)
if
(
this
.
ISDataComplate
){
t
hat
.
drawLineBar
(
this
.
lineBar
.
nameLis
,
this
.
lineBar
.
Arr
);
t
hat
.
drawBar
();
t
ry
{
that
.
drawLineBar
(
this
.
lineBar
.
nameLis
,
this
.
lineBar
.
Arr
,
this
.
lineBar
.
TLis
);
}
catch
(
e
){
console
.
log
(
e
);}
t
ry
{
that
.
drawBar
();
}
catch
(
e
){
console
.
log
(
e
);}
}
else
{
console
.
log
(
"dom挂载完成,但数据没准备好"
);
}
...
...
@@ -112,9 +126,9 @@ export default{
gv
(
value
,
dValue
){
return
(
value
)?
value
:
dValue
},
debounceFn
(
fn
,
delay
){
let
timer
=
null
return
function
(
args
)
{
return
function
(
args
){
if
(
timer
){
clearTimeout
(
timer
)
clearTimeout
(
timer
)
}
timer
=
setTimeout
(
fn
(
args
),
delay
)
}
...
...
@@ -153,19 +167,22 @@ export default{
fillServeData
(
respData
){
var
that
=
this
;
var
result
=
that
.
gv
(
respData
.
hospitalVoList
,[]).
reduce
(
function
(
prv
,
cur
,
index
,
arr
){
prv
.
nameLis
.
push
(
cue
.
hospitalName
);
prv
.
dataLis
.
push
(
cue
.
systemCount
);
prv
.
nameLis
.
push
(
cur
.
hospitalName
);
prv
.
dataLis
.
push
(
cur
.
systemCount
);
prv
.
totalLis
.
push
(
cur
.
totalCount
);
return
prv
;
},{
nameLis
:[],
dataLis
:[]});
},{
nameLis
:[],
dataLis
:[]
,
totalLis
:[]
});
that
.
lineBar
.
nameLis
=
Object
.
freeze
(
result
.
nameLis
);
that
.
lineBar
.
Arr
=
Object
.
freeze
(
result
.
dataLis
);
that
.
lineBar
.
TLis
=
Object
.
freeze
(
result
.
totalLis
);
console
.
log
(
"this.$el"
,
this
.
$el
)
if
(
that
.
ISmounted
){
t
hat
.
drawLineBar
(
result
.
nameLis
,
result
.
dataLis
);
t
ry
{
that
.
drawLineBar
(
result
.
nameLis
,
result
.
dataLis
,
result
.
totalLis
);
}
catch
(
e
){
console
.
log
(
e
);
}
}
else
{
console
.
log
(
"数据准备好了,但dom没挂在完成"
)
}
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
result
=
VoLis
.
reduce
(
function
(
prv
,
cur
,
index
,
arr
){
prv
.
NameLis
.
push
(
cur
.
month
);
...
...
@@ -173,11 +190,11 @@ export default{
(
prv
.
arr
)[
j
].
push
(
cur
[
ky
]);
})
return
prv
;
},{
NameLis
:[],
arr
:
oAr
})
},{
NameLis
:[],
arr
:
oAr
})
;
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
){
t
hat
.
drawBar
();
t
ry
{
that
.
drawBar
();
}
catch
(
e
){
console
.
log
(
e
);
}
}
that
.
ISDataComplate
=
true
;
},
...
...
@@ -186,9 +203,13 @@ export default{
this
.
getServeData
();
},
resetForm
(
formName
){
this
.
$refs
[
formName
].
resetFields
();
},
drawLineBar
(
NameLis
,
dataLis
){
drawLineBar
(
NameLis
,
dataLis
,
totalLis
){
var
that
=
this
;
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
opts
=
{
title
:{
...
...
@@ -201,13 +222,45 @@ export default{
}
},
grid
:{
left
:
150
,
left
:
Left
,
top
:
64
,
right
:
50
,
bottom
:
20
,
},
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
:
{
type
:
'category'
,
...
...
@@ -217,38 +270,55 @@ export default{
axisTick
:{
show
:
false
},
animationDuration
:
300
,
animationDurationUpdate
:
300
,
//
animationDuration: 300,
//
animationDurationUpdate: 300,
max
:
9
// only the largest 3 bars will be displayed
},
series
:
[
{
realtimeSort
:
true
,
name
:
'X'
,
type
:
'bar'
,
barWidth
:
20
,
// data: [100,200,190,210,250,500,100,200,190,210],
data
:
dataLis
,
label
:
{
show
:
true
,
position
:
'right'
,
valueAnimation
:
true
}
// realtimeSort: true,
name
:
'系统上报人数'
,
type
:
'bar'
,
barWidth
:
20
,
stack
:
'V1'
,
color
:
'#4495E6'
,
// data: [100,200,190,210,250,500,100,200,190,210],
data
:
dataLis
,
// label: {
// 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
,
animationDurationUpdate
:
3000
,
animationEasing
:
'linear'
,
animationEasingUpdate
:
'linear'
//
animationDuration: 0,
//
animationDurationUpdate: 3000,
//
animationEasing: 'linear',
//
animationEasingUpdate: 'linear'
};
charts
.
setOption
(
opts
);
charts
.
setOption
(
opts
);
},
drawBar
(){
var
that
=
this
;
var
Oc
=
{
datakey
:
'BarData'
,
dom
:
'vhBar'
,
scBox
:
'BarScBox'
,
scline
:
'BarScLine'
,
vlen
:
'persw'
};
var
drData
=
that
[(
Oc
.
datakey
)];
var
Namelis
=
drData
.
Namelis
;
if
(
Namelis
.
length
==
'0'
){
return
;
}
//
if(Namelis.length=='0'){ return; }
var
Arr
=
drData
.
Arr
;
var
Wh
=
(
that
.
$refs
[(
Oc
.
scBox
)]).
offsetWidth
;
var
barW
=
(
that
.
activeTab
==
1
)?
300
:
120
;
...
...
@@ -303,9 +373,9 @@ export default{
<span>
${
rtem
.
seriesName
}
</span>
</div>
<div class="v">
${
rtem
.
value
}
</div><br>
</div>`
}
st
+=
`</div>`
;
</div>`
}
st
+=
`</div>`
;
}
var
resStr
=
`<style type="text/css">
.box1648092821403{
...
...
@@ -373,7 +443,7 @@ export default{
<div class="title">
${((
params
[
0
])[
"axisValue"
])}
</div>
${
st
}
</div>`
;
return
resStr
;
return
resStr
;
}
}
else
{
return
function
(
params
){
...
...
@@ -423,7 +493,7 @@ export default{
return
{
grid
:{
left
:
40
,
// 默认10%,给24就挺合适的。
top
:
6
0
,
// 默认60
top
:
9
0
,
// 默认60
right
:
50
,
// 默认10%
bottom
:
35
,
// 默认60
},
...
...
@@ -436,7 +506,7 @@ export default{
},
legend
:[
{
top
:
4
0
,
top
:
4
3
,
right
:
100
,
itemWidth
:
12
,
// 设置宽度
itemHeight
:
12
,
// 设置高度
...
...
@@ -448,7 +518,7 @@ export default{
},
data
:
result
.
leg1
},{
top
:
4
0
,
top
:
4
3
,
right
:
20
,
data
:
result
.
leg2
}
...
...
@@ -484,7 +554,7 @@ export default{
drawBarEchart
(
dom
,
NameLis
,
arr
,
isClear
){
var
that
=
this
;
var
charts
=
that
.
getCtx
(
dom
);
if
(
isClear
){
charts
.
clear
();
}
if
(
isClear
||
(
NameLis
.
length
===
0
)
){
charts
.
clear
();
}
charts
.
setOption
(
that
.
getOpts
(
NameLis
,
arr
));
},
getCtx
(
refName
){
return
echarts
.
init
((
this
.
$refs
)[
refName
]);
}
...
...
@@ -494,7 +564,7 @@ export default{
<
style
lang=
"scss"
>
.main-page
{
.tab-btn
{
font-size
:
0
;
font-size
:
0
;
button
.el-button
{
position
:
relative
;
font-size
:
14px
;
...
...
@@ -514,7 +584,7 @@ export default{
border-radius
:
50%
;
}
}
}
}
}
.page-runStatis
{
padding
:
24px
32px
24px
;
...
...
@@ -533,16 +603,19 @@ export default{
.panel-Box
{
padding-top
:
20px
;
padding-bottom
:
10px
;
.title
{
font-size
:
20px
;
font-weight
:bold
;
color
:rgba
(
0
,
0
,
0
,
0
.87
)
;
}
.charts-box
{
.charts
{
.charts
1
{
height
:
358px
;
}
.charts2
{
height
:
428px
;
}
.scroll_box
{
width
:
100%
;
overflow-x
:auto
;
...
...
src/store/actions.js
View file @
78d76529
...
...
@@ -44,76 +44,6 @@ export const LoginByToken = function({
token
,
userDto
}
=
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
)
{
await
commit
(
types
.
SET_MENUMAP
,
Cache
.
setMenuMap
(
parentMenuList
))
await
commit
(
types
.
SET_USERINFO
,
Cache
.
setUserInfo
(
userDto
))
...
...
src/util/ajax.js
View file @
78d76529
...
...
@@ -28,7 +28,10 @@ service.interceptors.request.use(
config
=>
{
if
(
Auth
.
getLoginInfo
())
{
config
.
headers
[
'token'
]
=
Auth
.
getLoginInfo
()
}
};
if
(
config
.
url
==
`/api/team/importExcel/uploadExcel`
){
//上传文件接口
config
.
headers
[
'productType'
]
=
config
.
data
.
get
(
'productType'
);
};
return
config
},
err
=>
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment