综述: 优化分销商管理页面交互功能和菜单搜索功能
- 在index.html中为分销管理添加了二级子菜单结构,改善了用户界面 - 增强了菜单项展开/收起的控制逻辑,提供了更好的交互体验 - 实现了菜单搜索功能,支持按文本内容过滤菜单项 - 添加了JavaScript错误监听器用于调试和错误追踪 - 修改了toggleSubmenu函数,优化了菜单展开/收起的行为控制
This commit is contained in:
		
							parent
							
								
									e2c7950e5f
								
							
						
					
					
						commit
						bc240f414c
					
				|  | @ -156,6 +156,10 @@ | ||||||
|             transform: rotate(90deg); |             transform: rotate(90deg); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         .submenu-item.expanded .menu-arrow { | ||||||
|  |             transform: rotate(90deg); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         .submenu { |         .submenu { | ||||||
|             background-color: #fafafa; |             background-color: #fafafa; | ||||||
|             display: none; |             display: none; | ||||||
|  | @ -165,6 +169,39 @@ | ||||||
|             display: block; |             display: block; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         .submenu-item { | ||||||
|  |             position: relative; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .submenu-item.expanded > .submenu { | ||||||
|  |             display: block; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .submenu .submenu { | ||||||
|  |             background-color: #f0f0f0; | ||||||
|  |             display: none; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         /* 确保二级子菜单也能正确显示 */ | ||||||
|  |         .menu-item.expanded .submenu-item.expanded > .submenu, | ||||||
|  |         .submenu-item.expanded > .submenu { | ||||||
|  |             display: block; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         /* 特别为分销管理的嵌套子菜单提供显示规则 */ | ||||||
|  |         .menu-item.expanded .submenu .submenu-item.expanded .submenu { | ||||||
|  |             display: block; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         /* 确保在品牌管理展开的情况下,分销管理的子菜单能正确显示 */ | ||||||
|  |         .menu-item.expanded .submenu .submenu-item .submenu { | ||||||
|  |             display: none; /* 默认隐藏 */ | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .menu-item.expanded .submenu .submenu-item.expanded .submenu { | ||||||
|  |             display: block; /* 只有在展开时才显示 */ | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         .submenu-link { |         .submenu-link { | ||||||
|             padding: 8px 20px 8px 46px; |             padding: 8px 20px 8px 46px; | ||||||
|             font-size: 13px; |             font-size: 13px; | ||||||
|  | @ -286,7 +323,7 @@ | ||||||
|             </li> |             </li> | ||||||
|              |              | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-user-cog"></i> |                         <i class="fas fa-user-cog"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -308,7 +345,7 @@ | ||||||
|             </li> |             </li> | ||||||
|              |              | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-clipboard-list"></i> |                         <i class="fas fa-clipboard-list"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -343,7 +380,7 @@ | ||||||
|             </li> |             </li> | ||||||
|              |              | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-analytics"></i> |                         <i class="fas fa-analytics"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -370,7 +407,7 @@ | ||||||
|              |              | ||||||
|              |              | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-users"></i> |                         <i class="fas fa-users"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -393,7 +430,7 @@ | ||||||
|              |              | ||||||
| 
 | 
 | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-file-alt"></i> |                         <i class="fas fa-file-alt"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -419,7 +456,7 @@ | ||||||
|             </li> |             </li> | ||||||
| 
 | 
 | ||||||
|             <li class="menu-item"> |             <li class="menu-item"> | ||||||
|                 <div class="menu-link" onclick="toggleSubmenu(this)"> |                 <div class="menu-link" onclick="toggleTopLevelSubmenu(this)"> | ||||||
|                     <span class="menu-icon"> |                     <span class="menu-icon"> | ||||||
|                         <i class="fas fa-award"></i> |                         <i class="fas fa-award"></i> | ||||||
|                     </span> |                     </span> | ||||||
|  | @ -437,14 +474,25 @@ | ||||||
|                         <span class="submenu-icon"></span> |                         <span class="submenu-icon"></span> | ||||||
|                         品牌市场订单 |                         品牌市场订单 | ||||||
|                     </a> |                     </a> | ||||||
|                     <a href="#" class="submenu-link" onclick="loadContent('./品牌管理/分销商管理.html', this)"> |                     <div class="submenu-item"> | ||||||
|                         <span class="submenu-icon"></span> |                         <div class="submenu-link" onclick="toggleSubmenu(this, event);"> | ||||||
|                         分销商管理 |                             <span class="submenu-icon"></span> | ||||||
|                     </a> |                             <span class="menu-text">分销管理</span> | ||||||
|                     <a href="#" class="submenu-link" onclick="loadContent('./品牌管理/分销订单与佣金管理.html', this)"> |                             <span class="menu-arrow"> | ||||||
|                         <span class="submenu-icon"></span> |                                 <i class="fas fa-chevron-right"></i> | ||||||
|                         分销订单与佣金管理 |                             </span> | ||||||
|                     </a> |                         </div> | ||||||
|  |                         <div class="submenu"> | ||||||
|  |                             <a href="#" class="submenu-link" onclick="loadContent('./品牌管理/分销商管理.html', this);" style="padding-left: 70px;"> | ||||||
|  |                                 <span class="submenu-icon"></span> | ||||||
|  |                                 分销商管理 | ||||||
|  |                             </a> | ||||||
|  |                             <a href="#" class="submenu-link" onclick="loadContent('./品牌管理/分销订单与佣金管理.html', this);" style="padding-left: 70px;"> | ||||||
|  |                                 <span class="submenu-icon"></span> | ||||||
|  |                                 分销订单与佣金管理 | ||||||
|  |                             </a> | ||||||
|  |                         </div> | ||||||
|  |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
|             </li> |             </li> | ||||||
|         </ul> |         </ul> | ||||||
|  | @ -467,10 +515,58 @@ | ||||||
|             sidebar.classList.toggle('open'); |             sidebar.classList.toggle('open'); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // 切换子菜单展开/收起 |         // 切换顶级菜单展开/收起 | ||||||
|         function toggleSubmenu(element) { |         function toggleTopLevelSubmenu(element) { | ||||||
|  |             console.log('toggleTopLevelSubmenu called', element); | ||||||
|             const menuItem = element.parentElement; |             const menuItem = element.parentElement; | ||||||
|             menuItem.classList.toggle('expanded'); |             console.log('Parent menu item:', menuItem); | ||||||
|  | 
 | ||||||
|  |             // 切换 expanded 类 | ||||||
|  |             const isExpanded = menuItem.classList.toggle('expanded'); | ||||||
|  |             console.log('Menu item expanded state:', isExpanded); | ||||||
|  | 
 | ||||||
|  |             // 阻止事件冒泡,防止触发父级菜单的点击事件 | ||||||
|  |             if (event && event.stopPropagation) { | ||||||
|  |                 event.stopPropagation(); | ||||||
|  |             } else if (window.event) { | ||||||
|  |                 window.event.cancelBubble = true; | ||||||
|  |             } | ||||||
|  |             console.log('Event stopped from propagating'); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // 切换子菜单展开/收起 - 适用于所有层级 | ||||||
|  |         function toggleSubmenu(element, event) { | ||||||
|  |             console.log('toggleSubmenu called', element); | ||||||
|  |             const parentElement = element.parentElement; | ||||||
|  |             console.log('Parent element:', parentElement); | ||||||
|  |              | ||||||
|  |             let targetElement; | ||||||
|  |              | ||||||
|  |             // Check if this is a direct submenu item or nested submenu item | ||||||
|  |             if (parentElement.classList.contains('submenu-item')) { | ||||||
|  |                 targetElement = parentElement; | ||||||
|  |                 console.log('Found submenu-item element'); | ||||||
|  |             } else { | ||||||
|  |                 targetElement = parentElement; | ||||||
|  |                 console.log('Using parent element directly'); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             console.log('Target element before toggle:', targetElement); | ||||||
|  |             console.log('Target element classList:', targetElement.classList); | ||||||
|  | 
 | ||||||
|  |             // Toggle expanded class | ||||||
|  |             const isExpanded = targetElement.classList.toggle('expanded'); | ||||||
|  |             console.log('Target element expanded state after toggle:', isExpanded); | ||||||
|  |             console.log('Target element classList after toggle:', targetElement.classList); | ||||||
|  | 
 | ||||||
|  |             // Prevent event bubbling, to avoid triggering parent menu clicks | ||||||
|  |             if (event && event.stopPropagation) { | ||||||
|  |                 event.stopPropagation(); | ||||||
|  |                 console.log('Event stopped from propagating'); | ||||||
|  |             } else if (window.event) { | ||||||
|  |                 window.event.cancelBubble = true; | ||||||
|  |                 console.log('Event cancelBubble set to true'); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // 加载内容到iframe |         // 加载内容到iframe | ||||||
|  | @ -510,17 +606,22 @@ | ||||||
| 
 | 
 | ||||||
|         // 菜单搜索功能 |         // 菜单搜索功能 | ||||||
|         document.querySelector('.search-input').addEventListener('input', function(e) { |         document.querySelector('.search-input').addEventListener('input', function(e) { | ||||||
|  |             console.log('Search input event triggered', e.target.value); | ||||||
|             const searchText = e.target.value.toLowerCase(); |             const searchText = e.target.value.toLowerCase(); | ||||||
|             const menuItems = document.querySelectorAll('.menu-item'); |             const menuItems = document.querySelectorAll('.menu-item'); | ||||||
|  |             console.log('Found', menuItems.length, 'menu items'); | ||||||
|              |              | ||||||
|             menuItems.forEach(item => { |             menuItems.forEach(item => { | ||||||
|                 const menuText = item.querySelector('.menu-text'); |                 const menuText = item.querySelector('.menu-text'); | ||||||
|                 if (menuText) { |                 if (menuText) { | ||||||
|                     const text = menuText.textContent.toLowerCase(); |                     const text = menuText.textContent.toLowerCase(); | ||||||
|  |                     console.log('Checking menu text:', text); | ||||||
|                     if (text.includes(searchText) || searchText === '') { |                     if (text.includes(searchText) || searchText === '') { | ||||||
|                         item.style.display = 'block'; |                         item.style.display = 'block'; | ||||||
|  |                         console.log('Display set to block for:', text); | ||||||
|                     } else { |                     } else { | ||||||
|                         item.style.display = 'none'; |                         item.style.display = 'none'; | ||||||
|  |                         console.log('Display set to none for:', text); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|  | @ -540,6 +641,16 @@ | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|         }); |         }); | ||||||
|  |         // 添加错误监听器以便调试 | ||||||
|  |         window.addEventListener('error', function(e) { | ||||||
|  |             console.error('JavaScript Error:', e.error); | ||||||
|  |             console.error('Error Message:', e.message); | ||||||
|  |             console.error('Error Filename:', e.filename); | ||||||
|  |             console.error('Error Line Number:', e.lineno); | ||||||
|  |             console.error('Error Column Number:', e.colno); | ||||||
|  |         }); | ||||||
|  |          | ||||||
|  |         console.log('Page loaded and scripts initialized'); | ||||||
|     </script> |     </script> | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
		Loading…
	
		Reference in New Issue