@robot-admin/naive-ui-components 0.6.14 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -48
- package/README.md +277 -277
- package/dist/C_ActionBar-DYG0Yf3A.css.map +1 -0
- package/dist/C_ActionBar-MAjRhqcI.css.map +1 -0
- package/dist/C_ActionBar.css +47 -47
- package/dist/C_ActionBar.js.map +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_ActionBar2.js.map +1 -1
- package/dist/{C_AntV-A3NXx_sF.css.map → C_AntV-BY8jqqmi.css.map} +1 -1
- package/dist/{C_AntV-D2Zp2qQF.css.map → C_AntV-BbkHc-_a.css.map} +1 -1
- package/dist/C_AntV.css +78 -78
- package/dist/C_AntV.js.map +1 -1
- package/dist/C_AntV2.js +2 -2
- package/dist/C_AntV2.js.map +1 -1
- package/dist/{C_AudioPlayer-CXl4yP_m.css.map → C_AudioPlayer-DKRIGhi7.css.map} +1 -1
- package/dist/{C_AudioPlayer-CcBtt71m.css.map → C_AudioPlayer-DlB6eNsa.css.map} +1 -1
- package/dist/C_AudioPlayer.css +47 -47
- package/dist/C_AudioPlayer.js.map +1 -1
- package/dist/C_AudioPlayer2.js +1 -1
- package/dist/C_AudioPlayer2.js.map +1 -1
- package/dist/{C_AvatarGroup-CtPhfH9h.css.map → C_AvatarGroup-D02zci-i.css.map} +1 -1
- package/dist/{C_AvatarGroup-M1dNPH3E.css.map → C_AvatarGroup-DatHaUlY.css.map} +1 -1
- package/dist/C_AvatarGroup.css +21 -21
- package/dist/C_AvatarGroup.js.map +1 -1
- package/dist/C_AvatarGroup2.js +1 -1
- package/dist/C_AvatarGroup2.js.map +1 -1
- package/dist/{C_Barcode-DjTmDkbQ.css.map → C_Barcode-DYDRDe2O.css.map} +1 -1
- package/dist/{C_Barcode-Do1Ozsmh.css.map → C_Barcode-muJdc_O4.css.map} +1 -1
- package/dist/C_Barcode.css +7 -7
- package/dist/C_Barcode.js.map +1 -1
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Barcode2.js.map +1 -1
- package/dist/C_Breadcrumb.js.map +1 -1
- package/dist/C_Breadcrumb2.js.map +1 -1
- package/dist/{C_Captcha-CZmAETly.css.map → C_Captcha-9_hk6VmY.css.map} +1 -1
- package/dist/{C_Captcha-Ccq3DMrR.css.map → C_Captcha-MtASlJ0f.css.map} +1 -1
- package/dist/C_Captcha.css +19 -19
- package/dist/C_Captcha.js.map +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Captcha2.js.map +1 -1
- package/dist/{C_Chat-CcdWgVE8.css.map → C_Chat-CcjZdAwu.css.map} +1 -1
- package/dist/{C_Chat-Cx0woEEe.css.map → C_Chat-Diq7tyWU.css.map} +1 -1
- package/dist/C_Chat.css +65 -65
- package/dist/C_Chat.js.map +1 -1
- package/dist/C_Chat2.js +1 -1
- package/dist/C_Chat2.js.map +1 -1
- package/dist/{C_City-Cv5BESaN.css.map → C_City-Bam08Qv3.css.map} +1 -1
- package/dist/{C_City-DNKv4MpH.css.map → C_City-Bb3W-KaN.css.map} +1 -1
- package/dist/C_City.css +29 -29
- package/dist/C_City.js.map +1 -1
- package/dist/C_City2.js +1 -1
- package/dist/C_City2.js.map +1 -1
- package/dist/C_Code-BFi5xxnM.css.map +1 -0
- package/dist/C_Code-CZ7yfnri.css.map +1 -0
- package/dist/C_Code.css +3 -3
- package/dist/C_Code.js.map +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_Code2.js.map +1 -1
- package/dist/{C_CollapsePanel-Fap-lv_5.css.map → C_CollapsePanel-BCmTFuDz.css.map} +1 -1
- package/dist/{C_CollapsePanel-BpofCDyl.css.map → C_CollapsePanel-Bxnh4Zy-.css.map} +1 -1
- package/dist/C_CollapsePanel.css +35 -35
- package/dist/C_CollapsePanel.js.map +1 -1
- package/dist/C_CollapsePanel2.js +1 -1
- package/dist/C_CollapsePanel2.js.map +1 -1
- package/dist/{C_ContextMenu-CCsCeI39.css.map → C_ContextMenu-B3Cgz_wJ.css.map} +1 -1
- package/dist/{C_ContextMenu-DOTBeltf.css.map → C_ContextMenu-u1LixF3_.css.map} +1 -1
- package/dist/C_ContextMenu.css +17 -17
- package/dist/C_ContextMenu.js.map +1 -1
- package/dist/C_ContextMenu2.js +1 -1
- package/dist/C_ContextMenu2.js.map +1 -1
- package/dist/{C_Cron-C0-8b5af.css.map → C_Cron-Civir5-I.css.map} +1 -1
- package/dist/{C_Cron-DqHQ92LN.css.map → C_Cron-iw3qpMsy.css.map} +1 -1
- package/dist/C_Cron.css +37 -37
- package/dist/C_Cron.js.map +1 -1
- package/dist/C_Cron2.js +1 -1
- package/dist/C_Cron2.js.map +1 -1
- package/dist/{C_Draggable-Bq6o0qXn.css.map → C_Draggable-BCjIvIwT.css.map} +1 -1
- package/dist/{C_Draggable-r6nhx3yM.css.map → C_Draggable-DwkSlCOS.css.map} +1 -1
- package/dist/C_Draggable.css +46 -46
- package/dist/C_Draggable.js.map +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Draggable2.js.map +1 -1
- package/dist/{C_FilePreview-BVarVvnD.css.map → C_FilePreview-BhcbiXsV.css.map} +1 -1
- package/dist/{C_FilePreview-DHGlV4OR.css.map → C_FilePreview-DJudcIbW.css.map} +1 -1
- package/dist/C_FilePreview.css +91 -91
- package/dist/C_FilePreview.js.map +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_FilePreview2.js.map +1 -1
- package/dist/{C_Form-BciQUPpS.css.map → C_Form-BtcAPIRi.css.map} +1 -1
- package/dist/{C_Form-CKHvXL3O.css.map → C_Form-D_gwQ7hC.css.map} +1 -1
- package/dist/C_Form.css +222 -222
- package/dist/C_Form.js.map +1 -1
- package/dist/C_Form2.js +1 -1
- package/dist/C_Form2.js.map +1 -1
- package/dist/{C_FormSearch-Bmd2CmG6.css.map → C_FormSearch-Bi4XYjjk.css.map} +1 -1
- package/dist/{C_FormSearch-DBNtnjaL.css.map → C_FormSearch-DUGOoX0u.css.map} +1 -1
- package/dist/C_FormSearch.css +45 -45
- package/dist/C_FormSearch.js.map +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormSearch2.js.map +1 -1
- package/dist/{C_FormulaEditor-3WG2vtQl.css.map → C_FormulaEditor-CJk3SSUJ.css.map} +1 -1
- package/dist/{C_FormulaEditor-Cm0CokN5.css.map → C_FormulaEditor-Cy7mjfVO.css.map} +1 -1
- package/dist/C_FormulaEditor.css +78 -78
- package/dist/C_FormulaEditor.js.map +1 -1
- package/dist/C_FormulaEditor2.js +1 -1
- package/dist/C_FormulaEditor2.js.map +1 -1
- package/dist/C_FullCalendar-BQA0OjGB.css.map +1 -0
- package/dist/C_FullCalendar-ChJUosAi.css.map +1 -0
- package/dist/C_FullCalendar.css +3 -3
- package/dist/C_FullCalendar.js.map +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_FullCalendar2.js.map +1 -1
- package/dist/C_Icon.js.map +1 -1
- package/dist/C_Icon2.js.map +1 -1
- package/dist/{C_ImageCropper-D3L2-J_J.css.map → C_ImageCropper-BqZpkZfU.css.map} +1 -1
- package/dist/{C_ImageCropper-DrmUlaLi.css.map → C_ImageCropper-CylwGuzS.css.map} +1 -1
- package/dist/C_ImageCropper.css +10 -10
- package/dist/C_ImageCropper.js.map +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_ImageCropper2.js.map +1 -1
- package/dist/C_Language.js.map +1 -1
- package/dist/C_Language2.js.map +1 -1
- package/dist/{C_Login-Cst_W1XC.css.map → C_Login-BkdnkBKX.css.map} +1 -1
- package/dist/{C_Login-DWZ_6K1x.css.map → C_Login-VkMM6OJ2.css.map} +1 -1
- package/dist/C_Login.css +72 -72
- package/dist/C_Login.js.map +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Login2.js.map +1 -1
- package/dist/{C_Map-BCJmDnJT.css.map → C_Map-DNnBcY70.css.map} +1 -1
- package/dist/{C_Map-WUMXSAfy.css.map → C_Map-LEXIx6zM.css.map} +1 -1
- package/dist/C_Map.css +4 -4
- package/dist/C_Map.js.map +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Map2.js.map +1 -1
- package/dist/{C_Markdown-7iBnLDtL.css.map → C_Markdown-Kujzx1qG.css.map} +1 -1
- package/dist/{C_Markdown-BbTvdFCl.css.map → C_Markdown-YCAmBbNF.css.map} +1 -1
- package/dist/C_Markdown.css +33 -33
- package/dist/C_Markdown.js.map +1 -1
- package/dist/C_Markdown2.js +1 -1
- package/dist/C_Markdown2.js.map +1 -1
- package/dist/{C_QRCode-DMxSyogU.css.map → C_QRCode-CFNTda_1.css.map} +1 -1
- package/dist/{C_QRCode-G7fiAkm4.css.map → C_QRCode-CmWr9lK-.css.map} +1 -1
- package/dist/C_QRCode.css +9 -9
- package/dist/C_QRCode.js.map +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_QRCode2.js.map +1 -1
- package/dist/{C_Signature-B5fFz6RD.css.map → C_Signature-PN4GOLRX.css.map} +1 -1
- package/dist/{C_Signature-es-ZNPzr.css.map → C_Signature-fWQqGIZ-.css.map} +1 -1
- package/dist/C_Signature.css +14 -14
- package/dist/C_Signature.js.map +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_Signature2.js.map +1 -1
- package/dist/{C_SplitPane-Br2eK8IG.css.map → C_SplitPane-BOwr1C7K.css.map} +1 -1
- package/dist/{C_SplitPane-DuyzUhKB.css.map → C_SplitPane-N-a_D-7F.css.map} +1 -1
- package/dist/C_SplitPane.css +31 -31
- package/dist/C_SplitPane.js.map +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_SplitPane2.js.map +1 -1
- package/dist/C_Steps-Bk1krgiR.css.map +1 -0
- package/dist/C_Steps-Dn2CMpy1.css.map +1 -0
- package/dist/C_Steps.css +38 -38
- package/dist/C_Steps.js.map +1 -1
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Steps2.js.map +1 -1
- package/dist/{C_Table-vZlcgH6x.css.map → C_Table-BV1wUw6f.css.map} +1 -1
- package/dist/{C_Table-wzAO43l0.css.map → C_Table-LlJ-JEdm.css.map} +1 -1
- package/dist/C_Table.css +93 -93
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +2 -2
- package/dist/C_Table.js.map +1 -1
- package/dist/C_Table2.js +1 -1
- package/dist/C_Table2.js.map +1 -1
- package/dist/{C_TagsView-BsutyC3U.css.map → C_TagsView-DX3LecK1.css.map} +1 -1
- package/dist/{C_TagsView-Crm7yWg9.css.map → C_TagsView-DqOTa8bL.css.map} +1 -1
- package/dist/C_TagsView.css +36 -36
- package/dist/C_TagsView.js.map +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_TagsView2.js.map +1 -1
- package/dist/C_Time-BzyQVvTS.css.map +1 -0
- package/dist/C_Time-DmpKLQHc.css.map +1 -0
- package/dist/C_Time.css +5 -5
- package/dist/C_Time.js.map +1 -1
- package/dist/C_Time2.js +1 -1
- package/dist/C_Time2.js.map +1 -1
- package/dist/{C_Timeline-CGTFTMX0.css.map → C_Timeline-BIvw3f41.css.map} +1 -1
- package/dist/{C_Timeline-DxKyvKer.css.map → C_Timeline-VsDfCv4Q.css.map} +1 -1
- package/dist/C_Timeline.css +42 -42
- package/dist/C_Timeline.js.map +1 -1
- package/dist/C_Timeline2.js +1 -1
- package/dist/C_Timeline2.js.map +1 -1
- package/dist/{C_Transfer-CCEqnC-v.css.map → C_Transfer-BOB6OBqS.css.map} +1 -1
- package/dist/{C_Transfer-CStPm4NP.css.map → C_Transfer-Dpq7ezWC.css.map} +1 -1
- package/dist/C_Transfer.css +31 -31
- package/dist/C_Transfer.js.map +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Transfer2.js.map +1 -1
- package/dist/{C_Tree-B-Le4hjQ.css.map → C_Tree-D98nX9qT.css.map} +1 -1
- package/dist/{C_Tree-DnGc_MPb.css.map → C_Tree-ulfm7b-P.css.map} +1 -1
- package/dist/C_Tree.css +33 -33
- package/dist/C_Tree.js.map +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_Tree2.js.map +1 -1
- package/dist/{C_VideoPlayer-Cdgv4Zq0.css.map → C_VideoPlayer-4J96tKfK.css.map} +1 -1
- package/dist/{C_VideoPlayer-rm0MODUv.css.map → C_VideoPlayer-D35seHkm.css.map} +1 -1
- package/dist/C_VideoPlayer.css +13 -13
- package/dist/C_VideoPlayer.js.map +1 -1
- package/dist/C_VideoPlayer2.js +1 -1
- package/dist/C_VideoPlayer2.js.map +1 -1
- package/dist/{C_VtableGantt-BpY-Rng3.css.map → C_VtableGantt-C2lxFmWg.css.map} +1 -1
- package/dist/{C_VtableGantt-DB87-jdS.css.map → C_VtableGantt-Dwnkw_WL.css.map} +1 -1
- package/dist/C_VtableGantt.css +15 -15
- package/dist/C_VtableGantt.js.map +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_VtableGantt2.js.map +1 -1
- package/dist/{C_WorkFlow-7F6op6qN.css.map → C_WorkFlow-2hJfvvTK.css.map} +1 -1
- package/dist/{C_WorkFlow-Cy3HWA6A.css.map → C_WorkFlow-DHoNjl8-.css.map} +1 -1
- package/dist/C_WorkFlow.css +108 -108
- package/dist/C_WorkFlow.js.map +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/C_WorkFlow2.js.map +1 -1
- package/dist/constants.d.ts +5 -5
- package/dist/constants2.d.ts +5 -5
- package/dist/constants3.d.ts +2 -2
- package/dist/constants4.d.ts +3 -3
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.ts +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.vue.d.ts +7 -7
- package/dist/index10.vue.d.ts +3 -3
- package/dist/index11.vue.d.ts +1 -1
- package/dist/index12.vue.d.ts +4 -4
- package/dist/index13.vue.d.ts +2 -2
- package/dist/index15.vue.d.ts +3 -3
- package/dist/index16.vue.d.ts +2 -2
- package/dist/index18.vue.d.ts +7 -7
- package/dist/index2.vue.d.ts +1 -1
- package/dist/index20.vue.d.ts +2 -2
- package/dist/index24.vue.d.ts +1 -1
- package/dist/index25.vue.d.ts +2 -2
- package/dist/index26.vue.d.ts +2 -2
- package/dist/index3.vue.d.ts +1 -1
- package/dist/index4.vue.d.ts +3 -3
- package/dist/index6.vue.d.ts +1 -1
- package/dist/index7.vue.d.ts +2 -2
- package/dist/index8.vue.d.ts +1 -1
- package/dist/index9.vue.d.ts +2 -2
- package/dist/menuAdapter.js.map +1 -1
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.js.map +1 -1
- package/dist/style.css +1512 -1512
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +1 -1
- package/dist/useCropperCore.d.ts +5 -5
- package/dist/useDraggableLayout.d.ts +9 -9
- package/dist/useDynamicFormState.d.ts +6 -6
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useInfiniteScroll.d.ts +3 -3
- package/dist/useModalEdit.d.ts +17 -12
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.ts +1 -1
- package/dist/useSplitResize.d.ts +3 -3
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +2 -2
- package/dist/useWorkflowValidation.d.ts +4 -4
- package/package.json +1 -1
- package/dist/C_ActionBar-jZPsiXtT.css.map +0 -1
- package/dist/C_ActionBar-nnfbZCea.css.map +0 -1
- package/dist/C_Code-DPZlNSxL.css.map +0 -1
- package/dist/C_Code-avZjAnHD.css.map +0 -1
- package/dist/C_FullCalendar-1U4VlG7X.css.map +0 -1
- package/dist/C_FullCalendar-DLUdCtqf.css.map +0 -1
- package/dist/C_Steps-BHYNJI1l.css.map +0 -1
- package/dist/C_Steps-DY7vl-4I.css.map +0 -1
- package/dist/C_Time-Bd_e1YDN.css.map +0 -1
- package/dist/C_Time-CKb_fwdm.css.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# @robot-admin/naive-ui-components
|
|
2
|
-
|
|
3
|
-
## 0.6.2
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- 修复菜单图标在生产环境下错位问题
|
|
8
|
-
- menuAdapter 的 defaultRenderIcon 中 `inline-flex items-center` 原子类改为内联 style
|
|
9
|
-
- 组件库不应依赖宿主项目的 UnoCSS/Tailwind 原子类,否则生产构建时可能丢失样式
|
|
10
|
-
|
|
11
|
-
## 0.6.1
|
|
12
|
-
|
|
13
|
-
### Patch Changes
|
|
14
|
-
|
|
15
|
-
- 修复 C_Table loading 状态在 crud 模式下失效的问题
|
|
16
|
-
- `loading` prop 默认值从 `false` 改为 `undefined`,使 `??` 运算符能正确回退到 `crud.loading.value`
|
|
17
|
-
- 之前 `false ?? crud.loading.value` 始终返回 `false`(`??` 不回退 falsy 值,只回退 null/undefined)
|
|
18
|
-
|
|
19
|
-
## 0.6.0
|
|
20
|
-
|
|
21
|
-
### Minor Changes
|
|
22
|
-
|
|
23
|
-
- 依赖架构优化 + CSS 按需导入 + Changesets 集成
|
|
24
|
-
- 将 optionalDependencies 迁移至 dependencies,消费端自动传递安装
|
|
25
|
-
- 新增按组件 CSS 导出 (`C_*/style.css`),支持样式按需导入
|
|
26
|
-
- 修复 merge-css.js 中 esm/cjs CSS 重复合并问题
|
|
27
|
-
- Resolver 新增 `importStyle` 选项,自动注入组件样式
|
|
28
|
-
- 集成 @changesets/cli 自动化版本管理
|
|
29
|
-
|
|
30
|
-
- 提取 C_Menu / C_Breadcrumb / C_TagsView 布局组件 + 适配器架构
|
|
31
|
-
- 新增 `_shared` 模块:统一类型定义(RouteItem, TagItem, BreadcrumbItem)+ menuAdapter 适配器
|
|
32
|
-
- `createMenuOptions(routes, config)` 工厂函数:将 RouteItem[] 转换为 NMenu MenuOption[]
|
|
33
|
-
- `flattenRoutes()` 辅助:扁平化嵌套路由用于标签页匹配
|
|
34
|
-
- C_Menu:支持双输入(options / routes),内置 labelFormatter 回调解耦 i18n
|
|
35
|
-
- C_Breadcrumb:auto(route.matched)+ manual(items)双模式
|
|
36
|
-
- C_TagsView:useTagsView composable + localStorage 持久化 + 右键菜单
|
|
37
|
-
- vue-router ^4.0.0 新增为 peerDependency
|
|
38
|
-
|
|
39
|
-
## 0.5.0
|
|
40
|
-
|
|
41
|
-
### Minor Changes
|
|
42
|
-
|
|
43
|
-
- 依赖架构优化 + CSS 按需导入 + Changesets 集成
|
|
44
|
-
- 将 optionalDependencies 迁移至 dependencies,消费端自动传递安装
|
|
45
|
-
- 新增按组件 CSS 导出 (`C_*/style.css`),支持样式按需导入
|
|
46
|
-
- 修复 merge-css.js 中 esm/cjs CSS 重复合并问题
|
|
47
|
-
- Resolver 新增 `importStyle` 选项,自动注入组件样式
|
|
48
|
-
- 集成 @changesets/cli 自动化版本管理
|
|
1
|
+
# @robot-admin/naive-ui-components
|
|
2
|
+
|
|
3
|
+
## 0.6.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 修复菜单图标在生产环境下错位问题
|
|
8
|
+
- menuAdapter 的 defaultRenderIcon 中 `inline-flex items-center` 原子类改为内联 style
|
|
9
|
+
- 组件库不应依赖宿主项目的 UnoCSS/Tailwind 原子类,否则生产构建时可能丢失样式
|
|
10
|
+
|
|
11
|
+
## 0.6.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 修复 C_Table loading 状态在 crud 模式下失效的问题
|
|
16
|
+
- `loading` prop 默认值从 `false` 改为 `undefined`,使 `??` 运算符能正确回退到 `crud.loading.value`
|
|
17
|
+
- 之前 `false ?? crud.loading.value` 始终返回 `false`(`??` 不回退 falsy 值,只回退 null/undefined)
|
|
18
|
+
|
|
19
|
+
## 0.6.0
|
|
20
|
+
|
|
21
|
+
### Minor Changes
|
|
22
|
+
|
|
23
|
+
- 依赖架构优化 + CSS 按需导入 + Changesets 集成
|
|
24
|
+
- 将 optionalDependencies 迁移至 dependencies,消费端自动传递安装
|
|
25
|
+
- 新增按组件 CSS 导出 (`C_*/style.css`),支持样式按需导入
|
|
26
|
+
- 修复 merge-css.js 中 esm/cjs CSS 重复合并问题
|
|
27
|
+
- Resolver 新增 `importStyle` 选项,自动注入组件样式
|
|
28
|
+
- 集成 @changesets/cli 自动化版本管理
|
|
29
|
+
|
|
30
|
+
- 提取 C_Menu / C_Breadcrumb / C_TagsView 布局组件 + 适配器架构
|
|
31
|
+
- 新增 `_shared` 模块:统一类型定义(RouteItem, TagItem, BreadcrumbItem)+ menuAdapter 适配器
|
|
32
|
+
- `createMenuOptions(routes, config)` 工厂函数:将 RouteItem[] 转换为 NMenu MenuOption[]
|
|
33
|
+
- `flattenRoutes()` 辅助:扁平化嵌套路由用于标签页匹配
|
|
34
|
+
- C_Menu:支持双输入(options / routes),内置 labelFormatter 回调解耦 i18n
|
|
35
|
+
- C_Breadcrumb:auto(route.matched)+ manual(items)双模式
|
|
36
|
+
- C_TagsView:useTagsView composable + localStorage 持久化 + 右键菜单
|
|
37
|
+
- vue-router ^4.0.0 新增为 peerDependency
|
|
38
|
+
|
|
39
|
+
## 0.5.0
|
|
40
|
+
|
|
41
|
+
### Minor Changes
|
|
42
|
+
|
|
43
|
+
- 依赖架构优化 + CSS 按需导入 + Changesets 集成
|
|
44
|
+
- 将 optionalDependencies 迁移至 dependencies,消费端自动传递安装
|
|
45
|
+
- 新增按组件 CSS 导出 (`C_*/style.css`),支持样式按需导入
|
|
46
|
+
- 修复 merge-css.js 中 esm/cjs CSS 重复合并问题
|
|
47
|
+
- Resolver 新增 `importStyle` 选项,自动注入组件样式
|
|
48
|
+
- 集成 @changesets/cli 自动化版本管理
|
package/README.md
CHANGED
|
@@ -1,277 +1,277 @@
|
|
|
1
|
-
# @agile-team/naive-ui-components
|
|
2
|
-
|
|
3
|
-
基于 **Naive UI** 的 Vue 3 企业级组件库,从 Robot Admin 中提炼的 49 个高质量业务组件。
|
|
4
|
-
|
|
5
|
-
支持 **全量注册**、**按需导入(Tree-Shaking)** 和 **子路径独立导入**,配合多入口构建输出 ESM / CJS / DTS,满足不同集成场景。
|
|
6
|
-
|
|
7
|
-
## 📦 安装
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
bun add @agile-team/naive-ui-components
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
必需的对等依赖:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
bun add vue@^3.5.0 naive-ui@^2.35.0
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## 🚀 快速开始
|
|
20
|
-
|
|
21
|
-
### 全局注册
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
import { createApp } from 'vue'
|
|
25
|
-
import NaiveUIComponents from '@agile-team/naive-ui-components'
|
|
26
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
27
|
-
|
|
28
|
-
const app = createApp(App)
|
|
29
|
-
app.use(NaiveUIComponents)
|
|
30
|
-
app.mount('#app')
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 按需导入(主入口 Tree-Shaking)
|
|
34
|
-
|
|
35
|
-
```vue
|
|
36
|
-
<script setup lang="ts">
|
|
37
|
-
import { C_Icon, C_Table, C_Form } from '@agile-team/naive-ui-components'
|
|
38
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
39
|
-
</script>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 子路径独立导入(推荐,最小打包体积)
|
|
43
|
-
|
|
44
|
-
每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
|
|
45
|
-
|
|
46
|
-
```vue
|
|
47
|
-
<script setup lang="ts">
|
|
48
|
-
import { C_Form } from '@agile-team/naive-ui-components/C_Form'
|
|
49
|
-
import { C_Table } from '@agile-team/naive-ui-components/C_Table'
|
|
50
|
-
import { C_Icon } from '@agile-team/naive-ui-components/C_Icon'
|
|
51
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
52
|
-
</script>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
> 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。
|
|
56
|
-
|
|
57
|
-
### Composables 单独使用
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import {
|
|
61
|
-
useTableManager,
|
|
62
|
-
useFormState,
|
|
63
|
-
usePlayerCore,
|
|
64
|
-
} from '@agile-team/naive-ui-components'
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## 📋 组件清单(49 个)
|
|
68
|
-
|
|
69
|
-
> 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
|
|
70
|
-
|
|
71
|
-
### 基础组件
|
|
72
|
-
|
|
73
|
-
| 组件 | 说明 | 外部依赖 |
|
|
74
|
-
| ---------------- | ---------------- | --------------------------- |
|
|
75
|
-
| `C_Icon` | Iconify 图标封装 | `@iconify/vue` |
|
|
76
|
-
| `C_Code` | 代码高亮显示 | `highlight.js` |
|
|
77
|
-
| `C_Barcode` | 条形码生成器 | `@chenfengyuan/vue-barcode` |
|
|
78
|
-
| `C_Captcha` | 拼图验证码 | `vue3-puzzle-vcode` |
|
|
79
|
-
| `C_Cascade` | 级联面板选择器 | - |
|
|
80
|
-
| `C_Guide` | 新手引导 | `driver.js` |
|
|
81
|
-
| `C_Progress` | 增强进度条 | - |
|
|
82
|
-
| `C_Steps` | 步骤条 | - |
|
|
83
|
-
| `C_ActionBar` | 操作按钮栏 | - |
|
|
84
|
-
| `C_Theme` | 主题切换器 | - |
|
|
85
|
-
| `C_Language` | 语言切换器 | - |
|
|
86
|
-
| `C_Date` | 日期选择器增强 | - |
|
|
87
|
-
| `C_City` | 省市区三级联动 | - |
|
|
88
|
-
| `C_Breadcrumb` | 面包屑导航 | - |
|
|
89
|
-
| `C_Menu` | 导航菜单 | - |
|
|
90
|
-
| `C_TagsView` | 标签页导航 | - |
|
|
91
|
-
| `C_GlobalSearch` | 全局搜索面板 | - |
|
|
92
|
-
| `C_AvatarGroup` | 头像组合展示 | - |
|
|
93
|
-
|
|
94
|
-
### 内容 & 编辑组件
|
|
95
|
-
|
|
96
|
-
| 组件 | 说明 | 外部依赖 |
|
|
97
|
-
| ----------------- | -------------------- | -------------------- |
|
|
98
|
-
| `C_Editor` | 富文本编辑器 | `@wangeditor/editor` |
|
|
99
|
-
| `C_Markdown` | Markdown 编辑器/预览 | `@kangc/v-md-editor` |
|
|
100
|
-
| `C_FormulaEditor` | 公式编辑器 | `expr-eval` |
|
|
101
|
-
| `C_Signature` | 电子签名 | - |
|
|
102
|
-
| `C_QRCode` | 二维码生成器 | `qrcode` |
|
|
103
|
-
| `C_ImageCropper` | 图片裁剪器 | `vue-cropper` |
|
|
104
|
-
|
|
105
|
-
### 数据展示组件
|
|
106
|
-
|
|
107
|
-
| 组件 | 说明 | 外部依赖 |
|
|
108
|
-
| ---------------- | ----------------------------------------- | ------------------------------------ |
|
|
109
|
-
| `C_Table` | 高级数据表格(CRUD/行列编辑/动态行/打印) | `print-js`、`html2canvas` |
|
|
110
|
-
| `C_Map` | 地图组件(OSM/高德) | `leaflet` |
|
|
111
|
-
| `C_VtableGantt` | 甘特图 | `@visactor/vtable-gantt` |
|
|
112
|
-
| `C_AntV` | 图编辑器(ER/BPMN/UML) | `@antv/x6`、`html2canvas` |
|
|
113
|
-
| `C_WaterFall` | 瀑布流布局 | - |
|
|
114
|
-
| `C_FullCalendar` | 日历事件 | `@fullcalendar/*` |
|
|
115
|
-
| `C_VideoPlayer` | 视频播放器(HLS/字幕/书签/章节) | `xgplayer`、`xgplayer-hls` |
|
|
116
|
-
| `C_AudioPlayer` | 音频播放器(波形/进度/播放列表) | - |
|
|
117
|
-
| `C_FilePreview` | 文件预览(PDF/Word/Excel) | `xlsx`、`mammoth`、`@tato30/vue-pdf` |
|
|
118
|
-
| `C_Timeline` | 时间线(垂直/水平/可折叠) | - |
|
|
119
|
-
|
|
120
|
-
### 表单 & 布局组件
|
|
121
|
-
|
|
122
|
-
| 组件 | 说明 | 外部依赖 |
|
|
123
|
-
| ----------------- | ------------------------------------------------- | ---------------------------- |
|
|
124
|
-
| `C_Form` | 动态表单引擎(Grid/Tabs/Steps/Card/Dynamic 布局) | `@robot-admin/form-validate` |
|
|
125
|
-
| `C_FormSearch` | 搜索表单 | - |
|
|
126
|
-
| `C_CollapsePanel` | 折叠面板 | - |
|
|
127
|
-
| `C_SplitPane` | 分割面板 | - |
|
|
128
|
-
| `C_Draggable` | 拖拽排序 | `vue-draggable-plus` |
|
|
129
|
-
| `C_Tree` | 高级树形控件 | - |
|
|
130
|
-
| `C_Time` | 时间选择器增强 | - |
|
|
131
|
-
| `C_Cron` | Cron 表达式编辑器 | - |
|
|
132
|
-
| `C_Transfer` | 穿梭框(搜索/全选/批量操作) | - |
|
|
133
|
-
|
|
134
|
-
### 交互 & 业务组件
|
|
135
|
-
|
|
136
|
-
| 组件 | 说明 | 外部依赖 |
|
|
137
|
-
| --------------- | -------------------------------------- | -------- |
|
|
138
|
-
| `C_Chat` | 聊天组件(联系人/消息气泡/输入框) | - |
|
|
139
|
-
| `C_ContextMenu` | 右键菜单(嵌套子菜单/快捷键/危险操作) | - |
|
|
140
|
-
| `C_Login` | 登录组件(5种模式/验证码/记住密码) | - |
|
|
141
|
-
|
|
142
|
-
### 流程 & 通知组件
|
|
143
|
-
|
|
144
|
-
| 组件 | 说明 | 外部依赖 |
|
|
145
|
-
| ---------------------- | ------------------------------------ | ---------------- |
|
|
146
|
-
| `C_WorkFlow` | 工作流编辑器(审批/抄送/条件节点) | `@vue-flow/core` |
|
|
147
|
-
| `C_NotificationCenter` | 通知中心(WebSocket/轮询) | - |
|
|
148
|
-
| `C_Upload` | 大文件上传(分片/断点续传/哈希校验) | `spark-md5` |
|
|
149
|
-
|
|
150
|
-
## 🔌 可选依赖
|
|
151
|
-
|
|
152
|
-
包含外部依赖的组件以 `optionalDependencies` 声明。**按需安装**:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# 视频播放器
|
|
156
|
-
bun add xgplayer xgplayer-hls
|
|
157
|
-
|
|
158
|
-
# 图编辑器
|
|
159
|
-
bun add @antv/x6
|
|
160
|
-
|
|
161
|
-
# 工作流
|
|
162
|
-
bun add @vue-flow/core
|
|
163
|
-
|
|
164
|
-
# 文件预览
|
|
165
|
-
bun add xlsx mammoth @tato30/vue-pdf
|
|
166
|
-
|
|
167
|
-
# 表格打印
|
|
168
|
-
bun add print-js html2canvas
|
|
169
|
-
|
|
170
|
-
# 公式编辑器
|
|
171
|
-
bun add expr-eval
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## 🏗️ 构建架构
|
|
175
|
-
|
|
176
|
-
### 四阶段构建流水线
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
bun run build
|
|
180
|
-
├── 1. tsdown → 多入口打包(49 组件 ESM/CJS/DTS)
|
|
181
|
-
├── 2. sass CLI → 编译 global.scss → global-scss.css
|
|
182
|
-
├── 3. merge-css.js → 合并 SFC CSS + global SCSS → style.css
|
|
183
|
-
└── 4. gen-exports.js → 自动生成 package.json exports 映射
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### 技术要点
|
|
187
|
-
|
|
188
|
-
- **构建引擎**:[tsdown](https://github.com/rolldown/tsdown)(基于 Rolldown),49 个独立入口并行编译
|
|
189
|
-
- **SCSS 处理**:自定义 `scssTransformPlugin` 在 Rolldown 管线内编译 SFC SCSS,独立 Sass CLI 编译全局样式
|
|
190
|
-
- **CSS 合并**:构建后将分散的 per-chunk CSS 与 `global-scss.css` 合并为单一 `style.css`
|
|
191
|
-
- **类型导出**:统一 `export *` barrel 模式,自动生成完整 `.d.ts`
|
|
192
|
-
- **子路径导出**:`gen-exports.js` 自动扫描 `dist/` 并写入 `package.json` 的 `exports` 字段
|
|
193
|
-
- **导出冲突检测**:`check-export-conflicts.js` 确保组件间无命名冲突
|
|
194
|
-
|
|
195
|
-
### 输出产物
|
|
196
|
-
|
|
197
|
-
```
|
|
198
|
-
dist/
|
|
199
|
-
├── index.js / index.cjs / index.d.ts # 主入口
|
|
200
|
-
├── C_Form.js / C_Form.cjs / C_Form.d.ts # 子路径入口(49 组件)
|
|
201
|
-
├── style.css # 合并后的全量样式
|
|
202
|
-
└── [chunk].js # 共享代码块
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## 🔧 开发
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
bun install # 安装依赖
|
|
209
|
-
bun run dev # 开发模式(SCSS watch + tsdown watch)
|
|
210
|
-
bun run build # 完整构建
|
|
211
|
-
bun run build:scss # 仅编译全局 SCSS
|
|
212
|
-
bun run build:css # 仅合并 CSS
|
|
213
|
-
bun run build:exports # 仅生成 exports 映射
|
|
214
|
-
bun run check:exports # 检测导出命名冲突
|
|
215
|
-
bun run type-check # TypeScript 类型检查
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### 项目结构
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
naive-ui-components/
|
|
222
|
-
├── src/
|
|
223
|
-
│ ├── index.ts # 库入口(全量注册 + export * barrel)
|
|
224
|
-
│ ├── styles/
|
|
225
|
-
│ │ ├── variables.scss # CSS 变量 (--c-*)
|
|
226
|
-
│ │ └── global.scss # 自动生成的全局样式聚合(@forward barrel)
|
|
227
|
-
│ ├── components/
|
|
228
|
-
│ │ └── C_[Name]/
|
|
229
|
-
│ │ ├── index.vue # 组件主文件
|
|
230
|
-
│ │ ├── index.ts # Barrel 导出
|
|
231
|
-
│ │ ├── index.scss # 组件样式
|
|
232
|
-
│ │ ├── types.ts # 类型定义
|
|
233
|
-
│ │ ├── constants.ts # 常量
|
|
234
|
-
│ │ ├── data.ts # 静态数据
|
|
235
|
-
│ │ ├── composables/ # 组合式函数
|
|
236
|
-
│ │ ├── components/ # 子组件
|
|
237
|
-
│ │ └── layouts/ # 布局变体(C_Form/C_AntV)
|
|
238
|
-
│ ├── plugins/ # highlight.js 等插件
|
|
239
|
-
│ └── utils/ # 工具函数
|
|
240
|
-
├── scripts/
|
|
241
|
-
│ ├── gen-global-scss.js # 生成 global.scss(@forward barrel)
|
|
242
|
-
│ ├── watch-global-scss.js # 开发模式 SCSS 监听
|
|
243
|
-
│ ├── merge-css.js # 合并 CSS 产物
|
|
244
|
-
│ ├── gen-exports.js # 自动生成 package.json exports
|
|
245
|
-
│ └── check-export-conflicts.js # 导出命名冲突检测
|
|
246
|
-
├── types/
|
|
247
|
-
│ └── env.d.ts # .vue / .scss 模块声明
|
|
248
|
-
├── tsdown.config.ts # 构建配置(多入口 + SCSS 插件 + Vue 插件)
|
|
249
|
-
└── tsconfig.json
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### 添加新组件
|
|
253
|
-
|
|
254
|
-
1. 创建 `src/components/C_NewComponent/` 目录
|
|
255
|
-
2. 编写 `index.vue`、`index.ts`(barrel)、`types.ts`
|
|
256
|
-
3. 在 `src/index.ts` 中添加 `export * from './components/C_NewComponent'`
|
|
257
|
-
4. 运行 `bun run build`—构建脚本会自动生成子路径入口和 exports 映射
|
|
258
|
-
|
|
259
|
-
### 发布
|
|
260
|
-
|
|
261
|
-
```bash
|
|
262
|
-
bun run release:patch # 0.3.0 → 0.3.1
|
|
263
|
-
bun run release:minor # 0.3.0 → 0.4.0
|
|
264
|
-
bun run release:major # 0.3.0 → 1.0.0
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
## 📄 许可证
|
|
268
|
-
|
|
269
|
-
MIT License
|
|
270
|
-
|
|
271
|
-
## 🔗 相关链接
|
|
272
|
-
|
|
273
|
-
- [组件在线文档(含交互演示)](https://www.tzagileteam.com/robot/components/preface)
|
|
274
|
-
- [Robot Admin 主项目](https://github.com/ChenyCHENYU/robot_admin)
|
|
275
|
-
- [Robot Admin 在线体验](https://www.robotadmin.cn)
|
|
276
|
-
- [GitHub](https://github.com/ChenyCHENYU/naive-ui-components)
|
|
277
|
-
- [NPM](https://www.npmjs.com/package/@agile-team/naive-ui-components)
|
|
1
|
+
# @agile-team/naive-ui-components
|
|
2
|
+
|
|
3
|
+
基于 **Naive UI** 的 Vue 3 企业级组件库,从 Robot Admin 中提炼的 49 个高质量业务组件。
|
|
4
|
+
|
|
5
|
+
支持 **全量注册**、**按需导入(Tree-Shaking)** 和 **子路径独立导入**,配合多入口构建输出 ESM / CJS / DTS,满足不同集成场景。
|
|
6
|
+
|
|
7
|
+
## 📦 安装
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bun add @agile-team/naive-ui-components
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
必需的对等依赖:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bun add vue@^3.5.0 naive-ui@^2.35.0
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 🚀 快速开始
|
|
20
|
+
|
|
21
|
+
### 全局注册
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { createApp } from 'vue'
|
|
25
|
+
import NaiveUIComponents from '@agile-team/naive-ui-components'
|
|
26
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
27
|
+
|
|
28
|
+
const app = createApp(App)
|
|
29
|
+
app.use(NaiveUIComponents)
|
|
30
|
+
app.mount('#app')
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 按需导入(主入口 Tree-Shaking)
|
|
34
|
+
|
|
35
|
+
```vue
|
|
36
|
+
<script setup lang="ts">
|
|
37
|
+
import { C_Icon, C_Table, C_Form } from '@agile-team/naive-ui-components'
|
|
38
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
39
|
+
</script>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 子路径独立导入(推荐,最小打包体积)
|
|
43
|
+
|
|
44
|
+
每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
|
|
45
|
+
|
|
46
|
+
```vue
|
|
47
|
+
<script setup lang="ts">
|
|
48
|
+
import { C_Form } from '@agile-team/naive-ui-components/C_Form'
|
|
49
|
+
import { C_Table } from '@agile-team/naive-ui-components/C_Table'
|
|
50
|
+
import { C_Icon } from '@agile-team/naive-ui-components/C_Icon'
|
|
51
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
52
|
+
</script>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。
|
|
56
|
+
|
|
57
|
+
### Composables 单独使用
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import {
|
|
61
|
+
useTableManager,
|
|
62
|
+
useFormState,
|
|
63
|
+
usePlayerCore,
|
|
64
|
+
} from '@agile-team/naive-ui-components'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 📋 组件清单(49 个)
|
|
68
|
+
|
|
69
|
+
> 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
|
|
70
|
+
|
|
71
|
+
### 基础组件
|
|
72
|
+
|
|
73
|
+
| 组件 | 说明 | 外部依赖 |
|
|
74
|
+
| ---------------- | ---------------- | --------------------------- |
|
|
75
|
+
| `C_Icon` | Iconify 图标封装 | `@iconify/vue` |
|
|
76
|
+
| `C_Code` | 代码高亮显示 | `highlight.js` |
|
|
77
|
+
| `C_Barcode` | 条形码生成器 | `@chenfengyuan/vue-barcode` |
|
|
78
|
+
| `C_Captcha` | 拼图验证码 | `vue3-puzzle-vcode` |
|
|
79
|
+
| `C_Cascade` | 级联面板选择器 | - |
|
|
80
|
+
| `C_Guide` | 新手引导 | `driver.js` |
|
|
81
|
+
| `C_Progress` | 增强进度条 | - |
|
|
82
|
+
| `C_Steps` | 步骤条 | - |
|
|
83
|
+
| `C_ActionBar` | 操作按钮栏 | - |
|
|
84
|
+
| `C_Theme` | 主题切换器 | - |
|
|
85
|
+
| `C_Language` | 语言切换器 | - |
|
|
86
|
+
| `C_Date` | 日期选择器增强 | - |
|
|
87
|
+
| `C_City` | 省市区三级联动 | - |
|
|
88
|
+
| `C_Breadcrumb` | 面包屑导航 | - |
|
|
89
|
+
| `C_Menu` | 导航菜单 | - |
|
|
90
|
+
| `C_TagsView` | 标签页导航 | - |
|
|
91
|
+
| `C_GlobalSearch` | 全局搜索面板 | - |
|
|
92
|
+
| `C_AvatarGroup` | 头像组合展示 | - |
|
|
93
|
+
|
|
94
|
+
### 内容 & 编辑组件
|
|
95
|
+
|
|
96
|
+
| 组件 | 说明 | 外部依赖 |
|
|
97
|
+
| ----------------- | -------------------- | -------------------- |
|
|
98
|
+
| `C_Editor` | 富文本编辑器 | `@wangeditor/editor` |
|
|
99
|
+
| `C_Markdown` | Markdown 编辑器/预览 | `@kangc/v-md-editor` |
|
|
100
|
+
| `C_FormulaEditor` | 公式编辑器 | `expr-eval` |
|
|
101
|
+
| `C_Signature` | 电子签名 | - |
|
|
102
|
+
| `C_QRCode` | 二维码生成器 | `qrcode` |
|
|
103
|
+
| `C_ImageCropper` | 图片裁剪器 | `vue-cropper` |
|
|
104
|
+
|
|
105
|
+
### 数据展示组件
|
|
106
|
+
|
|
107
|
+
| 组件 | 说明 | 外部依赖 |
|
|
108
|
+
| ---------------- | ----------------------------------------- | ------------------------------------ |
|
|
109
|
+
| `C_Table` | 高级数据表格(CRUD/行列编辑/动态行/打印) | `print-js`、`html2canvas` |
|
|
110
|
+
| `C_Map` | 地图组件(OSM/高德) | `leaflet` |
|
|
111
|
+
| `C_VtableGantt` | 甘特图 | `@visactor/vtable-gantt` |
|
|
112
|
+
| `C_AntV` | 图编辑器(ER/BPMN/UML) | `@antv/x6`、`html2canvas` |
|
|
113
|
+
| `C_WaterFall` | 瀑布流布局 | - |
|
|
114
|
+
| `C_FullCalendar` | 日历事件 | `@fullcalendar/*` |
|
|
115
|
+
| `C_VideoPlayer` | 视频播放器(HLS/字幕/书签/章节) | `xgplayer`、`xgplayer-hls` |
|
|
116
|
+
| `C_AudioPlayer` | 音频播放器(波形/进度/播放列表) | - |
|
|
117
|
+
| `C_FilePreview` | 文件预览(PDF/Word/Excel) | `xlsx`、`mammoth`、`@tato30/vue-pdf` |
|
|
118
|
+
| `C_Timeline` | 时间线(垂直/水平/可折叠) | - |
|
|
119
|
+
|
|
120
|
+
### 表单 & 布局组件
|
|
121
|
+
|
|
122
|
+
| 组件 | 说明 | 外部依赖 |
|
|
123
|
+
| ----------------- | ------------------------------------------------- | ---------------------------- |
|
|
124
|
+
| `C_Form` | 动态表单引擎(Grid/Tabs/Steps/Card/Dynamic 布局) | `@robot-admin/form-validate` |
|
|
125
|
+
| `C_FormSearch` | 搜索表单 | - |
|
|
126
|
+
| `C_CollapsePanel` | 折叠面板 | - |
|
|
127
|
+
| `C_SplitPane` | 分割面板 | - |
|
|
128
|
+
| `C_Draggable` | 拖拽排序 | `vue-draggable-plus` |
|
|
129
|
+
| `C_Tree` | 高级树形控件 | - |
|
|
130
|
+
| `C_Time` | 时间选择器增强 | - |
|
|
131
|
+
| `C_Cron` | Cron 表达式编辑器 | - |
|
|
132
|
+
| `C_Transfer` | 穿梭框(搜索/全选/批量操作) | - |
|
|
133
|
+
|
|
134
|
+
### 交互 & 业务组件
|
|
135
|
+
|
|
136
|
+
| 组件 | 说明 | 外部依赖 |
|
|
137
|
+
| --------------- | -------------------------------------- | -------- |
|
|
138
|
+
| `C_Chat` | 聊天组件(联系人/消息气泡/输入框) | - |
|
|
139
|
+
| `C_ContextMenu` | 右键菜单(嵌套子菜单/快捷键/危险操作) | - |
|
|
140
|
+
| `C_Login` | 登录组件(5种模式/验证码/记住密码) | - |
|
|
141
|
+
|
|
142
|
+
### 流程 & 通知组件
|
|
143
|
+
|
|
144
|
+
| 组件 | 说明 | 外部依赖 |
|
|
145
|
+
| ---------------------- | ------------------------------------ | ---------------- |
|
|
146
|
+
| `C_WorkFlow` | 工作流编辑器(审批/抄送/条件节点) | `@vue-flow/core` |
|
|
147
|
+
| `C_NotificationCenter` | 通知中心(WebSocket/轮询) | - |
|
|
148
|
+
| `C_Upload` | 大文件上传(分片/断点续传/哈希校验) | `spark-md5` |
|
|
149
|
+
|
|
150
|
+
## 🔌 可选依赖
|
|
151
|
+
|
|
152
|
+
包含外部依赖的组件以 `optionalDependencies` 声明。**按需安装**:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 视频播放器
|
|
156
|
+
bun add xgplayer xgplayer-hls
|
|
157
|
+
|
|
158
|
+
# 图编辑器
|
|
159
|
+
bun add @antv/x6
|
|
160
|
+
|
|
161
|
+
# 工作流
|
|
162
|
+
bun add @vue-flow/core
|
|
163
|
+
|
|
164
|
+
# 文件预览
|
|
165
|
+
bun add xlsx mammoth @tato30/vue-pdf
|
|
166
|
+
|
|
167
|
+
# 表格打印
|
|
168
|
+
bun add print-js html2canvas
|
|
169
|
+
|
|
170
|
+
# 公式编辑器
|
|
171
|
+
bun add expr-eval
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## 🏗️ 构建架构
|
|
175
|
+
|
|
176
|
+
### 四阶段构建流水线
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
bun run build
|
|
180
|
+
├── 1. tsdown → 多入口打包(49 组件 ESM/CJS/DTS)
|
|
181
|
+
├── 2. sass CLI → 编译 global.scss → global-scss.css
|
|
182
|
+
├── 3. merge-css.js → 合并 SFC CSS + global SCSS → style.css
|
|
183
|
+
└── 4. gen-exports.js → 自动生成 package.json exports 映射
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 技术要点
|
|
187
|
+
|
|
188
|
+
- **构建引擎**:[tsdown](https://github.com/rolldown/tsdown)(基于 Rolldown),49 个独立入口并行编译
|
|
189
|
+
- **SCSS 处理**:自定义 `scssTransformPlugin` 在 Rolldown 管线内编译 SFC SCSS,独立 Sass CLI 编译全局样式
|
|
190
|
+
- **CSS 合并**:构建后将分散的 per-chunk CSS 与 `global-scss.css` 合并为单一 `style.css`
|
|
191
|
+
- **类型导出**:统一 `export *` barrel 模式,自动生成完整 `.d.ts`
|
|
192
|
+
- **子路径导出**:`gen-exports.js` 自动扫描 `dist/` 并写入 `package.json` 的 `exports` 字段
|
|
193
|
+
- **导出冲突检测**:`check-export-conflicts.js` 确保组件间无命名冲突
|
|
194
|
+
|
|
195
|
+
### 输出产物
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
dist/
|
|
199
|
+
├── index.js / index.cjs / index.d.ts # 主入口
|
|
200
|
+
├── C_Form.js / C_Form.cjs / C_Form.d.ts # 子路径入口(49 组件)
|
|
201
|
+
├── style.css # 合并后的全量样式
|
|
202
|
+
└── [chunk].js # 共享代码块
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 🔧 开发
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
bun install # 安装依赖
|
|
209
|
+
bun run dev # 开发模式(SCSS watch + tsdown watch)
|
|
210
|
+
bun run build # 完整构建
|
|
211
|
+
bun run build:scss # 仅编译全局 SCSS
|
|
212
|
+
bun run build:css # 仅合并 CSS
|
|
213
|
+
bun run build:exports # 仅生成 exports 映射
|
|
214
|
+
bun run check:exports # 检测导出命名冲突
|
|
215
|
+
bun run type-check # TypeScript 类型检查
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 项目结构
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
naive-ui-components/
|
|
222
|
+
├── src/
|
|
223
|
+
│ ├── index.ts # 库入口(全量注册 + export * barrel)
|
|
224
|
+
│ ├── styles/
|
|
225
|
+
│ │ ├── variables.scss # CSS 变量 (--c-*)
|
|
226
|
+
│ │ └── global.scss # 自动生成的全局样式聚合(@forward barrel)
|
|
227
|
+
│ ├── components/
|
|
228
|
+
│ │ └── C_[Name]/
|
|
229
|
+
│ │ ├── index.vue # 组件主文件
|
|
230
|
+
│ │ ├── index.ts # Barrel 导出
|
|
231
|
+
│ │ ├── index.scss # 组件样式
|
|
232
|
+
│ │ ├── types.ts # 类型定义
|
|
233
|
+
│ │ ├── constants.ts # 常量
|
|
234
|
+
│ │ ├── data.ts # 静态数据
|
|
235
|
+
│ │ ├── composables/ # 组合式函数
|
|
236
|
+
│ │ ├── components/ # 子组件
|
|
237
|
+
│ │ └── layouts/ # 布局变体(C_Form/C_AntV)
|
|
238
|
+
│ ├── plugins/ # highlight.js 等插件
|
|
239
|
+
│ └── utils/ # 工具函数
|
|
240
|
+
├── scripts/
|
|
241
|
+
│ ├── gen-global-scss.js # 生成 global.scss(@forward barrel)
|
|
242
|
+
│ ├── watch-global-scss.js # 开发模式 SCSS 监听
|
|
243
|
+
│ ├── merge-css.js # 合并 CSS 产物
|
|
244
|
+
│ ├── gen-exports.js # 自动生成 package.json exports
|
|
245
|
+
│ └── check-export-conflicts.js # 导出命名冲突检测
|
|
246
|
+
├── types/
|
|
247
|
+
│ └── env.d.ts # .vue / .scss 模块声明
|
|
248
|
+
├── tsdown.config.ts # 构建配置(多入口 + SCSS 插件 + Vue 插件)
|
|
249
|
+
└── tsconfig.json
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### 添加新组件
|
|
253
|
+
|
|
254
|
+
1. 创建 `src/components/C_NewComponent/` 目录
|
|
255
|
+
2. 编写 `index.vue`、`index.ts`(barrel)、`types.ts`
|
|
256
|
+
3. 在 `src/index.ts` 中添加 `export * from './components/C_NewComponent'`
|
|
257
|
+
4. 运行 `bun run build`—构建脚本会自动生成子路径入口和 exports 映射
|
|
258
|
+
|
|
259
|
+
### 发布
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
bun run release:patch # 0.3.0 → 0.3.1
|
|
263
|
+
bun run release:minor # 0.3.0 → 0.4.0
|
|
264
|
+
bun run release:major # 0.3.0 → 1.0.0
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## 📄 许可证
|
|
268
|
+
|
|
269
|
+
MIT License
|
|
270
|
+
|
|
271
|
+
## 🔗 相关链接
|
|
272
|
+
|
|
273
|
+
- [组件在线文档(含交互演示)](https://www.tzagileteam.com/robot/components/preface)
|
|
274
|
+
- [Robot Admin 主项目](https://github.com/ChenyCHENYU/robot_admin)
|
|
275
|
+
- [Robot Admin 在线体验](https://www.robotadmin.cn)
|
|
276
|
+
- [GitHub](https://github.com/ChenyCHENYU/naive-ui-components)
|
|
277
|
+
- [NPM](https://www.npmjs.com/package/@agile-team/naive-ui-components)
|