diff --git a/static/modules/plan.js b/static/modules/plan.js index 6e2ddf6..1d09786 100644 --- a/static/modules/plan.js +++ b/static/modules/plan.js @@ -298,9 +298,9 @@ function renderPlan() { { key: 'payment', label: '回款' }, { key: 'pending', label: '应收' }, { key: 'pay_rate', label: '回款率' }, + { key: 'cost', label: '成本' }, + { key: 'paid', label: '支出' }, { key: 'payable', label: '应付' }, - { key: 'cost', label: '当期成本' }, - { key: 'paid', label: '当期流出' }, { key: 'cashflow', label: '现金流' }, ]; const UNSIGNED_COLS = [ @@ -310,7 +310,7 @@ function renderPlan() { { key: 'sign_amount', label: '签约金额' }, { key: 'sign_month', label: '签约月份' }, { key: 'gross', label: '毛利' }, - { key: 'cost', label: '当期成本' }, + { key: 'cost', label: '成本' }, { key: 'profit', label: '项目利润' }, ]; @@ -396,7 +396,7 @@ function renderPlan() { var bCf = bPay - ePaid; return '' + m + '' + (bRev ? money(bRev) : '—') + '' + (bGross ? money(bGross) : '—') + '' + (bPay ? money(bPay) : '—') + '' + (eCost ? money(eCost) : '—') + '' + (ePaid ? money(ePaid) : '—') + '' + (bCf ? money(bCf) : '—') + '' + (bRev - bPay ? money(bRev - bPay) : '—') + ''; }).join(''); - return `${esc(pf.customer_name)}${planInlineSelect('weight', pf.id, 'weight', pf.weight || '20%', ['20%','40%','60%','80%','100%'])}${planInlineSelect('ptype', pf.id, 'project_type', pf.project_type || '待签约', ['待签约','已签约'])}${money(pf.sign_amount)}${fmtNoUnit(rev)}${fmtNoUnit(gross)}${grossR}${fmtNoUnit(payment)}${pendingVal}${payR}${payableVal}${fmtNoUnit(cost)}${fmtNoUnit(paid)}${cf}${detailRows}
月份确收毛利回款当期成本当期流出现金流应收
`; + return `${esc(pf.customer_name)}${planInlineSelect('weight', pf.id, 'weight', pf.weight || '20%', ['20%','40%','60%','80%','100%'])}${planInlineSelect('ptype', pf.id, 'project_type', pf.project_type || '待签约', ['待签约','已签约'])}${money(pf.sign_amount)}${fmtNoUnit(rev)}${fmtNoUnit(gross)}${grossR}${fmtNoUnit(payment)}${pendingVal}${payR}${fmtNoUnit(cost)}${fmtNoUnit(paid)}${payableVal}${cf}${detailRows}
月份确收毛利回款成本支出现金流应收
`; }; // 待签约简版行 const tdRowUnsigned = (pf, cost, gross) => { @@ -1179,7 +1179,7 @@ function renderPlanOverview() { document.querySelector("#planOverview").innerHTML = '
' + deptCard + cfCard + - card('

项目经营详情 所有项目产生的签单,确收,毛利,回款,当期成本,当期流出,现金流

' + thead + '' + tbody + '
', 'p-4') + + card('

项目经营详情 所有项目产生的签单,确收,毛利,回款,成本,支出,现金流

' + thead + '' + tbody + '
', 'p-4') + '
' + card('

月度签约趋势

2026
', 'p-4') + card('

月度确收与毛利

2026
', 'p-4') + @@ -1316,7 +1316,7 @@ function renderPlanQuarterlyOverview() { document.querySelector("#planQuarterlyOverview").innerHTML = '
' + card('

部门损益情况 部门利润 = 所有项目产生的毛利 - 部门 1 级产生的人力成本,研发成本,差旅和其他支出

' + deptThead + '' + deptTbody + '
', 'p-4') + card('

部门现金流 部门现金流=所有项目产生的现金流 - 部门一级因费用产生的现金流出或流入

' + deptThead + '' + cfTbody + '
', 'p-4') + - card('

项目经营详情 所有项目产生的签单,确收,毛利,回款,当期成本,当期流出,现金流

' + thead + '' + tbody + '
', 'p-4') + + card('

项目经营详情 所有项目产生的签单,确收,毛利,回款,成本,支出,现金流

' + thead + '' + tbody + '
', 'p-4') + '
'; if (window.lucide) window.lucide.createIcons(); } diff --git a/templates/index.html b/templates/index.html index 9a226b8..6b76759 100644 --- a/templates/index.html +++ b/templates/index.html @@ -84,7 +84,7 @@
-

OPC Manager v1.2.0.40

+

OPC Manager v1.2.0.41

科普 OPC 工作台