# zhora-front **Repository Path**: coding_13/zhora-front ## Basic Information - **Project Name**: zhora-front - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-08 - **Last Updated**: 2026-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 灏米AI前端(`zhora-front`) 基于 Vue 3 + Vite + Element Plus 的社区前端项目,已完成社区列表/详情、发布图片、登录态、个人中心等核心流程,并对接后端分页接口。 ## 1. 功能说明(当前实现) ### 1.1 全局框架 - 左侧主导航(创意社区为主入口,其他菜单为规划占位) - 顶部/侧栏品牌展示统一为「灏米AI」 - 响应式布局(桌面端 + 移动端侧栏弹出) - 版本切换(本地持久化) ### 1.2 认证与账号能力 - 登录方式:飞书 OAuth(可开关)+ 密码登录 - 本地存储 token 与用户信息(Pinia + localStorage) - 按需鉴权:浏览社区不强制登录,点赞/收藏/发布等能力需登录 - 个人中心名称优先读取 `name` 字段 ### 1.3 社区列表页(`/community`) - 标签页:最新 / 热门 / 点赞 - 后端分页加载(触底自动加载更多) - 排序参数对接: - 最新:`sortType = LATEST` - 热门:`sortType = MOST_LIKED` - 瀑布流展示:固定高度档位 + 最短列优先分配(不依赖原图尺寸) - 卡片 hover 操作:下载、点赞 - 头像字段兼容(含协议相对 URL `//xxx` 自动补全为 `https://xxx`) ### 1.4 作品详情页(`/community/:id`) - 展示标题、标签、统计、轮播图、作品描述 - 时间字段仅使用新协议: - 创建时间:`createTime` - 更新时间:`updateTime` - 描述区名称为「作品描述」 - 右侧作者信息、收藏、下载、推荐参数等扩展信息 ### 1.5 发布图片(弹窗) - 本地多图上传、封面选择、分类标签、标题/描述填写 - 提交方式:`POST multipart/form-data` - 图片字段按嵌套结构提交(`images[i].file`、`images[i].isCover`) ### 1.6 请求层能力(全局) - 全局 Loading(自动开启/关闭) - 防重复提交(同 method + url + body 的请求并发时拦截) - 统一鉴权头注入与统一错误处理 ## 2. 后端接口对接约定 > `VITE_API_BASE_URL` 建议指向后端 `/front` 根路径,例如 `http://127.0.0.1:19002/front`。 ### 2.1 社区分页接口 - 路径:`POST /v1/artworks/page`(最终请求地址为 `${VITE_API_BASE_URL}/v1/artworks/page`) - 请求体示例: ```json { "pageNum": 1, "pageSize": 20, "sortType": "LATEST" } ``` - 排序枚举: - `LATEST`:最新 - `MOST_LIKED`:点赞最高 - 前端关注字段(核心): - `id` - `title` - `authorName` - `authorAvatarUrl` - `coverImageUrls`(列表封面优先) - `imageUrls`(详情图优先) - `description` - `createTime`(`yyyy-MM-dd HH:mm`) - `updateTime`(`yyyy-MM-dd HH:mm`) - `likes` / `likeCount`(二选一兼容) ### 2.2 图片发布接口 - 路径:`POST /api/v1/artworks/push` - `Content-Type: multipart/form-data` - 关键字段: - `title` - `description` - `tagIds`(多值) - `images[0].file`, `images[0].isCover` ... ## 3. 开发要求 ### 3.1 代码规范要求 - 统一使用 Vue 3 `