# abu-admin **Repository Path**: robot3516/abu-admin ## Basic Information - **Project Name**: abu-admin - **Description**: 阿布机器人管理控制台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-28 - **Last Updated**: 2026-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 阿布管理端 阿布机器人的内部运营控制台,服务于设备运营、OTA 发布、售后支持、系统配置和审计。 ## 技术栈 - Vue 3、Vite、TypeScript - Element Plus、Pinia、Vue Router、Vue Query、ECharts - 后端接口由 `abu-api` 的 `/admin/v1/**` 提供 ## 开发原则 - 内部管理员账号与 App 用户完全隔离。 - 密钥只可替换,不可在页面或审计日志中回显。 - OTA 发布必须支持签名校验、灰度、回执、暂停、回滚和操作审计。 - 首次接入 API 前,页面不得伪造实时设备或生产运营数据。 ## 本地人工测试 人工写入测试必须使用单独的测试数据库与 Redis。当前 `robot01` 包含实际设备和用户,不能当作一次性测试库;先确认 `../abu-api/src/main/resources/application-local.yml` 的目标环境,已有业务库不要开启首次引导或重复迁移。 在 `../abu-api` 首次启动后端(PowerShell 示例;变量均为一次性测试配置,不要写进仓库): ```powershell $env:JAVA_HOME = 'C:\Program Files\Java\jdk-21.0.11' $env:ABU_LIQUIBASE_ENABLED = 'true' $env:ABU_ADMIN_BOOTSTRAP_ENABLED = 'true' $env:ABU_ADMIN_BOOTSTRAP_USERNAME = 'your_admin_name' $env:ABU_ADMIN_BOOTSTRAP_PASSWORD = '' $env:ABU_ADMIN_SESSION_COOKIE_SECURE = 'false' cd ../abu-api mvn spring-boot:run "-Dspring-boot.run.profiles=local" ``` 首个账号创建后,停止后端、移除全部 `ABU_ADMIN_BOOTSTRAP_*` 变量,再以 `local` profile 启动一次。`ABU_LIQUIBASE_ENABLED=true` 可保留,Liquibase 会跳过已执行的变更;本机 HTTP 以外必须移除 `ABU_ADMIN_SESSION_COOKIE_SECURE=false`。 前端本地代理会将浏览器的 `/api` 转发到后端 `/com.abu`;这样 Cookie 只在同域 `/api` 范围内传递: ```powershell npm ci Copy-Item .env.example .env.local npm run dev ``` 人工验收顺序:登录 → 运营概览 → 设备运营 → 用户与售后 → AI 与配置 → 权限与审计 → 退出登录。应确认无手机号、密码、Token、MFA 秘钥、模型 JSON 或其他密钥出现在页面和接口响应中。 生产构建与检查: ```bash npm run build npm run lint ```