api-integration-log.md 25.1 KB

接口联调工作记录

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

📊 总体进度

  • 总接口数: 16
  • 已完成: 11 (68.8%)
  • 联调中: 0 (0%)
  • 已废弃: 3 (18.8%)
  • 后端开发中: 2 (12.5%)
  • 有阻塞: 0

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

  • 修复获取个人信息接口字段访问错误:修正 avatar 字段结构(对象而非字符串)
  • 修复更新个人资料接口参数结构错误:传递完整 avatar 对象而非 avatar_meta_id
  • 修复头像上传接口数据映射错误:根据实际返回结构正确映射字段
  • 新增头像设置页面加载时获取用户当前头像功能:提升用户体验
  • 更新 API 文档:完善 get_profile 和 update_profile 接口文档

📝 接口联调明细

用户中心模块

接口 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)
  • 返回消息详情
  • 后端接口开发中

模块模板

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

#### 接口 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-03)

  • 新增接口: 16
  • 完成联调: 11
  • 已废弃: 3
  • 联调中: 0
  • 后端开发中: 2
  • 发现问题: 6
  • 解决问题: 6

历史进度

完成数 新增数 废弃数 问题数
2026-01-27 ~ 2026-02-03 9 16 3 0

📌 快速索引

按状态查看

按模块查看

按负责人查看


📖 使用说明

状态标识

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

优先级标识

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

记录时机

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

维护建议

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

最后更新时间: 2026-02-03 20:00 文档版本: v1.8 更新内容:

  • 用户中心模块 v1.2 修复:2个接口
    • 获取个人信息(getProfileAPI):✅ 已修复
    • 修复头像字段结构从 avatar_url 字符串改为 avatar 对象
    • 修复 mine 页面头像显示问题(userInfo.avatar?.src)
    • 更新个人资料(updateProfileAPI):✅ 已修复
    • 修复参数结构从 avatar_meta_id 改为完整 avatar 对象
    • 修复上传接口响应数据映射(正确提取 name、hash、src、height、width、size 字段)
    • 添加页面加载时获取当前头像功能
  • 更新总体进度:16个接口(11个已完成,3个已废弃,2个后端开发中)

历史版本:

  • v1.7 (2026-02-03 23:30): 产品模块联调完成
  • v1.6 (2026-02-02): 意见反馈模块联调完成