refactor: 项目模块重构 — 统一渲染 + 配置驱动 + 交互优化

核心重构:
- 提取 renderView() / tdRow() 统一函数,消除三视图 16000+ 字符重复代码
- METRIC_CARDS 配置驱动,调整卡片顺序/单位只需改配置
- 筛选区统一为下拉框(视图 + 状态 + 日期),删除筛选:前缀
- 日历选择器移至顶部工具栏,卡片内不再重复

功能优化:
- 项目状态简化为已签约/待签约
- 新增签约项目总数卡片(月度/季度按签约月份过滤)
- 签约金额/已确收/已回款/应付/已付改为万元单位
- 项目名称固定300px + 省略号 + title悬停
- body min-width 1400px + overflow-x:auto
- 首页费用金额→应付金额

代码清理:
- 删除 monthOpts/quarterOpts/qLabels 等死代码
- 删除 purchase.js(采购→费用模块已另表迁移)
- 财务→项目(侧边栏),采购→费用(全域重命名)
This commit is contained in:
mac
2026-07-06 15:39:39 +08:00
parent 8430c93b97
commit 8a78c756b7
9 changed files with 259 additions and 199 deletions

View File

@@ -67,7 +67,7 @@ window.toggleFinCard = (id) => {
["产品迭代", m.upcoming_products, "products"],
].map(([label, value, tab]) => `<button class="metric-card" onclick="switchTab('${tab}')"><span class="flex items-center gap-2 text-xs text-slate-500"><i data-lucide="gauge"></i>${label}</span><strong class="mt-2 block text-2xl">${value}</strong></button>`).join("")}
</div>`}
<div class="grid grid-cols-5 gap-5">${tblCard("合同金额", rows1)}${tblCard("确收金额", rows2)}${tblCard("确收毛利", rows3)}${tblCard("回款金额", rows4)}${tblCard("费用金额", rows5)}</div>
<div class="grid grid-cols-5 gap-5">${tblCard("合同金额", rows1)}${tblCard("确收金额", rows2)}${tblCard("确收毛利", rows3)}${tblCard("回款金额", rows4)}${tblCard("应付金额", rows5)}</div>
<div class="grid grid-cols-3 gap-5">
${card(`<div class="mb-3 flex items-center justify-between"><h2 class="text-sm font-bold text-slate-600">月度签约趋势</h2><span class="text-xs text-slate-400">2026</span></div><div style="position:relative;height:200px"><canvas id="chartSign"></canvas></div>`, "p-4")}
${card(`<div class="mb-3 flex items-center justify-between"><h2 class="text-sm font-bold text-slate-600">月度确收与毛利</h2><span class="text-xs text-slate-400">2026</span></div><div style="position:relative;height:200px"><canvas id="chartRev"></canvas></div>`, "p-4")}