diff --git a/web/src/views/ClassroomRepairsView.vue b/web/src/views/ClassroomRepairsView.vue index e7f9cf2..a71e31f 100644 --- a/web/src/views/ClassroomRepairsView.vue +++ b/web/src/views/ClassroomRepairsView.vue @@ -24,6 +24,8 @@ const equipmentVisible = ref(false) const equipmentClassroomId = ref('') const equipmentRows = ref([]) const equipmentForm = ref({ name: '', category: 1, notes: '' }) +const detailVisible = ref(false) +const detail = ref() const isManager = computed(() => auth.user?.roles.some(role => ['SuperAdmin', 'AcademicAdmin', 'MaintenanceAdmin'].includes(role)) ?? false) async function load() { @@ -46,8 +48,13 @@ async function showQr(ticket: any) { qrUrl.value = `${location.origin}${import.m async function showClassroomQr() { if (!qrClassroomId.value) return ElMessage.warning('请选择教室。'); await showQr({ classroomId: qrClassroomId.value }) } async function loadEquipment() { if (!equipmentClassroomId.value) return; equipmentRows.value = (await http.get(`/classroom-repairs/classrooms/${equipmentClassroomId.value}/equipment`)).data } async function addEquipment() { if (!equipmentForm.value.name) return ElMessage.warning('请填写设备名称。'); await http.post(`/classroom-repairs/classrooms/${equipmentClassroomId.value}/equipment`, equipmentForm.value); equipmentForm.value = { name: '', category: 1, notes: '' }; await loadEquipment() } -function statusName(value: number) { return ['待分派', '已分派', '维修中', '已完成'][value - 1] } -function statusType(value: number) { return value === 4 ? 'success' : value === 3 ? 'warning' : value === 2 ? 'primary' : 'info' } +function statusValue(value: number | string) { + if (typeof value === 'number') return value + return ({ Submitted: 1, Assigned: 2, InProgress: 3, Completed: 4 } as Record)[value] ?? 1 +} +function statusName(value: number | string) { return ['待分派', '已分派', '维修中', '已完成'][statusValue(value) - 1] } +function statusType(value: number | string) { const normalized = statusValue(value); return normalized === 4 ? 'success' : normalized === 3 ? 'warning' : normalized === 2 ? 'primary' : 'info' } +function openDetail(ticket: any) { detail.value = ticket; detailVisible.value = true } onMounted(load) @@ -55,7 +62,8 @@ onMounted(load)

FACILITY CARE

教室设备与故障闭环

扫码报修、维修分派、状态恢复与受影响教师提醒。

设备档案生成场地报修码刷新
-
+ + @@ -64,5 +72,5 @@ onMounted(load)