persagy-vant 0.0.35 → 0.0.37

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.
Files changed (160) hide show
  1. package/es/cell/Cell.d.ts +9 -0
  2. package/es/cell/Cell.mjs +15 -3
  3. package/es/cell/index.css +1 -1
  4. package/es/cell/index.d.ts +5 -0
  5. package/es/cell/index.less +24 -2
  6. package/es/cell/var.less +6 -0
  7. package/es/cell-group/CellGroup.d.ts +4 -0
  8. package/es/cell-group/CellGroup.mjs +4 -2
  9. package/es/cell-group/index.css +1 -1
  10. package/es/cell-group/index.d.ts +3 -0
  11. package/es/cell-group/index.less +27 -0
  12. package/es/cell-group/var.less +3 -0
  13. package/es/collapse-item/CollapseItem.d.ts +7 -0
  14. package/es/collapse-item/index.d.ts +5 -0
  15. package/es/field/Field.d.ts +7 -0
  16. package/es/field/index.d.ts +5 -0
  17. package/es/index.d.ts +1 -1
  18. package/es/index.mjs +1 -1
  19. package/es/label/Label.d.ts +11 -1
  20. package/es/label/Label.mjs +34 -3
  21. package/es/label/index.css +1 -1
  22. package/es/label/index.d.ts +6 -2
  23. package/es/label/index.less +22 -0
  24. package/es/label/var.less +1 -0
  25. package/es/loading/index.css +1 -1
  26. package/es/loading/index.less +1 -1
  27. package/es/material-action-bar/MaterialActionBar.d.ts +15 -0
  28. package/es/material-action-bar/MaterialActionBar.mjs +107 -58
  29. package/es/material-action-bar/index.css +1 -1
  30. package/es/material-action-bar/index.d.ts +76 -2
  31. package/es/material-action-bar/index.less +6 -2
  32. package/es/material-action-bar/index.mjs +4 -2
  33. package/es/material-action-bar/style/index.mjs +1 -0
  34. package/es/material-action-bar/style/less.mjs +1 -0
  35. package/es/material-add/index.css +1 -1
  36. package/es/material-add/style/index.mjs +1 -0
  37. package/es/material-add/style/less.mjs +1 -0
  38. package/es/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  39. package/es/material-display-bar/MaterialDisplayBar.mjs +4 -3
  40. package/es/material-display-bar/index.css +1 -1
  41. package/es/material-display-bar/index.d.ts +105 -4
  42. package/es/material-display-bar/index.mjs +5 -3
  43. package/es/material-display-bar/var.less +1 -1
  44. package/es/object-select/ObjectSelect.mjs +13 -1
  45. package/es/style/base.css +1 -1
  46. package/es/style/base.less +5 -0
  47. package/es/style/css-variables.css +1 -1
  48. package/es/style/css-variables.less +1 -0
  49. package/es/style/var.less +1 -0
  50. package/es/tag/Tag.d.ts +15 -2
  51. package/es/tag/Tag.mjs +20 -3
  52. package/es/tag/index.css +1 -1
  53. package/es/tag/index.d.ts +9 -0
  54. package/es/tag/index.less +45 -1
  55. package/es/tag/var.less +13 -0
  56. package/es/title-bar/TitleBar.d.ts +34 -12
  57. package/es/title-bar/TitleBar.mjs +42 -10
  58. package/es/title-bar/index.css +1 -1
  59. package/es/title-bar/index.d.ts +18 -2
  60. package/es/title-bar/index.less +15 -2
  61. package/es/title-bar/style/index.mjs +2 -0
  62. package/es/title-bar/style/less.mjs +2 -0
  63. package/es/title-bar/var.less +6 -0
  64. package/es/uploader/Uploader.d.ts +7 -0
  65. package/es/uploader/Uploader.mjs +55 -30
  66. package/es/uploader/UploaderPreviewItem.d.ts +2 -1
  67. package/es/uploader/UploaderPreviewItem.mjs +13 -6
  68. package/es/uploader/index.css +1 -1
  69. package/es/uploader/index.d.ts +5 -0
  70. package/es/uploader/index.less +30 -0
  71. package/es/uploader/types.d.ts +1 -0
  72. package/es/uploader/utils.d.ts +2 -0
  73. package/es/uploader/utils.mjs +74 -0
  74. package/es/uploader/var.less +5 -0
  75. package/lib/cell/Cell.d.ts +9 -0
  76. package/lib/cell/Cell.js +15 -3
  77. package/lib/cell/index.css +1 -1
  78. package/lib/cell/index.d.ts +5 -0
  79. package/lib/cell/index.less +24 -2
  80. package/lib/cell/var.less +6 -0
  81. package/lib/cell-group/CellGroup.d.ts +4 -0
  82. package/lib/cell-group/CellGroup.js +4 -2
  83. package/lib/cell-group/index.css +1 -1
  84. package/lib/cell-group/index.d.ts +3 -0
  85. package/lib/cell-group/index.less +27 -0
  86. package/lib/cell-group/var.less +3 -0
  87. package/lib/collapse-item/CollapseItem.d.ts +7 -0
  88. package/lib/collapse-item/index.d.ts +5 -0
  89. package/lib/field/Field.d.ts +7 -0
  90. package/lib/field/index.d.ts +5 -0
  91. package/lib/index.css +1 -1
  92. package/lib/index.d.ts +1 -1
  93. package/lib/index.js +1 -1
  94. package/lib/index.less +1 -1
  95. package/lib/label/Label.d.ts +11 -1
  96. package/lib/label/Label.js +34 -3
  97. package/lib/label/index.css +1 -1
  98. package/lib/label/index.d.ts +6 -2
  99. package/lib/label/index.less +22 -0
  100. package/lib/label/var.less +1 -0
  101. package/lib/loading/index.css +1 -1
  102. package/lib/loading/index.less +1 -1
  103. package/lib/material-action-bar/MaterialActionBar.d.ts +15 -0
  104. package/lib/material-action-bar/MaterialActionBar.js +106 -57
  105. package/lib/material-action-bar/index.css +1 -1
  106. package/lib/material-action-bar/index.d.ts +76 -2
  107. package/lib/material-action-bar/index.js +4 -2
  108. package/lib/material-action-bar/index.less +6 -2
  109. package/lib/material-action-bar/style/index.js +1 -0
  110. package/lib/material-action-bar/style/less.js +1 -0
  111. package/lib/material-add/index.css +1 -1
  112. package/lib/material-add/style/index.js +1 -0
  113. package/lib/material-add/style/less.js +1 -0
  114. package/lib/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  115. package/lib/material-display-bar/MaterialDisplayBar.js +4 -3
  116. package/lib/material-display-bar/index.css +1 -1
  117. package/lib/material-display-bar/index.d.ts +105 -4
  118. package/lib/material-display-bar/index.js +5 -3
  119. package/lib/material-display-bar/var.less +1 -1
  120. package/lib/object-select/ObjectSelect.js +13 -1
  121. package/lib/style/base.css +1 -1
  122. package/lib/style/base.less +5 -0
  123. package/lib/style/css-variables.css +1 -1
  124. package/lib/style/css-variables.less +1 -0
  125. package/lib/style/var.less +1 -0
  126. package/lib/tag/Tag.d.ts +15 -2
  127. package/lib/tag/Tag.js +20 -3
  128. package/lib/tag/index.css +1 -1
  129. package/lib/tag/index.d.ts +9 -0
  130. package/lib/tag/index.less +45 -1
  131. package/lib/tag/var.less +13 -0
  132. package/lib/title-bar/TitleBar.d.ts +34 -12
  133. package/lib/title-bar/TitleBar.js +42 -10
  134. package/lib/title-bar/index.css +1 -1
  135. package/lib/title-bar/index.d.ts +18 -2
  136. package/lib/title-bar/index.less +15 -2
  137. package/lib/title-bar/style/index.js +2 -0
  138. package/lib/title-bar/style/less.js +2 -0
  139. package/lib/title-bar/var.less +6 -0
  140. package/lib/uploader/Uploader.d.ts +7 -0
  141. package/lib/uploader/Uploader.js +53 -28
  142. package/lib/uploader/UploaderPreviewItem.d.ts +2 -1
  143. package/lib/uploader/UploaderPreviewItem.js +12 -5
  144. package/lib/uploader/index.css +1 -1
  145. package/lib/uploader/index.d.ts +5 -0
  146. package/lib/uploader/index.less +30 -0
  147. package/lib/uploader/types.d.ts +1 -0
  148. package/lib/uploader/utils.d.ts +2 -0
  149. package/lib/uploader/utils.js +74 -0
  150. package/lib/uploader/var.less +5 -0
  151. package/lib/vant.cjs.js +382 -120
  152. package/lib/vant.es.js +382 -120
  153. package/lib/vant.js +382 -120
  154. package/lib/vant.min.js +1 -1
  155. package/lib/web-types.json +1 -1
  156. package/package.json +1 -1
  157. package/skills/use-persagy-vant/SKILL.md +4 -3
  158. package/skills/use-persagy-vant/references/component-documentation.md +4 -4
  159. package/skills/use-persagy-vant/references/component-variant-selection.md +53 -0
  160. package/skills/use-persagy-vant/references/reuse-policy.md +7 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persagy-vant",
3
- "version": "0.0.35",
3
+ "version": "0.0.37",
4
4
  "description": "Lightweight Mobile UI Components built on Vue",
5
5
  "main": "lib/vant.cjs.js",
6
6
  "module": "es/index.mjs",
@@ -13,9 +13,10 @@ description: 使用 Persagy Vant 为 Vue 3 移动端业务页面规划、实现
13
13
  2. 阅读 `references/design-interaction-baseline.md`,将其中适用的设计、状态和反馈规则落实到页面;如与产品需求冲突,以明确的产品需求为准并说明差异。
14
14
  3. 阅读 `references/business-component-catalog.md`,按用户任务先确定业务组件;再从 `references/component-catalog.md` 补齐基础组件。
15
15
  4. 按 `references/component-documentation.md` 的查阅流程读取每个被选中组件的 README 和 demo:在组件库仓库中使用 `packages/persagy-mobile/src/<component>/README.zh-CN.md`,在业务项目中使用 `node_modules/persagy-vant/es/<component>/README.zh-CN.md`。涉及视觉、插槽或类型扩展时,同时查阅 `var.less`、类型定义和 demo;API、事件、插槽和导入方式均以这些资料为准。
16
- 5. `references/page-recipes.md` 组合页面,补齐加载、空数据、错误、禁用和提交中状态。用户要求“审查并优化当前页面”或语义等同的 UI 优化时,默认按 `references/reuse-policy.md` 的非侵入式优化规则执行:不得改变已有接口、请求/响应数据、字段映射、数据内容或业务事件。
17
- 6. 无论是单个页面审查/优化,还是从 0 1 的页面规划与实现,页面组件覆盖率均必须不低于 `90%`。将组件复用清单中的组件职责视为页面覆盖基线:优先保持组件原样;页面差异先使用公开 Props、事件、插槽、Less 变量或其他已有组件组合实现,不得复制组件内部 DOM、样式或私有逻辑,也不得自行覆盖组件样式。
18
- 7. 输出或提交前,按 `references/reuse-policy.md` `references/design-interaction-baseline.md` 完成自查,并附上“组件复用清单”“规范落实项”“业务与数据兼容核查”和“组件覆盖率”。组件复用清单必须按 `references/component-documentation.md` 使用官网中文名称和可点击的组件展示链接;未达到 `90%` 时,必须记录覆盖率缺口并反馈给产品经理,说明需要优化的组件变量或建议新增的组件,供其反馈组件库维护方;未经产品经理明确确认例外,不得作为合规页面交付。
16
+ 5. 阅读 `references/component-variant-selection.md`,针对每个可见或可交互 UI 单元,从该组件模拟器/README 的示例中选定最贴近当前页面的具体样式与变量组合;不得仅按组件名称套用基础示例。
17
+ 6. `references/page-recipes.md` 组合页面,补齐加载、空数据、错误、禁用和提交中状态。用户要求“审查并优化当前页面”或语义等同的 UI 优化时,默认按 `references/reuse-policy.md` 的非侵入式优化规则执行:不得改变已有接口、请求/响应数据、字段映射、数据内容或业务事件。
18
+ 7. 无论是单个页面审查/优化,还是从 0 1 的页面规划与实现,页面组件覆盖率均必须不低于 `90%`。将组件复用清单中的组件职责视为页面覆盖基线:默认保持模拟器示例与组件原样,只使用其既有 Props、事件、插槽和样式变体完成搭建;未经产品经理明确提出具体样式调整,不得改动 Less/CSS 变量、覆盖组件视觉或自行定制组件样式。
19
+ 8. 输出或提交前,按 `references/reuse-policy.md`、`references/design-interaction-baseline.md` 和 `references/component-variant-selection.md` 完成自查,并附上“组件复用清单”“组件变体选型”“规范落实项”“业务与数据兼容核查”和“组件覆盖率”。组件复用清单必须按 `references/component-documentation.md` 使用官网中文名称和可点击的组件展示链接;未达到 `90%` 时,必须记录覆盖率缺口并反馈给产品经理,说明需要优化的组件变量或建议新增的组件,供其反馈组件库维护方;未经产品经理明确确认例外,不得作为合规页面交付。
19
20
 
20
21
  ## 组件缺口
21
22
 
@@ -5,8 +5,8 @@
5
5
  ## 页面实现时的查阅流程
6
6
 
7
7
  1. 从 `business-component-catalog.md` 和 `component-catalog.md` 确定候选组件。
8
- 2. 阅读所选组件的 `README.zh-CN.md`:先确认适用场景和演示,再确认实现所需的 Props、事件与插槽。
9
- 3. 需要视觉适配时,先保持组件默认样式;仅在需求确有差异时读取该组件 `var.less` 中的公开变量,再检查 Props、插槽或其他已有组件组合。不得通过页面 CSS 覆盖组件内部样式。需要复杂数据、双向绑定或事件时,读取类型定义;需要组合方式时,读取 demo。新增的 `content-panel`、`title-bar`、`material-action-bar`、`material-detail`、`material-display-bar` 必须在使用前完整执行此步骤。
8
+ 2. 阅读所选组件的 `README.zh-CN.md`:先确认适用场景和全部代码演示标题,再确认实现所需的 Props、事件与插槽;模拟器中的每个示例都视为可选变体,而不是只看“基础用法”。
9
+ 3. `component-variant-selection.md` 从示例中选择最贴近当前页面语义和视觉结构的一种变体,并记录示例标题与实际使用的公开能力。默认保持该变体的原始样式,不读取或修改 `var.less` 以进行视觉适配;只有产品经理明确提出具体样式调整后,才读取该组件 `var.less` 中与该调整直接相关的公开变量。不得通过页面 CSS 覆盖组件内部样式。需要复杂数据、双向绑定或事件时,读取类型定义;需要组合方式时,读取 demo。新增的 `content-panel`、`title-bar`、`material-action-bar`、`material-detail`、`material-display-bar` 必须在使用前完整执行此步骤。
10
10
  4. 仅使用已文档化的公开能力。README 未列出的能力不得假定存在;无法满足时按 `component-gap-template.md` 输出缺口说明。
11
11
 
12
12
  ## 需求到资料的映射
@@ -15,7 +15,7 @@
15
15
  | --- | --- |
16
16
  | 选择合适组件 | 组件目录、业务组件目录、对应 README 的介绍和 demo |
17
17
  | 配置交互、按钮、校验或回调 | README 的 Props、Events、Slots、类型定义 |
18
- | 调整间距、色彩、尺寸或层级 | README 的样式变量和 `var.less` |
18
+ | 产品经理明确提出组件样式调整 | README 的样式变量和 `var.less`;仅查阅和修改与该明确要求直接相关的公开变量 |
19
19
  | 组合多个组件完成页面 | 页面配方、各组件 demo |
20
20
  | 评估是否需要新组件 | 组件目录、README、组件缺口模板 |
21
21
 
@@ -24,7 +24,7 @@
24
24
  在需求中写明业务目标和涉及组件,并要求先读组件说明。例如:
25
25
 
26
26
  ```md
27
- 使用 $use-persagy-vant 实现工单详情页。先读取 `info-card`、`label`、`bottom-action-bar` 的组件说明和 demo;按其公开 Props、事件、插槽与样式变量实现需求,不新增同类组件。
27
+ 使用 $use-persagy-vant 实现工单详情页。先读取 `info-card`、`label`、`bottom-action-bar` 的组件说明和 demo;按其已有公开 Props、事件、插槽与模拟器示例实现需求,不新增同类组件,也不调整组件样式。
28
28
  ```
29
29
 
30
30
  无需指定组件时,也可以要求 AI 先完成选型:
@@ -0,0 +1,53 @@
1
+ # 组件变体与模拟器示例选型
2
+
3
+ 组件选型不止确定“使用哪个组件”,还必须确定“使用该组件的哪个模拟器示例、哪些公开 Props/插槽/变量”。目标是用最贴近页面现状与产品意图的原生示例完成界面,避免把所有场景都退化为基础样式或用自定义 CSS 模拟示例变体。
4
+
5
+ ## 必经流程
6
+
7
+ 对每个可见或可交互 UI 单元执行以下流程:
8
+
9
+ 1. **识别页面意图**:记录该单元是信息展示、进入下一层、单选/多选、状态回显、带头像的人员/对象、带标签的分类、紧凑操作入口,还是其他明确目的;同时识别已有页面的内容层级、行数、左右信息、选中态和分组关系。
10
+ 2. **浏览完整示例集**:读取目标组件 README 的所有“代码演示”标题,并查看对应 demo。模拟器展示的变体、变量和样式示例均是候选方案;不得只查看基础用法后立即实现。
11
+ 3. **比较候选变体**:从同一组件中至少比较语义接近的示例;按“业务语义优先、信息层级其次、现有视觉结构再次、最少公开扩展最后”的顺序选择。不得为了视觉相似而选择错误的交互语义,例如把可多选项实现成单击跳转项。
12
+ 4. **使用公开能力落地**:先原样复用所选示例的 Props、事件、插槽和预置样式。未经产品经理明确提出具体样式调整,不得修改 Less/CSS 变量或组件视觉;不要复刻模拟器 DOM、私有 class 或自行拼出近似控件。
13
+ 5. **记录决策**:每种实际使用的组件变体都写入交付中的“组件变体选型”,使产品经理能从组件官网/模拟器复查效果。
14
+
15
+ ## 选择准则
16
+
17
+ - 有交互含义的变量优先于纯视觉变量:例如选择状态、导航箭头、输入/回显、禁用与加载必须与业务行为一致。
18
+ - 信息密度与行数必须匹配:单行信息不用三行样式;标题、编号、位置等稳定三层信息才用三行样式。
19
+ - 内容归属决定元素位置:影响当前项选择的控件使用前置/后置选择;对象身份使用头像;分类或状态集合使用标签组;辅助说明用 `label`、`note` 或 `description`,不要滥用标题插槽。
20
+ - 页面层级优先通过已有容器变体表达:例如卡片内容、分组标题、灰色承载区、圆角卡片,先检查容器组件的示例和变量,再考虑页面级布局。
21
+ - 多个示例都可用时,选择无需改动组件视觉、公开能力最少且后续维护最清晰的一种;在清单中说明取舍。
22
+
23
+ ## 单元格的示例匹配
24
+
25
+ 【单元格】的模拟器拥有大量变体。按下列业务意图选用对应 README 示例,而不是固定使用基础单元格:
26
+
27
+ | 页面意图 | 优先模拟器示例 | 典型公开能力 | 不适用时机 |
28
+ | --- | --- | --- | --- |
29
+ | 普通标题与回显值 | 基础用法 | `title`、`value`、`label` | 有明确选择状态或三层稳定信息时 |
30
+ | 点击进入详情、选择面板或下一层 | 展示箭头 / 扩展元素「右图标」 | `is-link` 或 `right-icon="arrow"`、`click`、`value`/`note` | 仅展示不可操作信息时 |
31
+ | 多选、单选列表项 | 扩展元素「前置选择」或「后置选择」 | `left-select` / `right-select`,并连接真实选择状态 | 点击仅为路由跳转或字段录入时 |
32
+ | 人员、设备等有识别图片的对象 | 扩展元素「头像」 | `avatar` 或 `right-avatar` | 图片不承担对象识别、仅为装饰时 |
33
+ | 强调关键条目或分组内重点字段 | 标题加粗 / 前置小蓝标 | `title-bold` / `blue-mark` | 普通内容项;不能替代页面一级标题组件 |
34
+ | 标题旁呈现多个分类/状态 | 扩展元素「标签组」 | `tags` | 单一状态可用右侧值或状态组件时 |
35
+ | 标题 + 一条辅助信息 | 双行图标单元格 / 基础用法带 `label` | `label`、`icon`/`right-icon`、`center` | 需要固定三层业务信息时 |
36
+ | 标题、编号/位置、描述三层信息 | 三行样式 | `three-line`、`title`、`label`、`description`、可选 `value`/`right-icon` | 内容只有一到两层时 |
37
+ | 辅助信息在右侧且可独立操作 | 加粗与可点击备注 | `note`、`note-bold`、`note-clickable`、`click-note` | 整行都应作为唯一触发器时 |
38
+ | 成组的列表或录入入口 | 分组标题 / 卡片风格 | `cell-group` 的 `title`、`inset`、`gray-card` | 页面规范要求使用【背景】或其他业务卡片承载时,优先服从该规范 |
39
+
40
+ “前置选择”与“后置选择”由选择动作的视觉归属决定:选择控件与标题同属一项、需要先看到状态时使用前置;文本信息为主、选择控件作为结果或批量操作时使用后置。若现有页面无法明确判断,先保留原有交互位置并在选型记录中说明。
41
+
42
+ ## 交付格式
43
+
44
+ 在“组件复用清单”后增加以下内容;同一变体可合并为一项,不必按每一行重复:
45
+
46
+ ```md
47
+ ## 组件变体选型
48
+ - [单元格](https://persagy-vant-ai.netlify.app/#/zh-CN/cell):模拟器示例「后置选择」;用于工单批量选择,使用 `right-select` 绑定原有选中状态。未采用「展示箭头」,因为该行不是跳转入口。
49
+ - [单元格](https://persagy-vant-ai.netlify.app/#/zh-CN/cell):模拟器示例「三行样式」;用于设备条目,使用 `three-line`、`title`、`label`、`description` 和 `right-icon="arrow"` 呈现名称、编号、位置与详情入口。
50
+ - <官网中文组件名>:模拟器示例「<README 中的准确示例标题>」;<页面意图>,使用 `<实际 Props/插槽/变量>`;<未选其他示例的关键原因>。
51
+ ```
52
+
53
+ 若 README/demo 没有能语义匹配的示例或公开能力,不创建相似自定义结构,也不得自行调整组件样式以强行匹配;在组件缺口记录中说明已评估的示例、不能满足的原因和建议新增的变体/API。仅当产品经理明确提出具体样式调整时,才可在其确认范围内使用 README 已文档化的公开样式变量。
@@ -11,11 +11,13 @@
11
11
 
12
12
  凡调用本 Skill 的页面任务,不论是单个页面审查/优化、已有页面改造,还是从 0 到 1 的页面规划与实现,页面组件覆盖率均必须不低于 `90%`。覆盖率以“由 Persagy Vant 组件、业务组件或其公开插槽承载的可见/可交互 UI 单元 ÷ 页面全部可见/可交互 UI 单元”计算;纯页面根容器、数据循环和接口/状态适配不计为自定义 UI 单元。
13
13
 
14
- 产品经理确认组件复用清单后,清单中的组件和职责进一步作为页面覆盖基线。保持组件默认视觉和交互,除非产品经理明确要求变更。
14
+ 组件库演进目标是让其既有组件、Props 与模拟器样式变体覆盖不少于 `90%` 的业务场景,使产品无需新建自定义组件或二次修改组件视觉。页面任务中无法以原生能力完成的内容必须作为组件缺口回流,不得以临时自定义组件或样式覆盖掩盖缺口。
15
15
 
16
- 1. 先使用组件公开 Props、事件、插槽和 Less/CSS 变量;再组合其他已有组件。原页面中与组件不同的元素、字段或展示需求,优先通过这些公开能力实现,不自行编写同类结构或样式。
17
- 2. 禁止通过页面 CSS 覆盖组件内部 DOM、私有 class 或默认视觉;禁止为匹配旧页面手写按钮、字段、上传、选择、标题、列表、面板等已有组件能力。仅允许为页面根布局、组件间间距和文档明确的公开扩展点编写最小样式。
18
- 3. 如果采用组件默认样式、公开变量、插槽和已有组件组合仍无法覆盖需求,停止扩大页面自定义样式;按 `component-gap-template.md` 输出缺口,明确建议优化的组件变量或新增组件,并反馈给产品经理,由产品经理反馈组件库维护方。
16
+ 产品经理确认组件复用清单后,清单中的组件和职责进一步作为页面覆盖基线。保持组件默认视觉和交互;模拟器中的每个示例、样式变体和变量组合均为已校准方案。未经产品经理明确提出需要调整的具体样式与目标,不得修改组件默认视觉、Less/CSS 变量或组件内部样式。
17
+
18
+ 1. 先使用组件 README/demo 已展示的公开 Props、事件、插槽与样式变体,再组合其他已有组件。原页面中与组件不同的元素、字段或展示需求,优先通过这些已校准能力实现,不自行编写同类结构或样式;默认不改动 Less/CSS 变量。
19
+ 2. 禁止通过页面 CSS 覆盖组件内部 DOM、私有 class、默认视觉或公开样式变量;禁止为匹配旧页面手写按钮、字段、上传、选择、标题、列表、面板等已有组件能力。仅允许为页面根布局、组件间间距和文档明确的非组件视觉扩展点编写最小样式。
20
+ 3. 如果采用组件默认样式、模拟器既有变体、公开 Props/插槽和已有组件组合仍无法覆盖需求,停止扩大页面自定义样式;按 `component-gap-template.md` 输出缺口,明确建议优化的组件变量或新增组件,并反馈给产品经理,由产品经理反馈组件库维护方。仅在产品经理明确提出具体调整并确认后,才可使用已文档化的公开样式变量实现该调整。
19
21
  4. 交付前列出组件覆盖率、计算范围、使用的公开变量/插槽,以及保留的页面级样式;覆盖率低于 `90%` 时,必须在交付说明中附上“组件覆盖率缺口记录”并反馈给产品经理。只有产品经理明确确认例外后,才可交付当前页面;该记录作为后续优化变量或新增组件、使页面达到 `90%` 的输入。
20
22
 
21
23
  ## 当前页面审查与优化:非侵入式规则
@@ -35,6 +37,7 @@
35
37
  - 禁止拷贝组件源码、依赖组件私有 DOM/class,或用 CSS 覆盖内部结构以改变交互。
36
38
  - 禁止臆造组件 props、事件、插槽、类型或主题变量。
37
39
  - 禁止在产品经理确认组件复用清单后,自行修改组件默认样式或以页面 CSS 覆盖组件内部样式。
40
+ - 禁止为了贴近旧页面、个人判断或视觉偏好,修改组件的 Less/CSS 变量、默认色彩、间距、圆角、字号、边框或状态视觉;产品经理未明确提出具体调整时,必须使用模拟器已提供的原始样式。
38
41
 
39
42
  ## 允许的页面代码
40
43