From e9f786655aac4ed8b88e9cbbd2cf1272839a2c4f Mon Sep 17 00:00:00 2001
From: zhang1106 <849185023@qq.com>
Date: Wed, 21 Jan 2026 17:03:01 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86):=20?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=8D=95=E7=BC=96=E5=8F=B7=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
新增工单编号自动生成函数,并在创建工单时自动填充编号。同时优化表单渲染逻辑,仅在新建工单时显示编号字段。
---
frontend/src/pages/TicketManagement.jsx | 51 +++++++++++++++++--------
1 file changed, 36 insertions(+), 15 deletions(-)
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 (
-