|
|
@@ -113,10 +113,16 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
<text class="invite-tip">让好友在「我的」页面输入邀请码加入家庭</text>
|
|
|
- <button class="close-btn" @click="showInviteCard = false">关闭</button>
|
|
|
+ <view class="invite-actions">
|
|
|
+ <button class="share-card-btn" @click="shareInviteCard">📤 分享邀请卡</button>
|
|
|
+ <button class="close-btn" @click="showInviteCard = false">关闭</button>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
+ <!-- ===== 分享邀请卡海报 ===== -->
|
|
|
+ <SharePoster :show="showPoster" :referralCode="inviteCode" :qrCodeBase64="inviteQrCode" :nickname="userNickname" :userAvatar="userAvatar" @close="showPoster = false" />
|
|
|
+
|
|
|
<!-- ===== 成员详情弹窗 ===== -->
|
|
|
<view class="modal-mask" v-if="showMemberDetailModal" @click="showMemberDetailModal = false">
|
|
|
<view class="member-detail-card" @click.stop>
|
|
|
@@ -190,8 +196,10 @@ import {
|
|
|
updateFamilyMember
|
|
|
} from '../../utils/api.js'
|
|
|
import store from '../../store/index.js'
|
|
|
+import SharePoster from '@/components/SharePoster.vue'
|
|
|
|
|
|
export default {
|
|
|
+ components: { SharePoster },
|
|
|
data() {
|
|
|
return {
|
|
|
userId: 0,
|
|
|
@@ -206,9 +214,12 @@ export default {
|
|
|
filterType: 'all',
|
|
|
showSettings: false,
|
|
|
showInviteCard: false,
|
|
|
+ showPoster: false,
|
|
|
showMemberDetailModal: false,
|
|
|
detailMember: null,
|
|
|
- memberScores: {}
|
|
|
+ memberScores: {},
|
|
|
+ userNickname: '',
|
|
|
+ userAvatar: ''
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -227,6 +238,8 @@ export default {
|
|
|
onShow() {
|
|
|
var userInfo = uni.getStorageSync('userInfo')
|
|
|
this.userId = (userInfo && userInfo.id) || 0
|
|
|
+ this.userNickname = uni.getStorageSync('nickname') || (userInfo && userInfo.nickname) || ''
|
|
|
+ this.userAvatar = uni.getStorageSync('avatar') || (userInfo && userInfo.avatar) || ''
|
|
|
this.loadMembers()
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -357,6 +370,10 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ shareInviteCard() {
|
|
|
+ this.showInviteCard = false
|
|
|
+ this.showPoster = true
|
|
|
+ },
|
|
|
onEditRelation(member) {
|
|
|
this.showMemberDetailModal = false
|
|
|
// 已整合到家庭成员管理,跳转到添加/编辑成员页面
|
|
|
@@ -739,10 +756,25 @@ export default {
|
|
|
}
|
|
|
.invite-tip {
|
|
|
font-size: 24rpx;
|
|
|
- color: #bbb;
|
|
|
- display: block;
|
|
|
+ color: #94A3B8;
|
|
|
+ text-align: center;
|
|
|
margin: 20rpx 0;
|
|
|
}
|
|
|
+.invite-actions {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 12rpx;
|
|
|
+ padding: 0 30rpx 20rpx;
|
|
|
+}
|
|
|
+.share-card-btn {
|
|
|
+ background: #F97316;
|
|
|
+ color: #FFFFFF;
|
|
|
+ border: none;
|
|
|
+ border-radius: 12rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
.close-btn {
|
|
|
width: 100%;
|
|
|
background: #f5f5f5;
|