feat: 新增官网新闻列表页 #2

已关闭
由 wx 于 2026-08-29 12:47:00 +08:00创建 · 1 评论
所有者

需求描述

为呼籁官网新增新闻列表页(路由 /news),展示公司新闻动态,支持分页浏览。前端 Nuxt SSR 页面 + 后端 API 支撑。新闻详情页不在本工单范围,列表项仅生成详情页链接。

技术方案要点

  • 前端:新增 /news 路由页面,列表项展示标题、摘要、封面图、发布时间;分页组件;处理加载中/空列表/API 异常状态
  • 后端:新增 GET /api/news 查询接口,支持分页、仅返回已发布(status=1)新闻、按 publish_date 倒序
  • 数据:新增 news 表,字段覆盖 id/title/summary/cover_image/content/publish_date/status/created_at/updated_at,建索引 idx_status_publish_date

影响范围(服务/模块/表/接口)

  • 前端:hulai-website Nuxt SSR 页面(/news 路由、组件、样式)
  • 后端:新闻查询 API(Controller/Service)
  • 数据库:news 表(新建)
  • 接口:GET /api/news(新增)

数据库变更

需执行 Flyway V*,新增 news 表:

  • id BIGINT 自增主键
  • title VARCHAR(255) NOT NULL
  • summary VARCHAR(500)
  • cover_image VARCHAR(500)
  • content TEXT
  • publish_date DATETIME
  • status TINYINT(0=草稿,1=已发布)
  • created_at / updated_at DATETIME
  • 索引 idx_status_publish_date(status, publish_date DESC)

接口变更

新增 GET /api/news,需配网关路由。
请求参数:page(默认1)、pageSize(默认10)
响应结构:{ code, message, data: { list, total, page, pageSize } }

接口变更专项

GET /api/news 模拟响应 JSON(HTTP 200 业务成功体):

{
  "code": 0,                          // 业务状态码,0=成功
  "message": "success",               // 业务提示信息
  "data": {
    "list": [                         // 新闻列表
      {
        "id": 1906123456789012345,     // 新闻ID(雪花ID)
        "title": "呼籁官网上线公告",    // 新闻标题
        "summary": "呼籁官网正式上线,为用户提供一站式旅游服务", // 新闻摘要
        "coverImage": "https://cdn.example.com/cover/news-202501.jpg", // 封面图URL
        "publishDate": "2025-01-01 10:00:00" // 发布时间
      }
    ],
    "total": 100,                     // 总条数
    "page": 1,                        // 当前页码
    "pageSize": 10                    // 每页条数
  }
}

验收 Checklist

  • 前端 /news 路由可正常访问,页面渲染无报错
  • 列表正确展示新闻标题、摘要、封面图、发布时间
  • 分页功能正常(页码切换、上/下一页、当前页高亮)
  • 空列表展示「暂无新闻」提示
  • 加载中展示 Loading 效果
  • API 异常展示错误提示 + 重试按钮,重试可恢复
  • 后端 GET /api/news 返回预期数据结构
  • 接口仅返回 status=1 的新闻
  • 列表按 publish_date 倒序排列
  • news 表创建成功且索引生效
  • 前端展示字段与后端返回字段对齐
  • 代码通过 lint/format 检查
  • 若后端为 Java 服务,错误码/错误信息通过中文审计测试
### 需求描述 为呼籁官网新增新闻列表页(路由 /news),展示公司新闻动态,支持分页浏览。前端 Nuxt SSR 页面 + 后端 API 支撑。新闻详情页不在本工单范围,列表项仅生成详情页链接。 ### 技术方案要点 - 前端:新增 /news 路由页面,列表项展示标题、摘要、封面图、发布时间;分页组件;处理加载中/空列表/API 异常状态 - 后端:新增 GET /api/news 查询接口,支持分页、仅返回已发布(status=1)新闻、按 publish_date 倒序 - 数据:新增 news 表,字段覆盖 id/title/summary/cover_image/content/publish_date/status/created_at/updated_at,建索引 idx_status_publish_date ### 影响范围(服务/模块/表/接口) - 前端:hulai-website Nuxt SSR 页面(/news 路由、组件、样式) - 后端:新闻查询 API(Controller/Service) - 数据库:news 表(新建) - 接口:GET /api/news(新增) ### 数据库变更 需执行 Flyway V*,新增 news 表: - id BIGINT 自增主键 - title VARCHAR(255) NOT NULL - summary VARCHAR(500) - cover_image VARCHAR(500) - content TEXT - publish_date DATETIME - status TINYINT(0=草稿,1=已发布) - created_at / updated_at DATETIME - 索引 idx_status_publish_date(status, publish_date DESC) ### 接口变更 新增 GET /api/news,需配网关路由。 请求参数:page(默认1)、pageSize(默认10) 响应结构:{ code, message, data: { list, total, page, pageSize } } ### 接口变更专项 GET /api/news 模拟响应 JSON(HTTP 200 业务成功体): ```json { "code": 0, // 业务状态码,0=成功 "message": "success", // 业务提示信息 "data": { "list": [ // 新闻列表 { "id": 1906123456789012345, // 新闻ID(雪花ID) "title": "呼籁官网上线公告", // 新闻标题 "summary": "呼籁官网正式上线,为用户提供一站式旅游服务", // 新闻摘要 "coverImage": "https://cdn.example.com/cover/news-202501.jpg", // 封面图URL "publishDate": "2025-01-01 10:00:00" // 发布时间 } ], "total": 100, // 总条数 "page": 1, // 当前页码 "pageSize": 10 // 每页条数 } } ``` ### 验收 Checklist - [ ] 前端 /news 路由可正常访问,页面渲染无报错 - [ ] 列表正确展示新闻标题、摘要、封面图、发布时间 - [ ] 分页功能正常(页码切换、上/下一页、当前页高亮) - [ ] 空列表展示「暂无新闻」提示 - [ ] 加载中展示 Loading 效果 - [ ] API 异常展示错误提示 + 重试按钮,重试可恢复 - [ ] 后端 GET /api/news 返回预期数据结构 - [ ] 接口仅返回 status=1 的新闻 - [ ] 列表按 publish_date 倒序排列 - [ ] news 表创建成功且索引生效 - [ ] 前端展示字段与后端返回字段对齐 - [ ] 代码通过 lint/format 检查 - [ ] 若后端为 Java 服务,错误码/错误信息通过中文审计测试
wx 于 2026-08-29 12:47:00 +08:00 指派给自己
作者
所有者

全分支联调测试单,验证通过,关闭。

全分支联调测试单,验证通过,关闭。
wx 于 2026-08-29 12:48:39 +08:00 关闭此工单
登录 并参与到对话中。
未选择标签
1 名参与者
通知
截止日期
未设置截止日期。
依赖工单

未设置依赖工单。

引用:wx/hulai-website#2