Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
frontend-h5
Project
Project
Details
Activity
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
songrui
frontend-h5
Commits
fbb92899
Commit
fbb92899
authored
Nov 13, 2024
by
gengchunlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
居民端小程序 v1.2 通用随访详情调整
parent
295a98d9
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1329 additions
and
117 deletions
+1329
-117
visit.js
src/api/residentWX/visit.js
+10
-0
List.vue
src/residentWX/visit/List.vue
+30
-17
FirstFUDetail.vue
src/residentWX/visit/detail/FirstFUDetail.vue
+277
-0
GeneralFUDetail.vue
src/residentWX/visit/detail/GeneralFUDetail.vue
+65
-93
SecondFUDetail.vue
src/residentWX/visit/detail/SecondFUDetail.vue
+927
-0
SeparateFUDetail.vue
src/residentWX/visit/detail/SeparateFUDetail.vue
+1
-1
index.js
src/router/index.js
+15
-2
vue.config.js
vue.config.js
+4
-4
No files found.
src/api/residentWX/visit.js
View file @
fbb92899
...
...
@@ -4,6 +4,16 @@ export function queryVisitList(params) {
return
fetchBase
({
url
:
`/chronic-resident/v1/chronic-visit-record/page`
,
body
:
params
,
loading
:
true
})
}
//查询主要慢病高危随访详情
export
function
queryMajorFUDetail
(
params
)
{
return
fetchBase
({
url
:
`/chronic-resident/v1/chronic-visit-record/high-major-detail`
,
body
:
params
,
loading
:
true
})
}
//查询专病高危随访详情
export
function
querySpecificFUDetail
(
params
)
{
return
fetchBase
({
url
:
`/chronic-resident/v1/chronic-visit-record/high-major-detail`
,
body
:
params
,
loading
:
true
})
}
// 查询通用随访详情
export
function
queryGeneralFUDetail
(
params
)
{
return
fetchBase
({
url
:
`/chronic-resident/v1/chronic-visit-record/currency-detail`
,
body
:
params
,
loading
:
true
})
...
...
src/residentWX/visit/List.vue
View file @
fbb92899
...
...
@@ -24,32 +24,35 @@
>
<div
class=
"p-2 flex flex-col gap-y-2.5 card-list"
>
<div
v-for=
'item in list'
:key=
'item.id'
class=
'py-3 px-4 card'
@
click
.
stop=
'toDetail(item)'
>
<div>
<div
v-if=
'item.tabs == 3'
>
<span
class=
"label"
>
慢病类型
</span>
<span>
{{
item
.
diseaseTypeName
}}
</span>
<span>
{{
item
.
diseaseTypeName
||
'-'
}}
</span>
</div>
<div>
<span
class=
"label"
>
随访日期
</span>
<span>
{{
item
.
serve
Date
}}
</span>
<span>
{{
item
.
visit
Date
}}
</span>
</div>
<div>
<div
v-if=
'item.tabs == 3 || item.tabs == 4'
>
<span
class=
"label"
>
下次随访日期
</span>
<span>
{{
item
.
nextVisitDate
||
'-'
}}
</span>
</div>
<div>
<span
class=
"label"
>
随访医生
</span>
<span>
{{
item
.
serveDoctorName
}}
</span>
<div
v-if=
'item.nextVisitDate && (item.tabs == 1 || item.tabs == 2)'
>
<span
class=
"label"
>
下次随访日期
</span>
<span>
{{
item
.
nextVisitDate
||
'-'
}}
</span>
</div>
<div>
<span
class=
"label"
>
随访
方式
</span>
<span>
{{
item
.
serveType
Name
}}
</span>
<span
class=
"label"
>
随访
医生
</span>
<span>
{{
item
.
visitDoctor
Name
}}
</span>
</div>
<div>
<span
class=
"label"
>
随访机构
</span>
<span>
{{
item
.
serve
UnitName
}}
</span>
<span>
{{
item
.
visit
UnitName
}}
</span>
</div>
<span
class=
"tag tag-yellow"
v-show=
"item.serveType == '5'"
>
通用随访
</span>
<span
class=
"tag tag-green"
v-show=
"item.serveType == '3' || item.serveType == '4' "
>
专病随访
</span>
<span
class=
"tag tag-green"
v-show=
"item.tabs == 1"
>
主要慢病高危随访
</span>
<span
class=
"tag tag-green"
v-show=
"item.tabs == 2"
>
专病高危随访
</span>
<span
class=
"tag tag-green"
v-show=
"item.tabs == 3"
>
专病随访
</span>
<span
class=
"tag tag-green"
v-show=
"item.tabs == 4"
>
通用随访
</span>
</div>
</div>
</van-list>
...
...
@@ -127,7 +130,6 @@ export default {
const
query
=
{
residentInfoId
:
this
.
baseInfo
.
residentInfoId
,
diseaseType
:
this
.
activeTab
,
serveTypeList
:
[
'3'
,
'4'
,
'5'
],
pageIndex
:
this
.
pagination
.
pageIndex
,
pageSize
:
this
.
pagination
.
pageSize
}
...
...
@@ -163,12 +165,23 @@ export default {
toDetail
(
item
)
{
let
par
=
{}
let
path
=
``
if
(
item
.
serveType
==
5
)
{
path
=
`GeneralFUDetail/
${
item
.
relationId
}
`
//主要慢病高危随访
if
(
item
.
tabs
==
1
)
{
path
=
`FirstFUDetail/
${
item
.
id
}
`
}
//专病高危随访
if
(
item
.
tabs
==
2
)
{
path
=
`SecondFUDetail/
${
item
.
id
}
`
}
if
(
item
.
serveType
==
3
||
item
.
serveType
==
4
)
{
path
=
`SeparateFUDetail/
${
item
.
relationId
}
/
${
item
.
diseaseType
}
`
//专病随访
if
(
item
.
tabs
==
3
)
{
path
=
`SeparateFUDetail/
${
item
.
id
}
/
${
item
.
diseaseType
}
`
}
//通用随访
if
(
item
.
tabs
==
4
)
{
path
=
`GeneralFUDetail/
${
item
.
id
}
`
}
this
.
$router
.
push
({
path
,
query
:
par
...
...
src/residentWX/visit/detail/FirstFUDetail.vue
0 → 100644
View file @
fbb92899
<
template
>
<div
class=
"flex flex-col"
style=
"height: 100vh"
>
<div
class=
"p-3 text-black text-center shrink-0 doc-nav-bar"
v-if=
'showNav()'
>
<span
@
click=
"onBack"
class=
"text-12 back-bt"
>
<doc-icon
type=
"doc-left2"
/>
</span>
<span>
主要慢病高危随访详情
</span>
</div>
<div
class=
"px-4 py-3 flex shrink-0 base-info"
>
<div
class=
"flex w-full"
>
<div
class=
"grow flex flex-col justify-between"
>
<div
class=
"flex justify-between"
>
<span
class=
"name"
>
{{
userInfo
.
residentName
}}
</span>
</div>
<div
class=
'lh-22'
>
<div
class=
'mt-3'
>
随访日期:
<span
class=
'color-26'
>
{{
info
.
screenDate
||
'-'
}}
</span></div>
<span>
慢病高危评估结果:
</span>
<span
:class=
"
{'text-red': info.screenResult !== 1, 'color-26': info.screenResult === 1 }">
{{
info
.
screenResultName
}}
</span>
</div>
</div>
</div>
</div>
<div
class=
"p-3 grow cont-box"
>
<div
class=
"p-3 h-full cont-inner"
>
<div
class=
"flex justify-between collapse-head mt-2"
>
<span
class=
"text-16 font-semibold"
>
全部内容
</span>
<span
@
click=
"toggleAll"
>
<span
v-if=
"!collapseAll"
>
展开全部
</span>
<span
v-else
>
展开收起
</span>
<span
:class=
"['ml-2 icon-down',
{ 'icon-down-expanded': collapseAll }]">
<doc-icon
type=
"doc-down"
/>
</span>
</span>
</div>
<van-collapse
:model-value=
"activeCollapse"
ref=
"collapse"
class=
"doc-collapse"
@
change=
"collapseChange"
>
<van-collapse-item
v-for=
"collapse in collapseList"
:key=
"collapse.name"
:title=
"collapse.title"
:name=
"collapse.name"
>
<template
#
right-icon
>
<doc-icon
type=
"doc-down"
/>
</
template
>
<div
class=
"list"
>
<div
v-for=
"item in collapse.columns"
:key=
"item.key"
>
<div
v-if=
"item.key == 'pressure'"
class=
"pt-3"
>
<table
class=
"w-full"
>
<tr>
<td
style=
"width: 7.1em"
>
血压值(mmHg)
</td>
<td>
收缩压(高压)
</td>
<td></td>
<td>
舒张压(低压)
</td>
</tr>
<tr>
<td>
第1次测量
</td>
<td>
{{ info.pressureOneSbp || '-' }}
</td>
<td>
/
</td>
<td>
{{ info.pressureOneDbp || '-' }}
</td>
</tr>
<tr>
<td>
第2次测量
</td>
<td
class=
"flex"
>
{{ info.pressureTwoSbp || '-' }}
</td>
<td>
/
</td>
<td>
{{ info.pressureTwoDbp || '-' }}
</td>
</tr>
</table>
</div>
<div
v-else
class=
"flex justify-between py-1 border-bottom item"
>
<span
class=
"shrink-0 mr-2 label"
>
{{ item.title }}
</span>
<span
v-if=
"item.key === 'idCard'"
>
{{ $idCardHide(collapse.info.idCard) || '-' }}
</span>
<span
class=
"text-end"
v-else
>
<span>
{{ collapse.info[item.key] || '-' }}
</span>
<span
v-if=
"item.unit"
class=
"ml-1"
>
{{ item.unit }}
</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
</div>
</template>
<
script
>
import
{
showNotify
}
from
'vant'
import
{
firstScreenDetail
}
from
'@/api/residentWX/screening.js'
import
{
useStore
}
from
'@/residentWX/store'
import
{
queryMajorFUDetail
}
from
'@/api/residentWX/visit'
export
default
{
inject
:[
'showNav'
],
data
()
{
return
{
store
:
useStore
(),
activeCollapse
:
[],
collapseList
:
[
{
title
:
'居民信息'
,
name
:
'1'
,
columns
:
[
{
title
:
'姓名'
,
key
:
'residentName'
},
{
title
:
'证件号码'
,
key
:
'idCard'
},
{
title
:
'性别'
,
key
:
'genderName'
},
{
title
:
'出生日期'
,
key
:
'dataBirth'
},
{
title
:
'年龄'
,
key
:
'currentAge'
},
{
title
:
'民族'
,
key
:
'nationalName'
},
{
title
:
'本人电话'
,
key
:
'telephone'
},
{
title
:
'现住址'
,
key
:
'presentCodeName'
},
{
title
:
'详细地址'
,
key
:
'nowAddress'
},
{
title
:
'户籍地址'
,
key
:
'registeredCodeName'
},
{
title
:
'详细地址'
,
key
:
'permanentAddress'
}
],
info
:
{}
},
{
title
:
'随访信息'
,
name
:
'2'
,
columns
:
[
{
title
:
'年龄'
,
key
:
'currentAge'
,
unit
:
'岁'
},
{
title
:
'既往史'
,
key
:
'medicalHistoryName'
},
{
title
:
'身高'
,
key
:
'height'
,
unit
:
'cm'
},
{
title
:
'体重'
,
key
:
'weight'
,
unit
:
'kg'
},
{
title
:
'BMI'
,
key
:
'bmi'
,
unit
:
'kg/m²'
},
{
title
:
'腰围'
,
key
:
'waistline'
,
unit
:
'cm'
},
{
title
:
'是否吸烟'
,
key
:
'isSmokingName'
},
{
title
:
'家族史'
,
key
:
'familyHistoryName'
},
{
title
:
'血压值'
,
key
:
'pressure'
},
{
title
:
'空腹血糖'
,
key
:
'fastingGlucose'
,
unit
:
'mmol/L'
},
{
title
:
'低密度脂蛋白胆固醇'
,
key
:
'ldlCholesterin'
,
unit
:
'mmol/L'
},
{
title
:
'血清总胆固醇'
,
key
:
'serumCholesterin'
,
unit
:
'mmol/L'
},
{
title
:
'高密度脂蛋白胆固醇'
,
key
:
'hdlCholesterin'
,
unit
:
'mmol/L'
},
{
title
:
'运动'
,
key
:
'exerciseIntensityName'
},
{
title
:
'慢病高危评估结果'
,
key
:
'screenResultName'
}
],
info
:
{}
},
{
title
:
'随访机构'
,
name
:
'3'
,
columns
:
[
{
title
:
'随访机构'
,
key
:
'visitUnitName'
},
{
title
:
'随访科室'
,
key
:
'visitOfficeName'
},
{
title
:
'随访医生'
,
key
:
'visitDoctorName'
},
{
title
:
'随访日期'
,
key
:
'visitDate'
}
],
info
:
{}
}
],
// 全部展开、收起
collapseAll
:
false
,
info
:
{}
}
},
computed
:
{
id
()
{
return
this
.
$route
.
params
.
id
},
userInfo
()
{
return
this
.
store
.
userInfo
},
},
created
()
{
document
.
title
=
'主要慢病高危随访详情'
if
(
!
this
.
id
)
{
showNotify
({
type
:
'warning'
,
message
:
'未获取到查询信息'
,
duration
:
0
})
return
}
this
.
init
()
},
methods
:
{
init
()
{
queryMajorFUDetail
({
id
:
this
.
id
}).
then
(
res
=>
{
this
.
info
=
res
.
data
||
{}
this
.
collapseList
[
0
].
info
=
this
.
info
?.
residentsRecord
this
.
collapseList
[
1
].
info
=
this
.
info
this
.
collapseList
[
2
].
info
=
this
.
info
})
},
onBack
()
{
this
.
$router
.
back
()
},
// 折叠面板切换
collapseChange
(
val
)
{
// console.log(val, this.activeCollapse)
if
(
val
&&
val
.
length
<=
2
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
else
{
if
(
this
.
activeCollapse
.
length
>
val
.
length
)
{
this
.
activeCollapse
=
val
}
if
(
this
.
activeCollapse
.
length
<
val
.
length
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
}
if
(
val
&&
val
.
length
===
this
.
collapseList
.
length
)
{
this
.
collapseAll
=
true
}
else
{
this
.
collapseAll
=
false
}
},
// 全部展开、收起
toggleAll
()
{
if
(
this
.
collapseAll
)
{
this
.
activeCollapse
=
[]
}
else
{
this
.
activeCollapse
=
this
.
collapseList
.
map
(
e
=>
e
.
name
)
}
this
.
collapseAll
=
!
this
.
collapseAll
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
@import url('../../utils/common.less');
.base-info {
background: linear-gradient(to bottom, #DFF5F4 , #fff 50%);
color: #8c8c8c;
.name {
font-weight: 600;
color: #000;
font-size: 18px;
}
}
.cont-box {
background-color: #f9f9f9;
.cont-inner {
background: linear-gradient(to bottom, #DFF5F4 , #fff .6rem);
border-top-left-radius: .08rem;
border-top-right-radius: .08rem;
}
}
.collapse-head {
.icon-down {
vertical-align: middle;
font-size: .12rem;
.svg-icon {
transition: all .2s;
}
}
.icon-down-expanded {
.svg-icon {
transform: rotate(-180deg);
}
}
}
table {
text-align: left;
// border-bottom: 1px solid var(--van-cell-border-color);
>tr {
>td {
padding-left: 14px;
padding-bottom: 12px;
&:first-child {
text-align: right;
padding-left: 0;
}
}
}
}
.list {
color: #262626;
.label {
min-width: 5em;
}
}
.lh-22 {
line-height: 22px;
}
.color-26 {
color: #262626;
}
</
style
>
src/residentWX/visit/detail/GeneralFUDetail.vue
View file @
fbb92899
...
...
@@ -55,7 +55,7 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'2'
title=
'本次随访情况
'
name=
'2'
>
<!-- <van-collapse-item key='2' title='随访人群
' name='2'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
...
...
@@ -63,39 +63,12 @@
<div class='flex justify-between py-1 border-bottom item'>
<span class='shrink-0 mr-2 label'>本次随访情况</span>
<span class='text-end'>
<span>
{{ info.
visitSituation
Name || '-' }}
</span>
<span>{{ info.
groupsArrays
Name || '-' }}</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'3'
title=
'失访原因'
name=
'3'
v-if=
'info.visitSituation == 2'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
失访原因
</span>
<span
class=
'text-end'
>
<span
v-if=
'info.lossReason != 9'
>
{{ info.lossReasonName || '-' }}
</span>
<span
v-if=
'info.lossReason == 9'
>
{{ info.lossReasonOther || '-' }}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'4'
title=
'死亡原因'
name=
'4'
v-if=
"info.lossReason == 3"
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
死亡原因
</span>
<span
class=
'text-end'
>
<span>
{{ info.deathReason || '-' }}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'5'
title=
'随访方式'
name=
'5'
v-if=
"info.visitSituation == 1"
>
<van-collapse-item key='3' title='随访方式' name='3'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
...
...
@@ -103,45 +76,44 @@
<div class='flex justify-between py-1 border-bottom item' >
<span class='shrink-0 mr-2 label'>随访方式</span>
<span class='text-end'>
<span>
{{ detailInfo.followUpWayName || '-' }}
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.visitSituation == 1 && (info.visitWay == 3 || info.visitWay == 4)"
>
<span
class=
'shrink-0 mr-2 label'
>
是否发送
</span>
<span
class=
'text-end'
>
<span
v-if=
"info.isSms"
>
{{ info.isSmsName || '-'}}
</span>
<span
v-if=
"info.isWx"
>
{{info.isWxName || '-'}}
</span>
<span>{{ info.visitWayName || '-' }}</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'
6'
title=
'随访内容'
name=
'6'
v-if=
"showOne && info.visitSituation == 1
"
>
</van-collapse-item>
-->
<van-collapse-item
key=
'
2'
title=
'随访内容'
name=
'2'
v-if=
"showOne
"
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<!--
<div class='flex justify-between py-1 border-bottom item' >
<span class='shrink-0 mr-2 label'>随访内容</span>
<span class='text-end'>
<span>{{ info.visitContent || '-' }}</span>
</span>
</div>-->
<div
class=
'py-1 border-bottom item card'
:style=
"{textIndent: info.visitContent ? '2em' : '0'}"
>
<span>
{{ info.visitContent || '-' }}
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'
7'
title=
'处置意见'
name=
'7'
v-if=
"showOne && info.visitSituation == 1
"
>
<van-collapse-item
key=
'
3'
title=
'处置意见'
name=
'3'
v-if=
"showOne
"
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<!--
<div class='flex justify-between py-1 border-bottom item' >
<span class='shrink-0 mr-2 label'>处置意见</span>
<span class='text-end'>
<span>{{ info.disposalOpinion || '-' }}</span>
</span>
</div>-->
<div
class=
'py-1 border-bottom item card'
:style=
"{textIndent: info.disposalOpinion ? '2em' : '0'}"
>
<span>
{{ info.disposalOpinion || '-' }}
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
"
8"
title=
'健康指导'
name=
"8"
v-if=
"(showOne || showTwo) && info.visitSituation == 1
"
>
<van-collapse-item
key=
"
4"
title=
'健康指导'
name=
"4"
v-if=
"(showOne || showTwo)
"
>
<
template
#
right-icon
>
<doc-icon
type=
"doc-down"
/>
</
template
>
...
...
@@ -157,13 +129,13 @@
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
"
9"
title=
'宣教内容'
name=
"9"
v-if=
"showThree && info.visitSituation == 1
"
>
<van-collapse-item
key=
"
5"
title=
'宣教内容'
name=
"5"
v-if=
"showThree
"
>
<
template
#
right-icon
>
<doc-icon
type=
"doc-down"
/>
</
template
>
<div>
<!-- <div style="color: #262626">指导内容</div> -->
<div
v-if=
"contentList.length"
class=
"flex flex-col card
"
>
<div
class=
"flex flex-col card"
v-if=
"detailInfo?.publicizeType?.includes(1)
"
>
<!-- 文本 -->
<div
v-for=
"item in contentList"
:key=
"item.templateMode"
class=
"mb-1 flex"
:style=
"`order: ${item.templateMode}`"
>
...
...
@@ -171,54 +143,70 @@
<span>
{{ item.templateContent }}
</span>
</div>
</div>
<div
v-if=
"mp4List.length"
class=
"card mt-2
"
>
<div
class=
"card mt-2"
v-if=
"detailInfo?.publicizeType?.includes(3)
"
>
<Mp4
:files=
"mp4List"
/>
</div>
<div
v-if=
"mp3List.length"
class=
"card flex flex-col mt-2"
style=
"row-gap: .06rem;
"
>
<div
class=
"card flex flex-col mt-2"
style=
"row-gap: .06rem;"
v-if=
"detailInfo?.publicizeType?.includes(2)
"
>
<Mp3
:file=
"item"
v-for=
"item in mp3List"
:key=
"item.annexId"
/>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'
10'
title=
'催检内容'
name=
'10'
v-if=
"showFour && info.visitSituation == 1
"
>
<van-collapse-item
key=
'
6'
title=
'催检内容'
name=
'6'
v-if=
"showFour
"
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<!--
<div class='flex justify-between py-1 border-bottom item' >
<span class='shrink-0 mr-2 label'>催检内容</span>
<span class='text-end'>
<span>{{ info.urgentInsContent || '-' }}</span>
</span>
</div>-->
<div
class=
'py-1 border-bottom item card'
:style=
"{textIndent: info.urgentInsContent ? '2em' : '0'}"
>
<span>
{{ info.urgentInsContent || '-' }}
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'11'
title=
'上传随访记录'
name=
'11
'
v-if=
"showOne"
>
<!-- <van-collapse-item key='9' title='上传随访记录' name='9
' v-if="showOne">
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<!--
<div class='list gap-x-2.5 gap-y-1 flex items-center flex-wrap'>
<!–
<div class='list gap-x-2.5 gap-y-1 flex items-center flex-wrap'>
<div v-for="(url, index) in info.uploadVisitRecordImageList" :key="index" >
<img style='width: 1.47rem;height: 2.04rem' :src="url.trueDownloadUrl" />
</div>
</div>
-->
</div>
–>
<div>
<image-preview :img-list='info.uploadVisitRecordImageList'></image-preview>
</div>
</van-collapse-item>
<van-collapse-item
key=
'1
2'
title=
'现场随访照片'
name=
'12
'
v-if=
"showOne"
>
<van-collapse-item key='1
0' title='现场随访照片' name='10
' v-if="showOne">
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<!--
<div class='list gap-x-2.5 gap-y-1 flex items-center flex-wrap'>
<!–
<div class='list gap-x-2.5 gap-y-1 flex items-center flex-wrap'>
<div v-for="(url, index) in info.sceneVisitImageList" :key="index" >
<img style='width: 1.47rem;height: 2.04rem' :src="url.trueDownloadUrl" />
</div>
</div>
-->
</div>
–>
<div>
<image-preview :img-list='info.sceneVisitImageList'></image-preview>
</div>
</van-collapse-item>
<van-collapse-item
key=
'13'
title=
'随访机构'
name=
'13'
>
<van-collapse-item key='11' title='推送渠道' name='11'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<div class='list'>
<div class='flex justify-between py-1 border-bottom item' >
<span class='shrink-0 mr-2 label'>随访方式</span>
<span class='text-end'>
<span>{{ info.visitWayName || '-' }}</span>
</span>
</div>
</div>
</van-collapse-item>-->
<van-collapse-item
key=
'7'
title=
'随访机构'
name=
'7'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
...
...
@@ -254,24 +242,20 @@ export default {
return
{
activeCollapse
:
[],
detailInfo
:
{
visitWayRulesT
:
[],
publicizeType
:
[],
followUpWayName
:
''
},
collapseList
:
[
{
title
:
'居民信息'
,
name
:
'1'
},
{
title
:
'本次随访情况'
,
name
:
'2'
},
{
title
:
'失访原因'
,
name
:
'3'
},
{
title
:
'死亡原因'
,
name
:
'4'
},
{
title
:
'随访方式'
,
name
:
'5'
},
{
title
:
'随访内容'
,
name
:
'6'
},
{
title
:
'处置意见'
,
name
:
'7'
},
{
title
:
'健康指导'
,
name
:
'8'
},
{
title
:
'宣教内容'
,
name
:
'9'
},
{
title
:
'催检内容'
,
name
:
'10'
},
{
title
:
'上传随访记录'
,
name
:
'11'
},
{
title
:
'现场随访照片'
,
name
:
'12'
},
{
title
:
'随访机构'
,
name
:
'13'
},
/* { title: '随访人群', name: '2'},
{ title: '随访方式', name: '5'},*/
{
title
:
'随访内容'
,
name
:
'2'
},
{
title
:
'处置意见'
,
name
:
'3'
},
{
title
:
'健康指导'
,
name
:
'4'
},
{
title
:
'宣教内容'
,
name
:
'5'
},
{
title
:
'催检内容'
,
name
:
'6'
},
/* { title: '上传随访记录', name: '11'},
{ title: '现场随访照片', name: '12'},*/
{
title
:
'随访机构'
,
name
:
'7'
},
],
// 全部展开、收起
collapseAll
:
false
,
...
...
@@ -305,40 +289,36 @@ export default {
},
//复检
showOne
()
{
const
{
visitWayRules
T
=
[]}
=
this
.
detailI
nfo
const
{
visitWayRules
=
[]}
=
this
.
i
nfo
let
res
=
false
if
(
visitWayRulesT
.
includes
(
'1-1'
)
||
visitWayRulesT
.
includes
(
'1-2'
)
||
visitWayRulesT
.
includes
(
'1-3'
)
||
visitWayRulesT
.
includes
(
'1-4'
)
||
visitWayRulesT
.
includes
(
'1-5'
)
||
visitWayRulesT
.
includes
(
'1-6'
))
{
if
(
visitWayRules
.
includes
(
1
))
{
res
=
true
}
return
res
},
//指导
showTwo
()
{
const
{
visitWayRules
T
=
[]}
=
this
.
detailI
nfo
const
{
visitWayRules
=
[]}
=
this
.
i
nfo
let
res
=
false
if
(
visitWayRulesT
.
includes
(
'2-1'
)
||
visitWayRulesT
.
includes
(
'2-2'
)
||
visitWayRulesT
.
includes
(
'2-3'
)
||
visitWayRulesT
.
includes
(
'2-4'
)
||
visitWayRulesT
.
includes
(
'2-5'
)
||
visitWayRulesT
.
includes
(
'2-6'
))
{
if
(
visitWayRules
.
includes
(
2
))
{
res
=
true
}
return
res
},
//宣教
showThree
()
{
const
{
visitWayRules
T
=
[]}
=
this
.
detailI
nfo
const
{
visitWayRules
=
[]}
=
this
.
i
nfo
let
res
=
false
if
(
visitWayRulesT
.
includes
(
'3-1'
)
||
visitWayRulesT
.
includes
(
'3-2'
)
||
visitWayRulesT
.
includes
(
'3-3'
)
||
visitWayRulesT
.
includes
(
'3-4'
)
||
visitWayRulesT
.
includes
(
'3-5'
)
||
visitWayRulesT
.
includes
(
'3-6'
))
{
if
(
visitWayRules
.
includes
(
3
))
{
res
=
true
}
return
res
},
//催检
showFour
()
{
const
{
visitWayRules
T
=
[]}
=
this
.
detailI
nfo
const
{
visitWayRules
=
[]}
=
this
.
i
nfo
let
res
=
false
if
(
visitWayRulesT
.
includes
(
'4-1'
)
||
visitWayRulesT
.
includes
(
'4-2'
)
||
visitWayRulesT
.
includes
(
'4-3'
)
||
visitWayRulesT
.
includes
(
'4-4'
)
||
visitWayRulesT
.
includes
(
'4-5'
)
||
visitWayRulesT
.
includes
(
'4-6'
))
{
if
(
visitWayRules
.
includes
(
4
))
{
res
=
true
}
return
res
...
...
@@ -363,6 +343,7 @@ export default {
}
},
created
()
{
document
.
title
=
'通用随访详情'
this
.
load
()
},
methods
:
{
...
...
@@ -383,20 +364,11 @@ export default {
},
//数据处理
dataHandle
()
{
const
{
visitWay
,
visitWayRules
,
publicizeType
,
visitWayName
,
visitWayRulesName
}
=
this
.
info
let
visitWayRulesT
=
[]
const
{
visitWay
,
visitWayRules
,
publicizeType
}
=
this
.
info
if
(
visitWay
&&
visitWayRules
)
{
let
resList
=
[]
let
list
=
visitWayRules
.
split
(
','
)
list
.
forEach
(
item
=>
{
resList
.
push
(
`
${
item
}
-
${
visitWay
}
`
)
})
visitWayRulesT
=
resList
this
.
detailInfo
.
visitWayRulesT
=
visitWayRulesT
if
(
publicizeType
)
{
this
.
detailInfo
.
publicizeType
=
publicizeType
.
split
(
','
).
map
(
item
=>
Number
(
item
))
}
this
.
detailInfo
.
followUpWayName
=
visitWayName
+
'-'
+
visitWayRulesName
.
replace
(
","
,
"/"
)
}
},
// 折叠面板切换
...
...
src/residentWX/visit/detail/SecondFUDetail.vue
0 → 100644
View file @
fbb92899
<
template
>
<div
class=
'flex flex-col'
style=
'height: 100vh'
>
<div
class=
'p-3 text-black text-center shrink-0 doc-nav-bar'
v-if=
'showNav()'
>
<span
@
click=
'onBack'
class=
'text-12 back-bt'
>
<doc-icon
type=
'doc-left2'
/>
</span>
<span>
专病高危随访详情
</span>
</div>
<div
class=
'px-4 py-3 flex shrink-0 base-info'
>
<div
class=
'flex w-full'
>
<div
class=
'grow flex flex-col justify-between'
>
<div
class=
'flex justify-between'
>
<span
class=
'name'
>
{{
residentInfo
.
residentName
}}
</span>
</div>
<div
class=
'top-label mt-3'
>
<span
>
报告日期:
<span
class=
'color-b'
>
{{
info
.
screenDate
||
'-'
}}
</span></span>
</div>
<div
class=
'top-label'
>
<span>
慢病高危评估结果:
</span>
</div>
<div
class=
'top-label color-b'
>
<span
v-if=
'info.specialScreenResult && info.specialScreenResult !=9'
>
您存在
<span
class=
'color-red'
>
{{
info
.
specialScreenResultName
}}
</span>
风险,请及时前往医院诊断确认。
</span>
<span
v-if=
'info.specialScreenResult ==9'
>
您并未存在高危风险。
</span>
</div>
<div
v-if=
'info.specialScreenResult && info.specialScreenResult !=9'
class=
'flex items-center flex-wrap gap-x-2.5 gap-y-1 mt-2'
>
<div
v-for=
'(item, index) in highRiskList'
:key=
'index'
class=
'tag tag-red'
>
<span>
{{
item
.
name
}}
:
</span><span
class=
'color-red'
>
{{
item
.
num
||
0
}}
项
</span>
</div>
</div>
</div>
</div>
</div>
<div
class=
'p-3 grow cont-box'
>
<div
class=
'p-3 h-full cont-inner'
>
<div
class=
'flex justify-between collapse-head mt-2'
>
<span
class=
'text-16 font-semibold'
>
全部内容
</span>
<span
@
click=
'toggleAll'
>
<span
v-if=
'!collapseAll'
>
展开全部
</span>
<span
v-else
>
展开收起
</span>
<span
:class=
"['ml-2 icon-down',
{ 'icon-down-expanded': collapseAll }]">
<doc-icon
type=
'doc-down'
/>
</span>
</span>
</div>
<van-collapse
:model-value=
'activeCollapse'
ref=
'collapse'
class=
'doc-collapse'
@
change=
'collapseChange'
>
<van-collapse-item
key=
'1'
title=
'居民信息'
name=
'1'
>
<template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
v-for=
'item in columnsBase'
:key=
'item.key'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
{{ item.title }}
</span>
<span
v-if=
"item.key === 'idCard'"
>
{{ $idCardHide(residentInfo.idCard) || '-'
}}
</span>
<span
class=
'text-end'
v-else
>
<span>
{{ residentInfo[item.key] || '-' }}
</span>
<span
v-if=
'item.unit'
class=
'ml-1'
>
{{ item.unit }}
</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'2'
title=
'随访病种'
name=
'2'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
随访病种
</span>
<span
class=
'text-end'
>
<span>
{{ info.diseaseArraysName || '-' }}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'3'
title=
'病史'
name=
'3'
v-if=
'medicalHistoryShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
病史
</span>
<span
class=
'text-end'
>
<span>
{{ info.medicalHistoryName || '-' }}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'4'
title=
'家族史'
name=
'4'
v-if=
'familyHistoryShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
家族史
</span>
<span
class=
'text-end'
>
<span>
{{ info.familyHistoryName || '-' }}
</span>
</span>
</div>
<div>
<div
class=
'flex items-center'
v-for=
'item in info.diseaseRelativeList'
>
<
template
v-if=
'item.relativeAgeList.filter(e => e.age).length'
>
<div
class=
'mt-2'
>
{{
item
.
diseaseTypeName
}}
:
</div>
<div
class=
'mt-2'
>
<span
v-for=
'item1 in item.relativeAgeList'
>
<span
v-if=
'item1.age'
>
{{
item1
.
relativeTypeName
}}
:
</span>
<span
v-if=
'item1.age'
>
{{
item1
.
age
||
'-'
}}
岁;
</span>
</span>
</div>
</
template
>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'5'
title=
'身高'
name=
'5'
v-if=
'highShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
身高
</span>
<span
class=
'text-end'
>
<span>
{{ info.height || '-' }} cm
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'6'
title=
'体重'
name=
'6'
v-if=
'highShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
体重
</span>
<span
class=
'text-end'
>
<span>
{{ info.weight || '-' }} kg
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'7'
title=
'BMI(体质指数)'
name=
'7'
v-if=
'highShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
BMI(体质指数)
</span>
<span
class=
'text-end'
>
<span>
{{ info.bmi || '-'}} kg/m²
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'8'
title=
'腰围'
name=
'8'
v-if=
'waistShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
腰围
</span>
<span
class=
'text-end'
>
<span>
{{ info.waistline || '-'}} cm
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'9'
title=
'锻炼频率'
name=
'9'
v-if=
'exerciseShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
锻炼频率
</span>
<span
class=
'text-end'
>
<span>
{{info.exerciseFrequencyName || '-'}}
</span>
<span
v-if=
"info.exerciseFrequency == 2 && info.isExerciseFiveName"
>
({{info.isExerciseFiveName}})
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"[1,2,3].includes(info.exerciseFrequency) && exerciseShow"
>
<span
class=
'shrink-0 mr-2 label'
>
每次锻炼时间
</span>
<span
class=
'text-end'
>
<span>
{{info.everyExercise || '-'}} 分钟
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"[1,2,3].includes(info.exerciseFrequency) && exerciseShow"
>
<span
class=
'shrink-0 mr-2 label'
>
可达到中等及以上运动强度
</span>
<span
class=
'text-end'
>
<span>
{{info.mediumStrengthName}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'10'
title=
'女性病史'
name=
'10'
v-if=
'womanMHShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
女性病史
</span>
<span
class=
'text-end'
>
<span>
{{ info.femaleMedicalHistoryName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'11'
title=
'用药史'
name=
'11'
v-if=
'medicationHShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
用药史
</span>
<span
class=
'text-end'
>
<span>
{{ info.medicineHistoryName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'12'
title=
'高密度脂蛋白胆固醇'
name=
'12'
v-if=
'triglycerideShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
高密度脂蛋白胆固醇
</span>
<span
class=
'text-end'
>
<span>
{{ info.hdlCholesterin || '-'}} mmol/L
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'13'
title=
'甘油三酯'
name=
'13'
v-if=
'triglycerideShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
甘油三酯
</span>
<span
class=
'text-end'
>
<span>
{{ info.triglyceride || '-'}} mmol/L
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'14'
title=
'总胆固醇'
name=
'14'
v-if=
'triglycerideShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
总胆固醇
</span>
<span
class=
'text-end'
>
<span>
{{ info.serumCholesterin || '-'}} mmol/L
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'15'
title=
'有害物质接触或婴幼儿时期病史'
name=
'15'
v-if=
'babyMHShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span>
<span>
{{ info.touchHarmfulName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'16'
title=
'血压(左侧右侧)值(SBP/DBP)'
name=
'16'
v-if=
'bloodPressureShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div>
<div>
第一次:{{ info.pressureOneSbp }}-{{ info.pressureOneDbp }} mmHg;
</div>
<div
class=
'mt-2'
>
第二次:{{ info.pressureTwoSbp }}-{{ info.pressureTwoDbp }} mmHg
</div>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'17'
title=
'饮食习惯'
name=
'17'
v-if=
'eatHabitShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮食习惯
</span>
<span
class=
'text-end'
>
<span>
{{ info.dietaryHabitName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'18'
title=
'饮酒情况'
name=
'18'
v-if=
'drinkShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮酒频率
</span>
<span
class=
'text-end'
>
<span>
{{ info.drinkFrequencyName || '-'}}
</span>
</span>
</div>
<div
v-if=
"[2,3,4].includes(info.drinkFrequency)"
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮酒种类
</span>
<span
class=
'text-end'
>
<span>
{{ $addrJoin(info.drinkKindName, info.drinkKindOther) || '-'}}
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'shrink-0 mr-2 label'
>
日饮酒量
</div>
<div
class=
'text-end'
>
<div
v-for=
"item in (info.drinkKindCapacityList || [])"
:key=
"item.drinkKind"
>
<span>
{{item.drinkKindName}}:
</span>
<span>
{{item.drinkCapacity || '-'}} mL
</span>
</div>
<div>
<span>
平均:
</span><span>
{{info.dayDrink || '-'}} mL
</span>
</div>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
开始饮酒年龄
</span>
<span
class=
'text-end'
>
<span>
{{ info.startDrinkAge || '-'}} 岁
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
是否戒酒
</span>
<span
class=
'text-end'
>
<span>
{{ info.giveDrinkName || '-'}}
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
戒酒年龄
</span>
<span
class=
'text-end'
>
<span>
{{ info.giveDrinkStart || '-'}} 岁
</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'19'
title=
'吸烟情况'
name=
'19'
v-if=
'smokeShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
吸烟情况
</span>
<span
class=
'text-end'
>
<span>
{{ info.isSmokingName || '-'}}
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 3 && smokeShow"
>
<span
class=
'shrink-0 mr-2 label'
>
日吸烟量
</span>
<span
class=
'text-end'
>
<span>
{{ info.daySmoking || '-'}} 支
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 3 && smokeShow"
>
<span
class=
'shrink-0 mr-2 label'
>
开始吸烟年龄
</span>
<span
class=
'text-end'
>
<span>
{{ info.startSmoking || '-'}} 岁
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 2 && smokeShow"
>
<span
class=
'shrink-0 mr-2 label'
>
戒烟年龄
</span>
<span
class=
'text-end'
>
<span>
{{ info.giveSmokingAge || '-'}} 岁
</span>
</span>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"smokeShow && record?.diseaseArrays?.includes(1)"
>
<span
class=
'shrink-0 mr-2 label'
>
经常吸入二手烟
</span>
<span
class=
'text-end'
>
<span>
{{ info.secondSmokingName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'20'
title=
'黑棘皮病'
name=
'20'
v-if=
'blackSpinySkinShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
黑棘皮病
</span>
<span
class=
'text-end'
>
<span>
{{ info.blackSpinySkinName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'21'
title=
'长期精神紧张'
name=
'21'
v-if=
'mentalTensionShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
长期精神紧张
</span>
<span
class=
'text-end'
>
<span>
{{ info.mentalTensionName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'22'
title=
'皮肤或肌腱黄色瘤'
name=
'22'
v-if=
'xanthomaShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
皮肤或肌腱黄色瘤
</span>
<span
class=
'text-end'
>
<span>
{{ info.xanthomaName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'23'
title=
'跟腱增厚'
name=
'23'
v-if=
'tendoIncrassationShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
跟腱增厚
</span>
<span
class=
'text-end'
>
<span>
{{ info.tendoIncrassationName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'24'
title=
'中国糖尿病风险评分'
name=
'24'
v-if=
'riskScoreShow'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
中国糖尿病风险评分
</span>
<span
class=
'text-end'
>
<span>
{{ info.riskScoreName || '-'}}
</span>
</span>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'25'
title=
'知情同意书'
name=
'25'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div>
<image-preview
:img-list=
'info.informedConsentUrl'
></image-preview>
</div>
</van-collapse-item>
<van-collapse-item
key=
'26'
title=
'随访机构'
name=
'26'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
v-for=
'item in columnsOrg'
:key=
'item.key'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
{{ item.title }}
</span>
<span
class=
'text-end'
>
<span>
{{ info[item.key] || '-' }}
</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
</div>
</template>
<
script
>
import
{
showNotify
}
from
'vant'
import
{
secondScreenDetail
}
from
'@/api/residentWX/screening.js'
import
{
useStore
}
from
'@/residentWX/store'
import
{
fetchDataHandle
}
from
'@/utils/common'
import
ImagePreview
from
'@/residentWX/components/imagePreview/imagePreview'
import
{
querySpecificFUDetail
}
from
'@/api/residentWX/visit'
export
default
{
components
:
{
ImagePreview
},
inject
:[
'showNav'
],
data
()
{
return
{
store
:
useStore
(),
activeCollapse
:
[],
collapseList
:
[
{
title
:
'居民信息'
,
name
:
'1'
},
{
title
:
'随访病种'
,
name
:
'2'
},
{
title
:
'病史'
,
name
:
'3'
},
{
title
:
'家族史'
,
name
:
'4'
},
{
title
:
'身高'
,
name
:
'5'
},
{
title
:
'体重'
,
name
:
'6'
},
{
title
:
'BMI'
,
name
:
'7'
},
{
title
:
'腰围'
,
name
:
'8'
},
{
title
:
'锻炼频率'
,
name
:
'9'
},
{
title
:
'女性病史'
,
name
:
'10'
},
{
title
:
'用药史'
,
name
:
'11'
},
{
title
:
'高密度脂蛋白胆固醇'
,
name
:
'12'
},
{
title
:
'甘油三酯'
,
name
:
'13'
},
{
title
:
'总胆固醇'
,
name
:
'14'
},
{
title
:
'有害物质接触或婴幼儿时期病史'
,
name
:
'15'
},
{
title
:
'现测血压(左侧右侧)值(SBP/DBP)'
,
name
:
'16'
},
{
title
:
'饮食习惯'
,
name
:
'17'
},
{
title
:
'饮酒情况'
,
name
:
'18'
},
{
title
:
'吸烟情况'
,
name
:
'19'
},
{
title
:
'黑棘皮病'
,
name
:
'20'
},
{
title
:
'长期精神紧张'
,
name
:
'21'
},
{
title
:
'皮肤或肌腱黄色瘤'
,
name
:
'22'
},
{
title
:
'跟腱增厚'
,
name
:
'23'
},
{
title
:
'中国糖尿病风险评分'
,
name
:
'24'
},
{
title
:
'知情同意书'
,
name
:
'25'
},
{
title
:
'随访机构'
,
name
:
'26'
}
],
// 全部展开、收起
collapseAll
:
false
,
info
:
{},
columnsBase
:
[
{
title
:
'姓名'
,
key
:
'residentName'
},
{
title
:
'证件号码'
,
key
:
'idCard'
},
{
title
:
'性别'
,
key
:
'genderName'
},
{
title
:
'出生日期'
,
key
:
'dataBirth'
},
{
title
:
'年龄'
,
key
:
'currentAge'
},
{
title
:
'民族'
,
key
:
'nationalName'
},
{
title
:
'本人电话'
,
key
:
'telephone'
},
{
title
:
'现住址'
,
key
:
'presentCodeName'
},
{
title
:
'详细地址'
,
key
:
'nowAddress'
},
{
title
:
'户籍地址'
,
key
:
'registeredCodeName'
},
{
title
:
'详细地址'
,
key
:
'permanentAddress'
}
],
columnsOrg
:
[
{
title
:
'随访单位'
,
key
:
'visitUnitName'
},
{
title
:
'随访科室'
,
key
:
'visitOfficeName'
},
{
title
:
'随访医生'
,
key
:
'visitDoctorName'
}
],
highRiskList
:
[]
}
},
computed
:
{
id
()
{
return
this
.
$route
.
params
.
id
},
residentInfo
()
{
return
this
.
info
.
residentsRecord
||
{}
},
//判断病史显示隐藏
medicalHistoryShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
2
)
||
diseaseArrays
.
includes
(
3
)
||
diseaseArrays
.
includes
(
4
)
||
diseaseArrays
.
includes
(
5
)
||
diseaseArrays
.
includes
(
6
)
||
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断家族史显示隐藏
familyHistoryShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
2
)
||
diseaseArrays
.
includes
(
3
)
||
diseaseArrays
.
includes
(
4
)
||
diseaseArrays
.
includes
(
5
)
||
diseaseArrays
.
includes
(
6
)
||
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断身高、体重、BMI显示隐藏
highShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
2
)
||
diseaseArrays
.
includes
(
4
)
||
diseaseArrays
.
includes
(
6
)
||
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断腰围显示隐藏
waistShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
2
))
{
res
=
true
}
return
res
},
//判断锻炼频率显示隐藏
exerciseShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
2
)
||
diseaseArrays
.
includes
(
4
))
{
res
=
true
}
return
res
},
//判断女性病史显示隐藏
womanMHShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
2
))
{
res
=
true
}
return
res
},
//判断用药史显示隐藏
medicationHShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
2
)
||
diseaseArrays
.
includes
(
4
)
||
diseaseArrays
.
includes
(
6
))
{
res
=
true
}
return
res
},
//判断高密度脂蛋白胆固醇、甘油三酯、总胆固醇显示隐藏
triglycerideShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
2
))
{
res
=
true
}
return
res
},
//判断有害物质接触或婴幼儿时期病史显示隐藏
babyMHShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
5
))
{
res
=
true
}
return
res
},
//判断血压显示隐藏
bloodPressureShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
))
{
res
=
true
}
return
res
},
//判断饮食习惯显示隐藏
eatHabitShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
))
{
res
=
true
}
return
res
},
//判断饮酒情况显示隐藏
drinkShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
))
{
res
=
true
}
return
res
},
//判断吸烟情况显示隐藏
smokeShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
)
||
diseaseArrays
.
includes
(
3
)
||
diseaseArrays
.
includes
(
4
)
||
diseaseArrays
.
includes
(
5
)
||
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断黑棘皮病显示隐藏
blackSpinySkinShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
2
))
{
res
=
true
}
return
res
},
//判断长期精神紧张显示隐藏
mentalTensionShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
1
))
{
res
=
true
}
return
res
},
//判断皮肤或肌腱黄色瘤显示隐藏
xanthomaShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断跟腱增厚显示隐藏
tendoIncrassationShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
7
))
{
res
=
true
}
return
res
},
//判断中国糖尿病风险评分显示隐藏
riskScoreShow
()
{
let
res
=
false
const
{
diseaseArrays
=
[]
}
=
this
.
info
if
(
diseaseArrays
.
includes
(
2
))
{
res
=
true
}
return
res
}
},
created
()
{
document
.
title
=
'专病高危随访详情'
if
(
!
this
.
id
)
{
showNotify
({
type
:
'warning'
,
message
:
'未获取到查询信息'
,
duration
:
0
})
return
}
this
.
init
()
},
methods
:
{
init
()
{
querySpecificFUDetail
({
id
:
this
.
id
}).
then
(
res
=>
{
let
result
=
res
.
data
||
{}
this
.
info
=
result
this
.
highRiskListHandle
(
result
)
})
},
highRiskListHandle
(
result
)
{
this
.
highRiskList
=
[]
let
obj
=
fetchDataHandle
(
result
,
{
diseaseArrays
:
'strToArrNum'
,
hypertensionHighItem
:
'strToArrNum'
,
diabetesHighItem
:
'strToArrNum'
,
coronaryHighItem
:
'strToArrNum'
,
strokeHighItem
:
'strToArrNum'
,
pulmonaryHighItem
:
'strToArrNum'
,
nephrosisHighItem
:
'strToArrNum'
,
dyslipemiaHighItem
:
'strToArrNum'
})
const
{
hypertensionHighItem
=
[],
diabetesHighItem
=
[],
coronaryHighItem
=
[],
strokeHighItem
=
[],
pulmonaryHighItem
=
[],
nephrosisHighItem
=
[],
dyslipemiaHighItem
=
[]
}
=
obj
let
list
=
[]
let
o
=
{
name
:
''
,
num
:
0
}
if
(
hypertensionHighItem
.
length
)
{
o
=
{
name
:
'高血压风险因素'
,
num
:
hypertensionHighItem
.
length
}
list
.
push
(
o
)
}
if
(
diabetesHighItem
.
length
)
{
o
=
{
name
:
'糖尿病风险因素'
,
num
:
diabetesHighItem
.
length
}
list
.
push
(
o
)
}
if
(
coronaryHighItem
.
length
)
{
o
=
{
name
:
'冠心病风险因素'
,
num
:
coronaryHighItem
.
length
}
list
.
push
(
o
)
}
if
(
strokeHighItem
.
length
)
{
o
=
{
name
:
'脑卒中风险因素'
,
num
:
strokeHighItem
.
length
}
list
.
push
(
o
)
}
if
(
pulmonaryHighItem
.
length
)
{
o
=
{
name
:
'慢阻肺风险因素'
,
num
:
pulmonaryHighItem
.
length
}
list
.
push
(
o
)
}
if
(
nephrosisHighItem
.
length
)
{
o
=
{
name
:
'慢性肾病风险因素'
,
num
:
nephrosisHighItem
.
length
}
list
.
push
(
o
)
}
if
(
dyslipemiaHighItem
.
length
)
{
o
=
{
name
:
'血脂异常风险因素'
,
num
:
dyslipemiaHighItem
.
length
}
list
.
push
(
o
)
}
this
.
highRiskList
=
list
},
onBack
()
{
this
.
$router
.
back
()
},
// 折叠面板切换
collapseChange
(
val
)
{
if
(
val
&&
val
.
length
<=
2
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
else
{
if
(
this
.
activeCollapse
.
length
>
val
.
length
)
{
this
.
activeCollapse
=
val
}
if
(
this
.
activeCollapse
.
length
<
val
.
length
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
}
if
(
val
&&
val
.
length
===
this
.
collapseList
.
length
)
{
this
.
collapseAll
=
true
}
else
{
this
.
collapseAll
=
false
}
},
// 全部展开、收起
toggleAll
()
{
if
(
this
.
collapseAll
)
{
this
.
activeCollapse
=
[]
}
else
{
this
.
activeCollapse
=
this
.
collapseList
.
map
(
e
=>
e
.
name
)
}
this
.
collapseAll
=
!
this
.
collapseAll
}
}
}
</
script
>
<
style
lang=
'less'
scoped
>
@import url('../../utils/common.less');
.base-info {
background: linear-gradient(to bottom, #DFF5F4, #fff 50%);
color: #8c8c8c;
.name {
font-weight: 600;
color: #000;
font-size: 18px;
}
.top-label {
font-size: 13px;
line-height: 22px;
}
.color-b {
color: #262626;
}
.color-red {
color: #F5222D;
}
.tag {
border-radius: 2px;
padding: 3px 8px;
font-size: 12px;
line-height: 18px;
}
.tag-red {
border: 1px solid #EFF2F7;
color: #262626;
background-color: #EFF2F7;
}
}
.cont-box {
background-color: #f9f9f9;
.cont-inner {
background: linear-gradient(to bottom, #DFF5F4, #fff .6rem);
border-top-left-radius: .08rem;
border-top-right-radius: .08rem;
}
}
.collapse-head {
.icon-down {
vertical-align: middle;
font-size: .12rem;
.svg-icon {
transition: all .2s;
}
}
.icon-down-expanded {
.svg-icon {
transform: rotate(-180deg);
}
}
}
table {
text-align: left;
// border-bottom: 1px solid var(--van-cell-border-color);
> tr {
> td {
padding-left: 14px;
padding-bottom: 12px;
&:first-child {
text-align: right;
padding-left: 0;
}
}
}
}
.list {
color: #262626;
.label {
min-width: 5em;
}
}
.gap-y-1 {
row-gap: 4px;
}
</
style
>
src/residentWX/visit/detail/SeparateFUDetail.vue
View file @
fbb92899
...
...
@@ -68,7 +68,7 @@ export default {
}
},
created
()
{
document
.
title
=
'随访详情'
document
.
title
=
'
专病
随访详情'
this
.
load
()
},
methods
:
{
...
...
src/router/index.js
View file @
fbb92899
...
...
@@ -113,16 +113,29 @@ const routes = [
name
:
'residentWX-visit-List'
,
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-visit" */
'@/residentWX/visit/List.vue'
)
},
//通用随访详情
{
path
:
'visit/GeneralFUDetail/:relationId'
,
name
:
'resident-visit-GeneralFUDetail'
,
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-screening" */
'@/residentWX/visit/detail/GeneralFUDetail.vue'
)
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-visit" */
'@/residentWX/visit/detail/GeneralFUDetail.vue'
)
},
//主要慢病高危详情
{
path
:
'visit/FirstFUDetail/:id'
,
name
:
'resident-visit-FirstFUDetail'
,
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-visit" */
'@/residentWX/visit/detail/FirstFUDetail.vue'
)
},
//专病高危详情
{
path
:
'visit/SecondFUDetail/:id'
,
name
:
'resident-visit-SecondFUDetail'
,
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-visit" */
'@/residentWX/visit/detail/SecondFUDetail.vue'
)
},
// 专病随访详情
{
path
:
'visit/SeparateFUDetail/:relationId/:diseaseType'
,
name
:
'resident-visit-SeparateFUDetail'
,
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-
screening
" */
'@/residentWX/visit/detail/SeparateFUDetail.vue'
)
component
:
()
=>
import
(
/* webpackChunkName: "residentWX-
visit
" */
'@/residentWX/visit/detail/SeparateFUDetail.vue'
)
},
// 健康指导宣教
{
...
...
vue.config.js
View file @
fbb92899
...
...
@@ -39,12 +39,12 @@ module.exports = defineConfig({
}
},
'/chronic-resident'
:
{
// target: 'http://192.168.1.200
:8903',
target
:
'https://beta-tumour.zmnyjk.com'
,
target
:
'http://192.168.1.125
:8903'
,
//
target: 'https://beta-tumour.zmnyjk.com',
changOrigin
:
true
,
pathRewrite
:
{
//
'^/chronic-resident': '/',
'^/chronic-resident'
:
'/chronic-resident'
'^/chronic-resident'
:
'/'
,
//
'^/chronic-resident': '/chronic-resident'
}
}
},
...
...
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