// 等级设置页面的Tab系统JavaScript逻辑 // 初始化页面 document.addEventListener('DOMContentLoaded', function() { initializeSidebar(); initializeSidebarSearch(); // 默认打开等级设置Tab openLevelSettingsTab(); }); // 打开等级设置Tab(从member-tabs.js调用) function openLevelSettingsTab() { if (typeof memberTabManager !== 'undefined') { memberTabManager.showDefaultContent(); // 创建等级设置tab const content = generateLevelSettingsContent(); memberTabManager.createTab('level-settings', '等级设置', content, false); } } // 生成等级设置表格内容 function generateLevelSettingsContent() { return `

等级设置

摊位名称 是否启用会员 会员等级 操作
时尚服装店 lv1, lv2, lv3, lv4
数码电子城 lv1, lv2, lv3
美食餐厅 lv1, lv2, lv3, lv4
家居生活馆 lv1, lv2
运动健身店 lv1, lv2, lv3, lv4
`; } // 摊位筛选相关功能 let selectedStalls = []; let dropdownOpen = false; function toggleStallDropdown() { const dropdown = document.getElementById('stall-dropdown-list'); const button = document.getElementById('stall-dropdown-btn'); if (dropdown && button) { dropdownOpen = !dropdownOpen; if (dropdownOpen) { dropdown.classList.remove('hidden'); // 添加点击外部关闭功能 setTimeout(() => { document.addEventListener('click', closeDropdownOnClickOutside); }, 0); } else { dropdown.classList.add('hidden'); document.removeEventListener('click', closeDropdownOnClickOutside); } } } function closeDropdownOnClickOutside(event) { const dropdown = document.getElementById('stall-dropdown-list'); const button = document.getElementById('stall-dropdown-btn'); if (dropdown && button && !dropdown.contains(event.target) && !button.contains(event.target)) { dropdown.classList.add('hidden'); dropdownOpen = false; document.removeEventListener('click', closeDropdownOnClickOutside); } } function updateSelectedStalls() { const checkboxes = document.querySelectorAll('#stall-dropdown-list input[type="checkbox"]'); selectedStalls = []; checkboxes.forEach(checkbox => { if (checkbox.checked) { selectedStalls.push(checkbox.value); } }); updateDropdownText(); updateSelectedStallsDisplay(); } function updateDropdownText() { const dropdownText = document.getElementById('dropdown-text'); if (dropdownText) { if (selectedStalls.length === 0) { dropdownText.textContent = '请选择摊位名称...'; } else if (selectedStalls.length === 1) { dropdownText.textContent = selectedStalls[0]; } else { dropdownText.textContent = `已选择 ${selectedStalls.length} 个摊位`; } } } function updateSelectedStallsDisplay() { const selectedDiv = document.getElementById('selected-stalls'); if (!selectedDiv) return; selectedDiv.innerHTML = ''; selectedStalls.forEach(stall => { const tag = document.createElement('span'); tag.className = 'inline-flex items-center px-2 py-1 rounded-md text-xs font-medium bg-green-100 text-green-800'; tag.innerHTML = ` ${stall} `; selectedDiv.appendChild(tag); }); } function removeSelectedStall(stallName) { selectedStalls = selectedStalls.filter(stall => stall !== stallName); // 更新checkbox状态 const checkboxes = document.querySelectorAll('#stall-dropdown-list input[type="checkbox"]'); checkboxes.forEach(checkbox => { if (checkbox.value === stallName) { checkbox.checked = false; } }); updateDropdownText(); updateSelectedStallsDisplay(); } function filterStallTable() { const tableRows = document.querySelectorAll('#tab-content-area tbody tr'); if (selectedStalls.length === 0) { // 如果没有选择任何摊位,显示所有行 tableRows.forEach(row => { row.style.display = ''; }); showNotification('已显示所有摊位', 'info'); } else { // 根据选择的摊位筛选表格行 let visibleCount = 0; tableRows.forEach(row => { const stallNameCell = row.querySelector('td:first-child'); if (stallNameCell) { const stallName = stallNameCell.textContent.trim(); if (selectedStalls.includes(stallName)) { row.style.display = ''; visibleCount++; } else { row.style.display = 'none'; } } }); showNotification(`已筛选显示 ${visibleCount} 个摊位`, 'success'); } } // 导出函数 window.openLevelSettingsTab = openLevelSettingsTab; window.generateLevelSettingsContent = generateLevelSettingsContent; window.openBatchLevelEditTab = openBatchLevelEditTab; window.toggleStallDropdown = toggleStallDropdown; window.updateSelectedStalls = updateSelectedStalls; window.removeSelectedStall = removeSelectedStall; window.filterStallTable = filterStallTable;