You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.2 KiB
6.2 KiB
🎯 管理员模式切换方案
📋 问题分析
原始问题
- 用户卡片中有两个扫码入口(门店核销 + 扫码登录)
- 用户体验不友好,容易混淆
- 管理员功能分散,缺乏统一入口
解决思路
设计一个管理员模式切换系统,通过模式切换来统一管理所有管理员功能。
🚀 解决方案
方案概述
创建一个管理员模式切换系统,包含:
- 模式切换按钮 - 在普通用户模式和管理员模式之间切换
- 统一管理面板 - 集中展示所有管理员功能
- 状态持久化 - 记住用户的模式选择
核心组件
1. useAdminMode Hook
// src/hooks/useAdminMode.ts
const { isAdminMode, toggleAdminMode, setAdminMode } = useAdminMode();
功能特性:
- ✅ 模式状态管理
- ✅ 本地存储持久化
- ✅ 切换提示反馈
2. AdminPanel 组件
// src/components/AdminPanel.tsx
<AdminPanel visible={showAdminPanel} onClose={handleCloseAdminPanel} />
功能特性:
- ✅ 底部弹出面板设计
- ✅ 网格布局展示功能
- ✅ 图标 + 描述的直观界面
- ✅ 点击遮罩关闭
3. UserCard 集成
更新用户卡片,集成模式切换功能:
- 模式切换按钮
- 管理面板入口
- 状态指示器
🎨 用户界面设计
模式切换按钮
[普通用户] ←→ [管理员] [管理面板]
- 普通用户模式:灰色按钮,只显示基础功能
- 管理员模式:蓝色按钮,显示管理面板入口
管理员面板
┌─────────────────────────────────┐
│ 🔧 管理员面板 [关闭] │
├─────────────────────────────────┤
│ [🔍 门店核销] [🔍 扫码登录] │
│ [👤 用户管理] [🏪 门店管理] │
│ [⚙️ 系统设置] │
├─────────────────────────────────┤
│ 💡 管理员功能仅对具有管理权限... │
└─────────────────────────────────┘
📱 用户体验流程
普通用户模式
- 用户看到简洁的用户卡片
- 只显示基础功能入口
- 管理员用户可以看到模式切换按钮
管理员模式
- 点击切换到管理员模式
- 显示"管理面板"入口按钮
- 点击进入统一的管理功能面板
- 选择具体的管理功能
功能访问路径
用户卡片 → 切换管理员模式 → 管理面板 → 具体功能
🔧 技术实现
文件结构
src/
├── hooks/
│ └── useAdminMode.ts # 管理员模式Hook
├── components/
│ ├── AdminPanel.tsx # 管理员面板组件
│ └── AdminPanel.scss # 面板样式
└── pages/user/components/
└── UserCard.tsx # 更新的用户卡片
核心功能
状态管理
const [isAdminMode, setIsAdminMode] = useState(false);
const [showAdminPanel, setShowAdminPanel] = useState(false);
本地存储
// 保存模式状态
Taro.setStorageSync('admin_mode', newMode);
// 加载模式状态
const savedMode = Taro.getStorageSync('admin_mode');
权限控制
{isAdmin() && (
<AdminModeToggle />
)}
🎯 功能特性
✅ 已实现功能
- 模式切换 - 普通用户 ↔ 管理员模式
- 状态持久化 - 记住用户选择
- 统一面板 - 集中管理功能入口
- 权限控制 - 只对管理员显示
- 用户反馈 - 切换提示和状态指示
- 响应式设计 - 适配不同屏幕尺寸
🔄 管理员功能列表
- 门店核销 - 扫码核销用户优惠券
- 扫码登录 - 扫码快速登录网页端
- 用户管理 - 管理系统用户信息(待开发)
- 门店管理 - 管理门店信息和设置(待开发)
- 系统设置 - 系统配置和参数管理(待开发)
📊 对比效果
修改前
❌ 两个扫码图标并排显示
❌ 功能入口分散
❌ 用户容易混淆
❌ 界面显得杂乱
修改后
✅ 统一的模式切换入口
✅ 清晰的功能分类
✅ 直观的管理面板
✅ 更好的用户体验
🚀 使用方法
1. 管理员用户操作
- 在个人中心看到模式切换按钮
- 点击切换到"管理员"模式
- 点击"管理面板"按钮
- 在弹出面板中选择需要的功能
2. 开发者扩展
添加新的管理功能:
// 在 AdminPanel.tsx 中添加新功能
{
id: 'new-feature',
title: '新功能',
description: '功能描述',
icon: <NewIcon className="text-blue-500" size="24" />,
color: 'bg-blue-50 border-blue-200',
onClick: () => {
navTo('/new-feature-page', true);
onClose?.();
}
}
🎨 样式定制
主题色彩
- 普通模式:灰色系 (
bg-gray-100
,text-gray-600
) - 管理员模式:蓝色系 (
bg-blue-500
,text-white
) - 功能卡片:彩色分类(蓝、绿、紫、橙、灰)
动画效果
- 模式切换:
transition-all 0.3s ease
- 面板弹出:
slideUp
动画 - 按钮点击:
scale(0.95)
反馈
🔮 未来扩展
计划功能
- 角色权限 - 不同管理员角色显示不同功能
- 快捷操作 - 常用功能的快捷入口
- 统计面板 - 管理数据的可视化展示
- 通知中心 - 管理员消息和提醒
技术优化
- 懒加载 - 按需加载管理功能模块
- 缓存优化 - 管理面板状态缓存
- 性能监控 - 管理功能使用统计
🎉 总结
这个管理员模式切换方案成功解决了原有的用户体验问题:
- 统一入口 - 所有管理功能通过统一面板访问
- 清晰分类 - 功能按类型分组,易于理解
- 状态记忆 - 用户选择会被记住
- 扩展性强 - 易于添加新的管理功能
- 用户友好 - 直观的界面和流畅的交互
现在管理员用户可以享受更加统一和专业的管理体验!🚀