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()
+})