feat: 实现安全存储和批量导入功能增强

refactor(前端): 重构认证和存储逻辑使用secureStorage
feat(前端): 添加安全存储工具和日志工具
feat(前端): 增强批量导入功能支持服务器和交换机设备
fix(后端): 改进设备端口和网卡批量导入接口
docs: 更新导入模板和操作说明
This commit is contained in:
zhangbing
2026-03-29 10:06:32 +08:00
parent 63f0cb570e
commit 1d815b812e
22 changed files with 1326 additions and 214 deletions
+5 -4
View File
@@ -47,6 +47,7 @@ import CloseButton from '../components/CloseButton';
import dayjs from 'dayjs';
import { useSearchParams } from 'react-router-dom';
import { debounce, getUserFromStorage } from '../utils/common';
import secureStorage, { TICKET_COLUMNS_KEY } from '../utils/secureStorage';
const { Option } = Select;
const { RangePicker } = DatePicker;
@@ -715,7 +716,7 @@ function TicketManagement() {
message.success('工单更新成功');
} else {
const user = getUserFromStorage();
ticketData.reporterId = user.userId || localStorage.getItem('userId') || 'USER001';
ticketData.reporterId = user.userId || 'USER001';
ticketData.reporterName = user.username || '系统用户';
await axios.post('/api/tickets', ticketData);
message.success('工单创建成功');
@@ -767,7 +768,7 @@ function TicketManagement() {
const user = getUserFromStorage();
await axios.put(`/api/tickets/${selectedTicket.ticketId}/process`, {
...values,
operatorId: localStorage.getItem('userId'),
operatorId: user.userId,
operatorName: user.username,
});
message.success('工单处理完成');
@@ -787,7 +788,7 @@ function TicketManagement() {
const user = getUserFromStorage();
await axios.put(`/api/tickets/${ticketId}/status`, {
status: newStatus,
operatorId: localStorage.getItem('userId'),
operatorId: user.userId,
operatorName: user.username,
});
message.success('状态更新成功');
@@ -1128,7 +1129,7 @@ function TicketManagement() {
scroll={{ x: 1200 }}
columnsState={{
onChange: ({ visibleColumns }) => {
localStorage.setItem('ticketVisibleColumns', JSON.stringify(visibleColumns));
secureStorage.set(TICKET_COLUMNS_KEY, visibleColumns);
},
}}
/>