@agile-team/wl-skills-ui 1.9.8 → 1.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to **@agile-team/wl-skills-ui** will be documented in this f
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
+ ## [1.9.9] - 2026-07-29
8
+
9
+ ### Fixed
10
+
11
+ - 将 Element Table 与 AG Grid 的行 hover/selected 底色统一为品牌色 4%/7% 浅层,并保证 AG Grid 选中态优先于 hover,缓解可编辑控件下方色带过重且不覆盖校验态或业务语义单元格。
12
+
7
13
  ## [1.9.8] - 2026-07-29
8
14
 
9
15
  ### Fixed
package/README.md CHANGED
@@ -200,7 +200,7 @@ yarn add @agile-team/wl-skills-ui
200
200
  |---|---|---|
201
201
  | `element-plus` | **`2.2.6-prod.3`** | 集团 jh- 定制版;EP 2.3.0 起引入 `.el-input__wrapper`,与 jh-ui 3.x 不兼容 |
202
202
  | `@jhlc/jh-ui` | **`3.1.0`** | SCSS 皮肤包,`.com-text` label 包裹 + `.has-colon` 冒号注入(wl-skills-ui 已统一屏蔽表单冒号) |
203
- | `@agile-team/wl-skills-ui` | `^1.9.8` | 已对齐上述组合的 DOM 假设、客户主题锁、圆角契约与定制页样式边界 |
203
+ | `@agile-team/wl-skills-ui` | `^1.9.9` | 已对齐上述组合的 DOM 假设、客户主题锁、圆角契约与定制页样式边界 |
204
204
 
205
205
  三种识别方式,任选其一:
206
206
 
@@ -214,10 +214,11 @@ yarn add @agile-team/wl-skills-ui
214
214
 
215
215
  ## 版本亮点
216
216
 
217
- 当前 v1.9.8
217
+ 当前 v1.9.9
218
218
 
219
219
  - **主操作按钮不再漏色**:新增/新建/添加/创建类按钮强制使用客户主题 `primary` 填充样式,扫描器可识别并自动修复漏写 `type` 或误带 `plain` 的存量代码。
220
220
  - **长文本交互统一**:普通数据列在空间不足时单行省略,悬停显示完整内容;Tag、操作列、自定义渲染和主动换行列不被机械覆盖。
221
+ - **表格行状态降噪**:Element Table 与 AG Grid 的 hover/selected 统一为品牌色 4%/7% 浅层,选中态优先于悬停,同时保留编辑控件、校验态、Tag 和业务语义单元格底色。
221
222
  - **紧凑表单字号闭环**:业务表单 label、输入值、选择值、placeholder、textarea 与数字输入统一为 12px;登录页和显式定制区域继续保持项目自身设计。
222
223
  - **输入边框状态闭环**:textarea 聚焦始终显示品牌色边框;数字输入兼容 Element Plus 新旧及混合 wrapper DOM,默认、hover、focus、错误、禁用态均只保留一层正确边框。
223
224
  - **分裂操作保持一体**:BaseToolbar 的主动作与下拉箭头共用外轮廓和状态色,下拉菜单中的业务按钮扁平化为菜单项;规则精准限定在平台工具栏结构,不污染普通按钮组和普通下拉菜单。
@@ -11,7 +11,7 @@
11
11
  | `element-plus` | **`2.2.6-prod.3`** | 集团 jh- 定制版,搭配 `@jhlc/jh-ui` 使用,DOM 仍为 `.el-input > .el-input__inner` 直挂结构(**EP 2.3.0 起才引入 `.el-input__wrapper`**) |
12
12
  | `@jhlc/jh-ui` | **`3.1.0`** | SCSS 皮肤包,`.com-text` label 包裹、`.has-colon ::after` 冒号注入、`.el-form-item--default { margin-bottom: 24px }` 等强约束 |
13
13
  | `@jhlc/common-core` | `3.1.0` 或 `3.1.0-prod.x` | 基础 util/types,`@jhlc/jh-ui` 间接依赖 |
14
- | `@agile-team/wl-skills-ui` | `^1.9.8` | 已对齐 jh-ui 3.1.0 + EP 2.2.6-prod.3 的 DOM 假设、客户主题锁、6px 基础圆角、紧凑表单、分裂按钮、长文本提示、定制页样式边界与 Vite 4 开发转换 |
14
+ | `@agile-team/wl-skills-ui` | `^1.9.9` | 已对齐 jh-ui 3.1.0 + EP 2.2.6-prod.3 的 DOM 假设、客户主题锁、6px 基础圆角、紧凑表单、表格行状态、分裂按钮、长文本提示、定制页样式边界与 Vite 4 开发转换 |
15
15
 
16
16
  ## 项目集群当前实测
17
17
 
@@ -35,7 +35,7 @@
35
35
 
36
36
  ## 适配建议
37
37
 
38
- - 集团内项目:**统一锚定 `element-plus@2.2.6-prod.3` + `@jhlc/jh-ui@3.1.0`**,与 wl-skills-ui v1.9.8 三方对齐。
38
+ - 集团内项目:**统一锚定 `element-plus@2.2.6-prod.3` + `@jhlc/jh-ui@3.1.0`**,与 wl-skills-ui v1.9.9 三方对齐。
39
39
  - 升级 `element-plus` 到 2.3+ 前,必须同步升级 `@jhlc/jh-ui` 到对应支持版本,否则 `.com-text` / `.el-input__inner` DOM 与 EP `__wrapper` 体系不兼容。
40
40
  - 新项目接入:见 README 「快速接入」章节,默认会按本表声明 peerDependency 范围。
41
41
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/wl-skills-ui",
3
- "version": "1.9.8",
3
+ "version": "1.9.9",
4
4
  "description": "企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式(tokens / element / vendors / layouts / runtime / scanner / fixer / skills)",
5
5
  "type": "module",
6
6
  "main": "./es/index.js",
@@ -66,6 +66,10 @@ BaseTable / AG Grid 使用 `defineColumns()` 后由 runtime 自动为普通文
66
66
  `showOverflowTooltip: true`。自定义渲染、结构列、换行列不强制;需要主动关闭时
67
67
  显式声明 `showOverflowTooltip: false`。
68
68
 
69
+ 行 hover/selected 色由包内表格 token 统一管理,业务页面不要重写
70
+ `hover-row`、`current-row` 或直接覆盖 `td.el-table__cell` 背景,以免编辑控件、
71
+ 校验态和语义单元格底色发生冲突。
72
+
69
73
  ---
70
74
 
71
75
  ## 完整标准写法示例
@@ -15,6 +15,10 @@ applyTo: "**/*.{ts,vue}"
15
15
 
16
16
  > 与 `wl-skills-kit` 协同说明:本 Skill 负责 AG Grid/列渲染/操作列 runtime 能力,也要服务非 kit 项目的通用 AG Grid 场景。若扫描发现项目希望升级为团队最佳实践,再提示使用 `wl-skills-kit` 进行页面结构和工作流规范化;在此之前,`wl-skills-ui` 仍应保证样式和渲染能力可独立生效。
17
17
 
18
+ > 行状态由包统一管控:hover 为品牌色 4% 浅底,selected 为 7% 浅底且优先于
19
+ > hover。业务代码不要重写 `.ag-row-hover`、`.ag-row-selected` 或对应 AG
20
+ > Grid 主题变量,也不要为了行状态修改编辑控件、校验态和语义单元格背景。
21
+
18
22
  ---
19
23
 
20
24
  ## 标准列定义写法
@@ -53,6 +53,16 @@ BaseTable / AG Grid 列必须通过 `defineColumns()` 声明。普通文本列
53
53
 
54
54
  ---
55
55
 
56
+ ## 行悬停与选中状态
57
+
58
+ - hover 使用客户品牌色 4% 透明度,只提示当前位置,不形成整条亮蓝色块。
59
+ - selected 使用客户品牌色 7% 透明度,并始终优先于 hover。
60
+ - 状态色只作用于数据行背景,不覆盖编辑输入框、校验态、Tag 和业务语义单元格底色。
61
+ - 不在业务页面重写 `.ag-row-hover`、`.ag-row-selected`、`hover-row` 或
62
+ `current-row`;Element Table 与 AG Grid 均由化妆包统一管控。
63
+
64
+ ---
65
+
56
66
  ## 规则 R004:操作列使用 renderOps / jh-op-btn
57
67
 
58
68
  操作列按钮**不得**直接使用 `<el-button>` 或裸文本,必须通过 `renderOps` 渲染:
@@ -2,6 +2,13 @@
2
2
  // jh-ui table.scss 表头颜色为硬编码,此处用 CSS 变量覆盖
3
3
 
4
4
  html body .el-table {
5
+ // 与 AG Grid 共用克制的行状态层级;只改表格状态 token,
6
+ // 不强刷 input / 校验 / 业务语义单元格背景。
7
+ --wk-table-row-hover-bg: rgba(var(--el-color-primary-rgb), 0.04);
8
+ --wk-table-row-selected-bg: rgba(var(--el-color-primary-rgb), 0.07);
9
+ --el-table-row-hover-bg-color: var(--wk-table-row-hover-bg) !important;
10
+ --el-table-current-row-bg-color: var(--wk-table-row-selected-bg) !important;
11
+
5
12
  .el-table__header-wrapper th,
6
13
  .el-table__fixed-header-wrapper th {
7
14
  color: var(--el-text-color-primary, #303133);
@@ -6,14 +6,18 @@
6
6
 
7
7
  // ── CSS 变量注入(AG Grid 28+ 支持)──────────────────────────────────────────
8
8
  .ag-root-wrapper {
9
+ // 深品牌蓝在大面积行底色中只保留轻提示:hover 4%,selected 7%。
10
+ // 同时回写 AG Grid 变量,避免平台主题继续使用默认亮蓝。
11
+ --wk-grid-row-hover-bg: rgba(var(--el-color-primary-rgb), 0.04);
12
+ --wk-grid-row-selected-bg: rgba(var(--el-color-primary-rgb), 0.07);
9
13
  --ag-background-color: #ffffff;
10
14
  --ag-odd-row-background-color: #ffffff;
11
15
  --ag-header-background-color: #fafafa;
12
16
  --ag-header-foreground-color: #374151;
13
17
  --ag-border-color: rgba(0, 0, 0, 0.06);
14
18
  --ag-row-border-color: rgba(0, 0, 0, 0.06);
15
- --ag-row-hover-color: rgba(var(--el-color-primary-rgb), 0.06);
16
- --ag-selected-row-background-color: rgba(var(--el-color-primary-rgb), 0.1);
19
+ --ag-row-hover-color: var(--wk-grid-row-hover-bg) !important;
20
+ --ag-selected-row-background-color: var(--wk-grid-row-selected-bg) !important;
17
21
  --ag-range-selection-border-color: rgba(var(--el-color-primary-rgb), 0.4);
18
22
  --ag-font-size: 13px;
19
23
  --ag-font-family: inherit;
@@ -88,7 +92,7 @@
88
92
  font-size: 13px !important;
89
93
  color: var(--el-text-color-primary) !important;
90
94
  border-bottom-color: var(--el-border-color-lighter) !important;
91
- transition: background-color 0.15s ease;
95
+ transition: background-color 0.12s ease;
92
96
  }
93
97
 
94
98
  .ag-row-even {
@@ -98,13 +102,21 @@
98
102
  background-color: #ffffff;
99
103
  }
100
104
 
101
- .ag-row:hover,
102
- .ag-row.ag-row-hover {
103
- background-color: rgba(var(--el-color-primary-rgb), 0.06) !important;
105
+ .ag-row:not(.ag-row-selected):hover,
106
+ .ag-row.ag-row-hover:not(.ag-row-selected) {
107
+ background-color: var(
108
+ --wk-grid-row-hover-bg,
109
+ rgba(var(--el-color-primary-rgb), 0.04)
110
+ ) !important;
104
111
  }
105
112
 
106
- .ag-row.ag-row-selected {
107
- background-color: rgba(var(--el-color-primary-rgb), 0.1) !important;
113
+ .ag-row.ag-row-selected,
114
+ .ag-row.ag-row-selected:hover,
115
+ .ag-row.ag-row-selected.ag-row-hover {
116
+ background-color: var(
117
+ --wk-grid-row-selected-bg,
118
+ rgba(var(--el-color-primary-rgb), 0.07)
119
+ ) !important;
108
120
  }
109
121
 
110
122
  // ── 单元格 ────────────────────────────────────────────────────────────────────