Commit af4ac3bf authored by songrui's avatar songrui

带随访列表对接接口

parent 3a9d20e1
...@@ -8,4 +8,14 @@ export function getChronicResidentsId(residentInfoId) { ...@@ -8,4 +8,14 @@ export function getChronicResidentsId(residentInfoId) {
// 主键查询 // 主键查询
export function fetchCurrencyById(params) { export function fetchCurrencyById(params) {
return fetchBase({ url: `/v1/chronic-visit-currency/record`, body: params, loading: true }) return fetchBase({ url: `/v1/chronic-visit-currency/record`, body: params, loading: true })
}
// 慢性病管理列表查询
export function getResidentByPage(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-residents-record/page`, body: params, loading: true })
}
// 查询待随访列表
export function getVisitAll(params, loading = true) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-task/query-all-list`, body: params, loading })
} }
\ No newline at end of file
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7" r="6.2" stroke="#595959" stroke-width="1.6"/> <circle cx="7.5" cy="7" r="6.2" stroke="currentColor" stroke-width="1.6"/>
<path d="M15.5 15L12.5 12" stroke="#595959" stroke-width="1.6" stroke-linecap="round"/> <path d="M15.5 15L12.5 12" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
</svg> </svg>
...@@ -24,9 +24,9 @@ export default { ...@@ -24,9 +24,9 @@ export default {
buttonPrimaryBackground: '#607FF0', buttonPrimaryBackground: '#607FF0',
buttonPrimaryBorderColor: '#607FF0', buttonPrimaryBorderColor: '#607FF0',
buttonDefaultBorderColor: '#BFBFBF', buttonDefaultBorderColor: '#BFBFBF',
buttonNormalFontSize: '16px', buttonNormalFontSize: '.16rem',
// 表单相关 // 表单相关
cellVerticalPadding: '15px', cellVerticalPadding: '.15rem',
cellTextColor: '#262626', cellTextColor: '#262626',
cellBorderColor: '#d9d9d9' cellBorderColor: '#d9d9d9'
} }
......
<template>
<div class="flex flex-wrap chronic-tag">
<span v-for="item in innerList" :key="item.name"
:class="item.color">
{{item.name}}
</span>
</div>
</template>
<script>
export default {
props: {
list: [Array, String]
},
computed: {
innerList() {
let list = this.list || []
const map = {
'1': '高',
'2': '糖',
'4': '冠',
'8': '脑',
'16': '肺',
'32': '肾',
'64': '脂'
}
typeof list === 'string' && (list = list.split(','))
return list.map(e => {
if (!map[e]) return
return {
name: map[e],
color: `tag-${e}`
}
}).filter(e => e)
}
}
}
</script>
<style lang="less" scoped>
.chronic-tag {
column-gap: 4px;
row-gap: 8px;
}
.common-tag {
display: inline-block;
border-radius: 50%;
height: 20px;
line-height: 20px;
width: 20px;
text-align: center;
font-size: 12px;
}
.tag-1 {
.common-tag();
background-color: #FFF2E8;
color: #F83B00;
}
.tag-2 {
.common-tag();
background-color: #FFF1F0;
color: #F5222D;
}
.tag-4 {
.common-tag();
background-color: #FFF0F7;
color: #F61E54;
}
.tag-8 {
.common-tag();
background-color: #FFF7E6;
color: #D46B08;
}
.tag-16 {
.common-tag();
background-color: #F4FFE6;
color: #A0BA01;
}
.tag-32 {
.common-tag();
background-color: #ECEBFF;
color: #AA63E2;
}
.tag-64 {
.common-tag();
background-color: #E6F9FF;
color: #4D86DA;
}
</style>
<template> <template>
<div class='all-back'> <div class='all-back'>
<van-pull-refresh v-model='isLoading' <van-nav-bar title='慢病管理' left-text='' left-arrow
success-text='刷新成功' @click-right="toSearch">
@refresh='onRefresh' <template #right>
:disabled='isRefreshDisable' <doc-icon type="doc-search" style="color: #262626"/>
> </template>
<van-nav-bar title='慢病管理' left-text='' left-arrow> </van-nav-bar>
<template #right> <van-pull-refresh v-model="loading" @refresh="onRefresh"
<van-icon name='search' size='18' /> :disabled='isRefreshDisable'>
</template>
</van-nav-bar>
<div class='top-title'> <div class='top-title'>
我的待随访(16 我的待随访({{ total }}
</div> </div>
<van-tabs v-model:active='active'> <van-tabs v-model:active='active'>
<van-tab :title='item.title' :name='item.name' v-for='item in tabList'></van-tab> <van-tab :title='item.title' :name='item.name' v-for='item in tabList'></van-tab>
</van-tabs> </van-tabs>
<div <div class='list-data' ref='list'>
class='list-data' <div class='mt-10 white-back p-16' v-for='item in activeData' :key="item.id">
v-infinite-scroll='loadMore'
:infinite-scroll-disabled='loading'
infinite-scroll-distance='10'
ref='list'
>
<div class='mt-10 white-back p-16' v-for='item in detailInfo'>
<div class='flex items-center'> <div class='flex items-center'>
<div class='base-title'>张曼玉</div> <div class='base-title'>{{ item.residentName }}</div>
<div class='second-title plr-8'>24</div> <div class='second-title plr-8'>{{ item.age }}</div>
<div class='second-title plr-6'></div> <div class='second-title plr-6'>{{ item.genderName }}</div>
</div> </div>
<div class='mt-3 flex items-center'> <div class='mt-3 flex items-center'>
<div class='detail-left'> <div class='detail-left'>
身份证号 身份证号
</div> </div>
<div class='detail-right'> <div class='detail-right'>
3604211901****3128 {{ $idCardHide(item.idCard) }}
</div> </div>
</div> </div>
<div class='mt-3 flex items-center'> <div class='mt-3 flex items-center'>
...@@ -53,18 +45,12 @@ ...@@ -53,18 +45,12 @@
高血压高危 高血压高危
</div> </div>
</div> </div>
<div class='flex' style='align-items: baseline'> <div class='flex mt-3' style='align-items: baseline'>
<div class='detail-left' :style="{marginTop: item.diseaseList.length ? '0px': '12px'}"> <div class='detail-left'>
慢病标签 慢病标签
</div> </div>
<div class='detail-right' style='flex: 1'> <div class='detail-right' style='flex: 1'>
<div class='flex items-center ' <ChronicTag :list="item.chronicTagsArray"/>
style='flex-wrap: wrap;'>
<div v-for='item1 in item.diseaseList' :class='`mt-3 ill-tabs ill-tabs-${item1.id}`'>
{{ item1.name }}
</div>
</div>
</div> </div>
</div> </div>
<van-divider class='mt-3' /> <van-divider class='mt-3' />
...@@ -77,124 +63,92 @@ ...@@ -77,124 +63,92 @@
</div> </div>
</div> </div>
</div> </div>
<div class="text-center empty" v-if="!activeData.length">
<img src="@/assets/image/doctor/empty.png" alt="" style="width: 1.2rem;">
<p>暂无数据</p>
</div>
</div> </div>
</van-pull-refresh> </van-pull-refresh>
</div> </div>
</template> </template>
<script> <script>
import { showFailToast } from 'vant' import dayjs from 'dayjs'
import { getVisitAll } from '@/api/doctor/generalFU.js'
import ChronicTag from '@/doctor/components/chronicTag/ChronicTag.vue'
const tabList = [
{ title: '高血压', name: 1, num: 3 },
{ title: '糖尿病', name: 2, num: 3 },
{ title: '冠心病', name: 3, num: 3 },
{ title: '脑卒中', name: 4, num: 3 },
{ title: '慢阻肺', name: 5, num: 3 },
{ title: '慢性肾病', name: 6, num: 3 },
{ title: '血脂异常', name: 7, num: 3 }
]
export default { export default {
name: 'List', name: 'List',
components: {
ChronicTag
},
data() { data() {
return { return {
active: 1, active: 1,
tabList, tabList: [
loading: false, { title: '高血压', name: 1, num: 3 },
isLoading: false, { title: '糖尿病', name: 2, num: 3 },
detailInfo: [ { title: '冠心病', name: 3, num: 3 },
{ { title: '脑卒中', name: 4, num: 3 },
diseaseList: [ { title: '慢阻肺', name: 5, num: 3 },
{ id: 1, name: '高血压' }, { title: '慢性肾病', name: 6, num: 3 },
{ id: 2, name: '糖尿病' }, { title: '血脂异常', name: 7, num: 3 }
{ id: 3, name: '冠心病' },
{ id: 3, name: '脑卒中' },
{ id: 5, name: '慢阻肺' },
{ id: 6, name: '慢性肾病' },
{ id: 7, name: '血脂异常' }
]
},
{
diseaseList: [
{ id: 1, name: '高血压' },
{ id: 3, name: '冠心病' },
{ id: 5, name: '慢阻肺' }
]
},
{
diseaseList: [
{ id: 1, name: '高血压' },
{ id: 6, name: '慢性肾病' },
{ id: 7, name: '血脂异常' }
]
}
], ],
noDataShow: false, detailInfo: [],
param: { total: 0,
pageIndex: 0, // 下拉刷新
pageSize: 10 loading: false,
}, isRefreshDisable: false
isRefreshDisable: false,
scrollTop: 0
} }
}, },
watch: { computed: {
scrollTop(newval) { activeData() {
if (newval > 0) { return this.detailInfo.filter(e => e.diseaseType === this.active)
}
},
created() {
this.init()
},
mounted() {
const list = this.$refs.list
list.addEventListener('scroll', () => {
if (list.scrollTop > 0) {
this.isRefreshDisable = true this.isRefreshDisable = true
} else { } else {
this.isRefreshDisable = false this.isRefreshDisable = false
} }
}
},
mounted() {
this.$nextTick(() => {
const list = this.$refs.list
list.addEventListener('scroll', () => {
this.scrollTop = list.scrollTop
})
}) })
}, },
methods: { methods: {
onRefresh() { init() {
this.isLoading = true this.load()
this.loading = true
this.param.pageIndex = 1
this.getRecordInfo()
},
loadMore() {
this.loading = true
this.param.pageIndex += 1
this.getRecordInfo()
}, },
getRecordInfo(callBack) { load(loading = true) {
let par = { const nextVisitDateStart = dayjs().format('YYYY-MM-DD')
...this.param const nextVisitDateEnd = dayjs().add(6, 'day').format('YYYY-MM-DD')
const query = {
nextVisitDateStart,
nextVisitDateEnd
} }
getNetworkInfoByPhone(par).then(({ data = [] }) => { getVisitAll(query, loading).then(res => {
this.loading = false console.log('getVisitAll', res)
if (this.isLoading) { //刷新时先赋空 this.detailInfo = res.data || []
this.detailInfo = [] this.total = this.detailInfo.length
} }).finally(() => {
this.detailInfo = this.detailInfo.concat(data.data.dataList)
if (this.detailInfo.length == 0) {
this.noDataShow = true
} else {
this.noDataShow = false
}
if (data.data && data.data.length < this.param.pageSize) {
this.loadText = '暂无更多数据'
} else {
this.loading = false
}
this.isLoading = false
callBack && callBack()
}).catch(res => {
showFailToast('系统异常,请联系客服!')
this.loading = false this.loading = false
this.isLoading = false
}) })
}, },
scrollHandle(dom) {
if (!dom) return
if (dom.scrollTop > 0) {
this.isRefreshDisable = true
} else {
this.isRefreshDisable = false
}
},
onRefresh() {
this.load(false)
},
toGeneralDetail() { toGeneralDetail() {
this.$router.push({ this.$router.push({
path: `/doctor/followUp/generalFU/detail` path: `/doctor/followUp/generalFU/detail`
...@@ -204,6 +158,11 @@ export default { ...@@ -204,6 +158,11 @@ export default {
this.$router.push({ this.$router.push({
path: `/doctor/followUp/generalFU/add` path: `/doctor/followUp/generalFU/add`
}) })
},
toSearch() {
this.$router.push({
path: `/doctor/followUp/search`
})
} }
} }
} }
...@@ -258,53 +217,6 @@ export default { ...@@ -258,53 +217,6 @@ export default {
font-size: 14px; font-size: 14px;
} }
.ill-tabs {
line-height: 20px;
border-radius: 20px;
padding: 3px 8px 3px 8px;
}
.ill-tabs-1 {
background: #FFF2E8;
color: #F83B00;
}
.ill-tabs-2 {
margin-left: 2px;
background: #FFF1F0;
color: #F5222D;
}
.ill-tabs-3 {
margin-left: 2px;
background: #FFF0F7;
color: #F61E54;
}
.ill-tabs-4 {
margin-left: 2px;
background: #FFF7E6;
color: #D46B08;
}
.ill-tabs-5 {
margin-left: 2px;
background: #F4FFE6;
color: #A0BA01;
}
.ill-tabs-6 {
margin-left: 2px;
background: #ECEBFF;
color: #AA63E2;
}
.ill-tabs-7 {
margin-left: 2px;
background: #E6F9FF;
color: #4D86DA;
}
.word-right { .word-right {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
......
<template>
<div class='all-back'>
<van-pull-refresh v-model='isLoading'
success-text='刷新成功'
@refresh='onRefresh'
:disabled='isRefreshDisable'
>
<van-nav-bar title='慢病管理' left-text='' left-arrow>
<template #right>
<van-icon name='search' size='18' />
</template>
</van-nav-bar>
<div class='top-title'>
我的待随访(16)
</div>
<van-tabs v-model:active='active'>
<van-tab :title='item.title' :name='item.name' v-for='item in tabList'></van-tab>
</van-tabs>
<div
class='list-data'
v-infinite-scroll='loadMore'
:infinite-scroll-disabled='loading'
infinite-scroll-distance='10'
ref='list'
>
<div class='mt-10 white-back p-16' v-for='item in detailInfo'>
<div class='flex items-center'>
<div class='base-title'>张曼玉</div>
<div class='second-title plr-8'>24岁</div>
<div class='second-title plr-6'></div>
</div>
<div class='mt-3 flex items-center'>
<div class='detail-left'>
身份证号
</div>
<div class='detail-right'>
3604211901****3128
</div>
</div>
<div class='mt-3 flex items-center'>
<div class='detail-left'>
高危评估
</div>
<div class='detail-right'>
高危人群
</div>
</div>
<div class='mt-3 flex items-center'>
<div class='detail-left'>
专病高危评估
</div>
<div class='detail-right'>
高血压高危
</div>
</div>
<div class='flex' style='align-items: baseline'>
<div class='detail-left' :style="{marginTop: item.diseaseList.length ? '0px': '12px'}">
慢病标签
</div>
<div class='detail-right' style='flex: 1'>
<div class='flex items-center '
style='flex-wrap: wrap;'>
<div v-for='item1 in item.diseaseList' :class='`mt-3 ill-tabs ill-tabs-${item1.id}`'>
{{ item1.name }}
</div>
</div>
</div>
</div>
<van-divider class='mt-3' />
<div class='mt-3 flex word-right'>
<div></div>
<div>
<van-button round size='small' class='btn' @click='toGeneralDetail'>详情</van-button>
<van-button round size='small' class='btn' style='margin-left: 16px' @click='toAddGeneral'>通用随访
</van-button>
</div>
</div>
</div>
</div>
</van-pull-refresh>
</div>
</template>
<script>
import { showFailToast } from 'vant'
const tabList = [
{ title: '高血压', name: 1, num: 3 },
{ title: '糖尿病', name: 2, num: 3 },
{ title: '冠心病', name: 3, num: 3 },
{ title: '脑卒中', name: 4, num: 3 },
{ title: '慢阻肺', name: 5, num: 3 },
{ title: '慢性肾病', name: 6, num: 3 },
{ title: '血脂异常', name: 7, num: 3 }
]
export default {
name: 'List',
data() {
return {
active: 1,
tabList,
loading: false,
isLoading: false,
detailInfo: [
{
diseaseList: [
{ id: 1, name: '高血压' },
{ id: 2, name: '糖尿病' },
{ id: 3, name: '冠心病' },
{ id: 3, name: '脑卒中' },
{ id: 5, name: '慢阻肺' },
{ id: 6, name: '慢性肾病' },
{ id: 7, name: '血脂异常' }
]
},
{
diseaseList: [
{ id: 1, name: '高血压' },
{ id: 3, name: '冠心病' },
{ id: 5, name: '慢阻肺' }
]
},
{
diseaseList: [
{ id: 1, name: '高血压' },
{ id: 6, name: '慢性肾病' },
{ id: 7, name: '血脂异常' }
]
}
],
noDataShow: false,
param: {
pageIndex: 0,
pageSize: 10
},
isRefreshDisable: false,
scrollTop: 0
}
},
watch: {
scrollTop(newval) {
if (newval > 0) {
this.isRefreshDisable = true
} else {
this.isRefreshDisable = false
}
}
},
mounted() {
this.$nextTick(() => {
const list = this.$refs.list
list.addEventListener('scroll', () => {
this.scrollTop = list.scrollTop
})
})
},
methods: {
onRefresh() {
this.isLoading = true
this.loading = true
this.param.pageIndex = 1
this.getRecordInfo()
},
loadMore() {
this.loading = true
this.param.pageIndex += 1
this.getRecordInfo()
},
getRecordInfo(callBack) {
let par = {
...this.param
}
getNetworkInfoByPhone(par).then(({ data = [] }) => {
this.loading = false
if (this.isLoading) { //刷新时先赋空
this.detailInfo = []
}
this.detailInfo = this.detailInfo.concat(data.data.dataList)
if (this.detailInfo.length == 0) {
this.noDataShow = true
} else {
this.noDataShow = false
}
if (data.data && data.data.length < this.param.pageSize) {
this.loadText = '暂无更多数据'
} else {
this.loading = false
}
this.isLoading = false
callBack && callBack()
}).catch(res => {
showFailToast('系统异常,请联系客服!')
this.loading = false
this.isLoading = false
})
},
toGeneralDetail() {
this.$router.push({
path: `/doctor/followUp/generalFU/detail`
})
},
toAddGeneral() {
this.$router.push({
path: `/doctor/followUp/generalFU/add`
})
}
}
}
</script>
<style scoped lang='less'>
.all-back {
background: #F5F5F5;
.top-title {
padding: 10px 12px;
}
.white-back {
background: #FFFFFF;
}
.mt-10 {
margin-top: 10px;
}
.p-16 {
padding: 16px;
}
.plr-8 {
padding: 0px 8px;
}
.plr-6 {
padding: 0px 6px;
}
.base-title {
font-weight: bold;
font-size: 16px;
}
.second-title {
background: #F0F3FF;
line-height: 24px;
margin-left: 10px;
}
.detail-left {
width: 104px;
font-size: 14px;
color: #8C8C8C;
}
.detail-right {
font-size: 14px;
}
.ill-tabs {
line-height: 20px;
border-radius: 20px;
padding: 3px 8px 3px 8px;
}
.ill-tabs-1 {
background: #FFF2E8;
color: #F83B00;
}
.ill-tabs-2 {
margin-left: 2px;
background: #FFF1F0;
color: #F5222D;
}
.ill-tabs-3 {
margin-left: 2px;
background: #FFF0F7;
color: #F61E54;
}
.ill-tabs-4 {
margin-left: 2px;
background: #FFF7E6;
color: #D46B08;
}
.ill-tabs-5 {
margin-left: 2px;
background: #F4FFE6;
color: #A0BA01;
}
.ill-tabs-6 {
margin-left: 2px;
background: #ECEBFF;
color: #AA63E2;
}
.ill-tabs-7 {
margin-left: 2px;
background: #E6F9FF;
color: #4D86DA;
}
.word-right {
justify-content: space-between;
align-items: center;
}
.btn {
background: #F0F3FF;
color: #607FF0;
border: 0px;
line-height: 26px;
padding: 4px 8px 4px 8px;
}
.list-data {
height: calc(100vh - 140px);
overflow-y: auto;
}
}
:deep(.van-nav-bar .van-icon) {
color: #000000;
}
</style>
\ No newline at end of file
<template> <template>
<div class="flex flex-col pt-2 search"> <div class="flex flex-col pt-2 search">
<div class="flex items-center px-4 pb-1 shrink-0 top-bar"> <div class="flex items-center px-4 pb-1 shrink-0 top-bar">
<span class="shrink-0 pr-2 back-bt"> <span class="shrink-0 pr-2 back-bt" @click="toBack">
<doc-icon type="doc-left-1" style="color: #262626"/> <doc-icon type="doc-left-1" style="color: #262626"/>
</span> </span>
<div class="grow flex items-center px-2 input-box"> <div class="grow flex items-center px-2 mr-2 input-box">
<doc-icon type="doc-search" class="shrink-0" style="color: #595959"/> <doc-icon type="doc-search" class="shrink-0" style="color: #595959"/>
<van-field v-model="digit" type="digit" placeholder="请输入身份证号查询" /> <van-field v-model="idCard" type="digit" placeholder="请输入身份证号查询"
autocomplete="off"
clearable
@clear="idCardClear"
ref="idCardField"/>
<doc-icon type="doc-camera" class="shrink-0 mr-3" style="color: #575B66"/> <doc-icon type="doc-camera" class="shrink-0 mr-3" style="color: #575B66"/>
<van-button type="primary" size="mini" class="shrink-0" @click="search">搜 索</van-button>
</div> </div>
<span class="text-16 shrink-0 text-primary" @click="search">
搜索
</span>
</div> </div>
<div class="grow px-4 overflow-y-auto"> <div class="grow px-4 overflow-y-auto">
<div class="pt-3" v-if="state === 1"> <div class="pt-3" v-if="state === 1">
<div class="flex justify-between items-end pt-2 pb-1"> <div class="flex justify-between items-end pt-2 pb-1">
<span class="text-16 font-semibold">搜索历史</span> <span class="text-16 font-semibold">搜索历史</span>
<span class="flex items-center"> <span class="flex items-center"
@click="clearHistory">
<doc-icon type="doc-delete" style="color: #8c8c8c"/> <doc-icon type="doc-delete" style="color: #8c8c8c"/>
<span class="ml-1" style="color: #595959">清除历史</span> <span class="ml-1" style="color: #595959">清除历史</span>
</span> </span>
</div> </div>
<div class="flex flex-wrap mt-4 history-list"> <div class="flex flex-wrap mt-4 history-list">
<span>152525*******47541</span> <span v-for="item in history" :key="item"
<span>152525*******47541</span> @click="toSearch(item)">{{ $idCardHide(item) }}</span>
<span>152525*******47541</span>
<span>152525*******47541</span>
</div> </div>
</div> </div>
<div class="pt-2" v-if="state === 2"> <div class="pt-2" v-if="state === 2">
<div class="text-12" style="color: #8c8c8c">查找结果:</div> <div class="text-12" style="color: #8c8c8c">查找结果:</div>
<div class="card"
v-if="result.chronicTagsArrayName || result.firstScreenResult || result.highTagsArray">
<div class="py-3">
<span class="text-16 font-semibold mr-3">{{ result.residentName }}</span>
<span class="text-12 mr-3">{{ result.currentAge || '-' }}</span>
<span class="text-12">{{ result.genderName }}</span>
</div>
<div class="mb-2">
<span class="label">身份证号</span>
<span>{{ $idCardHide(result.idCard) }}</span>
</div>
<div class="mb-2">
<span class="label">高危评估</span>
<span>{{ result.firstScreenResultName || '-' }}</span>
</div>
<div class="flex mb-2">
<span class="shrink-0 label">专病高危评估</span>
<span>{{ result.highTagsArrayName || '-' }}</span>
</div>
<div class="flex mb-2">
<span class="shrink-0 label">慢病标签</span>
<ChronicTag :list="result.chronicTagsArray"/>
<!-- <span>{{ result.chronicTagsArrayName }}</span> -->
</div>
<div class="text-12 tip">
<div style="color: #A5AEBE;" >提示:</div>
<div style="color: #768092;">如需为居民进行 慢病诊断筛查 ,请在医生PC端进行操作</div>
</div>
<div class="text-center mt-5">
<van-button round type="primary" class="detail-bt" @click="toDetail">详情</van-button>
</div>
</div>
<div class="card" v-else-if="!!result.id">
<div class="py-3">
<span class="text-16 font-semibold mr-3">{{ result.residentName }}</span>
<span class="text-12 mr-3">{{ result.currentAge || '-' }}</span>
<span class="text-12">{{ result.genderName }}</span>
</div>
<div class="mb-2">
<span class="label">身份证号</span>
<span>{{ $idCardHide(result.idCard) }}</span>
</div>
<div class="text-12 tip">
<div style="color: #A5AEBE;" >提示:</div>
<div style="color: #768092;">如需为居民进行 慢病诊断筛查 ,请在医生PC端进行操作</div>
</div>
</div>
<div class="text-center empty" v-else>
<img src="@/assets/image/doctor/empty.png" alt="" style="width: 1.2rem;">
<p>暂无数据</p>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getResidentByPage } from '@/api/doctor/generalFU.js'
import { validateIdCard } from '@/utils/commonReg.js'
import { setLocalStorage, getLocalStorage } from '@/utils/common.js'
import { showFailToast } from 'vant'
import ChronicTag from '@/doctor/components/chronicTag/ChronicTag.vue'
export default { export default {
components: {
ChronicTag
},
data() { data() {
return { return {
state: 2 // 查询使用
idCard: undefined,
// 历史记录
history: [],
result: {},
state: 1
} }
}, },
computed: {
historyKey() {
return 'search-history'
},
},
created() {
this.history = getLocalStorage(this.historyKey) || []
},
methods: { methods: {
search() { search() {
if (!this.idCard) return
if (!validateIdCard(this.idCard)) {
showFailToast('请输入正确的身份证号')
return
}
const query = {
idCard: this.idCard,
pageIndex: 1,
pageSize: 10
}
getResidentByPage(query).then(res => {
const result = res?.data?.dataList || []
this.result = result[0] || {}
this.setHistory()
}).finally(() => {
this.state = 2
})
},
toSearch(idCard) {
this.idCard = idCard
this.search()
},
toDetail() {
},
toBack() {
this.$router.back()
},
idCardClear() {
this.state = 1
},
setHistory() {
const history = getLocalStorage(this.historyKey) || []
const index = history.findIndex(e => e === this.idCard)
if (index > -1) {
history.splice(index, 1)
}
history.unshift(this.idCard)
if (history.length > 8) {
history.pop()
}
this.history = history
setLocalStorage(this.historyKey, history)
},
clearHistory() {
setLocalStorage(this.historyKey, [])
this.history = []
} }
} }
} }
...@@ -77,11 +204,6 @@ export default { ...@@ -77,11 +204,6 @@ export default {
display: none; display: none;
} }
} }
.van-button {
font-size: 14px;
line-height: 20px;
padding: 0 8px;
}
} }
} }
.history-list { .history-list {
...@@ -92,4 +214,24 @@ export default { ...@@ -92,4 +214,24 @@ export default {
padding: 2px 12px; padding: 2px 12px;
} }
} }
.card {
line-height: 1.2;
.label {
display: inline-block;
color: #8C8C8C;
min-width: 8em;
}
.tip {
background-color: #F8FAFC;
padding: 8px 10px;
line-height: 1.5;
}
.detail-bt {
color: #607FF0;
background-color: #F0F3FF;
border: 0;
width: 50%;
height: 32px;
}
}
</style> </style>
...@@ -23,9 +23,9 @@ export default { ...@@ -23,9 +23,9 @@ export default {
buttonPrimaryBackground: '#54CCBD', buttonPrimaryBackground: '#54CCBD',
buttonPrimaryBorderColor: '#54CCBD', buttonPrimaryBorderColor: '#54CCBD',
buttonDefaultBorderColor: '#BFBFBF', buttonDefaultBorderColor: '#BFBFBF',
buttonNormalFontSize: '16px', buttonNormalFontSize: '.16rem',
// 表单相关 // 表单相关
cellVerticalPadding: '15px', cellVerticalPadding: '.15rem',
cellTextColor: '#262626', cellTextColor: '#262626',
cellBorderColor: '#d9d9d9' cellBorderColor: '#d9d9d9'
} }
......
...@@ -3,7 +3,7 @@ import { validateIdCard } from './commonReg.js' ...@@ -3,7 +3,7 @@ import { validateIdCard } from './commonReg.js'
// sessionStorage 保存 获取 // sessionStorage 保存 获取
export function setSessionStorage(key, data) { export function setSessionStorage(key, data) {
if (!key || !data) { if (!key || data == null) {
return return
} }
if (typeof data === 'object') { if (typeof data === 'object') {
...@@ -25,6 +25,29 @@ export function getSessionStorage(key) { ...@@ -25,6 +25,29 @@ export function getSessionStorage(key) {
} }
} }
// localStorage 保存 获取
export function setLocalStorage(key, data) {
if (!key || data == null) {
return
}
if (typeof data === 'object') {
localStorage.setItem(key, JSON.stringify(data))
return
}
localStorage.setItem(key, data)
}
export function getLocalStorage(key) {
if (!key) {
return ''
}
let result = localStorage.getItem(key) || ''
if (!result) {
return result
}
return JSON.parse(result)
}
/** /**
* 请求参数处理 * 请求参数处理
* @param {Object} source 原数据 * @param {Object} source 原数据
......
...@@ -29,6 +29,14 @@ module.exports = defineConfig({ ...@@ -29,6 +29,14 @@ module.exports = defineConfig({
'^/tumour-admin': '/tumour-admin' '^/tumour-admin': '/tumour-admin'
} }
}, },
'/chronic-admin': {
// target: 'https://beta-tumour.zmnyjk.com',
target: 'http://192.168.1.26:8900',
changOrigin: true,
pathRewrite: {
'^/chronic-admin': '/'
}
},
'/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',
......
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