This commit is contained in:
menxipeng
2025-10-17 21:57:20 +08:00
parent 7642ffe5a9
commit 83f608e71d

View File

@@ -109,6 +109,18 @@ interface Worker {
// 优先级数据类型接口 - API返回键值对格式
type PriorityData = Record<string, string>
// 工单状态枚举
enum WorkOrderStatus {
PENDING_ACCEPT = 1,
ACCEPTED = 2,
IN_PROGRESS = 3,
REPAIRING = 4,
CHECKING_INFO = 5,
WAITING_SIGNATURE = 6,
COMPLETED = 7
}
// 工单数据类型接口
interface WorkOrder {
createBy: string | null
@@ -190,20 +202,26 @@ export default function WorkOrdersPage() {
fetchWorkOrders()
}, [])
const getStatusBadge = (status: string) => {
switch (status) {
case "pending":
return <Badge className="bg-gray-100 text-gray-800"></Badge>
case "assigned":
return <Badge className="bg-blue-100 text-blue-800"></Badge>
case "in-progress":
return <Badge className="bg-black text-white"></Badge>
case "completed":
return <Badge className="bg-green-100 text-green-800"></Badge>
case "cancelled":
return <Badge variant="destructive"></Badge>
const getStatusBadge = (status: string | number) => {
const statusValue = typeof status === 'string' ? parseInt(status) : status
switch (statusValue) {
case WorkOrderStatus.PENDING_ACCEPT:
return <Badge className="bg-gray-100 text-gray-800"></Badge>
case WorkOrderStatus.ACCEPTED:
return <Badge className="bg-blue-100 text-blue-800"></Badge>
case WorkOrderStatus.IN_PROGRESS:
return <Badge className="bg-yellow-100 text-yellow-800"></Badge>
case WorkOrderStatus.REPAIRING:
return <Badge className="bg-orange-100 text-orange-800"></Badge>
case WorkOrderStatus.CHECKING_INFO:
return <Badge className="bg-purple-100 text-purple-800"></Badge>
case WorkOrderStatus.WAITING_SIGNATURE:
return <Badge className="bg-indigo-100 text-indigo-800"></Badge>
case WorkOrderStatus.COMPLETED:
return <Badge className="bg-green-100 text-green-800"></Badge>
default:
return <Badge variant="outline"></Badge>
return <Badge variant="outline"></Badge>
}
}
@@ -258,7 +276,9 @@ export default function WorkOrdersPage() {
item.equipmentName.toLowerCase().includes(searchTerm.toLowerCase()) ||
item.merchantName.toLowerCase().includes(searchTerm.toLowerCase()) ||
item.workerName.toLowerCase().includes(searchTerm.toLowerCase())
const itemStatus = item.workersId ? "assigned" : "pending"
// 使用工单的实际状态进行过滤
const itemStatus = item.status || "1" // 默认为待接单状态
const matchesStatus = statusFilter === "all" || itemStatus === statusFilter
const matchesPriority = priorityFilter === "all" || item.priority === priorityFilter
const matchesWorker = workerFilter === "all" || item.workerName === workerFilter
@@ -378,11 +398,13 @@ export default function WorkOrdersPage() {
</SelectTrigger>
<SelectContent>
<SelectItem value="all"></SelectItem>
<SelectItem value="pending"></SelectItem>
<SelectItem value="assigned"></SelectItem>
<SelectItem value="in-progress"></SelectItem>
<SelectItem value="completed"></SelectItem>
<SelectItem value="cancelled"></SelectItem>
<SelectItem value="1"></SelectItem>
<SelectItem value="2"></SelectItem>
<SelectItem value="3"></SelectItem>
<SelectItem value="4"></SelectItem>
<SelectItem value="5"></SelectItem>
<SelectItem value="6"></SelectItem>
<SelectItem value="7"></SelectItem>
</SelectContent>
</Select>
@@ -473,7 +495,7 @@ export default function WorkOrdersPage() {
{getPriorityBadge(item.priority)}
</div>
</TableCell>
<TableCell>{getStatusBadge(item.workersId ? "assigned" : "pending")}</TableCell>
<TableCell>{getStatusBadge(item.status || "1")}</TableCell>
<TableCell>
<div className="space-y-1">
<div className="font-medium">{item.workerName}</div>