feat: 绩效模块重构 + UI 统一样式 + 标题联动

- 新增绩效模块(季度考核表,目标/完成/权重/评分,localStorage)
- 产品模块增加版本迭代/产品运营双Tab
- 方案模块Tab改为下划线样式
- 顶部标题随模块切换联动更新
- OPC来信弹窗恢复并采用信件样式排版
- 费用模块移入业务顶部Tab(平台费用)
- 侧边栏:项目→业务,台账→Focus,新增绩效
- 顶部品牌区增加版本号显示v1.0.0.2
This commit is contained in:
mac
2026-07-07 15:56:13 +08:00
parent c12389fb89
commit 075350a026
7 changed files with 208 additions and 29 deletions

View File

@@ -47,13 +47,11 @@ function renderProposals() {
const isStandard = state.proposalTab === "standard";
document.querySelector("#proposals").innerHTML = `<div class="grid gap-4">
<div class="flex items-center justify-between">
<div class="flex gap-1" id="proposalTabToggle">
<button class="btn btn-sm ${isStandard ? 'btn-primary' : 'btn-ghost'}" onclick="switchProposalTab('standard')">标准资料</button>
<button class="btn btn-sm ${!isStandard ? 'btn-primary' : 'btn-ghost'}" onclick="switchProposalTab('other')">其他资料</button>
</div>
${!isStandard ? `<button class="btn btn-primary btn-sm" onclick="openProposalModal()"><i data-lucide="plus"></i>新增方案</button>` : ''}
<div class="finance-tabs" style="padding:0;border-bottom:1px solid #e2e8f0">
<button class="finance-tab${isStandard ? ' active' : ''}" style="font-size:14px;font-weight:600" onclick="switchProposalTab('standard')">标准资料库</button>
<button class="finance-tab${!isStandard ? ' active' : ''}" style="font-size:14px;font-weight:600" onclick="switchProposalTab('other')">其他资料</button>
</div>
<div class="flex justify-end">${!isStandard ? `<button class="btn btn-primary btn-sm" onclick="openProposalModal()"><i data-lucide="plus"></i>新增方案</button>` : ''}</div>
${isStandard ? `<div class="flex items-start gap-2 rounded-lg bg-blue-50 border border-blue-100 px-4 py-3 text-sm text-blue-700"><i data-lucide="info" style="width:16px;height:16px;flex-shrink:0;margin-top:1px"></i><span>这是每一条 OPC 线,必须要梳理清楚的 7 份资料,项目不可以删除,只可以更新附件,请大家将最新的材料上传</span></div>` : `<div class="flex items-start gap-2 rounded-lg bg-emerald-50 border border-emerald-100 px-4 py-3 text-sm text-emerald-700"><i data-lucide="lightbulb" style="width:16px;height:16px;flex-shrink:0;margin-top:1px"></i><span>在这里新建,并且上传您希望与团队其他成员共享的资料</span></div>`}
${isStandard ? renderStandardTable(standardItems) : renderOtherTable(otherItems)}
</div>