Commit cd03277f authored by gengchunlei's avatar gengchunlei

居民端小程序 随访列表调整

parent c5154be1
...@@ -2,4 +2,9 @@ import { fetchBase } from '../fetch.js' ...@@ -2,4 +2,9 @@ import { fetchBase } from '../fetch.js'
// 查询随访列表 // 查询随访列表
export function queryVisitList(params) { export function queryVisitList(params) {
return fetchBase({ url: `/chronic-resident/v1/chronic-visit-record/page`, body: params, loading: true }) return fetchBase({ url: `/chronic-resident/v1/chronic-visit-record/page`, body: params, loading: true })
}
// 查询通用随访详情
export function queryGeneralFUDetail(params) {
return fetchBase({ url: `/chronic-resident/v1/chronic-visit-record/currency-detail`, body: params, loading: true })
} }
\ No newline at end of file
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
<script> <script>
import { getDict, getResidentByInfo } from '@/api/base.js' import { getDict, getResidentByInfo } from '@/api/base.js'
import { useStore } from './store/index.js' import { useStore } from './store/index.js'
import { ref } from 'vue'
export default { export default {
data() { data() {
......
...@@ -157,11 +157,17 @@ export default { ...@@ -157,11 +157,17 @@ export default {
this.load(false) this.load(false)
}, },
toDetail(item) { toDetail(item) {
let par = { debugger
relationId: item.relationId let par = {}
let path = ``
if (item.serveType == 5) {
path = `/visit/GeneralFUDetail/${item.relationId}`
}
if (item.serveType == 3 || item.serveType == 4){
} }
this.$router.push({ this.$router.push({
path: `/doctor/followUp/generalFU/detail`, path,
query: par query: par
}) })
}, },
......
<!--通用随访详情--> <!--通用随访详情-->
<template> <template>
<div> <div class="flex flex-col" style="height: 100vh">
<van-nav-bar title='随访详情' left-text='' left-arrow @click-left='toBack'></van-nav-bar> <div class="p-3 text-black text-center shrink-0 doc-nav-bar">
<van-collapse v-model='activeNames'> <span @click="onBack" class="text-12 back-bt">
<van-collapse-item title='居民信息' name='1'> <doc-icon type="doc-left2" />
代码是写出来给人看的,附带能在机器上运行。 </span>
</van-collapse-item> <span>随访详情</span>
<van-collapse-item title='标题2' name='2'> </div>
技术无非就是那些开发它的人的共同灵魂。 <div class="px-4 py-3 flex shrink-0 base-info">
</van-collapse-item> <div class="flex w-full">
<van-collapse-item title='标题3' name='3'> <img src="@/assets/image/residentWX/avatar.png" alt="" class="shrink-0"
在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。 style="width: .56rem;height: .56rem">
</van-collapse-item> <div class="grow flex flex-col justify-between pl-3">
</van-collapse> <div class="flex justify-between">
<span class="name">张一华</span>
</div>
<div class='mt-3 flex'>
<div>随访方式:通用随访</div>
<div class='ml-4'>随访日期:2024-10-11</div>
</div>
<div>
<span>下次随访日期:</span>
<span>高危风险人群</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">
<span class="text-16">全部内容</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 v-model="activeCollapse" ref="collapse" class="doc-collapse"
@change="collapseChange">
<van-collapse-item v-for="item in collapseList" :key="item.name"
:title="item.title" :name="item.name">
<template #right-icon>
<doc-icon type="doc-down" />
</template>
</van-collapse-item>
</van-collapse>
</div>
</div>
<!-- <div class="py-4 border-bottom">
<div class="px-4 doc-title">居民信息</div>
</div>
<div class="px-4 list">
<div v-for="item in columnsBase" :key="item.key"
class="flex justify-between py-4 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>{{ residentInfo[item.key] || '-' }}</span>
</div>
</div>
<div class="py-4 border-bottom">
<div class="px-4 doc-title">筛查信息</div>
</div>
<div class="px-4 list">
<template v-for="item in columnsScreen" :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.pressureOneDbp || '-' }}
</td>
<td>/</td>
<td>
{{ info.pressureOneSbp || '-' }}
</td>
</tr>
<tr>
<td>
第2次测量
</td>
<td class="flex">
{{ info.pressureTwoDbp || '-' }}
</td>
<td>/</td>
<td>
{{ info.pressureTwoSbp || '-' }}
</td>
</tr>
</table>
</div>
<div v-else
class="flex justify-between py-4 border-bottom item">
<span class="shrink-0 mr-2 label">{{ item.title }}</span>
<div>
<span>{{ info[item.key] || '-' }}</span>
<span v-if="item.unit" class="ml-1">{{ item.unit }}</span>
</div>
</div>
</template>
</div> -->
</div> </div>
</template> </template>
<script> <script>
import { showToast } from 'vant' import { showToast } from 'vant'
import { fetchCurrencyById } from '@/api/doctor/generalFU' import { fetchCurrencyById } from '@/api/doctor/generalFU'
import { queryGeneralFUDetail } from '@/api/residentWX/visit'
export default { export default {
name: 'CurrencyFUDetail.vue', name: 'CurrencyFUDetail.vue',
data() { data() {
return { return {
activeNames: [], activeCollapse: [],
detailInfo: {} collapseList: [
{ title: '居民信息', name: '1' },
{ title: '筛查信息', name: '2' },
{ title: '筛查机构', name: '3' }
],
// 全部展开、收起
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' }
],
columnsScreen: [
{ 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' },
{ title: '筛查日期', key: 'screenDate' },
{ title: '筛查机构', key: 'screenUnitName' }
]
} }
}, },
computed: { computed: {
routerDetail() { routerDetail() {
return this.$route.query return this.$route.params
},
residentInfo() {
return this.info.residentsRecord || {}
} }
}, },
created() { created() {
...@@ -46,20 +187,90 @@ export default { ...@@ -46,20 +187,90 @@ export default {
let par = { let par = {
id: this.routerDetail.relationId id: this.routerDetail.relationId
} }
fetchCurrencyById(par).then(res => { queryGeneralFUDetail(par).then(res => {
let result = res.data || {} this.info = res.data || {}
this.info = result
this.residentInfo = result.residentsRecord || {}
}).finally(() => { }).finally(() => {
}) })
}, },
toBack() { // 折叠面板切换
collapseChange(val) {
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
},
onBack() {
this.$router.back() this.$router.back()
} }
} }
} }
</script> </script>
<style scoped> <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 {
.label {
min-width: 5em;
}
}
</style> </style>
\ No newline at end of file
...@@ -114,7 +114,7 @@ const routes = [ ...@@ -114,7 +114,7 @@ const routes = [
component: () => import(/* webpackChunkName: "residentWX-visit" */ '@/residentWX/visit/List.vue') component: () => import(/* webpackChunkName: "residentWX-visit" */ '@/residentWX/visit/List.vue')
}, },
{ {
path: 'visit/GeneralFUDetail/:id', path: 'visit/GeneralFUDetail/:relationId',
name: 'resident-visit-GeneralFUDetail', name: 'resident-visit-GeneralFUDetail',
component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/visit/detail/GeneralFUDetail.vue') component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/visit/detail/GeneralFUDetail.vue')
}, },
......
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