@reglow/review-mcp 0.1.1 → 0.1.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/README.md CHANGED
@@ -37,7 +37,7 @@ Skills 的核心价值:
37
37
  | 项目内安装包 | 当前工作目录含 `uni_modules/reglow-review`(自动识别) | 组件源码(无 `docs/` 与演示页,文档回退官网) |
38
38
  | 官方文档站点(兜底) | 本地缺文档 / 未找到本地来源时 | 抓取 <https://reglow.huoli.tech/components-library/review> 并转 Markdown |
39
39
 
40
- - 版本号从 `CHANGELOG.md` 顶部解析(当前 `1.0.6(2026-09-22)`),每次响应都会标注「知识源 + 组件库版本」。
40
+ - 版本号从 `CHANGELOG.md` 顶部解析(当前 `1.3.0(2026-10-28)`),每次响应都会标注「知识源 + 组件库版本」。
41
41
  - `version` 参数与 `--version` 保留(与 reui-mcp 的签名一致),但传值只会得到「未发布到 npm,请用 `--root`」的提示。
42
42
 
43
43
  ## 快速开始
@@ -141,7 +141,7 @@ npx -y -p @reglow/review-mcp review-skills --list # 查看可用
141
141
 
142
142
  - 组件名用 kebab-case 且**不带** `re-` 前缀(`button`、`search-history`),也接受 easycom 标签写法(`re-button`)。
143
143
  - `version` 参数保留以对齐 reui-mcp,但本库未发布 npm,传值只会得到提示。
144
- - 所有返回都以「知识源 + 组件库版本 + 版本来源」开头(如 `知识源:本地 ReView 仓库|组件库版本:1.0.6(2026-09-22)`),
144
+ - 所有返回都以「知识源 + 组件库版本 + 版本来源」开头(如 `知识源:本地 ReView 仓库|组件库版本:1.3.0(2026-10-28)`),
145
145
  当内容来自官方文档站点兜底时会额外标注 ⚠️,避免 AI 误判文档版本。
146
146
 
147
147
  ## 知识来源
@@ -152,9 +152,9 @@ npx -y -p @reglow/review-mcp review-skills --list # 查看可用
152
152
  | 项目内 uni_modules | 工作目录含 `uni_modules/reglow-review` | 仅组件源码(文档与官方链接回退官网) |
153
153
  | 官方文档站点 | 本地缺文档、或未找到本地来源 | <https://reglow.huoli.tech/components-library/review> 组件页 / 指南页 / 版本记录页 |
154
154
 
155
- - 组件分类以 `docs/.vitepress/sidebar.ts` 为权威(9 个分类,与官网 `components/<category>/<name>` 路由段一致)。
156
- - `uni_modules/reglow-review/components/*/readme.md` 是脚本生成的**二次编码文本(中文乱码)**,
157
- 因此不作为文档正文,也不参与检索;读文件时会标注 `⚠️ 该文件是脚本生成的二次编码文本`。
155
+ - 组件分类以 `docs/.vitepress/sidebar.ts` 为权威(10 个分类:9 个组件分类 + 文档分区「指南 Guide」,与官网 `components/<category>/<name>` 路由段一致)。
156
+ - `uni_modules/reglow-review/components/*/readme.md` 现已是可读的组件文档(与 `docs/components/*.md` 同源),
157
+ 既作为文档正文兜底,也参与检索;`isGarbledText` 会拦截历史遗留的 GBK 乱码 readme,读取到这类文件时会标注 `⚠️ 该文件是脚本生成的二次编码文本`。
158
158
  - `--no-site` 可完全离线(仅本地仓库)。
159
159
 
160
160
  ## CLI 选项
package/catalog.mjs CHANGED
@@ -87,6 +87,12 @@ export const CATEGORIES = [
87
87
  english: "Module",
88
88
  sidebarText: "全局配置 Config",
89
89
  },
90
+ {
91
+ key: "guide",
92
+ label: "指南",
93
+ english: "Guide",
94
+ sidebarText: "指南 Guide",
95
+ },
90
96
  ];
91
97
 
92
98
  /** 官网 `pages/<key>/` 使用的分类目录名(与 CATEGORIES.key 一致) */
package/knowledge.mjs CHANGED
@@ -65,7 +65,7 @@ const MAX_SEARCH_FILE_BYTES = 512 * 1024;
65
65
  /** 单次读取文件的最大字节数 */
66
66
  const MAX_READ_BYTES = 1024 * 1024;
67
67
 
68
- /** 子包自带 readme 的乱码特征字符(脚本生成的 readme 存在 UTF-8/GBK 二次编码问题) */
68
+ /** readme 乱码特征字符(历史遗留的 GBK/UTF-8 二次编码 readme 会命中) */
69
69
  const GARBLED_MARKERS = /[\u953b\u9286\u93b8\u9470\u9428]/;
70
70
 
71
71
  /**
@@ -645,7 +645,7 @@ export async function createKnowledge(options = {}) {
645
645
  return catalog.catalogItem(name);
646
646
  }
647
647
 
648
- /** 组件 readme(脚本生成的 readme 存在乱码时不可用) */
648
+ /** 组件 readme(历史遗留的乱码 readme 不可用) */
649
649
  function readmeOf(entry) {
650
650
  if (!entry?.dir) return null;
651
651
  const rel = `${entry.dir}/readme.md`;
@@ -968,8 +968,8 @@ export async function createKnowledge(options = {}) {
968
968
  if (entry.docPath) targets.push({ entry, file: entry.docPath });
969
969
  if (entry.demoPath) targets.push({ entry, file: entry.demoPath });
970
970
  for (const item of entry.files) {
971
- // `readme.md` 多为脚本生成的二次编码文本(乱码),不参与检索
972
- if (item === "readme.md") continue;
971
+ // `readme.md` 现已是可读的组件文档(与 `docs/components/*.md` 同源),参与检索;
972
+ // 仍由 `isGarbledText` 兜底拦截历史遗留的乱码文件
973
973
  if (!isTextFile(item)) continue;
974
974
  targets.push({ entry, file: `${entry.dir}/${item}` });
975
975
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reglow/review-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "ReView(uni-app x / uts / uvue)移动端组件库 MCP 服务器与 Skills 知识包:让 AI 助手查询组件文档、示例、源码与函数实现",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/server.mjs CHANGED
@@ -274,7 +274,7 @@ export function createServer({ resolveKnowledge, defaultKnowledge }) {
274
274
  }
275
275
  if (doc.kind === "readme") {
276
276
  facts.push(
277
- "> ℹ️ 正文来自组件目录内的 `readme.md`(脚本生成物,内容可能落后于源码)。",
277
+ "> ℹ️ 正文来自组件目录内的 `readme.md`(与 `docs/components/*.md` 同源,内容可能落后于源码)。",
278
278
  );
279
279
  }
280
280
  if (doc.kind === "source") {
@@ -386,7 +386,7 @@ export function createServer({ resolveKnowledge, defaultKnowledge }) {
386
386
  title: "列出 ReView 组件源码文件",
387
387
  description:
388
388
  "列出组件目录(`uni_modules/reglow-review/components/re-*/`)下的源码文件清单(相对路径 / 行数 / 字节数),用于了解组件结构," +
389
- "再配合 get_file_code 查看具体实现。典型文件:`re-xxx.uvue`(组件实现)、`readme.md`(脚本生成的文档,中文可能有编码问题)、" +
389
+ "再配合 get_file_code 查看具体实现。典型文件:`re-xxx.uvue`(组件实现)、`readme.md`(与 docs/components 同源的组件文档)、" +
390
390
  "`*.uts`(类型 / 工具)、`static/*`(静态资源)。子组件目录(如 re-chat-sender)也可直接用组件名查询。",
391
391
  inputSchema: {
392
392
  component: z.string().describe("组件名,kebab-case"),
@@ -5,25 +5,25 @@
5
5
 
6
6
  ## 1. 安装、目录与升级
7
7
 
8
- | 事项 | 正确做法 | 来源 |
9
- | --- | --- | --- |
10
- | 安装 | DCloud 插件市场导入 `reglow-review`,或把 `uni_modules/reglow-review/` 整体复制到项目 | `README.md` |
11
- | 不要用 | `npm install @reglow/review`(`docs/guide/introduction.md` 里出现过该写法,但 `README.md` 明确「不支持 npm 安装」,以 README 为准) | `README.md` |
12
- | 目录结构 | `uni_modules/reglow-review/` = `components/`(全部 `re-*` 组件)+ `utssdk/`(`re-common`、`re-theme`、`re-config-provider` 的 UTS 实现与语言包)+ `package.json` / `readme.md` / `changelog.md` | 实测 + `README.md` |
13
- | 基础模块分工 | `re-common` 类型与工具(`type.uts`、`re-common.uvue`);`re-theme` 注入 `--re-*` 令牌(支持暗色/局部覆盖);`re-config-provider` 在 `re-theme` 之上统一语言包、`zIndex` 基线与作用域 | `docs/guide/introduction.md` |
14
- | 语言包位置 | `uni_modules/reglow-review/utssdk/re-config-provider/locale/{zh-CN,zh-TW,en-US}.uts` | 实测 + `docs/guide/locale.md` |
15
- | 升级 | 用插件市场更新或**整体替换** `uni_modules/reglow-review/`,不要只替换单个 `re-xxx` 目录:组件内部通过相对路径引用 `utssdk`(如 `re-infinite-loading.uvue` 里 `import { translate } from '../../utssdk/re-config-provider/locale.uts'`),版本混用会出现新旧不匹配 | `re-infinite-loading.uvue`、`re-address.uvue` |
16
- | 版本 | 当前 **1.0.6(2026-09-22)**;插件 `package.json` 的 `version` 同为 1.0.6 | `CHANGELOG.md`、`uni_modules/reglow-review/package.json` |
8
+ | 事项 | 正确做法 | 来源 |
9
+ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
10
+ | 安装 | DCloud 插件市场导入 `reglow-review`,或把 `uni_modules/reglow-review/` 整体复制到项目 | `README.md` |
11
+ | 不要用 | `npm install @reglow/review`(`docs/guide/introduction.md` 里出现过该写法,但 `README.md` 明确「不支持 npm 安装」,以 README 为准) | `README.md` |
12
+ | 目录结构 | `uni_modules/reglow-review/` = `components/`(全部 `re-*` 组件)+ `utssdk/`(`re-common`、`re-theme`、`re-config-provider` 的 UTS 实现与语言包)+ `package.json` / `readme.md` / `changelog.md` | 实测 + `README.md` |
13
+ | 基础模块分工 | `re-common` 类型与工具(`type.uts`、`re-common.uvue`);`re-theme` 注入 `--re-*` 令牌(支持暗色/局部覆盖);`re-config-provider` 在 `re-theme` 之上统一语言包、`zIndex` 基线与作用域 | `docs/guide/introduction.md` |
14
+ | 语言包位置 | `uni_modules/reglow-review/utssdk/re-config-provider/locale/{zh-CN,zh-TW,en-US}.uts` | 实测 + `docs/guide/locale.md` |
15
+ | 升级 | 用插件市场更新或**整体替换** `uni_modules/reglow-review/`,不要只替换单个 `re-xxx` 目录:组件内部通过相对路径引用 `utssdk`(如 `re-infinite-loading.uvue` 里 `import { translate } from '../../utssdk/re-config-provider/locale.uts'`),版本混用会出现新旧不匹配 | `re-infinite-loading.uvue`、`re-address.uvue` |
16
+ | 版本 | 当前 **1.3.0(2026-10-28)**;插件 `package.json` 的 `version` 同为 1.3.0 | `CHANGELOG.md`、`uni_modules/reglow-review/package.json` |
17
17
 
18
18
  > 口径校正:`README.md` 的「项目结构」注释里写了 `uni_modules/` 下还有 `re-common/`、`re-theme/`、`re-config-provider/`、`re-button/` 等「历史拆分目录」,但**当前工作区的 `uni_modules/` 下只有 `reglow-review/`**(外加一个 `uni_modules/README.md`,实测);`uni_modules/reglow-review/package.json` 的 `uni_modules.dependencies` 也已是空数组。因此组件维护只看 `uni_modules/reglow-review/components/`。
19
19
 
20
20
  ## 2. easycom 引入方式
21
21
 
22
- | 方式 | 配置 | 说明 |
23
- | --- | --- | --- |
24
- | 自动扫描(推荐,README 写法) | `pages.json` → `{"easycom":{"autoscan":true}}` | 组件在 `uni_modules/reglow-review/components/` 下,开启后可直接用 `<re-button>`,无需 `easycom.custom`。本仓库 demo 即此配置(`review/pages.json`) |
25
- | 显式正则(`docs/guide/introduction.md` 写法) | `"custom": { "^re-(.*)": "@/uni_modules/reglow-review/components/re-$1/re-$1.uvue" }` | 需要锁定路径或做非标准目录布局时用 |
26
- | 手动 import(不推荐) | `import ReInput from '@/uni_modules/reglow-review/components/re-input/re-input'` | 仅在特殊场景用;手动 import 必须保持 `uni_modules/reglow-review/` 的目录层级,否则组件内部对 `utssdk` 的相对引用会断 |
22
+ | 方式 | 配置 | 说明 |
23
+ | --------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
24
+ | 自动扫描(推荐,README 写法) | `pages.json` → `{"easycom":{"autoscan":true}}` | 组件在 `uni_modules/reglow-review/components/` 下,开启后可直接用 `<re-button>`,无需 `easycom.custom`。本仓库 demo 即此配置(`review/pages.json`) |
25
+ | 显式正则(`docs/guide/introduction.md` 写法) | `"custom": { "^re-(.*)": "@/uni_modules/reglow-review/components/re-$1/re-$1.uvue" }` | 需要锁定路径或做非标准目录布局时用 |
26
+ | 手动 import(不推荐) | `import ReInput from '@/uni_modules/reglow-review/components/re-input/re-input'` | 仅在特殊场景用;手动 import 必须保持 `uni_modules/reglow-review/` 的目录层级,否则组件内部对 `utssdk` 的相对引用会断 |
27
27
 
28
28
  - 标签名 = `re-` + `components/` 下的目录名:`image-viewer` → `<re-image-viewer>`;`date-time-picker` → `<re-date-time-picker>`。
29
29
  - `layout` 是**一个文档页对应两个组件**:`<re-row>` + `<re-col>`;同理 `steps` → `<re-step-item>`、`tabs` → `<re-tab-panel>`、`side-bar` → `<re-side-bar-item>`、`tab-bar` → `<re-tab-bar-item>`、`grid` → `<re-grid-item>`、`cell` → `<re-cell-group>`、`checkbox` → `<re-checkbox-group>`、`radio` → `<re-radio-group>`、`avatar` → `<re-avatar-group>`、`collapse` → `<re-collapse-panel>`、`tag` → `<re-check-tag>`、`dropdown-menu` → `<re-dropdown-item>`、`message` → `<re-message-item>`、`form` → `<re-form-item>`、`time-select` → `<re-time-pannel>` / `<re-time-detail>`。
@@ -37,13 +37,13 @@
37
37
 
38
38
  ## 4. 平台差异与条件编译
39
39
 
40
- | 平台 | 状态与差异 | 来源 |
41
- | --- | --- | --- |
42
- | H5 / App-Android / App-iOS / Harmony | 插件包声明全部 `√` | `README.md`、`uni_modules/reglow-review/package.json` |
43
- | 微信小程序 | 支持,但有渲染层差异:**微信小程序 WebView 渲染器不支持原生 sticky 组件**,`re-indexes` 的数据驱动容器模式在小程序端自动回退为 `scroll-view` + 普通 `view`(可滚动、可跳转、高亮联动,暂不吸顶);App / H5 使用原生 `list-view` + `sticky-section` 吸顶 | `CHANGELOG.md` 1.0.4 |
44
- | 小程序节点流 | 动态列数会触发渲染层节点流错乱(`Framework inner error`);`re-cascader` 自 1.0.5 改为模板内直接渲染列与选项后不再出现 | `CHANGELOG.md` 1.0.5 |
45
- | 平台门槛 | HBuilderX 3.99+(README);插件 engines 要求 `HBuilderX ^5.07`、`uni-app-x ^5.07` | `README.md`、插件 `package.json` |
46
- | 条件编译 | 仓库内组件使用 `@uniPlatform` 注释声明平台(如 `@uniPlatform { "app": ..., "mp": {"weixin": ...}, "web": ... }`),业务侧如需按平台分支,沿用 uni-app x 的标准条件编译语法即可 | `re-*.uvue` 各文件头部 |
40
+ | 平台 | 状态与差异 | 来源 |
41
+ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
42
+ | H5 / App-Android / App-iOS / Harmony | 插件包声明全部 `√` | `README.md`、`uni_modules/reglow-review/package.json` |
43
+ | 微信小程序 | 支持,但有渲染层差异:**微信小程序 WebView 渲染器不支持原生 sticky 组件**,`re-indexes` 的数据驱动容器模式在小程序端自动回退为 `scroll-view` + 普通 `view`(可滚动、可跳转、高亮联动,暂不吸顶);App / H5 使用原生 `list-view` + `sticky-section` 吸顶 | `CHANGELOG.md` 1.0.4 |
44
+ | 小程序节点流 | 动态列数会触发渲染层节点流错乱(`Framework inner error`);`re-cascader` 自 1.0.5 改为模板内直接渲染列与选项后不再出现 | `CHANGELOG.md` 1.0.5 |
45
+ | 平台门槛 | HBuilderX 3.99+(README);插件 engines 要求 `HBuilderX ^5.07`、`uni-app-x ^5.07` | `README.md`、插件 `package.json` |
46
+ | 条件编译 | 仓库内组件使用 `@uniPlatform` 注释声明平台(如 `@uniPlatform { "app": ..., "mp": {"weixin": ...}, "web": ... }`),业务侧如需按平台分支,沿用 uni-app x 的标准条件编译语法即可 | `re-*.uvue` 各文件头部 |
47
47
 
48
48
  - 调试配置参考:`platformConfig.json` 当前只有 `{ "targets": ["APP-ANDROID"] }`(DCloud ls-plugin 设置)。
49
49
  - 遇到某平台行为异常,先查 `CHANGELOG.md` 最近两版是否记录过同类问题(模板 v-for 索引类型、小程序 sticky、列节点流、ref 解包等),再决定是「已知平台限制」还是「需要改代码」。
@@ -62,9 +62,9 @@
62
62
 
63
63
  <script setup>
64
64
  const customLocale = {
65
- dialog: { confirm: '确定', cancel: '取消' },
66
- picker: { confirm: '选择', cancel: '返回' }
67
- }
65
+ dialog: { confirm: "确定", cancel: "取消" },
66
+ picker: { confirm: "选择", cancel: "返回" },
67
+ };
68
68
  </script>
69
69
  ```
70
70
 
@@ -80,7 +80,9 @@ const customLocale = {
80
80
  2. **全局/局部主题变量**:`re-config-provider` 的 `themeVars`(键值对会被转为 CSS 变量应用到子组件)与 `theme="dark"`;只覆盖局部区域时用 `re-theme`(`theme` + `themeVars`)。令牌以 `--re-*` 为前缀(`docs/guide/theme.md`)。
81
81
 
82
82
  ```vue
83
- <re-config-provider :theme-vars="{ 'color-primary': '#fa2c19', 'radius-large': '8px' }">
83
+ <re-config-provider
84
+ :theme-vars="{ 'color-primary': '#fa2c19', 'radius-large': '8px' }"
85
+ >
84
86
  <re-button theme="primary">自定义主题按钮</re-button>
85
87
  </re-config-provider>
86
88
 
@@ -91,37 +93,37 @@ const customLocale = {
91
93
 
92
94
  3. **`uni.scss` 只用于业务页面自己的 SCSS 变量**:`review/uni.scss` 定义的是 `$uni-color-primary` / `$uni-spacing-*` / `$uni-border-radius-*` 等 DCloud 通用变量,**不是**组件主题令牌。
93
95
 
94
- **陷阱**:不是所有组件都读 `--re-*`。实测仍有 6 个组件沿用 TDesign 的 `--td-*` 变量名(`re-form`、`re-form-item`、`re-input`、`re-radio`、`re-switch`、`re-avatar`,共 75 处,例如 `re-form` 的 `var(--td-form-bg-color, #ffffff)`)。因此「换主题变量没生效」时,先用 `search_review_docs` 确认该组件到底读哪个变量,再用它的 `customStyle` 兜底。
96
+ **陷阱**:不是所有组件都读 `--re-*`。仍有 6 个组件沿用 TDesign 的 `--td-*` 变量名(`re-form`、`re-form-item`、`re-input`、`re-radio`、`re-switch`、`re-avatar`)。1.3.0 起 `darkTheme` 已内置这些 `--td-*` 的暗色值,`theme="dark"` 可直接生效;但做品牌色定制时需同时覆盖 `--re-*` 与对应 `--td-*`,或改用组件文档给出的 `customStyle` / 颜色类 prop。
95
97
 
96
98
  ## 7. 性能
97
99
 
98
- | 场景 | 建议 | 依据 |
99
- | --- | --- | --- |
100
- | 长列表(成百上千行) | 用 `re-list` 虚拟列表:必须给 **固定 `itemHeight`**,用 `bufferCount`(默认 5)控制上下缓冲行数,用 `keyField`(默认 `id`)指定唯一键;容器高度用 `height`(默认 `100%`) | `docs/components/list.md`、`re-list.uvue` |
101
- | 分页加载 | 用 `re-infinite-loading`:`threshold`(默认 50px)控制触发距离,`load-more` 无参数、需要自己维护页码,`hasMore=false` 时展示 `noMoreText` | `docs/components/infinite-loading.md`、`re-infinite-loading.uvue` |
102
- | 搜索联想关键词 | `re-search-history` 的 `suggestData` 走**虚拟渲染**,窗口高度由 `suggestMaxHeight`(默认 240)控制,列表区实际铺满搜索框下方空间 | `docs/components/search-history.md`、`CHANGELOG.md` 1.0.5 |
103
- | 图片 | `re-image` 支持懒加载与自定义形状、加载状态 | `docs/components/image.md` |
104
- | 分组吸顶长列表 | `re-indexes` 在 App / H5 使用官方原生 `list-view` + `sticky-section` + `sticky-header`(不依赖 DOM 测量与 JS 位移,跳转用 `scroll-into-view`);小程序端回退方案见 §4 | `CHANGELOG.md` 1.0.4 |
105
- | 级联多列 | `re-cascader` 每列内部是独立 `scroll-view`,列数据用 `lazy` 按需拉取可减少一次性数据量 | `re-cascader.uvue`、`CHANGELOG.md` 1.0.5 |
106
- | 不要嵌套滚动容器 | `re-list`、`re-infinite-loading`、`re-cascader` 列内部都是 `scroll-view`,互相嵌套会出现双层滚动 | 各源码 |
100
+ | 场景 | 建议 | 依据 |
101
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
102
+ | 长列表(成百上千行) | 用 `re-list` 虚拟列表:必须给 **固定 `itemHeight`**,用 `bufferCount`(默认 5)控制上下缓冲行数,用 `keyField`(默认 `id`)指定唯一键;容器高度用 `height`(默认 `100%`) | `docs/components/list.md`、`re-list.uvue` |
103
+ | 分页加载 | 用 `re-infinite-loading`:`threshold`(默认 50px)控制触发距离,`load-more` 无参数、需要自己维护页码,`hasMore=false` 时展示 `noMoreText` | `docs/components/infinite-loading.md`、`re-infinite-loading.uvue` |
104
+ | 搜索联想关键词 | `re-search-history` 的 `suggestData` 走**虚拟渲染**,窗口高度由 `suggestMaxHeight`(默认 240)控制,列表区实际铺满搜索框下方空间 | `docs/components/search-history.md`、`CHANGELOG.md` 1.0.5 |
105
+ | 图片 | `re-image` 支持懒加载与自定义形状、加载状态 | `docs/components/image.md` |
106
+ | 分组吸顶长列表 | `re-indexes` 在 App / H5 使用官方原生 `list-view` + `sticky-section` + `sticky-header`(不依赖 DOM 测量与 JS 位移,跳转用 `scroll-into-view`);小程序端回退方案见 §4 | `CHANGELOG.md` 1.0.4 |
107
+ | 级联多列 | `re-cascader` 每列内部是独立 `scroll-view`,列数据用 `lazy` 按需拉取可减少一次性数据量 | `re-cascader.uvue`、`CHANGELOG.md` 1.0.5 |
108
+ | 不要嵌套滚动容器 | `re-list`、`re-infinite-loading`、`re-cascader` 列内部都是 `scroll-view`,互相嵌套会出现双层滚动 | 各源码 |
107
109
 
108
110
  ## 8. 常见陷阱与错误速查
109
111
 
110
- | 症状 | 根因 | 修复 |
111
- | --- | --- | --- |
112
- | HBuilderX 编译告警:模板 `v-for` 索引被推断为 `number \| string \| symbol` | UTS 类型推断(uvue 模板变量类型宽于 TS) | 1.0.4 已批量修复组件侧(action-sheet、cart-bar、chat-sender、ecard、fixed-nav、footer、product-feed、quick-enter、segmented、share-sheet、swiper、table、order-cancel-panel、picker、order-remark 等)。业务代码里同样把索引显式按 `number` 使用,或像 `re-picker` 那样封装 `isItemActive(colIdx, idx)` 归一化 |
113
- | 列表 key 出现 symbol 拼接告警 | UTS 类型 | 参考 `re-order-remark` 的 `getTagKey` 生成字符串 key |
114
- | 事件/数据不更新,或报 `loading.value` 相关错误 | uvue 模板会自动解包 ref | 模板里写 `loading`,不要写 `loading.value`(`re-luck-shake` 的 1.0.4 修复) |
115
- | 小程序端报 `Framework inner error` / 列表错乱 | 渲染层节点流错乱 | 1.0.5 起 `re-cascader` 已修复(移除内部 `re-cascader-item`,模板内直接渲染列);自定义动态列结构时避免动态增删自定义组件层级 |
116
- | 小程序端 `re-indexes` 不吸顶 | 微信小程序 WebView 不支持原生 sticky | 已知平台限制,非 bug;App / H5 正常(`CHANGELOG.md` 1.0.4) |
117
- | 切上级后更深层级旧标签没清空 | 响应式更新时序 | 1.0.5 已修复 `re-address`;自定义联动逻辑时避免直接改嵌套引用 |
118
- | 文档里查不到 props | `docs/components/*.md` 部分组件 Props 表为 `-`(input、cascader、form 等) | 读源码 `type Props` + `withDefaults(defineProps<Props>(), ...)`;不要臆造 |
119
- | 改了 `--re-*` 变量但某组件没变 | 该组件内部用 `--td-*` | 见 §6 陷阱 |
120
- | 写了 `@tap` / `@onClick` 事件无效 | 事件名是 kebab-case | 用 `@click`、`@load-more`、`@update:visible`、`@update:hasMore`、`@update:value`、`@level-select`、`@suggest-click`、`@right-icon-click` |
121
- | `v-model:value` 在某组件不生效 | 该组件没声明 `update:value` | 例如 `re-cascader` 只声明 `change` / `close` / `update:visible`,用 `:value` + `@change` |
122
- | 页面里用 `document` / `window` / DOM 查询报错 | uvue 不是浏览器环境 | 改用组件提供的事件与 prop;uvue 在 App 端仅支持 flex 布局(`uni.scss` 顶部注释) |
123
- | 用 `npm run dev` / `npx uni` 编译 | uni-app x 不支持 npm CLI 开发 | 用 HBuilderX 运行/发行(`README.md`) |
124
- | 组件源码或 readme 打开是乱码 | `uni_modules/reglow-review/components/*/readme.md` 存在 GBK 编码的历史文件 | 读文档看 `docs/components/*.md`(UTF-8 正常),或以 `.uvue` 源码为准 |
112
+ | 症状 | 根因 | 修复 |
113
+ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
114
+ | HBuilderX 编译告警:模板 `v-for` 索引被推断为 `number \| string \| symbol` | UTS 类型推断(uvue 模板变量类型宽于 TS) | 1.0.4 已批量修复组件侧(action-sheet、cart-bar、chat-sender、ecard、fixed-nav、footer、product-feed、quick-enter、segmented、share-sheet、swiper、table、order-cancel-panel、picker、order-remark 等)。业务代码里同样把索引显式按 `number` 使用,或像 `re-picker` 那样封装 `isItemActive(colIdx, idx)` 归一化 |
115
+ | 列表 key 出现 symbol 拼接告警 | UTS 类型 | 参考 `re-order-remark` 的 `getTagKey` 生成字符串 key |
116
+ | 事件/数据不更新,或报 `loading.value` 相关错误 | uvue 模板会自动解包 ref | 模板里写 `loading`,不要写 `loading.value`(`re-luck-shake` 的 1.0.4 修复) |
117
+ | 小程序端报 `Framework inner error` / 列表错乱 | 渲染层节点流错乱 | 1.0.5 起 `re-cascader` 已修复(移除内部 `re-cascader-item`,模板内直接渲染列);自定义动态列结构时避免动态增删自定义组件层级 |
118
+ | 小程序端 `re-indexes` 不吸顶 | 微信小程序 WebView 不支持原生 sticky | 已知平台限制,非 bug;App / H5 正常(`CHANGELOG.md` 1.0.4) |
119
+ | 切上级后更深层级旧标签没清空 | 响应式更新时序 | 1.0.5 已修复 `re-address`;自定义联动逻辑时避免直接改嵌套引用 |
120
+ | 文档里查不到 props | `docs/components/*.md` 部分组件 Props 表为 `-`(input、cascader、form 等) | 读源码 `type Props` + `withDefaults(defineProps<Props>(), ...)`;不要臆造 |
121
+ | 改了 `--re-*` 变量但某组件没变 | 该组件内部用 `--td-*` | 见 §6 陷阱 |
122
+ | 写了 `@tap` / `@onClick` 事件无效 | 事件名是 kebab-case | 用 `@click`、`@load-more`、`@update:visible`、`@update:hasMore`、`@update:value`、`@level-select`、`@suggest-click`、`@right-icon-click` |
123
+ | `v-model:value` 在某组件不生效 | 该组件没声明 `update:value` | 例如 `re-cascader` 只声明 `change` / `close` / `update:visible`,用 `:value` + `@change` |
124
+ | 页面里用 `document` / `window` / DOM 查询报错 | uvue 不是浏览器环境 | 改用组件提供的事件与 prop;uvue 在 App 端仅支持 flex 布局(`uni.scss` 顶部注释) |
125
+ | 用 `npm run dev` / `npx uni` 编译 | uni-app x 不支持 npm CLI 开发 | 用 HBuilderX 运行/发行(`README.md`) |
126
+ | 组件源码或 readme 打开是乱码 | 个别历史遗留的 `readme.md` 曾用 GBK 编码(现仓库内 readme 已统一为可读 UTF-8) | 读文档看 `docs/components/*.md`,或以 `.uvue` 源码为准;MCP 检测到乱码会标注警告 |
125
127
 
126
128
  ## 9. 文档没写清时的下钻套路
127
129
 
@@ -2,17 +2,17 @@
2
2
 
3
3
  > 分类与顺序取自 `review/docs/.vitepress/sidebar.ts`(组件分类的权威来源),组件条目与 `review/docs/components/*.md` **一一对应,共 121 个文档页**。
4
4
  > 用途列优先引用该组件文档首段(`docs/components/<name>.md` 第 3 行);文档首段为空时退化为 `review/README.md`「组件清单」中的说明(表中标注「README」)。
5
- > 版本基线:`reglow-review` **1.0.6(2026-09-22)**(`CHANGELOG.md`)。
5
+ > 版本基线:`reglow-review` **1.3.0(2026-10-28)**(`CHANGELOG.md`)。
6
6
 
7
7
  ## 口径说明
8
8
 
9
- | 统计口径 | 数值 | 来源 |
10
- | --- | --- | --- |
11
- | 组件文档页 | **121** | `docs/components/*.md` 实测 |
12
- | `sidebar.ts` 分类条目 | 119(9 个分类) | `docs/.vitepress/sidebar.ts` |
13
- | 文档页但不在 sidebar | 2(`chat`、`indexes-anchor`) | 同上 |
14
- | 含 `readme.md` 的组件目录 | 122 | `uni_modules/reglow-review/components/*/readme.md` |
15
- | 官方对外表述 | README 顶部写「124+ 组件 / 9 大分类」;`docs/index.md` features 写「覆盖 5 大分类,共 65+ 组件」 | `README.md`、`docs/index.md` |
9
+ | 统计口径 | 数值 | 来源 |
10
+ | ------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
11
+ | 组件文档页 | **121** | `docs/components/*.md` 实测 |
12
+ | `sidebar.ts` 分类条目 | 119(9 个组件分类 + 文档分区「指南 Guide」,后者 0 组件) | `docs/.vitepress/sidebar.ts` |
13
+ | 文档页但不在 sidebar | 2(`chat`、`indexes-anchor`) | 同上 |
14
+ | 含 `readme.md` 的组件目录 | 122(现均为可读 UTF-8 文档,与 `docs/components/*.md` 同源) | `uni_modules/reglow-review/components/*/readme.md` |
15
+ | 官方对外表述 | README 顶部写「124+ 组件 / 9 大分类」;`docs/index.md` features 写「覆盖 5 大分类,共 65+ 组件」 | `README.md`、`docs/index.md` |
16
16
 
17
17
  - **标签规则**:easycom 标签 = `re-` + 组件目录名(例:`image-viewer` → `<re-image-viewer>`)。开启 `pages.json` 的 `{"easycom":{"autoscan":true}}` 后可直接使用,无需 import(`README.md`)。
18
18
  - 一个文档页可能对应多个标签(父子组件),表中在「组件」列用 `+` 标出,子组件目录通常没有独立文档页。
@@ -20,197 +20,197 @@
20
20
 
21
21
  ## 基础 Basic(7)
22
22
 
23
- | 组件 | 中文名 | 用途 | 文档路径 |
24
- | --- | --- | --- | --- |
25
- | `<re-button>` | 按钮 | 按钮组件,支持多种主题、尺寸、形状和变体,参考TDesign设计风格 | `docs/components/button.md` |
26
- | `<re-divider>` | 分割线 | 分割线组件,支持水平/垂直布局、虚线样式和自定义内容 | `docs/components/divider.md` |
27
- | `<re-fab>` | 悬浮按钮 | 悬浮动作按钮组件,支持拖拽、图标(re-icon)和文字,固定定位在页面边缘。 | `docs/components/fab.md` |
28
- | `<re-icon>` | 图标 | 图标组件,会把本地 svg 文件转成 data URL 后渲染;传图片地址时显示图片;传其他字符时按文本渲染 | `docs/components/icon.md` |
29
- | `<re-row>` + `<re-col>` | 布局 | 布局组件,包含 re-row 行和 re-col 列,参考TDesign栅格布局设计 | `docs/components/layout.md` |
30
- | `<re-link>` | 链接 | 链接(README:re-link 链接) | `docs/components/link.md` |
31
- | `<re-typography>` | 排版 | 排版(README:re-typography 排版) | `docs/components/typography.md` |
23
+ | 组件 | 中文名 | 用途 | 文档路径 |
24
+ | ----------------------- | -------- | --------------------------------------------------------------------------------------------- | ------------------------------- |
25
+ | `<re-button>` | 按钮 | 按钮组件,支持多种主题、尺寸、形状和变体,参考TDesign设计风格 | `docs/components/button.md` |
26
+ | `<re-divider>` | 分割线 | 分割线组件,支持水平/垂直布局、虚线样式和自定义内容 | `docs/components/divider.md` |
27
+ | `<re-fab>` | 悬浮按钮 | 悬浮动作按钮组件,支持拖拽、图标(re-icon)和文字,固定定位在页面边缘。 | `docs/components/fab.md` |
28
+ | `<re-icon>` | 图标 | 图标组件,会把本地 svg 文件转成 data URL 后渲染;传图片地址时显示图片;传其他字符时按文本渲染 | `docs/components/icon.md` |
29
+ | `<re-row>` + `<re-col>` | 布局 | 布局组件,包含 re-row 行和 re-col 列,参考TDesign栅格布局设计 | `docs/components/layout.md` |
30
+ | `<re-link>` | 链接 | 链接(README:re-link 链接) | `docs/components/link.md` |
31
+ | `<re-typography>` | 排版 | 排版(README:re-typography 排版) | `docs/components/typography.md` |
32
32
 
33
33
  ## 导航 Navigation(9)
34
34
 
35
- | 组件 | 中文名 | 用途 | 文档路径 |
36
- | --- | --- | --- | --- |
37
- | `<re-back-top>` | 返回顶部 | 返回顶部组件,固定在页面右下角,点击后返回页面顶部 | `docs/components/back-top.md` |
38
- | `<re-indexes>` | 索引 | 索引(README:re-indexes 索引);1.0.4 起 App/H5 使用原生 `list-view` + `sticky-section` 实现吸顶 | `docs/components/indexes.md` |
39
- | `<re-navbar>` | 导航条 | 自定义导航条组件,支持标题、左右文字/图标、显隐动画与固定吸顶。 | `docs/components/navbar.md` |
40
- | `<re-side-bar>` + `<re-side-bar-item>` | 侧边导航栏 | 侧边导航栏组件,用于内容分类切换,配合 re-side-bar-item 使用 | `docs/components/side-bar.md` |
41
- | `<re-steps>` + `<re-step-item>` | 步骤条 | 步骤条组件,引导用户按照流程完成任务的导航条,支持水平和垂直方向 | `docs/components/steps.md` |
42
- | `<re-tab-bar>` + `<re-tab-bar-item>` | 标签栏 | 底部标签栏组件,用于页面底部导航切换,配合 re-tab-bar-item 使用 | `docs/components/tab-bar.md` |
43
- | `<re-tabs>` + `<re-tab-panel>` | 选项卡 | 选项卡组件,用于内容分类切换,配合 re-tab-panel 使用。支持均分/非均分宽度、可滚动模式。 | `docs/components/tabs.md` |
44
- | `<re-fixed-nav>` | 悬浮导航 | 悬浮导航(README:re-fixed-nav 悬浮导航) | `docs/components/fixed-nav.md` |
45
- | `<re-pagination>` | 分页 | 分页(README:re-pagination 分页) | `docs/components/pagination.md` |
35
+ | 组件 | 中文名 | 用途 | 文档路径 |
36
+ | -------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------- | ------------------------------- |
37
+ | `<re-back-top>` | 返回顶部 | 返回顶部组件,固定在页面右下角,点击后返回页面顶部 | `docs/components/back-top.md` |
38
+ | `<re-indexes>` | 索引 | 索引(README:re-indexes 索引);1.0.4 起 App/H5 使用原生 `list-view` + `sticky-section` 实现吸顶 | `docs/components/indexes.md` |
39
+ | `<re-navbar>` | 导航条 | 自定义导航条组件,支持标题、左右文字/图标、显隐动画与固定吸顶。 | `docs/components/navbar.md` |
40
+ | `<re-side-bar>` + `<re-side-bar-item>` | 侧边导航栏 | 侧边导航栏组件,用于内容分类切换,配合 re-side-bar-item 使用 | `docs/components/side-bar.md` |
41
+ | `<re-steps>` + `<re-step-item>` | 步骤条 | 步骤条组件,引导用户按照流程完成任务的导航条,支持水平和垂直方向 | `docs/components/steps.md` |
42
+ | `<re-tab-bar>` + `<re-tab-bar-item>` | 标签栏 | 底部标签栏组件,用于页面底部导航切换,配合 re-tab-bar-item 使用 | `docs/components/tab-bar.md` |
43
+ | `<re-tabs>` + `<re-tab-panel>` | 选项卡 | 选项卡组件,用于内容分类切换,配合 re-tab-panel 使用。支持均分/非均分宽度、可滚动模式。 | `docs/components/tabs.md` |
44
+ | `<re-fixed-nav>` | 悬浮导航 | 悬浮导航(README:re-fixed-nav 悬浮导航) | `docs/components/fixed-nav.md` |
45
+ | `<re-pagination>` | 分页 | 分页(README:re-pagination 分页) | `docs/components/pagination.md` |
46
46
 
47
47
  ## 输入 Input(25)
48
48
 
49
- | 组件 | 中文名 | 用途 | 文档路径 |
50
- | --- | --- | --- | --- |
51
- | `<re-calendar>` | 日历 | 日历组件,用于选择日期或日期范围,支持单选、多选、范围选择,支持弹窗和内联模式 | `docs/components/calendar.md` |
52
- | `<re-cascader>` | 级联选择器 | 级联选择器(README);1.0.5 起支持 `lazy` 懒加载、模板内直接渲染列 | `docs/components/cascader.md` |
53
- | `<re-checkbox>` + `<re-checkbox-group>` | 多选框 | 多选框(README:re-checkbox 多选框) | `docs/components/checkbox.md` |
54
- | `<re-color-picker>` | 颜色选择器 | 参照 TDesign 的颜色选择器面板实现,支持基础色板、完整调色板和弹窗模式。 | `docs/components/color-picker.md` |
55
- | `<re-date-time-picker>` | 日期时间选择器 | 日期时间选择器组件,支持多种选择模式 | `docs/components/date-time-picker.md` |
56
- | `<re-form>` + `<re-form-item>` | 表单 | 对齐 TDesign 交互的表单容器,负责字段注册、校验、重置和首个错误滚动 | `docs/components/form.md` |
57
- | `<re-input>` | 输入框 | 对齐 TDesign 交互的输入框组件,支持状态、前后缀、清除按钮、竖排布局和表单联动 | `docs/components/input.md` |
58
- | `<re-picker>` | 选择器 | 选择器(README:re-picker 选择器) | `docs/components/picker.md` |
59
- | `<re-radio>` + `<re-radio-group>` | 单选框 | 单选框组件,用于在一组选项中选择单个值,需配合 re-radio-group 使用 | `docs/components/radio.md` |
60
- | `<re-rate>` | 评分 | 评分组件,用于星级评价,支持半星选择和自定义文案 | `docs/components/rate.md` |
61
- | `<re-search>` | 搜索框 | 搜索框组件,用于内容检索,支持清除、操作按钮和不同形状 | `docs/components/search.md` |
62
- | `<re-slider>` | 滑动选择器 | 滑动选择器组件,用于在一定范围内选择数值 | `docs/components/slider.md` |
63
- | `<re-stepper>` | 步进器 | 步进器组件,通过 +/- 按钮调整数值,支持范围、步长和整数限制 | `docs/components/stepper.md` |
64
- | `<re-switch>` | 开关 | 开关(README:re-switch 开关) | `docs/components/switch.md` |
65
- | `<re-textarea>` | 多行文本框 | 多行文本输入组件,支持自适应高度、字数统计和最大长度限制 | `docs/components/textarea.md` |
66
- | `<re-tree-select>` | 树形选择 | 树形选择(README:re-tree-select 树形选择) | `docs/components/tree-select.md` |
67
- | `<re-upload>` | 上传 | 文件上传组件,支持图片预览、多选、大小限制和上传前钩子 | `docs/components/upload.md` |
68
- | `<re-code-input>` | 验证码输入 | 多位验证码逐格输入,支持密码遮罩 | `docs/components/code-input.md` |
69
- | `<re-number-keyboard>` | 数字键盘 | 弹出式数字输入面板,支持随机按键和标题 | `docs/components/number-keyboard.md` |
70
- | `<re-short-password>` | 短密码输入 | 网格状密码输入,常用于支付密码 | `docs/components/short-password.md` |
71
- | `<re-signature>` | 签名 | 手写签名画板,支持确认和清除 | `docs/components/signature.md` |
72
- | `<re-address>` | 地址选择 | 省市区三级联动地址选择器 | `docs/components/address.md` |
73
- | `<re-time-select>` + `<re-time-pannel>` + `<re-time-detail>` | 时间段选择 | 时间段选择(README:re-time-select 时间段选择(含 re-time-pannel、re-time-detail)) | `docs/components/time-select.md` |
74
- | `<re-time-picker>` | 时间选择器 | 底部弹层式时间滚轮选择器,支持时分、时分秒、范围限制与步长设置 | `docs/components/time-picker.md` |
75
- | `<re-invoice>` | 发票 | 发票(README:re-invoice 发票) | `docs/components/invoice.md` |
49
+ | 组件 | 中文名 | 用途 | 文档路径 |
50
+ | ------------------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------ | ------------------------------------- |
51
+ | `<re-calendar>` | 日历 | 日历组件,用于选择日期或日期范围,支持单选、多选、范围选择,支持弹窗和内联模式 | `docs/components/calendar.md` |
52
+ | `<re-cascader>` | 级联选择器 | 级联选择器(README);1.0.5 起支持 `lazy` 懒加载、模板内直接渲染列 | `docs/components/cascader.md` |
53
+ | `<re-checkbox>` + `<re-checkbox-group>` | 多选框 | 多选框(README:re-checkbox 多选框) | `docs/components/checkbox.md` |
54
+ | `<re-color-picker>` | 颜色选择器 | 参照 TDesign 的颜色选择器面板实现,支持基础色板、完整调色板和弹窗模式。 | `docs/components/color-picker.md` |
55
+ | `<re-date-time-picker>` | 日期时间选择器 | 日期时间选择器组件,支持多种选择模式 | `docs/components/date-time-picker.md` |
56
+ | `<re-form>` + `<re-form-item>` | 表单 | 对齐 TDesign 交互的表单容器,负责字段注册、校验、重置和首个错误滚动 | `docs/components/form.md` |
57
+ | `<re-input>` | 输入框 | 对齐 TDesign 交互的输入框组件,支持状态、前后缀、清除按钮、竖排布局和表单联动 | `docs/components/input.md` |
58
+ | `<re-picker>` | 选择器 | 选择器(README:re-picker 选择器) | `docs/components/picker.md` |
59
+ | `<re-radio>` + `<re-radio-group>` | 单选框 | 单选框组件,用于在一组选项中选择单个值,需配合 re-radio-group 使用 | `docs/components/radio.md` |
60
+ | `<re-rate>` | 评分 | 评分组件,用于星级评价,支持半星选择和自定义文案 | `docs/components/rate.md` |
61
+ | `<re-search>` | 搜索框 | 搜索框组件,用于内容检索,支持清除、操作按钮和不同形状 | `docs/components/search.md` |
62
+ | `<re-slider>` | 滑动选择器 | 滑动选择器组件,用于在一定范围内选择数值 | `docs/components/slider.md` |
63
+ | `<re-stepper>` | 步进器 | 步进器组件,通过 +/- 按钮调整数值,支持范围、步长和整数限制 | `docs/components/stepper.md` |
64
+ | `<re-switch>` | 开关 | 开关(README:re-switch 开关) | `docs/components/switch.md` |
65
+ | `<re-textarea>` | 多行文本框 | 多行文本输入组件,支持自适应高度、字数统计和最大长度限制 | `docs/components/textarea.md` |
66
+ | `<re-tree-select>` | 树形选择 | 树形选择(README:re-tree-select 树形选择) | `docs/components/tree-select.md` |
67
+ | `<re-upload>` | 上传 | 文件上传组件,支持图片预览、多选、大小限制和上传前钩子 | `docs/components/upload.md` |
68
+ | `<re-code-input>` | 验证码输入 | 多位验证码逐格输入,支持密码遮罩 | `docs/components/code-input.md` |
69
+ | `<re-number-keyboard>` | 数字键盘 | 弹出式数字输入面板,支持随机按键和标题 | `docs/components/number-keyboard.md` |
70
+ | `<re-short-password>` | 短密码输入 | 网格状密码输入,常用于支付密码 | `docs/components/short-password.md` |
71
+ | `<re-signature>` | 签名 | 手写签名画板,支持确认和清除 | `docs/components/signature.md` |
72
+ | `<re-address>` | 地址选择 | 省市区三级联动地址选择器 | `docs/components/address.md` |
73
+ | `<re-time-select>` + `<re-time-pannel>` + `<re-time-detail>` | 时间段选择 | 时间段选择(README:re-time-select 时间段选择(含 re-time-pannel、re-time-detail)) | `docs/components/time-select.md` |
74
+ | `<re-time-picker>` | 时间选择器 | 底部弹层式时间滚轮选择器,支持时分、时分秒、范围限制与步长设置 | `docs/components/time-picker.md` |
75
+ | `<re-invoice>` | 发票 | 发票(README:re-invoice 发票) | `docs/components/invoice.md` |
76
76
 
77
77
  ## 数据展示 Data Display(29)
78
78
 
79
- | 组件 | 中文名 | 用途 | 文档路径 |
80
- | --- | --- | --- | --- |
81
- | `<re-avatar>` + `<re-avatar-group>` | 头像 | 参考 TDesign Avatar 的图片、图标、文字、角标和头像组能力,适配 uni-app x 组件写法 | `docs/components/avatar.md` |
82
- | `<re-badge>` | 徽章 | 参考 TDesign badge 的样式与形状能力,支持数字、文字、红点、角标展示 | `docs/components/badge.md` |
83
- | `<re-cell>` + `<re-cell-group>` | 单元格 | 单元格组件,用于列表项展示,支持标题、描述、图标、箭头、链接跳转等 | `docs/components/cell.md` |
84
- | `<re-collapse>` + `<re-collapse-panel>` | 折叠面板 | 折叠面板组件,可展开/收起内容区域 | `docs/components/collapse.md` |
85
- | `<re-count-down>` | 倒计时 | 倒计时组件,支持自定义格式化 | `docs/components/count-down.md` |
86
- | `<re-empty>` | 空状态 | 空状态组件,用于展示无数据时的占位,支持空数据、错误、网络异常等场景 | `docs/components/empty.md` |
87
- | `<re-footer>` | 页脚 | 页脚组件,用于页面底部展示版权信息、链接等 | `docs/components/footer.md` |
88
- | `<re-grid>` + `<re-grid-item>` | 宫格 | 宫格组件,用于展示多个等宽的宫格内容 | `docs/components/grid.md` |
89
- | `<re-image>` | 图片 | 图片组件,支持懒加载、自定义形状、加载状态等 | `docs/components/image.md` |
90
- | `<re-image-viewer>` | 图片预览 | 图片预览组件,支持全屏查看、滑动切换、删除等 | `docs/components/image-viewer.md` |
91
- | `<re-progress>` | 进度条 | 进度条组件,用于展示任务进度 | `docs/components/progress.md` |
92
- | `<re-qrcode>` | 二维码 | 二维码生成组件,支持自定义颜色、尺寸、中心图标 | `docs/components/qrcode.md` |
93
- | `<re-result>` | 结果 | 结果(README:re-result 结果) | `docs/components/result.md` |
94
- | `<re-segmented>` | 分段控制器 | 分段控制器(README:re-segmented 分段控制器) | `docs/components/segmented.md` |
95
- | `<re-skeleton>` | 骨架屏 | 骨架屏(README:re-skeleton 骨架屏) | `docs/components/skeleton.md` |
96
- | `<re-sticky>` | 吸顶 | 吸顶(README:re-sticky 吸顶) | `docs/components/sticky.md` |
97
- | `<re-swiper>` | 轮播 | 轮播(README:re-swiper 轮播) | `docs/components/swiper.md` |
98
- | `<re-table>` | 表格 | 表格(README:re-table 表格) | `docs/components/table.md` |
99
- | `<re-tag>` + `<re-check-tag>` | 标签 | 标签(README:re-tag 标签(含 re-check-tag)) | `docs/components/tag.md` |
100
- | `<re-watermark>` | 水印 | 水印(README:re-watermark 水印) | `docs/components/watermark.md` |
101
- | `<re-card>` | 商品卡片 | 商品卡片,支持图片、价格、店铺信息与自定义插槽 | `docs/components/card.md` |
102
- | `<re-circle-progress>` | 环形进度条 | 以圆环形式展示进度,支持自定义颜色、大小、方向 | `docs/components/circle-progress.md` |
103
- | `<re-comment>` | 商品评论 | 展示评论信息,支持评论详情、图片/视频、追评与操作栏 | `docs/components/comment.md` |
104
- | `<re-count-up>` | 数字滚动 | 数字从起始值滚动到目标值的动画效果,支持缓动 | `docs/components/count-up.md` |
105
- | `<re-price>` | 价格展示 | 商品价格格式化展示,支持货币符号、小数位、千分位、删除线 | `docs/components/price.md` |
106
- | `<re-trend-arrow>` | 趋势箭头 | 展示涨/跌趋势箭头及百分比,支持自定义颜色和文案 | `docs/components/trend-arrow.md` |
107
- | `<re-barrage>` | 弹幕 | 弹幕(README:re-barrage 弹幕) | `docs/components/barrage.md` |
108
- | `<re-video>` | 视频播放器 | 视频播放器(README:re-video 视频播放器) | `docs/components/video.md` |
109
- | `<re-avatar-cropper>` | 头像裁剪 | 图片裁剪交互,用于头像裁剪,支持旋转、缩放 | `docs/components/avatar-cropper.md` |
79
+ | 组件 | 中文名 | 用途 | 文档路径 |
80
+ | --------------------------------------- | ---------- | -------------------------------------------------------------------------------------- | ------------------------------------ |
81
+ | `<re-avatar>` + `<re-avatar-group>` | 头像 | 参考 TDesign Avatar 的图片、图标、文字、角标和头像组能力,适配 uni-app x 组件写法 | `docs/components/avatar.md` |
82
+ | `<re-badge>` | 徽章 | 参考 TDesign badge 的样式与形状能力,支持数字、文字、红点、角标展示 | `docs/components/badge.md` |
83
+ | `<re-cell>` + `<re-cell-group>` | 单元格 | 单元格组件,用于列表项展示,支持标题、描述、图标、箭头、链接跳转等 | `docs/components/cell.md` |
84
+ | `<re-collapse>` + `<re-collapse-panel>` | 折叠面板 | 折叠面板组件,可展开/收起内容区域 | `docs/components/collapse.md` |
85
+ | `<re-count-down>` | 倒计时 | 倒计时组件,支持自定义格式化 | `docs/components/count-down.md` |
86
+ | `<re-empty>` | 空状态 | 空状态组件,用于展示无数据时的占位,支持空数据、错误、网络异常等场景 | `docs/components/empty.md` |
87
+ | `<re-footer>` | 页脚 | 页脚组件,用于页面底部展示版权信息、链接等 | `docs/components/footer.md` |
88
+ | `<re-grid>` + `<re-grid-item>` | 宫格 | 宫格组件,用于展示多个等宽的宫格内容 | `docs/components/grid.md` |
89
+ | `<re-image>` | 图片 | 图片组件,支持懒加载、自定义形状、加载状态等 | `docs/components/image.md` |
90
+ | `<re-image-viewer>` | 图片预览 | 图片预览组件,支持全屏查看、滑动切换、删除等 | `docs/components/image-viewer.md` |
91
+ | `<re-progress>` | 进度条 | 进度条组件,用于展示任务进度 | `docs/components/progress.md` |
92
+ | `<re-qrcode>` | 二维码 | 二维码生成组件,支持自定义颜色、尺寸、中心图标 | `docs/components/qrcode.md` |
93
+ | `<re-result>` | 结果 | 结果(README:re-result 结果) | `docs/components/result.md` |
94
+ | `<re-segmented>` | 分段控制器 | 分段控制器(README:re-segmented 分段控制器) | `docs/components/segmented.md` |
95
+ | `<re-skeleton>` | 骨架屏 | 骨架屏(README:re-skeleton 骨架屏) | `docs/components/skeleton.md` |
96
+ | `<re-sticky>` | 吸顶 | 吸顶(README:re-sticky 吸顶) | `docs/components/sticky.md` |
97
+ | `<re-swiper>` | 轮播 | 轮播(README:re-swiper 轮播) | `docs/components/swiper.md` |
98
+ | `<re-table>` | 表格 | 表格(README:re-table 表格) | `docs/components/table.md` |
99
+ | `<re-tag>` + `<re-check-tag>` | 标签 | 标签(README:re-tag 标签(含 re-check-tag)) | `docs/components/tag.md` |
100
+ | `<re-watermark>` | 水印 | 水印(README:re-watermark 水印) | `docs/components/watermark.md` |
101
+ | `<re-card>` | 卡片 | 卡片组件,支持封面图、标题/副标题、左侧图标/图片、右侧额外文字、更多图标与底部操作按钮 | `docs/components/card.md` |
102
+ | `<re-circle-progress>` | 环形进度条 | 以圆环形式展示进度,支持自定义颜色、大小、方向 | `docs/components/circle-progress.md` |
103
+ | `<re-comment>` | 商品评论 | 展示评论信息,支持评论详情、图片/视频、追评与操作栏 | `docs/components/comment.md` |
104
+ | `<re-count-up>` | 数字滚动 | 数字从起始值滚动到目标值的动画效果,支持缓动 | `docs/components/count-up.md` |
105
+ | `<re-price>` | 价格展示 | 商品价格格式化展示,支持货币符号、小数位、千分位、删除线 | `docs/components/price.md` |
106
+ | `<re-trend-arrow>` | 趋势箭头 | 展示涨/跌趋势箭头及百分比,支持自定义颜色和文案 | `docs/components/trend-arrow.md` |
107
+ | `<re-barrage>` | 弹幕 | 弹幕(README:re-barrage 弹幕) | `docs/components/barrage.md` |
108
+ | `<re-video>` | 视频播放器 | 视频播放器(README:re-video 视频播放器) | `docs/components/video.md` |
109
+ | `<re-avatar-cropper>` | 头像裁剪 | 图片裁剪交互,用于头像裁剪,支持旋转、缩放 | `docs/components/avatar-cropper.md` |
110
110
 
111
111
  ## 反馈 Feedback(15)
112
112
 
113
- | 组件 | 中文名 | 用途 | 文档路径 |
114
- | --- | --- | --- | --- |
115
- | `<re-action-sheet>` | 动作面板 | 动作面板(README:re-action-sheet 动作面板) | `docs/components/action-sheet.md` |
116
- | `<re-drawer>` | 抽屉 | 抽屉组件,从屏幕边缘滑出的浮层面,支持 v-model:visible 双向绑定。支持推拉手势关闭,模态层过渡动画。 | `docs/components/drawer.md` |
117
- | `<re-dialog>` | 对话框 | 用于显示重要信息或需要用户确认操作的模态对话框 | `docs/components/dialog.md` |
118
- | `<re-dropdown-menu>` + `<re-dropdown-item>` | 下拉菜单 | 下拉菜单(README:re-dropdown-menu 下拉菜单) | `docs/components/dropdown-menu.md` |
119
- | `<re-guide>` | 引导 | 用于引导用户了解产品功能的气泡提示组件 | `docs/components/guide.md` |
120
- | `<re-loading>` | 加载 | 用于页面或数据加载状态展示的动画组件 | `docs/components/loading.md` |
121
- | `<re-message>` + `<re-message-item>` | 消息通知 | 用于全局展示通知提醒信息,支持多种主题 | `docs/components/message.md` |
122
- | `<re-notice-bar>` | 公告栏 | 用于循环播放公告信息,支持滚动和操作区域 | `docs/components/notice-bar.md` |
123
- | `<re-overlay>` | 遮罩层 | 创建一个遮罩层,用于强调页面特定内容 | `docs/components/overlay.md` |
124
- | `<re-popover>` | 气泡弹出框 | 点击或悬停在元素上时弹出的气泡式信息卡片 | `docs/components/popover.md` |
125
- | `<re-popup>` | 弹出层 | 从顶部、底部、左侧、右侧或中心弹出的浮层组件 | `docs/components/popup.md` |
126
- | `<re-pull-down-refresh>` | 下拉刷新 | 提供下拉刷新交互的容器组件 | `docs/components/pull-down-refresh.md` |
127
- | `<re-swipe-cell>` | 滑动单元格 | 滑动单元格(README:re-swipe-cell 滑动单元格) | `docs/components/swipe-cell.md` |
128
- | `<re-toast>` | 轻提示 | 轻量级消息提示组件,支持多种状态和位置 | `docs/components/toast.md` |
129
- | `<re-loading-page>` | 全屏加载页 | 全屏加载页(README:re-loading-page 全屏加载页) | `docs/components/loading-page.md` |
113
+ | 组件 | 中文名 | 用途 | 文档路径 |
114
+ | ------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------- | -------------------------------------- |
115
+ | `<re-action-sheet>` | 动作面板 | 动作面板(README:re-action-sheet 动作面板) | `docs/components/action-sheet.md` |
116
+ | `<re-drawer>` | 抽屉 | 抽屉组件,从屏幕边缘滑出的浮层面,支持 v-model:visible 双向绑定。支持推拉手势关闭,模态层过渡动画。 | `docs/components/drawer.md` |
117
+ | `<re-dialog>` | 对话框 | 用于显示重要信息或需要用户确认操作的模态对话框 | `docs/components/dialog.md` |
118
+ | `<re-dropdown-menu>` + `<re-dropdown-item>` | 下拉菜单 | 下拉菜单(README:re-dropdown-menu 下拉菜单) | `docs/components/dropdown-menu.md` |
119
+ | `<re-guide>` | 引导 | 用于引导用户了解产品功能的气泡提示组件 | `docs/components/guide.md` |
120
+ | `<re-loading>` | 加载 | 用于页面或数据加载状态展示的动画组件 | `docs/components/loading.md` |
121
+ | `<re-message>` + `<re-message-item>` | 消息通知 | 用于全局展示通知提醒信息,支持多种主题 | `docs/components/message.md` |
122
+ | `<re-notice-bar>` | 公告栏 | 用于循环播放公告信息,支持滚动和操作区域 | `docs/components/notice-bar.md` |
123
+ | `<re-overlay>` | 遮罩层 | 创建一个遮罩层,用于强调页面特定内容 | `docs/components/overlay.md` |
124
+ | `<re-popover>` | 气泡弹出框 | 点击或悬停在元素上时弹出的气泡式信息卡片 | `docs/components/popover.md` |
125
+ | `<re-popup>` | 弹出层 | 从顶部、底部、左侧、右侧或中心弹出的浮层组件 | `docs/components/popup.md` |
126
+ | `<re-pull-down-refresh>` | 下拉刷新 | 提供下拉刷新交互的容器组件 | `docs/components/pull-down-refresh.md` |
127
+ | `<re-swipe-cell>` | 滑动单元格 | 滑动单元格(README:re-swipe-cell 滑动单元格) | `docs/components/swipe-cell.md` |
128
+ | `<re-toast>` | 轻提示 | 轻量级消息提示组件,支持多种状态和位置 | `docs/components/toast.md` |
129
+ | `<re-loading-page>` | 全屏加载页 | 全屏加载页(README:re-loading-page 全屏加载页) | `docs/components/loading-page.md` |
130
130
 
131
131
  ## 列表与布局 List & Layout(8)
132
132
 
133
- | 组件 | 中文名 | 用途 | 文档路径 |
134
- | --- | --- | --- | --- |
135
- | `<re-infinite-loading>` | 无限加载 | 是否还有更多数据(滚动触底触发 `load-more`,`hasMore` / `threshold` 控制) | `docs/components/infinite-loading.md` |
136
- | `<re-list>` | 虚拟列表 | 虚拟列表(README);`data` / `itemHeight` / `bufferCount` / `keyField` 控制渲染窗口 | `docs/components/list.md` |
137
- | `<re-indicator>` | 轮播指示器 | 轮播指示器(README:re-indicator 轮播指示器) | `docs/components/indicator.md` |
138
- | `<re-animate>` | 动画 | 动画(README:re-animate 动画) | `docs/components/animate.md` |
139
- | `<re-transition>` | 过渡动画 | 过渡动画(README:re-transition 过渡动画) | `docs/components/transition.md` |
140
- | `<re-drag>` | 拖拽 | 拖拽排序组件,长按拖动列表项进行排序 | `docs/components/drag.md` |
141
- | `<re-safe-area>` | 安全区域 | 安全区域(README:re-safe-area 安全区域) | `docs/components/safe-area.md` |
142
- | `<re-address-list>` | 地址列表 | 展示和管理收货地址列表,支持选择、新增、编辑、删除 | `docs/components/address-list.md` |
133
+ | 组件 | 中文名 | 用途 | 文档路径 |
134
+ | ----------------------- | ---------- | ----------------------------------------------------------------------------------- | ------------------------------------- |
135
+ | `<re-infinite-loading>` | 无限加载 | 是否还有更多数据(滚动触底触发 `load-more`,`hasMore` / `threshold` 控制) | `docs/components/infinite-loading.md` |
136
+ | `<re-list>` | 虚拟列表 | 虚拟列表(README);`data` / `itemHeight` / `bufferCount` / `keyField` 控制渲染窗口 | `docs/components/list.md` |
137
+ | `<re-indicator>` | 轮播指示器 | 轮播指示器(README:re-indicator 轮播指示器) | `docs/components/indicator.md` |
138
+ | `<re-animate>` | 动画 | 动画(README:re-animate 动画) | `docs/components/animate.md` |
139
+ | `<re-transition>` | 过渡动画 | 过渡动画(README:re-transition 过渡动画) | `docs/components/transition.md` |
140
+ | `<re-drag>` | 拖拽 | 拖拽排序组件,长按拖动列表项进行排序 | `docs/components/drag.md` |
141
+ | `<re-safe-area>` | 安全区域 | 安全区域(README:re-safe-area 安全区域) | `docs/components/safe-area.md` |
142
+ | `<re-address-list>` | 地址列表 | 展示和管理收货地址列表,支持选择、新增、编辑、删除 | `docs/components/address-list.md` |
143
143
 
144
144
  ## 营销 Marketing(11)
145
145
 
146
- | 组件 | 中文名 | 用途 | 文档路径 |
147
- | --- | --- | --- | --- |
148
- | `<re-square-nine>` | 九宫格 | 九宫格(README:re-square-nine 九宫格) | `docs/components/square-nine.md` |
149
- | `<re-scratch-card>` | 刮刮卡 | 刮刮卡(README:re-scratch-card 刮刮卡) | `docs/components/scratch-card.md` |
150
- | `<re-gift-box>` | 礼物盒 | 礼物盒(README:re-gift-box 礼物盒) | `docs/components/gift-box.md` |
151
- | `<re-lotto-roll>` | 摇奖机 | 摇奖机(README:re-lotto-roll 摇奖机) | `docs/components/lotto-roll.md` |
152
- | `<re-guess-gift>` | 猜礼物 | 猜礼物(README:re-guess-gift 猜礼物) | `docs/components/guess-gift.md` |
153
- | `<re-hit-eggs>` | 砸金蛋 | 砸金蛋(README:re-hit-eggs 砸金蛋) | `docs/components/hit-eggs.md` |
154
- | `<re-gift-rain>` | 红包雨 | 红包雨(README:re-gift-rain 红包雨) | `docs/components/gift-rain.md` |
155
- | `<re-luck-shake>` | 摇一摇 | 摇一摇(README:re-luck-shake 摇一摇) | `docs/components/luck-shake.md` |
156
- | `<re-marquee>` | 跑马灯抽奖 | 跑马灯抽奖(README:re-marquee 跑马灯抽奖) | `docs/components/marquee.md` |
157
- | `<re-shake-dice>` | 摇骰子 | 摇骰子(README:re-shake-dice 摇骰子) | `docs/components/shake-dice.md` |
158
- | `<re-turntable>` | 大转盘 | 大转盘(README:re-turntable 大转盘) | `docs/components/turntable.md` |
146
+ | 组件 | 中文名 | 用途 | 文档路径 |
147
+ | ------------------- | ---------- | ------------------------------------------- | --------------------------------- |
148
+ | `<re-square-nine>` | 九宫格 | 九宫格(README:re-square-nine 九宫格) | `docs/components/square-nine.md` |
149
+ | `<re-scratch-card>` | 刮刮卡 | 刮刮卡(README:re-scratch-card 刮刮卡) | `docs/components/scratch-card.md` |
150
+ | `<re-gift-box>` | 礼物盒 | 礼物盒(README:re-gift-box 礼物盒) | `docs/components/gift-box.md` |
151
+ | `<re-lotto-roll>` | 摇奖机 | 摇奖机(README:re-lotto-roll 摇奖机) | `docs/components/lotto-roll.md` |
152
+ | `<re-guess-gift>` | 猜礼物 | 猜礼物(README:re-guess-gift 猜礼物) | `docs/components/guess-gift.md` |
153
+ | `<re-hit-eggs>` | 砸金蛋 | 砸金蛋(README:re-hit-eggs 砸金蛋) | `docs/components/hit-eggs.md` |
154
+ | `<re-gift-rain>` | 红包雨 | 红包雨(README:re-gift-rain 红包雨) | `docs/components/gift-rain.md` |
155
+ | `<re-luck-shake>` | 摇一摇 | 摇一摇(README:re-luck-shake 摇一摇) | `docs/components/luck-shake.md` |
156
+ | `<re-marquee>` | 跑马灯抽奖 | 跑马灯抽奖(README:re-marquee 跑马灯抽奖) | `docs/components/marquee.md` |
157
+ | `<re-shake-dice>` | 摇骰子 | 摇骰子(README:re-shake-dice 摇骰子) | `docs/components/shake-dice.md` |
158
+ | `<re-turntable>` | 大转盘 | 大转盘(README:re-turntable 大转盘) | `docs/components/turntable.md` |
159
159
 
160
160
  ## 业务 Business(14)
161
161
 
162
- | 组件 | 中文名 | 用途 | 文档路径 |
163
- | --- | --- | --- | --- |
164
- | `<re-ecard>` | 电子卡券 | 电子卡券(README:re-ecard 电子卡券) | `docs/components/ecard.md` |
165
- | `<re-sku>` | 商品规格选择 | 商品规格弹层,支持规格联动、数量调整、不可售态与自定义底部操作 | `docs/components/sku.md` |
166
- | `<re-submit-bar>` | 提交订单栏 | 底部固定的订单提交栏,展示合计金额和提交按钮,支持优惠券选择入口 | `docs/components/submit-bar.md` |
167
- | `<re-coupon>` | 优惠券选择器 | 优惠券选择器(README:re-coupon 优惠券选择器) | `docs/components/coupon.md` |
168
- | `<re-share-sheet>` | 分享面板 | 底部分享选择面板,支持单行滚动、分页展示和取消回调等分享场景 | `docs/components/share-sheet.md` |
169
- | `<re-floating-panel>` | 浮动面板 | 底部可拖拽的浮动面板,支持多锚点停靠,拖拽条控制面板展开/收起高度 | `docs/components/floating-panel.md` |
170
- | `<re-cart-bar>` | 购物车栏 | 购物车栏(README:re-cart-bar 购物车栏) | `docs/components/cart-bar.md` |
171
- | `<re-goods-filter>` | 商品筛选 | 商品筛选(README:re-goods-filter 商品筛选) | `docs/components/goods-filter.md` |
172
- | `<re-quick-enter>` | 快捷入口 | 快捷入口(README:re-quick-enter 快捷入口) | `docs/components/quick-enter.md` |
173
- | `<re-search-history>` | 搜索历史 | 搜索历史(README);1.0.5 起 `suggestData` 联想关键词走虚拟渲染(`suggestMaxHeight`) | `docs/components/search-history.md` |
174
- | `<re-product-feed>` | 商品 Feed 流 | 商品 Feed 流(README:re-product-feed 商品 Feed 流) | `docs/components/product-feed.md` |
175
- | `<re-order-cancel-panel>` | 订单取消面板 | 订单取消面板(README:re-order-cancel-panel 订单取消面板) | `docs/components/order-cancel-panel.md` |
176
- | `<re-order-remark>` | 订单备注 | 订单备注(README:re-order-remark 订单备注) | `docs/components/order-remark.md` |
177
- | `<re-login>` | 登录 | 登录(README:re-login 登录) | `docs/components/login.md` |
162
+ | 组件 | 中文名 | 用途 | 文档路径 |
163
+ | ------------------------- | ------------ | ------------------------------------------------------------------------------------- | --------------------------------------- |
164
+ | `<re-ecard>` | 电子卡券 | 电子卡券(README:re-ecard 电子卡券) | `docs/components/ecard.md` |
165
+ | `<re-sku>` | 商品规格选择 | 商品规格弹层,支持规格联动、数量调整、不可售态与自定义底部操作 | `docs/components/sku.md` |
166
+ | `<re-submit-bar>` | 提交订单栏 | 底部固定的订单提交栏,展示合计金额和提交按钮,支持优惠券选择入口 | `docs/components/submit-bar.md` |
167
+ | `<re-coupon>` | 优惠券选择器 | 优惠券选择器(README:re-coupon 优惠券选择器) | `docs/components/coupon.md` |
168
+ | `<re-share-sheet>` | 分享面板 | 底部分享选择面板,支持单行滚动、分页展示和取消回调等分享场景 | `docs/components/share-sheet.md` |
169
+ | `<re-floating-panel>` | 浮动面板 | 底部可拖拽的浮动面板,支持多锚点停靠,拖拽条控制面板展开/收起高度 | `docs/components/floating-panel.md` |
170
+ | `<re-cart-bar>` | 购物车栏 | 购物车栏(README:re-cart-bar 购物车栏) | `docs/components/cart-bar.md` |
171
+ | `<re-goods-filter>` | 商品筛选 | 商品筛选(README:re-goods-filter 商品筛选) | `docs/components/goods-filter.md` |
172
+ | `<re-quick-enter>` | 快捷入口 | 快捷入口(README:re-quick-enter 快捷入口) | `docs/components/quick-enter.md` |
173
+ | `<re-search-history>` | 搜索历史 | 搜索历史(README);1.0.5 起 `suggestData` 联想关键词走虚拟渲染(`suggestMaxHeight`) | `docs/components/search-history.md` |
174
+ | `<re-product-feed>` | 商品 Feed 流 | 商品 Feed 流(README:re-product-feed 商品 Feed 流) | `docs/components/product-feed.md` |
175
+ | `<re-order-cancel-panel>` | 订单取消面板 | 订单取消面板(README:re-order-cancel-panel 订单取消面板) | `docs/components/order-cancel-panel.md` |
176
+ | `<re-order-remark>` | 订单备注 | 订单备注(README:re-order-remark 订单备注) | `docs/components/order-remark.md` |
177
+ | `<re-login>` | 登录 | 登录(README:re-login 登录) | `docs/components/login.md` |
178
178
 
179
179
  ## 全局配置 Config(1)
180
180
 
181
- | 组件 | 中文名 | 用途 | 文档路径 |
182
- | --- | --- | --- | --- |
181
+ | 组件 | 中文名 | 用途 | 文档路径 |
182
+ | ---------------------- | -------- | ------------------------------------------------------- | ------------------------------------ |
183
183
  | `<re-config-provider>` | 全局配置 | 全局配置组件,用于统一管理主题、国际化语言和全局z-index | `docs/components/config-provider.md` |
184
184
 
185
185
  ## 有文档页但未收入 sidebar(2)
186
186
 
187
- | 组件 | 中文名 | 用途 | 文档路径 |
188
- | --- | --- | --- | --- |
189
- | `<re-chat>` + `<re-chat-*>` | 智能对话 | 基于 uni-app x 实现的聊天列表业务组件,支持左右角色气泡、头像、时间、状态与底部输入区插槽。 | `docs/components/chat.md` |
190
- | `<re-indexes-anchor>` | 索引锚点 | 用于配合 `re-indexes` 自定义索引分组标题与吸顶锚点展示。既可用于 `anchor` 作用域插槽,也可直接作为 `re-indexes` 默认插槽中的锚点子组件。 | `docs/components/indexes-anchor.md` |
187
+ | 组件 | 中文名 | 用途 | 文档路径 |
188
+ | --------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
189
+ | `<re-chat>` + `<re-chat-*>` | 智能对话 | 基于 uni-app x 实现的聊天列表业务组件,支持左右角色气泡、头像、时间、状态与底部输入区插槽。 | `docs/components/chat.md` |
190
+ | `<re-indexes-anchor>` | 索引锚点 | 用于配合 `re-indexes` 自定义索引分组标题与吸顶锚点展示。既可用于 `anchor` 作用域插槽,也可直接作为 `re-indexes` 默认插槽中的锚点子组件。 | `docs/components/indexes-anchor.md` |
191
191
 
192
192
  > `re-chat` 在 `README.md` 的「业务(15个)」清单里,但 `sidebar.ts` 的「业务 Business」只有 14 项;`re-indexes-anchor` 两侧都未单列(它是 `re-indexes` 的配套锚点组件,源码目录为 `re-indexes-anchor/`,**没有 readme.md**)。
193
193
 
194
194
  ## 存在于 uni_modules、但没有独立文档页的组件(3)
195
195
 
196
- | 组件 | 说明 | 来源 |
197
- | --- | --- | --- |
198
- | `re-common` | 基础模块:类型定义、样式转换、单位补全、唯一 ID、边界值处理等底层工具(`type.uts`、`re-common.uvue`) | `uni_modules/reglow-review/components/re-common/readme.md`、`docs/guide/introduction.md` |
199
- | `re-theme` | 基础模块:把 `--re-*` 设计令牌注入当前作用域,支持暗色与局部主题覆盖 | `uni_modules/reglow-review/components/re-theme/readme.md`、`docs/guide/theme.md` |
200
- | `re-slide-captcha` | 滑动验证组件,1.0.2 新增;`pages/input/slide-captcha` 有演示页,但 `docs/components/` 无对应文档页 | `uni_modules/reglow-review/components/re-slide-captcha/readme.md`、`CHANGELOG.md` 1.0.2 |
196
+ | 组件 | 说明 | 来源 |
197
+ | ------------------ | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
198
+ | `re-common` | 基础模块:类型定义、样式转换、单位补全、唯一 ID、边界值处理等底层工具(`type.uts`、`re-common.uvue`) | `uni_modules/reglow-review/components/re-common/readme.md`、`docs/guide/introduction.md` |
199
+ | `re-theme` | 基础模块:把 `--re-*` 设计令牌注入当前作用域,支持暗色与局部主题覆盖 | `uni_modules/reglow-review/components/re-theme/readme.md`、`docs/guide/theme.md` |
200
+ | `re-slide-captcha` | 滑动验证组件,1.0.2 新增;`pages/input/slide-captcha` 有演示页,但 `docs/components/` 无对应文档页 | `uni_modules/reglow-review/components/re-slide-captcha/readme.md`、`CHANGELOG.md` 1.0.2 |
201
201
 
202
202
  ## 常见选型对照
203
203
 
204
- | 需求 | 选它 | 不要选 / 注意 |
205
- | --- | --- | --- |
206
- | 表单输入 + 校验 | `<re-form>` + `<re-form-item>` + `<re-input>` / `<re-textarea>` | 不要自己写校验;`re-form` 已含字段注册、校验、重置与首个错误滚动 |
207
- | 省市区三级选择 | `<re-address>`(`provinces` 传数据;大数据量用 `lazy` + `level-select`) | 自定义多级联动/非行政区层级 → `<re-cascader>`(`options` + `lazy`) |
208
- | 树形数据选择 | `<re-tree-select>` | 层级型联选用 `<re-cascader>`,两者数据结构不同 |
209
- | 时间选择 | 单点时间 → `<re-time-picker>`;时间段 → `<re-time-select>`;日期/日期时间 → `<re-date-time-picker>` / `<re-calendar>` | 不要把 `re-calendar`(面板/弹窗形态)当输入框用 |
210
- | 长列表 | `<re-list>`(固定行高虚拟列表);分页追加 → `<re-infinite-loading>` | 两者都是 `scroll-view` 容器,**不要互相嵌套** |
211
- | 下拉刷新 | `<re-pull-down-refresh>` | 与 `re-infinite-loading` 的分工:一个管顶部刷新、一个管底部加载 |
212
- | 轻量浮层 / 模态 | 轻提示 `<re-toast>`、全局通知 `<re-message>`、确认对话框 `<re-dialog>`、通用浮层 `<re-popup>`、侧滑面板 `<re-drawer>`、底部动作列表 `<re-action-sheet>` | 都用 `visible` + `update:visible` 控制显隐,注意各组件文档的 Props 差异 |
213
- | 图标 | `<re-icon>`(内置 svg / 图片地址 / 文本三种渲染方式) | 不要额外引图标字体 |
214
- | 主题与暗色 | `<re-config-provider>`(全局)/ `<re-theme>`(局部) | 多数组件读 `--re-*`,但 `re-form` / `re-input` / `re-radio` / `re-switch` / `re-avatar` / `re-form-item` 内部用 `--td-*`,见 `BEST_PRACTICES.md` §6 |
215
- | 营销玩法 | 大转盘 `<re-turntable>`、砸金蛋 `<re-hit-eggs>`、九宫格 `<re-square-nine>`、摇骰子 `<re-shake-dice>`、红包雨 `<re-gift-rain>`、跑马灯 `<re-marquee>` 等(见「营销 Marketing」分类) | 各玩法组件的 props/事件以 `docs/components/<name>.md` 与源码为准 |
216
- | 电商业务组件 | 规格 `<re-sku>`、提交栏 `<re-submit-bar>`、购物车栏 `<re-cart-bar>`、优惠券 `<re-coupon>`、分享 `<re-share-sheet>`、搜索历史 `<re-search-history>`、商品流 `<re-product-feed>` | 这些组件偏业务耦合,接入前先确认其数据入参结构(部分文档 Props 表为空,需读源码) |
204
+ | 需求 | 选它 | 不要选 / 注意 |
205
+ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
206
+ | 表单输入 + 校验 | `<re-form>` + `<re-form-item>` + `<re-input>` / `<re-textarea>` | 不要自己写校验;`re-form` 已含字段注册、校验、重置与首个错误滚动 |
207
+ | 省市区三级选择 | `<re-address>`(`provinces` 传数据;大数据量用 `lazy` + `level-select`) | 自定义多级联动/非行政区层级 → `<re-cascader>`(`options` + `lazy`) |
208
+ | 树形数据选择 | `<re-tree-select>` | 层级型联选用 `<re-cascader>`,两者数据结构不同 |
209
+ | 时间选择 | 单点时间 → `<re-time-picker>`;时间段 → `<re-time-select>`;日期/日期时间 → `<re-date-time-picker>` / `<re-calendar>` | 不要把 `re-calendar`(面板/弹窗形态)当输入框用 |
210
+ | 长列表 | `<re-list>`(固定行高虚拟列表);分页追加 → `<re-infinite-loading>` | 两者都是 `scroll-view` 容器,**不要互相嵌套** |
211
+ | 下拉刷新 | `<re-pull-down-refresh>` | 与 `re-infinite-loading` 的分工:一个管顶部刷新、一个管底部加载 |
212
+ | 轻量浮层 / 模态 | 轻提示 `<re-toast>`、全局通知 `<re-message>`、确认对话框 `<re-dialog>`、通用浮层 `<re-popup>`、侧滑面板 `<re-drawer>`、底部动作列表 `<re-action-sheet>` | 都用 `visible` + `update:visible` 控制显隐,注意各组件文档的 Props 差异 |
213
+ | 图标 | `<re-icon>`(内置 svg / 图片地址 / 文本三种渲染方式) | 不要额外引图标字体 |
214
+ | 主题与暗色 | `<re-config-provider>`(全局)/ `<re-theme>`(局部) | 多数组件读 `--re-*`,但 `re-form` / `re-input` / `re-radio` / `re-switch` / `re-avatar` / `re-form-item` 内部用 `--td-*`,见 `BEST_PRACTICES.md` §6 |
215
+ | 营销玩法 | 大转盘 `<re-turntable>`、砸金蛋 `<re-hit-eggs>`、九宫格 `<re-square-nine>`、摇骰子 `<re-shake-dice>`、红包雨 `<re-gift-rain>`、跑马灯 `<re-marquee>` 等(见「营销 Marketing」分类) | 各玩法组件的 props/事件以 `docs/components/<name>.md` 与源码为准 |
216
+ | 电商业务组件 | 规格 `<re-sku>`、提交栏 `<re-submit-bar>`、购物车栏 `<re-cart-bar>`、优惠券 `<re-coupon>`、分享 `<re-share-sheet>`、搜索历史 `<re-search-history>`、商品流 `<re-product-feed>` | 这些组件偏业务耦合,接入前先确认其数据入参结构(部分文档 Props 表为空,需读源码) |
@@ -32,13 +32,13 @@ description: ReView(reglow-review)uni-app x 移动端组件库的检索、
32
32
 
33
33
  ### 3.1 技术栈与运行方式
34
34
 
35
- | 事项 | 事实 | 来源 |
36
- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
37
- | 技术栈 | uni-app x,使用 **uts 强类型语法** + **uvue 组件**开发(不是 Vue SFC 的普通 web 写法) | `README.md`、`docs/index.md` |
38
- | 编译运行 | **uni-app x 项目不支持 npm CLI 方式开发**,编译运行全部通过 HBuilderX 内置编译器;需 HBuilderX 3.99+ | `README.md` |
39
- | npm 用途 | `package.json` 的脚本仅用于文档站与自动化测试(`docs:dev`、`test:h5` 等),**不是**项目编译入口 | `README.md`、`package.json` |
40
- | 组件规模 | `docs/components/*.md` 共 **121 篇组件文档**;`uni_modules/reglow-review/components/` 下 **122 个含 `readme.md` 的组件目录**(含基础模块 `re-common`/`re-theme`、以及未单独建文档页的 `re-slide-captcha`) | 实测目录;`README.md` 顶部口径为「124+ 组件」、`docs/index.md` 口径为「65+ 组件」,**以实测 121 篇文档为准** |
41
- | 分类 | 9 个分类:基础 Basic / 导航 Navigation / 输入 Input / 数据展示 Data Display / 反馈 Feedback / 列表与布局 List & Layout / 营销 Marketing / 业务 Business / 全局配置 Config | `docs/.vitepress/sidebar.ts` |
35
+ | 事项 | 事实 | 来源 |
36
+ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
37
+ | 技术栈 | uni-app x,使用 **uts 强类型语法** + **uvue 组件**开发(不是 Vue SFC 的普通 web 写法) | `README.md`、`docs/index.md` |
38
+ | 编译运行 | **uni-app x 项目不支持 npm CLI 方式开发**,编译运行全部通过 HBuilderX 内置编译器;需 HBuilderX 3.99+ | `README.md` |
39
+ | npm 用途 | `package.json` 的脚本仅用于文档站与自动化测试(`docs:dev`、`test:h5` 等),**不是**项目编译入口 | `README.md`、`package.json` |
40
+ | 组件规模 | `docs/components/*.md` 共 **121 篇组件文档**;`uni_modules/reglow-review/components/` 下 **122 个含 `readme.md` 的组件目录**(含基础模块 `re-common`/`re-theme`、以及未单独建文档页的 `re-slide-captcha`) | 实测目录;`README.md` 顶部口径为「124+ 组件」、`docs/index.md` 口径为「65+ 组件」,**以实测 121 篇文档为准** |
41
+ | 分类 | 9 个组件分类:基础 Basic / 导航 Navigation / 输入 Input / 数据展示 Data Display / 反馈 Feedback / 列表与布局 List & Layout / 营销 Marketing / 业务 Business / 全局配置 Config(另有文档分区「指南 Guide」) | `docs/.vitepress/sidebar.ts` |
42
42
 
43
43
  ### 3.2 支持的平台(以 README 为准)
44
44
 
@@ -61,13 +61,14 @@ description: ReView(reglow-review)uni-app x 移动端组件库的检索、
61
61
  ### 3.4 主题与国际化
62
62
 
63
63
  - **主题**:基于 CSS 变量的主题系统,令牌前缀为 `--re-*`(`docs/guide/theme.md` 列出 `--re-color-primary`、`--re-text-color-primary`、`--re-radius-*` 等);通过 `re-config-provider` 的 `theme="dark"` 切暗色、`themeVars` 覆盖变量;只想作用于局部时用 `re-theme`(`theme` + `themeVars`)。
64
- - **注意**:部分组件的内部样式仍沿用 TDesign 的 `--td-*` 变量名(实测 `re-form` 的 `--td-form-bg-color`、`re-avatar`、`re-input`、`re-radio`、`re-switch`、`re-form-item` 共 6 个组件、75 处),所以「覆盖变量改主题」时优先用组件文档给出的 `customStyle` / 颜色类 prop,而不是假设所有组件都读 `--re-*`。
64
+ - **深色模式(1.3.0)**:147 个组件已完成深色扫描,89 个组件颜色变量化(使用主题变量的组件 107 个),`theme="dark"` 后常规组件自动变暗;8 个语义色组件(toast / fab / overlay / swiper / image-viewer / scratch-card / turntable / watermark)有意保持固定配色。适配清单见 `docs/guide/dark-mode-audit.md`。
65
+ - **注意**:仍有 6 个组件沿用 TDesign 的 `--td-*` 变量名(`re-form`、`re-form-item`、`re-input`、`re-radio`、`re-switch`、`re-avatar`)。`darkTheme` 已内置对应暗色 `--td-*` 值,切 `theme="dark"` 可正常变暗;但业务自定义品牌色时仍需同时覆盖 `--re-*` 与该组件的 `--td-*`,或用组件文档给出的 `customStyle` / 颜色类 prop。
65
66
  - **国际化**:内置 `zh-CN` / `zh-TW` / `en-US`,语言包为 **uts 文件**:`uni_modules/reglow-review/utssdk/re-config-provider/locale/{zh-CN,zh-TW,en-US}.uts`;通过 `re-config-provider` 的 `locale` 切换、`localeConfig` 覆盖文案(`docs/guide/locale.md`)。**组件源码中未使用 `vue-i18n`**(实测 `uni_modules` 下无 `vue-i18n` 引用),故不要把 `vue-i18n` 的 `useI18n()` 写法套到 ReView 上。
66
67
 
67
68
  ### 3.5 版本
68
69
 
69
- - 当前版本 **1.0.5(2026-09-14)**(`CHANGELOG.md`、`docs/guide/changelog.md`、`uni_modules/reglow-review/package.json` 的 `version`)。
70
- - 最近两版的关键行为变化(排障必读):1.0.5 重构了 `re-cascader` 列渲染与 `re-address` 懒加载、增强 `re-search-history`(联想关键词虚拟渲染);1.0.4 批量修复了模板 `v-for` 索引被推断成 `number | string | symbol` 的 HBuilderX 编译告警,并重构 `re-indexes` 吸顶实现。
70
+ - 当前版本 **1.3.0(2026-10-28)**(`CHANGELOG.md`、`docs/guide/changelog.md`、`uni_modules/reglow-review/package.json` 的 `version`)。
71
+ - 最近三版的关键行为变化(排障必读):1.3.0 完成全量组件深色主题适配(`theme="dark"` 自动变暗)、`re-card` 由商品卡片重构为通用卡片(旧商品字段/插槽已移除)、`re-tabs` 重写可滚动测量与定位、`re-cart-bar` 修复非吸底安全区白边与胶囊按钮高度、国际化支持响应式 `locale`、`re-login` 语言包与协议交互完善;1.2.0 全面重构 `re-login`(5 套预设模板 + `pageMode`)、增强 `re-tab-bar`/`re-navbar`、`re-drag` 支持 H5 鼠标拖拽。
71
72
 
72
73
  ## 4. 核心工作流(配合 review-mcp)
73
74
 
@@ -15,7 +15,7 @@
15
15
  | `search_review_docs` | 跨文档与源码关键词检索 | 关键词(可多个)、`category`、`limit`、`version` | `组件/文件:行号` + 上下文片段 |
16
16
  | `get_review_guide` | 库级指南 | `topic`:安装 / easycom / 主题 / i18n / 平台 / 约定 等 | 库级说明 |
17
17
 
18
- **共同参数 `version`**:不传 = 项目本地已安装版本(当前基线 **1.0.6**,见 `CHANGELOG.md`)。
18
+ **共同参数 `version`**:不传 = 项目本地已安装版本(当前基线 **1.3.0**,见 `CHANGELOG.md`)。
19
19
 
20
20
  ## 2. 基础查询流程(四步走)
21
21
 
@@ -408,7 +408,7 @@ const cardStyle = styles({
408
408
 
409
409
  | 步骤 | 调用 | 参数 | 判断 |
410
410
  | ---- | ---------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------- | --------------------------------------------- |
411
- | 1 | `get_review_guide` | `{ topic: "changelog" }` 或直接读 `CHANGELOG.md` | 先确认当前版本 1.0.6,再看最近两版是否已修过同类问题 |
411
+ | 1 | `get_review_guide` | `{ topic: "changelog" }` 或直接读 `CHANGELOG.md` | 先确认当前版本 1.3.0,再看最近三版是否已修过同类问题 |
412
412
  | 2 | `search_review_docs` | `{ keywords: ["number | string | symbol", "v-for"], limit: 20 }` | 定位「模板 v-for 索引类型」告警的历史修复范围 |
413
413
  | 3 | `get_file_code` | `{ component: "cascader", file: "re-cascader.uvue", startLine: 27, endLine: 80 }` | 确认列渲染是模板内直接 `v-for`(1.0.5 重构点),不再是内部 `re-cascader-item` |
414
414
  | 4 | `list_component_files` | `{ component: "indexes" }` | 看到 `page-scroll.uts` + `re-indexes.uvue`,对应 1.0.4 的吸顶重构 |