diff --git a/components-diy/diy-recommend-code.vue b/components-diy/diy-recommend-code.vue index f4b2670..4101b11 100644 --- a/components-diy/diy-recommend-code.vue +++ b/components-diy/diy-recommend-code.vue @@ -55,17 +55,17 @@ :style="mainBtnBgStyle()" @tap="onShareClick" open-type="share"> {{ value.buttonText || '立即分享' }} - + {{ value.placeholderCopyText || '复制链接' }} + :style="secondaryBtnStyle" @tap="regenerate"> {{ value.placeholderRegenerateText || '换一个新码' }} - {{ shareLink }} + {{ shareLink || formatShareLink }} @@ -91,12 +91,12 @@ {{ value.buttonText || '立即分享' }} + :style="secondaryBtnStyle" @tap="regenerate"> {{ value.placeholderRegenerateText || '换一个新码' }} - {{ shareLink }} + {{ shareLink || formatShareLink }} @@ -123,16 +123,16 @@ :style="mainBtnBgStyle()" @tap="onShareClick" open-type="share"> {{ value.buttonText || '立即分享' }} - + {{ value.placeholderCopyText || '复制链接' }} + :style="secondaryBtnStyle" @tap="regenerate"> {{ value.placeholderRegenerateText || '换一个新码' }} - {{ shareLink }} + {{ shareLink || formatShareLink }} @@ -408,11 +408,18 @@ export default { qrcodeRenderUrl() { // 优先用后端占位接口返回的真实 qrcode_url;没返回就 fallback 用公共 api 合成 share_link 的二维码 if (this.qrcodeUrl && String(this.qrcodeUrl).trim()) return this.qrcodeUrl; - const url = encodeURIComponent(this.shareLink || ''); - if (!url) return ''; + const realUrl = this.formatShareLink; + if (!realUrl) return ''; + const url = encodeURIComponent(realUrl); return 'https://api.qrserver.com/v1/create-qr-code/?size=300x300&margin=0&data=' + url; - } - }, + }, + formatShareLink() { + // 固定自定义分享链接模板(customShareLink) + const customShareLink = "http://192.168.8.118/hwappx/common/pages_tool/form/formdata?id=13&uniacid=1&recommend_code={code}"; + // 把模板里 {code} 替换成当前用户唯一邀请码 + return customShareLink.replace(/\{code\}/g, this.code || ''); + }, + }, watch: { /* 登录态切换:guest → login → 自动调 getMyCode;logout → 清空状态 全部 try-catch 包裹:任何 watcher 错误不会冒泡到父级,避免整个 diy-group 崩掉 */ @@ -852,12 +859,14 @@ export default { /** 复制「分享链接」(后端给的 share_link 原样复制) */ copyLink() { - if (!this.shareLink) { - uni.showToast && uni.showToast({ title: '分享链接还未生成,请稍候', icon: 'none' }); + // 后端没有shareLink时,自动使用前端固定模板链接 + const targetUrl = this.shareLink || this.formatShareLink; + if (!targetUrl) { + uni.showToast({ title: '分享链接还未生成,请稍候', icon: 'none' }); return; } - rcCopyToClipboard(this, this.shareLink, (ok, err) => { - uni.showToast && uni.showToast({ + rcCopyToClipboard(this, targetUrl, (ok, err) => { + uni.showToast({ title: ok ? '推广链接已复制' : (err || '复制失败'), icon: ok ? 'success' : 'none' });