All checks were successful
Build and Deploy LTY / build-and-deploy (push) Successful in 8m44s
- Add affinity level/setting models and migrations - Migrate favorability data to UserDevice - Add management commands for userapp - Add admin CLAUDE.md and docs - Update affinity system design doc and task checklist - Update device_interaction and userapp models Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.5 KiB
4.5 KiB
CLAUDE.md
本文件为 Claude Code (claude.ai/code) 在本仓库中工作时提供指导。
项目概述
洛天依应用管理后台 (qy-lty-admin) —— 基于 Next.js 15 (App Router) + React 19 + TypeScript 构建的 Web 管理后台,搭配 Tailwind CSS + Radix UI / shadcn 风格组件库。
后端 API 由独立项目 qy_lty 提供(Django,路径 C:\Users\admin\Desktop\Lila-Server\qy_lty),通过 NEXT_PUBLIC_API_BASE_URL 配置接入,主要使用 /api/v1/admin/ 模块。
开发命令
# 安装依赖(Dockerfile 用 yarn + 淘宝镜像源;本地 npm/pnpm 也可)
npm install
# 开发模式
npm run dev # 默认 http://localhost:3000
# 生产构建(standalone 输出)
npm run build && npm run start
# 类型检查
npm run lint
环境变量(.env.local):
NEXT_PUBLIC_API_BASE_URL—— 后端 qy_lty 服务地址
架构要点
技术栈
| 类别 | 选型 |
|---|---|
| 框架 | Next.js 15.2.4(App Router、standalone 输出) |
| 语言 | TypeScript 5、React 19 |
| 样式 | Tailwind CSS 3.4 + tailwindcss-animate |
| 组件 | Radix UI + shadcn 风格封装(components/ui/) |
| HTTP 客户端 | Axios(含请求/响应拦截器) |
| 表单 | React Hook Form + Zod |
| 图表 | Recharts |
| 通知 | Sonner + Radix Toast |
路由与页面(App Router)
app/page.tsx—— 仪表盘首页app/login/、app/register/、app/forgot-password/—— 账户流- 业务模块(按权限分组):
- AI 管理:
/ai-model - 内容管理:
/outfits、/props、/home-decor、/food、/songs、/dances、/achievements、/affinity - 系统管理:
/users、/permissions、/settings
- AI 管理:
鉴权与权限
- 角色信息存于
localStorage.user_role - 模块权限矩阵定义在 lib/permissions.ts
- 侧边栏 components/sidebar.tsx 客户端按角色过滤可见菜单
- 路由保护中间件:middleware.ts
API 集成
- Axios 实例 + 拦截器统一注入 token
- 所有请求走
NEXT_PUBLIC_API_BASE_URL + /api/v1/admin/... - 后端鉴权 token 复用 qy_lty 的 Redis token 体系(admin token key 为
admin_token:{token})
跨仓库联动
本仓库依赖 qy_lty 后端的 /api/v1/admin/ 接口。修改任何接口契约(请求/响应结构、字段、URL)的改动必须同时:
- 在 qy_lty/docs/修改记录.md 记录服务端改动
- 在 docs/修改记录.md 记录前端配套改动
- 两端条目相互引用对方的同期条目
项目修改记录规则(重要 — 自动执行)
每次对本仓库代码做出改动后,必须在同一会话内把变更追加到 docs/修改记录.md 顶部(最新在最前),不要等用户提醒。条目格式遵循该文件头部"修改格式说明"约定:
### [日期] 修改简述
- **文件路径**: 相对于项目根目录的文件路径
- **修改类型**: 新增 / 修改 / 删除 / 重构 / 修复Bug
- **修改内容**: 具体修改了什么
- **修改原因**: 为什么要做这个修改
qy-lty-admin 与 qy_lty 是独立项目,各自维护
qy-lty-admin/docs/修改记录.md—— 仅记录管理后台前端(本仓库)改动qy_lty/docs/修改记录.md—— 仅记录服务端改动
跨项目联动改动:两端各写一条,相互引用对方的修改记录条目,不要混在同一条记录里。
适用范围
- 业务代码、配置、
package.json、Dockerfile、CI、文档结构性改动 → 必须记录 - 单纯的 typo 修复、注释微调 → 可省略
- 临时调试脚本、
.gitignore中文件、本地实验文件 → 不记录
注意事项
- 语言:用户偏好中文沟通;注释、commit message 用中文
- 包管理器:项目同时存在
package-lock.json和pnpm-lock.yaml;Dockerfile 用 yarn + 淘宝镜像源。本地开发任选其一即可,但不要混用导致 lock 文件冲突 - shadcn 组件:components/ui/ 下的组件是 shadcn 复制粘贴风格(不是 npm 包),可以直接修改源码而不破坏第三方升级
相关文档
- README.md —— 完整功能概览、权限矩阵、部署指南
- docs/修改记录.md —— 本仓库变更历史(强制维护)
- ../qy_lty/CLAUDE.md —— 后端项目上下文与跨仓库联动规则