Files
tms-erp-web/.workbuddy/memory/2026-08-07.md
赵忠林 c92d2a405a style(ui): 统一操作列文字字重和全站表格文字溢出提示
- 取消操作列内 el-link 默认加粗,统一为常规字体粗细,避免字体显得突兀
- 在 element-ui.scss 中新增样式覆盖 el-link 的 font-weight 为 normal
- 全站表格开启 Element Plus 全局配置 showOverflowTooltip,统一显示单元格文字省略提示
- Avue 全局 crudOption 和手写表格均启用 showOverflowTooltip,覆盖所有相关表格列
- 通过 CSS 豁免操作列单元格不受 tooltip 固定宽度裁切影响,保证操作列内部链接显示完整
- 调整部分菜单宽度以适配视觉和布局需求
- 验证构建成功,无新增 CSS 警告,确保兼容性和功能正常
2026-08-07 12:24:17 +08:00

9.0 KiB
Raw Blame History

2026-08-07 工作日志

运输计划调度弹窗恢复左右分栏布局

  • 需求:客户提供「计划详情」参考截图,要求调度弹窗改回「左侧基本信息卡 + 右侧收发货路线卡」的左右分栏布局。
  • 改动:src/views/business/components/business-crud-page.vue
    • 模板:把基本信息与收发货路线重新包进 business-crud-page__dispatch-summary 双列容器;左侧 section-card 内恢复 3 列网格(客户/项目/合同编号),货物信息占 2 列、计划执行时间占 1 列、附件独占一行;右侧 section-card 内恢复左右排列的起点/终点(徽章+名称+地址+联系人),中间用方向虚线连接。
    • 样式:
      • 外容器恢复 grid-template-columns: minmax(0, 1.25fr) minmax(420px, 1fr)gap 16px卡片等高拉伸。
      • 基本信息网格恢复 3 列,列间距 16px、行间距 12px。
      • 路线区恢复 grid-template-columns: 1fr 56px 1fr,徽章 32px标题 16px地址/联系人 13px连接线 56px。
      • 保留紧凑化后的字号/间距(标签 12px、值 14px避免回到原先过松的状态。
  • 验证:npm run build 成功。

运输计划调度弹窗基本信息改为 2 列

  • 需求:客户截图反馈左侧「基本信息」还嫌松,要求改为 2 列更紧凑。
  • 改动:src/views/business/components/business-crud-page.vue
    • 模板:调整基本信息字段顺序为 客户/项目、合同编号/计划执行时间、货物信息(占满 2 列)、附件(占满 2 列)。
    • 样式:business-crud-page__dispatch-summary-gridrepeat(3, minmax(0, 1fr)) 改为 repeat(2, minmax(0, 1fr)),保持 gap 12px 16px。
  • 验证:npm run build 成功。

运输计划调度弹窗路线连接改为车辆图标

  • 需求:客户希望把收发货路线中间的方向虚线换成车辆图标。
  • 改动:src/views/business/components/business-crud-page.vue
    • 模板:把 <div class="business-crud-page__dispatch-route-line" /> 替换为 <div class="business-crud-page__dispatch-route-vehicle"><el-icon><Van /></el-icon></div>
    • 样式:删除原 &__dispatch-route-line 虚线箭头样式,新增 &__dispatch-route-vehicle,使用主色圆形背景、白色 Van 图标,尺寸 36×36px居中与路线节点对齐。
  • 验证:npm run build 成功。

运输计划调度弹窗收发货路线视觉美化

  • 需求:客户反馈右上角「收发货路线」卡片仍不够美观,要求继续优化。
  • 改动:src/views/business/components/business-crud-page.vue
    • 样式:
      • 路线容器去掉 padding-top,改为 align-items: center 垂直居中。
      • 起点/终点 item 改为 align-items: center,徽章从方角改为圆形,并加轻微阴影。
      • 车辆图标改为白底 + 主色边框 + 主色 Van 图标,尺寸加大到 44×44px两侧各延伸 20px 虚线,形成「路线」流动感。
      • 城市名称限制单行并溢出省略,地址/联系人间距收紧、颜色变淡。
  • 验证:npm run build 成功。

通知公告 /desk/notice 操作列加宽

  • 需求:客户截图反馈操作列中「查看、编辑、删除」三个文字链接被挤成两行,要求加宽。
  • 改动:src/views/desk/notice.vue
    • 在 Avue CRUD option 中新增 menuWidth: 220,使操作列可在一行容纳三个操作链接;符合项目样式规范「三个操作按钮时宽度不小于 220px」。

全仓表格操作列宽度统一≤3 按钮统一 180

  • 需求:客户提供新截图,要求所有操作按钮 ≤3 个的表格操作列统一宽度为 180>3 个按钮保持 320。
  • 核心改动:
    • src/utils/table-menu.jsTABLE_MENU_WIDTHdefaultthree 都从 160/220 统一改为 180four 保持 320resolveTableMenuWidth 逻辑不变。
    • src/main.js:全局 crudOption.menuWidth 从 160 改为 180覆盖未显式设置 menuWidth 的 Avue CRUD 页面。
    • src/views/desk/notice.vuemenuWidth 从 220 改为 180。
    • src/option/business/process-config.jsmenuWidth 从 200 改为 180。
    • src/views/system/param.vue:手写 el-table 操作列宽度从 220 改为 180。
    • 批量替换:对 44 个显式设置 menuWidth: 160.vue / .js / const/*.js 文件统一改为 180含部分文件内多处
  • 验证:npm run build 成功exit code 0

角色管理 /authority/role 操作列改 180

  • 需求:用户明确要求把 /authority/role 页面操作列宽度设为 180该页面此前设为 320因含「查看/编辑/删除 + 权限设置」自定义菜单)。
  • 改动:src/views/authority/role.vue
    • option 内联 menuWidth: 320 改为 menuWidth: 180

全站操作列按钮统一为链接el-link风格

  • 需求:用户要求「操作栏里的按钮改成链接的方案,全站风格统一」,并先确认了对功能是否有影响。
  • 调研结论(关键):全仓手写 el-table 操作列10 个文件、约 28 列)与 53 个 avue-crud 自定义 #menu 插槽已全部是 <el-link>,全库 type="text" 残留为 0真正未链接化的只剩下 Avue 内置 viewBtn/editBtn/delBtn(渲染为 <el-button is-text>,包在 div.avue-crud__menu 内,且自带 permission 指令与 rowView/rowEdit/rowDel 事件)。
  • 实施手法:采用「方案 A纯 CSS 视觉对齐」(零功能影响、不动事件与权限,符合用户「不要影响功能」的诉求)。
  • 改动:src/styles/element-ui.scss
    • 新增 .avue-crud__menu > .el-button.is-text 规则,把 Avue 内置行操作按钮外观对齐为 el-link主色文字、无边框/无背景、hover 下划线 + 浅色、禁用态浅色无下划线、height:auto / padding:0(配合父级 inline-flex; gap:8px 与已存在的主色/间距覆盖规则)。
    • 选择器仅命中行操作列 .avue-crud__menu 内的 is-text 按钮,不误伤顶部工具栏(.avue-crud__header)与弹窗按钮(.avue-crud__dialog__menu)。
  • 注意:现有全局规则 .avue-crud__menu .el-link 会强制操作列内所有 el-linktype="danger" 的删除)显示为主色蓝。如需删除按钮保留红色告警,需单独调整该覆盖规则(本次未改,保持统一蓝)。
  • 验证:npm run build 成功exit code 0构建日志中的 CSS * 告警来自第三方库压缩,与本次无关(历史既有)。

操作列文字取消加粗(统一常规字重)

  • 需求:用户要求操作栏下的按钮字体都不要加粗,统一风格。
  • 根因Element Plus el-link 默认 font-weight: var(--el-font-weight-primary)500 中等粗),导致操作列里的链接(查看/编辑/删除等)显示为加粗;而 Avue 内置 is-text 按钮此前已被规则设为 normal。
  • 改动:src/styles/element-ui.scss
    • 在既有 .avue-crud__menu .el-link, .el-table ... .cell:has(.el-link) .el-link 统一规则中增加 font-weight: normal;(0,2,0) 优先级高于 el-link 自身 (0,1,0) 的默认字重,可覆盖)。
    • 覆盖范围Avue 行菜单内的 el-link + 任意含 el-link 的表格体单元格手写操作列一次统一全站操作列字重Avue 内置 is-text 按钮与顶部工具栏/弹窗按钮字重保持原样不受影响。
  • 验证:npm run build 成功exit code 0

全站表格省略文字 hover tooltip 提示统一

  • 需求:用户截图反馈合同管理等页面中「所属项目」等列文字被省略,要求像 /base/common-address 一样,鼠标移上去显示完整提示;全站统一加,改完列出文件。
  • 参考实现:src/option/base/common-address.js 中 Avue 列配置使用 showOverflowTooltip: true
  • 调研结论:全站表格可见列约 848 个Avue+ 424 个手写 <el-table-column>,其中 801 个 Avue 列、268 个手写列未开启 tooltip。Element Plus 支持全局 table: { showOverflowTooltip: true } 配置Avue 3.9.2 完整透传,可一行代码覆盖全站。
  • 改动文件清单:
    • src/main.js
      • Element Plus 全局配置新增 table: { showOverflowTooltip: true },一次性覆盖所有 Avue CRUD 与手写 el-table。
      • Avue 全局 crudOption 新增 showOverflowTooltip: true 作为双保险,避免页面级 option 被错误覆盖时失效。
    • src/styles/element-ui.scss
      • 新增 .el-table .cell.avue-crud__menu, .el-table .el-table__body .cell.el-tooltip:has(> .el-link) 规则,豁免操作列单元格的固定宽度与溢出隐藏,防止全局 tooltip 导致操作列内 el-link 换行后被裁切,保持原有 8px gap 与自动换行。
    • src/option/business/common.js
      • 共享工厂函数 createCrudOption 新增 showOverflowTooltip: true,覆盖 business 模块通过该工厂生成的所有 CRUD option。
  • 覆盖范围:全站所有表格可见文本列(含 Avue 与手写 el-tabletype="selection" 选择列由 Element Plus 自动豁免;操作列通过 CSS 豁免不被影响。
  • 验证:npm run build 成功exit code 0构建日志中 CSS * 告警来自第三方库压缩,与本次无关(历史既有)。