@agile-team/wl-skills-ui 1.6.2 → 1.6.3
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/package.json +2 -2
- package/skills/element/el-table/SKILL.md +2 -0
- package/skills/vendors/base-table/SKILL.md +5 -0
- package/styles/element/_feedback.scss +11 -11
- package/styles/element/_table.scss +22 -4
- package/styles/vendors/_ag-grid.scss +4 -3
- package/styles/vendors/_base-query-toolbar.scss +42 -23
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.3",
|
|
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",
|
|
@@ -127,4 +127,4 @@
|
|
|
127
127
|
"eslint --fix --no-cache"
|
|
128
128
|
]
|
|
129
129
|
}
|
|
130
|
-
}
|
|
130
|
+
}
|
|
@@ -33,6 +33,8 @@ applyTo: "**/*.vue"
|
|
|
33
33
|
+ <el-table :data="list" empty-text="暂无数据">
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
修复空状态时不要猜测固定高度;应先识别当前表格的真实内容区域(含主表、子表、弹窗表格、展开行内嵌套表格),保证空态在对应表格自身区域内水平/垂直居中,空态图标、文字比例保持同一套视觉规范。若业务页面存在树筛选、组织机构、标签页等上下文,仅在能从 DOM/文案/变量中确认存在时才补充对应提示,不要硬写“左侧选择组织机构”等不一定存在的描述。
|
|
37
|
+
|
|
36
38
|
---
|
|
37
39
|
|
|
38
40
|
## R003 — BaseTable 必须 `empty-text="暂无数据"` 【中危】
|
|
@@ -37,6 +37,11 @@ applyTo: "**/*.vue"
|
|
|
37
37
|
- 操作列按钮 `type="primary"` → 改为 `link` + `is-text`
|
|
38
38
|
- 内联 hex → CSS 变量
|
|
39
39
|
|
|
40
|
+
### 空状态智能修复
|
|
41
|
+
- 主表、子表、展开行内表格都必须在各自表格区域内居中,不要用全页面或父表高度推断子表位置
|
|
42
|
+
- 保持同一套空态图标和文字比例,不要因为嵌套表格另起一套尺寸风格
|
|
43
|
+
- 文案根据实际上下文判断:只有确认存在组织树/左侧机构筛选时,才提示选择组织机构;否则使用“调整筛选条件”等通用描述
|
|
44
|
+
|
|
40
45
|
### B 类(建议人工确认)
|
|
41
46
|
- 替换为 `defineColumns(...)` 渲染(迁移到 L4 runtime,业务代码大幅精简)
|
|
42
47
|
|
|
@@ -2,8 +2,8 @@ html body .el-empty {
|
|
|
2
2
|
--el-empty-padding: 32px 0;
|
|
3
3
|
|
|
4
4
|
.el-empty__description p {
|
|
5
|
-
color: var(--el-text-color-secondary);
|
|
6
|
-
|
|
5
|
+
color: var(--el-text-color-secondary, #909399);
|
|
6
|
+
font-size: var(--el-font-size-base, 14px);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
.el-empty__bottom {
|
|
@@ -15,38 +15,38 @@ html body .el-alert {
|
|
|
15
15
|
border-radius: 8px;
|
|
16
16
|
|
|
17
17
|
.el-alert__title {
|
|
18
|
-
font-weight: var(--el-font-weight-medium);
|
|
18
|
+
font-weight: var(--el-font-weight-medium, 500);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.el-alert__description {
|
|
22
|
-
color: var(--el-text-color-regular);
|
|
22
|
+
color: var(--el-text-color-regular, #606266);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
html body .el-badge {
|
|
27
27
|
.el-badge__content {
|
|
28
|
-
border-color: var(--el-fill-color-blank);
|
|
29
|
-
|
|
28
|
+
border-color: var(--el-fill-color-blank, #ffffff);
|
|
29
|
+
box-shadow: var(--el-box-shadow, 0 0 12px rgba(0, 0, 0, 0.12));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
html body .el-result {
|
|
34
34
|
.el-result__title p {
|
|
35
|
-
color: var(--el-text-color-primary);
|
|
36
|
-
|
|
35
|
+
color: var(--el-text-color-primary, #303133);
|
|
36
|
+
font-weight: var(--el-font-weight-medium, 500);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.el-result__subtitle p {
|
|
40
|
-
color: var(--el-text-color-secondary);
|
|
40
|
+
color: var(--el-text-color-secondary, #909399);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
html body .el-timeline {
|
|
45
45
|
.el-timeline-item__timestamp {
|
|
46
|
-
color: var(--el-text-color-secondary);
|
|
46
|
+
color: var(--el-text-color-secondary, #909399);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
.el-timeline-item__content {
|
|
50
|
-
color: var(--el-text-color-regular);
|
|
50
|
+
color: var(--el-text-color-regular, #606266);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -4,10 +4,28 @@
|
|
|
4
4
|
html .el-table {
|
|
5
5
|
.el-table__header-wrapper th,
|
|
6
6
|
.el-table__fixed-header-wrapper th {
|
|
7
|
-
color: var(--el-text-color-primary);
|
|
8
|
-
background: var(--el-fill-color-lighter);
|
|
7
|
+
color: var(--el-text-color-primary, #303133);
|
|
8
|
+
background: var(--el-fill-color-lighter, #fafafa);
|
|
9
9
|
}
|
|
10
|
+
|
|
10
11
|
.el-table__header tr {
|
|
11
|
-
--el-table-tr-bg-color: var(--el-fill-color-lighter);
|
|
12
|
+
--el-table-tr-bg-color: var(--el-fill-color-lighter, #fafafa);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.el-table__empty-block {
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
width: 100% !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.el-table__empty-text {
|
|
23
|
+
width: 100%;
|
|
24
|
+
line-height: 1.5;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.el-empty {
|
|
28
|
+
width: 100%;
|
|
29
|
+
margin: 0 auto;
|
|
12
30
|
}
|
|
13
|
-
}
|
|
31
|
+
}
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
|
|
151
151
|
// ── 空数据占位 ────────────────────────────────────────────────────────────────
|
|
152
152
|
.ag-overlay-no-rows-wrapper {
|
|
153
|
+
--wk-empty-hint: '未找到匹配数据,请调整筛选条件后重试';
|
|
153
154
|
display: flex !important;
|
|
154
155
|
flex-direction: column !important;
|
|
155
156
|
align-items: center !important;
|
|
@@ -169,10 +170,10 @@
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
&::after {
|
|
172
|
-
content:
|
|
173
|
+
content: var(--wk-empty-hint);
|
|
173
174
|
display: block;
|
|
174
175
|
font-size: 12px;
|
|
175
|
-
color: #B0B7C3;
|
|
176
|
+
color: var(--el-text-color-placeholder, #B0B7C3);
|
|
176
177
|
margin-top: 6px;
|
|
177
178
|
letter-spacing: 0.01em;
|
|
178
179
|
}
|
|
@@ -181,7 +182,7 @@
|
|
|
181
182
|
.ag-overlay-no-rows-center {
|
|
182
183
|
font-size: 14px;
|
|
183
184
|
font-weight: 500;
|
|
184
|
-
color: #374151;
|
|
185
|
+
color: var(--el-text-color-primary, #374151);
|
|
185
186
|
letter-spacing: 0.02em;
|
|
186
187
|
}
|
|
187
188
|
|
|
@@ -86,14 +86,14 @@
|
|
|
86
86
|
line-height: 1 !important;
|
|
87
87
|
padding: 0 10px !important;
|
|
88
88
|
font-size: 12px !important;
|
|
89
|
-
background-color: var(--el-color-primary) !important;
|
|
90
|
-
|
|
89
|
+
background-color: var(--el-color-primary, #2254f4) !important;
|
|
90
|
+
border-color: var(--el-color-primary, #2254f4) !important;
|
|
91
91
|
color: #ffffff !important;
|
|
92
92
|
transition: background-color 0.15s, box-shadow 0.15s;
|
|
93
93
|
|
|
94
94
|
&:hover {
|
|
95
|
-
background-color: var(--el-color-primary-light-3) !important;
|
|
96
|
-
|
|
95
|
+
background-color: var(--el-color-primary-light-3, #7a98f8) !important;
|
|
96
|
+
border-color: var(--el-color-primary-light-3, #7a98f8) !important;
|
|
97
97
|
box-shadow: 0 2px 8px rgba(34, 84, 244, 0.25);
|
|
98
98
|
}
|
|
99
99
|
&:active { opacity: 0.85; }
|
|
@@ -169,13 +169,13 @@
|
|
|
169
169
|
|
|
170
170
|
// ── 主操作:填充蓝(新增/新建/申请)─────────────────────────────────
|
|
171
171
|
&.el-button--primary {
|
|
172
|
-
background-color: var(--el-color-primary) !important;
|
|
173
|
-
|
|
172
|
+
background-color: var(--el-color-primary, #2254f4) !important;
|
|
173
|
+
border-color: var(--el-color-primary, #2254f4) !important;
|
|
174
174
|
color: #ffffff !important;
|
|
175
175
|
|
|
176
176
|
&:hover {
|
|
177
|
-
background-color: var(--el-color-primary-light-3) !important;
|
|
178
|
-
|
|
177
|
+
background-color: var(--el-color-primary-light-3, #7a98f8) !important;
|
|
178
|
+
border-color: var(--el-color-primary-light-3, #7a98f8) !important;
|
|
179
179
|
box-shadow: 0 2px 8px rgba(34, 84, 244, 0.28);
|
|
180
180
|
}
|
|
181
181
|
&:active { opacity: 0.85; }
|
|
@@ -183,13 +183,13 @@
|
|
|
183
183
|
|
|
184
184
|
// ── 危险操作:填充红(删除/作废/驳回)───────────────────────────────
|
|
185
185
|
&.el-button--danger {
|
|
186
|
-
background-color: var(--el-color-danger) !important;
|
|
187
|
-
|
|
186
|
+
background-color: var(--el-color-danger, #f5222d) !important;
|
|
187
|
+
border-color: var(--el-color-danger, #f5222d) !important;
|
|
188
188
|
color: #ffffff !important;
|
|
189
189
|
|
|
190
190
|
&:hover {
|
|
191
|
-
background-color: var(--el-color-danger-light-3) !important;
|
|
192
|
-
|
|
191
|
+
background-color: var(--el-color-danger-light-3, #f56c6c) !important;
|
|
192
|
+
border-color: var(--el-color-danger-light-3, #f56c6c) !important;
|
|
193
193
|
box-shadow: 0 2px 8px rgba(187, 45, 63, 0.25);
|
|
194
194
|
}
|
|
195
195
|
&:active { opacity: 0.85; }
|
|
@@ -197,13 +197,13 @@
|
|
|
197
197
|
|
|
198
198
|
// ── 警告操作:填充橙(提醒/预警相关)───────────────────────────────
|
|
199
199
|
&.el-button--warning {
|
|
200
|
-
background-color: var(--el-color-warning) !important;
|
|
201
|
-
|
|
200
|
+
background-color: var(--el-color-warning, #faad14) !important;
|
|
201
|
+
border-color: var(--el-color-warning, #faad14) !important;
|
|
202
202
|
color: #ffffff !important;
|
|
203
203
|
|
|
204
204
|
&:hover {
|
|
205
|
-
background-color: var(--el-color-warning-light-3) !important;
|
|
206
|
-
|
|
205
|
+
background-color: var(--el-color-warning-light-3, #ffd666) !important;
|
|
206
|
+
border-color: var(--el-color-warning-light-3, #ffd666) !important;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
|
|
@@ -222,16 +222,35 @@
|
|
|
222
222
|
|
|
223
223
|
// ── 成功操作:填充绿(审批通过/启用)────────────────────────────────
|
|
224
224
|
&.el-button--success {
|
|
225
|
-
background-color: var(--el-color-success) !important;
|
|
226
|
-
|
|
225
|
+
background-color: var(--el-color-success, #2bb268) !important;
|
|
226
|
+
border-color: var(--el-color-success, #2bb268) !important;
|
|
227
227
|
color: #ffffff !important;
|
|
228
228
|
|
|
229
229
|
&:hover {
|
|
230
|
-
background-color: var(--el-color-success-light-3) !important;
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
230
|
+
background-color: var(--el-color-success-light-3, #80d0a4) !important;
|
|
231
|
+
border-color: var(--el-color-success-light-3, #80d0a4) !important;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
.base-query-box .el-button.is-disabled,
|
|
237
|
+
.base-query-box .el-button.is-disabled:hover,
|
|
238
|
+
.base-query-box .el-button.is-disabled:focus,
|
|
239
|
+
.base-query-box .el-button.is-disabled:active,
|
|
240
|
+
.base-toolbar-box .el-button.is-disabled,
|
|
241
|
+
.base-toolbar-box .el-button.is-disabled:hover,
|
|
242
|
+
.base-toolbar-box .el-button.is-disabled:focus,
|
|
243
|
+
.base-toolbar-box .el-button.is-disabled:active,
|
|
244
|
+
.base-toolbar-box .el-button[disabled],
|
|
245
|
+
.base-toolbar-box .el-button[disabled]:hover,
|
|
246
|
+
.base-toolbar-box .el-button[disabled]:focus,
|
|
247
|
+
.base-toolbar-box .el-button[disabled]:active {
|
|
248
|
+
color: var(--el-disabled-text-color, #a8abb2) !important;
|
|
249
|
+
background-color: var(--el-disabled-bg-color, #f5f7fa) !important;
|
|
250
|
+
border-color: var(--el-border-color-light, #e4e7ed) !important;
|
|
251
|
+
box-shadow: none !important;
|
|
252
|
+
opacity: 1 !important;
|
|
253
|
+
cursor: not-allowed !important;
|
|
235
254
|
}
|
|
236
255
|
|
|
237
256
|
// ── 下拉菜单按钮(工具栏内的 el-dropdown 触发器)────────────────────────────
|