|
@@ -195,11 +195,31 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 免费会员引导添加孩子弹窗 -->
|
|
|
|
|
+ <view class="overlay" v-if="showAddChildPrompt" @click="showAddChildPrompt = false">
|
|
|
|
|
+ <view class="modal prompt-modal" @click.stop>
|
|
|
|
|
+ <view class="modal-header">
|
|
|
|
|
+ <text class="modal-title">免费会员专属提示</text>
|
|
|
|
|
+ <text class="modal-close" @click="showAddChildPrompt = false">×</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="prompt-content">
|
|
|
|
|
+ <text class="prompt-icon">👶</text>
|
|
|
|
|
+ <text class="prompt-title">需先添加孩子成员</text>
|
|
|
|
|
+ <text class="prompt-desc">免费会员只能添加 1 位孩子成员,添加后即可创建家庭挑战。<br/>挑战创建后,可切换到孩子身份同意参与。</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="modal-footer">
|
|
|
|
|
+ <button class="btn-cancel" @click="showAddChildPrompt = false">暂不添加</button>
|
|
|
|
|
+ <button class="btn-submit" @click="goToAddChild">去添加孩子</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { getChallengeList, getChallengeHistory, createChallenge, updateChallenge, deleteChallenge, getChallengeTemplates, getFamilyMemberList } from '../../utils/api.js'
|
|
|
|
|
|
|
+import { getChallengeList, getChallengeHistory, createChallenge, updateChallenge, deleteChallenge, getChallengeTemplates, getFamilyMemberList, getMyMembership } from '../../utils/api.js'
|
|
|
|
|
+import store from '../../store/index.js'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
data() {
|
|
data() {
|
|
@@ -212,6 +232,7 @@ export default {
|
|
|
selectedMemberIds: [],
|
|
selectedMemberIds: [],
|
|
|
showModal: false,
|
|
showModal: false,
|
|
|
showMemberPrompt: false,
|
|
showMemberPrompt: false,
|
|
|
|
|
+ showAddChildPrompt: false,
|
|
|
editMode: false,
|
|
editMode: false,
|
|
|
editingId: null,
|
|
editingId: null,
|
|
|
form: {
|
|
form: {
|
|
@@ -222,12 +243,14 @@ export default {
|
|
|
targetValue: '7',
|
|
targetValue: '7',
|
|
|
durationDays: '7',
|
|
durationDays: '7',
|
|
|
rewardPoints: '50'
|
|
rewardPoints: '50'
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ isFreeMember: false
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
onLoad() {
|
|
onLoad() {
|
|
|
this.loadTemplates()
|
|
this.loadTemplates()
|
|
|
this.loadMembers()
|
|
this.loadMembers()
|
|
|
|
|
+ this.checkMembership()
|
|
|
this.loadData()
|
|
this.loadData()
|
|
|
},
|
|
},
|
|
|
onShow() {
|
|
onShow() {
|
|
@@ -285,6 +308,17 @@ export default {
|
|
|
this.selectedMemberIds = []
|
|
this.selectedMemberIds = []
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ async checkMembership() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await getMyMembership()
|
|
|
|
|
+ const m = res.data || {}
|
|
|
|
|
+ const level = m.memberLevel || m.levelCode || ''
|
|
|
|
|
+ // 免费会员:level 为空或 FREE
|
|
|
|
|
+ this.isFreeMember = !level || level === 'FREE'
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ this.isFreeMember = true // 默认按免费处理,保守策略
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
isMemberSelected(id) {
|
|
isMemberSelected(id) {
|
|
|
return this.selectedMemberIds.indexOf(id) >= 0
|
|
return this.selectedMemberIds.indexOf(id) >= 0
|
|
|
},
|
|
},
|
|
@@ -312,8 +346,13 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
openCreateModal() {
|
|
openCreateModal() {
|
|
|
|
|
+ // 免费会员且只有1个成员(自己)时,引导先添加孩子
|
|
|
if (this.familyMembers.length < 2) {
|
|
if (this.familyMembers.length < 2) {
|
|
|
- this.showMemberPrompt = true
|
|
|
|
|
|
|
+ if (this.isFreeMember && this.familyMembers.length === 1) {
|
|
|
|
|
+ this.showAddChildPrompt = true
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.showMemberPrompt = true
|
|
|
|
|
+ }
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
this.editMode = false
|
|
this.editMode = false
|
|
@@ -414,6 +453,10 @@ export default {
|
|
|
goToAddMember() {
|
|
goToAddMember() {
|
|
|
this.showMemberPrompt = false
|
|
this.showMemberPrompt = false
|
|
|
uni.navigateTo({ url: '/pages/profile-extra/family-members' })
|
|
uni.navigateTo({ url: '/pages/profile-extra/family-members' })
|
|
|
|
|
+ },
|
|
|
|
|
+ goToAddChild() {
|
|
|
|
|
+ this.showAddChildPrompt = false
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/family/add-member' })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|