feat(menu): 添加菜单缓存刷新功能和拖拽排序支持
- 在SysMenuController中添加refreshCache和refreshCurrentUserMenuCache接口 - 实现菜单缓存的按需刷新和用户级别缓存清理功能 - 优化菜单列表查询的缓存key策略,支持更精确的缓存命中 - 为菜单树查询添加缓存注解提升性能 - 在菜单增删改操作中完善缓存清理逻辑 - 添加allocateMenuToRole方法实现菜单角色分配功能 - 在前端DictTag组件中修复标签类型验证逻辑 - 为首页配置页面添加拖拽排序功能,支持快捷功能重新排列 - 集成Sortable.js实现拖拽交互和排序保存 - 优化菜单管理页面的缓存刷新机制和数据展示 - 完善配置更新事件处理,支持实时配置同步
This commit is contained in:
@@ -963,9 +963,46 @@ const handleStorageChange = (event) => {
|
||||
};
|
||||
|
||||
// 监听配置更新事件
|
||||
const handleConfigUpdate = () => {
|
||||
const handleConfigUpdate = (event) => {
|
||||
console.log('检测到快捷功能配置更新事件,正在重新加载...');
|
||||
loadUserQuickAccessConfig();
|
||||
// 如果事件携带了最新配置数据,则直接使用
|
||||
if (event && event.detail && event.detail.config) {
|
||||
console.log('使用事件传递的最新配置数据:', event.detail.config);
|
||||
// 直接更新本地存储中的配置
|
||||
localStorage.setItem('homeFeaturesConfig', JSON.stringify(event.detail.config));
|
||||
// 更新缓存时间戳
|
||||
localStorage.setItem('homeFeaturesConfigCache', JSON.stringify(event.detail.config));
|
||||
localStorage.setItem('homeFeaturesConfigCacheTimestamp', Date.now().toString());
|
||||
// 使用最新配置更新首页显示
|
||||
updateQuickAccessData(event.detail.config);
|
||||
} else {
|
||||
// 否则重新加载配置
|
||||
loadUserQuickAccessConfig();
|
||||
}
|
||||
};
|
||||
|
||||
// 直接更新快捷访问数据
|
||||
const updateQuickAccessData = async (configData) => {
|
||||
quickAccessLoading.value = true;
|
||||
try {
|
||||
console.log('使用最新配置数据更新快捷访问...', configData);
|
||||
// 转换菜单ID为快捷访问格式
|
||||
const convertedFeatures = await convertMenuIdsToQuickAccess(configData);
|
||||
console.log('转换后的功能:', convertedFeatures);
|
||||
|
||||
if (convertedFeatures && convertedFeatures.length > 0) {
|
||||
quickAccessData.value = convertedFeatures;
|
||||
} else {
|
||||
// 如果转换失败,使用默认配置
|
||||
quickAccessData.value = getDefaultQuickAccessConfig();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('更新快捷访问数据失败:', error);
|
||||
// 出错时使用默认配置
|
||||
quickAccessData.value = getDefaultQuickAccessConfig();
|
||||
} finally {
|
||||
quickAccessLoading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
|
||||
Reference in New Issue
Block a user