@agile-team/wl-skills-ui 1.9.14 → 1.9.16

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,28 @@ 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.16] - 2026-08-11
8
+
9
+ ### Fixed
10
+
11
+ - 修复 `action-dropdown-menu` 内直属 primary 按钮被全局品牌按钮锁重新刷成深色背景、同时继承菜单深色文字的问题;仅提升该复合菜单结构的特异性,普通主按钮与普通下拉菜单不受影响。
12
+ - 分页页码改为按 `.el-pager > li` 统一 12px/400 和等宽数字特性,不再依赖不同 Element/jh-ui 版本中不稳定的 `.number` 类,当前页继续仅以品牌色背景区分。
13
+
14
+ ## [1.9.15] - 2026-08-10
15
+
16
+ ### Added
17
+
18
+ - 新增 `normalizeColumnAlignment(s)` 运行时能力,把业务显式声明的 `align/headerAlign` 桥接为 BaseTable/AG Grid 可消费的 `cellStyle/headerClass`,并递归覆盖分组列。
19
+ - 新增行为与样式契约测试,覆盖无声明不接管、左右/居中对齐、分组列以及业务自定义样式优先级。
20
+
21
+ ### Fixed
22
+
23
+ - 修复部分平台 AG Grid 适配器忽略列定义 `align/headerAlign`,导致业务明确要求居中或右对齐却仍按默认布局展示的问题。
24
+
25
+ ### Changed
26
+
27
+ - `defineColumns()` 自动应用显式对齐桥接;未声明对齐的普通列保持原状,已有 `cellStyle/headerClass` 不覆盖,不引入全局居中规则。
28
+
7
29
  ## [1.9.14] - 2026-08-10
8
30
 
9
31
  ### Added
package/README.md CHANGED
@@ -213,7 +213,7 @@ yarn add @agile-team/wl-skills-ui
213
213
  |---|---|---|
214
214
  | `element-plus` | **`2.2.6-prod.3`** | 集团 jh- 定制版;EP 2.3.0 起引入 `.el-input__wrapper`,与 jh-ui 3.x 不兼容 |
215
215
  | `@jhlc/jh-ui` | **`3.1.0`** | SCSS 皮肤包,`.com-text` label 包裹 + `.has-colon` 冒号注入(wl-skills-ui 已统一屏蔽表单冒号) |
216
- | `@agile-team/wl-skills-ui` | `^1.9.14` | 已对齐上述组合的 DOM 假设、客户主题锁、圆角契约、复合数字框、跨浏览器字体、AG Grid 原生对齐与定制页边界 |
216
+ | `@agile-team/wl-skills-ui` | `^1.9.16` | 已对齐上述组合的 DOM 假设、客户主题锁、圆角契约、复合数字框、动作下拉、分页数字、显式列对齐与定制页边界 |
217
217
 
218
218
  三种识别方式,任选其一:
219
219
 
@@ -227,7 +227,21 @@ yarn add @agile-team/wl-skills-ui
227
227
 
228
228
  ## 版本亮点
229
229
 
230
- 当前 v1.9.14:
230
+ 当前 v1.9.16:
231
+
232
+ - **动作下拉不再深底深字**:仅对 `action-dropdown-menu` 内直属 primary 按钮补足覆盖权重,菜单动作保持扁平白底/悬停浅品牌色;普通主按钮和普通下拉菜单维持原样。
233
+ - **分页页码数字一致**:所有 `.el-pager > li` 统一 12px、常规字重与等宽数字特性,兼容有无 `.number` 类的 Element/jh-ui DOM,当前页使用品牌色背景而不再靠加粗放大。
234
+ - **真实浏览器门禁**:视觉夹具同时包含上述复合下拉与分页结构,检查透明背景、无额外边框/阴影、页码计算字号和字重,并纳入 Edge/Chrome 全量回归。
235
+
236
+ 上一版 v1.9.15:
237
+
238
+ - **显式列对齐跨表格生效**:`defineColumns()` 会把业务明确声明的 `align/headerAlign`
239
+ 桥接为 BaseTable/AG Grid 能稳定消费的 `cellStyle/headerClass`,Element Table 继续读取原属性;
240
+ 无声明时不设置默认对齐,已有业务样式不覆盖,分组列递归处理。
241
+ - **零布局污染边界**:包只修复“显式意图未被平台适配器消费”,不把普通列全局居中,
242
+ 不接管选择列、语义渲染或业务自定义 `cellStyle/headerClass`。
243
+
244
+ 上一版 v1.9.14:
231
245
 
232
246
  - **Edge/Chrome 字体收敛**:受管 Element、BaseTable 与 AG Grid 统一使用覆盖中英文数字的
233
247
  `--wk-font-family-sans`,AG 表头/正文使用整数 13px;不改写 `body/*`,登录页、大屏、
@@ -714,7 +728,8 @@ export const myRules = [
714
728
 
715
729
  | API | 说明 |
716
730
  | ------------------------------------------------ | -------------------------------------------------- |
717
- | `defineColumns(cols)` | 列定义,自动应用 `COLUMN_AUTO_MAP` |
731
+ | `defineColumns(cols)` | 列定义,应用自动映射并桥接显式列对齐 |
732
+ | `normalizeColumnAlignments(cols)` | 仅桥接显式 `align/headerAlign`,不设置默认对齐 |
718
733
  | `renderOps(items)` | 操作列图标按钮组(view/edit/del/log/ok/send 预设) |
719
734
  | `renderTagNode(v, map)` | 状态 Tag 渲染 |
720
735
  | `renderClassifyTag(v, map)` | 分类 Tag 渲染 |
@@ -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.14` | 已对齐 jh-ui 3.1.0 + EP 2.2.6-prod.3 的 DOM 假设、客户主题锁、6px 基础圆角、紧凑表单、复合数字框、跨浏览器字体、AG Grid 原生对齐与定制页边界 |
14
+ | `@agile-team/wl-skills-ui` | `^1.9.16` | 已对齐 jh-ui 3.1.0 + EP 2.2.6-prod.3 的 DOM 假设、客户主题锁、6px 基础圆角、紧凑表单、复合数字框、动作下拉、分页数字、显式列对齐与定制页边界 |
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.14 三方对齐。
38
+ - 集团内项目:**统一锚定 `element-plus@2.2.6-prod.3` + `@jhlc/jh-ui@3.1.0`**,与 wl-skills-ui v1.9.16 三方对齐。
39
39
  - Skin 项目除全局样式外,在 `main.ts` 引入一次 `@agile-team/wl-skills-ui/runtime/auto`;Native 项目的 `installCommonPreset()` 已包含相同包级保护,不要重复安装。
40
40
  - 升级 `element-plus` 到 2.3+ 前,必须同步升级 `@jhlc/jh-ui` 到对应支持版本,否则 `.com-text` / `.el-input__inner` DOM 与 EP `__wrapper` 体系不兼容。
41
41
  - 新项目接入:见 README 「快速接入」章节,默认会按本表声明 peerDependency 范围。
@@ -40,7 +40,7 @@ wrapper 时,应先按上述流程确认,不能直接扩大全局 Element 选
40
40
  `.com-inputNumber-content.el-input-number.el-input__wrapper` 复合根:外层统一 26px
41
41
  高度与唯一状态边框,内部 wrapper 无重复描边,并保留 `textAlign`、`controls`、单位与
42
42
  后缀等组件原生语义。
43
- - BaseToolbar 分裂按钮及其动作菜单 Teleport 出口。
43
+ - BaseToolbar 分裂按钮及其动作菜单 Teleport 出口;`action-dropdown-menu` 内直属按钮由菜单项负责背景和文字状态,嵌套 primary 按钮不得重新绘制品牌色块。
44
44
  - Element Plus 新旧两种 input-group prepend/append DOM:组合根负责唯一外轮廓,
45
45
  输入主体与附加段统一 26px,纯图标附加段 32px、图标 14px。
46
46
  - common-core `jh-drag-row + BaseTable/AG Grid` 高度链:只在真实分屏 AG Grid 中
@@ -2,7 +2,33 @@ import { h } from 'vue';
2
2
  import { ElTag } from 'element-plus';
3
3
  import { Upload, CircleCheck, Document, Delete, Edit, View } from '@element-plus/icons-vue';
4
4
 
5
- // runtime/core/renderers.ts
5
+ // runtime/core/alignment.ts
6
+ var HEADER_ALIGNMENT_CLASS = {
7
+ left: "wl-ui-table-header-align--left",
8
+ center: "wl-ui-table-header-align--center",
9
+ right: "wl-ui-table-header-align--right"
10
+ };
11
+ function isColumnAlignment(value) {
12
+ return value === "left" || value === "center" || value === "right";
13
+ }
14
+ function normalizeColumnAlignment(column) {
15
+ const normalizedChildren = Array.isArray(column.children) ? normalizeColumnAlignments(column.children) : column.children;
16
+ const align = isColumnAlignment(column.align) ? column.align : void 0;
17
+ const headerAlign = isColumnAlignment(column.headerAlign) ? column.headerAlign : align;
18
+ const needsChildren = normalizedChildren !== column.children;
19
+ const needsCellStyle = Boolean(align) && column.cellStyle === void 0;
20
+ const needsHeaderClass = Boolean(headerAlign) && column.headerClass === void 0;
21
+ if (!needsChildren && !needsCellStyle && !needsHeaderClass) return column;
22
+ return {
23
+ ...column,
24
+ ...needsChildren ? { children: normalizedChildren } : {},
25
+ ...needsCellStyle ? { cellStyle: { textAlign: align } } : {},
26
+ ...needsHeaderClass ? { headerClass: HEADER_ALIGNMENT_CLASS[headerAlign] } : {}
27
+ };
28
+ }
29
+ function normalizeColumnAlignments(columns) {
30
+ return columns.map((column) => normalizeColumnAlignment(column));
31
+ }
6
32
  var ENABLE_STATUS_MAP = {
7
33
  0: { label: "\u505C\u7528", type: "danger" },
8
34
  1: { label: "\u542F\u7528", type: "success" }
@@ -286,18 +312,20 @@ function defineColumns(columns) {
286
312
  const fieldName = normalized.name ?? normalized.label ?? "";
287
313
  const preset = COLUMN_AUTO_MAP[fieldName];
288
314
  const hasRenderer = normalized.defaultNode !== void 0 || normalized.defaultSlot !== void 0;
289
- if (hasRenderer) return normalized;
315
+ if (hasRenderer) return normalizeColumnAlignment(normalized);
290
316
  if (!preset && isDictColumn(normalized)) {
291
- return {
317
+ return normalizeColumnAlignment({
292
318
  ...normalized,
293
319
  defaultSlot: ({ row }) => renderDictClassifyTag(
294
320
  row?.[fieldName],
295
321
  String(normalized.logicValue)
296
322
  )
297
- };
323
+ });
298
324
  }
299
- if (!preset) return withOverflowTooltip(normalized);
300
- return withOverflowTooltip({ ...preset, ...normalized });
325
+ if (!preset) return normalizeColumnAlignment(withOverflowTooltip(normalized));
326
+ return normalizeColumnAlignment(
327
+ withOverflowTooltip({ ...preset, ...normalized })
328
+ );
301
329
  });
302
330
  }
303
331
  function isDictColumn(col) {
@@ -328,4 +356,4 @@ registerColumnAutoMaps({
328
356
  }
329
357
  });
330
358
 
331
- export { AUDIT_STATUS_MAP, ENABLE_STATUS_MAP, RATING_LEVEL_COLORS, VERIFY_STATUS_MAP, clearColumnAutoMap, defineColumns, getColumnAutoMap, registerColumnAutoMap, registerColumnAutoMaps, registerDictColorMap, registerDictColorMaps, renderAuditStatus, renderBadge, renderClassifyTag, renderCountBadge, renderDangerText, renderDictClassifyTag, renderEnableStatus, renderOps, renderRatingLevel, renderTagNode, renderTagSlot, renderVerifyStatus, setDictResolver };
359
+ export { AUDIT_STATUS_MAP, ENABLE_STATUS_MAP, RATING_LEVEL_COLORS, VERIFY_STATUS_MAP, clearColumnAutoMap, defineColumns, getColumnAutoMap, normalizeColumnAlignment, normalizeColumnAlignments, registerColumnAutoMap, registerColumnAutoMaps, registerDictColorMap, registerDictColorMaps, renderAuditStatus, renderBadge, renderClassifyTag, renderCountBadge, renderDangerText, renderDictClassifyTag, renderEnableStatus, renderOps, renderRatingLevel, renderTagNode, renderTagSlot, renderVerifyStatus, setDictResolver };
@@ -1,7 +1,7 @@
1
1
  import * as vue from 'vue';
2
2
  import { VNode } from 'vue';
3
- import { T as TagMapItem, J as JhTagNode } from './types-Dnh4U0hw.js';
4
- export { r as registerDictColorMap, a as registerDictColorMaps, b as renderDictClassifyTag, s as setDictResolver } from './renderers-B3uUAze8.js';
3
+ import { T as TagMapItem, J as JhTagNode } from './types-DtmxwMWV.js';
4
+ export { r as registerDictColorMap, a as registerDictColorMaps, b as renderDictClassifyTag, s as setDictResolver } from './renderers-DlFRBX9K.js';
5
5
 
6
6
  declare const RISK_LEVEL_MAP: Record<string | number, TagMapItem>;
7
7
  declare const renderRiskLevel: (v: string | number | null | undefined) => JhTagNode | null;
@@ -1,6 +1,6 @@
1
1
  import { installUiRuntimeGuards } from './chunk-QLPJLXY6.js';
2
- import { renderTagNode, renderClassifyTag, registerColumnAutoMaps, renderRatingLevel, renderBadge } from './chunk-4IOYRBW4.js';
3
- export { registerDictColorMap, registerDictColorMaps, renderDictClassifyTag, setDictResolver } from './chunk-4IOYRBW4.js';
2
+ import { renderTagNode, renderClassifyTag, registerColumnAutoMaps, renderRatingLevel, renderBadge } from './chunk-53TF2NQQ.js';
3
+ export { registerDictColorMap, registerDictColorMaps, renderDictClassifyTag, setDictResolver } from './chunk-53TF2NQQ.js';
4
4
  import './chunk-Q3N5QNRZ.js';
5
5
 
6
6
  // runtime/presets/common.ts
package/es/index.d.ts CHANGED
@@ -1,8 +1,21 @@
1
- import { C as ColumnLike } from './types-Dnh4U0hw.js';
2
- export { E as ElTagType, J as JhTagNode, a as OpChip, O as OpItem, b as OpLink, c as OpPreset, T as TagMapItem } from './types-Dnh4U0hw.js';
3
- export { A as AUDIT_STATUS_MAP, E as ENABLE_STATUS_MAP, R as RATING_LEVEL_COLORS, V as VERIFY_STATUS_MAP, r as registerDictColorMap, a as registerDictColorMaps, c as renderAuditStatus, d as renderBadge, e as renderClassifyTag, f as renderCountBadge, g as renderDangerText, b as renderDictClassifyTag, h as renderEnableStatus, i as renderOps, j as renderRatingLevel, k as renderTagNode, l as renderTagSlot, m as renderVerifyStatus, s as setDictResolver } from './renderers-B3uUAze8.js';
1
+ import { C as ColumnLike } from './types-DtmxwMWV.js';
2
+ export { E as ElTagType, J as JhTagNode, a as OpChip, O as OpItem, b as OpLink, c as OpPreset, T as TagMapItem } from './types-DtmxwMWV.js';
3
+ export { A as AUDIT_STATUS_MAP, E as ENABLE_STATUS_MAP, R as RATING_LEVEL_COLORS, V as VERIFY_STATUS_MAP, r as registerDictColorMap, a as registerDictColorMaps, c as renderAuditStatus, d as renderBadge, e as renderClassifyTag, f as renderCountBadge, g as renderDangerText, b as renderDictClassifyTag, h as renderEnableStatus, i as renderOps, j as renderRatingLevel, k as renderTagNode, l as renderTagSlot, m as renderVerifyStatus, s as setDictResolver } from './renderers-DlFRBX9K.js';
4
4
  import 'vue';
5
5
 
6
+ type ColumnAlignment = "left" | "center" | "right";
7
+ /**
8
+ * 将业务显式声明的 align/headerAlign 转换为 BaseTable/AG Grid 能稳定消费的配置。
9
+ *
10
+ * - 没有显式对齐声明时原样返回,不改变项目默认布局;
11
+ * - 已有 cellStyle/headerClass 时尊重业务配置,不覆盖;
12
+ * - 递归处理分组列 children;
13
+ * - Element Table 仍直接消费原有 align/headerAlign。
14
+ */
15
+ declare function normalizeColumnAlignment<T extends ColumnLike>(column: T): T;
16
+ /** 批量规范化列定义;只桥接显式对齐意图,不设置全局默认对齐。 */
17
+ declare function normalizeColumnAlignments<T extends ColumnLike>(columns: T[]): T[];
18
+
6
19
  /**
7
20
  * runtime/core/registry.ts — COLUMN_AUTO_MAP 注册中心 + defineColumns
8
21
  *
@@ -196,4 +209,4 @@ declare function uninstallSplitGridResizeGuard(): void;
196
209
  */
197
210
  declare function installUiRuntimeGuards(): void;
198
211
 
199
- export { BRAND_THEME_TOKENS, ColumnLike, type OverflowTooltipGuardOptions, type PresetConfig, SPLIT_GRID_RESIZE_EVENT, type SplitGridResizeDetail, clearColumnAutoMap, createPreset, defineColumns, getColumnAutoMap, getInstalledPresets, installBrandThemeLock, installOverflowTooltipGuard, installPreset, installSplitGridResizeGuard, installUiRuntimeGuards, registerColumnAutoMap, registerColumnAutoMaps, uninstallOverflowTooltipGuard, uninstallSplitGridResizeGuard };
212
+ export { BRAND_THEME_TOKENS, type ColumnAlignment, ColumnLike, type OverflowTooltipGuardOptions, type PresetConfig, SPLIT_GRID_RESIZE_EVENT, type SplitGridResizeDetail, clearColumnAutoMap, createPreset, defineColumns, getColumnAutoMap, getInstalledPresets, installBrandThemeLock, installOverflowTooltipGuard, installPreset, installSplitGridResizeGuard, installUiRuntimeGuards, normalizeColumnAlignment, normalizeColumnAlignments, registerColumnAutoMap, registerColumnAutoMaps, uninstallOverflowTooltipGuard, uninstallSplitGridResizeGuard };
package/es/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { SPLIT_GRID_RESIZE_EVENT, installOverflowTooltipGuard, installSplitGridResizeGuard, installUiRuntimeGuards, uninstallOverflowTooltipGuard, uninstallSplitGridResizeGuard } from './chunk-QLPJLXY6.js';
2
- import { registerColumnAutoMaps } from './chunk-4IOYRBW4.js';
3
- export { AUDIT_STATUS_MAP, ENABLE_STATUS_MAP, RATING_LEVEL_COLORS, VERIFY_STATUS_MAP, clearColumnAutoMap, defineColumns, getColumnAutoMap, registerColumnAutoMap, registerColumnAutoMaps, registerDictColorMap, registerDictColorMaps, renderAuditStatus, renderBadge, renderClassifyTag, renderCountBadge, renderDangerText, renderDictClassifyTag, renderEnableStatus, renderOps, renderRatingLevel, renderTagNode, renderTagSlot, renderVerifyStatus, setDictResolver } from './chunk-4IOYRBW4.js';
2
+ import { registerColumnAutoMaps } from './chunk-53TF2NQQ.js';
3
+ export { AUDIT_STATUS_MAP, ENABLE_STATUS_MAP, RATING_LEVEL_COLORS, VERIFY_STATUS_MAP, clearColumnAutoMap, defineColumns, getColumnAutoMap, normalizeColumnAlignment, normalizeColumnAlignments, registerColumnAutoMap, registerColumnAutoMaps, registerDictColorMap, registerDictColorMaps, renderAuditStatus, renderBadge, renderClassifyTag, renderCountBadge, renderDangerText, renderDictClassifyTag, renderEnableStatus, renderOps, renderRatingLevel, renderTagNode, renderTagSlot, renderVerifyStatus, setDictResolver } from './chunk-53TF2NQQ.js';
4
4
  export { BRAND_THEME_TOKENS, installBrandThemeLock } from './chunk-Q3N5QNRZ.js';
5
5
 
6
6
  // runtime/presets/registry.ts
@@ -1,4 +1,4 @@
1
- import { T as TagMapItem, J as JhTagNode } from '../types-Dnh4U0hw.js';
1
+ import { T as TagMapItem, J as JhTagNode } from '../types-DtmxwMWV.js';
2
2
  import 'vue';
3
3
 
4
4
  declare const VIOLATION_STATUS_MAP: Record<string | number, TagMapItem>;
@@ -1,4 +1,4 @@
1
- import { renderTagNode, registerDictColorMaps, registerColumnAutoMaps } from '../chunk-4IOYRBW4.js';
1
+ import { renderTagNode, registerDictColorMaps, registerColumnAutoMaps } from '../chunk-53TF2NQQ.js';
2
2
  import { installBrandThemeLock } from '../chunk-Q3N5QNRZ.js';
3
3
 
4
4
  // runtime/presets/security.ts
@@ -1,5 +1,5 @@
1
1
  import { VNode } from 'vue';
2
- import { T as TagMapItem, J as JhTagNode, O as OpItem } from './types-Dnh4U0hw.js';
2
+ import { T as TagMapItem, J as JhTagNode, O as OpItem } from './types-DtmxwMWV.js';
3
3
 
4
4
  /**
5
5
  * runtime/core/renderers.ts — 通用渲染器 + 通用状态映射
@@ -27,6 +27,11 @@ interface ColumnLike {
27
27
  width?: number | string;
28
28
  fixed?: string | boolean;
29
29
  type?: string;
30
+ align?: "left" | "center" | "right";
31
+ headerAlign?: "left" | "center" | "right";
32
+ cellStyle?: Record<string, unknown> | ((params: any) => Record<string, unknown>);
33
+ headerClass?: string | string[] | ((params: any) => string | string[]);
34
+ children?: ColumnLike[];
30
35
  defaultNode?: (ctx: {
31
36
  row: any;
32
37
  }) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/wl-skills-ui",
3
- "version": "1.9.14",
3
+ "version": "1.9.16",
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",
@@ -90,6 +90,8 @@ R011 [error] el-pagination 位于 #footer 插槽中 — 请移至内容区域
90
90
 
91
91
  ## 分页常用配置
92
92
 
93
+ 页码视觉由包统一治理:`.el-pager > li`(含不同版本下有无 `.number` 类)均使用 12px 常规字重和等宽数字,当前页以品牌色背景区分,不通过放大或加粗造成相邻数字视觉尺寸不一致。业务项目无需补充分页字号样式。
94
+
93
95
  ```vue
94
96
  <!-- 标准小型分页(弹窗内) -->
95
97
  <el-pagination
@@ -13,4 +13,13 @@ html body .el-pagination {
13
13
  .el-pager li.is-active {
14
14
  border-color: var(--el-color-primary) !important;
15
15
  }
16
+
17
+ // Element/jh-ui 不同版本可能只给部分页码保留 .number;按 pager 直属 li
18
+ // 统一字号和字重,避免当前页因粗体看起来明显大于相邻页码。
19
+ .el-pager > li {
20
+ font-size: var(--el-pagination-button-font-size, 12px) !important;
21
+ font-weight: 400 !important;
22
+ font-variant-numeric: tabular-nums;
23
+ font-feature-settings: "tnum" 1;
24
+ }
16
25
  }
@@ -94,6 +94,20 @@
94
94
  width: 100%;
95
95
  }
96
96
 
97
+ // 仅响应列定义显式声明的 headerAlign/align;不设置全局默认对齐。
98
+ // runtime/defineColumns 会把该意图桥接为下列类,兼容平台 BaseTable 的 AG Grid 适配层。
99
+ .ag-header-cell.wl-ui-table-header-align--left .ag-header-cell-label {
100
+ justify-content: flex-start;
101
+ }
102
+
103
+ .ag-header-cell.wl-ui-table-header-align--center .ag-header-cell-label {
104
+ justify-content: center;
105
+ }
106
+
107
+ .ag-header-cell.wl-ui-table-header-align--right .ag-header-cell-label {
108
+ justify-content: flex-end;
109
+ }
110
+
97
111
  .ag-header-cell-text {
98
112
  font-size: 13px;
99
113
  font-weight: 600;
@@ -470,6 +470,19 @@ html
470
470
  transform: none !important;
471
471
  }
472
472
 
473
+ // 主色 jh-button 会同时命中全局品牌按钮锁;该锁为保护普通主按钮带有更高特异性。
474
+ // 这里只抬高已知 action-dropdown-menu 直属 primary 按钮的权重,确保它仍按菜单项扁平化。
475
+ html
476
+ body
477
+ .el-dropdown-menu.action-dropdown-menu
478
+ .el-dropdown-menu__item
479
+ > .el-button.el-button--primary:not(.is-link):not(.is-text):not(.is-plain) {
480
+ color: inherit !important;
481
+ border-color: transparent !important;
482
+ background-color: transparent !important;
483
+ box-shadow: none !important;
484
+ }
485
+
473
486
  html
474
487
  body
475
488
  .el-dropdown-menu.action-dropdown-menu
@@ -7,9 +7,10 @@
7
7
  gap: 2px;
8
8
 
9
9
  // 页码按钮
10
- .el-pager .number {
10
+ .el-pager > li {
11
11
  border-radius: var(--el-border-radius-small) !important;
12
- font-size: 12px;
12
+ font-size: 12px !important;
13
+ font-weight: 400 !important;
13
14
  min-width: 26px;
14
15
  height: 26px;
15
16
  line-height: 26px;
@@ -25,7 +26,7 @@
25
26
  background-color: var(--el-color-primary) !important;
26
27
  color: #ffffff !important;
27
28
  border-radius: var(--el-border-radius-small) !important;
28
- font-weight: 600;
29
+ font-weight: 400 !important;
29
30
  }
30
31
  }
31
32