111
This commit is contained in:
@@ -158,7 +158,6 @@ interface WorkOrder {
|
||||
export default function WorkOrdersPage() {
|
||||
const [searchTerm, setSearchTerm] = useState("")
|
||||
const [statusFilter, setStatusFilter] = useState("all")
|
||||
const [priorityFilter, setPriorityFilter] = useState("all")
|
||||
const [workerFilter, setWorkerFilter] = useState("all")
|
||||
const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false)
|
||||
const [workOrders, setWorkOrders] = useState<WorkOrder[]>([])
|
||||
@@ -280,9 +279,8 @@ export default function WorkOrdersPage() {
|
||||
// 使用工单的实际状态进行过滤
|
||||
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
|
||||
return matchesSearch && matchesStatus && matchesPriority && matchesWorker
|
||||
return matchesSearch && matchesStatus && matchesWorker
|
||||
})
|
||||
|
||||
return (
|
||||
@@ -408,19 +406,6 @@ export default function WorkOrdersPage() {
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
<Select value={priorityFilter} onValueChange={setPriorityFilter}>
|
||||
<SelectTrigger className="w-full sm:w-32">
|
||||
<SelectValue placeholder="优先级" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="all">全部优先级</SelectItem>
|
||||
<SelectItem value="urgent">紧急</SelectItem>
|
||||
<SelectItem value="high">高</SelectItem>
|
||||
<SelectItem value="medium">中</SelectItem>
|
||||
<SelectItem value="low">低</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
<Select value={workerFilter} onValueChange={setWorkerFilter}>
|
||||
<SelectTrigger className="w-full sm:w-32">
|
||||
<SelectValue placeholder="工人" />
|
||||
@@ -447,7 +432,7 @@ export default function WorkOrdersPage() {
|
||||
<TableRow>
|
||||
<TableHead>工单信息</TableHead>
|
||||
<TableHead>商户信息</TableHead>
|
||||
<TableHead>类型/优先级</TableHead>
|
||||
<TableHead>类型</TableHead>
|
||||
<TableHead>状态</TableHead>
|
||||
<TableHead>负责人</TableHead>
|
||||
<TableHead>时间</TableHead>
|
||||
@@ -490,10 +475,7 @@ export default function WorkOrdersPage() {
|
||||
</div>
|
||||
</TableCell>
|
||||
<TableCell>
|
||||
<div className="space-y-2">
|
||||
{getTypeBadge(item.workOrderType)}
|
||||
{getPriorityBadge(item.priority)}
|
||||
</div>
|
||||
</TableCell>
|
||||
<TableCell>{getStatusBadge(item.status || "1")}</TableCell>
|
||||
<TableCell>
|
||||
@@ -583,21 +565,17 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
merchantId: "",
|
||||
equipmentId: "",
|
||||
type: "",
|
||||
priority: "",
|
||||
assignee: "",
|
||||
description: "",
|
||||
dueDate: "",
|
||||
})
|
||||
|
||||
const [selectedMerchant, setSelectedMerchant] = useState("")
|
||||
const [availableEquipment, setAvailableEquipment] = useState<Equipment[]>([])
|
||||
const [merchants, setMerchants] = useState<ProvinceMerchant[]>([])
|
||||
const [workers, setWorkers] = useState<Worker[]>([])
|
||||
const [priorities, setPriorities] = useState<PriorityData>({})
|
||||
const [loadingMerchants, setLoadingMerchants] = useState(false)
|
||||
const [loadingEquipment, setLoadingEquipment] = useState(false)
|
||||
const [loadingWorkers, setLoadingWorkers] = useState(false)
|
||||
const [loadingPriorities, setLoadingPriorities] = useState(false)
|
||||
const [submitting, setSubmitting] = useState(false)
|
||||
|
||||
// 获取商户列表
|
||||
@@ -647,22 +625,6 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
}
|
||||
}
|
||||
|
||||
// 获取优先级列表
|
||||
const fetchPriorities = async () => {
|
||||
setLoadingPriorities(true)
|
||||
try {
|
||||
const response = await apiGet('/back/general/priorities')
|
||||
if (response.code === 200) {
|
||||
setPriorities(response.data || {})
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取优先级列表失败:', error)
|
||||
setPriorities({})
|
||||
} finally {
|
||||
setLoadingPriorities(false)
|
||||
}
|
||||
}
|
||||
|
||||
const handleMerchantChange = (merchantId: string) => {
|
||||
setSelectedMerchant(merchantId)
|
||||
setFormData({ ...formData, merchantId, equipmentId: "" })
|
||||
@@ -706,7 +668,6 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
workOrderNumber: workOrderNumber,
|
||||
workOrderType: formData.type,
|
||||
workOrderSubtype: "", // 暂时为空
|
||||
priority: formData.priority,
|
||||
equipmentId: formData.equipmentId,
|
||||
equipmentName: selectedEquipmentObj.equipmentName,
|
||||
merchantName: selectedMerchantObj.merchantName,
|
||||
@@ -718,7 +679,6 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
responsibleVirtualPhone: selectedMerchantObj.contactPhone,
|
||||
workerVirtualPhone: selectedWorkerObj.phone,
|
||||
workerName: selectedWorkerObj.name,
|
||||
scheduledDate: formData.dueDate,
|
||||
createdDate: new Date().toISOString().split('T')[0],
|
||||
completedDate: ""
|
||||
}
|
||||
@@ -812,30 +772,6 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="priority">优先级</Label>
|
||||
<Select
|
||||
value={formData.priority}
|
||||
onValueChange={(value) => setFormData({ ...formData, priority: value })}
|
||||
onOpenChange={(open) => {
|
||||
if (open && Object.keys(priorities).length === 0 && !loadingPriorities) {
|
||||
fetchPriorities()
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder={loadingPriorities ? "加载中..." : "选择优先级"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{Object.entries(priorities).map(([key, value]) => (
|
||||
<SelectItem key={key} value={key}>
|
||||
{value}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="assignee">分配工人</Label>
|
||||
<Select
|
||||
@@ -859,16 +795,6 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="dueDate">到期日期</Label>
|
||||
<Input
|
||||
id="dueDate"
|
||||
type="date"
|
||||
value={formData.dueDate}
|
||||
onChange={(e) => setFormData({ ...formData, dueDate: e.target.value })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
|
Reference in New Issue
Block a user