fix(ticket): reset detail dialog action state

This commit is contained in:
mlogclub
2026-05-02 20:29:25 +08:00
parent 033c9e2647
commit 567d9cb8e7
@@ -117,6 +117,15 @@ export function TicketDetailDialog({
void loadDetail() void loadDetail()
}, [loadDetail]) }, [loadDetail])
useEffect(() => {
setStatusSaving(null)
setProgressSaving(false)
setEditSaving(false)
setAssignOpen(false)
setEditOpen(false)
setProgressContent("")
}, [open, ticketId])
async function handleStatusChange(status: TicketStatus) { async function handleStatusChange(status: TicketStatus) {
if (!detail || detail.ticket.status === status) { if (!detail || detail.ticket.status === status) {
return return
@@ -130,6 +139,9 @@ export function TicketDetailDialog({
} }
toast.success("工单状态已更新") toast.success("工单状态已更新")
await loadDetail(activeTicketId) await loadDetail(activeTicketId)
if (!isCurrentTicket(activeTicketId)) {
return
}
onChanged() onChanged()
} catch (error) { } catch (error) {
if (!isCurrentTicket(activeTicketId)) { if (!isCurrentTicket(activeTicketId)) {
@@ -165,6 +177,9 @@ export function TicketDetailDialog({
toast.success("处理进展已记录") toast.success("处理进展已记录")
setProgressContent("") setProgressContent("")
await loadDetail(activeTicketId) await loadDetail(activeTicketId)
if (!isCurrentTicket(activeTicketId)) {
return
}
onChanged() onChanged()
} catch (error) { } catch (error) {
if (!isCurrentTicket(activeTicketId)) { if (!isCurrentTicket(activeTicketId)) {
@@ -204,6 +219,9 @@ export function TicketDetailDialog({
toast.success("工单已更新") toast.success("工单已更新")
setEditOpen(false) setEditOpen(false)
await loadDetail(payload.ticketId) await loadDetail(payload.ticketId)
if (!isCurrentTicket(payload.ticketId)) {
return
}
onChanged() onChanged()
} catch (error) { } catch (error) {
if (!isCurrentTicket(payload.ticketId)) { if (!isCurrentTicket(payload.ticketId)) {