- 在用户注册时支持从邀请参数中获取推荐人ID并绑定 - 修改管理员面板UI,添加统一扫码功能入口- 更新用户管理相关API地址,统一使用SERVER_API_URL - 调整优惠券卡片样式,移除小程序不支持的CSS属性 - 添加聊天会话和消息管理相关API模块 - 新增分销商银行卡管理API接口 - 修改系统用户模型,增加推荐人ID字段 - 更新广告位查询接口,支持根据code获取广告位 - 调整邀请绑定接口参数,将refereeId改为dealerId - 修改环境配置中的应用名称为"时里院子市集" - 移除分享到朋友圈的相关代码 - 添加管理员面板组件,提供统一扫码等管理功能 -修复用户管理API请求参数传递问题 - 添加聊天消息和会话管理的完整CRUD接口 - 更新系统用户相关接口URL,确保正确调用后端服务 - 添加分销商银行卡管理的完整API接口实现 - 修改邀请绑定接口,使用dealerId替代refereeId参数 - 修复扫码登录相关API的URL拼接问题 - 添加二维码内容解析功能,支持多种格式的token提取 - 更新用户信息模型,增加推荐人ID字段 -优化管理员面板样式和交互逻辑- 调整优惠券组件样式,兼容小程序环境限制- 修复用户管理模块的API调用问题 - 添加聊天相关数据模型和接口定义 - 更新环境配置中的应用名称 -修复邀请绑定相关的参数传递问题- 添加扫码登录状态枚举和相关数据结构定义- 优化管理员功能面板的UI展示和交互体验- 修复系统用户管理接口的请求参数问题 - 添加分销商银行卡管理相关接口实现- 调整聊天消息和会话管理接口的数据结构定义 -修复用户管理模块中的API调用路径问题 - 添加扫码登录相关工具函数,如设备信息获取等 - 更新邀请绑定接口的数据模型定义 -优化管理员面板组件的样式和功能实现 -修复系统用户管理接口中的参数传递问题 - 添加聊天相关模块的完整API接口实现 - 调整分销商银行卡管理模块的数据结构定义- 修复扫码登录相关接口的URL拼接问题- 更新用户管理模块中的API调用方式 - 添加聊天消息批量发送等相关接口实现- 修复邀请绑定接口中的参数名称问题- 优化管理员面板组件的功能和交互逻辑 - 调整系统用户管理接口的请求参数传递方式 - 添加分销商银行卡管理模块的完整接口实现 -修复聊天相关接口中的数据结构问题 - 更新扫码登录相关接口的数据模型定义 - 优化管理员功能面板的展示效果和用户体验
67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
import { useState, useCallback, useEffect } from 'react';
|
|
import Taro from '@tarojs/taro';
|
|
|
|
/**
|
|
* 管理员模式Hook
|
|
* 用于管理管理员用户的模式切换(普通用户模式 vs 管理员模式)
|
|
*/
|
|
export function useAdminMode() {
|
|
const [isAdminMode, setIsAdminMode] = useState<boolean>(false);
|
|
|
|
// 从本地存储加载管理员模式状态
|
|
useEffect(() => {
|
|
try {
|
|
const savedMode = Taro.getStorageSync('admin_mode');
|
|
if (savedMode !== undefined) {
|
|
setIsAdminMode(savedMode === 'true' || savedMode === true);
|
|
}
|
|
} catch (error) {
|
|
console.warn('Failed to load admin mode from storage:', error);
|
|
}
|
|
}, []);
|
|
|
|
// 切换管理员模式
|
|
const toggleAdminMode = useCallback(() => {
|
|
const newMode = !isAdminMode;
|
|
setIsAdminMode(newMode);
|
|
|
|
try {
|
|
// 保存到本地存储
|
|
Taro.setStorageSync('admin_mode', newMode);
|
|
|
|
// 显示切换提示
|
|
Taro.showToast({
|
|
title: newMode ? '已切换到管理员模式' : '已切换到普通用户模式',
|
|
icon: 'success',
|
|
duration: 1500
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to save admin mode to storage:', error);
|
|
}
|
|
}, [isAdminMode]);
|
|
|
|
// 设置管理员模式
|
|
const setAdminMode = useCallback((mode: boolean) => {
|
|
if (mode !== isAdminMode) {
|
|
setIsAdminMode(mode);
|
|
try {
|
|
Taro.setStorageSync('admin_mode', mode);
|
|
} catch (error) {
|
|
console.error('Failed to save admin mode to storage:', error);
|
|
}
|
|
}
|
|
}, [isAdminMode]);
|
|
|
|
// 重置为普通用户模式
|
|
const resetToUserMode = useCallback(() => {
|
|
setAdminMode(false);
|
|
}, [setAdminMode]);
|
|
|
|
return {
|
|
isAdminMode,
|
|
toggleAdminMode,
|
|
setAdminMode,
|
|
resetToUserMode
|
|
};
|
|
}
|