Commit 47777823 authored by songrui's avatar songrui

随访列表

parent 4c1ff71f
...@@ -51,7 +51,7 @@ export default { ...@@ -51,7 +51,7 @@ export default {
let token = getQueryVariable('token') let token = getQueryVariable('token')
if (!token) { if (!token) {
// token = sessionStorage.getItem('token') // token = sessionStorage.getItem('token')
token = '842c7b77-9f98-43b7-bfe4-909d22472904' token = '83cc8934-c543-45cd-a3fd-364cf6f9739d'
} }
if (token) { if (token) {
sessionStorage.setItem('token', token) sessionStorage.setItem('token', token)
......
<template> <template>
<div class="h-full flex flex-col"> <div class="h-full flex flex-col">
<van-nav-bar title='居民详情' left-text='' left-arrow class="shrink-0"></van-nav-bar> <van-nav-bar title='居民详情' left-text='' left-arrow class="shrink-0"
@click-left="toBack"></van-nav-bar>
<div class="flex shrink-0 justify-center pb-1"> <div class="flex shrink-0 justify-center pb-1">
<van-tabs v-model:active='activeTab' class="w-1/2 top-tabs" <van-tabs v-model:active='activeTab' class="w-1/2 top-tabs"
@change="tabChange"> @change="tabChange">
...@@ -8,7 +9,7 @@ ...@@ -8,7 +9,7 @@
:title='item.title' :name='item.name'></van-tab> :title='item.title' :name='item.name'></van-tab>
</van-tabs> </van-tabs>
</div> </div>
<div class="grow" style="background-color: #f5f5f5;"> <div class="grow" style="background-color: #f5f5f5;min-height: 0;">
<router-view v-slot='{ Component }'> <router-view v-slot='{ Component }'>
<Transition name='route' mode='out-in'> <Transition name='route' mode='out-in'>
<component :is='Component' /> <component :is='Component' />
...@@ -47,6 +48,7 @@ export default { ...@@ -47,6 +48,7 @@ export default {
}, },
created() { created() {
this.residentId = this.routeQuery.residentId this.residentId = this.routeQuery.residentId
this.init()
if (!this.residentId) { if (!this.residentId) {
showNotify({ type: 'warning', message: '未获取到医生信息', duration: 0 }) showNotify({ type: 'warning', message: '未获取到医生信息', duration: 0 })
return return
...@@ -54,6 +56,13 @@ export default { ...@@ -54,6 +56,13 @@ export default {
this.load() this.load()
}, },
methods: { methods: {
init() {
if (this.$route.name === 'doctor-resident-visit') {
this.activeTab = 'visit'
} else if (this.$route.name === 'doctor-resident-base') {
this.activeTab = 'base'
}
},
tabChange() { tabChange() {
console.log(this.activeTab) console.log(this.activeTab)
const item = this.tabList.find(e => e.name === this.activeTab) const item = this.tabList.find(e => e.name === this.activeTab)
...@@ -71,6 +80,9 @@ export default { ...@@ -71,6 +80,9 @@ export default {
this.baseInfo = res.data || {} this.baseInfo = res.data || {}
}) })
}, },
toBack() {
this.$router.go(-1)
}
} }
} }
</script> </script>
......
<template> <template>
<div class="visit"> <div class="h-full flex flex-col visit">
<van-tabs v-model:active='activeTab' <van-tabs v-model:active='activeTab' class="shrink-0" v-if="tabList.length"
@change="tabChange"> @change="tabChange">
<van-tab v-for='item in tabList' :key="item.name" <van-tab v-for='item in tabList' :key="item.name"
:title='item.title' :name='item.name'></van-tab> :title='item.title' :name='item.name'></van-tab>
</van-tabs> </van-tabs>
<div class="card-list" v-if="list.length">
<div v-for='item in list' :key="item.id" class="p-4 mt-3 card"> <div class="grow overflow-y-auto card-list" v-if="baseInfo.id && list.length">
<div class='flex items-center'> <van-list
<div class='detail-left'> v-model:loading="loading"
随访日期 :finished="finished"
</div> finished-text="没有更多了"
<div class='detail-right'> @load="onMore"
{{ item.serveDate }} >
</div> <div v-for='item in list' :key="item.id" class="p-4 mt-3 card">
</div> <div class='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'> {{ item.serveDate }}
{{ item.serveDoctorName }} </div>
</div>
</div>
<div class='mt-3 flex items-center'>
<div class='detail-left'>
随访方式
</div> </div>
<div class='detail-right'> <div class='mt-3 flex items-center'>
{{ item.serveTypeName }} <div class='detail-left'>
随访医生
</div>
<div class='detail-right'>
{{ item.serveDoctorName }}
</div>
</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 class='detail-right'>
{{ item.serveTypeName }}
</div>
</div> </div>
<div class='detail-right'> <div class='mt-3 flex items-center'>
{{ item.serveUnitName }} <div class='detail-left'>
随访机构
</div>
<div class='detail-right'>
{{ item.serveUnitName }}
</div>
</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 class='detail-right'>
{{ item.nextVisitDate }}
</div>
</div> </div>
<div class='detail-right'>
{{ item.nextVisitDate }}
</div>
</div>
<van-divider class='mt-3' /> <van-divider class='mt-3' />
<div class="flex justify-end">
<van-button round type="primary" class="card-bt" style="margin-right: .12rem"
@click="editBtn(item)">修改</van-button>
<van-button round type="primary" class="card-bt" @click="delBtn(item)">删除</van-button>
</div>
<div class="flex justify-end"> <span class="px-3 float-bt">
<van-button round type="primary" class="card-bt" @click="toEdit(item)">修改</van-button> 通用随访
<van-button round type="primary" class="ml-3 card-bt" @click="toDel(item)">删除</van-button> </span>
</div> </div>
</div> </van-list>
</div> </div>
<div class="text-center empty" v-else> <div class="text-center shrink-0 empty" v-else>
<img src="@/assets/image/doctor/empty.png" alt="" style="width: 1.2rem;"> <img src="@/assets/image/doctor/empty.png" alt="" style="width: 1.2rem;">
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
<div class="p-3 floor">
<van-button round block type="primary" class="card-bt" @click="addBtn">新增通用随访</van-button>
</div>
</div> </div>
</template> </template>
<script> <script>
import { queryVisitByPage } from '@/api/doctor/resident.js' import { queryVisitByPage } from '@/api/doctor/resident.js'
import { showConfirmDialog } from 'vant'
export default { export default {
data() { data() {
...@@ -76,6 +94,8 @@ export default { ...@@ -76,6 +94,8 @@ export default {
pageIndex: 1, pageIndex: 1,
pageSize: 10 pageSize: 10
}, },
loading: false,
finished: false
} }
}, },
inject: ['getBaseInfo'], inject: ['getBaseInfo'],
...@@ -100,7 +120,7 @@ export default { ...@@ -100,7 +120,7 @@ export default {
return list.filter(e => this.chronicTagsArray.includes(e.code)) return list.filter(e => this.chronicTagsArray.includes(e.code))
} }
}, },
created() { mounted() {
this.init() this.init()
}, },
methods: { methods: {
...@@ -112,9 +132,25 @@ export default { ...@@ -112,9 +132,25 @@ export default {
pageIndex: this.pagination.pageIndex, pageIndex: this.pagination.pageIndex,
pageSize: this.pagination.pageSize, pageSize: this.pagination.pageSize,
} }
queryVisitByPage(query).then(res => { queryVisitByPage(query, true).then(res => {
this.list = res.data.dataList || [] this.list = res.data.dataList || []
this.pagination.total = res.data.total || 0 this.pagination.total = res.data.total || 0
this.finished = this.list.length >= this.pagination.total
})
},
onMore() {
this.pagination.pageIndex++
const query = {
residentInfoId: this.baseInfo.residentInfoId,
serveTypeList: [5, 6, 7, 8, 9, 10, 11, 12, 14],
diseaseType: this.activeTab,
pageIndex: this.pagination.pageIndex,
pageSize: this.pagination.pageSize,
}
queryVisitByPage(query, false).then(res => {
this.pagination.total = res.data.total || 0
this.list = this.list.concat(res.data.dataList || [])
this.finished = this.list.length >= this.pagination.total
}) })
}, },
init() { init() {
...@@ -125,20 +161,35 @@ export default { ...@@ -125,20 +161,35 @@ export default {
} }
}, },
tabChange() { tabChange() {
this.load()
}, },
toEdit(item) { addBtn() {
}, },
toDel(item) { editBtn(item) {
},
delBtn(item) {
showConfirmDialog({
title: '提示',
message: '确认删除该随访记录吗?确认后将无法查看该随访信息'
}).then(() => {
// on confirm
})
.catch(() => {
// on cancel
})
} }
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.card-list {
padding-bottom: 76px;
}
.card { .card {
position: relative;
background-color: #fff; background-color: #fff;
.detail-left { .detail-left {
width: 8em; width: 8em;
...@@ -151,5 +202,22 @@ export default { ...@@ -151,5 +202,22 @@ export default {
border: 0; border: 0;
height: 26px; height: 26px;
} }
.float-bt {
position: absolute;
top: 10px;
right: 0;
background-color: var(--van-primary-color);
color: #fff;
border-top-left-radius: 40px;
border-bottom-left-radius: 40px;
height: 26px;
line-height: 26px;
}
}
.floor {
position: fixed;
bottom: 0;
left: 0;
right: 0;
} }
</style> </style>
import 'vant/es/toast/style/index' import 'vant/es/toast/style/index'
import 'vant/es/notify/style/index' import 'vant/es/notify/style/index'
import 'vant/es/dialog/style/index'
// 自定义svg 图标组件 // 自定义svg 图标组件
import DocIcon from '@/components/docIcon/index' import DocIcon from '@/components/docIcon/index'
......
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