// 批量编辑第三步 - 确认预览页面 let selectedShops = []; let levelData = []; // 页面初始化 document.addEventListener('DOMContentLoaded', function() { loadStoredData(); generatePreview(); updateSummaryStats(); }); // 加载存储的数据 function loadStoredData() { // 加载选中的店铺 const storedShops = sessionStorage.getItem('batchEditSelectedShops'); if (storedShops) { selectedShops = JSON.parse(storedShops); } else { showNotification('未找到选中的店铺数据,请重新操作', 'error'); setTimeout(() => { navigateTo('batch-edit-step1.html'); }, 2000); return; } // 加载等级设置数据 const storedLevels = sessionStorage.getItem('batchEditLevelData'); if (storedLevels) { levelData = JSON.parse(storedLevels); } else { showNotification('未找到等级设置数据,请重新设置', 'error'); setTimeout(() => { navigateTo('batch-edit-step2.html'); }, 2000); return; } } // 生成预览表格 function generatePreview() { const tableBody = document.getElementById('preview-table-body'); const html = selectedShops.map(shop => { const beforeLevels = shop.levels.join(', '); const afterLevels = levelData.map(level => level.level).join(', '); return `
${shop.name}
${beforeLevels}
${afterLevels}
新设置
${shop.memberCount} 人
`; }).join(''); tableBody.innerHTML = html; } // 更新摘要统计 function updateSummaryStats() { const shopCount = selectedShops.length; const totalMembers = selectedShops.reduce((sum, shop) => sum + shop.memberCount, 0); document.getElementById('shop-count').textContent = shopCount; document.getElementById('member-count').textContent = totalMembers.toLocaleString(); } // 上一步 - 返回修改 function previousStep() { navigateTo('batch-edit-step2.html'); } // 确认提交 function confirmSubmit() { const shopCount = selectedShops.length; const totalMembers = selectedShops.reduce((sum, shop) => sum + shop.memberCount, 0); const message = `确定要为 ${shopCount} 个店铺的 ${totalMembers.toLocaleString()} 名会员应用新的等级设置吗?\n\n此操作不可撤销,请谨慎确认。`; confirmAction(message, () => { executeSubmit(); }); } // 执行提交 function executeSubmit() { // 隐藏操作按钮,显示进度 document.getElementById('action-buttons').style.display = 'none'; document.getElementById('submit-progress').style.display = 'block'; simulateSubmitProgress(); } // 模拟提交进度 function simulateSubmitProgress() { const progressFill = document.getElementById('progress-fill'); const progressText = document.getElementById('progress-text'); const steps = [ { progress: 10, text: '验证店铺数据...' }, { progress: 25, text: '备份现有设置...' }, { progress: 40, text: '应用等级设置...' }, { progress: 60, text: '更新会员等级...' }, { progress: 80, text: '发送通知消息...' }, { progress: 95, text: '清理缓存数据...' }, { progress: 100, text: '操作完成!' } ]; let currentStep = 0; const updateProgress = () => { if (currentStep < steps.length) { const step = steps[currentStep]; progressFill.style.width = step.progress + '%'; progressText.textContent = step.text; currentStep++; // 模拟不同步骤的处理时间 const delay = currentStep === steps.length ? 1000 : Math.random() * 1000 + 500; setTimeout(updateProgress, delay); } else { // 提交完成 onSubmitComplete(); } }; updateProgress(); } // 提交完成处理 function onSubmitComplete() { // 清理存储的数据 sessionStorage.removeItem('batchEditSelectedShops'); sessionStorage.removeItem('batchEditLevelData'); // 显示成功消息 const shopCount = selectedShops.length; const totalMembers = selectedShops.reduce((sum, shop) => sum + shop.memberCount, 0); showNotification( `批量设置成功!已为 ${shopCount} 个店铺的 ${totalMembers.toLocaleString()} 名会员应用新的等级设置。`, 'success', 5000 ); // 延迟跳转回等级设置主页 setTimeout(() => { navigateTo('level-settings.html'); }, 3000); } // 生成操作日志(用于后续可能的撤销功能) function generateOperationLog() { const operationLog = { timestamp: new Date().toISOString(), operation: 'batch_level_edit', affectedShops: selectedShops.map(shop => ({ shopId: shop.id, shopName: shop.name, beforeLevels: shop.levels, afterLevels: levelData.map(level => level.level), memberCount: shop.memberCount })), newLevelSettings: levelData, summary: { shopCount: selectedShops.length, totalMembers: selectedShops.reduce((sum, shop) => sum + shop.memberCount, 0) } }; // 在实际项目中,这里会将日志发送到服务器 console.log('操作日志:', operationLog); return operationLog; } // 导出函数到全局 window.previousStep = previousStep; window.confirmSubmit = confirmSubmit;