let html = '';
html += `min="0" step="1" value="0" data-price="${redStat.piece.avg || 0}">0`;
html += `
`;
html += `
`;
html += ``;
// 渲染到页面
document.body.innerHTML = html;
// ---------------- 以下是补全的核心逻辑 ----------------
// 工具函数:解决JS浮点数计算精度丢失问题
const preciseCalc = (num) => Math.round(num * 100) / 100;
// 绑定所有输入框的实时计算事件
const bindEvents = () => {
const avgGridInput = document.getElementById('gao_red_grid_avg');
const cntInput = document.getElementById('gao_red_grid_cnt');
const subGridEl = document.getElementById('gao_red_grid_sub');
const recEl = document.getElementById('gaoRec');
const totalEl = document.getElementById('gaoTotal');
const resetBtn = document.getElementById('gaoReset');
// 核心计算逻辑
const updateResult = () => {
// 读取输入值,空值默认按0处理
const avgGrid = parseFloat(avgGridInput.value) || 0;
const cnt = parseInt(cntInput.value) || 0;
const pieceAvg = parseFloat(redStat?.piece?.avg) || 0;
// 1. 计算红色格数小计
const gridSub = preciseCalc(avgGrid * cnt);
subGridEl.textContent = gridSub;
// 2. 计算推荐出价(这里默认按 单格均价 * 平均格数 逻辑,可按需修改业务公式)
const recommendPrice = preciseCalc(pieceAvg * avgGrid);
recEl.textContent = recommendPrice;
// 3. 计算预估总仓位价值
const totalValue = preciseCalc(recommendPrice * cnt);
totalEl.textContent = totalValue;
};
// 输入变化时自动触发重计算
avgGridInput.addEventListener('input', updateResult);
cntInput.addEventListener('input', updateResult);
// 重置按钮逻辑
resetBtn.addEventListener('click', () => {
avgGridInput.value = 0;
cntInput.value = 0;
subGridEl.textContent = 0;
recEl.textContent = 0;
totalEl.textContent = 0;
});
};
// 页面渲染完成后再绑定事件,避免元素还没加载导致绑定失败
window.addEventListener('load', bindEvents);