原库位树是单列、层级很深,用户勾完看不出到底选了哪些库位。 现改为左右双栏: - 左 60%:el-tree(勾选),@check 触发 syncSelectedPaths - 右 40%:已选明细面板 —— 顶部「已选 N 个库位」+ 清空按钮, el-scrollbar 内平铺 el-tag 展示完整路径(等宽字体) 双向互动:点击右侧标签的 × 会调 treeRef.setChecked(path, false, true) 同步取消左侧勾选后重算列表。注意 el-tree 的 setCheckedKeys / setChecked 都**不会**触发 @check 事件,因此这两处都显式调用了 syncSelectedPaths(), 保证左右状态强同步(获取推荐后右侧也会立刻渲染)。 ★ 右侧刻意**不过滤非末级节点**,展示的就是提交给后端的 scope_config.locations 全集。原因:后端按 warehouse_location 精确匹配,而库存的库位可能落在层级 1/2 (实测 level1 有 9 个、level2 有 57 个),只提交叶子路径会把这些库存静默排除 在抽盘范围之外。面板所见 = 实际范围,才谈得上「强同步」。 配套:抽盘配置区是双栏、400px 窄容器装不下,故在展开该配置时把欢迎页 放宽到 780px(.idle-content.is-wide),其他状态维持原宽度。
Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.