Commit 8861fdc2 authored by gengchunlei's avatar gengchunlei

Merge branch 'chronic-dev' of http://gitlab.yiboshi.com/nightkis1995/frontend-h5 into chronic-dev

parents 486a011c 33a8d3eb
import {fetchBase} from '@/api/doctor/doctorFetch'
//查初筛和复筛列表
export function getScreenAllList(residentInfoId) {
return fetchBase({ url: `/chronic-admin/v1/chronic-screening-record/screen-list`,body:{residentInfoId},loading: true})
}
\ No newline at end of file
import {fetchBase} from '@/api/doctor/doctorFetch'
//获取高危随访列表v1.2
export function getHighVisitList(params, loading) {
return fetchBase({ url: `/chronic-admin/v1/chronic-high-visit-collect/page`, body: params, loading})
}
\ No newline at end of file
......@@ -57,7 +57,7 @@
<van-tab v-for="item in tabList" :key="item.id"
:title="item.name"></van-tab>
</van-tabs>
<div class="grow py-3 px-2" style="min-height: 0px;">
<div class="grow py-3 px-2" style="min-height: 0px;" v-if="residentInfo.id">
<ScreeningList v-if="activeTabItem.id === 'SCREENING'"/>
</div>
</div>
......@@ -86,6 +86,11 @@ export default {
activeTab: 0
}
},
provide() {
return {
residentInfo: () => this.residentInfo
}
},
computed: {
residentInfoId() {
return this.$route.query.residentInfoId
......
......@@ -5,11 +5,11 @@
<van-tab title="筛查记录"></van-tab>
<van-tab title="随访记录"></van-tab>
</van-tabs>
<div class="grow py-3 overflow-y-auto">
<div class="pt-3"></div>
<div class="grow pb-3 overflow-y-auto">
<ScreenRecordList v-if="activeTab == 0"/>
<VisitList v-else-if="activeTab == 1"/>
</div>
</div>
</template>
......@@ -31,5 +31,28 @@ export default {
</script>
<style lang="less" scoped>
// 通用随访card
:deep(.general-card) {
border-radius: 12px;
background: linear-gradient(to bottom, #FFC9D3, #FFE9E9);
.title {
color: #8E2A4A;
}
}
// 初筛 主要慢病
:deep(.first-card) {
border-radius: 12px;
background: linear-gradient(to bottom, #FFD8BC, #FFF0E9);
.title {
color: #8E562A;
}
}
// 复筛 专病高危
:deep(.second-card) {
border-radius: 12px;
background: linear-gradient(to bottom, #B3F5F7, #FFFFE9);
.title {
color: #2A8E75;
}
}
</style>
<template>
<div class="record-list" style="height: 900px">
筛查记录
<div class="record-list">
<div v-for="item in firstScreenList" :key="item.id"
class="first-card mb-3">
<div class="title px-4 py-1">主要慢病筛查记录</div>
<div class="flex flex-col gap-y-2.5 py-3 px-4 doc-list-card">
<div>
<span class="label">高危评估</span>
<span>{{ item.screenResultName }}</span>
</div>
<div>
<span class="label">筛查日期</span>
<span>{{ item.screenDate }}</span>
</div>
<div>
<span class="label">筛查单位</span>
<span>{{ item.screenUnitName }}</span>
</div>
<div>
<span class="label">筛查科室</span>
<span>{{ item.screenOfficeName }}</span>
</div>
<div>
<span class="label">筛查医生</span>
<span>{{ item.screenDoctorName }}</span>
</div>
<div>
<span class="label">数据来源</span>
<span>{{ item.sourceName }}</span>
</div>
<div>
<span class="label">创建时间</span>
<span>{{ item.created }}</span>
</div>
</div>
</div>
<div v-for="item in secondScreenList" :key="item.id"
class="second-card mb-3">
<div class="title px-4 py-1">专病筛查记录</div>
<div class="flex flex-col gap-y-2.5 py-3 px-4 doc-list-card">
<div class="text-ellipsis">
<span class="label">高危评估</span>
<span>{{ item.specialScreenResultName }}</span>
</div>
<div>
<span class="label">筛查日期</span>
<span>{{ item.screenDate }}</span>
</div>
<div>
<span class="label">筛查单位</span>
<span>{{ item.screenUnitName }}</span>
</div>
<div>
<span class="label">筛查科室</span>
<span>{{ item.screenOfficeName }}</span>
</div>
<div>
<span class="label">筛查医生</span>
<span>{{ item.screenDoctorName }}</span>
</div>
<div>
<span class="label">数据来源</span>
<span>{{ item.sourceName }}</span>
</div>
<div>
<span class="label">创建时间</span>
<span>{{ item.created }}</span>
</div>
</div>
</div>
<div class='text-center shrink-0 empty' v-if='!firstScreenList.length && !secondScreenList.length'>
<img src='@/assets/image/doctor/empty.png' alt='' style='width: 1.2rem;'>
<p>暂无数据</p>
</div>
</div>
</template>
<script>
export default {
import { getScreenAllList } from '@/api/doctor/screening.js'
export default {
inject: ['residentInfo'],
data() {
return {
firstScreenList: [],
secondScreenList: []
}
},
computed: {
residentInfoId() {
return this.residentInfo().residentInfoId
}
},
created() {
this.load()
},
methods: {
load() {
getScreenAllList(this.residentInfoId).then(res => {
const result = res.data || {}
this.firstScreenList = result.firstScreenList || []
this.secondScreenList = result.secondScreenList || []
})
}
}
}
</script>
......
<template>
<div class="visit-list" style="height: 900px">
随访记录
<div class="h-full visit-list" ref='list'>
<van-pull-refresh v-model='loadingRefresh' @refresh='onRefresh'
:disabled='isRefreshDisable' style="min-height: 100%">
<van-list
v-model:loading='loading'
:finished='finished'
:finished-text="list.length ? '没有更多了' : ''"
:immediate-check='false'
@load='onMore'
>
<div class="flex flex-col">
<div v-for='item in list' :key="item.id"
:class="['mb-3', {'first-card': item.serveType == 1},
{'second-card': item.serveType == 2},
{'general-card': item.serveType == 3}]">
<div class="title px-4 py-1">{{item.serveTypeName}}</div>
<div class="flex flex-col gap-y-2.5 py-3 px-4 doc-list-card">
<div>
<span class="label">随访日期</span>
<span>{{ item.visitDate }}</span>
</div>
<div>
<span class="label">随访类型</span>
<span>{{ item.visitTypeName || '-' }}</span>
</div>
<div>
<span class="label">随访方式</span>
<span>{{ item.visitWayName || '-' }}</span>
</div>
<div>
<span class="label">随访医生</span>
<span>{{ item.visitDoctorName || '-' }}</span>
</div>
<div>
<span class="label">随访机构</span>
<span>{{ item.visitUnitName || '-' }}</span>
</div>
<!-- <div class="divider"></div>
<div class="bt-group">
<van-button round size="small" class="doc-btn-primary" @click="toDetail(item)">详情</van-button>
</div> -->
</div>
</div>
</div>
</van-list>
<div class='text-center shrink-0 empty' v-if='!list.length'>
<img src='@/assets/image/doctor/empty.png' alt='' style='width: 1.2rem;'>
<p>暂无数据</p>
</div>
</van-pull-refresh>
</div>
</template>
<script>
export default {
import { getHighVisitList } from '@/api/doctor/visit.js'
export default {
inject: ['residentInfo'],
data() {
return {
list: [],
pagination: {
total: 0,
pageIndex: 1,
pageSize: 8
},
loading: false,
finished: false,
loadingRefresh: false,
isRefreshDisable: false
}
},
computed: {
residentInfoId() {
return this.residentInfo().residentInfoId
}
},
created() {
this.load()
},
mounted() {
const list = this.$refs.list
list.addEventListener('scroll', () => {
if (list.scrollTop > 0) {
this.isRefreshDisable = true
} else {
this.isRefreshDisable = false
}
})
},
methods: {
load(loading = true) {
const query = {
pageIndex: this.pagination.pageIndex,
pageSize: this.pagination.pageSize,
residentInfoId: this.residentInfoId
}
getHighVisitList(query, loading).then(res => {
if (this.pagination.pageIndex === 1) {
this.list = []
}
this.list = this.list.concat(res.data.dataList || [])
this.pagination.total = res.data.total || 0
this.finished = this.list.length >= this.pagination.total
}).finally(() => {
this.loading = false
this.loadingRefresh = false
})
},
onMore() {
this.pagination.pageIndex++
this.load(false)
},
onRefresh() {
this.pagination.pageIndex = 1
this.load()
},
toDetail(record) {
if (!record) return
if (record.id == null) {
showToast('暂时无法查看 详情信息')
return
}
// this.$router.push({
// path: '/doctor/patient-detail',
// query: {
// residentInfoId: record.residentInfoId
// }
// })
}
}
}
</script>
......
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