|
|
@@ -32,7 +32,6 @@
|
|
|
</view>
|
|
|
|
|
|
<!-- ===== 分享邀请卡海报 ===== -->
|
|
|
- <SharePoster v-if="hasFamily" :show="showPoster" :referralCode="inviteCode" :qrCodeBase64="inviteQrCode" :nickname="userNickname" :userAvatar="userAvatar" @close="showPoster = false" />
|
|
|
<view v-else class="empty-tip">暂无家庭成员,正在为您创建家庭...</view>
|
|
|
|
|
|
<!-- ===== 成员详情弹窗 ===== -->
|
|
|
@@ -110,27 +109,27 @@ import {
|
|
|
switchToFamilyMember,
|
|
|
kickFamilyMemberById,
|
|
|
generateFamilyInviteQrCode,
|
|
|
+ generateFamilyInvite,
|
|
|
getFamilyMembers,
|
|
|
updateFamilyMember
|
|
|
} from '../../utils/api.js'
|
|
|
import store from '../../store/index.js'
|
|
|
-import SharePoster from '@/components/SharePoster.vue'
|
|
|
import { ensureFamily } from '../../utils/api.js'
|
|
|
|
|
|
export default {
|
|
|
- components: { SharePoster },
|
|
|
+ components: {},
|
|
|
data() {
|
|
|
return {
|
|
|
userId: 0,
|
|
|
familyId: 0,
|
|
|
familyName: '',
|
|
|
- inviteCode: '',
|
|
|
- inviteQrCode: '',
|
|
|
+
|
|
|
+
|
|
|
creatorId: null,
|
|
|
members: [],
|
|
|
isAdmin: false,
|
|
|
loading: false,
|
|
|
- showPoster: false,
|
|
|
+
|
|
|
showMemberDetailModal: false,
|
|
|
detailMember: null,
|
|
|
memberScores: {},
|
|
|
@@ -204,7 +203,7 @@ export default {
|
|
|
var data = res.data
|
|
|
this.familyId = data.familyId
|
|
|
this.familyName = data.familyName
|
|
|
- this.inviteCode = data.inviteCode || ''
|
|
|
+ // inviteCode no longer needed
|
|
|
this.creatorId = data.creatorId
|
|
|
this.isAdmin = this.creatorId === this.userId
|
|
|
} else if (res.code === 5001 || (res.message && res.message.indexOf('未加入家庭') >= 0)) {
|
|
|
@@ -276,21 +275,45 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async onInvite() {
|
|
|
- this.inviteQrCode = ''
|
|
|
- this.inviteCode = ''
|
|
|
uni.showLoading({ title: '生成邀请...' })
|
|
|
try {
|
|
|
- var res = await generateFamilyInviteQrCode()
|
|
|
+ var res = await generateFamilyInvite()
|
|
|
if (res.code === 200 && res.data) {
|
|
|
- this.inviteCode = res.data.inviteCode
|
|
|
- this.inviteQrCode = res.data.qrCodeBase64
|
|
|
- this.showPoster = true
|
|
|
+ var token = res.data.token
|
|
|
+ var qrCode = res.data.qrCodeBase64
|
|
|
+ // 分享小程序码
|
|
|
+ uni.share({
|
|
|
+ provider: 'weixin',
|
|
|
+ scene: 'WXSceneSession',
|
|
|
+ type: 5,
|
|
|
+ imageUrl: qrCode ? qrCode.replace('data:image/png;base64,', '') : '',
|
|
|
+ miniProgram: {
|
|
|
+ id: '',
|
|
|
+ path: 'pages/invite/join?token=' + token,
|
|
|
+ type: 0,
|
|
|
+ webUrl: 'https://cfc.etotem.com.cn/invite/join?token=' + token
|
|
|
+ },
|
|
|
+ success: function(shareRes) {
|
|
|
+ uni.hideLoading()
|
|
|
+ uni.showToast({ title: '分享成功', icon: 'success' })
|
|
|
+ },
|
|
|
+ fail: function(err) {
|
|
|
+ uni.hideLoading()
|
|
|
+ // 如果分享失败,复制链接
|
|
|
+ uni.setClipboardData({
|
|
|
+ data: 'https://cfc.etotem.com.cn/invite/join?token=' + token,
|
|
|
+ success: function() {
|
|
|
+ uni.showToast({ title: '链接已复制', icon: 'success' })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
} else {
|
|
|
uni.showToast({ title: res.message || '生成失败', icon: 'none' })
|
|
|
+ uni.hideLoading()
|
|
|
}
|
|
|
} catch (e) {
|
|
|
uni.showToast({ title: '生成失败', icon: 'none' })
|
|
|
- } finally {
|
|
|
uni.hideLoading()
|
|
|
}
|
|
|
},
|