## 2026-07-21 表头筛选功能全面优化(全天汇总) ### 旭东 → OpenClaw: (全天多个优化请求合并汇总) 1. 计划预测、国内订单管理、海外订单管理、包材订单管理4个菜单下的表头筛选三角形按钮大小调整至20px 2. 联动筛选—筛选了某个列后,再点其他列的下拉选项,会基于已筛选的数据显示,但是目前我在货品编号列筛选之后,产品类型列显示的还是全部选项,并且都是勾选状态 3. 采购计划列筛选胡孟怡后,采购跟单列筛选显示人员不是组别;采购跟单列筛选跟单三组人员只是排序到前面不是筛选;点击表头筛选卡一下加载中 4. 数字列的筛选没有做到全量筛选,还是只对当前页面内容进行筛选 5. 采购跟单列表头筛选显示还是人名,没有显示组别 6. 需要加一个筛选状态显示,比如我对某几列筛选时,我需要能看见我筛选了哪几列 7. 默认标签改回为"内容筛选",值只从当前页DOM提取是错误的,需要从全量2785条数据里面筛选 8. 筛选昨日销量39出11条数据后,再点总库存列筛选,显示的是全部2785条数据而不是当前11条 9. 联动和全量不冲突:无筛选状态是全量,有筛选后再筛就是联动 10. 产品类型列筛选成品+现货后,再次点击表头筛选只显示成品勾选 11. 数字列的升序降序功能需要加上 12. 数字列的内容筛选又显示暂无数据 ### OpenClaw 响应: #### 一、筛选三角按钮调整 - 4个菜单的筛选▾字符大小统一调整为20px(涉及计划预测/国内/海外/包材订单的app.js 4处+计划预测表头重建1处) #### 二、联动筛选修复 - 订单页面:`openOrderFilterMenu` 调用后端 `column-values` 时传入 `order_filter` 参数 - 计划预测:预定义列有筛选时从DOM提取已筛选行的唯一值;数字列拉值传 `plan_filter` 参数 - 后端列值API支持 `plan_filter` 联动过滤 #### 三、人员字段优化 - 前端:`column-values` 结果对 `procurement_follower/planner` 做人员→组别转换(处理逗号分隔多值) - 后端:`__multi__` 过滤的 `db_col_map` 加入人员字段,组名展开为具体人名做SQL LIKE匹配,客户端过滤循环也加组名展开 - 计划预测初始加载+表头重建时的人员字段筛选下拉都显示组别 #### 四、筛选状态可视化 - 计划预测初始加载+表头重建:筛选中的列图标变为蓝色▼、表头浅蓝底色 - 订单页面:已有 `_syncOrderFilterIcons` 机制,筛选列图标蓝色 #### 五、数字列全量筛选 - 后端 `if not values: continue` 跳过 `num` 类型 → 改为 `if ft != 'num' and not values: continue` - `db_col_map` 扩展加入成本价、生产货期、物流时间、最低起订量 - 前端向后端传 `order_filter` 参数支持订单页数字筛选 #### 六、数字列内容筛选优化 - 内容筛选值来源改为从 `/api/planning/column-values` 后端拉全量唯一值(不再读当前页DOM) - 默认标签改回"内容筛选" - `planNumFilterApply` 改为双模式:内容标签创建list筛选,条件标签创建num筛选 - 内容筛选联动支持:有已有筛选时传 `plan_filter` - 添加升降序按钮(▲升序/▼降序) - 后端列值API新增40+计算字段(昨日销量/库存/日销量预测等)的全量enrichment查询 - 提升级SW缓存版本(v7→v8)和JS版本号(v1653→v1654)排除缓存干扰 #### 七、筛选状态回显 - 预定义列已有筛选时重新打开,显示完整选项列表+已选项勾选状态(不再只显示过滤后的选项) #### 八、加载闪烁 - 去掉 `_createFilterMenuShell` 中的"加载中..."占位文字 #### 涉及文件 - `static/js/app.js`:前端全部筛选逻辑 - `routes/planning.py`:后端计划预测筛选+列值API - `static/sw.js`:Service Worker缓存版本 - `templates/base.html`:JS版本号 - 4个菜单(计划预测/国内/海外/包材订单)同步优化 - 部署于192.168.8.186测试环境,多次重启Gunicorn生效