## 问题与目标 - 弹窗尺寸偏小,不便操作 - 弹窗及文件选择后没有在最上层,易被其他窗口遮挡 - 字段英文名不直观,需要显示中文对应(银豹模板列) ## 改进方案 ### 1. 弹窗尺寸与置顶行为 - 将列映射向导窗口尺寸调整为 `780x660`,保持自适应(子控件 `fill=tk.BOTH, expand=True`) - 打开向导时:`dlg.lift()`、`dlg.attributes('-topmost', True)`,`after_idle` 取消置顶但保持焦点;`dlg.transient(root)`、`dlg.grab_set()` 防止被遮挡 - 选择文件后的回调中再次 `dlg.lift()` 和短暂置顶,确保返回后窗口在最上层 - 同步为模板管理窗口应用同样策略 ### 2. 字段标签中文提示 - 列映射向导的标准字段改为按 `ColumnMapper.STANDARD_COLUMNS` 动态生成(若可用),并为每个字段追加中文说明,例如: - `barcode(条码)` - `name(商品名称)` - `specification(规格)` - `quantity(数量)` - `unit(单位)` - `unit_price(采购单价)` - `total_price(金额/小计)` - `category(类别)` - `brand(品牌)` - `supplier(供应商)` - 若 `ColumnMapper` 不可用,则用内置 `friendly_labels` 字典生成上述标签 ### 3. 布局优化与可用性 - 保持“文件路径 + 浏览 + 预览前30行 + 加载列”四项同一行,按钮设 `padx=6`,保证易点 - 映射区使用 `ttk.Combobox(state='readonly')`,宽度适配,并确保行高足够(留白) - 预览区保留顶部表格(前30行),支持点击行自动填充表头行号;加载列时按指定行读取 ### 4. 代码改动位置 - `启动器.py`: - `open_column_mapping_wizard_alt`:调整几何尺寸与置顶;在“浏览”回调与预览/加载流程中补充 `lift/topmost`;扩展标准字段与中文标签 - `open_template_manager`:统一尺寸与置顶行为 - 仅UI与行为改动,不影响处理逻辑;保存仍写入 `suppliers_config.json` 的 `header_row` 与 `column_mapping` ### 5. 验证 - 打开列映射向导:窗口足够大,居中且在最上层;选择文件后窗口仍在最上层 - 字段标签显示为英+中:如 `name(商品名称)` - 预览前30行与加载列同一行;点击预览行自动写入表头行号;保存后提示成功并写入配置 请确认以上方案,确认后我将立即实施并验证。