feat: 新增多角色系统(派单/分润/推广/区域)

- 后端:RlzDispatch/Profit/Promotion/Region 控制器、服务、Mapper、领域模型
- 权限:MethodSecurityConfig + PermissionInterceptor
- 管理后台:派单/分润/推广/区域 页面与 API
- Android 陪护端:派单/运营/退款 Fragment 及布局
- 小程序:推广员子包、派单/运营/退款/检索子包、自定义 tabBar
- 文档:多角色系统方案、角色权限矩阵、用户操作手册等

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-10-12 00:09:45 +08:00
parent 7562a5f20c
commit 805ed0298b
170 changed files with 8876 additions and 705 deletions

View File

@@ -5,12 +5,16 @@ App({
onLaunch() {
const uid = wx.getStorageSync('uid')
const token = wx.getStorageSync('token')
const userType = wx.getStorageSync('userType')
if (uid) {
this.globalData.uid = uid
}
if (token) {
this.globalData.token = token
}
if (userType) {
this.globalData.userType = userType
}
},
globalData: {
userInfo: null,
@@ -25,9 +29,64 @@ App({
phone: '',
uid: '',
userType: 'C', // 当前角色: C=患者 B=陪诊师 06=推广员 05=调度 04=客服 03=运营 00=超管
sessionKey: '',
version_number: '1.0.0',
// 角色 TabBar 配置
ROLE_TABS: {
'C': [
{ text: '首页', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '服务', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '订单', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
],
'B': [
{ text: '待接单', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '进行中', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '已完成', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
],
'06': [
{ text: '推广数据', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '我的团队', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '佣金', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
],
'03': [
{ text: '待处理', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '全部订单', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '收益', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
],
'04': [
{ text: '待处理', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '全部订单', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '收益', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
],
'05': [
{ text: '待派单', icon: '/pages/image/income.png', selIcon: '/pages/image/income_a.png' },
{ text: '全部订单', icon: '/pages/image/dingdan.png', selIcon: '/pages/image/dingdanl.png' },
{ text: '收益', icon: '/pages/image/service.png', selIcon: '/pages/image/service.png' },
{ text: '我的', icon: '/pages/image/my.png', selIcon: '/pages/image/my_a.png' }
]
},
// 角色中文名映射
ROLE_LABELS: {
'00': '超级管理员',
'03': '运营经理',
'04': '客服专员',
'05': '调度员',
'06': '推广员',
'B': '陪诊师',
'C': '患者'
},
// 可自助切换的角色对
ROLE_SWITCHABLE: ['C', '06', 'B'],
// 订单状态映射(订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单
// 2:待服务 3:服务中 4:已完成 5:退款中 6:退款中 7:已退款 8:已结算)
STATUS_MAP: {
@@ -100,7 +159,7 @@ App({
},
// 公共导航栏高度,避免每个页面重复计算
getNavBarHeight: function () {
var statusBarHeight = wx.getSystemInfoSync().statusBarHeight;
var statusBarHeight = (wx.getWindowInfo && wx.getWindowInfo().statusBarHeight) || wx.getSystemInfoSync().statusBarHeight;
return {
statusBarHeight: statusBarHeight,
height: 46 + statusBarHeight