|
|
@@ -170,6 +170,12 @@
|
|
|
</view>
|
|
|
<text class="menu-text">邀请好友</text>
|
|
|
</view>
|
|
|
+ <view class="menu-item" @click="shareToFriend">
|
|
|
+ <view class="menu-icon-wrap icon-share">
|
|
|
+ <text class="menu-icon-text">📤</text>
|
|
|
+ </view>
|
|
|
+ <text class="menu-text">分享给好友</text>
|
|
|
+ </view>
|
|
|
<view class="menu-item" @click="goTeam">
|
|
|
<view class="menu-icon-wrap icon-team">
|
|
|
<text class="menu-icon-text">🤝</text>
|
|
|
@@ -193,13 +199,16 @@
|
|
|
<!-- 底部安全区 -->
|
|
|
<view style="height:40rpx"></view>
|
|
|
</scroll-view>
|
|
|
+
|
|
|
+ <SharePoster :show="showPoster" :referralCode="shareReferralCode" :qrCodeBase64="inviteQrCode" :nickname="shareNickname" :userAvatar="shareAvatar" :familyName="familyName" @close="showPoster = false" />
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getReferralSummary, getCommissionSummary, getFamilyEarningsSummary, getFamilyEarningsMembers, getFamilyEarningsRecords, distributeToMember, toggleMemberBalance, withdrawFamilyEarnings } from '../../utils/api.js'
|
|
|
+import { getReferralSummary, getCommissionSummary, getFamilyEarningsSummary, getFamilyEarningsMembers, getFamilyEarningsRecords, distributeToMember, toggleMemberBalance, withdrawFamilyEarnings, getInviteQrCode, getFamilyMembers, getReferralCode } from '../../utils/api.js'
|
|
|
+import SharePoster from '@/components/SharePoster.vue'
|
|
|
|
|
|
export default {
|
|
|
- components: {},
|
|
|
+ components: { SharePoster },
|
|
|
data() {
|
|
|
return {
|
|
|
totalEarnings: '0.00',
|
|
|
@@ -219,7 +228,14 @@ export default {
|
|
|
withdrawAmount: '',
|
|
|
distributeAmount: '',
|
|
|
distributeMemberIdx: -1,
|
|
|
- memberOptions: []
|
|
|
+ memberOptions: [],
|
|
|
+ // 分享海报
|
|
|
+ showPoster: false,
|
|
|
+ inviteQrCode: '',
|
|
|
+ familyName: '',
|
|
|
+ shareNickname: '',
|
|
|
+ shareAvatar: '',
|
|
|
+ shareReferralCode: ''
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -464,6 +480,38 @@ export default {
|
|
|
goInvite() {
|
|
|
uni.navigateTo({ url: '/pages/promotion/invite' })
|
|
|
},
|
|
|
+ async shareToFriend() {
|
|
|
+ uni.showLoading({ title: '生成中...' })
|
|
|
+ try {
|
|
|
+ if (!this.shareReferralCode) {
|
|
|
+ try {
|
|
|
+ var codeRes = await getReferralCode()
|
|
|
+ if (codeRes && codeRes.data) {
|
|
|
+ this.shareReferralCode = codeRes.data.referralCode || codeRes.data.code || ''
|
|
|
+ }
|
|
|
+ } catch (e) {}
|
|
|
+ }
|
|
|
+ var qrRes = await getInviteQrCode()
|
|
|
+ if (qrRes && qrRes.data) {
|
|
|
+ this.inviteQrCode = qrRes.data.qrCodeBase64 || ''
|
|
|
+ }
|
|
|
+ if (!this.familyName) {
|
|
|
+ try {
|
|
|
+ var famRes = await getFamilyMembers()
|
|
|
+ if (famRes.code === 200 && famRes.data && famRes.data.familyName) {
|
|
|
+ this.familyName = famRes.data.familyName
|
|
|
+ }
|
|
|
+ } catch (e) {}
|
|
|
+ }
|
|
|
+ this.shareNickname = uni.getStorageSync('nickname') || ''
|
|
|
+ this.shareAvatar = uni.getStorageSync('avatar') || ''
|
|
|
+ this.showPoster = true
|
|
|
+ } catch (e) {
|
|
|
+ uni.showToast({ title: '生成失败', icon: 'none' })
|
|
|
+ } finally {
|
|
|
+ uni.hideLoading()
|
|
|
+ }
|
|
|
+ },
|
|
|
goTeam() {
|
|
|
uni.navigateTo({ url: '/pages/promotion/team' })
|
|
|
},
|
|
|
@@ -969,6 +1017,7 @@ export default {
|
|
|
.icon-commission { background: #FEF3C7; }
|
|
|
.icon-withdraw { background: #DBEAFE; }
|
|
|
.icon-invite { background: #D1FAE5; }
|
|
|
+.icon-share { background: #E0F2FE; }
|
|
|
.icon-team { background: #FCE7F3; }
|
|
|
.icon-leaderboard { background: #FFF3CD; }
|
|
|
.icon-records { background: #EDE9FE; }
|