// app.js — 入口文件(加载模块 + 初始化) // 所有业务逻辑已拆分到 modules/ 目录: // utils.js — 共享状态、工具函数、API 封装 // home.js — 首页 + 财务趋势图 // projects.js — 重点工作与台账(项目+任务+拖拽) // proposals.js — 业务方案 + 文件管理 // products.js — 产品迭代 // finance.js — 经营管理(财务) // drawer.js — 详情抽屉 + 评论 + 转移 // Tab 点击委托 document.querySelector("#tabs").addEventListener("click", (event) => { const button = event.target.closest("button[data-tab]"); if (button) switchTab(button.dataset.tab); }); // 恢复上次的工作台和标签页 const savedTenant = localStorage.getItem("opc-active-tenant"); if (savedTenant) { state.tenant = savedTenant; document.querySelectorAll(".workspace-nav-item").forEach(el => el.classList.toggle("active", el.dataset.tenant === savedTenant)); const label = savedTenant.replace("·无界", ""); document.querySelector("#workspaceTitle").textContent = label + " OPC 工作台"; } const savedTab = localStorage.getItem("opc-active-tab"); // 初始化 applyUserTenants(); load().then(() => { if (savedTab && savedTab !== "home") switchTab(savedTab); }).catch((error) => { document.querySelector("main").innerHTML = `
加载失败:${esc(error.message)}
`; });