feat: 大版本更新-工作台改版+总报完善+UI优化

工作台改版:
- 学会→学术, 总工作台→总览(数据库迁移+session清理)
- 侧边栏工作台从下拉菜单改为竖向平铺+独立图标
- 5个工作台去除部门模块, 只有总览显示
- 工作台顺序: 总览→学术→MCN→科普→医患→科研

经营月报+季度月报:
- 月度/季度总览改名(月度总览→经营月报, 季度总览→季度月报)
- 财务概览增加回款/项目现金流行(7行)
- 新增业务线经营情况卡片(毛利/平台费用/利润)
- 新增业务线现金流卡片(项目现金流/平台费用已付/业务线现金流)
- 季度月报完善为三卡片结构, 与经营月报一致
- 计划模块总览独立数据源(computePlanMonthly)

UI优化:
- 汇总卡片单行显示+5x2网格+去外层卡片
- 项目表格行高压缩(py-px+line-height:0.95)
- 表头不压缩, 只压缩tbody
- 加权/项目类型内联下拉去原生箭头+自定义箭头
- 加权/项目类型表头去除排序箭头
- 实际模块已付→支出, 已回款→回款, 成本→成本(不含平台费用)
- 现金流注释(回款-支出)
- 卡片间距/筛选区/tip高度压缩
- 实际模块增加执行提示tip

修复:
- routes.py planFinances client_name列去重
- plan_expense.js savePlanExpense改用api()+load()
- plan.js createPlanFinance拆分try-catch
- 版本号 v1.0.0.35
This commit is contained in:
mac
2026-07-08 20:39:44 +08:00
parent e1b549b3f9
commit c0fb382d78
12 changed files with 365 additions and 160 deletions

View File

@@ -144,13 +144,13 @@ function switchTab(tab) {
}
function updateSidebarTabs() {
const isOverview = state.tenant === "总工作台";
const isOverview = state.tenant === "总";
document.querySelectorAll(".sidebar-tab").forEach((btn) => {
const tab = btn.dataset.tab;
if (isOverview && tab !== "home") {
btn.style.display = "none";
if (isOverview) {
btn.style.display = tab === "home" ? "" : "none";
} else {
btn.style.display = "";
btn.style.display = tab === "home" ? "none" : "";
}
});
}
@@ -240,10 +240,9 @@ window.switchTenant = (tenant) => {
state.selectedProject = null;
localStorage.setItem("opc-active-tenant", tenant);
document.querySelector("#workspaceTitle").textContent = tenant.replace("·无界", "") + " OPC 工作台";
const label = document.querySelector("#currentTenantLabel");
if (label) { label.textContent = tenant.replace("·无界", "") || "工作台"; label.title = tenant; }
if (typeof updateTenantLabel === "function") updateTenantLabel();
updateSidebarTabs();
if (tenant === "总工作台") switchTab("home");
if (tenant === "总") switchTab("home");
load();
};
window.doLogout = async () => {