Просмотр исходного кода

chore: auto bump version and changelog [skip ci]

iwt 1 месяц назад
Родитель
Сommit
ca0c5c564f

+ 8 - 12
cfc-frontend/App.vue

@@ -61,33 +61,29 @@ export default {
     console.log('App Hide')
   },
   methods: {
-    // 捕获分享/邀请参数:普通分享链接 /pages/xxx?inviteCode=yyy 冷/热启动进入时,
+    // 捕获分享/邀请参数:普通分享链接 /pages/xxx?refCode=yyy 冷/热启动进入时,
     // 新用户(未登录)写入 storage,登录注册后由 login / user-edit 消费绑定推荐人;
     // 已登录用户直接绑定(boundInviteCode 防重,避免重复请求)
     captureReferralParams(options) {
       if (!options || !options.query) return
-      var code = options.query.inviteCode
+      var query = options.query
+      // 推荐码统一为 refCode;inviteCode 兼容历史分享链接(旧 share-mixin 用 inviteCode 承载推荐码)
+      var code = query.refCode || query.inviteCode
       if (!code) return
       if (uni.getStorageSync('token')) {
         var bound = uni.getStorageSync('boundInviteCode')
         if (bound === code) return
         bindReferral(code).then(function(res) {
-          if (res && res.code === 200) {
+          if (res && (res.code === 200 || res.code === 400)) {
             uni.setStorageSync('boundInviteCode', code)
-            console.log('分享参数推荐人绑定成功', code)
+            console.log('分享参数推荐人绑定结果', res.code, code)
           }
         }).catch(function(e) {
-          // 后端已绑定(code=500 message=已绑定推荐人)→ 记录防重,避免每次冷/热启动重复请求/重复提示
-          if (e && e.code !== undefined && e.code !== 401) {
-            uni.setStorageSync('boundInviteCode', code)
-            console.log('分享参数推荐人绑定失败(业务拒绝,已防重)', code, e.message || '')
-          } else {
-            console.log('分享参数推荐人绑定失败(网络/登录态)', e)
-          }
+          console.log('分享参数推荐人绑定失败', e)
         })
         return
       }
-      uni.setStorageSync('inviteCode', code)
+      uni.setStorageSync('refCode', code)
       if (options.query.inviteType) {
         uni.setStorageSync('inviteType', options.query.inviteType)
       }

+ 9 - 6
cfc-frontend/components/share-mixin.js

@@ -18,9 +18,12 @@ export default {
     }
   },
   onLoad(options) {
-    // 自动绑定:从分享链接进入时,绑定邀请码
-    if (options && options.inviteCode) {
-      this.autoBindInviteCode(options.inviteCode)
+    // 自动绑定:从分享链接进入时,绑定推荐人(推荐码统一为 refCode,兼容老 inviteCode 链接)
+    if (options) {
+      var code = options.refCode || options.inviteCode
+      if (code) {
+        this.autoBindInviteCode(code)
+      }
     }
   },
   methods: {
@@ -53,9 +56,9 @@ export default {
      * 规则:如果用户已有邀请人,则忽略此邀请码
      */
     async autoBindInviteCode(code) {
-      // 未登录时存 storage,登录后由 login 页面处理
+      // 未登录时存 storage,登录后由 login 页面处理(推荐码统一为 refCode)
       if (!uni.getStorageSync('token')) {
-        uni.setStorageSync('inviteCode', code)
+        uni.setStorageSync('refCode', code)
         return
       }
 
@@ -87,7 +90,7 @@ export default {
       if (!this.sharePath) return ''
       if (this.referralCode) {
         var sep = this.sharePath.indexOf('?') === -1 ? '?' : '&'
-        return this.sharePath + sep + 'inviteCode=' + this.referralCode
+        return this.sharePath + sep + 'refCode=' + this.referralCode
       }
       return this.sharePath
     },

+ 12 - 9
cfc-frontend/pages/login/login.vue

@@ -84,10 +84,9 @@ export default {
         uni.setStorageSync('inviteCode', options.inviteCode)
         uni.setStorageSync('inviteType', options.inviteType || 'family')
       }
-      // 处理推广码(refCode):来自 join.vue 的推广绑定流程
+      // 处理推荐码(refCode):来自 join.vue 的推广绑定流程,推荐码统一存 refCode storage
       if (options.refCode) {
-        uni.setStorageSync('inviteCode', options.refCode)
-        uni.setStorageSync('inviteType', '')
+        uni.setStorageSync('refCode', options.refCode)
       }
       // 存储登录后跳转地址
       if (options.redirect) {
@@ -180,30 +179,34 @@ export default {
     handlePostLoginRouting() {
       const inviteCode = uni.getStorageSync('inviteCode')
       const inviteType = uni.getStorageSync('inviteType')
+      const refCode = uni.getStorageSync('refCode')
 
       if (inviteCode && inviteType === 'team') {
         this.handleTeamInviteFlow(inviteCode)
+      } else if (refCode) {
+        this.handleReferralBind(refCode)
       } else if (inviteCode) {
-        // 非 team 邀请码(如分享文章/商品/活动的邀请码),绑定推荐关系
+        // 兼容:历史 storage inviteCode 承载推荐码的残留
         this.handleReferralBind(inviteCode)
       } else {
         this.navigateToHome()
       }
     },
-    async handleReferralBind(inviteCode) {
+    async handleReferralBind(refCode) {
       try {
-        var res = await bindReferral(inviteCode)
+        var res = await bindReferral(refCode)
         if (res && res.code === 200) {
-          console.log('登录后绑定邀请码成功', inviteCode)
+          console.log('登录后绑定推荐人成功', refCode)
         }
       } catch (e) {
         // 后端 Result.error(code=500) → request() 已 toast「已绑定推荐人,不可修改」等业务消息
         if (e && e.code !== undefined && e.code !== 401) {
-          console.log('登录后邀请码业务拒绝', inviteCode, e.message || '')
+          console.log('登录后推荐码业务拒绝', refCode, e.message || '')
         } else {
-          console.log('登录后邀请码绑定失败', e)
+          console.log('登录后推荐码绑定失败', e)
         }
       }
+      uni.removeStorageSync('refCode')
       uni.removeStorageSync('inviteCode')
       uni.removeStorageSync('inviteType')
       this.navigateToHome()

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-107c70004397c1694ed3d362efa1471d77bd90ea
+b6f3ad4c92e3ee2bd57fcfb7f9164620624fd59d

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1329",
+  "version": "1.0.1330",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1329",
+      "version": "1.0.1330",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1330",
+  "version": "1.0.1331",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 8 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,14 @@
 
 ---
 
+## v1.0.1331 (2026-09-08)
+
+### 文档
+- 新增运营方略(1+N矩阵)与同类账号探索报告 - 品牌定位与竞品依据
+- 新增官方号搜索收割内容第一批 - 5篇用户视角SEO布局
+- 发布指南新增内容创作第一原则 - 讲用户想听的(4信号源+主语转换法+自检清单)
+
+
 ## v1.0.1330 (2026-09-08)
 
 ### 新功能

+ 9 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1330
+> 当前版本: v1.0.1331
 
 ## 历史版本
 
@@ -8,6 +8,14 @@
 
 ---
 
+## v1.0.1331 (2026-09-08)
+
+### 文档
+- 新增运营方略(1+N矩阵)与同类账号探索报告 - 品牌定位与竞品依据
+- 新增官方号搜索收割内容第一批 - 5篇用户视角SEO布局
+- 发布指南新增内容创作第一原则 - 讲用户想听的(4信号源+主语转换法+自检清单)
+
+
 ## v1.0.1330 (2026-09-08)
 
 ### 新功能