From bc324a4163a63426e17fb8973d977cad3e1a8ca3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E5=A4=A9=E9=AA=84?= <5307576@qq.com>
Date: Thu, 18 Jun 2026 15:09:47 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E4=B8=8B=E6=8B=89?=
=?UTF-8?q?=E5=88=97=E8=A1=A8=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/CaseReviewView.vue | 46 ++++++++++++++++++++++-
src/views/CasesView.vue | 35 ++++++++++++++++-
src/views/TeacherStudentRelationsView.vue | 3 +-
3 files changed, 78 insertions(+), 6 deletions(-)
diff --git a/src/views/CaseReviewView.vue b/src/views/CaseReviewView.vue
index bd1b4b4e..7c39f76c 100644
--- a/src/views/CaseReviewView.vue
+++ b/src/views/CaseReviewView.vue
@@ -12,7 +12,22 @@
@@ -269,6 +284,7 @@ import {
type CaseListItem,
type CasePublishStatus
} from '@/api/cases'
+import { fetchMyDepartments, type DepartmentOption } from '@/api/users'
import { useAppStore } from '@/stores/app'
type ReviewCaseType = 'traditional' | 'teaching'
@@ -316,8 +332,10 @@ const appStore = useAppStore()
const loading = ref(false)
const publishing = ref(false)
const detailLoading = ref(false)
+const loadingDepartments = ref(false)
const detailDrawerVisible = ref(false)
const cases = ref([])
+const departmentOptions = ref([])
const detailCase = ref(null)
const caseDetail = ref(null)
const detailForm = reactive({
@@ -396,6 +414,27 @@ function resetFilters() {
loadReviewCases()
}
+async function loadDepartmentOptions() {
+ if (!appStore.token || loadingDepartments.value || departmentOptions.value.length) {
+ return
+ }
+
+ try {
+ loadingDepartments.value = true
+ departmentOptions.value = await fetchMyDepartments(appStore.token)
+ } catch (error) {
+ ElMessage.error(error instanceof Error ? error.message : '获取科室列表失败')
+ } finally {
+ loadingDepartments.value = false
+ }
+}
+
+function handleDepartmentVisibleChange(visible: boolean) {
+ if (visible) {
+ loadDepartmentOptions()
+ }
+}
+
async function openDetailDrawer(row: CaseListItem) {
if (!appStore.token) {
ElMessage.warning('缺少登录信息,请重新登录')
@@ -871,7 +910,10 @@ function formatDateTime(value: string) {
return value.replace('T', ' ').slice(0, 19)
}
-onMounted(loadReviewCases)
+onMounted(() => {
+ loadReviewCases()
+ loadDepartmentOptions()
+})