|
@@ -203,8 +203,8 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- AI助手选择(已屏蔽)
|
|
|
|
|
- <view class="family-section" v-if="isEdit">
|
|
|
|
|
|
|
+ <!-- AI助手选择(会员专属) -->
|
|
|
|
|
+ <view class="family-section" v-if="isEdit && memberLevel !== 'FREE'">
|
|
|
<view class="section-title">🤖 选择AI助手</view>
|
|
<view class="section-title">🤖 选择AI助手</view>
|
|
|
<view class="mascot-cards">
|
|
<view class="mascot-cards">
|
|
|
<view class="mascot-card" :class="{ active: form.mascot === 'xibao' }" @click="selectMascot('xibao')">
|
|
<view class="mascot-card" :class="{ active: form.mascot === 'xibao' }" @click="selectMascot('xibao')">
|
|
@@ -222,7 +222,15 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view> -->
|
|
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <!-- 免费用户提示 -->
|
|
|
|
|
+ <view class="family-section" v-if="isEdit && memberLevel === 'FREE'">
|
|
|
|
|
+ <view class="mascot-locked-hint" @click="goUpgrade">
|
|
|
|
|
+ <text class="locked-icon">🔒</text>
|
|
|
|
|
+ <text class="locked-text">开通会员解锁浠宝/福宝AI助手</text>
|
|
|
|
|
+ <text class="locked-arrow">›</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
<!-- 新用户流程:保存资料 / 跳过(不再创建或加入家庭) -->
|
|
<!-- 新用户流程:保存资料 / 跳过(不再创建或加入家庭) -->
|
|
|
<view class="family-section" v-if="isEdit && form.role !== 'teacher' && isNewUserFlow">
|
|
<view class="family-section" v-if="isEdit && form.role !== 'teacher' && isNewUserFlow">
|
|
@@ -295,7 +303,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { updateUserInfo, createFamily, directRegister, getUserInfo, requestJoinByCode } from '../../utils/api.js'
|
|
|
|
|
|
|
+import { updateUserInfo, createFamily, directRegister, getUserInfo, requestJoinByCode, getMyMembership } from '../../utils/api.js'
|
|
|
import config from '@/config.js'
|
|
import config from '@/config.js'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -304,6 +312,7 @@ export default {
|
|
|
isEdit: false,
|
|
isEdit: false,
|
|
|
showRoleSelect: true,
|
|
showRoleSelect: true,
|
|
|
isNewUserFlow: false, // 是否是新用户注册流程
|
|
isNewUserFlow: false, // 是否是新用户注册流程
|
|
|
|
|
+ memberLevel: 'FREE', // 会员等级,用于判断是否解锁AI助手
|
|
|
form: {
|
|
form: {
|
|
|
role: '',
|
|
role: '',
|
|
|
avatar: '',
|
|
avatar: '',
|
|
@@ -424,6 +433,13 @@ export default {
|
|
|
if (this.isEdit && !this.isNewUserFlow) {
|
|
if (this.isEdit && !this.isNewUserFlow) {
|
|
|
this.loadUserInfo()
|
|
this.loadUserInfo()
|
|
|
}
|
|
}
|
|
|
|
|
+ // 加载会员等级(用于AI助手解锁)
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ getMyMembership().then(function(res) {
|
|
|
|
|
+ if (res.data && res.data.memberLevel) {
|
|
|
|
|
+ self.memberLevel = res.data.memberLevel
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function() {})
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
selectRole(role) {
|
|
selectRole(role) {
|
|
@@ -500,6 +516,9 @@ export default {
|
|
|
selectMascot(code) {
|
|
selectMascot(code) {
|
|
|
this.form.mascot = code
|
|
this.form.mascot = code
|
|
|
},
|
|
},
|
|
|
|
|
+ goUpgrade() {
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/membership/upgrade' })
|
|
|
|
|
+ },
|
|
|
// ===== 省市区三级联动弹窗(与订单收货人地址一致) =====
|
|
// ===== 省市区三级联动弹窗(与订单收货人地址一致) =====
|
|
|
openRegionPicker() {
|
|
openRegionPicker() {
|
|
|
this.tempProvince = this.form.province ? { name: this.form.province, id: null } : null
|
|
this.tempProvince = this.form.province ? { name: this.form.province, id: null } : null
|
|
@@ -1269,4 +1288,29 @@ export default {
|
|
|
color: #ccc;
|
|
color: #ccc;
|
|
|
margin-left: 8rpx;
|
|
margin-left: 8rpx;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+/* AI助手锁定提示 */
|
|
|
|
|
+.mascot-locked-hint {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 28rpx 32rpx;
|
|
|
|
|
+ background: linear-gradient(135deg, #FEF3C7, #FDE68A);
|
|
|
|
|
+ border-radius: 20rpx;
|
|
|
|
|
+ margin-top: 16rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.locked-icon {
|
|
|
|
|
+ font-size: 36rpx;
|
|
|
|
|
+ margin-right: 16rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.locked-text {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #92400e;
|
|
|
|
|
+}
|
|
|
|
|
+.locked-arrow {
|
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
|
+ color: #92400e;
|
|
|
|
|
+ margin-left: 8rpx;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|