@agile-team/wl-skills-ui 1.6.13 → 1.6.14
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,14 @@ 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.6.14] - 2026-05-12
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- 新增 `styles/vendors/_jh-ui.scss` 专项承接 `@jhlc/jh-ui` SCSS 皮肤包,覆盖 `.com-text` label 包裹、`.has-colon` 冒号注入、`.com-input` / `.com-textarea` 控件 wrapper 等 jh-ui 特有 DOM 模式。
|
|
12
|
+
- 新增 Element Plus 2.2.x(`.el-input__inner` 直挂结构、无 `.el-input__wrapper`)下输入、选择、日期控件的圆角 / focus / error 三态规则,jh-select 与 jh-date-picker focus 表现稳定。
|
|
13
|
+
- `skills/_meta/_compat/vendors.json` 在 jh vendor 下登记 `@jhlc/jh-ui` baseline 与 `_jh-ui.scss` 样式来源;`skills/vendors/jh-components/SKILL.md` 补齐识别表与全局样式来源。
|
|
14
|
+
|
|
7
15
|
## [1.6.13] - 2026-05-12
|
|
8
16
|
|
|
9
17
|
### Fixed
|
package/README.md
CHANGED
|
@@ -193,8 +193,10 @@ yarn add @agile-team/wl-skills-ui
|
|
|
193
193
|
|
|
194
194
|
## 版本亮点
|
|
195
195
|
|
|
196
|
-
当前 v1.6.
|
|
196
|
+
当前 v1.6.14 版本继续强化“统一规则源 + 单一事实源 + 项目集群封装必覆盖 + UI 细节精准修复”的闭环,并补齐销售报价页暴露出的通用 UI 细节:
|
|
197
197
|
|
|
198
|
+
- 新增 `@jhlc/jh-ui` SCSS 皮肤包专项适配(`styles/vendors/_jh-ui.scss`),精准覆盖 `.com-text` label、`.com-input` / `.com-textarea` 控件 wrapper、`.has-colon` 冒号注入等 jh-ui 特有 DOM
|
|
199
|
+
- 兼容 Element Plus 2.2.x(`.el-input__inner` 直挂结构)下输入、选择、日期控件的圆角 / focus / error 三态,jh-select 与 jh-date-picker focus 行为稳定
|
|
198
200
|
- 补强输入、选择、日期、文本域 focus 品牌色边框和必填星号红色显示规则,兼容 Element Plus 定制版本差异
|
|
199
201
|
- 修复表单必填星号、错误 label、错误提示和错误边框红色态,避免校验反馈被通用 label/input 样式覆盖
|
|
200
202
|
- 优化 BaseToolbar 下拉/分裂按钮组,让“主动作 + 下拉动作”按一个动作组展示,避免视觉割裂
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/wl-skills-ui",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.14",
|
|
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",
|
|
@@ -15,6 +15,7 @@ applyTo: "**/*.vue"
|
|
|
15
15
|
|
|
16
16
|
| 类型 | 子组件 | 标签 | 关键类名 | 治理方式 |
|
|
17
17
|
|---|---|---|---|---|
|
|
18
|
+
| SCSS 皮肤适配 | `@jhlc/jh-ui` | — | `.com-text` / `.com-input` / `.com-textarea` / `.com-input-tip` | `styles/vendors/_jh-ui.scss` |
|
|
18
19
|
| 专项样式覆盖 | jh-tree | `<jh-tree>` | `.jh-tree` / `.base-tree` | `styles/vendors/_jh-tree.scss` |
|
|
19
20
|
| 专项样式覆盖 | jh-pagination | `<jh-pagination>` | `.jh-pagination` | `styles/vendors/_jh-pagination.scss` |
|
|
20
21
|
| 专项样式覆盖 | jh-drag-col | `<jh-drag-col>` | `.drag-col-container` / `.drag-left` / `.slider-col` | `styles/vendors/_jh-drag-col.scss` |
|
|
@@ -22,6 +23,15 @@ applyTo: "**/*.vue"
|
|
|
22
23
|
| 通用规则治理 | jh-form | `<jh-form>` | `.jh-form` | 继承 L0 tokens + L1 form 视觉原则 |
|
|
23
24
|
| 通用规则治理 | 其它 jh-* | `<jh-*>` | `.jh-*` / 组件内部 Element Plus 类 | 先按 jh 通用规则治理,复杂结构再升级专项样式 |
|
|
24
25
|
|
|
26
|
+
### `@jhlc/jh-ui` SCSS 皮肤包识别
|
|
27
|
+
|
|
28
|
+
项目同时安装 `@jhlc/jh-ui` 与 `element-plus`(常为 `2.2.6-prod.3` 定制版)时,输入控件 DOM 为 `.el-input > .el-input__inner`(无 `.el-input__wrapper`),表单 label 文本被包成 `<span class="com-text">`,并由 `.has-colon .com-text::after` 注入冒号。`_jh-ui.scss` 已经精准覆盖:
|
|
29
|
+
|
|
30
|
+
- label `.com-text` 单行省略 + has-colon 冒号保留
|
|
31
|
+
- EP 2.2.x `.el-input__inner` 圆角 / focus / error 三态
|
|
32
|
+
- jh-select / jh-date-picker 的 `.el-select.is-focus` / `.el-input.is-focus` 兼容
|
|
33
|
+
- 必填星号在 inline-flex label 下显式声明颜色
|
|
34
|
+
|
|
25
35
|
## Diagnose
|
|
26
36
|
|
|
27
37
|
- ❌ 自行给 `.jh-tree` 写颜色覆盖(应用全局 `vendors/_jh-tree.scss`)
|
|
@@ -42,6 +52,7 @@ applyTo: "**/*.vue"
|
|
|
42
52
|
|
|
43
53
|
## 全局样式来源
|
|
44
54
|
|
|
55
|
+
- `styles/vendors/_jh-ui.scss`
|
|
45
56
|
- `styles/vendors/_jh-tree.scss`
|
|
46
57
|
- `styles/vendors/_jh-pagination.scss`
|
|
47
58
|
- `styles/vendors/_jh-drag-col.scss`
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2
|
+
// @jhlc/jh-ui adapter — L2 vendor 化妆层(项目集群专用)
|
|
3
|
+
//
|
|
4
|
+
// 背景
|
|
5
|
+
// `@jhlc/jh-ui@3.x` 是项目集群在用的 Element Plus SCSS 皮肤包,
|
|
6
|
+
// 常与 Element Plus 2.2.x(如 `element-plus@2.2.6-prod.3`)配套使用。
|
|
7
|
+
// 它对 Element Plus 的 DOM/选择器约定与社区版(2.6+)不一致:
|
|
8
|
+
//
|
|
9
|
+
// 1. 表单 label 文本被包成 `<span class="com-text">`,
|
|
10
|
+
// `.el-form-item__label` 自身是 `display: inline-flex`。
|
|
11
|
+
// → 直接在 label 上写 ellipsis 不生效,必须落到 `.com-text`。
|
|
12
|
+
// 2. `.has-colon .el-form-item__label .com-text::after` 注入冒号。
|
|
13
|
+
// → ellipsis 容器必须给 `::after` 预留空间。
|
|
14
|
+
// 3. 输入控件 DOM 为 `.el-input > .el-input__inner`(无 `.el-input__wrapper`)。
|
|
15
|
+
// → focus / error 必须命中 `.el-input__inner`,
|
|
16
|
+
// `.el-input__wrapper.is-focus` 这类 EP 2.6+ 规则在这里不生效。
|
|
17
|
+
// 4. select 用 `.el-select .el-input > .el-input__inner`,
|
|
18
|
+
// focus 标志位为 `.el-select.is-focus` 或 `.el-input.is-focus`。
|
|
19
|
+
// 5. `.com-input` / `.com-textarea` / `.com-input-tip` 是 jh-ui 的控件
|
|
20
|
+
// 外层 wrapper,承载 form-item 的 has-tip / is-error 形态。
|
|
21
|
+
//
|
|
22
|
+
// 边界
|
|
23
|
+
// - 本文件只负责修复 jh-ui DOM 与 wl-skills-ui 统一规则的对接差异。
|
|
24
|
+
// - 不重复 jh-ui 已经设好的视觉(如下拉项 padding/radius、表单 margin-bottom)。
|
|
25
|
+
// - Element Plus 2.6+ 项目的 `.el-input__wrapper` 规则继续由
|
|
26
|
+
// `_base-components.scss` 统一处理。
|
|
27
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
28
|
+
|
|
29
|
+
// 1) label 文本容器(.com-text) — 单行省略,允许收缩
|
|
30
|
+
// .el-form-item__label 在 jh-ui 中是 inline-flex,
|
|
31
|
+
// 必须放开 min-width 才能让内部 .com-text 真的 shrink。
|
|
32
|
+
.el-form-item__label {
|
|
33
|
+
min-width: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.el-form-item__label > .com-text,
|
|
37
|
+
.el-form-item__label .com-text {
|
|
38
|
+
display: inline-block;
|
|
39
|
+
min-width: 0;
|
|
40
|
+
max-width: 100%;
|
|
41
|
+
white-space: nowrap;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
text-overflow: ellipsis;
|
|
44
|
+
vertical-align: middle;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// has-colon 模式下,.com-text::after 注入冒号,
|
|
48
|
+
// 给一点 padding 避免冒号被 ellipsis 裁掉
|
|
49
|
+
.has-colon .el-form-item__label > .com-text,
|
|
50
|
+
.has-colon .el-form-item__label .com-text {
|
|
51
|
+
padding-right: 6px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 2) Element Plus 2.2.x 输入控件统一圆角(无 .el-input__wrapper)
|
|
55
|
+
.el-input > .el-input__inner,
|
|
56
|
+
.el-textarea > .el-textarea__inner,
|
|
57
|
+
.el-date-editor > .el-input__inner {
|
|
58
|
+
border-radius: 6px;
|
|
59
|
+
transition: box-shadow 0.15s ease, border-color 0.15s ease;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 3) focus 品牌色边框(兼容 EP 2.2.x DOM 与 jh-select / jh-date-picker)
|
|
63
|
+
.el-input.is-focus > .el-input__inner,
|
|
64
|
+
.el-input > .el-input__inner:focus,
|
|
65
|
+
.el-textarea.is-focus > .el-textarea__inner,
|
|
66
|
+
.el-textarea > .el-textarea__inner:focus,
|
|
67
|
+
.el-select.is-focus .el-input > .el-input__inner,
|
|
68
|
+
.el-select .el-input.is-focus > .el-input__inner,
|
|
69
|
+
.el-date-editor.is-focus > .el-input__inner,
|
|
70
|
+
.el-date-editor .el-input.is-focus > .el-input__inner {
|
|
71
|
+
border-color: var(--el-color-primary, #2254f4) !important;
|
|
72
|
+
box-shadow: 0 0 0 1px var(--el-color-primary, #2254f4) inset;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// 4) error 红色边框(兼容 EP 2.2.x DOM;
|
|
76
|
+
// error label / message 颜色由 _base-components.scss 已统一处理)
|
|
77
|
+
.el-form-item.is-error .el-input > .el-input__inner,
|
|
78
|
+
.el-form-item.is-error .el-textarea > .el-textarea__inner,
|
|
79
|
+
.el-form-item.is-error .el-date-editor > .el-input__inner {
|
|
80
|
+
border-color: var(--el-color-danger, #f56c6c) !important;
|
|
81
|
+
box-shadow: 0 0 0 1px var(--el-color-danger, #f56c6c) inset !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// 5) com-input / com-textarea / com-input-tip — jh-ui form-item wrapper
|
|
85
|
+
// 保留 jh-ui 自身 margin-bottom、has-tip 间距,不覆盖;
|
|
86
|
+
// 仅对齐内部输入控件圆角,避免在 wrapper 内 fallback 成方角。
|
|
87
|
+
.com-input > .el-input > .el-input__inner,
|
|
88
|
+
.com-input > .el-textarea > .el-textarea__inner,
|
|
89
|
+
.com-textarea > .el-textarea > .el-textarea__inner {
|
|
90
|
+
border-radius: 6px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// 6) 必填星号兼容 jh-ui label 结构
|
|
94
|
+
// Element Plus 把 `::before` 放在 `.el-form-item__label` 上,
|
|
95
|
+
// jh-ui 没改这一点;但 label 自身是 inline-flex,部分浏览器下
|
|
96
|
+
// `::before` 会作为 flex 项参与排版,必须显式声明颜色/显示。
|
|
97
|
+
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label::before,
|
|
98
|
+
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label::after,
|
|
99
|
+
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label > .com-text::before,
|
|
100
|
+
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label > .com-text::after {
|
|
101
|
+
color: var(--el-color-danger, #f56c6c) !important;
|
|
102
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
@forward './_ag-grid'; // AG Grid 完整主题
|
|
10
10
|
@forward './_custom-wrappers'; // 兜底:野路子自封装
|
|
11
11
|
@forward './_c-components'; // C_/c_ 前缀
|
|
12
|
+
@forward './_jh-ui'; // @jhlc/jh-ui SCSS 皮肤包(EP 2.2.x + .com-text label)
|
|
12
13
|
@forward './_jh-tree'; // jh-tree
|
|
13
14
|
@forward './_jh-pagination'; // jh-pagination
|
|
14
15
|
@forward './_jh-drag-col'; // jh-drag-col(含左树右表骨架)
|