<template> <div class="record-list" ref="list"> <van-pull-refresh v-model='loadingRefresh' @refresh='onRefresh' :disabled='isRefreshDisable'> <div v-for="item in firstScreenList" :key="item.id" class="first-card mb-3"> <div class="title px-4 py-1">主要慢病筛查记录</div> <div class="py-3 px-4 doc-list-card"> <div class="flex flex-col" style="row-gap: .04rem;line-height: 1.5;" @click="toFirstDetail(item)"> <div class="flex"> <span class="label shrink-0">高危评估</span> <span class="grow">{{ item.screenResultName }}</span> </div> <div> <span class="label">筛查日期</span> <span>{{ item.screenDate }}</span> </div> <div class="text-ellipsis"> <span class="label">筛查单位</span> <span>{{ item.screenUnitName }}</span> </div> <div class="text-ellipsis"> <span class="label">筛查科室</span> <span>{{ item.screenOfficeName }}</span> </div> <div> <span class="label">筛查医生</span> <span>{{ item.screenDoctorName }}</span> </div> <div> <span class="label">数据来源</span> <span>{{ item.sourceName }}</span> </div> <div> <span class="label">创建时间</span> <span>{{ item.created }}</span> </div> </div> <div class="divider my-3"></div> <div class="bt-group"> <van-button round size="small" class="doc-btn-primary" @click="toFirstDetail(item)">详情</van-button> <van-button round size="small" class="doc-btn-primary" @click="editFirstBtn(item)" v-if="item.allowUpdate == 1">修改</van-button> <van-button round size="small" class="doc-btn-red" @click="delFirstBtn(item)" v-if="item.allowDelete ==1">删除</van-button> </div> </div> </div> <div v-for="item in secondScreenList" :key="item.id" class="second-card mb-3"> <div class="title px-4 py-1">专病筛查记录</div> <div class=" py-3 px-4 doc-list-card"> <div class="flex flex-col" style="row-gap: .04rem;line-height: 1.5;" @click="toSecondDetail(item)"> <div class="flex"> <span class="label shrink-0">高危评估</span> <span class="grow" >{{ item.specialScreenResultName }}</span> </div> <div> <span class="label">筛查日期</span> <span>{{ item.screenDate }}</span> </div> <div class="text-ellipsis"> <span class="label">筛查单位</span> <span>{{ item.screenUnitName }}</span> </div> <div class="text-ellipsis"> <span class="label">筛查科室</span> <span>{{ item.screenOfficeName }}</span> </div> <div class="text-ellipsis"> <span class="label">筛查医生</span> <span>{{ item.screenDoctorName }}</span> </div> <div> <span class="label">数据来源</span> <span>{{ item.sourceName }}</span> </div> <div> <span class="label">创建时间</span> <span>{{ item.created }}</span> </div> </div> <div class="divider my-3"></div> <div class="bt-group"> <van-button round size="small" class="doc-btn-primary" @click="toSecondDetail(item)">详情</van-button> <van-button round size="small" class="doc-btn-primary" @click='editSecondBtn(item)' v-if="item.allowUpdate == 1">修改</van-button> <van-button round size="small" class="doc-btn-red" @click="delSecondBtn(item)" v-if="item.allowUpdate == 1">删除</van-button> </div> </div> </div> </van-pull-refresh> <div class='text-center shrink-0 empty' v-if='!firstScreenList.length && !secondScreenList.length'> <img src='@/assets/image/doctor/empty.png' alt='' style='width: 1.2rem;'> <p>暂无数据</p> </div> </div> </template> <script> import { useStore } from '@/doctor/store' import { getScreenAllList, deleteFirstScreening, deleteSecondScreening } from '@/api/doctor/screening.js' import { showConfirmDialog } from 'vant' export default { inject: ['residentInfo'], data() { return { store: useStore(), loadingRefresh: false, isRefreshDisable: false, firstScreenList: [], secondScreenList: [] } }, 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) { getScreenAllList(this.residentInfoId, loading).then(res => { const result = res.data || {} this.firstScreenList = result.firstScreenList || [] this.secondScreenList = result.secondScreenList || [] }).finally(() => { this.loadingRefresh = false }) }, onRefresh() { this.load(false) }, //主要慢病筛查 toFirstDetail(record) { if (!record) return if (record.id == null) { this.$message.info('暂时无法查看 详情信息') return } this.$router.push({ path: '/doctor/screening/FirstDetail', query: { id: record.id } }) }, //专病筛查 toSecondDetail(record) { if (!record) return if (record.id == null) { this.$message.info('暂时无法查看 详情信息') return } this.$router.push({ path: '/doctor/screening/secondDetail', query: { id: record.id } }) }, editFirstBtn(record) { this.$router.push({ path: '/doctor/screening/firstForm', query: { residentInfoId: this.residentInfoId, id:record.id } }) }, delFirstBtn(record) { showConfirmDialog({ message: '确定要删除吗?' }).then(() => { deleteFirstScreening({ id: record.id }).then(res => { setTimeout(() => { this.$message.info('删除成功') }, 600) this.firstScreenList = this.firstScreenList.filter(e => e.id !== record.id) }) }).catch((err) => { console.warn('delFirstBtn', err) }) }, editSecondBtn(record) { this.$router.push({ path: '/doctor/screening/secondForm', query: { residentInfoId: this.residentInfoId, id:record.id } }) }, delSecondBtn(record) { showConfirmDialog({ message: '确定要删除吗?' }).then(() => { deleteSecondScreening({ id: record.id }).then(res => { setTimeout(() => { this.$message.info('删除成功') }, 600) this.secondScreenList = this.secondScreenList.filter(e => e.id !== record.id) }) }).catch((err) => { console.warn('delFirstBtn', err) }) } }, watch: { 'store.refreshMark'() { this.onRefresh() } } } </script> <style lang="less" scoped> </style>