<template> <!-- 慢特病随访--> <div class="h-full overflow-y-auto general-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" @click="toDetail(item)" class="flex flex-col py-3 px-4 mb-3 doc-list-card" style="row-gap: .04rem;line-height: 1.5;"> <div> <span class="label">随访日期</span> <span>{{ item.visitDate }}</span> </div> <div class="flex"> <span class="label shrink-0">医保目录代码</span> <span class="grow text-wrap">{{ item.medicalDirectoryCode || '-' }}</span> </div> <div> <span class="label">随访方式</span> <span>{{ item.visitWayName || '-' }}</span> </div> <div> <span class="label">是否县城外购药</span> <span>{{ item.isPurchaseMedicineAbroadName || '-' }}</span> </div> <div> <span class="label">随访医生</span> <span>{{ item.visitDoctorName || '-' }}</span> </div> <div> <span class="label">随访科室</span> <span>{{ item.visitOfficeName || '-' }}</span> </div> <div class="text-ellipsis"> <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.stop="toDetail(item)">详情</van-button> <van-button round size="small" class="doc-btn-primary" @click.stop="editBtn(item)" v-if="item.allowUpdate == 1">修改</van-button> <van-button round size="small" class="doc-btn-red" @click.stop="delBtn(item)" v-if="item.allowDelete ==1">删除</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 { delSlowSpecialById, fetchSlowSpecialList } from '@/api/doctor/slowSpecial' import { useStore } from '@/doctor/store' import { showConfirmDialog } from 'vant' export default { name: 'SlowSpecialVisitList', inject: ['residentInfo'], data() { return { store: useStore(), list: [], 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 = { residentInfoId: this.residentInfoId } fetchSlowSpecialList(query, loading).then(res => { this.list = res.data || [] this.finished = true }).finally(() => { this.loading = false this.loadingRefresh = false }) }, onMore() { this.load(false) }, onRefresh() { this.load(false) }, toDetail(record) { if (!record) return if (record.id == null) { this.$message.info('暂时无法查看 详情信息') return } this.$router.push({ path: '/doctor/followUp/slowSpecialFU/detail', query: { id: record.id, } }) }, editBtn(record) { this.$router.push({ path: '/doctor/followUp/slowSpecialFU/add', query: { residentInfoId: this.residentInfoId, id:record.id } }) }, delBtn(record) { showConfirmDialog({ message: '确定要删除吗?' }).then(() => { delSlowSpecialById({ id: record.id }).then(res => { setTimeout(() => { this.$message.info('删除成功') }, 600) this.list = this.list.filter(e => e.id !== record.id) }) }).catch((err) => { console.warn('delSlowSpecialBtn', err) }) }, }, watch: { 'store.refreshMark'() { this.onRefresh() } } } </script> <style lang="less" scoped> </style>