@qilitt-mickey/vue3-temp-skill 1.1.74 → 1.1.76

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 (65) hide show
  1. package/SKILL.md +137 -137
  2. package/mapping/basic/color.json +35 -35
  3. package/mapping/basic/radius.json +17 -17
  4. package/mapping/basic/semantic-values.json +72 -72
  5. package/mapping/basic/spacing.json +21 -21
  6. package/mapping/basic/typography.json +21 -21
  7. package/mapping/component/button.json +90 -90
  8. package/mapping/component/card.json +31 -31
  9. package/mapping/component/input.json +42 -42
  10. package/mapping/component/overlay.json +79 -79
  11. package/mapping/component/pagination.json +34 -34
  12. package/mapping/component/table.json +42 -42
  13. package/mapping/component/tag.json +48 -48
  14. package/mapping/layout/breakpoint.json +20 -20
  15. package/mapping/scenes/admin/content.json +497 -494
  16. package/mapping/scenes/admin/layout.json +577 -574
  17. package/package.json +1 -1
  18. package/parser/fixtures/changeset-legacy.json +11 -11
  19. package/parser/fixtures/changeset-neg1.json +8 -8
  20. package/parser/fixtures/changeset-neg2.json +10 -10
  21. package/parser/fixtures/changeset-neg3.json +22 -22
  22. package/parser/fixtures/changeset-neg5-g8-stub.json +26 -26
  23. package/parser/fixtures/changeset-neg7-g10-dims.json +57 -57
  24. package/parser/fixtures/changeset-neg9-g6-token-chain.json +34 -0
  25. package/parser/fixtures/changeset-pos-g6-token-chain.json +35 -0
  26. package/parser/fixtures/changeset-pos-theme-nometa.json +260 -260
  27. package/parser/fixtures/changeset-registry-gap.json +29 -29
  28. package/parser/fixtures/fake-project/src/styles/app.scss +5 -5
  29. package/parser/fixtures/fake-project/src/views/list.vue +13 -13
  30. package/parser/fixtures/registry-bad.json +11 -11
  31. package/parser/fixtures/registry-g6-token-chain.json +10 -0
  32. package/parser/fixtures/verify/actual-clean.json +35 -35
  33. package/parser/fixtures/verify/actual.json +33 -33
  34. package/parser/fixtures/verify/mockup-g6-content.html +12 -0
  35. package/parser/fixtures/verify/mockup-neutral.html +26 -26
  36. package/parser/fixtures/verify/mockup-nometa.html +26 -26
  37. package/parser/fixtures/verify/snapshot-latest.json +102 -102
  38. package/parser/index.js +32 -1
  39. package/parser/loader.js +66 -66
  40. package/parser/validator.js +206 -206
  41. package/references/auth-pages.md +217 -217
  42. package/references/base-code-dict.md +56 -56
  43. package/references/data-compare.md +509 -509
  44. package/references/data-writeback.md +124 -124
  45. package/references/design-apply.md +167 -167
  46. package/references/detail-page.md +119 -119
  47. package/references/download-export.md +97 -97
  48. package/references/feedback-loading.md +104 -104
  49. package/references/feedback-ui.md +134 -134
  50. package/references/i18n-localization.md +230 -230
  51. package/references/layout-theme.md +2 -0
  52. package/references/project-inventory.md +438 -438
  53. package/references/rich-text.md +94 -94
  54. package/references/seamless-scroll.md +47 -47
  55. package/references/steps/step0-preflight.md +58 -58
  56. package/references/steps/step1-match.md +5 -2
  57. package/references/steps/step3-style.md +38 -33
  58. package/references/steps/step3b-shell.md +2 -0
  59. package/references/steps/step3c-priority.md +26 -26
  60. package/references/steps/step4-l3.md +14 -14
  61. package/references/steps/step5-gates.md +65 -63
  62. package/references/steps/step6-verify.md +77 -77
  63. package/references/verify-captcha.md +119 -119
  64. package/scripts/check.mjs +24 -0
  65. package/scripts/design-audit.mjs +208 -3
@@ -1,438 +1,438 @@
1
- ---
2
- name: project-inventory
3
- description: 项目资产清单:三方库、Re* 组件、依赖安装表
4
- scope: project
5
- tags: [查Re, 版本, 安装, 依赖清单, 库版本]
6
- ---
7
-
8
- # 项目资产清单(Project Inventory)
9
-
10
- ## 何时读本文件
11
-
12
- 按需加载(非始终):查 Re* / Hook 名、确认库版本、命中 addon、缺依赖需安装时。硬约束与壳摘要见 `core-kernel`。
13
-
14
- - 已有封装须复用;选型表指定库勿擅自替换;新依赖须待确认
15
- - 版本对齐模板 `package.json`(2026-08 冻结);先查业务项目 `package.json`
16
- - 缺失 → 先说明缺少的能力、影响范围和精确版本,再征得确认后安装;禁止 `@latest` / 无版本号
17
-
18
- ## 参考模板(vue3-web-temp)策略
19
-
20
- | 层级 | 说明 |
21
- |------|------|
22
- | **core** | 以业务项目当前 `package.json` 为准;不要假设模板或派生项目的依赖分层完全一致 |
23
- | **可选能力** | ECharts、Vant、VXE、BPMN、G6、文件预览、富文本等能力必须先检查当前项目是否已安装,再决定是否安装或直接复用 |
24
- | **标准样板** | 列表/详情/表单等完整示例在本 Skill `references/`;模板 `views/` 中的示例页面只用于确认真实 API、组件和壳层接线,不直接当生产页面复制 |
25
-
26
- AI 生成业务代码时:以 Skill 模块标准样板为准;先查 `package.json` 是否已有 addon,缺失则先列安装命令征得确认。
27
-
28
- ---
29
-
30
- ## 一、三方库清单(按功能分类)
31
-
32
- > 版本号记录的是当前参考模板的已验证版本;真正执行前必须以目标业务项目的 `package.json`、锁文件和构建接线为准。`scope` 仅表示参考模板中的常见用途,不代表所有派生项目都已安装。
33
-
34
- ### UI 框架
35
-
36
- | 库 | 版本 | scope | 用途 | 备注 |
37
- |---|---|---|---|---|
38
- | `element-plus` | `2.14.2` | core | PC 端 UI | 自动引入 |
39
- | `vant` | `4.10.0` | addon | 移动端 UI | 见 mobile-h5 |
40
- | `plus-pro-components` | `0.1.31` | addon | EP 企业扩展(ReCheckCard 等) | 见 form-advanced |
41
- | `vxe-table` | `4.19.21` | addon | 高性能大数据表格 | 见 table-vxe |
42
- | `vxe-pc-ui` | `4.15.19` | addon | VXE 配套 PC UI | 与 vxe-table 同装 |
43
-
44
- ### 图表与可视化
45
-
46
- | 库 | 版本 | scope | 用途 | 备注 |
47
- |---|---|---|---|---|
48
- | `echarts` | `6.1.0` | addon | 图表引擎 | + `ReEchart` |
49
- | `echarts-wordcloud` | `2.1.0` | addon | 词云 | ECharts 扩展 |
50
- | `relation-graph-vue3` | `2.2.11` | addon | 关系/知识图谱 | 见 graph-relation |
51
- | `@antv/g6` | `5.1.1` | addon | 图可视化 | 见 flowchart-g6 |
52
- | `g6-extension-vue` | `0.1.0` | addon | G6 Vue 节点 | 与 g6 同装 |
53
-
54
- ### 工作流与流程
55
-
56
- | 库 | 版本 | scope | 用途 | 备注 |
57
- |---|---|---|---|---|
58
- | `bpmn-js` | `18.19.0` | addon | BPMN Viewer(只读) | 见 workflow-bpmn;不用 Modeler |
59
- | `jsplumb` | `2.15.6` | addon | 连线/字段映射 | 见 data-mapping |
60
-
61
- ### 富文本与编辑器
62
-
63
- | 库 | 版本 | scope | 用途 | 备注 |
64
- |---|---|---|---|---|
65
- | `@wangeditor/editor` | `5.1.23` | addon | 富文本 | + `ReRichText` |
66
-
67
- ### 图标
68
-
69
- > 用法规范见专项模块 **`icons`**(`references/icons.md`)。
70
-
71
- | 库 | 版本 | scope | 用途 | 备注 |
72
- |---|---|---|---|---|
73
- | `@iconify/vue` | `5.0.1` | core | 图标框架 | 经全局 `svg-icon` |
74
- | `@iconify-json/ep` | `1.2.4` | core | EP 图标集 | devDependency |
75
- | `@iconify-json/ri` | `1.2.10` | core | Remix 图标集 | devDependency |
76
- | `vite-plugin-svg-icons` | `2.0.1` | core | SVG 雪碧图 | + `ReSvgIcon`;扫描 `src/icons/svg` |
77
- | `vite-svg-loader` | `5.1.1` | core | `svg?component` | 见 `build/plugins/SvgLoader.ts` |
78
-
79
- ### 状态管理与路由
80
-
81
- | 库 | 版本 | scope | 用途 | 备注 |
82
- |---|---|---|---|---|
83
- | `pinia` | `3.0.4` | core | 状态管理 | |
84
- | `pinia-plugin-persistedstate` | `4.7.1` | core | Pinia 持久化 | |
85
- | `vue-router` | `5.1.0` | core | 路由 Hash + 动态路由 | |
86
-
87
- ### HTTP 与加密
88
-
89
- | 库 | 版本 | scope | 用途 | 备注 |
90
- |---|---|---|---|---|
91
- | `axios` | `1.19.0` | core | HTTP | 仅经 `@/utils/http` |
92
- | `crypto-js` | `4.2.0` | core | AES | + `@types/crypto-js@4.2.2` |
93
- | `jsencrypt` | `3.5.4` | core | RSA | |
94
- | `js-md5` | `0.8.3` | core | MD5 签名 | + `@types/js-md5@0.8.0` |
95
-
96
- ### 工具库
97
-
98
- | 库 | 版本 | scope | 用途 | 备注 |
99
- |---|---|---|---|---|
100
- | `@vueuse/core` | `14.3.0` | core | 组合式工具 | 自动引入 |
101
- | `@vueuse/math` | `14.3.0` | core | 数学组合式 | |
102
- | `@vueuse/motion` | `3.0.3` | core | 入场动画 | `v-motion` |
103
- | `@pureadmin/utils` | `2.6.4` | core | 下载/存储/设备等 | |
104
- | `dayjs` | `1.11.21` | core | 日期 | 不用 moment |
105
- | `qs` | `6.15.3` | core | query 序列化 | + `@types/qs@6.15.1` |
106
- | `js-cookie` | `3.0.8` | core | Cookie | + `@types/js-cookie@3.0.6` |
107
- | `mitt` | `3.0.1` | core | 事件总线 | |
108
- | `chroma-js` | `3.2.0` | core | 颜色/主题 | + `@types/chroma-js@3.1.2` |
109
- | `address-parse` | `1.2.19` | addon | 中文地址解析 | 见 form-advanced |
110
- | `nprogress` | `0.2.0` | core | 路由进度条 | + `@types/nprogress@0.2.3` |
111
- | `responsive-storage` | `2.2.0` | core | 响应式 storage | |
112
- | `sortablejs` | `1.15.7` | core | 拖拽排序 | + `@types/sortablejs@1.15.9` |
113
- | `vue-dompurify-html` | `5.3.0` | core | 安全 HTML | |
114
- | `browser-image-compression` | `2.0.2` | addon | 上传前压缩 | 见 file-management |
115
-
116
- ### 文件预览
117
-
118
- | 库 | 版本 | scope | 用途 | 备注 |
119
- |---|---|---|---|---|
120
- | `@file-viewer/core` | `2.1.14` | addon | 预览核心 | 三件套同版本 |
121
- | `@file-viewer/vue3` | `2.1.14` | addon | Vue3 集成 | + `ReFileViewer` |
122
- | `@file-viewer/preset-all` | `2.1.14` | addon | 全格式预设 | |
123
- | `@file-viewer/vite-plugin` | `2.1.14` | addon | Vite 插件 | **devDependency**;见 file-management |
124
-
125
- ### 二维码与条形码
126
-
127
- | 库 | 版本 | scope | 用途 | 备注 |
128
- |---|---|---|---|---|
129
- | `qrcode` | `1.5.4` | addon | 二维码 | + `ReQrcode`;`@types/qrcode@1.5.6` |
130
- | `jsbarcode` | `3.12.3` | addon | 条形码 | + `ReBarcode` |
131
-
132
- ### 验证与动画
133
-
134
- | 库 | 版本 | scope | 用途 | 备注 |
135
- |---|---|---|---|---|
136
- | `vue3-puzzle-vcode` | `1.1.7` | addon | 滑块拼图 | + `ReVerify` |
137
- | `typeit` | `8.8.7` | addon | 打字机 | + `ReTypeit` |
138
- | `@tsparticles/slim` | `4.3.1` | core | 粒子 | 登录背景 |
139
- | `@tsparticles/vue3` | `4.3.1` | core | 粒子 Vue3 | |
140
- | `tippy.js` | `6.3.7` | core | Tooltip | |
141
- | `vue-tippy` | `6.7.1` | core | Tippy Vue 封装 | |
142
-
143
- ### 微信 / 移动调试
144
-
145
- | 库 | 版本 | scope | 用途 | 备注 |
146
- |---|---|---|---|---|
147
- | `weixin-js-sdk` | `1.6.5` | addon | 微信 JS-SDK | 见 wechat-js |
148
- | `vconsole` | `3.15.1` | addon | 移动调试台 | 见 mobile-h5 |
149
- | `vite-plugin-vconsole` | `2.1.1` | addon | vConsole Vite 插件 | **devDependency** |
150
-
151
- ### 布局 / CSS
152
-
153
- | 库 | 版本 | scope | 用途 | 备注 |
154
- |---|---|---|---|---|
155
- | `grid-layout-plus` | `1.1.1` | addon | 拖拽网格 | 大屏/仪表盘 |
156
- | `unocss` | `66.7.4` | core | 原子化 CSS | 及相关 `@unocss/*` 同版本 |
157
-
158
- ### 构建链路常用插件(core,一般勿随业务安装)
159
-
160
- | 库 | 版本 | 用途 |
161
- |---|---|---|
162
- | `vite` | `8.1.2` | 构建 |
163
- | `@vitejs/plugin-vue` | `6.0.7` | SFC |
164
- | `@vitejs/plugin-vue-jsx` | `5.1.6` | JSX |
165
- | `unplugin-auto-import` | `21.0.0` | 自动 API |
166
- | `unplugin-vue-components` | `32.1.0` | 自动组件 |
167
- | `@vant/auto-import-resolver` | `1.3.0` | Vant 解析(mobile 时需要) |
168
- | `vite-plugin-fake-server` | `2.2.4` | Mock(`VITE_USE_MOCK`) |
169
- | `vite-plugin-compression` | `0.5.1` | Gzip |
170
- | `rollup-plugin-visualizer` | `7.0.1` | 包分析 |
171
- | `vite-plugin-bundle-obfuscator` | `1.13.0` | 混淆 |
172
- | `vite-plugin-vue-devtools` | `8.1.5` | DevTools |
173
- | `vite-svg-loader` | `5.1.1` | SVG as component |
174
- | `vue` | `3.5.39` | 框架 |
175
- | `vue-i18n` | `11.4.6` | 国际化 |
176
- | `typescript` | `6.0.3` | 类型 |
177
- | `vue-tsc` | `3.3.6` | 类型检查 |
178
-
179
- ---
180
-
181
- ## 二、Re* 自定义组件清单
182
-
183
- > 所有自定义组件以 `Re` 为前缀。开发前先查本表,禁止重复造轮子。
184
- > **用法**按功能模块写(见 `ui-components` 索引),本表只做名录 + 落点。
185
-
186
- | 组件 | 用途 | 目录 | 用法模块 |
187
- |---|---|---|---|
188
- | **ReAnchor** | 锚点导航 | `ReAnchor/` | `form-advanced` |
189
- | **ReAttachment** | 附件上传/管理 | `ReAttachment/` | `file-management` |
190
- | **ReAuth** | 权限包裹 | `ReAuth/` | `permission-auth` |
191
- | **ReAvatars** | 头像组 | `ReAvatars/` | 业务页 / `data-screen` |
192
- | **ReBarcode** | 条形码 | `ReBarcode/` | `qrcode-barcode` |
193
- | **ReCascader** | 级联选择 | `ReCascader/` | `form-advanced` |
194
- | **ReCheckCard** | 卡片多选 | `ReCheckCard/` | `form-advanced` |
195
- | **ReCollapsible** | 折叠 | `ReCollapsible/` | `form-advanced` |
196
- | **ReDatePicker** | 日期 | `ReDatePicker/` | `form-advanced` |
197
- | **ReDateRangePicker** | 日期范围 | `ReDateRangePicker/` | `form-advanced` |
198
- | **ReDialog** | 弹窗(`fullscreen` 默认 false) | `ReDialog/` | `form-advanced` |
199
- | **ReDialogResize** | 可缩放弹窗 | `ReDialogResize/` | `form-advanced` |
200
- | **ReDragVerify** | 滑块拖拽验证 | `ReDragVerify/` | `verify-captcha` |
201
- | **ReEchart** | ECharts 容器 | `ReEchart/` | `chart-echarts` |
202
- | **ReFileViewer** | 文件预览 | `ReFileViewer/` | `file-management` |
203
- | **ReFlicker** | 闪烁点 | `ReFlicker/` | `data-screen` |
204
- | **ReGrid** | 响应式栅格 | `ReGrid/` | `crud-pages` |
205
- | **ReGridItem** | 栅格子项 | `ReGridItem/` | `crud-pages` |
206
- | **ReHeaderPage** | 页头 | `ReHeaderPage/` | `crud-pages` / `detail-page` |
207
- | **ReIconPicker** | 图标选择 | `ReIconPicker/` | `icons` |
208
- | **ReImageVerify** | 图形验证码 | `ReImageVerify/` | `verify-captcha` |
209
- | **ReLanguageSwitch** | 语言切换 | `ReLanguageSwitch/` | `layout-theme` |
210
- | **ReNoticeBar** | 通知栏 | `ReNoticeBar/` | `feedback-loading` |
211
- | **RePagination** | 分页 | `RePagination/` | `crud-pages` |
212
- | **RePopupPicker** | 移动端弹出选择 | `RePopupPicker/` | `mobile-h5` |
213
- | **ReQrcode** | 二维码 | `ReQrcode/` | `qrcode-barcode` |
214
- | **ReRichText** | 富文本 | `ReRichText/` | `rich-text` |
215
- | **ReSeamlessScroll** | 无缝滚动 | `ReSeamlessScroll/` | `seamless-scroll` |
216
- | **ReSegmented** | 分段控制 | `ReSegmented/` | `layout-theme` |
217
- | **ReSelectQuery** | 远程分页选择 | `ReSelectQuery/` | `form-advanced` |
218
- | **ReSelectVant** | 移动端选择 | `ReSelectVant/` | `mobile-h5` |
219
- | **ReSmsCode** | 短信倒计时 | `ReSmsCode/` | `verify-captcha` |
220
- | **ReSvgIcon** | SVG / Iconify | `ReSvgIcon/` | `icons` |
221
- | **ReTableBar** | 表格工具栏 | `ReTableBar/` | `crud-pages` |
222
- | **ReTableOperate** | 行操作(`limit` 默认 3;超出进「更多」;列宽用 `resolveOperateColumnWidth`;`:size` 跟表格密度) | `ReTableOperate/` | `crud-pages` |
223
- | **ReText** | 文本省略 | `ReText/` | `layout-theme` |
224
- | **ReTimeLine** | 时间轴 | `ReTimeLine/` | `detail-page` / 业务 |
225
- | **ReTreeLine** | 树连线 | `ReTreeLine/` | `tree-table` |
226
- | **ReTypeit** | 打字机 | `ReTypeit/` | `data-screen` |
227
- | **ReVerify** | 拼图验证 | `ReVerify/` | `verify-captcha` |
228
-
229
- 路径前缀均为 `src/components/`。
230
-
231
- ---
232
-
233
- ## 三、Hooks 清单
234
-
235
- > 所有 Hook 位于 `src/hooks/` 目录。开发新功能时必须先检查是否已有可复用的 Hook。
236
-
237
- | Hook | 用途 | 关键 API |
238
- |---|---|---|
239
- | **useApp** | 全局应用状态(布局、字典、登出等) | `baseCodeGet`、`filterValue`、`svgLoading`、`layout`、`logout` 等;顶栏高度不由此导出 |
240
- | **useDetail** | 列表→详情:写顶部 tag 并跳转 | `toDetail(name, params, title?, 'query'\|'params')`、`initToDetail(name)`、`getParameter`;路由配 `showLink:false`(不进侧栏)+`activePath`(见 `detail-page`) |
241
- | **useFormCheck** | 多表单校验聚合 | 追踪各字段校验状态,emit `form-validate` 事件 |
242
- | **useTableSearch** | 列表页搜索/分页/Loading/动态表高 | `content`(须绑 `el-card.vts-page-card`)、`multipleTableRef`(建议绑 `el-table`)、`otherRef`(表上方额外模块)、`tableHeight`(卡片底边 − 表格顶边 − 分页;空数据仍有占位高)、`paginationRef`、`tableData`、`pagination`、`loading`、`onSearch()`、`reset()`、`formRef`、`gridRef`、`collapsed` / `showCollapse` / `collapsedToggle` |
243
- | **useTags** | 多标签页管理 | 右键菜单(刷新/关闭/关闭其他/全屏) |
244
- | **useTheme** | 主题切换(暗色/亮色) | 主题色生成、布局预设、缓存重置 |
245
- | **useWebSocket** | WebSocket 通信 | `subscribe()`、`send()`、`sendRaw()`、`isConnected` |
246
- | **useWechat** | 微信 JS-SDK | `isReady`、`error` |
247
-
248
- ---
249
-
250
- ## 四、工具函数清单
251
-
252
- > 所有工具位于 `src/utils/` 目录。
253
-
254
- | 文件 | 关键导出 | 用途 |
255
- |---|---|---|
256
- | `auth.ts` | `getToken()`、`setUserToken()`、`removeToken()` | Token 管理 |
257
- | `autoUpdate.ts` | `checkUpdate()` | 前端版本检测/自动刷新 |
258
- | `changeSummaryService.ts` | `ChangeSummaryService.getChangeSummaryData()` | v-compare 变更汇总读取/元素引用修复 |
259
- | `encryptUtils.ts` | `aesEncrypt()`、`aesDecrypt()`、`rsaEncrypt()`、`md5Sign()` | 加解密工具 |
260
- | `http.ts` | `http.request()` | Axios 封装(支持 GET/POST + 加密开关 + 拦截器) |
261
- | `i18n.ts` | `getLocale()` | 语言检测 |
262
- | `imageCompression.ts` | `compressImage()` | 图片压缩(上传前) |
263
- | `message.ts` | `message()` | 消息提示封装(ElMessage 包装) |
264
- | `mitt.ts` | `mitt()` | 全局事件总线 |
265
- | `motion.tsx` | `MotionComponent` | 入场动画 TSX 组件 |
266
- | `particles.ts` | `particlesOptions` | 粒子动画配置(tsParticles v4 paint) |
267
- | `progress/` | `NProgress` | 路由进度条配置 |
268
- | `responsive.ts` | `ResponsiveStorage` | 响应式存储注入 |
269
- | `router.ts` | `hasAuth()`、路由扁平化、权限过滤 | 路由工具 |
270
- | `rule.ts` | `passwordRule`、`phoneRule` | 表单校验规则(PC) |
271
- | `tree.ts` | `handleTree()`、`buildHierarchyTree()` | 树结构转换 |
272
- | `uploadManager.ts` | `UploadManager` | 批量上传任务管理 |
273
- | `useActivity.ts` | `useActivity()` | 用户空闲检测/自动登出 |
274
- | `utils.ts` | `svgLoad()`、`composeOptions()`、`getRowClassByFlag()`、`escapeAttrSelector()`、`formatFileSize()` 等 | 通用工具(含对比辅助) |
275
- | `vantRules.ts` | `vantRules` | 表单校验规则(移动端 Vant) |
276
- | `websocket/` | `initWebSocket()`、`closeWebSocket()`、`WebSocketManager` | WebSocket 基础设施 |
277
- | `wechat/` | `WechatSDK` | 微信 SDK 单例 |
278
-
279
- ---
280
-
281
- ## 五、自定义指令清单
282
-
283
- > 所有指令位于 `src/directives/` 目录,在 `src/directives/index.ts` 统一注册。
284
-
285
- | 指令 | 用途 | 用法示例 |
286
- |---|---|---|
287
- | **v-auth** | 按钮级权限控制(无权限移除 DOM) | `v-auth="['btn.add']"` |
288
- | **v-auto-font** | 根据容器宽度自动缩放字体 | `v-auto-font:0.8` 或 `v-auto-font="{ scale: 0.8, min: 12, max: 24 }"` |
289
- | **v-compare** | 编辑页变更对比(高亮+汇总) | `v-compare:key="{ oldValue, title, label, enabled }"`;详见 data-compare |
290
- | **v-copy** | 复制文本到剪贴板 | `v-copy="text"`(双击)、`v-copy:click="text"`(单击) |
291
-
292
- ---
293
-
294
- ## 六、Store 模块清单
295
-
296
- > 所有 Store 位于 `src/store/modules/`,使用 `pinia-plugin-persistedstate` 持久化。
297
-
298
- | Store | 用途 | 关键状态/方法 |
299
- |---|---|---|
300
- | **useAppStore** | 应用全局状态 | 侧边栏、布局模式、设备类型 |
301
- | **useBaseCodeStore** | 字典/码表缓存 | 按 `codeType` 获取+缓存 |
302
- | **useCompareStore** | 变更对比追踪 | `addOrUpdateRecord` / `clearAllRecords`;按 title 模块分组 |
303
- | **useLangStore** | 语言设置 | 持久化到 localStorage + cookie |
304
- | **useMultiTagsStore** | 多标签页 | 标签增删排序 |
305
- | **useRouterMenuStore** | 路由/菜单 | 静态+动态菜单、keepAlive 缓存 |
306
- | **useSettingStore** | UI 设置 | 标题、固定头部、侧边栏显隐 |
307
- | **useThemeStore** | 主题 | 主题色、暗色模式 |
308
- | **useUserStore** | 用户信息 | userCode、userName、角色、token |
309
-
310
- ---
311
-
312
- ## 七、功能选型对照表(禁止替换)
313
-
314
- > 当用户需求涉及以下场景时,**必须使用选型表指定的库/组件**;勿擅自换成同类其他库,新依赖须待确认。
315
-
316
- | 需求场景 | 项目选型 | 勿擅自替换为 |
317
- |---|---|---|
318
- | 图表 | `echarts` + `ReEchart` | 禁止使用 Chart.js / D3 / Plotly 等 |
319
- | 关系/知识图谱 | `relation-graph-vue3` | 禁止引入 D3 / vis.js / Cytoscape 等 |
320
- | 流程图 | `@antv/g6` + `g6-extension-vue` | 禁止引入 Mermaid / X6 / LogicFlow 等 |
321
- | BPMN 工作流 | `bpmn-js` (Viewer) | 禁止引入其他 BPMN 库 |
322
- | 字段映射/连线 | `jsplumb` | 禁止引入 LeaderLine / Drawflow 等 |
323
- | 富文本编辑器 | `@wangeditor/editor` + `ReRichText` | 禁止引入 Quill / TinyMCE / CKEditor 等 |
324
- | 二维码 | `qrcode` + `ReQrcode` | 禁止引入其他二维码库 |
325
- | 条形码 | `jsbarcode` + `ReBarcode` | 禁止引入其他条形码库 |
326
- | 文件预览 | `@file-viewer/*` + `ReFileViewer` | 禁止引入 pdf.js / mammoth 等 |
327
- | 滑块验证 | `vue3-puzzle-vcode` + `ReVerify` | 禁止引入其他验证码库 |
328
- | 打字机动画 | `typeit` + `ReTypeit` | 禁止引入其他打字机库 |
329
- | 粒子动画 | `@tsparticles/slim` + `@tsparticles/vue3` + `particlesOptions` | 禁止引入 particles.js 等;配置见 `particles` 模块 |
330
- | 日期处理 | `dayjs` | 禁止引入 moment / date-fns 等 |
331
- | HTTP 请求 | 项目封装的 `src/utils/http.ts`(基于 axios) | 禁止直接使用 axios / fetch / ky 等 |
332
- | 状态管理 | `pinia` + `pinia-plugin-persistedstate` | 禁止引入 vuex / zustand 等 |
333
- | 原子化 CSS | `unocss` | 禁止引入 tailwindcss / windicss 等 |
334
- | 拖拽排序 | `sortablejs` | 禁止引入 vuedraggable / dnd-kit 等 |
335
- | 微信集成 | `weixin-js-sdk` + `useWechat` | 禁止引入其他微信 SDK |
336
- | 高性能表格 | `vxe-table` | 禁止引入 ag-grid / handsontable 等 |
337
- | 地址解析 | `address-parse` | 禁止引入其他地址解析库 |
338
- | 图片压缩 | `browser-image-compression` | 禁止引入其他压缩库 |
339
- | 颜色处理 | `chroma-js` | 禁止引入 color / polished 等 |
340
- | 事件总线 | `mitt`(项目封装 `src/utils/mitt.ts`) | 禁止引入 eventemitter3 等 |
341
- | 编辑页数据变更对比 | `v-compare` + `useCompareStore` + `ChangeSummaryService` / `ChangeSummaryDialog` | 禁止自研 Diff 组件树或第三方 diff UI;按 data-compare 模块 |
342
-
343
- ---
344
-
345
- ## 八、使用规则
346
-
347
- 1. **先查后写**:生成任何功能代码前,必须先在本清单中查找是否已有对应的库/组件/Hook/工具
348
- 2. **有则必用**:已有封装直接复用,勿另起一套同能力实现;选型表指定库勿擅自替换
349
- 3. **无则上报**:如果确实需要引入新库(清单中没有),必须在输出中明确说明原因,并标注为"待确认"让用户审批
350
- 4. **按示例编写**:以对应 Skill 模块 `references/<模块>.md` 完整示例与约定写法为准
351
- 5. **版本一致**:使用库的版本必须与清单中**精确版本**一致,不得擅自升降级,不得 `pnpm add xxx` 不带版本
352
- 6. **缺依赖先装**:命中 addon 模块时,先读业务项目 `package.json`;缺失则按第九节安装命令征得确认后执行,再生成业务代码
353
- 7. **Vite 插件成套**:涉及 `@file-viewer/vite-plugin`、`vite-plugin-vconsole` 等时,运行时包与 `-D` 插件、以及仓库内 `build/plugins/*` 接线一并检查;模板已接线则勿改 `vite.config`;裁剪缺失时需恢复对应插件文件后再装依赖
354
- 8. **已移除依赖(勿再推荐)**:`@wocwin/t-ui-plus`、`animate.css`、`version-rocket`、`vue-types`、`vite-plugin-remove-console`、`vite-plugin-router-warn`;发版检测用 `utils/autoUpdate`;去 console 用构建 Terser
355
-
356
- ---
357
-
358
- ## 九、专项能力依赖安装表(addon)
359
-
360
- > **何时用**:目标项目需要专项能力、但当前 `package.json` 中找不到对应包时。参考模板已包含的能力也必须以目标项目实际依赖为准。
361
- > **包管理**:统一 `pnpm`。`-D` 表示写入 `devDependencies`。
362
- > **AI 流程**:① 查目标项目 `package.json` 与构建接线 → ② 列出缺失包及影响 → ③ 展示精确安装命令并征得确认 → ④ 执行安装 → ⑤ 仅在目标项目确有对应排除项或构建占位时,按 `addon-enable.md` 对应章节恢复配置 → ⑥ 再写业务代码。
363
-
364
- | Skill 模块 | 生产依赖(精确版本) | 开发依赖(精确版本) | 构建/接线附属 | 一键安装命令 |
365
- |---|---|---|---|---|
366
- | **table-vxe** | `vxe-table@4.19.21` `vxe-pc-ui@4.15.19` | — | `main.ts` 中 vxe 注册(以仓库为准);启用细节见 `addon-enable` K | `pnpm add vxe-table@4.19.21 vxe-pc-ui@4.15.19` |
367
- | **form-advanced**(地址解析 / CheckCard) | `address-parse@1.2.19` `plus-pro-components@0.1.31` | — | **`addon-enable` E** | `pnpm add address-parse@1.2.19 plus-pro-components@0.1.31` |
368
- | **file-management** | `@file-viewer/core@2.1.14` `@file-viewer/vue3@2.1.14` `@file-viewer/preset-all@2.1.14` `browser-image-compression@2.0.2` | `@file-viewer/vite-plugin@2.1.14` | **`addon-enable` D**(FileViewer.ts / env.d.ts) | `pnpm add @file-viewer/core@2.1.14 @file-viewer/vue3@2.1.14 @file-viewer/preset-all@2.1.14 browser-image-compression@2.0.2` + `pnpm add -D @file-viewer/vite-plugin@2.1.14` |
369
- | **rich-text** | `@wangeditor/editor@5.1.23` | — | **`addon-enable` C** | `pnpm add @wangeditor/editor@5.1.23` |
370
- | **chart-echarts** | `echarts@6.1.0` | — | **`addon-enable` B** | `pnpm add echarts@6.1.0` |
371
- | **chart-echarts**(词云) | 上 + `echarts-wordcloud@2.1.0` | — | 业务侧 `import 'echarts-wordcloud'`;**`addon-enable` B** | `pnpm add echarts@6.1.0 echarts-wordcloud@2.1.0` |
372
- | **data-screen** | `grid-layout-plus@1.1.1`(图表另见 chart-echarts) | — | `addon-enable` K | `pnpm add grid-layout-plus@1.1.1` |
373
- | **graph-relation** | `relation-graph-vue3@2.2.11` | — | `addon-enable` K | `pnpm add relation-graph-vue3@2.2.11` |
374
- | **workflow-bpmn** | `bpmn-js@18.19.0` | — | `addon-enable` K | `pnpm add bpmn-js@18.19.0` |
375
- | **flowchart-g6** | `@antv/g6@5.1.1` `g6-extension-vue@0.1.0` | — | `addon-enable` K | `pnpm add @antv/g6@5.1.1 g6-extension-vue@0.1.0` |
376
- | **data-mapping** | `jsplumb@2.15.6` | — | `addon-enable` K | `pnpm add jsplumb@2.15.6` |
377
- | **mobile-h5** | `vant@4.10.0` `vconsole@3.15.1` | `@vant/auto-import-resolver@1.3.0` `vite-plugin-vconsole@2.1.1` | **`addon-enable` J** + `mobile-h5` 启用清单 | `pnpm add vant@4.10.0 vconsole@3.15.1` + `pnpm add -D @vant/auto-import-resolver@1.3.0 vite-plugin-vconsole@2.1.1` |
378
- | **wechat-js** | `weixin-js-sdk@1.6.5` | — | **`addon-enable` I** | `pnpm add weixin-js-sdk@1.6.5` |
379
- | **verify-captcha** | `vue3-puzzle-vcode@1.1.7` | — | **`addon-enable` H** | `pnpm add vue3-puzzle-vcode@1.1.7` |
380
- | **qrcode-barcode** | `qrcode@1.5.4` `jsbarcode@3.12.3` | `@types/qrcode@1.5.6` | **`addon-enable` F** | `pnpm add qrcode@1.5.4 jsbarcode@3.12.3` + `pnpm add -D @types/qrcode@1.5.6` |
381
- | **feedback-ui**(打字机) | `typeit@8.8.7` | — | **`addon-enable` G** | `pnpm add typeit@8.8.7` |
382
- | **particles** | `@tsparticles/slim@4.3.1` `@tsparticles/vue3@4.3.1` | — | `addon-enable` K + `particles.md` | `pnpm add @tsparticles/slim@4.3.1 @tsparticles/vue3@4.3.1` |
383
- | **api-check** / Mock | —(运行时无额外包) | `vite-plugin-fake-server@2.2.4`(core 通常已有) | `build/plugins/ViteMockServe.ts`;`VITE_USE_MOCK` | 缺失时:`pnpm add -D vite-plugin-fake-server@2.2.4` |
384
- | **websocket-realtime** / **data-compare** / **seamless-scroll** / **directives-advanced** / **download-export** / **tree-table** | 无额外 npm 包(用项目封装) | — | 见各模块 | 无需安装 |
385
-
386
- ### 安装输出模板(AI 对用户)
387
-
388
- ```text
389
- 检测到以下依赖缺失(对齐模板锁定版本):
390
- - xxx@a.b.c
391
- 拟执行:
392
- pnpm add ...
393
- pnpm add -D ...
394
- 涉及构建插件时还需确认:build/plugins/Xxx.ts 是否仍在。
395
- 是否确认安装?
396
- ```
397
-
398
- 未经用户确认**不得**擅自改 `package.json` 或执行安装。
399
-
400
- ---
401
-
402
- ## 十、精简模板 addon 启用清单(`tsconfig exclude`)
403
-
404
- > **非自动**:`pnpm add` 不会删除 `tsconfig exclude`,也不会改 `main.ts` / 插件。
405
- > **完整逐文件代码**:见 **`addon-enable.md`**(B–J 章)。本节仅索引。
406
- > AI 装包后**必须**按 `addon-enable` 改配置,并在变更说明中列出文件。
407
-
408
- ### 启用步骤(每次命中 addon)
409
-
410
- 1. 查 `package.json` → 第九节精确版本安装(用户确认)
411
- 2. 打开 `addon-enable.md` 对应章节,逐文件落盘
412
- 3. 按下表从 `tsconfig.json` 的 `exclude` **删除**对应行
413
- 4. `pnpm type-check` → 再写业务代码
414
-
415
- ### exclude 路径 ↔ Skill 模块 ↔ addon-enable 章节
416
-
417
- | Skill 模块 | 须移除的 `exclude` 项 | 代码恢复章节 |
418
- |---|---|---|
419
- | **chart-echarts** | `src/components/ReEchart/**` | **B** |
420
- | **rich-text** | `src/components/ReRichText/**` | **C** |
421
- | **file-management** | `src/components/ReFileViewer/**`、`types/file-viewer.d.ts` | **D** |
422
- | **form-advanced**(ReCheckCard) | `src/components/ReCheckCard/**` | **E** |
423
- | **qrcode-barcode** | `ReQrcode/**`、`ReBarcode/**` | **F** |
424
- | **feedback-ui**(打字机) | `src/components/ReTypeit/**` | **G** |
425
- | **verify-captcha** | `src/components/ReVerify/**` | **H** |
426
- | **wechat-js** | `wechat/**`、`useWechat.ts`、`api/wechat/**` | **I** |
427
- | **mobile-h5** | `ReSelectVant/**`、`RePopupPicker/**`、`vantRules.ts` | **J**(+ `mobile-h5.md`) |
428
-
429
- `browser-image-compression` 随 **D**;`imageCompression.ts` 未 exclude(可 Canvas 降级)。
430
-
431
- ### AI 输出示例
432
-
433
- ```text
434
- 已启用 chart-echarts(addon-enable B):
435
- - pnpm add echarts@6.1.0
436
- - tsconfig:移除 ReEchart/**
437
- - type-check:通过
438
- ```
1
+ ---
2
+ name: project-inventory
3
+ description: 项目资产清单:三方库、Re* 组件、依赖安装表
4
+ scope: project
5
+ tags: [查Re, 版本, 安装, 依赖清单, 库版本]
6
+ ---
7
+
8
+ # 项目资产清单(Project Inventory)
9
+
10
+ ## 何时读本文件
11
+
12
+ 按需加载(非始终):查 Re* / Hook 名、确认库版本、命中 addon、缺依赖需安装时。硬约束与壳摘要见 `core-kernel`。
13
+
14
+ - 已有封装须复用;选型表指定库勿擅自替换;新依赖须待确认
15
+ - 版本对齐模板 `package.json`(2026-08 冻结);先查业务项目 `package.json`
16
+ - 缺失 → 先说明缺少的能力、影响范围和精确版本,再征得确认后安装;禁止 `@latest` / 无版本号
17
+
18
+ ## 参考模板(vue3-web-temp)策略
19
+
20
+ | 层级 | 说明 |
21
+ |------|------|
22
+ | **core** | 以业务项目当前 `package.json` 为准;不要假设模板或派生项目的依赖分层完全一致 |
23
+ | **可选能力** | ECharts、Vant、VXE、BPMN、G6、文件预览、富文本等能力必须先检查当前项目是否已安装,再决定是否安装或直接复用 |
24
+ | **标准样板** | 列表/详情/表单等完整示例在本 Skill `references/`;模板 `views/` 中的示例页面只用于确认真实 API、组件和壳层接线,不直接当生产页面复制 |
25
+
26
+ AI 生成业务代码时:以 Skill 模块标准样板为准;先查 `package.json` 是否已有 addon,缺失则先列安装命令征得确认。
27
+
28
+ ---
29
+
30
+ ## 一、三方库清单(按功能分类)
31
+
32
+ > 版本号记录的是当前参考模板的已验证版本;真正执行前必须以目标业务项目的 `package.json`、锁文件和构建接线为准。`scope` 仅表示参考模板中的常见用途,不代表所有派生项目都已安装。
33
+
34
+ ### UI 框架
35
+
36
+ | 库 | 版本 | scope | 用途 | 备注 |
37
+ |---|---|---|---|---|
38
+ | `element-plus` | `2.14.2` | core | PC 端 UI | 自动引入 |
39
+ | `vant` | `4.10.0` | addon | 移动端 UI | 见 mobile-h5 |
40
+ | `plus-pro-components` | `0.1.31` | addon | EP 企业扩展(ReCheckCard 等) | 见 form-advanced |
41
+ | `vxe-table` | `4.19.21` | addon | 高性能大数据表格 | 见 table-vxe |
42
+ | `vxe-pc-ui` | `4.15.19` | addon | VXE 配套 PC UI | 与 vxe-table 同装 |
43
+
44
+ ### 图表与可视化
45
+
46
+ | 库 | 版本 | scope | 用途 | 备注 |
47
+ |---|---|---|---|---|
48
+ | `echarts` | `6.1.0` | addon | 图表引擎 | + `ReEchart` |
49
+ | `echarts-wordcloud` | `2.1.0` | addon | 词云 | ECharts 扩展 |
50
+ | `relation-graph-vue3` | `2.2.11` | addon | 关系/知识图谱 | 见 graph-relation |
51
+ | `@antv/g6` | `5.1.1` | addon | 图可视化 | 见 flowchart-g6 |
52
+ | `g6-extension-vue` | `0.1.0` | addon | G6 Vue 节点 | 与 g6 同装 |
53
+
54
+ ### 工作流与流程
55
+
56
+ | 库 | 版本 | scope | 用途 | 备注 |
57
+ |---|---|---|---|---|
58
+ | `bpmn-js` | `18.19.0` | addon | BPMN Viewer(只读) | 见 workflow-bpmn;不用 Modeler |
59
+ | `jsplumb` | `2.15.6` | addon | 连线/字段映射 | 见 data-mapping |
60
+
61
+ ### 富文本与编辑器
62
+
63
+ | 库 | 版本 | scope | 用途 | 备注 |
64
+ |---|---|---|---|---|
65
+ | `@wangeditor/editor` | `5.1.23` | addon | 富文本 | + `ReRichText` |
66
+
67
+ ### 图标
68
+
69
+ > 用法规范见专项模块 **`icons`**(`references/icons.md`)。
70
+
71
+ | 库 | 版本 | scope | 用途 | 备注 |
72
+ |---|---|---|---|---|
73
+ | `@iconify/vue` | `5.0.1` | core | 图标框架 | 经全局 `svg-icon` |
74
+ | `@iconify-json/ep` | `1.2.4` | core | EP 图标集 | devDependency |
75
+ | `@iconify-json/ri` | `1.2.10` | core | Remix 图标集 | devDependency |
76
+ | `vite-plugin-svg-icons` | `2.0.1` | core | SVG 雪碧图 | + `ReSvgIcon`;扫描 `src/icons/svg` |
77
+ | `vite-svg-loader` | `5.1.1` | core | `svg?component` | 见 `build/plugins/SvgLoader.ts` |
78
+
79
+ ### 状态管理与路由
80
+
81
+ | 库 | 版本 | scope | 用途 | 备注 |
82
+ |---|---|---|---|---|
83
+ | `pinia` | `3.0.4` | core | 状态管理 | |
84
+ | `pinia-plugin-persistedstate` | `4.7.1` | core | Pinia 持久化 | |
85
+ | `vue-router` | `5.1.0` | core | 路由 Hash + 动态路由 | |
86
+
87
+ ### HTTP 与加密
88
+
89
+ | 库 | 版本 | scope | 用途 | 备注 |
90
+ |---|---|---|---|---|
91
+ | `axios` | `1.19.0` | core | HTTP | 仅经 `@/utils/http` |
92
+ | `crypto-js` | `4.2.0` | core | AES | + `@types/crypto-js@4.2.2` |
93
+ | `jsencrypt` | `3.5.4` | core | RSA | |
94
+ | `js-md5` | `0.8.3` | core | MD5 签名 | + `@types/js-md5@0.8.0` |
95
+
96
+ ### 工具库
97
+
98
+ | 库 | 版本 | scope | 用途 | 备注 |
99
+ |---|---|---|---|---|
100
+ | `@vueuse/core` | `14.3.0` | core | 组合式工具 | 自动引入 |
101
+ | `@vueuse/math` | `14.3.0` | core | 数学组合式 | |
102
+ | `@vueuse/motion` | `3.0.3` | core | 入场动画 | `v-motion` |
103
+ | `@pureadmin/utils` | `2.6.4` | core | 下载/存储/设备等 | |
104
+ | `dayjs` | `1.11.21` | core | 日期 | 不用 moment |
105
+ | `qs` | `6.15.3` | core | query 序列化 | + `@types/qs@6.15.1` |
106
+ | `js-cookie` | `3.0.8` | core | Cookie | + `@types/js-cookie@3.0.6` |
107
+ | `mitt` | `3.0.1` | core | 事件总线 | |
108
+ | `chroma-js` | `3.2.0` | core | 颜色/主题 | + `@types/chroma-js@3.1.2` |
109
+ | `address-parse` | `1.2.19` | addon | 中文地址解析 | 见 form-advanced |
110
+ | `nprogress` | `0.2.0` | core | 路由进度条 | + `@types/nprogress@0.2.3` |
111
+ | `responsive-storage` | `2.2.0` | core | 响应式 storage | |
112
+ | `sortablejs` | `1.15.7` | core | 拖拽排序 | + `@types/sortablejs@1.15.9` |
113
+ | `vue-dompurify-html` | `5.3.0` | core | 安全 HTML | |
114
+ | `browser-image-compression` | `2.0.2` | addon | 上传前压缩 | 见 file-management |
115
+
116
+ ### 文件预览
117
+
118
+ | 库 | 版本 | scope | 用途 | 备注 |
119
+ |---|---|---|---|---|
120
+ | `@file-viewer/core` | `2.1.14` | addon | 预览核心 | 三件套同版本 |
121
+ | `@file-viewer/vue3` | `2.1.14` | addon | Vue3 集成 | + `ReFileViewer` |
122
+ | `@file-viewer/preset-all` | `2.1.14` | addon | 全格式预设 | |
123
+ | `@file-viewer/vite-plugin` | `2.1.14` | addon | Vite 插件 | **devDependency**;见 file-management |
124
+
125
+ ### 二维码与条形码
126
+
127
+ | 库 | 版本 | scope | 用途 | 备注 |
128
+ |---|---|---|---|---|
129
+ | `qrcode` | `1.5.4` | addon | 二维码 | + `ReQrcode`;`@types/qrcode@1.5.6` |
130
+ | `jsbarcode` | `3.12.3` | addon | 条形码 | + `ReBarcode` |
131
+
132
+ ### 验证与动画
133
+
134
+ | 库 | 版本 | scope | 用途 | 备注 |
135
+ |---|---|---|---|---|
136
+ | `vue3-puzzle-vcode` | `1.1.7` | addon | 滑块拼图 | + `ReVerify` |
137
+ | `typeit` | `8.8.7` | addon | 打字机 | + `ReTypeit` |
138
+ | `@tsparticles/slim` | `4.3.1` | core | 粒子 | 登录背景 |
139
+ | `@tsparticles/vue3` | `4.3.1` | core | 粒子 Vue3 | |
140
+ | `tippy.js` | `6.3.7` | core | Tooltip | |
141
+ | `vue-tippy` | `6.7.1` | core | Tippy Vue 封装 | |
142
+
143
+ ### 微信 / 移动调试
144
+
145
+ | 库 | 版本 | scope | 用途 | 备注 |
146
+ |---|---|---|---|---|
147
+ | `weixin-js-sdk` | `1.6.5` | addon | 微信 JS-SDK | 见 wechat-js |
148
+ | `vconsole` | `3.15.1` | addon | 移动调试台 | 见 mobile-h5 |
149
+ | `vite-plugin-vconsole` | `2.1.1` | addon | vConsole Vite 插件 | **devDependency** |
150
+
151
+ ### 布局 / CSS
152
+
153
+ | 库 | 版本 | scope | 用途 | 备注 |
154
+ |---|---|---|---|---|
155
+ | `grid-layout-plus` | `1.1.1` | addon | 拖拽网格 | 大屏/仪表盘 |
156
+ | `unocss` | `66.7.4` | core | 原子化 CSS | 及相关 `@unocss/*` 同版本 |
157
+
158
+ ### 构建链路常用插件(core,一般勿随业务安装)
159
+
160
+ | 库 | 版本 | 用途 |
161
+ |---|---|---|
162
+ | `vite` | `8.1.2` | 构建 |
163
+ | `@vitejs/plugin-vue` | `6.0.7` | SFC |
164
+ | `@vitejs/plugin-vue-jsx` | `5.1.6` | JSX |
165
+ | `unplugin-auto-import` | `21.0.0` | 自动 API |
166
+ | `unplugin-vue-components` | `32.1.0` | 自动组件 |
167
+ | `@vant/auto-import-resolver` | `1.3.0` | Vant 解析(mobile 时需要) |
168
+ | `vite-plugin-fake-server` | `2.2.4` | Mock(`VITE_USE_MOCK`) |
169
+ | `vite-plugin-compression` | `0.5.1` | Gzip |
170
+ | `rollup-plugin-visualizer` | `7.0.1` | 包分析 |
171
+ | `vite-plugin-bundle-obfuscator` | `1.13.0` | 混淆 |
172
+ | `vite-plugin-vue-devtools` | `8.1.5` | DevTools |
173
+ | `vite-svg-loader` | `5.1.1` | SVG as component |
174
+ | `vue` | `3.5.39` | 框架 |
175
+ | `vue-i18n` | `11.4.6` | 国际化 |
176
+ | `typescript` | `6.0.3` | 类型 |
177
+ | `vue-tsc` | `3.3.6` | 类型检查 |
178
+
179
+ ---
180
+
181
+ ## 二、Re* 自定义组件清单
182
+
183
+ > 所有自定义组件以 `Re` 为前缀。开发前先查本表,禁止重复造轮子。
184
+ > **用法**按功能模块写(见 `ui-components` 索引),本表只做名录 + 落点。
185
+
186
+ | 组件 | 用途 | 目录 | 用法模块 |
187
+ |---|---|---|---|
188
+ | **ReAnchor** | 锚点导航 | `ReAnchor/` | `form-advanced` |
189
+ | **ReAttachment** | 附件上传/管理 | `ReAttachment/` | `file-management` |
190
+ | **ReAuth** | 权限包裹 | `ReAuth/` | `permission-auth` |
191
+ | **ReAvatars** | 头像组 | `ReAvatars/` | 业务页 / `data-screen` |
192
+ | **ReBarcode** | 条形码 | `ReBarcode/` | `qrcode-barcode` |
193
+ | **ReCascader** | 级联选择 | `ReCascader/` | `form-advanced` |
194
+ | **ReCheckCard** | 卡片多选 | `ReCheckCard/` | `form-advanced` |
195
+ | **ReCollapsible** | 折叠 | `ReCollapsible/` | `form-advanced` |
196
+ | **ReDatePicker** | 日期 | `ReDatePicker/` | `form-advanced` |
197
+ | **ReDateRangePicker** | 日期范围 | `ReDateRangePicker/` | `form-advanced` |
198
+ | **ReDialog** | 弹窗(`fullscreen` 默认 false) | `ReDialog/` | `form-advanced` |
199
+ | **ReDialogResize** | 可缩放弹窗 | `ReDialogResize/` | `form-advanced` |
200
+ | **ReDragVerify** | 滑块拖拽验证 | `ReDragVerify/` | `verify-captcha` |
201
+ | **ReEchart** | ECharts 容器 | `ReEchart/` | `chart-echarts` |
202
+ | **ReFileViewer** | 文件预览 | `ReFileViewer/` | `file-management` |
203
+ | **ReFlicker** | 闪烁点 | `ReFlicker/` | `data-screen` |
204
+ | **ReGrid** | 响应式栅格 | `ReGrid/` | `crud-pages` |
205
+ | **ReGridItem** | 栅格子项 | `ReGridItem/` | `crud-pages` |
206
+ | **ReHeaderPage** | 页头 | `ReHeaderPage/` | `crud-pages` / `detail-page` |
207
+ | **ReIconPicker** | 图标选择 | `ReIconPicker/` | `icons` |
208
+ | **ReImageVerify** | 图形验证码 | `ReImageVerify/` | `verify-captcha` |
209
+ | **ReLanguageSwitch** | 语言切换 | `ReLanguageSwitch/` | `layout-theme` |
210
+ | **ReNoticeBar** | 通知栏 | `ReNoticeBar/` | `feedback-loading` |
211
+ | **RePagination** | 分页 | `RePagination/` | `crud-pages` |
212
+ | **RePopupPicker** | 移动端弹出选择 | `RePopupPicker/` | `mobile-h5` |
213
+ | **ReQrcode** | 二维码 | `ReQrcode/` | `qrcode-barcode` |
214
+ | **ReRichText** | 富文本 | `ReRichText/` | `rich-text` |
215
+ | **ReSeamlessScroll** | 无缝滚动 | `ReSeamlessScroll/` | `seamless-scroll` |
216
+ | **ReSegmented** | 分段控制 | `ReSegmented/` | `layout-theme` |
217
+ | **ReSelectQuery** | 远程分页选择 | `ReSelectQuery/` | `form-advanced` |
218
+ | **ReSelectVant** | 移动端选择 | `ReSelectVant/` | `mobile-h5` |
219
+ | **ReSmsCode** | 短信倒计时 | `ReSmsCode/` | `verify-captcha` |
220
+ | **ReSvgIcon** | SVG / Iconify | `ReSvgIcon/` | `icons` |
221
+ | **ReTableBar** | 表格工具栏 | `ReTableBar/` | `crud-pages` |
222
+ | **ReTableOperate** | 行操作(`limit` 默认 3;超出进「更多」;列宽用 `resolveOperateColumnWidth`;`:size` 跟表格密度) | `ReTableOperate/` | `crud-pages` |
223
+ | **ReText** | 文本省略 | `ReText/` | `layout-theme` |
224
+ | **ReTimeLine** | 时间轴 | `ReTimeLine/` | `detail-page` / 业务 |
225
+ | **ReTreeLine** | 树连线 | `ReTreeLine/` | `tree-table` |
226
+ | **ReTypeit** | 打字机 | `ReTypeit/` | `data-screen` |
227
+ | **ReVerify** | 拼图验证 | `ReVerify/` | `verify-captcha` |
228
+
229
+ 路径前缀均为 `src/components/`。
230
+
231
+ ---
232
+
233
+ ## 三、Hooks 清单
234
+
235
+ > 所有 Hook 位于 `src/hooks/` 目录。开发新功能时必须先检查是否已有可复用的 Hook。
236
+
237
+ | Hook | 用途 | 关键 API |
238
+ |---|---|---|
239
+ | **useApp** | 全局应用状态(布局、字典、登出等) | `baseCodeGet`、`filterValue`、`svgLoading`、`layout`、`logout` 等;顶栏高度不由此导出 |
240
+ | **useDetail** | 列表→详情:写顶部 tag 并跳转 | `toDetail(name, params, title?, 'query'\|'params')`、`initToDetail(name)`、`getParameter`;路由配 `showLink:false`(不进侧栏)+`activePath`(见 `detail-page`) |
241
+ | **useFormCheck** | 多表单校验聚合 | 追踪各字段校验状态,emit `form-validate` 事件 |
242
+ | **useTableSearch** | 列表页搜索/分页/Loading/动态表高 | `content`(须绑 `el-card.vts-page-card`)、`multipleTableRef`(建议绑 `el-table`)、`otherRef`(表上方额外模块)、`tableHeight`(卡片底边 − 表格顶边 − 分页;空数据仍有占位高)、`paginationRef`、`tableData`、`pagination`、`loading`、`onSearch()`、`reset()`、`formRef`、`gridRef`、`collapsed` / `showCollapse` / `collapsedToggle` |
243
+ | **useTags** | 多标签页管理 | 右键菜单(刷新/关闭/关闭其他/全屏) |
244
+ | **useTheme** | 主题切换(暗色/亮色) | 主题色生成、布局预设、缓存重置 |
245
+ | **useWebSocket** | WebSocket 通信 | `subscribe()`、`send()`、`sendRaw()`、`isConnected` |
246
+ | **useWechat** | 微信 JS-SDK | `isReady`、`error` |
247
+
248
+ ---
249
+
250
+ ## 四、工具函数清单
251
+
252
+ > 所有工具位于 `src/utils/` 目录。
253
+
254
+ | 文件 | 关键导出 | 用途 |
255
+ |---|---|---|
256
+ | `auth.ts` | `getToken()`、`setUserToken()`、`removeToken()` | Token 管理 |
257
+ | `autoUpdate.ts` | `checkUpdate()` | 前端版本检测/自动刷新 |
258
+ | `changeSummaryService.ts` | `ChangeSummaryService.getChangeSummaryData()` | v-compare 变更汇总读取/元素引用修复 |
259
+ | `encryptUtils.ts` | `aesEncrypt()`、`aesDecrypt()`、`rsaEncrypt()`、`md5Sign()` | 加解密工具 |
260
+ | `http.ts` | `http.request()` | Axios 封装(支持 GET/POST + 加密开关 + 拦截器) |
261
+ | `i18n.ts` | `getLocale()` | 语言检测 |
262
+ | `imageCompression.ts` | `compressImage()` | 图片压缩(上传前) |
263
+ | `message.ts` | `message()` | 消息提示封装(ElMessage 包装) |
264
+ | `mitt.ts` | `mitt()` | 全局事件总线 |
265
+ | `motion.tsx` | `MotionComponent` | 入场动画 TSX 组件 |
266
+ | `particles.ts` | `particlesOptions` | 粒子动画配置(tsParticles v4 paint) |
267
+ | `progress/` | `NProgress` | 路由进度条配置 |
268
+ | `responsive.ts` | `ResponsiveStorage` | 响应式存储注入 |
269
+ | `router.ts` | `hasAuth()`、路由扁平化、权限过滤 | 路由工具 |
270
+ | `rule.ts` | `passwordRule`、`phoneRule` | 表单校验规则(PC) |
271
+ | `tree.ts` | `handleTree()`、`buildHierarchyTree()` | 树结构转换 |
272
+ | `uploadManager.ts` | `UploadManager` | 批量上传任务管理 |
273
+ | `useActivity.ts` | `useActivity()` | 用户空闲检测/自动登出 |
274
+ | `utils.ts` | `svgLoad()`、`composeOptions()`、`getRowClassByFlag()`、`escapeAttrSelector()`、`formatFileSize()` 等 | 通用工具(含对比辅助) |
275
+ | `vantRules.ts` | `vantRules` | 表单校验规则(移动端 Vant) |
276
+ | `websocket/` | `initWebSocket()`、`closeWebSocket()`、`WebSocketManager` | WebSocket 基础设施 |
277
+ | `wechat/` | `WechatSDK` | 微信 SDK 单例 |
278
+
279
+ ---
280
+
281
+ ## 五、自定义指令清单
282
+
283
+ > 所有指令位于 `src/directives/` 目录,在 `src/directives/index.ts` 统一注册。
284
+
285
+ | 指令 | 用途 | 用法示例 |
286
+ |---|---|---|
287
+ | **v-auth** | 按钮级权限控制(无权限移除 DOM) | `v-auth="['btn.add']"` |
288
+ | **v-auto-font** | 根据容器宽度自动缩放字体 | `v-auto-font:0.8` 或 `v-auto-font="{ scale: 0.8, min: 12, max: 24 }"` |
289
+ | **v-compare** | 编辑页变更对比(高亮+汇总) | `v-compare:key="{ oldValue, title, label, enabled }"`;详见 data-compare |
290
+ | **v-copy** | 复制文本到剪贴板 | `v-copy="text"`(双击)、`v-copy:click="text"`(单击) |
291
+
292
+ ---
293
+
294
+ ## 六、Store 模块清单
295
+
296
+ > 所有 Store 位于 `src/store/modules/`,使用 `pinia-plugin-persistedstate` 持久化。
297
+
298
+ | Store | 用途 | 关键状态/方法 |
299
+ |---|---|---|
300
+ | **useAppStore** | 应用全局状态 | 侧边栏、布局模式、设备类型 |
301
+ | **useBaseCodeStore** | 字典/码表缓存 | 按 `codeType` 获取+缓存 |
302
+ | **useCompareStore** | 变更对比追踪 | `addOrUpdateRecord` / `clearAllRecords`;按 title 模块分组 |
303
+ | **useLangStore** | 语言设置 | 持久化到 localStorage + cookie |
304
+ | **useMultiTagsStore** | 多标签页 | 标签增删排序 |
305
+ | **useRouterMenuStore** | 路由/菜单 | 静态+动态菜单、keepAlive 缓存 |
306
+ | **useSettingStore** | UI 设置 | 标题、固定头部、侧边栏显隐 |
307
+ | **useThemeStore** | 主题 | 主题色、暗色模式 |
308
+ | **useUserStore** | 用户信息 | userCode、userName、角色、token |
309
+
310
+ ---
311
+
312
+ ## 七、功能选型对照表(禁止替换)
313
+
314
+ > 当用户需求涉及以下场景时,**必须使用选型表指定的库/组件**;勿擅自换成同类其他库,新依赖须待确认。
315
+
316
+ | 需求场景 | 项目选型 | 勿擅自替换为 |
317
+ |---|---|---|
318
+ | 图表 | `echarts` + `ReEchart` | 禁止使用 Chart.js / D3 / Plotly 等 |
319
+ | 关系/知识图谱 | `relation-graph-vue3` | 禁止引入 D3 / vis.js / Cytoscape 等 |
320
+ | 流程图 | `@antv/g6` + `g6-extension-vue` | 禁止引入 Mermaid / X6 / LogicFlow 等 |
321
+ | BPMN 工作流 | `bpmn-js` (Viewer) | 禁止引入其他 BPMN 库 |
322
+ | 字段映射/连线 | `jsplumb` | 禁止引入 LeaderLine / Drawflow 等 |
323
+ | 富文本编辑器 | `@wangeditor/editor` + `ReRichText` | 禁止引入 Quill / TinyMCE / CKEditor 等 |
324
+ | 二维码 | `qrcode` + `ReQrcode` | 禁止引入其他二维码库 |
325
+ | 条形码 | `jsbarcode` + `ReBarcode` | 禁止引入其他条形码库 |
326
+ | 文件预览 | `@file-viewer/*` + `ReFileViewer` | 禁止引入 pdf.js / mammoth 等 |
327
+ | 滑块验证 | `vue3-puzzle-vcode` + `ReVerify` | 禁止引入其他验证码库 |
328
+ | 打字机动画 | `typeit` + `ReTypeit` | 禁止引入其他打字机库 |
329
+ | 粒子动画 | `@tsparticles/slim` + `@tsparticles/vue3` + `particlesOptions` | 禁止引入 particles.js 等;配置见 `particles` 模块 |
330
+ | 日期处理 | `dayjs` | 禁止引入 moment / date-fns 等 |
331
+ | HTTP 请求 | 项目封装的 `src/utils/http.ts`(基于 axios) | 禁止直接使用 axios / fetch / ky 等 |
332
+ | 状态管理 | `pinia` + `pinia-plugin-persistedstate` | 禁止引入 vuex / zustand 等 |
333
+ | 原子化 CSS | `unocss` | 禁止引入 tailwindcss / windicss 等 |
334
+ | 拖拽排序 | `sortablejs` | 禁止引入 vuedraggable / dnd-kit 等 |
335
+ | 微信集成 | `weixin-js-sdk` + `useWechat` | 禁止引入其他微信 SDK |
336
+ | 高性能表格 | `vxe-table` | 禁止引入 ag-grid / handsontable 等 |
337
+ | 地址解析 | `address-parse` | 禁止引入其他地址解析库 |
338
+ | 图片压缩 | `browser-image-compression` | 禁止引入其他压缩库 |
339
+ | 颜色处理 | `chroma-js` | 禁止引入 color / polished 等 |
340
+ | 事件总线 | `mitt`(项目封装 `src/utils/mitt.ts`) | 禁止引入 eventemitter3 等 |
341
+ | 编辑页数据变更对比 | `v-compare` + `useCompareStore` + `ChangeSummaryService` / `ChangeSummaryDialog` | 禁止自研 Diff 组件树或第三方 diff UI;按 data-compare 模块 |
342
+
343
+ ---
344
+
345
+ ## 八、使用规则
346
+
347
+ 1. **先查后写**:生成任何功能代码前,必须先在本清单中查找是否已有对应的库/组件/Hook/工具
348
+ 2. **有则必用**:已有封装直接复用,勿另起一套同能力实现;选型表指定库勿擅自替换
349
+ 3. **无则上报**:如果确实需要引入新库(清单中没有),必须在输出中明确说明原因,并标注为"待确认"让用户审批
350
+ 4. **按示例编写**:以对应 Skill 模块 `references/<模块>.md` 完整示例与约定写法为准
351
+ 5. **版本一致**:使用库的版本必须与清单中**精确版本**一致,不得擅自升降级,不得 `pnpm add xxx` 不带版本
352
+ 6. **缺依赖先装**:命中 addon 模块时,先读业务项目 `package.json`;缺失则按第九节安装命令征得确认后执行,再生成业务代码
353
+ 7. **Vite 插件成套**:涉及 `@file-viewer/vite-plugin`、`vite-plugin-vconsole` 等时,运行时包与 `-D` 插件、以及仓库内 `build/plugins/*` 接线一并检查;模板已接线则勿改 `vite.config`;裁剪缺失时需恢复对应插件文件后再装依赖
354
+ 8. **已移除依赖(勿再推荐)**:`@wocwin/t-ui-plus`、`animate.css`、`version-rocket`、`vue-types`、`vite-plugin-remove-console`、`vite-plugin-router-warn`;发版检测用 `utils/autoUpdate`;去 console 用构建 Terser
355
+
356
+ ---
357
+
358
+ ## 九、专项能力依赖安装表(addon)
359
+
360
+ > **何时用**:目标项目需要专项能力、但当前 `package.json` 中找不到对应包时。参考模板已包含的能力也必须以目标项目实际依赖为准。
361
+ > **包管理**:统一 `pnpm`。`-D` 表示写入 `devDependencies`。
362
+ > **AI 流程**:① 查目标项目 `package.json` 与构建接线 → ② 列出缺失包及影响 → ③ 展示精确安装命令并征得确认 → ④ 执行安装 → ⑤ 仅在目标项目确有对应排除项或构建占位时,按 `addon-enable.md` 对应章节恢复配置 → ⑥ 再写业务代码。
363
+
364
+ | Skill 模块 | 生产依赖(精确版本) | 开发依赖(精确版本) | 构建/接线附属 | 一键安装命令 |
365
+ |---|---|---|---|---|
366
+ | **table-vxe** | `vxe-table@4.19.21` `vxe-pc-ui@4.15.19` | — | `main.ts` 中 vxe 注册(以仓库为准);启用细节见 `addon-enable` K | `pnpm add vxe-table@4.19.21 vxe-pc-ui@4.15.19` |
367
+ | **form-advanced**(地址解析 / CheckCard) | `address-parse@1.2.19` `plus-pro-components@0.1.31` | — | **`addon-enable` E** | `pnpm add address-parse@1.2.19 plus-pro-components@0.1.31` |
368
+ | **file-management** | `@file-viewer/core@2.1.14` `@file-viewer/vue3@2.1.14` `@file-viewer/preset-all@2.1.14` `browser-image-compression@2.0.2` | `@file-viewer/vite-plugin@2.1.14` | **`addon-enable` D**(FileViewer.ts / env.d.ts) | `pnpm add @file-viewer/core@2.1.14 @file-viewer/vue3@2.1.14 @file-viewer/preset-all@2.1.14 browser-image-compression@2.0.2` + `pnpm add -D @file-viewer/vite-plugin@2.1.14` |
369
+ | **rich-text** | `@wangeditor/editor@5.1.23` | — | **`addon-enable` C** | `pnpm add @wangeditor/editor@5.1.23` |
370
+ | **chart-echarts** | `echarts@6.1.0` | — | **`addon-enable` B** | `pnpm add echarts@6.1.0` |
371
+ | **chart-echarts**(词云) | 上 + `echarts-wordcloud@2.1.0` | — | 业务侧 `import 'echarts-wordcloud'`;**`addon-enable` B** | `pnpm add echarts@6.1.0 echarts-wordcloud@2.1.0` |
372
+ | **data-screen** | `grid-layout-plus@1.1.1`(图表另见 chart-echarts) | — | `addon-enable` K | `pnpm add grid-layout-plus@1.1.1` |
373
+ | **graph-relation** | `relation-graph-vue3@2.2.11` | — | `addon-enable` K | `pnpm add relation-graph-vue3@2.2.11` |
374
+ | **workflow-bpmn** | `bpmn-js@18.19.0` | — | `addon-enable` K | `pnpm add bpmn-js@18.19.0` |
375
+ | **flowchart-g6** | `@antv/g6@5.1.1` `g6-extension-vue@0.1.0` | — | `addon-enable` K | `pnpm add @antv/g6@5.1.1 g6-extension-vue@0.1.0` |
376
+ | **data-mapping** | `jsplumb@2.15.6` | — | `addon-enable` K | `pnpm add jsplumb@2.15.6` |
377
+ | **mobile-h5** | `vant@4.10.0` `vconsole@3.15.1` | `@vant/auto-import-resolver@1.3.0` `vite-plugin-vconsole@2.1.1` | **`addon-enable` J** + `mobile-h5` 启用清单 | `pnpm add vant@4.10.0 vconsole@3.15.1` + `pnpm add -D @vant/auto-import-resolver@1.3.0 vite-plugin-vconsole@2.1.1` |
378
+ | **wechat-js** | `weixin-js-sdk@1.6.5` | — | **`addon-enable` I** | `pnpm add weixin-js-sdk@1.6.5` |
379
+ | **verify-captcha** | `vue3-puzzle-vcode@1.1.7` | — | **`addon-enable` H** | `pnpm add vue3-puzzle-vcode@1.1.7` |
380
+ | **qrcode-barcode** | `qrcode@1.5.4` `jsbarcode@3.12.3` | `@types/qrcode@1.5.6` | **`addon-enable` F** | `pnpm add qrcode@1.5.4 jsbarcode@3.12.3` + `pnpm add -D @types/qrcode@1.5.6` |
381
+ | **feedback-ui**(打字机) | `typeit@8.8.7` | — | **`addon-enable` G** | `pnpm add typeit@8.8.7` |
382
+ | **particles** | `@tsparticles/slim@4.3.1` `@tsparticles/vue3@4.3.1` | — | `addon-enable` K + `particles.md` | `pnpm add @tsparticles/slim@4.3.1 @tsparticles/vue3@4.3.1` |
383
+ | **api-check** / Mock | —(运行时无额外包) | `vite-plugin-fake-server@2.2.4`(core 通常已有) | `build/plugins/ViteMockServe.ts`;`VITE_USE_MOCK` | 缺失时:`pnpm add -D vite-plugin-fake-server@2.2.4` |
384
+ | **websocket-realtime** / **data-compare** / **seamless-scroll** / **directives-advanced** / **download-export** / **tree-table** | 无额外 npm 包(用项目封装) | — | 见各模块 | 无需安装 |
385
+
386
+ ### 安装输出模板(AI 对用户)
387
+
388
+ ```text
389
+ 检测到以下依赖缺失(对齐模板锁定版本):
390
+ - xxx@a.b.c
391
+ 拟执行:
392
+ pnpm add ...
393
+ pnpm add -D ...
394
+ 涉及构建插件时还需确认:build/plugins/Xxx.ts 是否仍在。
395
+ 是否确认安装?
396
+ ```
397
+
398
+ 未经用户确认**不得**擅自改 `package.json` 或执行安装。
399
+
400
+ ---
401
+
402
+ ## 十、精简模板 addon 启用清单(`tsconfig exclude`)
403
+
404
+ > **非自动**:`pnpm add` 不会删除 `tsconfig exclude`,也不会改 `main.ts` / 插件。
405
+ > **完整逐文件代码**:见 **`addon-enable.md`**(B–J 章)。本节仅索引。
406
+ > AI 装包后**必须**按 `addon-enable` 改配置,并在变更说明中列出文件。
407
+
408
+ ### 启用步骤(每次命中 addon)
409
+
410
+ 1. 查 `package.json` → 第九节精确版本安装(用户确认)
411
+ 2. 打开 `addon-enable.md` 对应章节,逐文件落盘
412
+ 3. 按下表从 `tsconfig.json` 的 `exclude` **删除**对应行
413
+ 4. `pnpm type-check` → 再写业务代码
414
+
415
+ ### exclude 路径 ↔ Skill 模块 ↔ addon-enable 章节
416
+
417
+ | Skill 模块 | 须移除的 `exclude` 项 | 代码恢复章节 |
418
+ |---|---|---|
419
+ | **chart-echarts** | `src/components/ReEchart/**` | **B** |
420
+ | **rich-text** | `src/components/ReRichText/**` | **C** |
421
+ | **file-management** | `src/components/ReFileViewer/**`、`types/file-viewer.d.ts` | **D** |
422
+ | **form-advanced**(ReCheckCard) | `src/components/ReCheckCard/**` | **E** |
423
+ | **qrcode-barcode** | `ReQrcode/**`、`ReBarcode/**` | **F** |
424
+ | **feedback-ui**(打字机) | `src/components/ReTypeit/**` | **G** |
425
+ | **verify-captcha** | `src/components/ReVerify/**` | **H** |
426
+ | **wechat-js** | `wechat/**`、`useWechat.ts`、`api/wechat/**` | **I** |
427
+ | **mobile-h5** | `ReSelectVant/**`、`RePopupPicker/**`、`vantRules.ts` | **J**(+ `mobile-h5.md`) |
428
+
429
+ `browser-image-compression` 随 **D**;`imageCompression.ts` 未 exclude(可 Canvas 降级)。
430
+
431
+ ### AI 输出示例
432
+
433
+ ```text
434
+ 已启用 chart-echarts(addon-enable B):
435
+ - pnpm add echarts@6.1.0
436
+ - tsconfig:移除 ReEchart/**
437
+ - type-check:通过
438
+ ```