Commit fbb92899 authored by gengchunlei's avatar gengchunlei

居民端小程序 v1.2 通用随访详情调整

parent 295a98d9
......@@ -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 })
......
......@@ -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.serveDate }}</span>
<span>{{ item.visitDate }}</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.serveTypeName }}</span>
<span class="label">随访医生</span>
<span> {{ item.visitDoctorName }}</span>
</div>
<div>
<span class="label">随访机构</span>
<span> {{ item.serveUnitName }}</span>
<span> {{ item.visitUnitName }}</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
......
<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>
......@@ -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.visitSituationName || '-' }}</span>
<span>{{ info.groupsArraysName || '-' }}</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'>
&lt;!&ndash; <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>&ndash;&gt;
<div>
<image-preview :img-list='info.uploadVisitRecordImageList'></image-preview>
</div>
</van-collapse-item>
<van-collapse-item key='12' title='现场随访照片' name='12' v-if="showOne">
<van-collapse-item key='10' 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'>
&lt;!&ndash; <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>&ndash;&gt;
<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 {visitWayRulesT = []} = this.detailInfo
const {visitWayRules = []} = this.info
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 {visitWayRulesT = []} = this.detailInfo
const {visitWayRules = []} = this.info
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 {visitWayRulesT = []} = this.detailInfo
const {visitWayRules = []} = this.info
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 {visitWayRulesT = []} = this.detailInfo
const {visitWayRules = []} = this.info
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(",","/")
}
},
// 折叠面板切换
......
<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>
......@@ -68,7 +68,7 @@ export default {
}
},
created() {
document.title = '随访详情'
document.title = '专病随访详情'
this.load()
},
methods: {
......
......@@ -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')
},
// 健康指导宣教
{
......
......@@ -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'
}
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment