// 批量编辑第二步 - 等级设置页面
let selectedShops = [];
let levelData = [];
// 预设模板
const templates = {
    default: [
        { 
            level: 'LV1', 
            name: '铜牌会员', 
            growthMin: 0, 
            growthMax: 100, 
            memberDiscount: true, 
            discountRate: 5, 
            pointExchange: false, 
            birthdayCoupon: false, 
            birthdayDoublePoints: false 
        },
        { 
            level: 'LV2', 
            name: '银牌会员', 
            growthMin: 101, 
            growthMax: 500, 
            memberDiscount: true, 
            discountRate: 10, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: true 
        },
        { 
            level: 'LV3', 
            name: '金牌会员', 
            growthMin: 501, 
            growthMax: 1200, 
            memberDiscount: true, 
            discountRate: 15, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: true 
        }
    ],
    premium: [
        { 
            level: 'LV1', 
            name: '新手会员', 
            growthMin: 0, 
            growthMax: 200, 
            memberDiscount: true, 
            discountRate: 8, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: false 
        },
        { 
            level: 'LV2', 
            name: '进阶会员', 
            growthMin: 201, 
            growthMax: 800, 
            memberDiscount: true, 
            discountRate: 15, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: true 
        },
        { 
            level: 'LV3', 
            name: '高级会员', 
            growthMin: 801, 
            growthMax: 2000, 
            memberDiscount: true, 
            discountRate: 20, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: true 
        },
        { 
            level: 'LV4', 
            name: 'VIP会员', 
            growthMin: 2001, 
            growthMax: 9999, 
            memberDiscount: true, 
            discountRate: 25, 
            pointExchange: true, 
            birthdayCoupon: true, 
            birthdayDoublePoints: true 
        }
    ]
};
// 获取URL参数
function getUrlParameter(name) {
    const urlParams = new URLSearchParams(window.location.search);
    return urlParams.get(name) || '';
}
// 页面初始化
document.addEventListener('DOMContentLoaded', function() {
    loadSelectedShops();
    loadTemplate('default'); // 默认加载基础模板
    displaySelectedShops();
});
// 加载选中的店铺数据
function loadSelectedShops() {
    const storedShops = sessionStorage.getItem('batchEditSelectedShops');
    if (storedShops) {
        selectedShops = JSON.parse(storedShops);
    } else {
        // 如果没有数据,返回上一步
        showNotification('未找到选中的店铺数据,请重新选择', 'error');
        setTimeout(() => {
            navigateTo('batch-edit-step1.html');
        }, 2000);
        return;
    }
}
// 显示选中的店铺
function displaySelectedShops() {
    const shopCount = document.getElementById('shop-count');
    const shopsList = document.getElementById('selected-shops-list');
    
    shopCount.textContent = selectedShops.length;
    
    const html = selectedShops.map(shop => `
        ${shop.name}
    `).join('');
    
    shopsList.innerHTML = html;
}
// 加载模板
function loadTemplate(templateName) {
    if (templates[templateName]) {
        levelData = JSON.parse(JSON.stringify(templates[templateName])); // 深拷贝
        renderTable();
        showNotification(`已加载${templateName === 'default' ? '默认' : '高级'}模板`, 'success');
    }
}
// 重置设置
function resetSettings() {
    confirmAction('确定要重置所有设置吗?', () => {
        levelData = [];
        renderTable();
        showNotification('已重置所有设置', 'info');
    });
}
// 渲染表格
function renderTable() {
    const tableBody = document.getElementById('level-edit-table');
    let html = '';
    
    levelData.forEach((level, index) => {
        // 主行
        html += `
        
            | ${level.level} | 
            
                
             | 
            
                
             | 
        
`;
        
        // 详情行(默认隐藏)
        html += `
        
            
                
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                        ${index === levelData.length - 1 ? `
                            
                            
                        ` : ''}
                     
                 
             | 
        
`;
    });
    
    tableBody.innerHTML = html;
}
// 更新等级数据
function updateLevelData(index, field, value) {
    if (levelData[index]) {
        if (field === 'growthMin' || field === 'growthMax' || field === 'discountRate') {
            levelData[index][field] = parseInt(value) || 0;
        } else {
            levelData[index][field] = value;
        }
    }
}
// 切换等级详情展开/收缩
function toggleLevelDetail(index) {
    const detailRow = document.getElementById(`detailRow_${index}`);
    const expandBtn = document.getElementById(`expandBtn_${index}`);
    
    if (detailRow.classList.contains('hidden')) {
        // 展开
        detailRow.classList.remove('hidden');
        expandBtn.textContent = '收起详情';
        expandBtn.style.background = '#ff9800';
    } else {
        // 收起
        detailRow.classList.add('hidden');
        expandBtn.textContent = '展开详情';
        expandBtn.style.background = '#4CAF50';
    }
}
// 切换折扣率输入框状态
function toggleDiscountRate(index) {
    const checkbox = document.getElementById(`memberDiscount_${index}`);
    const discountInput = document.getElementById(`discountRate_${index}`);
    
    if (checkbox.checked) {
        discountInput.disabled = false;
        levelData[index].memberDiscount = true;
    } else {
        discountInput.disabled = true;
        levelData[index].memberDiscount = false;
    }
}
// 切换优惠券按钮显示
function toggleCouponButton(index) {
    const checkbox = document.getElementById(`birthdayCoupon_${index}`);
    const addButton = document.getElementById(`addCouponBtn_${index}`);
    
    if (checkbox.checked) {
        addButton.classList.remove('hidden');
        levelData[index].birthdayCoupon = true;
    } else {
        addButton.classList.add('hidden');
        levelData[index].birthdayCoupon = false;
    }
}
// 添加生日优惠券
function addBirthdayCoupon(index) {
    const modal = document.getElementById('coupon-modal');
    modal.classList.remove('hidden');
    resetCouponForm();
}
// 关闭优惠券弹窗
function closeCouponModal(event) {
    if (event && event.target !== event.currentTarget) {
        return;
    }
    
    const modal = document.getElementById('coupon-modal');
    if (modal) {
        modal.classList.add('hidden');
    }
}
// 重置优惠券表单
function resetCouponForm() {
    document.getElementById('coupon-name').value = '生日优惠券';
    document.getElementById('coupon-threshold').value = '10';
    document.getElementById('coupon-discount').value = '1';
    document.getElementById('coupon-validity').value = '1';
}
// 提交优惠券
function submitCoupon() {
    const couponData = {
        name: document.getElementById('coupon-name').value,
        threshold: document.getElementById('coupon-threshold').value,
        discount: document.getElementById('coupon-discount').value,
        validity: document.getElementById('coupon-validity').value
    };
    
    if (!couponData.name.trim()) {
        showNotification('请输入优惠券名称', 'error');
        return;
    }
    
    if (parseInt(couponData.discount) >= parseInt(couponData.threshold)) {
        showNotification('减免金额不能大于或等于门槛金额', 'error');
        return;
    }
    
    showNotification(`成功添加优惠券:${couponData.name}`, 'success');
    closeCouponModal();
}
// 删除等级
function deleteLevel(index) {
    if (levelData.length <= 1) {
        showNotification('至少需要保留一个等级', 'warning');
        return;
    }
    
    confirmAction('确定要删除这个等级吗?', () => {
        levelData.splice(index, 1);
        
        // 重新编号等级
        levelData.forEach((level, i) => {
            level.level = `LV${i + 1}`;
        });
        
        renderTable();
        showNotification(`删除等级成功`, 'success');
    });
}
// 添加新等级
function addNewLevel() {
    const newLevelNum = levelData.length + 1;
    const lastLevel = levelData[levelData.length - 1];
    
    const newLevel = {
        level: `LV${newLevelNum}`,
        name: `新等级${newLevelNum}`,
        growthMin: lastLevel.growthMax + 1,
        growthMax: lastLevel.growthMax + 1000,
        memberDiscount: true,
        discountRate: Math.min(lastLevel.discountRate + 5, 50),
        pointExchange: true,
        birthdayCoupon: true,
        birthdayDoublePoints: true
    };
    
    levelData.push(newLevel);
    renderTable();
    showNotification(`添加新等级 LV${newLevelNum}`, 'success');
}
// 上一步
function previousStep() {
    navigateTo('batch-edit-step1.html');
}
// 下一步
function nextStep() {
    if (levelData.length === 0) {
        showNotification('请至少设置一个等级', 'warning');
        return;
    }
    
    // 验证等级设置
    for (let i = 0; i < levelData.length; i++) {
        const level = levelData[i];
        if (!level.name.trim()) {
            showNotification(`请为 ${level.level} 设置等级名称`, 'error');
            return;
        }
        if (level.growthMin >= level.growthMax) {
            showNotification(`${level.level} 的成长值范围设置有误`, 'error');
            return;
        }
    }
    
    // 将等级设置数据存储到sessionStorage
    sessionStorage.setItem('batchEditLevelData', JSON.stringify(levelData));
    
    // 跳转到第三步
    navigateTo('batch-edit-step3.html');
}
// 导出函数到全局
window.loadTemplate = loadTemplate;
window.resetSettings = resetSettings;
window.toggleLevelDetail = toggleLevelDetail;
window.toggleDiscountRate = toggleDiscountRate;
window.toggleCouponButton = toggleCouponButton;
window.addBirthdayCoupon = addBirthdayCoupon;
window.closeCouponModal = closeCouponModal;
window.submitCoupon = submitCoupon;
window.deleteLevel = deleteLevel;
window.addNewLevel = addNewLevel;
window.updateLevelData = updateLevelData;
window.previousStep = previousStep;
window.nextStep = nextStep;