返回开发日志
飞书多维表同步工具2026-07-09v4.0.14

列宽缩减810px+ERP路径左对齐+日志来源补全

bug修复+优化v4.0.14

需求描述

  1. 当前看不到右侧边缘了,整体宽度排版请再略微缩减几个像素,参考左侧列字段距离容器左侧的宽度
  2. ERP保存路径列路径信息显示有问题(前面用…了),需改为向左对齐,右侧无法显示的区域改为…显示
  3. 执行日志板块来源选择列表只有"ERP导出",实际日志明细包含"ERP导出"、"领星ERP"两种来源,需优化

根因分析

  1. 右侧看不到边缘:v4.0.13列宽总和815px,实测Treeview可用宽度817px,仅留2px边距。但Treeview左侧padx=5,右侧也应留约5px+边框,2px不足以体现右侧边缘
  2. 路径前缀显示…:v4.0.13的截断逻辑是 "..." + save_path[-38:](保留尾部38字符),导致路径前缀被…替代。用户实际更需要看到路径头部(前缀更有意义),应改为 save_path[:35] + "…"(保留头部35字符,尾部显示…)
  3. 日志来源下拉框缺失:硬编码 ["全部", "数据同步", "ERP导出", "任务编排", "凭据管理"],但领星ERP下载器(erp/lingxing/downloader.py)实际输出 source="领星ERP" 的日志,导致该来源日志无法被筛选

改动文件清单

文件改动内容
tabs/sync_tasks_tab.pyfolder列宽235→230(缩减5px),列宽总和815→810px
tabs/credentials_tab.pyaccount 185→180、table_token 215→210、status 75→80(微调),列宽总和815→810px
tabs/erp_report_tab.pysave_path列宽320→315(缩减5px);路径截断逻辑改为 save_path[:35] + "…"(保留头部、尾部…)
tabs/log_center_tab.pymessage列宽520→515(缩减5px);来源下拉框增加"领星ERP"和"系统"选项
utils/ui_layout.pyLAYOUT_SCHEMA_VERSION 4→5,触发旧列宽清除
gui_sync.py版本号 4.0.13→4.0.14

各Tab列宽分配明细(总和均为810px)

Tab固定文字列用户输入列用户输入占比
sync_tasksselect=40, sync_mode=75, mode=75, status=80 (270px)name=160, credential=150, folder=230 (540px)67%
credentialsplatform=75, type=110, status=80 (265px)name=155, account=180, table_token=210 (545px)67%
erp_tasksselect=40, report_type=100, export_method=65, cycle=65, status=75 (345px)name=150, save_path=315 (465px)57%
log_centerlevel=55, source=85 (140px)time=155, message=515 (670px)83%

技术要点

  1. 右侧边缘留白参考左侧:Treeview用 pack(side=tk.LEFT, fill=tk.BOTH, expand=True, padx=5),左侧padx=5px。为让右侧也留约5px可见边缘,列宽总和应比可用宽度少约7px(5px留白+2px边框)。817-7=810px
  2. 路径截断保留头部:文件路径的前缀(如D:/TRAE/...)比尾部更有意义,用户更关心路径开头定位。改为 save_path if len(save_path) <= 38 else save_path[:35] + "…",35字符头部+1个…符号=36字符显示宽度,配合悬停tooltip看完整路径
  3. 日志来源下拉框补全:实际日志来源有"数据同步"、"ERP导出"、"领星ERP"、"任务编排"、"凭据管理"、"系统"6种(领星ERP来自erp/lingxing/downloader.pysource="领星ERP"),下拉框需全部列出才能正确筛选

验证结果

自动化测试验证(4项全部通过):

测试项预期结果实际结果状态
语法检查6个文件通过py_compile全部通过通过
各Tab列宽总和=810px4个Tab总和810±3pxsync/cred/erp/log均为810px通过
ERP路径截断保留头部长路径→save_path[:35]+"…"54字符路径→保留头部35字符+尾部…通过
日志来源含领星ERP下拉框包含"领星ERP"已包含,完整列表7项通过
schema=5+版本4.0.14均已升级已升级通过

踩坑与解决

  • v4.0.13路径截断方向错误:当时认为路径末尾的文件名/文件夹名更有意义,用了"..." + save_path[-38:]保留尾部。实际用户反馈路径前缀被…替代后无法定位根目录,前缀才是定位关键。v4.0.14改为保留头部。教训:截断方向应根据信息定位价值决定,文件路径的前缀(根目录定位)通常比尾部(文件名)更重要
  • 日志来源下拉框硬编码遗漏:v4.0.9建立日志中心时硬编码了5个来源,但未同步ERP模块新增的"领星ERP"来源。教训:来源/类型等枚举值应从实际代码中收集,而非手动维护硬编码列表

下一阶段规划

  • 考虑日志来源下拉框改为动态获取(从已有日志中提取唯一source值),避免新增模块来源时再次遗漏