/**
* 等级编辑页面功能模块
* 包含该页面的所有交互逻辑
*/
// 模拟不同商户的等级编辑数据
const merchantEditData = {
'牛牛蔬菜店': [
{
level: 'LV1',
name: '铜牌会员',
growthStart: 0,
growthEnd: 100,
discountEnabled: true,
discountRate: 5,
pointsEnabled: false,
birthdayCouponEnabled: false,
birthdayPointsEnabled: false
},
{
level: 'LV2',
name: '银牌会员',
growthStart: 101,
growthEnd: 500,
discountEnabled: true,
discountRate: 10,
pointsEnabled: true,
birthdayCouponEnabled: true,
birthdayPointsEnabled: true
},
{
level: 'LV3',
name: '金牌会员',
growthStart: 501,
growthEnd: 1200,
discountEnabled: true,
discountRate: 15,
pointsEnabled: true,
birthdayCouponEnabled: true,
birthdayPointsEnabled: true
},
{
level: 'LV4',
name: '钻石会员',
growthStart: 1201,
growthEnd: 9999,
discountEnabled: true,
discountRate: 20,
pointsEnabled: true,
birthdayCouponEnabled: true,
birthdayPointsEnabled: true
}
],
'羊羊水果店': [
{
level: 'LV1',
name: '普通会员',
growthStart: 0,
growthEnd: 80,
discountEnabled: true,
discountRate: 2,
pointsEnabled: false,
birthdayCouponEnabled: false,
birthdayPointsEnabled: false
},
{
level: 'LV2',
name: '优质会员',
growthStart: 81,
growthEnd: 400,
discountEnabled: true,
discountRate: 8,
pointsEnabled: true,
birthdayCouponEnabled: false,
birthdayPointsEnabled: false
},
{
level: 'LV3',
name: '贵宾会员',
growthStart: 401,
growthEnd: 1000,
discountEnabled: true,
discountRate: 12,
pointsEnabled: true,
birthdayCouponEnabled: true,
birthdayPointsEnabled: true
}
]
};
// 页面初始化函数(必需)
function initLevelEdit() {
console.log('等级编辑页面已初始化');
// 从URL参数或全局变量获取商户名称
const merchantName = getCurrentMerchantName();
if (merchantName) {
updateEditPageContent(merchantName);
}
// 初始化新增功能区域的交互事件
initPointRatioSettings();
}
// 获取当前商户名称
function getCurrentMerchantName() {
// 可以从tab标题中提取商户名称
const activeTab = document.querySelector('.tab.active');
if (activeTab) {
const tabTitle = activeTab.textContent.trim();
// 提取商户名称(去掉" - 等级编辑"后缀)
const merchantName = tabTitle.replace(' - 等级编辑', '');
// 如果标题中包含了商户名称,则返回商户名称
if (merchantName !== tabTitle) {
return merchantName;
}
// 否则尝试从关闭按钮的 × 前面获取标题文本
const tabTextContent = activeTab.querySelector('.tab-text');
if (tabTextContent) {
return tabTextContent.textContent.replace(' - 等级编辑', '');
}
}
return '时尚服装店'; // 默认值
}
// 更新页面内容
function updateEditPageContent(merchantName) {
// 更新页面标题
const merchantNameElement = document.getElementById('merchantName');
if (merchantNameElement) {
merchantNameElement.textContent = merchantName;
}
// 更新表格数据
const editData = merchantEditData[merchantName];
if (editData) {
updateEditTable(editData);
}
}
// 更新编辑表格数据
function updateEditTable(editData) {
const tbody = document.getElementById('levelEditBody');
if (!tbody) return;
tbody.innerHTML = '';
editData.forEach(level => {
const row = document.createElement('tr');
row.innerHTML = `
${level.level} |
|
-
|
|
|
|
|
|
|
`;
tbody.appendChild(row);
});
}
// 添加优惠券功能
function addCoupon(level) {
showCouponModal(level);
}
// 显示优惠券添加弹窗
async function showCouponModal(level) {
try {
// 加载HTML内容
const response = await fetch('pages/coupon-modal.html');
const modalHtml = await response.text();
// 添加到页面
document.body.insertAdjacentHTML('beforeend', modalHtml);
// 存储当前等级信息
window.currentCouponLevel = level;
} catch (error) {
console.error('加载优惠券弹窗失败:', error);
alert('加载弹窗失败,请重试');
}
}
// 关闭优惠券弹窗
function closeCouponModal() {
const modal = document.getElementById('couponModal');
if (modal) {
modal.remove();
}
}
// 确认添加优惠券
function confirmAddCoupon() {
const couponName = document.getElementById('couponName').value;
const threshold = document.getElementById('couponThreshold').value;
const discount = document.getElementById('couponDiscount').value;
const validity = document.getElementById('couponValidity').value;
const level = window.currentCouponLevel;
if (!couponName.trim()) {
alert('请输入优惠券名称');
return;
}
console.log('添加优惠券:', {
level: level,
name: couponName,
threshold: threshold,
discount: discount,
validity: validity
});
alert(`已为${level}添加优惠券"${couponName}"`);
closeCouponModal();
}
// 保存等级编辑
function saveLevelEdit() {
// 收集表单数据
const formData = collectFormData();
console.log('保存的等级编辑数据:', formData);
alert('等级编辑设置已保存!');
}
// 收集表单数据
function collectFormData() {
const tbody = document.getElementById('levelEditBody');
if (!tbody) return {};
const rows = tbody.querySelectorAll('tr');
const levelData = [];
rows.forEach((row, index) => {
const data = {
level: row.cells[0].textContent,
name: row.querySelector('input[type="text"]').value,
growthStart: parseInt(row.querySelector('.range-start').value),
growthEnd: parseInt(row.querySelector('.range-end').value),
discountEnabled: row.querySelectorAll('input[type="checkbox"]')[0].checked,
discountRate: parseInt(row.querySelector('.discount-input').value),
pointsEnabled: row.querySelectorAll('input[type="checkbox"]')[1].checked,
birthdayCouponEnabled: row.querySelectorAll('input[type="checkbox"]')[2].checked,
birthdayPointsEnabled: row.querySelectorAll('input[type="checkbox"]')[3].checked
};
levelData.push(data);
});
// 收集积分有效期设置
const validityDays = document.getElementById('validityDays')?.value || 365;
// 收集积分兑换比例设置
const spendAmount = document.getElementById('spendAmount')?.value || 1;
const earnPoints = document.getElementById('earnPoints')?.value || 1;
const deductPoints = document.getElementById('deductPoints')?.value || 100;
const deductAmount = document.getElementById('deductAmount')?.value || 1;
// 收集单笔订单最大积分使用限制
const limitType = document.querySelector('input[name="limitType"]:checked')?.value || 'none';
const limitPercentage = document.getElementById('limitPercentage')?.value || 50;
const limitAmount = document.getElementById('limitAmount')?.value || 100;
return {
levels: levelData,
pointValidity: {
validityDays: parseInt(validityDays)
},
pointRatio: {
spendAmount: parseFloat(spendAmount),
earnPoints: parseInt(earnPoints),
deductPoints: parseInt(deductPoints),
deductAmount: parseFloat(deductAmount),
limitType: limitType,
limitPercentage: parseInt(limitPercentage),
limitAmount: parseFloat(limitAmount)
}
};
}
// 初始化积分兑换比例设置的交互逻辑
function initPointRatioSettings() {
const limitTypeRadios = document.querySelectorAll('input[name="limitType"]');
const percentageContainer = document.querySelector('.percentage-container');
const fixedContainer = document.querySelector('.fixed-container');
if (limitTypeRadios.length === 0) return;
// 积分使用限制类型变化事件
limitTypeRadios.forEach(radio => {
radio.addEventListener('change', function() {
const value = this.value;
// 隐藏所有容器
if (percentageContainer) percentageContainer.style.display = 'none';
if (fixedContainer) fixedContainer.style.display = 'none';
// 显示对应的容器
if (value === 'percentage' && percentageContainer) {
percentageContainer.style.display = 'flex';
} else if (value === 'fixed' && fixedContainer) {
fixedContainer.style.display = 'flex';
}
});
});
}
// 将需要在HTML中调用的函数暴露到全局作用域
window.addCoupon = addCoupon;
window.saveLevelEdit = saveLevelEdit;
window.closeCouponModal = closeCouponModal;
window.confirmAddCoupon = confirmAddCoupon;
// 页面清理函数(可选)
function cleanupLevelEdit() {
// 清理事件监听器等
}