You need to sign in or sign up before continuing.
api-integration-log.md 39.9 KB

接口联调工作记录

记录接口文档更新情况和页面实际调试情况

📊 总体进度

  • 总接口数: 27
  • 已完成: 15 (55.6%)
  • 联调中: 0 (0%)
  • 已废弃: 3 (11.1%)
  • 待联调: 9 (33.3%)
  • 有阻塞: 0

📝 最近更新 (2026-02-06):

  • 搜索模块联调完成:searchAPI 接口前端已完成集成
    • 支持产品和资料的实时搜索
    • 支持分页加载和触底加载更多
    • 使用可复用卡片组件(MaterialCard、ProductCard)
  • 🆕 新增可复用卡片组件
    • MaterialCard.vue - 资料卡片组件(272行)
    • ProductCard.vue - 产品卡片组件(106行)
    • 已应用到:搜索页、首页、周热门资料页
  • 🔄 页面重构:搜索页、首页、周热门资料页使用新组件重构
    • 减少代码重复:净减少238行
    • 统一UI风格和交互逻辑
  • 收藏模块联调完成:2个接口(delAPI、listAPI)前端已完成联调
    • 收藏列表API:获取收藏数据,支持分页
    • 取消收藏API:删除单个收藏项
    • 添加收藏API:已实现,待页面集成
  • 文档模块联调中:fileListAPI 字段确认中,还在联调
  • 📝 文档模块接口字段确认
    • weekHotAPI(本周热门资料):字段已确认,更新接口文档,待联调
    • fileListAPI(文档列表):字段确认中,还在联调
  • 收藏模块后端完成:3 个收藏接口(addAPI、delAPI、listAPI)后端已开发完成,前端待联调
  • 埋点接口后端完成:埋点接口(addAPI)后端已开发完成,前端待联调
  • 产品模块联调完成:产品列表接口(listAPI)联调成功
    • 知识库页面:动态标签栏、分类筛选、滚动加载功能正常
    • 首页热卖产品:产品列表正常显示
  • 🆕 新增产品模块:添加产品列表接口(listAPI),前端集成完成,待联调
  • 🆕 知识库页面 API 集成:动态标签栏、分类筛选、滚动加载功能

📝 接口联调明细

用户中心模块

接口 1: 小程序授权

接口信息

  • 接口名称: miniProgramAuthAPI
  • 接口路径: /srv/?a=openid
  • 请求方法: POST
  • 负责页面: src/utils/openid.js (全局工具)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/utils/openid.js - ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 调用 wx.login 获取 code,后端返回 openid
  • 授权成功后自动将 sessionid 写入本地存储
  • 如果用户已绑定账号,授权接口会自动登录并返回用户信息
  • 实现位置:src/utils/openid.js:miniProgramAuth()

接口 2: 查询登录状态

接口信息

  • 接口名称: loginStatusAPI
  • 接口路径: /srv/?a=user&t=login_status
  • 请求方法: GET
  • 负责页面: src/stores/user.js (全局状态管理)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/stores/user.js - ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 返回 is_login (是否登录) 和 is_openid (是否已授权) 两个字段
  • 小程序启动时调用,用于判断是否需要展示登录页
  • 实现位置:src/stores/user.js:checkLoginStatus()

接口 3: 获取个人信息

接口信息

  • 接口名称: getProfileAPI
  • 接口路径: /srv/?a=user&t=get_profile
  • 请求方法: GET
  • 负责页面: src/pages/mine/index.vue, src/pages/avatar/index.vue, src/stores/user.js
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.2 修正 avatar 字段结构 修复头像显示问题 查看
2026-02-03 v1.1 新增 employee_no 字段(工号) 业务需求变更 查看
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/mine/index.vue 页面显示 ID 字段,应显示工号 userInfo?.id 改为 userInfo?.employee_no ✅ 已完成
2026-02-03 src/pages/mine/index.vue 头像显示不正确 userInfo?.avatar_url 改为 userInfo?.avatar.src ✅ 已完成
2026-02-03 src/pages/avatar/index.vue 新增获取当前头像功能 页面加载时调用 getProfileAPI() ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 返回用户信息结构json { "user": { "id": 123, "name": "张三", "employee_no": "EMP001", "avatar": { "name": "avatar.png", "hash": "abc123", "src": "https://cdn.ipadbiz.cn/manulife/avatar.png", // ⭐ 头像URL "height": "200", "width": "200", "size": 10240 } } }
  • 重要修复:v1.2 版本修正了 avatar 字段结构
    • ❌ 之前文档错误描述为 avatar_url(字符串)
    • ✅ 实际返回 avatar 对象(包含完整信息)
  • 访问方式
    • 头像URL: user.avatar.src
    • 文件名: user.avatar.name
    • 文件hash: user.avatar.hash
  • 在"我的"页面加载时调用
  • 在"修改头像"页面加载时调用(获取当前头像)
  • 401 自动跳转登录页(由 request.js 拦截器处理)
  • 实现位置:
    • src/pages/mine/index.vue:fetchUserProfile()
    • src/pages/avatar/index.vue:fetchCurrentAvatar()
    • src/stores/user.js:fetchUserInfo()

接口 4: 退出登录

接口信息

  • 接口名称: logoutAPI
  • 接口路径: /srv/?a=user&t=logout
  • 请求方法: POST
  • 负责页面: src/pages/mine/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/mine/index.vue - ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 解绑 openid 并清除登录状态
  • 调用成功后清除本地状态并跳转到首页
  • 实现位置:src/pages/mine/index.vue:handleLogout()

接口 5: 登录(邮箱账号密码)

接口信息

  • 接口名称: loginAPI
  • 接口路径: /srv/?a=user&t=login
  • 请求方法: POST
  • 负责页面: src/pages/login/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/login/index.vue - ✅ 已完成
2026-02-03 src/pages/login/index.vue 联调完成 接口正常工作 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 邮箱账号密码登录
  • 参数:uuid(邮箱)、password(密码)
  • 登录成功后获取用户信息
  • 实现位置:src/stores/user.js:login()

接口 6: 更新个人资料

接口信息

  • 接口名称: updateProfileAPI
  • 接口路径: /srv/?a=user&t=update_profile
  • 请求方法: POST
  • 负责页面: src/pages/avatar/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.2 修正请求参数结构 修复接口调用错误 查看
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/avatar/index.vue 参数结构不正确 改为传递完整 avatar 对象 ✅ 已完成
2026-02-03 src/pages/avatar/index.vue 字段映射错误 根据实际上传接口返回结构映射字段 ✅ 已完成
2026-02-03 src/pages/avatar/index.vue 联调完成 接口正常工作,头像更新成功 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 请求参数结构(v1.2 修正): javascript { avatar: { name: "文件名", hash: "文件hash", src: "https://cdn...", // 头像CDN URL height: "1770", // 字符串格式 width: "1766", // 字符串格式 size: 3806359 // 整数(字节) } }
  • 重要修复:v1.2 版本修正了请求参数结构
    • ❌ 之前文档错误描述参数为 avatar_meta_id
    • ✅ 实际参数为完整的 avatar 对象
  • 完整流程
    1. 选择图片 → Taro.chooseImage
    2. 上传到服务器 → Taro.uploadFile (/admin/?m=srv&a=upload&image_audit=1)
    3. 映射字段 → 根据实际上传接口返回结构
    4. 保存到服务器 → updateProfileAPI({ avatar: {...} })
  • 字段映射关系
    • name: data.data.file.name
    • hash: data.data.res.hash
    • src: data.data.src
    • height: data.data.heightdata.data.res.image_info.height
    • width: data.data.widthdata.data.res.image_info.width
    • size: data.data.file.sizedata.data.res.filesize
  • 实现位置:src/pages/avatar/index.vue:75-186
  • API 文档:docs/api-specs/user/update_profile.md

通用模块

接口 1: 获取七牛上传 Token(已废弃)

接口信息

  • 接口名称: qiniuTokenAPI
  • 接口路径: /srv/?a=upload
  • 请求方法: POST
  • 负责页面: src/pages/avatar/index.vue(已废弃)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看
2026-02-03 v1.1 标记为已废弃 改用直接上传方式 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 - 后端开发中 - ⏳ 后端开发中
2026-02-03 - 方案调整 改用 Taro.uploadFile 直接上传 ❌ 已废弃

接口状态: ❌ 已废弃

废弃原因:

  • 头像上传改用 Taro.uploadFile 直接上传到服务器(参考老来赛项目)
  • 不再需要七牛云上传流程
  • 简化了上传流程,减少了接口调用次数

备注:

  • 参数:filename(文件名)、file(图片 base64)
  • 返回七牛上传 token、upload_url、filekey
  • 实现位置:src/api/common.js:32

接口 2: 保存文件信息(已废弃)

接口信息

  • 接口名称: saveFileAPI
  • 接口路径: /srv/?a=upload&t=save_file
  • 请求方法: POST
  • 负责页面: src/pages/avatar/index.vue(已废弃)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看
2026-02-03 v1.1 标记为已废弃 改用直接上传方式 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 - 后端开发中 - ⏳ 后端开发中
2026-02-03 - 方案调整 改用 Taro.uploadFile 直接上传 ❌ 已废弃

接口状态: ❌ 已废弃

废弃原因:

  • 头像上传改用 Taro.uploadFile 直接上传到服务器
  • 不再需要七牛云上传后保存文件信息的流程

备注:

  • 参数:format(文件格式)、hash(文件 hash)、height(图片高)、width(图片宽)、filekey(文件 key)
  • 七牛上传成功后,将文件信息保存到服务器
  • 实现位置:src/api/common.js:53

接口 3: 上传图片到七牛云(完整流程)(已废弃)

接口信息

  • 接口名称: uploadImageToQiniuAPI
  • 接口路径: 封装接口(内部调用 qiniuTokenAPI、七牛上传、saveFileAPI
  • 请求方法: 封装函数
  • 负责页面: src/pages/avatar/index.vue(已废弃)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看
2026-02-03 v1.1 标记为已废弃 改用直接上传方式 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/avatar/index.vue 后端开发中 - ⏳ 后端开发中
2026-02-03 src/pages/avatar/index.vue 方案调整 改用 Taro.uploadFile 直接上传 ❌ 已废弃

接口状态: ❌ 已废弃

废弃原因:

  • 改用 Taro.uploadFile 直接上传到服务器(/admin/?m=srv&a=upload&image_audit=1
  • 不再需要七牛云上传流程,简化了实现

备注:

  • 原完整上传流程:
    1. 读取本地文件为 base64
    2. 获取七牛上传 token(调用 qiniuTokenAPI
    3. 上传到七牛云(调用 qiniuUploadAPI
    4. 保存文件信息到服务器(调用 saveFileAPI
  • 新上传流程:
    1. 使用 Taro.chooseImage 选择图片
    2. 使用 Taro.uploadFile 直接上传到服务器
    3. 服务器返回图片 URL(支持图片审核)
  • 实现位置:src/api/common.js:77-150(已废弃)
  • 新实现位置:src/pages/avatar/index.vue:75-115

意见反馈模块

接口 1: 意见反馈列表

接口信息

  • 接口名称: listAPI
  • 接口路径: /srv/?a=feedback&t=list
  • 请求方法: GET
  • 负责页面: src/pages/feedback-list/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/feedback-list/index.vue 生命周期钩子导入错误 useShowuseDidShow ✅ 已解决
2026-02-03 src/pages/feedback-list/index.vue onMounted 导入错误 从 Vue 导入而非 Taro ✅ 已解决
2026-02-03 src/pages/feedback-list/index.vue 图片显示错误 images 改为数组格式处理 ✅ 已解决
2026-02-03 src/pages/feedback-list/index.vue NutUI Loading 组件报错 使用自定义 CSS spinner ✅ 已解决
2026-02-03 src/pages/feedback-list/index.vue 联调完成 列表加载、分页、图片预览均正常 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 参数:page(页码,从0开始)、limit(每页数量)
  • 返回反馈列表,包含状态、类别、图片、回复等信息
  • 实现位置:src/pages/feedback-list/index.vue:183-214
  • 列表支持分页加载和滚动到底部自动加载更多
  • 使用 useDidShow 实现从提交页返回时自动刷新列表

接口 2: 提交意见反馈

接口信息

  • 接口名称: addAPI
  • 接口路径: /srv/?a=feedback&t=add
  • 请求方法: POST
  • 负责页面: src/pages/feedback/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看
2026-02-03 v1.1 更新接口名称 submitFeedbackAPIaddAPI 查看
2026-02-03 v1.2 更新参数格式 images 改为数组格式 查看
2026-02-03 v1.3 移除 contact 参数 不再需要联系方式字段 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/feedback/index.vue 联调完成 支持类型选择、图片上传、表单验证 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 参数:category(反馈类别)、note(反馈内容)、images(图片数组,可选)
  • 类别:1=功能建议, 3=问题反馈, 7=其他问题
  • 图片上传限制:最多3张,每张不超过5MB
  • 图片上传支持审核,不通过时提示用户
  • 实现位置:src/pages/feedback/index.vue:193-232

产品模块

接口 1: 产品列表

接口信息

  • 接口名称: listAPI
  • 接口路径: /srv/?a=get_product&t=list
  • 请求方法: GET
  • 负责页面: src/pages/index/index.vue (首页热卖产品模块)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/index/index.vue 联调完成 热卖产品列表、动态标签均正常 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 调用参数: recommend: 'hot' (热卖产品)
  • 首页场景: 不传 limit、page、cid 参数,使用默认值
  • 返回数据结构:
    • data.list[] - 产品列表
    • data.categories[] - 分类列表
    • data.total - 产品总数
  • 产品字段:
    • id - 产品ID
    • product_name - 产品名称
    • recommend - 推荐位 (normal-普通, hot-热卖)
    • tags[] - 产品标签数组(包含 id、name、bg_color、text_color)
    • cover_image - 产品封面图
    • categories[] - 产品所属分类
  • 标签渲染: 使用 API 返回的 bg_colortext_color 动态设置标签样式
  • 实现位置: src/pages/index/index.vue:250-262, src/pages/index/index.vue:52-92

接口 2: 产品详情

接口信息

  • 接口名称: detailAPI
  • 接口路径: /srv/?a=get_product&t=detail
  • 请求方法: GET
  • 负责页面: src/pages/product-detail/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/product-detail/index.vue nut-loading 组件报错 改用纯 CSS 加载动画 ✅ 已解决
2026-02-03 src/pages/product-detail/index.vue 联调完成 产品详情、富文本描述、附件列表均正常 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 调用参数: i: productId (产品ID)
  • 返回数据结构:
    • product_name - 产品名称
    • product_description - 产品描述(富文本HTML)
    • cover_image - 产品封面图
    • recommend - 推荐位
    • tags[] - 产品标签数组(包含 id、name、bg_color、text_color)
    • documents[] - 附件列表
    • categories[] - 产品所属分类
  • 富文本渲染: 使用 <rich-text> 组件渲染 product_description 字段
  • 附件显示:
    • 文件名: doc.file_name
    • 文件大小: doc.file_size_formatted (已格式化,如 "72.61 KB")
    • 文件URL: doc.file_url
    • 点击预览: 通过 useFileOperation composable 打开文档
  • 移除功能: 原有的收藏功能已移除(按钮和代码)
  • 实现位置: src/pages/product-detail/index.vue:135-162, src/pages/product-detail/index.vue:56-92

消息模块

接口 1: 我的消息列表

接口信息

  • 接口名称: myListAPI
  • 接口路径: /srv/?a=website_msg&t=my_list
  • 请求方法: GET
  • 负责页面: 待确认
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 - 后端开发中 - ⏳ 后端开发中

接口状态: ⏳ 后端开发中

备注:

  • 参数:page(页码)、limit(每页数量)
  • 返回用户消息列表
  • 后端接口开发中

接口 2: 消息详情

接口信息

  • 接口名称: detailAPI
  • 接口路径: /srv/?a=website_msg&t=detail
  • 请求方法: GET
  • 负责页面: 待确认
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 - 后端开发中 - ⏳ 后端开发中

接口状态: ⏳ 后端开发中

备注:

  • 参数:i(消息ID)
  • 返回消息详情
  • 后端接口开发中

产品模块

接口 1: 产品列表

接口信息

  • 接口名称: listAPI
  • 接口路径: /srv/?a=get_product&t=list
  • 请求方法: GET
  • 负责页面: src/pages/knowledge-base/index.vue, src/pages/index/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-03 src/pages/knowledge-base/index.vue 前端集成完成,待联调 API 接口开发中 ⏳ 待联调
2026-02-03 src/pages/knowledge-base/index.vue 联调完成 接口正常工作,分类筛选、分页加载均正常 ✅ 已完成
2026-02-03 src/pages/index/index.vue 联调完成 热卖产品列表正常显示 ✅ 已完成

接口状态: ✅ 已完成

数据结构:

{
  "code": 1,
  "data": {
    "categories": [
      { "id": 2769851, "name": "分类名称" }
    ],
    "list": [
      {
        "id": 2769856,
        "product_name": "产品名称",
        "recommend": "hot",  // normal-普通, hot-热卖
        "form_sn": "customize_jsj_pnzuky",
        "created_time": "2026-02-03 10:36:29",
        "categories": [
          { "id": "2769851", "name": "分类名称" }
        ],
        "tags": [
          { "id": "2769847", "name": "标签名", "bg_color": "#3e5160", "text_color": "#ffffff" }
        ],
        "cover_image": "https://cdn.ipadbiz.cn/..."
      }
    ],
    "total": 3
  }
}

备注:

  • 参数:
    • page: 页码(从 0 开始)
    • limit: 每页数量(默认 10)
    • cid: 分类 ID(可选,用于筛选)
    • recommend: 推荐位(可选,normal/hot)
  • 实现位置:
    • src/pages/knowledge-base/index.vue:141-192 (fetchProducts 函数)
    • src/pages/index/index.vue:98-130 (热卖产品)
  • 功能特性:
    • 动态标签栏:从 data.categories 生成
    • 分类筛选:点击分类传递 cid 参数,重置分页状态
    • 滚动加载:使用 scroll-view 组件,监听 @scrolltolower 事件
    • 严格遵循 API 字段映射:
    • product_name (产品名称)
    • cover_image (封面图)
    • recommend (推荐状态: hot/normal)
    • tags (动态标签,含 bg_color/text_color)

收藏模块

接口 1: 添加收藏

接口信息

  • 接口名称: addAPI
  • 接口路径: /srv/?a=favorite&t=add
  • 请求方法: POST
  • 负责页面: 待确认(产品详情页、资料详情页等)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-05 v1.2 更新状态:前端API已实现,待页面集成 API实现完成 查看
2026-02-04 v1.1 更新状态:后端已完成,前端待联调 后端开发完成 查看
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-05 src/api/favorite.js API已实现,待页面调用 ⏳ 待页面集成
2026-02-04 - 后端已完成,前端待联调 - ⏳ 待联调
2026-02-03 - 后端开发中 - ⏳ 后端开发中

接口状态: ⏳ 待页面集成

备注:

  • 参数:meta_id(文件ID)
  • 用于收藏产品或资料
  • 后端接口已完成
  • 前端API已实现:src/api/favorite.js:addAPI
  • 待产品详情页、资料详情页集成调用

接口 2: 取消收藏

接口信息

  • 接口名称: delAPI
  • 接口路径: /srv/?a=favorite&t=del
  • 请求方法: POST
  • 负责页面: src/pages/favorites/index.vue(我的收藏页面)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-05 v1.2 前端联调完成 收藏页面已接入 查看
2026-02-04 v1.1 更新状态:后端已完成,前端待联调 后端开发完成 查看
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-05 src/pages/favorites/index.vue 接入delAPI,删除功能正常 ✅ 已完成
2026-02-04 - 后端已完成,前端待联调 - ⏳ 待联调
2026-02-03 - 后端开发中 - ⏳ 后端开发中

接口状态: ✅ 已完成

备注:

  • 参数:meta_id(文件ID)
  • 用于取消收藏的产品或资料
  • 后端接口已完成
  • 前端已集成到收藏页面:src/pages/favorites/index.vue:onDelete()
  • 删除成功后从列表中移除该项

接口 3: 收藏列表

接口信息

  • 接口名称: listAPI
  • 接口路径: /srv/?a=favorite&t=list
  • 请求方法: GET
  • 负责页面: src/pages/favorites/index.vue(我的收藏页面)
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-05 v1.2 前端联调完成 收藏页面已接入 查看
2026-02-04 v1.1 更新状态:后端已完成,前端待联调 后端开发完成 查看
2026-02-03 v1.0 初始版本 - 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-05 src/pages/favorites/index.vue 接入listAPI,列表展示正常 ✅ 已完成
2026-02-04 - 后端已完成,前端待联调 - ⏳ 待联调
2026-02-03 - 后端开发中 - ⏳ 后端开发中

接口状态: ✅ 已完成

备注:

  • 参数:
    • k(可选):搜索文件名
    • page:页码,从 0 开始
    • limit:每页数量
  • 返回数据结构: javascript { code: 1, data: { list: [ { meta_id: 123, // 文件ID name: "文件名称", // 文件名称 src: "https://...", // 文件URL created_time: "2026-02-03 12:00:00", // 收藏时间 size: "1.2MB" // 文件大小 } ] } }
  • 后端接口已完成
  • 前端已集成到收藏页面:src/pages/favorites/index.vue:fetchFavoritesList()
  • 移除了分类Tabs逻辑,简化为统一列表展示
  • 支持加载状态、空状态、错误处理

文档模块

接口 1: 本周热门资料

接口信息

  • 接口名称: weekHotAPI
  • 接口路径: /srv/?a=file&t=week_hot
  • 请求方法: GET
  • 负责页面: 待确认
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-04 v1.0 字段确认,更新接口文档 后端确认字段结构 查看
2026-02-04 v0.1 初稿版本 后端字段未确定,待联调确认 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-04 - 后端字段已确认 待前端集成联调 ⏳ 待联调

接口状态: ⏳ 待联调

备注:

  • 参数
    • page: 页码,从 0 开始
    • limit: 每页数量
  • 返回数据结构javascript { code: 1, data: { list: [ { meta_id: 123, // 文件ID name: "文件名称", // 文件名称 src: "https://...", // 文件URL size: "1.2MB", // 文件大小 read_people_count: 100, // 学习人数 read_people_percent: 85.5 // 学习人数比例 } ] } }
  • 字段确认状态:✅ 字段已确认
  • 实现位置:src/api/file.js:weekHotAPI

接口 2: 文档列表

接口信息

  • 接口名称: fileListAPI
  • 接口路径: /srv/?a=file&t=file_list
  • 请求方法: GET
  • 负责页面: 待确认
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-04 v1.0 字段确认,更新接口文档 后端确认字段结构 查看
2026-02-04 v0.1 初稿版本 后端字段未确定,待联调确认 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-04 - 后端字段已确认 待前端集成联调 ⏳ 待联调

接口状态: ⏳ 待联调

备注:

  • 参数
    • client_id: 主体 ID(可选)
    • cid: 分类 ID(可选)
    • page: 页码(从 0 开始)
    • limit: 每页数量
  • 返回数据结构javascript { code: 1, data: { cate: { id: 2769851, // 分类id category_name: "分类名称", // 分类名称 category_parent: 0, // 分类父级 icon: "https://..." // 分类图标 }, children: [ { id: 2769852, // 二级分类id category_name: "二级分类名", category_parent: 2769851, // 二级分类父级id icon: "https://...", // 二级分类图标 list: [...], // 二级分类的附件列表 children: [...] // 三级分类 } ], list: [ { name: "附件名称", // 附件名称 value: "https://...", // 附件地址 extension: "pdf", // 后缀名 post_date: "2026-02-04", // 发布时间 size: "2.5MB", // 附件大小 id: "12345" // 附件id } ], total: 100, // 主分类附件数量 max_level: "3" // 层级 } }
  • 字段确认状态:✅ 字段已确认
  • 接口路径更正/srv/?a=file&t=file_list(之前错误为 /srv/?a=get_file_list&t=file_list
  • 实现位置:src/api/file.js:fileListAPI

搜索模块

接口 1: 搜索(产品、资料)

接口信息

  • 接口名称: searchAPI
  • 接口路径: /srv/?a=search
  • 请求方法: GET
  • 负责页面: src/pages/search/index.vue
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-06 v1.0 初始版本 前端集成完成,联调成功 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-06 src/pages/search/index.vue 实时搜索、分页加载均正常 ✅ 已完成

接口状态: ✅ 已完成

备注:

  • 参数:
    • k: 搜索关键字(必需)
    • type: 搜索类型,product=产品,file=资料(必需)
    • page: 页码,从 0 开始
    • limit: 每页数量(默认 10)
  • 返回数据结构javascript { code: 1, data: { list: [...], // 搜索结果列表 total: 100 // 总数 } }
  • 产品字段:
    • id - 产品ID
    • product_name - 产品名称
    • tags[] - 产品标签(含 bg_color/text_color)
    • cover_image - 封面图
    • form_sn - 计划书模板标识
  • 资料字段:
    • id - 文件ID
    • title - 文件标题
    • fileName - 文件名
    • fileSize - 文件大小
    • extension - 文件扩展名
    • downloadUrl - 下载链接
    • learners - 学习人数
    • readPeoplePercent - 学习人数比例
    • collected - 是否已收藏
  • 实现位置: src/pages/search/index.vue:204-265 (performSearch 函数)
  • 功能特性:
    • 实时搜索:输入关键字后自动调用API
    • 双Tab切换:支持产品和资料切换
    • 分页加载:触底自动加载更多
    • 结果统计:显示找到的相关结果数量
    • 动画效果:列表项逐个淡入动画

埋点模块

接口 1: 添加埋点

接口信息

  • 接口名称: addAPI
  • 接口路径: /srv/?a=event&t=add
  • 请求方法: POST
  • 负责页面: 待确认
  • 负责人: 后端团队

接口文档更新记录

日期 版本 变更内容 变更原因 文档链接
2026-02-04 v1.0 初始版本 后端已完成,前端待联调 查看

页面调试情况

日期 调试页面 问题记录 解决方案 状态
2026-02-04 - 后端已完成,前端待联调 - ⏳ 待联调

接口状态: ⏳ 待联调

备注:

  • 参数:
    • type(类型):READ_FILE=阅读素材
    • object_id(文件ID)
  • 用于记录用户行为埋点
  • 后端接口已完成
  • 实现位置:src/api/event.js:addAPI

模块模板

复制下方模板添加新接口:

#### 接口 X: [接口名称]

**接口信息**
- **接口名称**: `xxx`
- **接口路径**: `/srv/?a=xxx`
- **请求方法**: GET/POST
- **负责页面**: `src/pages/xxx/index.vue`
- **负责人**: XXX

**接口文档更新记录**

| 日期 | 版本 | 变更内容 | 变更原因 | 文档链接 |
|------|------|---------|---------|---------|
| YYYY-MM-DD | vX.X | - | - | [查看](#) |

**页面调试情况**

| 日期 | 调试页面 | 问题记录 | 解决方案 | 状态 |
|------|---------|---------|---------|------|
| YYYY-MM-DD | `pages/xxx/index.vue` | - | - | ⏳ 未开始 |

**接口状态**: ⏳ 未开始

**备注**:
-

🔍 问题汇总

高优先级问题 🔴

问题描述 接口名称 负责人 预计解决时间
- - - -

中优先级问题 🟡

问题描述 接口名称 负责人 预计解决时间
- - - -

低优先级问题 🟢

问题描述 接口名称 负责人 预计解决时间
- - - -

📈 进度追踪

本周进度 (2026-01-27 ~ 2026-02-04)

  • 新增接口: 17
  • 完成联调: 12
  • 已废弃: 3
  • 待联调: 9
  • 后端开发中: 2
  • 发现问题: 6
  • 解决问题: 6

历史进度

完成数 新增数 废弃数 问题数
2026-01-27 ~ 2026-02-04 12 17 3 0

📌 快速索引

按状态查看

按模块查看

按负责人查看


📖 使用说明

状态标识

  • 已完成 - 接口正常工作,测试通过
  • 🔄 联调中 - 正在调试,部分功能可用
  • 未开始 - 尚未开始联调
  • ⚠️ 有阻塞 - 遇到阻塞问题,无法继续

优先级标识

  • 🔴 高优先级 - 影响核心功能,需要立即处理
  • 🟡 中优先级 - 影响次要功能,需要尽快处理
  • 🟢 低优先级 - 优化类问题,可以稍后处理

记录时机

  • 接口文档更新时: 记录到"接口文档更新记录"表格
  • 页面联调时: 记录到"页面调试情况"表格
  • 发现问题: 记录到对应接口的调试情况,并同步到"问题汇总"
  • 解决问题: 更新调试情况的状态,并从"问题汇总"中移除或标记为已解决

维护建议

  1. 定期更新: 每天结束前更新当天的工作记录
  2. 同步会议: 在前后端对接会议上,根据此文档讨论问题
  3. 版本控制: 重要的接口变更应该提交到 Git,便于追溯

最后更新时间: 2026-02-06 17:20 文档版本: v2.5 更新内容:

  • 搜索模块联调完成:新增 searchAPI 接口,前端已完成集成
  • 🆕 新增可复用卡片组件:MaterialCard、ProductCard
  • 🔄 页面重构:搜索页、首页、周热门资料页使用新组件重构,减少代码重复
  • 更新总体进度:27个接口(15个已完成,9个待联调,3个已废弃)

历史版本:

  • v2.1 (2026-02-03 21:00): 产品模块联调完成
  • v2.0 (2026-02-03 20:40): 新增产品模块
  • v1.9 (2026-02-03 20:30): 新增收藏模块
  • v1.8 (2026-02-03 20:00): 用户中心模块头像接口修复
  • v1.7 (2026-02-03 23:30): 产品模块联调完成
  • v1.6 (2026-02-02): 意见反馈模块联调完成