Book_system/app/static/js/inventory-adjust.js
superlishunqin 29914a4178 0506
2025-05-06 12:01:11 +08:00

104 lines
3.9 KiB
JavaScript

// 库存调整页面的JavaScript功能
document.addEventListener('DOMContentLoaded', function() {
const changeTypeSelect = document.getElementById('change_type');
const changeAmountInput = document.getElementById('change_amount');
const stockHint = document.getElementById('stock-hint');
// 当前库存数量通过HTML中的全局变量CURRENT_STOCK获取
const currentStock = CURRENT_STOCK;
// 当改变调整类型时,更新提示信息
changeTypeSelect.addEventListener('change', updateStockHint);
changeAmountInput.addEventListener('input', updateStockHint);
function updateStockHint() {
const changeType = changeTypeSelect.value;
const changeAmount = parseInt(changeAmountInput.value) || 0;
if (changeType === 'out') {
// 出库检查
if (changeAmount > currentStock) {
stockHint.textContent = `警告: 出库数量(${changeAmount})超过当前库存(${currentStock})!`;
stockHint.className = 'form-text stock-hint danger';
changeAmountInput.setCustomValidity('出库数量不能超过当前库存');
} else {
const newStock = currentStock - changeAmount;
stockHint.textContent = `出库后库存将变为: ${newStock}`;
stockHint.className = 'form-text stock-hint';
changeAmountInput.setCustomValidity('');
if (newStock <= 5 && newStock > 0) {
stockHint.classList.add('warning');
} else if (newStock <= 0) {
stockHint.classList.add('danger');
}
}
} else {
// 入库提示
const newStock = currentStock + changeAmount;
stockHint.textContent = `入库后库存将变为: ${newStock}`;
stockHint.className = 'form-text stock-hint';
changeAmountInput.setCustomValidity('');
}
// 添加一些迪士尼风格的交互效果
addDisneyInteractions();
}
// 添加迪士尼风格的交互效果
function addDisneyInteractions() {
// 闪光效果
const sparkleEffect = document.querySelector('.disney-sparkles');
if (sparkleEffect) {
sparkleEffect.style.opacity = '0.7';
setTimeout(() => { sparkleEffect.style.opacity = '0'; }, 800);
}
// 按钮动画效果
const confirmBtn = document.querySelector('.disney-confirm-btn');
if (confirmBtn) {
confirmBtn.classList.add('active');
setTimeout(() => { confirmBtn.classList.remove('active'); }, 300);
}
}
// 初始化提示
updateStockHint();
// 表单提交前验证
document.querySelector('form').addEventListener('submit', function(event) {
const changeType = changeTypeSelect.value;
const changeAmount = parseInt(changeAmountInput.value) || 0;
if (changeType === 'out' && changeAmount > currentStock) {
event.preventDefault();
alert('出库数量不能超过当前库存!');
return false;
}
if (changeAmount <= 0) {
event.preventDefault();
alert('调整数量必须大于0!');
return false;
}
// 添加提交成功的动画效果
const card = document.querySelector('.disney-inventory-card');
if (card) {
card.classList.add('submitting');
}
});
// 为表单元素添加迪士尼风格的交互效果
const formElements = document.querySelectorAll('.disney-select, .disney-input, .disney-textarea');
formElements.forEach(element => {
element.addEventListener('focus', function() {
this.parentNode.classList.add('focused');
});
element.addEventListener('blur', function() {
this.parentNode.classList.remove('focused');
});
});
});