141 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								// 等级设置页面 - H5版本
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								let selectedStalls = [];
							 | 
						|||
| 
								 | 
							
								let dropdownOpen = false;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 切换摊位下拉框
							 | 
						|||
| 
								 | 
							
								function toggleStallDropdown() {
							 | 
						|||
| 
								 | 
							
								    const dropdown = document.getElementById('stall-dropdown-list');
							 | 
						|||
| 
								 | 
							
								    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.contains(event.target) && !button.contains(event.target)) {
							 | 
						|||
| 
								 | 
							
								        dropdown.classList.add('hidden');
							 | 
						|||
| 
								 | 
							
								        dropdownOpen = false;
							 | 
						|||
| 
								 | 
							
								        document.removeEventListener('click', closeDropdownOnClickOutside);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 选择摊位
							 | 
						|||
| 
								 | 
							
								function selectStall(stallName) {
							 | 
						|||
| 
								 | 
							
								    const checkbox = event.target.previousElementSibling || event.target.querySelector('input');
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								    if (checkbox) {
							 | 
						|||
| 
								 | 
							
								        checkbox.checked = !checkbox.checked;
							 | 
						|||
| 
								 | 
							
								        
							 | 
						|||
| 
								 | 
							
								        if (checkbox.checked && !selectedStalls.includes(stallName)) {
							 | 
						|||
| 
								 | 
							
								            selectedStalls.push(stallName);
							 | 
						|||
| 
								 | 
							
								        } else if (!checkbox.checked && selectedStalls.includes(stallName)) {
							 | 
						|||
| 
								 | 
							
								            selectedStalls = selectedStalls.filter(stall => stall !== stallName);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        
							 | 
						|||
| 
								 | 
							
								        updateSelectedStallsDisplay();
							 | 
						|||
| 
								 | 
							
								        updateDropdownText();
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 更新下拉框按钮文字
							 | 
						|||
| 
								 | 
							
								function updateDropdownText() {
							 | 
						|||
| 
								 | 
							
								    const button = document.getElementById('stall-dropdown-btn');
							 | 
						|||
| 
								 | 
							
								    if (selectedStalls.length === 0) {
							 | 
						|||
| 
								 | 
							
								        button.textContent = '请选择摊位名称...';
							 | 
						|||
| 
								 | 
							
								    } else if (selectedStalls.length === 1) {
							 | 
						|||
| 
								 | 
							
								        button.textContent = selectedStalls[0];
							 | 
						|||
| 
								 | 
							
								    } else {
							 | 
						|||
| 
								 | 
							
								        button.textContent = `已选择 ${selectedStalls.length} 个摊位`;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 更新已选摊位显示
							 | 
						|||
| 
								 | 
							
								function updateSelectedStallsDisplay() {
							 | 
						|||
| 
								 | 
							
								    const container = document.getElementById('selected-stalls');
							 | 
						|||
| 
								 | 
							
								    container.innerHTML = '';
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								    selectedStalls.forEach(stall => {
							 | 
						|||
| 
								 | 
							
								        const tag = document.createElement('span');
							 | 
						|||
| 
								 | 
							
								        tag.className = 'filter-tag';
							 | 
						|||
| 
								 | 
							
								        tag.innerHTML = `${stall} <span class="close" onclick="removeStall('${stall}')">×</span>`;
							 | 
						|||
| 
								 | 
							
								        container.appendChild(tag);
							 | 
						|||
| 
								 | 
							
								    });
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 移除选中的摊位
							 | 
						|||
| 
								 | 
							
								function removeStall(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;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    });
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								    updateSelectedStallsDisplay();
							 | 
						|||
| 
								 | 
							
								    updateDropdownText();
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 查询摊位
							 | 
						|||
| 
								 | 
							
								function queryStalls() {
							 | 
						|||
| 
								 | 
							
								    const tableRows = document.querySelectorAll('#stalls-table-body 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');
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 批量编辑
							 | 
						|||
| 
								 | 
							
								function batchEdit() {
							 | 
						|||
| 
								 | 
							
								    // 跳转到批量编辑第一步:店铺选择页面
							 | 
						|||
| 
								 | 
							
								    navigateTo('batch-edit-step1.html');
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 查看等级明细
							 | 
						|||
| 
								 | 
							
								function viewLevelDetail(stallName) {
							 | 
						|||
| 
								 | 
							
								    const encodedName = encodeURIComponent(stallName);
							 | 
						|||
| 
								 | 
							
								    navigateTo(`level-detail.html?stall=${encodedName}`);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 导出函数到全局
							 | 
						|||
| 
								 | 
							
								window.toggleStallDropdown = toggleStallDropdown;
							 | 
						|||
| 
								 | 
							
								window.selectStall = selectStall;
							 | 
						|||
| 
								 | 
							
								window.removeStall = removeStall;
							 | 
						|||
| 
								 | 
							
								window.queryStalls = queryStalls;
							 | 
						|||
| 
								 | 
							
								window.batchEdit = batchEdit;
							 | 
						|||
| 
								 | 
							
								window.viewLevelDetail = viewLevelDetail;
							 |