diff --git a/src/components/pages/WorkOrdersPage.tsx b/src/components/pages/WorkOrdersPage.tsx index d3bee03..b53f5cd 100644 --- a/src/components/pages/WorkOrdersPage.tsx +++ b/src/components/pages/WorkOrdersPage.tsx @@ -23,12 +23,12 @@ import { CheckCircle, User, MapPin, - MoreHorizontal, ChevronLeft, ChevronRight, Wrench, + Edit, } from "lucide-react" -import { apiGet, apiPost } from "../../lib/services/api" +import { apiGet, apiPost, apiPut } from "../../lib/services/api" // 商户数据类型接口 interface ProvinceMerchant { @@ -157,6 +157,8 @@ export default function WorkOrdersPage() { const [statusFilter, setStatusFilter] = useState("all") const [workerFilter, setWorkerFilter] = useState("all") const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false) + const [isEditDialogOpen, setIsEditDialogOpen] = useState(false) + const [editingWorkOrder, setEditingWorkOrder] = useState(null) const [workOrders, setWorkOrders] = useState([]) const [loadingWorkOrders, setLoadingWorkOrders] = useState(false) const [totalWorkOrders, setTotalWorkOrders] = useState(0) @@ -218,7 +220,7 @@ export default function WorkOrdersPage() { const getStatusBadge = (status: string | number) => { const statusValue = typeof status === 'string' ? parseInt(status) : status - + switch (statusValue) { case WorkOrderStatus.PENDING_ACCEPT: return 待接单 @@ -267,7 +269,7 @@ 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.status || "1" // 默认为待接单状态 const matchesStatus = statusFilter === "all" || itemStatus === statusFilter @@ -302,6 +304,27 @@ export default function WorkOrdersPage() { }} /> + + {/* 编辑工单对话框 */} + + + + 编辑工单 + 修改工单信息 + + {editingWorkOrder && ( + { + setIsEditDialogOpen(false) + setEditingWorkOrder(null) + fetchWorkOrders(currentPage, pageSize) + fetchStatusCounts() + }} + /> + )} + + {/* Stats Cards */} @@ -503,8 +526,15 @@ export default function WorkOrdersPage() { - @@ -687,21 +717,21 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) { } const equipmentType = selectedEquipment.equipmentType - + console.log('选择的设备类型:', equipmentType) // 厨房自动灭火设备 - kitchen_automatic_fire_extinguisher if (equipmentType === "kitchen_automatic_fire_extinguisher" || equipmentType === "厨房自动灭火设备") { - return ["故障检测", "故障维修", "设备安装", "预防性维护", "设备改造", "设备拆除", "更换药剂"] + return ["故障检测", "故障维修", "设备安装", "设备改造", "设备拆除", "更换药剂"] } - + // 动火离人 - fire_extinguisher if (equipmentType === "fire_extinguisher" || equipmentType === "动火离人") { return ["故障维修", "设备安装", "设备改造", "设备拆除"] } // 默认返回所有类型 - return ["故障检测", "故障维修", "设备安装", "预防性维护", "设备改造", "设备拆除", "更换药剂"] + return ["故障检测", "故障维修", "设备安装", "设备改造", "设备拆除", "更换药剂"] } // 切换工人选择 @@ -863,17 +893,17 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
- setFormData({ ...formData, type: value })} + > + + + + + {getAvailableWorkOrderTypes().map((type) => ( + + {type} + + ))} + + +
+ +
+ + +
+ + +
+ +
+ + {isWorkerSelectOpen && ( +
+ {workers.length === 0 ? ( +
暂无工人数据
+ ) : ( +
+ {workers.map((worker) => ( +
toggleWorkerSelection(worker.id)} + > +
+ {formData.assignee.includes(worker.id) && ( + + + + )} +
+ + {worker.name} - {worker.province} ({worker.phone}) + +
+ ))} +
+ )} +
+ )} +
+ {formData.assignee.length > 0 && ( +
+ 已选择: {workers.filter(w => formData.assignee.includes(w.id)).map(w => w.name).join(", ")} +
+ )} +
+ +
+ +