feat(hjf): H5路由修复、分销等级显示优化、个人中心等级徽章
H5 部署与路由: - manifest.json: router.base 改为 "/" 适配 public/ 根目录部署 - nginx-crmeb.conf: 恢复与 feature/fsgx 一致的原始配置 - App.vue: PC端重定向路径改为动态推导,修复死循环加载问题 - static/html/pc.html: 动态推导 H5 根路径,适配本地/云端两种部署 H5登录: - pages/users/login/index.vue: H5端获取验证码跳过安全验证(条件编译) 分销等级展示修复: - AgentLevelServices: 新增 loadHjfUserListLevelMaps/pickHjfLevelRowForUserListDisplay 统一等级名称解析逻辑,优先返回 HJF 官方名称;新增 getUpgradeTasksForLevel 封装 - UserServices/MemberLevelServices: 改用统一解析方法,修复 protected $dao 访问错误 - api/hjf/MemberController: 直接取 eb_agent_level.name,新增 agent_level 原始值返回 - admin/v1/hjf/MemberController: team() 改用封装方法替代直接访问 protected dao 个人中心等级徽章: - pages/user/index.vue + member/index.vue: memberInfo 沿链路透传 - member/template1.vue: UID右侧显示HjfMemberBadge,直接读 userInfo.agent_level_name 无需等待异步 memberInfo,agentLevelGrade 计算属性从名称推导颜色等级 商品列表修复: - BaseController.php/Common.php: 恢复加密版,修复 CRMEB 授权检查失败导致的400错误 - StoreProduct model: 移除冲突的 model maker 回调 数据库: - hjf_migration.sql: 完善会员等级体系迁移脚本 - eb_agent_level.sql: 新增等级初始数据脚本 Made-with: Cursor
This commit is contained in:
@@ -39,6 +39,11 @@ export default {
|
||||
balanceStatus: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
// HJF 分销等级信息,向下透传给各 template
|
||||
memberInfo: {
|
||||
type: Object,
|
||||
default: () => ({ agent_level: 0, member_level: 0, member_level_name: '' })
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -97,7 +102,7 @@ export default {
|
||||
<!-- #ifdef MP || APP-PLUS -->
|
||||
<topBar v-if="memberData.style != 5" :styleType="memberData.style" :isScrolling="isScrolling"></topBar>
|
||||
<!-- #endif -->
|
||||
<template1 v-if="memberData.style == 1" :perShowType="memberData.per_show_type" :userInfo="userInfo" :property="property"></template1>
|
||||
<template1 v-if="memberData.style == 1" :perShowType="memberData.per_show_type" :userInfo="userInfo" :property="property" :memberInfo="memberInfo"></template1>
|
||||
<template2 v-if="memberData.style == 2" :perShowType="memberData.per_show_type" :userInfo="userInfo" :property="property"></template2>
|
||||
<template3 v-if="memberData.style == 3" :perShowType="memberData.per_show_type" :userInfo="userInfo" :property="property"></template3>
|
||||
<template4 v-if="memberData.style == 4" :perShowType="memberData.per_show_type" :userInfo="userInfo" :commission="orderAdminData.commission"></template4>
|
||||
|
||||
@@ -14,12 +14,23 @@ export default {
|
||||
perShowType: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
// HJF 分销等级信息(由 member/index.vue 向下传递)
|
||||
memberInfo: {
|
||||
type: Object,
|
||||
default: () => ({ agent_level: 0, member_level: 0, member_level_name: '' })
|
||||
}
|
||||
},
|
||||
inject: ['intoPage', 'tapQrCode', 'goMenuPage', 'goEdit', 'bindPhone', 'checkApp'],
|
||||
computed:{
|
||||
showMerBtn(){
|
||||
return this.$store.state.app.channel_func_status
|
||||
},
|
||||
/** 从 userInfo.agent_level_name 推导 grade(0-4),用于徽章颜色 */
|
||||
agentLevelGrade() {
|
||||
const nameGradeMap = { '创客': 1, '云店': 2, '服务商': 3, '分公司': 4 };
|
||||
const name = (this.userInfo && this.userInfo.agent_level_name) || '';
|
||||
return nameGradeMap[name] || 0;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -58,10 +69,20 @@ export default {
|
||||
<view class="bind-phone" v-if="!userInfo.phone && userInfo.uid" @tap="bindPhone">绑定手机号</view>
|
||||
<view class="acea-row row-middle" v-else>
|
||||
<view class="phone">{{ perShowType ? 'ID:' + userInfo.uid : userInfo.phone }}</view>
|
||||
<!--
|
||||
<view class="vip flex-center" v-if="userInfo.level">
|
||||
<text class="iconfont icon-huiyuandengji"></text>
|
||||
{{ userInfo.vip_name || ('V' + userInfo.level) }}
|
||||
</view>
|
||||
-->
|
||||
<!-- HJF 分销等级徽章:直接用 userInfo.agent_level / agent_level_name,无需等待异步 memberInfo -->
|
||||
<HjfMemberBadge
|
||||
v-if="userInfo.agent_level > 0"
|
||||
:level="agentLevelGrade"
|
||||
:levelName="userInfo.agent_level_name"
|
||||
size="small"
|
||||
class="ml-10"
|
||||
/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user