修复计算

This commit is contained in:
史悦
2025-09-16 16:36:53 +08:00
parent 0d7d5b0a43
commit c9e1bb951c

View File

@@ -159,7 +159,7 @@
<div class="summary-card">
<h2>投资回收期</h2>
<div id="paybackPeriod" class="summary-value">54.5 个月</div>
<p class="note">= 单站总投资 / 月净利润</p>
<p class="note">= 总投资 / 月净利润</p>
</div>
<div class="summary-card">
<h2>年化 ROI</h2>
@@ -183,6 +183,10 @@
月计费天数 (天)
<input id="daysPerMonth" type="number" min="1" step="1" value="30" />
</label>
<label>
运营站点数量 (个)
<input id="siteCount" type="number" min="1" step="1" value="1" />
</label>
<label>
废纸板回收价 ¥/公斤 (给用户)
<input id="buyPriceCardboard" type="number" min="0" step="0.01" value="0.8" />
@@ -206,8 +210,8 @@
<h3>运营及投入假设</h3>
<div class="field-grid">
<label>
场地合作分成 (占给站长回收金 %)
<input id="siteFeePercent" type="number" min="0" step="0.1" value="10" />
场地合作分成 (占销售总收入 %)
<input id="siteFeePercent" type="number" min="0" step="0.1" value="6.8" />
</label>
<label>
月物流清运成本 (¥)
@@ -311,7 +315,7 @@
</thead>
<tbody>
<tr>
<td>单站总投资 (Capex)</td>
<td>总投资 (Capex)</td>
<td id="totalInvestment">¥ 1,800.00</td>
</tr>
<tr>
@@ -355,6 +359,7 @@
const dailyCardboard = getValue("dailyCardboard");
const dailyPet = getValue("dailyPet");
const days = getValue("daysPerMonth");
const siteCount = Math.max(getValue("siteCount"), 0);
const buyCardboard = getValue("buyPriceCardboard");
const sellCardboard = getValue("sellPriceCardboard");
@@ -368,8 +373,8 @@
const equipmentCost = getValue("equipmentCost");
const deploymentCost = getValue("deploymentCost");
const monthlyCardboardKg = dailyCardboard * days;
const monthlyPetKg = dailyPet * days;
const monthlyCardboardKg = dailyCardboard * days * siteCount;
const monthlyPetKg = dailyPet * days * siteCount;
const monthlyTotalKg = monthlyCardboardKg + monthlyPetKg;
const payoutCardboard = monthlyCardboardKg * buyCardboard;
@@ -384,11 +389,15 @@
const grossPet = salePet - payoutPet;
const grossTotal = grossCardboard + grossPet;
const siteFee = payoutTotal * siteFeePercent;
const fixedCostTotal = siteFee + logisticsCost + maintenanceCost + otherCost;
const logisticsCostTotal = logisticsCost * siteCount;
const maintenanceCostTotal = maintenanceCost * siteCount;
const otherCostTotal = otherCost * siteCount;
const siteFee = saleTotal * siteFeePercent;
const fixedCostTotal = siteFee + logisticsCostTotal + maintenanceCostTotal + otherCostTotal;
const monthlyNetProfit = grossTotal - fixedCostTotal;
const totalInvestment = equipmentCost + deploymentCost;
const totalInvestmentPerSite = equipmentCost + deploymentCost;
const totalInvestment = totalInvestmentPerSite * siteCount;
const annualNetProfit = monthlyNetProfit * 12;
const paybackMonths = monthlyNetProfit > 0 ? totalInvestment / monthlyNetProfit : Infinity;
@@ -412,9 +421,9 @@
document.getElementById("grossTotal").textContent = formatCurrency(grossTotal);
document.getElementById("siteFee").textContent = formatCurrency(siteFee);
document.getElementById("logisticsCostCell").textContent = formatCurrency(logisticsCost);
document.getElementById("maintenanceCostCell").textContent = formatCurrency(maintenanceCost);
document.getElementById("otherCostCell").textContent = formatCurrency(otherCost);
document.getElementById("logisticsCostCell").textContent = formatCurrency(logisticsCostTotal);
document.getElementById("maintenanceCostCell").textContent = formatCurrency(maintenanceCostTotal);
document.getElementById("otherCostCell").textContent = formatCurrency(otherCostTotal);
document.getElementById("fixedCostTotal").innerHTML = `<strong>${formatCurrency(fixedCostTotal)}</strong>`;
document.getElementById("totalInvestment").textContent = formatCurrency(totalInvestment);