From 230a58494f2e80d179a4ee4672ec81e5439ed3b0 Mon Sep 17 00:00:00 2001
From: ZHW <1941286652@qq.com>
Date: Sun, 4 Jan 2026 21:33:03 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=AE=A1=E7=90=86=E5=91=98?=
=?UTF-8?q?=E7=9A=84=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/src/components/layout/AppHeader.vue | 192 ++++++++-
.../resources/web/src/views/LoginView.vue | 1 -
.../src/views/personnel/MaintenanceRecord.vue | 383 ++++++++++++++++--
3 files changed, 531 insertions(+), 45 deletions(-)
diff --git a/src/main/resources/web/src/components/layout/AppHeader.vue b/src/main/resources/web/src/components/layout/AppHeader.vue
index f2fb007..5624472 100644
--- a/src/main/resources/web/src/components/layout/AppHeader.vue
+++ b/src/main/resources/web/src/components/layout/AppHeader.vue
@@ -4,28 +4,107 @@
校园矿化水系统
@@ -146,7 +209,7 @@ import { useRoute, useRouter } from 'vue-router'
import { request } from '@/api/request'
import { useAuthStore } from '@/stores/auth'
import type { WorkOrder } from '@/api/types/workorder'
-import type {ResultVO} from "@/api/types/auth";
+import type {ResultVO} from "@/api/types/auth"
// 定义接口
interface RepairmanInfo {
@@ -165,10 +228,11 @@ interface MaintenanceStaff {
status: RepairmanStatus
}
-
// 枚举类型
type OrderStatus = 'pending' | 'processing' | 'reviewing' | 'completed' | 'timeout'
type RepairmanStatus = 'idle' | 'busy' | 'vacation'
+type OrderType = 'repair' | 'maintenance' | 'inspection'
+type OrderPriority = 'low' | 'medium' | 'high' | 'urgent'
const route = useRoute()
const router = useRouter()
@@ -189,6 +253,28 @@ const currentPage = ref(1)
const pageSize = 10
const loading = ref(false)
+// 弹窗相关数据
+const showDetailModal = ref(false)
+const currentOrder = ref({
+ orderId: '',
+ deviceId: '',
+ areaId: '',
+ orderType: 'repair',
+ description: '',
+ priority: 'medium',
+ status: 'pending',
+ assignedRepairmanId: '',
+ createdTime: undefined,
+ grabbedTime: undefined,
+ deadline: undefined,
+ completedTime: undefined,
+ dealNote: '',
+ imgUrl: '',
+ createdBy: '',
+ updatedTime: undefined,
+ alertId: undefined
+})
+
// 获取维修人员信息和工单数据
const fetchRepairmanData = async () => {
loading.value = true
@@ -262,7 +348,6 @@ const fetchRepairmanData = async () => {
}
}
-
// 处理中的工单
const processingOrders = computed(() => {
return allOrders.value.filter(order =>
@@ -319,15 +404,36 @@ const getStatusText = (status: RepairmanStatus): string => {
// 格式化工单状态显示
const formatOrderStatus = (status: OrderStatus): string => {
const statusMap: Record = {
- 'pending': '待抢单',
+ 'pending': '待处理',
'processing': '处理中',
'reviewing': '待审核',
'completed': '已完成',
- 'timeout': '超时未抢'
+ 'timeout': '超时'
}
return statusMap[status] || status
}
+// 格式化工单类型
+const formatOrderType = (type: OrderType): string => {
+ const typeMap: Record = {
+ 'repair': '维修',
+ 'maintenance': '保养',
+ 'inspection': '巡检'
+ }
+ return typeMap[type] || type
+}
+
+// 格式化工单优先级
+const formatOrderPriority = (priority: OrderPriority): string => {
+ const priorityMap: Record = {
+ 'low': '低',
+ 'medium': '中',
+ 'high': '高',
+ 'urgent': '紧急'
+ }
+ return priorityMap[priority] || priority
+}
+
// 格式化日期
const formatDate = (dateString?: string): string => {
if (!dateString) return '-'
@@ -335,10 +441,35 @@ const formatDate = (dateString?: string): string => {
return date.toLocaleString('zh-CN')
}
-// 查看工单详情
-const viewOrderDetail = (orderId: string) => {
- // 跳转到工单详情页面(需要根据实际路由调整)
- router.push(`/home/work-order/detail/${orderId}`)
+// 显示工单详情弹窗
+const showOrderDetail = (order: WorkOrder) => {
+ currentOrder.value = { ...order } // 深拷贝工单数据
+ showDetailModal.value = true
+}
+
+// 关闭工单详情弹窗
+const closeDetailModal = () => {
+ showDetailModal.value = false
+ // 重置当前订单
+ currentOrder.value = {
+ orderId: '',
+ deviceId: '',
+ areaId: '',
+ orderType: 'repair',
+ description: '',
+ priority: 'medium',
+ status: 'pending',
+ assignedRepairmanId: '',
+ createdTime: undefined,
+ grabbedTime: undefined,
+ deadline: undefined,
+ completedTime: undefined,
+ dealNote: '',
+ imgUrl: '',
+ createdBy: '',
+ updatedTime: undefined,
+ alertId: undefined
+ }
}
// 返回上一页
@@ -346,9 +477,7 @@ const goBack = () => {
router.back()
}
-
// 页面加载时获取数据
-// MaintenanceRecord.vue
onMounted(() => {
const repairmanId = route.params.id as string
if (!repairmanId) {
@@ -359,7 +488,6 @@ onMounted(() => {
fetchRepairmanData()
})
-