Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cae6bcf0e1 |
@@ -305,13 +305,15 @@ function renderFinance() {
|
||||
['签约金额', m(signTotal), '∑签约金额'],
|
||||
['确收金额', m(sumRev), '∑确收金额'],
|
||||
['毛利', m(sumGross), '∑毛利'],
|
||||
['回款', m(sumPay), '∑回款金额'],
|
||||
['支出', m(sumPaid), '∑支出金额'],
|
||||
['现金流', m(cashflow), '回款 − 支出'],
|
||||
['应收', m(receivable), '确收 − 回款'],
|
||||
['应付', m(payable), '成本 − 支出'],
|
||||
['现金流', m(cashflow), '回款 − 支出'],
|
||||
['往来余额', m(netAsset), '应收 − 应付'],
|
||||
];
|
||||
const fs = '<div class="grid grid-cols-4 gap-1.5 py-2">' + rows_data.map(r =>
|
||||
'<div class="card px-2 py-1.5 text-center"><div class="text-xs text-slate-400">' + r[0] + '</div><div class="text-sm font-semibold text-slate-800">' + r[1] + '</div></div>').join('') + '</div>';
|
||||
const fs = '<div class="grid grid-cols-3 gap-1.5 py-2">' + rows_data.map((r, i) =>
|
||||
'<div class="card px-2 py-1 text-center" style="background:' + (['#eff6ff','#fef3c7','#fef9c3'][Math.floor(i / 3)] || '#fff') + '"><span class="text-xs text-slate-500">' + r[0] + '</span> <span class="text-sm font-semibold text-slate-800">' + r[1] + '</span></div>').join('') + '</div>';
|
||||
const thead = isUnsigned ? buildThead(UNSIGNED_COLS, 'uns') : buildThead(SIGNED_COLS, 'sig');
|
||||
const theadCols = isUnsigned ? 6 : 15;
|
||||
const tbody = rows.length ? `<tbody style="line-height:1.37">${rows.join("")}</tbody>` : `<tr><td colspan="${theadCols}" class="p-6 text-center text-slate-400">${emptyText}</td></tr>`;
|
||||
|
||||
@@ -323,13 +323,15 @@ function renderPlan() {
|
||||
['签约金额', m(signTotal), '∑签约金额'],
|
||||
['确收金额', m(sumRev), '∑确收金额'],
|
||||
['毛利', m(sumGross), '∑毛利'],
|
||||
['回款', m(sumPay), '∑回款金额'],
|
||||
['支出', m(sumPaid), '∑支出金额'],
|
||||
['现金流', m(cashflow), '回款 − 支出'],
|
||||
['应收', m(receivable), '确收 − 回款'],
|
||||
['应付', m(payable), '成本 − 支出'],
|
||||
['现金流', m(cashflow), '回款 − 支出'],
|
||||
['往来余额', m(netAsset), '应收 − 应付'],
|
||||
];
|
||||
const fs = '<div class="grid grid-cols-4 gap-1.5 py-2">' + rows_data.map(r =>
|
||||
'<div class="card px-2 py-1.5 text-center"><div class="text-xs text-slate-400">' + r[0] + '</div><div class="text-sm font-semibold text-slate-800">' + r[1] + '</div></div>').join('') + '</div>';
|
||||
const fs = '<div class="grid grid-cols-3 gap-1.5 py-2">' + rows_data.map((r, i) =>
|
||||
'<div class="card px-2 py-1 text-center" style="background:' + (['#eff6ff','#fef3c7','#fef9c3'][Math.floor(i / 3)] || '#fff') + '"><span class="text-xs text-slate-500">' + r[0] + '</span> <span class="text-sm font-semibold text-slate-800">' + r[1] + '</span></div>').join('') + '</div>';
|
||||
const thead = isUnsigned ? buildThead(UNSIGNED_COLS, 'uns') : buildThead(SIGNED_COLS, 'sig');
|
||||
const theadCols = isUnsigned ? 9 : 15;
|
||||
const tbody = rows.length ? `<tbody style="line-height:1.37">${rows.join("")}</tbody>` : `<tr><td colspan="${theadCols}" class="p-6 text-center text-slate-400">${emptyText}</td></tr>`;
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<header class="topbar border-b border-slate-200 bg-white px-8 py-5">
|
||||
<div class="flex items-center gap-3 w-full">
|
||||
<div class="flex-1">
|
||||
<p class="eyebrow text-xs font-semibold uppercase tracking-[0.18em] text-blue-700">OPC Manager <span class="ml-2 text-xs font-normal text-slate-400 tracking-normal">v1.2.0.35</span></p>
|
||||
<p class="eyebrow text-xs font-semibold uppercase tracking-[0.18em] text-blue-700">OPC Manager <span class="ml-2 text-xs font-normal text-slate-400 tracking-normal">v1.2.0.36</span></p>
|
||||
<div class="flex items-center gap-4 mt-1">
|
||||
<h1 class="text-2xl font-semibold" id="workspaceTitle">科普 OPC 工作台</h1>
|
||||
<div class="hidden sm:flex items-center gap-1.5 bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-100 rounded-full px-4 py-1.5">
|
||||
|
||||
Reference in New Issue
Block a user