refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
43 lines
2.3 KiB
Markdown
43 lines
2.3 KiB
Markdown
## 问题与目标
|
||
- 弹窗尺寸偏小,不便操作
|
||
- 弹窗及文件选择后没有在最上层,易被其他窗口遮挡
|
||
- 字段英文名不直观,需要显示中文对应(银豹模板列)
|
||
|
||
## 改进方案
|
||
### 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行与加载列同一行;点击预览行自动写入表头行号;保存后提示成功并写入配置
|
||
|
||
请确认以上方案,确认后我将立即实施并验证。 |