Commit c2a75122 authored by songrui's avatar songrui

筛查详情

parent d4a1b02e
...@@ -5,3 +5,12 @@ export function queryResidentInfo(params) { ...@@ -5,3 +5,12 @@ export function queryResidentInfo(params) {
return fetchBase({ url: `/chronic-resident/v1/chronic-residents-record/search-info`, body: params, loading: true }) return fetchBase({ url: `/chronic-resident/v1/chronic-residents-record/search-info`, body: params, loading: true })
} }
// 查询筛查记录列表
export function querScreenList(params) {
return fetchBase({ url: `/chronic-resident/v1/chronic-screening-record/screen-list`, body: params, loading: true })
}
// 查询筛查记录详情
export function querScreenDetail(params) {
return fetchBase({ url: `/chronic-resident/v1/chronic-screening-record/record`, body: params, loading: true })
}
...@@ -30,7 +30,8 @@ export default { ...@@ -30,7 +30,8 @@ export default {
cellBorderColor: '#d9d9d9' cellBorderColor: '#d9d9d9'
} }
} }
}, setup() { },
setup() {
const store = useStore() const store = useStore()
return { store } return { store }
}, },
......
<template>
<div class="h-full pb-5">
<div class="p-3 text-16 text-black text-center shrink-0 top-bar">
<span class="back-bt">
<span @click="onBack">
<doc-icon type="doc-left" />
</span>
</span>
<span>慢病自我初筛详情</span>
</div>
<div class="py-4 border-bottom">
<div class="px-4 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>{{ residentInfo[item.key] || '-' }}</span>
</div>
</div>
<div class="py-4 border-bottom">
<div class="px-4 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>
</template>
<script>
import { showNotify } from 'vant'
import { querScreenDetail } from '@/api/screening.js'
export default {
data() {
return {
info: {},
columnsBase: [
{ title: '姓名', key: 'residentName' },
{ 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: {
id() {
return this.$route.params.id
},
residentInfo() {
return this.info.residentsRecord || {}
}
},
created() {
if (!this.id) {
showNotify({ type: 'warning', message: '未获取到查询信息', duration: 0 })
return
}
this.init()
},
methods: {
init() {
querScreenDetail({ id: this.id }).then(res => {
this.info = res.data || {}
})
},
onBack() {
}
}
}
</script>
<style lang="less" scoped>
@import url('../../../utils/common.less');
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>
<template>
<div>
</div>
</template>
<script>
import { showNotify } from 'vant'
import { querScreenList } from '@/api/screening.js'
export default {
computed: {
routeQuery() {
return this.$route.query
},
idCard() {
return this.routeQuery.idCard
}
},
created() {
if (!this.idCard) {
showNotify({ type: 'warning', message: '未获取到用户信息', duration: 0 })
return
}
this.init()
},
methods: {
init() {
querScreenList({ idCard: this.idCard })
}
}
}
</script>
<style lang="less" scoped>
</style>
<template> <template>
<div class="base-info"> <div class="base-info">
<div class="flex py-4" <div class="flex py-4 border-bottom">
style="border-bottom: 1px solid var(--van-cell-border-color);">
<div class="px-4 title">居民信息</div> <div class="px-4 title">居民信息</div>
<div class="text-12">请准确填写您的证件信息,标*内容为必填</div> <div class="text-12">请准确填写您的证件信息,标*内容为必填</div>
</div> </div>
...@@ -255,13 +254,10 @@ export default { ...@@ -255,13 +254,10 @@ export default {
// 现住址 // 现住址
showPresent: false, showPresent: false,
// 户籍地址 // 户籍地址
showRegistered: false showRegistered: false,
store: useStore()
} }
}, },
setup() {
const store = useStore()
return { store }
},
computed: { computed: {
residentsRecord() { residentsRecord() {
return this.checkInfo.residentsRecord return this.checkInfo.residentsRecord
......
...@@ -42,8 +42,6 @@ ...@@ -42,8 +42,6 @@
</template> </template>
<script> <script>
import { isWeiXin } from '@/utils/common.js'
export default { export default {
inject: ['checkInfo'], inject: ['checkInfo'],
methods: { methods: {
......
<template> <template>
<div class="h-full flex flex-col id-check"> <div class="h-full flex flex-col id-check">
<div class="flex items-end py-4" <div class="flex items-end py-4 border-bottom">
style="border-bottom: 1px solid var(--van-cell-border-color);">
<div class="px-4 font-semibold title">居民证件信息</div> <div class="px-4 font-semibold title">居民证件信息</div>
<div class="text-12">请准确填写您的证件信息,标*内容为必填</div> <div class="text-12">请准确填写您的证件信息,标*内容为必填</div>
</div> </div>
...@@ -61,14 +60,11 @@ export default { ...@@ -61,14 +60,11 @@ export default {
rules: { rules: {
idCard: [{ required: true, message: '请输入' }, idCardRule], idCard: [{ required: true, message: '请输入' }, idCardRule],
certificateType: [{ required: true, message: '请选择' }] certificateType: [{ required: true, message: '请选择' }]
} },
store: useStore()
} }
}, },
inject: ['checkInfo'], inject: ['checkInfo'],
setup() {
const store = useStore()
return { store }
},
created() { created() {
this.init() this.init()
}, },
......
...@@ -97,12 +97,5 @@ export default { ...@@ -97,12 +97,5 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.top-bar { @import '../../../utils/common.less';
position: relative;
border-bottom: 1px solid #3C3C435C;
.back-bt {
position: absolute;
left: .16rem;
}
}
</style> </style>
<template> <template>
<div class="screen-info"> <div class="screen-info">
<div class="flex items-end py-4" <div class="flex items-end py-4 border-bottom">
style="border-bottom: 1px solid var(--van-cell-border-color);">
<div class="px-4 font-semibold title">筛查信息</div> <div class="px-4 font-semibold title">筛查信息</div>
<div class="text-12">请根据您身体实际情况填写以下内容</div> <div class="text-12">请根据您身体实际情况填写以下内容</div>
</div> </div>
...@@ -412,13 +411,10 @@ export default { ...@@ -412,13 +411,10 @@ export default {
screenDateRange: { screenDateRange: {
min: new Date(2024, 9, 2), min: new Date(2024, 9, 2),
max: undefined max: undefined
} },
store: useStore()
} }
}, },
setup() {
const store = useStore()
return { store }
},
computed: { computed: {
// BMI // BMI
bmi() { bmi() {
......
...@@ -10,4 +10,18 @@ ...@@ -10,4 +10,18 @@
width: 3px; width: 3px;
margin-right: 6px; margin-right: 6px;
} }
}
// 顶部导航栏
.top-bar {
position: relative;
border-bottom: 1px solid #3C3C435C;
.back-bt {
position: absolute;
left: .16rem;
}
}
.border-bottom {
border-bottom: 1px solid var(--van-cell-border-color);
} }
\ No newline at end of file
...@@ -10,6 +10,16 @@ const routes = [ ...@@ -10,6 +10,16 @@ const routes = [
path: 'screening/first/form', path: 'screening/first/form',
name: 'resident-screening-first-form', name: 'resident-screening-first-form',
component: () => import(/* webpackChunkName: "page-resident" */ '@/resident/screening/first/form/Index.vue') component: () => import(/* webpackChunkName: "page-resident" */ '@/resident/screening/first/form/Index.vue')
},
{
path: 'screening/first/detail',
name: 'resident-screening-first-detail',
component: () => import(/* webpackChunkName: "page-resident" */ '@/resident/screening/first/detail/List.vue')
},
{
path: 'screening/first/detail/:id',
name: 'resident-screening-first-detail-id',
component: () => import(/* webpackChunkName: "page-resident" */ '@/resident/screening/first/detail/Detail.vue')
} }
] ]
}, },
......
...@@ -30,11 +30,11 @@ module.exports = defineConfig({ ...@@ -30,11 +30,11 @@ module.exports = defineConfig({
} }
}, },
'/chronic-resident': { '/chronic-resident': {
// target: 'http://192.168.1.43:8903', target: 'http://192.168.1.43:8903',
target: 'https://beta-tumour.zmnyjk.com', // target: 'https://beta-tumour.zmnyjk.com',
changOrigin: true, changOrigin: true,
pathRewrite: { pathRewrite: {
'^/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