<template> <div class="h-full disease-visit" 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 class="flex flex-col gap-y-2.5 py-3 px-4 mb-3 doc-list-card" v-for='item in list' :key="item.id" @click="toDetail(item)"> <div> <span class="label">服务类型</span> <span>{{ item.serveTypeName || '-' }}</span> </div> <div> <span class="label">随访日期</span> <span>{{ item.serveDate }}</span> </div> <div> <span class="label">随访分类</span> <span>{{ item.visitTypeName || '-' }}</span> </div> <div v-if="item.patientNo"> <span class="label">就诊号</span> <span>{{ item.patientNo || '-' }}</span> </div> <div class="text-ellipsis" v-if="item.diagnose"> <span class="label">诊断</span> <span>{{ item.diagnose || '-' }}</span> </div> <div v-if="item.bloodPressure"> <span class="label">血压</span> <span>{{ item.bloodPressure || '-' }}</span> </div> <div> <span class="label">数据来源</span> <span>{{ item.sourceName || '-' }}</span> </div> <div> <span class="label">随访医生</span> <span>{{ item.serveDoctorName || '-' }}</span> </div> <div class="text-ellipsis"> <span class="label">随访机构</span> <span>{{ item.serveUnitName || '-' }}</span> </div> <div class="divider" v-if="item.serveType == 5"></div> <div class="bt-group" v-if="item.serveType == 5"> <van-button round size="small" class="doc-btn-primary" @click="toDetail(item)">详情</van-button> <!-- <van-button round size="small" class="doc-btn-primary" v-if="item.allowUpdate == 1">转诊</van-button> <van-button round size="small" class="doc-btn-primary" @click='editBtn(item)' v-if="!(item.allowUpdate !==1 || item.serveType == 5)">修改</van-button> <van-button round size="small" class="doc-btn-red" @click="delBtn(item)" v-if="!(item.allowUpdate !==1 || item.serveType == 5)">删除</van-button> --> </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> import { getVisitManageList } from '@/api/doctor/disease.js' import { useStore } from '@/doctor/store' export default { inject: ['residentInfo'], props: { diseaseType: Number }, data() { return { store: useStore(), 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, diseaseType: this.diseaseType, } getVisitManageList(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(false) }, toDetail(record) { if (!record) return if (record.id == null) { showToast('暂时无法查看 详情信息') return } if (record.serveType === 5) { // 通用随访 this.$router.push({ path: '/doctor/followUp/generalFU/detail', query: { relationId: record.relationId } }) } }, editBtn() { }, delBtn() { } }, watch: { diseaseType() { this.list = [] this.load() }, 'store.refreshMark'() { this.onRefresh() } } } </script> <style lang="less" scoped> </style>