# 全公司口径清点 + 「删除某块内容，所有账户不展示」流程

适用于：用户报「某角色看到全公司数据」，或直接贴一段页面文案说「删除，所有账户都不展示」。

## 1. 先清点，再动手

同一类漏点通常不止一处。先 grep 两个入口文件里的「全公司口径数据源标识」：

```
grep -n "h1Summary\|dash.total_\|total_target\|prog.total\|yearTargets2026\|dash.depts" 工具/index.html 工具/app.html
```

| 数据源 | 性质 | 谁能用 |
|---|---|---|
| `h1Summary`（H1 全公司汇总快照） | 全公司 | **仅 admin/gm** |
| `dash.total_target` / `dash.total_h1_h2` / `dash.total_h1` | 全公司 | **仅 admin/gm** |
| `prog.total`（MCP 当月全公司实时额） | 全公司 | **仅 admin/gm** |
| `yearTargets2026.monthly`（全公司月度目标序列） | 全公司 | **仅 admin/gm** |
| `dash.depts[部门]` / `h1Monthly.depts[部门]` / `yearTargets2026.depts[部门]` | 可按部门作用域 | 按 `deptScope()` 取 |
| `dash.people` / `_key_customers.json` / `personnel` | 可按成员作用域 | 按成员集合取 |

判定捷径：**某个数字在你没做任何筛选时等于全公司汇总值，它就是全公司口径**。

典型漏点：订单管理页「本年/本季」档的统计卡（本年发货 / 税合计 / 运输中 / 已签收 / 物流异常 / 暂无路由）——「本年」分支用 `h1Summary.total_orders` + 全公司 ERP 日额算 `taxTotal`，于是任何角色都能看到全公司累计销售额。

## 2. 删块四步（PC 与移动端都要）

1. **按用户贴的可见文案定位**（如 `本年发货` / `税合计` / `物流异常`），确认代码块边界（标题行 → 统计卡的收尾 `'</div>' +`）。**不要按行号删**，前面的补丁会移动行号。
2. **两个入口同改**：`工具/index.html` + `工具/app.html`（同一段往往逐字相同，可用同一 old/new 替换）。改前各自 `cp` 备份；改后抽 `<script>` 跑 `node --check` 验语法：
   ```
   python3 -c "import io,re,subprocess; s=io.open('工具/index.html',encoding='utf-8').read(); m=re.findall(r'<script[^>]*>([\s\S]*?)</script>', s); open('/tmp/chk.js','w').write('\n;\n'.join(x for x in m if 'function' in x)); print(subprocess.run(['node','--check','/tmp/chk.js'],capture_output=True,text=True).returncode)"
   ```
3. **保留下游依赖的控件**：周期切换按钮（本周/本月/本季/本年）驱动下面三栏分析与订单列表 → 只删标题/日期区间/统计卡，别把控件一起删掉，否则下半个页面锁死在一个周期。
4. **部署后验线上残留 = 0**：`curl` 线上文件 → `grep -c` 被删文案应为 0、相邻功能仍在 → `shasum` 本地/线上比对（两个文件都要比）。

## 3. 回复口径

写清「删了什么 / 保留了什么及原因」，并主动给一句「要不要整个 Tab 下线」的选项。若确实要下线 Tab，走 Tab 四处同步流程（`TABS` 数组 + `render()` switch + `PERM_TAB_LABELS` + app.html 移动端列表 + 权限面板），不等用户发指令。
