diff --git a/frontend/src/pages/TicketManagement.jsx b/frontend/src/pages/TicketManagement.jsx index 4b31c6a..61c8383 100644 --- a/frontend/src/pages/TicketManagement.jsx +++ b/frontend/src/pages/TicketManagement.jsx @@ -72,6 +72,13 @@ const getPriorityText = (priority) => { return texts[priority] || priority; }; +const generateTicketId = () => { + const prefix = 'TKT'; + const timestamp = dayjs().format('YYYYMMDDHHmmss'); + const random = Math.floor(Math.random() * 1000).toString().padStart(3, '0'); + return `${prefix}${timestamp}${random}`; +}; + function TicketManagement() { const [tickets, setTickets] = useState([]); const [devices, setDevices] = useState([]); @@ -360,6 +367,8 @@ function TicketManagement() { } else { form.resetFields(); setDeviceSource('select'); + const newTicketId = generateTicketId(); + form.setFieldsValue({ ticketId: newTicketId }); } setModalVisible(true); }, []); @@ -524,23 +533,35 @@ function TicketManagement() { }, [deviceSource, devices]); const renderFormItems = useCallback(() => { - return ticketFields.map(field => { - if (field.fieldName === 'deviceId') { - return ( - - - - - {renderDeviceFormItems()} - - ); + const items = []; + if (!editingTicket) { + items.push( + + + + ); + } + ticketFields.forEach(field => { + if (field.fieldName === 'ticketId' || field.fieldName === 'deviceId') { + if (field.fieldName === 'deviceId') { + items.push( + + + + + {renderDeviceFormItems()} + + ); + } + } else { + items.push(renderFormItem(field)); } - return renderFormItem(field); }); - }, [ticketFields, deviceSource, devices, handleDeviceSourceChange, renderDeviceFormItems, renderFormItem]); + return items; + }, [ticketFields, deviceSource, devices, handleDeviceSourceChange, renderDeviceFormItems, renderFormItem, editingTicket]); const getActionItems = useCallback((record) => (