<template> <div class="h-full overflow-y-auto general-list" ref='list'> <van-pull-refresh v-model='loadingRefresh' @refresh='onRefresh' :disabled='isRefreshDisable'> <div class="flex flex-col"> <div v-for='item in list' :key="item.id" class="flex flex-col gap-y-2.5 py-3 px-4 mb-3 doc-list-card"> <div> <span class="label">创建时间</span> <span>{{ item.addTime || '-' }}</span> </div> <div> <span class="label">期望会诊日期</span> <span>{{ item.booksDate || '-' }}</span> </div> <div> <span class="label">会诊方式</span> <span>{{ item.rcWayName || '-' }}</span> </div> <div class="text-ellipsis"> <span class="label">申请单位</span> <span>{{ item.applyHosName || '-' }}</span> </div> <div> <span class="label">申请医生</span> <span>{{ item.applyDoctName || '-' }}</span> </div> <div> <span class="label">来源</span> <span>{{ item.systemName || '-' }}</span> </div> <div> <span class="label">状态</span> <span>{{ item.applyStatusName || '-' }}</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> </van-pull-refresh> <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> </div> </template> <script> import { getConsultationList } from '@/api/doctor/resident.js' export default { inject: ['residentInfo'], data() { return { list: [], loadingRefresh: false, isRefreshDisable: false } }, computed: { idCard() { return this.residentInfo().idCard } }, 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 = { idCard: this.idCard } getConsultationList(query, loading).then(res => { this.list = res.data || [] }).finally(() => { this.loadingRefresh = false }) }, onRefresh() { this.load(false) }, toDetail(record) { if (!record) return if (record.id == null) { this.$message.info('暂时无法查看 详情信息') return } } } } </script> <style lang="less" scoped> </style>