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返回键值对格式 // 优先级数据类型接口 - API返回键值对格式
type PriorityData = Record<string, string> 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 { interface WorkOrder {
createBy: string | null createBy: string | null
@@ -190,20 +202,26 @@ export default function WorkOrdersPage() {
fetchWorkOrders() fetchWorkOrders()
}, []) }, [])
const getStatusBadge = (status: string) => { const getStatusBadge = (status: string | number) => {
switch (status) { const statusValue = typeof status === 'string' ? parseInt(status) : status
case "pending":
return <Badge className="bg-gray-100 text-gray-800"></Badge> switch (statusValue) {
case "assigned": case WorkOrderStatus.PENDING_ACCEPT:
return <Badge className="bg-blue-100 text-blue-800"></Badge> return <Badge className="bg-gray-100 text-gray-800"></Badge>
case "in-progress": case WorkOrderStatus.ACCEPTED:
return <Badge className="bg-black text-white"></Badge> return <Badge className="bg-blue-100 text-blue-800"></Badge>
case "completed": case WorkOrderStatus.IN_PROGRESS:
return <Badge className="bg-green-100 text-green-800"></Badge> return <Badge className="bg-yellow-100 text-yellow-800"></Badge>
case "cancelled": case WorkOrderStatus.REPAIRING:
return <Badge variant="destructive"></Badge> 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: 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.equipmentName.toLowerCase().includes(searchTerm.toLowerCase()) ||
item.merchantName.toLowerCase().includes(searchTerm.toLowerCase()) || item.merchantName.toLowerCase().includes(searchTerm.toLowerCase()) ||
item.workerName.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 matchesStatus = statusFilter === "all" || itemStatus === statusFilter
const matchesPriority = priorityFilter === "all" || item.priority === priorityFilter const matchesPriority = priorityFilter === "all" || item.priority === priorityFilter
const matchesWorker = workerFilter === "all" || item.workerName === workerFilter const matchesWorker = workerFilter === "all" || item.workerName === workerFilter
@@ -378,11 +398,13 @@ export default function WorkOrdersPage() {
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="all"></SelectItem> <SelectItem value="all"></SelectItem>
<SelectItem value="pending"></SelectItem> <SelectItem value="1"></SelectItem>
<SelectItem value="assigned"></SelectItem> <SelectItem value="2"></SelectItem>
<SelectItem value="in-progress"></SelectItem> <SelectItem value="3"></SelectItem>
<SelectItem value="completed"></SelectItem> <SelectItem value="4"></SelectItem>
<SelectItem value="cancelled"></SelectItem> <SelectItem value="5"></SelectItem>
<SelectItem value="6"></SelectItem>
<SelectItem value="7"></SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
@@ -473,7 +495,7 @@ export default function WorkOrdersPage() {
{getPriorityBadge(item.priority)} {getPriorityBadge(item.priority)}
</div> </div>
</TableCell> </TableCell>
<TableCell>{getStatusBadge(item.workersId ? "assigned" : "pending")}</TableCell> <TableCell>{getStatusBadge(item.status || "1")}</TableCell>
<TableCell> <TableCell>
<div className="space-y-1"> <div className="space-y-1">
<div className="font-medium">{item.workerName}</div> <div className="font-medium">{item.workerName}</div>