Эх сурвалжийг харах

feat: 家庭成员管理邀请功能增加分享邀请卡

E2E Test Bot 1 сар өмнө
parent
commit
7446bcff94

+ 36 - 4
cfc-frontend/pages/profile-extra/family-members.vue

@@ -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;