f48f1cce70
- 采用固定内边距策略,解决标签页悬停时的布局抖动问题 - 统一关闭按钮尺寸为14x14px,提升视觉一致性 - 优化活动标签和悬停状态的层级管理,确保视觉层次正确 - 增强视觉反馈,添加内嵌阴影效果改善用户体验 - 添加平滑颜色过渡动画(0.2秒),提升交互流畅度 - 支持玻璃拟态设计系统,实现现代化视觉风格 - 完善工具箱图标支持,确保标签页工具功能准确显示
1.3 KiB
1.3 KiB
仓库为前后端同仓部署结构:
backend/src采用经典 Express 分层:app.js入口挂载 CORS、JSON/bodyLimit 中间件后按目录遍历加载routes/*;models/*通过 Sequelize 定义 ORM 实体并由config/database.js初始化连接;services/*封装外部依赖(S3/OtaStorage/MeasurementStorage/CurveClient/Squiglink),middleware/auth.js负责 JWT 校验,validators/*使用 Zod 做入参校验。frontend/src以layout/index.vue作为全局壳,内部用el-container组合侧栏(sidebar-glass)、顶栏(lux-header)、主内容区(TabsView多标签页)和底栏;路由由router/index.js驱动,API 调用集中在api/*.js,鉴权状态在utils/auth.js。- 样式体系完全收敛到
frontend/src/styles/lux-theme.css,通过:rootCSS 变量统一色板、模糊半径、阴影层级,并以.lux-shell命名空间覆盖 Element Plus 组件默认样式,实现 Glassmorphism + Dimensional Layering + Dark Mode OLED 三层次视觉。 - 部署层由根级
docker-compose.yml编排:后端容器暴露 8083,前端以 nginx:alpine 静态托管frontend/dist,并通过nginx.conf反向代理/api到后端;autoeq/下存放测量 CSV 数据供服务读取。