List.vue 3.47 KB
<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>