123 lines
4.2 KiB
JavaScript
123 lines
4.2 KiB
JavaScript
|
|
// 积分商品页面 - H5版本
|
||
|
|
|
||
|
|
let productData = [];
|
||
|
|
|
||
|
|
// 页面初始化
|
||
|
|
document.addEventListener('DOMContentLoaded', function() {
|
||
|
|
loadProductData();
|
||
|
|
});
|
||
|
|
|
||
|
|
// 加载积分商品数据
|
||
|
|
function loadProductData() {
|
||
|
|
// 使用模拟数据
|
||
|
|
productData = [
|
||
|
|
{ id: 1, name: '5元优惠券', points: 500, stock: 100, description: '满50元可用', status: '上架' },
|
||
|
|
{ id: 2, name: '10元优惠券', points: 1000, stock: 50, description: '满100元可用', status: '上架' },
|
||
|
|
{ id: 3, name: '精美水杯', points: 2000, stock: 20, description: '品牌水杯', status: '上架' },
|
||
|
|
{ id: 4, name: '购物袋', points: 800, stock: 30, description: '环保购物袋', status: '下架' },
|
||
|
|
{ id: 5, name: '20元优惠券', points: 2000, stock: 0, description: '满200元可用', status: '缺货' },
|
||
|
|
{ id: 6, name: '手机支架', points: 1500, stock: 15, description: '便携手机支架', status: '上架' }
|
||
|
|
];
|
||
|
|
|
||
|
|
renderTable();
|
||
|
|
}
|
||
|
|
|
||
|
|
// 渲染表格
|
||
|
|
function renderTable() {
|
||
|
|
const tableBody = document.getElementById('product-table-body');
|
||
|
|
tableBody.innerHTML = productData.map(product => `
|
||
|
|
<tr>
|
||
|
|
<td>${product.name}</td>
|
||
|
|
<td>${product.points}</td>
|
||
|
|
<td>
|
||
|
|
<span style="color: ${product.stock === 0 ? '#f44336' : '#333'};">
|
||
|
|
${product.stock}
|
||
|
|
</span>
|
||
|
|
</td>
|
||
|
|
<td>${product.description}</td>
|
||
|
|
<td>
|
||
|
|
<span style="color: ${getStatusColor(product.status)};">
|
||
|
|
${product.status}
|
||
|
|
</span>
|
||
|
|
</td>
|
||
|
|
<td>
|
||
|
|
<button class="btn btn-small btn-primary" onclick="editProduct(${product.id})">
|
||
|
|
编辑
|
||
|
|
</button>
|
||
|
|
${product.status !== '缺货' ? `
|
||
|
|
<button class="btn btn-small"
|
||
|
|
style="background: ${product.status === '上架' ? '#f44336' : '#4CAF50'}; color: white;"
|
||
|
|
onclick="toggleProductStatus(${product.id})">
|
||
|
|
${product.status === '上架' ? '下架' : '上架'}
|
||
|
|
</button>
|
||
|
|
` : ''}
|
||
|
|
<button class="btn btn-small" onclick="addStock(${product.id})">
|
||
|
|
补货
|
||
|
|
</button>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
`).join('');
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取状态颜色
|
||
|
|
function getStatusColor(status) {
|
||
|
|
switch(status) {
|
||
|
|
case '上架': return '#4CAF50';
|
||
|
|
case '下架': return '#ff9800';
|
||
|
|
case '缺货': return '#f44336';
|
||
|
|
default: return '#333';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 添加商品
|
||
|
|
function addProduct() {
|
||
|
|
showNotification('打开添加商品界面', 'info');
|
||
|
|
console.log('添加新商品');
|
||
|
|
}
|
||
|
|
|
||
|
|
// 编辑商品
|
||
|
|
function editProduct(productId) {
|
||
|
|
const product = productData.find(p => p.id === productId);
|
||
|
|
if (product) {
|
||
|
|
showNotification(`编辑商品:${product.name}`, 'info');
|
||
|
|
console.log('编辑商品:', product);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 切换商品状态
|
||
|
|
function toggleProductStatus(productId) {
|
||
|
|
const product = productData.find(p => p.id === productId);
|
||
|
|
if (product && product.status !== '缺货') {
|
||
|
|
const newStatus = product.status === '上架' ? '下架' : '上架';
|
||
|
|
|
||
|
|
confirmAction(`确定要${newStatus}商品"${product.name}"吗?`, () => {
|
||
|
|
product.status = newStatus;
|
||
|
|
renderTable();
|
||
|
|
showNotification(`商品"${product.name}"已${newStatus}`, 'success');
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 补货
|
||
|
|
function addStock(productId) {
|
||
|
|
const product = productData.find(p => p.id === productId);
|
||
|
|
if (product) {
|
||
|
|
// 简单的补货逻辑,这里可以改为弹窗输入具体数量
|
||
|
|
const addAmount = 50;
|
||
|
|
product.stock += addAmount;
|
||
|
|
|
||
|
|
// 如果原来是缺货状态,改为上架
|
||
|
|
if (product.status === '缺货') {
|
||
|
|
product.status = '上架';
|
||
|
|
}
|
||
|
|
|
||
|
|
renderTable();
|
||
|
|
showNotification(`商品"${product.name}"已补货${addAmount}件`, 'success');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 导出函数到全局
|
||
|
|
window.addProduct = addProduct;
|
||
|
|
window.editProduct = editProduct;
|
||
|
|
window.toggleProductStatus = toggleProductStatus;
|
||
|
|
window.addStock = addStock;
|