# 前端修改说明 ## 📝 修改文件清单 ``` ✅ 已修改的文件(3个): frontend/ ├── pages/order/confirm.vue # 订单确认页(+40行) ├── pages/commission/components/ │ └── commission-info.vue # 分销中心个人信息(+30行) └── sheep/api/ ├── invite.js # 新增邀请码API(新建) └── index.js # 注册邀请码API(+2行) ``` ## 🎯 功能说明 ### 1. 订单确认页 - 邀请码输入框 **位置**: 订单备注下方 **功能**: - ✅ 仅未绑定上级的用户显示(`v-if="!userInfo.parent_user_id"`) - ✅ 非必填,6位大写字母+数字 - ✅ 失焦自动验证(调用 `/invite/validate` 接口) - ✅ 验证成功显示绿色勾号 - ✅ 提交订单时自动携带 `invite_code` 参数 **代码片段**: ```vue ``` **验证逻辑**: ```javascript async function onValidateInvite() { const code = state.inviteCode.trim().toUpperCase(); if (code.length !== 6) { sheep.$helper.toast('邀请码格式错误'); return; } const { code: resCode } = await sheep.$api.invite.validate({ invite_code: code }); if (resCode === 1) { state.inviteValidated = true; sheep.$helper.toast('邀请码验证成功'); } } ``` **提交订单**: ```javascript if (state.inviteValidated && state.inviteCode) { state.orderPayload.invite_code = state.inviteCode; } const { code, data } = await sheep.$api.order.create(state.orderPayload); ``` --- ### 2. 个人中心 - 显示邀请码 **位置**: 分销中心个人信息卡片,等级标签下方 **功能**: - ✅ 自动获取邀请码(`/invite/myCode`) - ✅ 点击复制邀请码到剪贴板 - ✅ 复制成功提示 **代码片段**: ```vue 我的邀请码: {{ state.inviteCode }} ``` **逻辑**: ```javascript // 页面加载时获取邀请码 async function getInviteCode() { const { code, data } = await sheep.$api.invite.myCode(); if (code === 1) { state.inviteCode = data.invite_code; } } // 复制邀请码 function onCopyCode() { sheep.$helper.copyText(state.inviteCode); sheep.$helper.toast('邀请码已复制'); } onMounted(() => { getInviteCode(); }); ``` --- ## 🔌 API 接口 ### 新增 `sheep.$api.invite` 模块 ```javascript // 1. 获取我的邀请码 sheep.$api.invite.myCode() // 响应: { code: 1, data: { invite_code: "ABC123", invite_count: 5 } } // 2. 验证邀请码 sheep.$api.invite.validate({ invite_code: "ABC123" }) // 响应: { code: 1, msg: "邀请码有效", data: { ... } } // 3. 我邀请的用户列表 sheep.$api.invite.myInvites({ page: 1 }) // 响应: { code: 1, data: { total: 10, data: [...] } } ``` --- ## 🎨 样式调整 ### 订单确认页样式 ```scss .invite-input-box { position: relative; .validate-tag { margin-left: 10rpx; font-size: 32rpx; } } ``` ### 个人中心样式 ```scss .invite-code-box { margin-top: 12rpx; padding: 4rpx 12rpx; background: rgba(255, 255, 255, 0.2); border-radius: 20rpx; border: 1rpx solid rgba(255, 255, 255, 0.3); .invite-code { font-size: 26rpx; font-weight: bold; color: #fff; letter-spacing: 2rpx; } } ``` --- ## 🧪 测试步骤 ### 测试1: 订单页邀请码输入 ```bash # 1. 登录建行生活用户(未绑定上级) # 2. 加入购物车,进入订单确认页 # 3. 查看是否显示"邀请码"输入框 # 4. 输入邀请码(如:ABC123) # 5. 失焦后查看是否显示验证成功图标 # 6. 提交订单 # 7. 后台检查是否绑定成功: SELECT parent_user_id, invite_code_used FROM user WHERE id = 新用户ID; ``` ### 测试2: 个人中心显示邀请码 ```bash # 1. 进入分销中心页面 # 2. 查看个人信息卡片,等级标签下方 # 3. 确认显示"我的邀请码: XXXXXX" # 4. 点击邀请码 # 5. 确认提示"邀请码已复制" # 6. 粘贴验证是否成功复制 ``` ### 测试3: 已绑定用户不显示输入框 ```bash # 1. 登录已有上级的用户 # 2. 进入订单确认页 # 3. 确认不显示"邀请码"输入框 ``` --- ## 🐛 常见问题 ### 问题1: 邀请码输入框不显示 **检查**: ```javascript // 确认用户是否已绑定 console.log(userInfo.parent_user_id); // 应为 null ``` ### 问题2: 验证失败 **检查**: ```bash # 查看API响应 curl -X POST http://your-domain/invite/validate -d "invite_code=ABC123" # 查看后端日志 tail -f runtime/log/$(date +%Y%m)/$(date +%d).log | grep "邀请码" ``` ### 问题3: 个人中心不显示邀请码 **检查**: ```javascript // 检查API是否成功 const res = await sheep.$api.invite.myCode(); console.log(res); // 检查用户是否有邀请码 SELECT invite_code FROM user WHERE id = 你的用户ID; ``` --- ## 📱 界面预览 ### 订单确认页 ``` ┌────────────────────────────────┐ │ 商品信息 │ ├────────────────────────────────┤ │ 订单备注 [建议留言前先与商家沟通]│ ├────────────────────────────────┤ │ 邀请码 [选填(6位大写字母+数字)] ✓│ ← 新增 └────────────────────────────────┘ ``` ### 个人中心 ``` ┌────────────────────────────────┐ │ 👤 张三 │ │ 🏷️ 分销商等级 │ │ 📋 我的邀请码: ABC123 📋 │ ← 新增 └────────────────────────────────┘ ``` --- ## ✅ 完成检查清单 - [x] 订单页显示邀请码输入框 - [x] 邀请码验证功能正常 - [x] 订单提交携带邀请码参数 - [x] 个人中心显示邀请码 - [x] 点击复制邀请码功能正常 - [x] 已绑定用户不显示输入框 - [x] API接口注册成功 --- **最后更新**: 2024-01-15 **维护人员**: Billy