refactor: 移除旧的邀请码来源追踪逻辑

1. 删除App.vue中全局邀请码持久化逻辑与相关工具函数
2. 简化http请求的方法与请求头处理逻辑
3. 移除diy-form组件内的邀请码暂存、提交与展示逻辑
4. 清理不再使用的工具类邀请码辅助函数
This commit is contained in:
2026-08-03 16:24:18 +08:00
parent be1e175471
commit 1cda06573e
4 changed files with 21 additions and 354 deletions

67
App.vue
View File

@@ -90,43 +90,6 @@
return fallback
}
// ============================================================
// ✅ 推荐码 / 邀请码(来源追踪)全局兜底
// 规则:只写非空值,不主动清空(diy-form 提交成功后自己清)
// ============================================================
const FORM_INVITE_KEY = 'form_invite_pending_code'
function _persistInviteCodeFromOptions(options) {
try {
var code = ''
// 1) onLaunch/onShow options.query:优先 recommend_code,次选 invite(历史兼容)
if (options && options.query) {
if (options.query.recommend_code) {
code = String(options.query.recommend_code)
} else if (options.query.invite) {
code = String(options.query.invite)
}
}
// 2) H5 兜底:从当前 location.search 取(同样优先 recommend_code)
if (!code) {
// #ifdef H5
try {
var sp = (new URL(window.location.href)).searchParams
var s1 = sp.get('recommend_code')
var s2 = sp.get('invite')
if (s1) code = String(s1)
else if (s2) code = String(s2)
} catch (e) {}
// #endif
}
// 3) 只写非空,不擦除已有暂存
if (code) {
uni.setStorageSync(FORM_INVITE_KEY, code)
}
} catch (e) {
// 极端失败静默,diy-form 仍有 P2/P3 兜底读取
}
}
// ============================================================
// 主题/语言启动
// ============================================================
@@ -545,36 +508,6 @@
// #ifdef MP-ALIPAY
if (options.query && options.query.m) uni.setStorageSync('source_member', options.query.m);
// #endif
// ✅ 邀请码(来源追踪):onLaunch 冷启动兜底解析 URL query → storage
_persistInviteCodeFromOptions(options);
},
onShow: function(options) {
// ✅ 邀请码(来源追踪):onShow 热启动/后台切回 兜底解析
// 注:onShow 的 options 仅部分平台(MP-WEIXIN, MP-HARMONY, MP-ALIPAY 等)提供 query
// 若 options 为空,则 helper 内部自动 fallback 到 H5 location.search 或已有 storage
_persistInviteCodeFromOptions(options || {});
// #ifdef MP
// 小程序端:每次回到前台 → 自动授权登录刷新会话 token + memberInfo(与行业模板一致)
if (typeof this.getAuthInfo === 'function') {
this.getAuthInfo();
}
if (this.$store && this.$store.state && this.$store.state.token && this.$api) {
this.$api.sendRequest({
url: '/api/member/info',
success: (res) => {
if (res && res.code >= 0 && res.data && this.$store && this.$store.commit) {
this.$store.commit('setMemberInfo', res.data);
}
}
});
}
// #endif
// #ifdef MP-ALIPAY
if (options && options.query && options.query.m) uni.setStorageSync('source_member', options.query.m);
// #endif
},
onHide: function() {},
methods: {