// 等级编辑页面的JavaScript逻辑 let currentShopName = ''; let currentLevels = []; // 获取URL参数 function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); const regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); const results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } // 页面初始化 document.addEventListener('DOMContentLoaded', function() { currentShopName = getUrlParameter('shop'); if (currentShopName) { document.getElementById('page-title').textContent = `${currentShopName} - 等级编辑`; loadLevelEditData(); } }); // 加载等级编辑数据 function loadLevelEditData() { // 模拟等级编辑数据 currentLevels = [ { 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 }, { level: 'LV4', name: '钻石会员', growthMin: 1201, growthMax: 9999, memberDiscount: true, discountRate: 20, pointExchange: true, birthdayCoupon: true, birthdayDoublePoints: true } ]; renderLevelEditTable(); } // 渲染等级编辑表格 function renderLevelEditTable() { const tableBody = document.getElementById('level-edit-table-body'); tableBody.innerHTML = currentLevels.map((level, index) => ` ${level.level}
-
${index === currentLevels.length - 1 ? ` ` : ''}
`).join(''); } // 切换折扣率输入框状态 function toggleDiscountRate(index) { const checkbox = document.getElementById(`memberDiscount_${index}`); const discountInput = document.getElementById(`discountRate_${index}`); if (checkbox && discountInput) { if (checkbox.checked) { discountInput.disabled = false; discountInput.classList.remove('bg-gray-100'); } else { discountInput.disabled = true; discountInput.classList.add('bg-gray-100'); } } } // 切换优惠券按钮显示 function toggleCouponButton(index) { const checkbox = document.getElementById(`birthdayCoupon_${index}`); const addButton = document.getElementById(`addCouponBtn_${index}`); if (checkbox && addButton) { if (checkbox.checked) { addButton.classList.remove('hidden'); } else { addButton.classList.add('hidden'); } } } // 添加生日优惠券 function addBirthdayCoupon(index) { // 显示弹窗 const modal = document.getElementById('coupon-modal'); if (modal) { modal.classList.remove('hidden'); resetCouponForm(); console.log('显示添加生日优惠券弹窗,等级索引:', index); } } // 关闭优惠券弹窗 function closeCouponModal(event) { // 如果点击的是弹窗背景,则关闭弹窗 if (event && event.target !== event.currentTarget) { return; } const modal = document.getElementById('coupon-modal'); if (modal) { modal.classList.add('hidden'); console.log('关闭优惠券弹窗'); } } // 重置优惠券表单 function resetCouponForm() { const form = document.getElementById('coupon-form'); if (form) { // 重置为默认值 document.getElementById('coupon-name').value = '生日优惠券'; document.getElementById('coupon-threshold').value = '10'; document.getElementById('coupon-discount').value = '1'; document.getElementById('coupon-validity').value = '1'; } } // 调整门槛金额 function adjustThreshold(delta) { const input = document.getElementById('coupon-threshold'); if (input) { const currentValue = parseInt(input.value) || 0; const newValue = Math.max(0, currentValue + delta); input.value = newValue; } } // 调整减免金额 function adjustDiscount(delta) { const input = document.getElementById('coupon-discount'); if (input) { const currentValue = parseInt(input.value) || 0; const newValue = Math.max(0, currentValue + delta); input.value = newValue; } } // 提交优惠券 function submitCoupon() { const form = document.getElementById('coupon-form'); if (!form) return; // 获取表单数据 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 (!couponData.threshold || couponData.threshold < 0) { showNotification('请输入有效的门槛金额', 'error'); return; } if (!couponData.discount || couponData.discount < 0) { showNotification('请输入有效的减免金额', 'error'); return; } if (parseInt(couponData.discount) >= parseInt(couponData.threshold)) { showNotification('减免金额不能大于或等于门槛金额', 'error'); return; } // 提交成功 console.log('提交优惠券数据:', couponData); showNotification(`成功添加优惠券:${couponData.name}`, 'success'); // 关闭弹窗 closeCouponModal(); } // 删除等级行 function deleteLevel(index) { if (currentLevels.length <= 1) { showNotification('至少需要保留一个等级', 'warning'); return; } currentLevels.splice(index, 1); // 重新编号等级 currentLevels.forEach((level, i) => { level.level = `LV${i + 1}`; }); renderLevelEditTable(); showNotification(`删除等级 ${index + 1}`, 'success'); console.log('删除等级:', index); } // 添加新等级 function addNewLevel() { const newLevelNum = currentLevels.length + 1; const lastLevel = currentLevels[currentLevels.length - 1]; const newLevel = { level: `LV${newLevelNum}`, name: `${getLevelName(newLevelNum)}会员`, growthMin: lastLevel.growthMax + 1, growthMax: lastLevel.growthMax + 1000, memberDiscount: true, discountRate: Math.min(lastLevel.discountRate + 5, 50), pointExchange: true, birthdayCoupon: true, birthdayDoublePoints: true }; currentLevels.push(newLevel); renderLevelEditTable(); showNotification(`添加新等级 LV${newLevelNum}`, 'success'); console.log('添加新等级:', newLevel); } // 获取等级名称 function getLevelName(levelNum) { const names = ['铜牌', '银牌', '金牌', '钻石', '黑钻', '至尊', '王者', '传奇']; return names[levelNum - 1] || `LV${levelNum}`; } // 提交等级编辑 function submitLevelEdit() { showNotification(`${currentShopName} 等级编辑已提交`, 'success'); console.log('提交等级编辑:', currentShopName); } // 导出函数 window.toggleDiscountRate = toggleDiscountRate; window.toggleCouponButton = toggleCouponButton; window.addBirthdayCoupon = addBirthdayCoupon; window.closeCouponModal = closeCouponModal; window.resetCouponForm = resetCouponForm; window.adjustThreshold = adjustThreshold; window.adjustDiscount = adjustDiscount; window.addCouponThreshold = addCouponThreshold; window.submitCoupon = submitCoupon; window.deleteLevel = deleteLevel; window.addNewLevel = addNewLevel; window.submitLevelEdit = submitLevelEdit;