refactor(frontend): 重构状态管理使用Zustand替代Context API

feat(auth): 添加账户锁定功能及自动解锁机制
feat(user): 在用户模型中添加lockedUntil字段
feat(api): 实现账户锁定逻辑和剩余尝试次数提示

perf(3d): 优化3D场景状态管理性能
perf(floorplan): 优化平面图状态管理性能

chore(deps): 添加zustand依赖
chore(config): 更新安全配置锁定时间为3分钟

docs: 更新部分组件注释
style: 调整登录页面样式
This commit is contained in:
zhang1106
2026-05-08 11:17:29 +08:00
parent 03e320af9e
commit 2826a00192
33 changed files with 2026 additions and 1442 deletions
+17
View File
@@ -133,6 +133,11 @@ const migrations = [
description: '为 operation_logs 表添加 requestId 字段和复合索引,支持请求追踪',
migrate: migrateOperationLogRequestId,
},
{
name: '用户账户锁定时间',
description: '为 users 表添加 lockedUntil 字段,支持账户自动解锁',
migrate: migrateUserLockedUntil,
},
];
async function runMigrations() {
@@ -951,6 +956,18 @@ async function migrateOperationLogRequestId() {
console.log(' 操作日志requestId字段和索引迁移完成');
}
async function migrateUserLockedUntil() {
const tableName = 'users';
if (!(await tableExists(tableName))) {
console.log(` ${tableName} 表不存在,跳过`);
return;
}
await addColumnIfNotExists(tableName, 'lockedUntil', 'DATETIME');
console.log(' users 表 lockedUntil 字段迁移完成');
}
// 执行迁移
runMigrations().catch(error => {
console.error('迁移执行失败:', error);