个人照片墙应用,采用新野兽派(Neo-Brutalism)设计语言的便利贴(瀑布流)布局展示精选图片。支持标签分类、互动点赞、智能搜索,部署在 /atlas/ 路径下。
| 便利贴布局 | 瀑布流布局 |
|---|---|
![]() |
![]() |
| 登录页面 |
|---|
![]() |
/api/login)本项目已纳入根目录的 pnpm workspace:
# 根目录安装所有依赖
pnpm install
# 开发模式
pnpm --filter atlas dev
# 生产构建(产物自动输出到 web/public/atlas/)
pnpm build:photo-wall
或在 apps/photo-wall 目录内独立操作:
cd apps/photo-wall
pnpm install
pnpm dev # 开发
pnpm build # 构建
apps/photo-wall/
├── docs/ # 项目文档
│ ├── API.md # API 接口文档
│ ├── BACKEND.md # 后端对接文档
│ └── FRONTEND.md # 前端开发文档
├── public/ # 静态资源
│ ├── icons/
│ │ └── icon_zh_48.png # PWA 图标
│ └── index.html # HTML 模板
├── src/ # 源码目录
│ ├── api/ # API 接口配置
│ │ ├── api.ts # 接口地址定义
│ │ └── interceptor.ts # 请求拦截器(Bearer Token)
│ ├── assets/ # 静态资源
│ │ ├── bg_1.jpg # 背景图 1
│ │ ├── bg_3.webp # 背景图 3
│ │ ├── heart.svg # 空心点赞图标
│ │ └── redheart.svg # 实心点赞图标
│ ├── components/ # Vue 组件
│ │ ├── Atlas.vue # 照片墙主组件
│ │ ├── NotFound.vue # 404 页面
│ │ ├── admin/ # 后台管理组件
│ │ │ ├── AdminAtlas.vue # 照片管理
│ │ │ ├── AdminTag.vue # 标签管理
│ │ │ └── AdminUser.vue # 用户管理
│ │ ├── layout/ # 布局组件
│ │ │ └── NavBar.vue # 导航栏
│ │ └── login/ # 登录相关组件
│ │ ├── ForgotPassword.vue # 忘记密码
│ │ └── Login.vue # 登录弹窗
│ ├── router/ # 路由配置
│ │ └── router.ts # Vue Router 配置
│ ├── store/ # Pinia 状态管理
│ │ └── store.ts # 全局状态
│ ├── styles/ # 全局样式
│ │ └── global.css # 全局 CSS
│ ├── utils/ # 工具函数
│ │ └── langList.ts # 语言列表
│ ├── views/ # 页面视图
│ │ ├── AdminHome.vue # 管理后台页
│ │ └── Home.vue # 首页
│ ├── App.vue # 根组件
│ ├── main.ts # 入口文件
│ ├── auto-imports.d.ts # auto-import 类型声明
│ ├── components.d.ts # 组件自动导入声明
│ └── vite.d.ts # Vite 类型声明
├── src-android/ # Android 客户端源码
│ ├── app/ # App 模块
│ │ ├── build.gradle.kts # App 构建配置
│ │ ├── proguard-rules.pro # ProGuard 规则
│ │ └── src/ # 源码
│ │ ├── androidTest/ # 安卓测试
│ │ ├── main/ # 主源码
│ │ └── test/ # 单元测试
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── build.gradle.kts # 项目构建配置
│ ├── gradle.properties # Gradle 属性
│ ├── gradlew # Gradle Wrapper (Unix)
│ ├── gradlew.bat # Gradle Wrapper (Windows)
│ ├── libs.versions.toml # 依赖版本管理
│ ├── settings.gradle.kts # Gradle 设置
│ └── 项目文档.md # Android 项目文档
├── env.example # 环境变量模板
├── package.json # 包配置
├── tsconfig.app.json # TypeScript App 配置
├── tsconfig.json # TypeScript 主配置
├── tsconfig.node.json # TypeScript Node 配置
├── vite.config.ts # Vite 配置(base: "/atlas/")
└── .gitignore # Git 忽略规则
生产构建产物输出到 web/public/atlas/,与 Next.js 主站一起部署:
# 根目录一键构建
pnpm build:photo-wall
# 产物位于 web/public/atlas/,由 Next.js 站点统一托管