@robot-admin/naive-ui-components 0.10.3 → 0.11.1
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 +117 -100
- package/LICENSE +21 -21
- package/README.md +463 -318
- package/README_EN.md +404 -0
- package/SECURITY.md +23 -0
- package/dist/C_ActionBar.cjs +1 -1
- package/dist/C_ActionBar.css +46 -48
- package/dist/C_ActionBar.d.cts +1 -1
- package/dist/C_ActionBar.js +1 -1
- package/dist/C_ActionBar2.cjs +1 -0
- package/dist/C_ActionBar2.js +1 -2
- package/dist/C_AntV.cjs +1 -1
- package/dist/C_AntV.css +3 -3
- package/dist/C_AntV.d.cts +1 -1
- package/dist/C_AntV.js +1 -1
- package/dist/C_AntV2.cjs +4 -0
- package/dist/C_AntV2.js +3 -4
- package/dist/C_AudioPlayer.cjs +1 -1
- package/dist/C_AudioPlayer.css +15 -7
- package/dist/C_AudioPlayer.d.cts +1 -1
- package/dist/C_AudioPlayer.js +1 -1
- package/dist/C_AudioPlayer2.cjs +1 -0
- package/dist/C_AudioPlayer2.js +1 -2
- package/dist/C_AvatarGroup.cjs +1 -1
- package/dist/C_AvatarGroup.css +15 -7
- package/dist/C_AvatarGroup.d.cts +1 -1
- package/dist/C_AvatarGroup2.cjs +1 -0
- package/dist/C_AvatarGroup2.js +1 -2
- package/dist/C_Barcode.cjs +1 -1
- package/dist/C_Barcode.css +0 -2
- package/dist/C_Barcode.d.cts +1 -1
- package/dist/C_Barcode2.cjs +1 -0
- package/dist/C_Barcode2.js +1 -2
- package/dist/C_Breadcrumb.cjs +1 -1
- package/dist/C_Breadcrumb.css +0 -2
- package/dist/C_Breadcrumb.d.cts +2 -2
- package/dist/C_Breadcrumb.d.ts +1 -2
- package/dist/C_Breadcrumb.js +1 -1
- package/dist/C_Breadcrumb2.cjs +1 -0
- package/dist/C_Breadcrumb2.js +1 -2
- package/dist/C_Captcha.cjs +1 -1
- package/dist/C_Captcha.css +46 -21
- package/dist/C_Captcha.d.cts +3 -2
- package/dist/C_Captcha.d.ts +3 -2
- package/dist/C_Captcha.js +1 -1
- package/dist/C_Captcha2.cjs +1 -0
- package/dist/C_Captcha2.js +1 -2
- package/dist/C_Cascade.cjs +1 -1
- package/dist/C_Cascade.css +0 -2
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Cascade2.cjs +1 -0
- package/dist/C_Cascade2.js +1 -2
- package/dist/C_Chat.cjs +1 -1
- package/dist/C_Chat.css +0 -2
- package/dist/C_Chat.d.cts +1 -1
- package/dist/C_Chat.d.ts +1 -1
- package/dist/C_Chat.js +1 -1
- package/dist/C_Chat2.cjs +1 -0
- package/dist/C_Chat2.js +1 -2
- package/dist/C_City.cjs +1 -1
- package/dist/C_City.css +28 -30
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_City2.cjs +1 -0
- package/dist/C_City2.js +1 -2
- package/dist/C_Code.cjs +1 -1
- package/dist/C_Code.css +241 -4
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_Code.js +1 -1
- package/dist/C_Code2.cjs +1 -0
- package/dist/C_Code2.js +1 -2
- package/dist/C_CollapsePanel.cjs +1 -1
- package/dist/C_CollapsePanel.css +12 -6
- package/dist/C_CollapsePanel.d.cts +1 -1
- package/dist/C_CollapsePanel.js +1 -1
- package/dist/C_CollapsePanel2.cjs +1 -0
- package/dist/C_CollapsePanel2.js +1 -2
- package/dist/C_ContextMenu.cjs +1 -1
- package/dist/C_ContextMenu.css +16 -18
- package/dist/C_ContextMenu.d.cts +1 -1
- package/dist/C_ContextMenu.d.ts +1 -1
- package/dist/C_ContextMenu.js +1 -1
- package/dist/C_ContextMenu2.cjs +1 -0
- package/dist/C_ContextMenu2.js +1 -2
- package/dist/C_Cron.cjs +1 -1
- package/dist/C_Cron.css +18 -8
- package/dist/C_Cron.d.cts +1 -1
- package/dist/C_Cron.js +1 -1
- package/dist/C_Cron2.cjs +1 -0
- package/dist/C_Cron2.js +1 -2
- package/dist/C_Date.cjs +1 -1
- package/dist/C_Date.css +1 -0
- package/dist/C_Date.d.cts +2 -2
- package/dist/C_Date.d.ts +2 -2
- package/dist/C_Date2.cjs +1 -0
- package/dist/C_Date2.js +1 -2
- package/dist/C_Draggable.cjs +1 -1
- package/dist/C_Draggable.css +9 -5
- package/dist/C_Draggable.d.cts +1 -1
- package/dist/C_Draggable2.cjs +1 -0
- package/dist/C_Draggable2.js +1 -2
- package/dist/C_Editor.cjs +1 -1
- package/dist/C_Editor.css +80 -67
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_Editor2.cjs +1 -0
- package/dist/C_Editor2.js +1 -2
- package/dist/C_FilePreview.cjs +1 -1
- package/dist/C_FilePreview.css +0 -2
- package/dist/C_FilePreview.d.cts +1 -1
- package/dist/C_FilePreview.js +1 -1
- package/dist/C_FilePreview2.cjs +1 -0
- package/dist/C_FilePreview2.js +1 -2
- package/dist/C_Form.base.css +980 -0
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +256 -155
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js +1 -1
- package/dist/C_Form2.cjs +1 -0
- package/dist/C_Form2.js +1 -2
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +47 -47
- package/dist/C_FormSearch.d.cts +2 -2
- package/dist/C_FormSearch.d.ts +2 -2
- package/dist/C_FormSearch2.cjs +1 -0
- package/dist/C_FormSearch2.js +1 -2
- package/dist/C_FormulaEditor.cjs +1 -1
- package/dist/C_FormulaEditor.css +64 -38
- package/dist/C_FormulaEditor.d.cts +1 -1
- package/dist/C_FormulaEditor.js +1 -1
- package/dist/C_FormulaEditor2.cjs +2 -0
- package/dist/C_FormulaEditor2.js +2 -2
- package/dist/C_FullCalendar.cjs +1 -1
- package/dist/C_FullCalendar.css +0 -2
- package/dist/C_FullCalendar.d.cts +1 -1
- package/dist/C_FullCalendar2.cjs +1 -0
- package/dist/C_FullCalendar2.js +1 -2
- package/dist/C_GlobalSearch.cjs +1 -1
- package/dist/C_GlobalSearch.css +111 -113
- package/dist/C_GlobalSearch.d.cts +1 -1
- package/dist/C_GlobalSearch2.cjs +1 -0
- package/dist/C_GlobalSearch2.js +1 -2
- package/dist/C_Guide.cjs +1 -1
- package/dist/C_Guide.css +1 -0
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Guide.js +1 -1
- package/dist/C_Guide2.cjs +1 -0
- package/dist/C_Guide2.js +1 -2
- package/dist/C_Icon.cjs +1 -1
- package/dist/C_Icon.css +58 -0
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Icon2.cjs +1 -0
- package/dist/C_Icon2.js +1 -2
- package/dist/C_ImageCropper.cjs +1 -1
- package/dist/C_ImageCropper.css +0 -2
- package/dist/C_ImageCropper.d.cts +1 -1
- package/dist/C_ImageCropper.js +1 -1
- package/dist/C_ImageCropper2.cjs +1 -0
- package/dist/C_ImageCropper2.js +1 -2
- package/dist/C_Language.cjs +1 -1
- package/dist/C_Language.css +1 -0
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Language.js +1 -1
- package/dist/C_Language2.cjs +1 -0
- package/dist/C_Language2.js +1 -2
- package/dist/C_Login.cjs +1 -1
- package/dist/C_Login.css +92 -76
- package/dist/C_Login.d.cts +1 -1
- package/dist/C_Login.d.ts +1 -1
- package/dist/C_Login.js +1 -1
- package/dist/C_Login2.cjs +1 -0
- package/dist/C_Login2.js +1 -2
- package/dist/C_Map.cjs +1 -1
- package/dist/C_Map.css +665 -5
- package/dist/C_Map.d.cts +1 -1
- package/dist/C_Map2.cjs +1 -0
- package/dist/C_Map2.js +1 -2
- package/dist/C_Markdown.cjs +1 -1
- package/dist/C_Markdown.css +940 -35
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Markdown2.cjs +1 -0
- package/dist/C_Markdown2.js +1 -2
- package/dist/C_Menu.cjs +1 -1
- package/dist/C_Menu.css +1 -0
- package/dist/C_Menu.d.cts +3 -3
- package/dist/C_Menu.d.ts +3 -4
- package/dist/C_Menu.js +1 -1
- package/dist/C_Menu2.cjs +1 -0
- package/dist/C_Menu2.js +1 -2
- package/dist/C_NotificationCenter.cjs +1 -1
- package/dist/C_NotificationCenter.css +95 -47
- package/dist/C_NotificationCenter.d.cts +1 -1
- package/dist/C_NotificationCenter.js +1 -1
- package/dist/C_NotificationCenter2.cjs +1 -0
- package/dist/C_NotificationCenter2.js +1 -2
- package/dist/C_OrgChart.cjs +1 -1
- package/dist/C_OrgChart.css +6 -4
- package/dist/C_OrgChart.d.cts +1 -1
- package/dist/C_OrgChart.d.ts +1 -1
- package/dist/C_OrgChart2.cjs +1 -0
- package/dist/C_OrgChart2.js +1 -2
- package/dist/C_Progress.cjs +1 -1
- package/dist/C_Progress.css +1 -0
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_Progress2.cjs +1 -0
- package/dist/C_Progress2.js +1 -2
- package/dist/C_QRCode.cjs +1 -1
- package/dist/C_QRCode.css +8 -10
- package/dist/C_QRCode.d.cts +1 -1
- package/dist/C_QRCode2.cjs +1 -0
- package/dist/C_QRCode2.js +1 -2
- package/dist/C_Signature.cjs +1 -1
- package/dist/C_Signature.css +0 -2
- package/dist/C_Signature.d.cts +1 -1
- package/dist/C_Signature.js +1 -1
- package/dist/C_Signature2.cjs +1 -0
- package/dist/C_Signature2.js +1 -2
- package/dist/C_Skeleton.cjs +1 -1
- package/dist/C_Skeleton.css +0 -2
- package/dist/C_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_Skeleton2.cjs +1 -0
- package/dist/C_Skeleton2.js +1 -2
- package/dist/C_SplitPane.cjs +1 -1
- package/dist/C_SplitPane.css +27 -11
- package/dist/C_SplitPane.d.cts +1 -1
- package/dist/C_SplitPane.js +1 -1
- package/dist/C_SplitPane2.cjs +1 -0
- package/dist/C_SplitPane2.js +1 -2
- package/dist/C_Steps.cjs +1 -1
- package/dist/C_Steps.css +37 -39
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Steps2.cjs +1 -0
- package/dist/C_Steps2.js +1 -2
- package/dist/C_Table.base.css +1588 -0
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1202 -112
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +11 -2
- package/dist/C_Table.js +1 -1
- package/dist/C_TagsView.cjs +1 -1
- package/dist/C_TagsView.css +44 -40
- package/dist/C_TagsView.d.cts +2 -2
- package/dist/C_TagsView.d.ts +2 -3
- package/dist/C_TagsView.js +1 -1
- package/dist/C_TagsView2.cjs +1 -0
- package/dist/C_TagsView2.js +1 -2
- package/dist/C_Theme.cjs +1 -1
- package/dist/C_Theme.css +1 -0
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Theme.js +1 -1
- package/dist/C_Theme2.cjs +1 -0
- package/dist/C_Theme2.js +1 -2
- package/dist/C_Time.cjs +1 -1
- package/dist/C_Time.css +0 -2
- package/dist/C_Time.d.cts +2 -2
- package/dist/C_Time.d.ts +2 -2
- package/dist/C_Time2.cjs +1 -0
- package/dist/C_Time2.js +1 -2
- package/dist/C_Timeline.cjs +1 -1
- package/dist/C_Timeline.css +44 -46
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.js +1 -1
- package/dist/C_Timeline2.cjs +1 -0
- package/dist/C_Timeline2.js +1 -2
- package/dist/C_Transfer.cjs +1 -1
- package/dist/C_Transfer.css +21 -9
- package/dist/C_Transfer.d.cts +1 -1
- package/dist/C_Transfer.js +1 -1
- package/dist/C_Transfer2.cjs +1 -0
- package/dist/C_Transfer2.js +1 -2
- package/dist/C_Tree.cjs +1 -1
- package/dist/C_Tree.css +0 -2
- package/dist/C_Tree.d.cts +1 -1
- package/dist/C_Tree.js +1 -1
- package/dist/C_Tree2.cjs +1 -0
- package/dist/C_Tree2.js +1 -2
- package/dist/C_Upload.cjs +1 -1
- package/dist/C_Upload.css +17 -17
- package/dist/C_Upload.d.cts +1 -1
- package/dist/C_Upload.js +1 -1
- package/dist/C_Upload2.cjs +1 -0
- package/dist/C_Upload2.js +1 -25
- package/dist/C_VideoPlayer.cjs +1 -1
- package/dist/C_VideoPlayer.css +35 -24
- package/dist/C_VideoPlayer.d.cts +2 -2
- package/dist/C_VideoPlayer.d.ts +2 -2
- package/dist/C_VideoPlayer.js +1 -1
- package/dist/C_VideoPlayer2.cjs +3 -0
- package/dist/C_VideoPlayer2.js +3 -4
- package/dist/C_VtableGantt.cjs +1 -1
- package/dist/C_VtableGantt.css +15 -7
- package/dist/C_VtableGantt.d.cts +1 -1
- package/dist/C_VtableGantt.d.ts +1 -1
- package/dist/C_VtableGantt.js +1 -1
- package/dist/C_VtableGantt2.cjs +1 -0
- package/dist/C_VtableGantt2.js +1 -2
- package/dist/C_WaterFall.cjs +1 -1
- package/dist/C_WaterFall.css +15 -17
- package/dist/C_WaterFall.d.cts +1 -1
- package/dist/C_WaterFall2.cjs +1 -0
- package/dist/C_WaterFall2.js +1 -2
- package/dist/C_WorkFlow.cjs +1 -1
- package/dist/C_WorkFlow.css +257 -197
- package/dist/C_WorkFlow.d.cts +1 -1
- package/dist/C_WorkFlow.js +1 -1
- package/dist/C_WorkFlow2.cjs +1 -0
- package/dist/C_WorkFlow2.js +1 -2
- package/dist/city.cjs +1 -0
- package/dist/city.js +1 -2
- package/dist/config.cjs +1 -0
- package/dist/config.d.cts +33 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.js +1 -0
- package/dist/constants.d.cts +272 -0
- package/dist/constants.d.ts +1 -2
- package/dist/constants2.d.cts +177 -0
- package/dist/constants2.d.ts +3 -4
- package/dist/constants3.d.cts +479 -0
- package/dist/constants3.d.ts +15 -11
- package/dist/constants4.d.cts +420 -0
- package/dist/constants4.d.ts +30 -40
- package/dist/constants5.d.cts +491 -0
- package/dist/constants5.d.ts +22 -6
- package/dist/data.cjs +1 -0
- package/dist/data.d.cts +67 -0
- package/dist/data.d.ts +11 -11
- package/dist/data.js +1 -0
- package/dist/export-helper.cjs +1 -0
- package/dist/helpers.cjs +1 -0
- package/dist/helpers.js +1 -0
- package/dist/html.cjs +1 -0
- package/dist/html.js +1 -0
- package/dist/images/marker-icon-2x.png +0 -0
- package/dist/images/marker-icon.png +0 -0
- package/dist/images/marker-shadow.png +0 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +60 -99
- package/dist/index.d.ts +41 -83
- package/dist/index.js +1 -2
- package/dist/index.vue.d.cts +79 -0
- package/dist/index.vue.d.ts +3 -4
- package/dist/index10.vue.d.cts +47 -0
- package/dist/index10.vue.d.ts +80 -40
- package/dist/index11.vue.d.cts +88 -0
- package/dist/index11.vue.d.ts +68 -78
- package/dist/index12.vue.d.cts +79 -0
- package/dist/index12.vue.d.ts +50 -46
- package/dist/index13.vue.d.cts +64 -0
- package/dist/index13.vue.d.ts +99 -34
- package/dist/index14.vue.d.cts +106 -0
- package/dist/index14.vue.d.ts +82 -99
- package/dist/index15.vue.d.cts +91 -0
- package/dist/index15.vue.d.ts +25 -83
- package/dist/index16.vue.d.cts +34 -0
- package/dist/index16.vue.d.ts +113 -24
- package/dist/index17.vue.d.cts +124 -0
- package/dist/index17.vue.d.ts +76 -110
- package/dist/index18.vue.d.cts +83 -0
- package/dist/index18.vue.d.ts +67 -73
- package/dist/index19.vue.d.cts +101 -0
- package/dist/index19.vue.d.ts +93 -59
- package/dist/index2.vue.d.cts +82 -0
- package/dist/index2.vue.d.ts +6 -7
- package/dist/index20.vue.d.cts +54 -0
- package/dist/index20.vue.d.ts +40 -88
- package/dist/index21.vue.d.cts +103 -0
- package/dist/index21.vue.d.ts +89 -41
- package/dist/index22.vue.d.cts +45 -0
- package/dist/index22.vue.d.ts +37 -96
- package/dist/index23.vue.d.cts +19 -0
- package/dist/index23.vue.d.ts +8 -35
- package/dist/{index28.vue.d.ts → index24.vue.d.cts} +2 -3
- package/dist/index24.vue.d.ts +650 -86
- package/dist/index25.vue.d.cts +96 -0
- package/dist/index25.vue.d.ts +86 -10
- package/dist/index26.vue.d.cts +111 -0
- package/dist/index26.vue.d.ts +4 -5
- package/dist/index27.vue.d.cts +80 -0
- package/dist/index27.vue.d.ts +4 -5
- package/dist/index3.vue.d.cts +87 -0
- package/dist/index3.vue.d.ts +4 -5
- package/dist/index4.vue.d.cts +37 -0
- package/dist/index4.vue.d.ts +4 -5
- package/dist/index5.vue.d.cts +133 -0
- package/dist/index5.vue.d.ts +2 -3
- package/dist/index6.vue.d.cts +29 -0
- package/dist/index6.vue.d.ts +25 -38
- package/dist/index7.vue.d.cts +32 -0
- package/dist/index7.vue.d.ts +117 -23
- package/dist/index8.vue.d.cts +127 -0
- package/dist/index8.vue.d.ts +17 -111
- package/dist/index9.vue.d.cts +34 -0
- package/dist/index9.vue.d.ts +38 -26
- package/dist/{menuAdapter.d.ts → public.d.ts} +2 -3
- package/dist/resolver.cjs +1 -2
- package/dist/resolver.d.cts +6 -4
- package/dist/resolver.d.ts +6 -4
- package/dist/resolver.js +1 -2
- package/dist/storage.cjs +1 -0
- package/dist/storage.js +1 -2
- package/dist/style.css +9864 -7702
- package/dist/types.d.cts +107 -0
- package/dist/types.d.ts +58 -0
- package/dist/types2.d.cts +58 -0
- package/dist/useCalendarEvents.d.cts +150 -0
- package/dist/useCalendarEvents.d.ts +2 -3
- package/dist/useCollapsePanel.d.cts +133 -0
- package/dist/useCollapsePanel.d.ts +7 -8
- package/dist/useCropperCore.d.cts +104 -0
- package/dist/useCropperCore.d.ts +8 -6
- package/dist/useDraggableLayout.d.cts +196 -0
- package/dist/useDraggableLayout.d.ts +17 -15
- package/dist/useDynamicFormState.d.cts +749 -0
- package/dist/useDynamicFormState.d.ts +234 -112
- package/dist/useEdgeInteraction.d.cts +324 -0
- package/dist/useEdgeInteraction.d.ts +5 -6
- package/dist/useFullscreen.d.cts +165 -0
- package/dist/useFullscreen.d.ts +3 -4
- package/dist/useGlobalSearch.d.cts +110 -0
- package/dist/useGlobalSearch.d.ts +17 -9
- package/dist/useInfiniteScroll.d.cts +177 -0
- package/dist/useInfiniteScroll.d.ts +11 -3
- package/dist/useQRCode.d.cts +89 -0
- package/dist/useQRCode.d.ts +7 -5
- package/dist/useSearchState.d.cts +871 -0
- package/dist/useSearchState.d.ts +828 -28
- package/dist/useSignatureHistory.d.cts +197 -0
- package/dist/useSignatureHistory.d.ts +9 -4
- package/dist/useSplitResize.d.cts +157 -0
- package/dist/useSplitResize.d.ts +6 -7
- package/dist/useTableQuery.cjs +3 -0
- package/dist/useTableQuery.d.cts +1684 -0
- package/dist/useTableQuery.d.ts +1684 -0
- package/dist/useTableQuery.js +3 -0
- package/dist/useTimeSelection.d.cts +116 -0
- package/dist/useTimeSelection.d.ts +19 -8
- package/dist/useTreeOperations.d.cts +185 -0
- package/dist/useTreeOperations.d.ts +10 -8
- package/dist/useWorkflowValidation.d.cts +1051 -0
- package/dist/useWorkflowValidation.d.ts +62 -63
- package/dist/verification.d.cts +58 -0
- package/dist/verification.d.ts +58 -0
- package/package.json +102 -69
- package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
- package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
- package/dist/C_ActionBar.js.map +0 -1
- package/dist/C_ActionBar2.js.map +0 -1
- package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
- package/dist/C_AntV-DanTAq22.css.map +0 -1
- package/dist/C_AntV.js.map +0 -1
- package/dist/C_AntV2.js.map +0 -1
- package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
- package/dist/C_AudioPlayer-ldTy9Y34.css.map +0 -1
- package/dist/C_AudioPlayer.js.map +0 -1
- package/dist/C_AudioPlayer2.js.map +0 -1
- package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
- package/dist/C_AvatarGroup-SIzxuuZr.css.map +0 -1
- package/dist/C_AvatarGroup.js.map +0 -1
- package/dist/C_AvatarGroup2.js.map +0 -1
- package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
- package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
- package/dist/C_Barcode.js.map +0 -1
- package/dist/C_Barcode2.js.map +0 -1
- package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
- package/dist/C_Breadcrumb-Bqqrl8nX.css.map +0 -1
- package/dist/C_Breadcrumb.js.map +0 -1
- package/dist/C_Breadcrumb2.js.map +0 -1
- package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
- package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
- package/dist/C_Captcha.js.map +0 -1
- package/dist/C_Captcha2.js.map +0 -1
- package/dist/C_Cascade-CmCrLVft.css.map +0 -1
- package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
- package/dist/C_Cascade.js.map +0 -1
- package/dist/C_Cascade2.js.map +0 -1
- package/dist/C_Chat-CF1SU7mc.css.map +0 -1
- package/dist/C_Chat-DeUv6uuI.css.map +0 -1
- package/dist/C_Chat.js.map +0 -1
- package/dist/C_Chat2.js.map +0 -1
- package/dist/C_City-DdkX6u64.css.map +0 -1
- package/dist/C_City-iP-dIvui.css.map +0 -1
- package/dist/C_City.js.map +0 -1
- package/dist/C_City2.js.map +0 -1
- package/dist/C_Code-BWmJMNS7.css.map +0 -1
- package/dist/C_Code-k14vjgVl.css.map +0 -1
- package/dist/C_Code.js.map +0 -1
- package/dist/C_Code2.js.map +0 -1
- package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
- package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
- package/dist/C_CollapsePanel.js.map +0 -1
- package/dist/C_CollapsePanel2.js.map +0 -1
- package/dist/C_ContextMenu-Bn_uhJSo.css.map +0 -1
- package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
- package/dist/C_ContextMenu.js.map +0 -1
- package/dist/C_ContextMenu2.js.map +0 -1
- package/dist/C_Cron-BIQ2By9v.css.map +0 -1
- package/dist/C_Cron-BNSAGD6A.css.map +0 -1
- package/dist/C_Cron.js.map +0 -1
- package/dist/C_Cron2.js.map +0 -1
- package/dist/C_Date.js.map +0 -1
- package/dist/C_Date2.js.map +0 -1
- package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
- package/dist/C_Draggable-UhfDLXop.css.map +0 -1
- package/dist/C_Draggable.js.map +0 -1
- package/dist/C_Draggable2.js.map +0 -1
- package/dist/C_Editor-CZOaChru.css.map +0 -1
- package/dist/C_Editor-kJAQq5z6.css.map +0 -1
- package/dist/C_Editor.js.map +0 -1
- package/dist/C_Editor2.js.map +0 -1
- package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
- package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
- package/dist/C_FilePreview.js.map +0 -1
- package/dist/C_FilePreview2.js.map +0 -1
- package/dist/C_Form-B_2ql62V.css.map +0 -1
- package/dist/C_Form-CX-7xsz3.css.map +0 -1
- package/dist/C_Form.js.map +0 -1
- package/dist/C_Form2.js.map +0 -1
- package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
- package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
- package/dist/C_FormSearch.js.map +0 -1
- package/dist/C_FormSearch2.js.map +0 -1
- package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
- package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
- package/dist/C_FormulaEditor.js.map +0 -1
- package/dist/C_FormulaEditor2.js.map +0 -1
- package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
- package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
- package/dist/C_FullCalendar.js.map +0 -1
- package/dist/C_FullCalendar2.js.map +0 -1
- package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
- package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
- package/dist/C_GlobalSearch.js.map +0 -1
- package/dist/C_GlobalSearch2.js.map +0 -1
- package/dist/C_Guide.js.map +0 -1
- package/dist/C_Guide2.js.map +0 -1
- package/dist/C_Icon.js.map +0 -1
- package/dist/C_Icon2.js.map +0 -1
- package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
- package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
- package/dist/C_ImageCropper.js.map +0 -1
- package/dist/C_ImageCropper2.js.map +0 -1
- package/dist/C_Language.js.map +0 -1
- package/dist/C_Language2.js.map +0 -1
- package/dist/C_Login-B3qYkLrN.css.map +0 -1
- package/dist/C_Login-xMI1_ojE.css.map +0 -1
- package/dist/C_Login.js.map +0 -1
- package/dist/C_Login2.js.map +0 -1
- package/dist/C_Map-CWMMN58_.css.map +0 -1
- package/dist/C_Map-xSR2H-9o.css.map +0 -1
- package/dist/C_Map.js.map +0 -1
- package/dist/C_Map2.js.map +0 -1
- package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
- package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
- package/dist/C_Markdown.js.map +0 -1
- package/dist/C_Markdown2.js.map +0 -1
- package/dist/C_Menu.js.map +0 -1
- package/dist/C_Menu2.js.map +0 -1
- package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
- package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
- package/dist/C_NotificationCenter.js.map +0 -1
- package/dist/C_NotificationCenter2.js.map +0 -1
- package/dist/C_OrgChart-ChZu346B.css.map +0 -1
- package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
- package/dist/C_OrgChart.js.map +0 -1
- package/dist/C_OrgChart2.js.map +0 -1
- package/dist/C_Progress.js.map +0 -1
- package/dist/C_Progress2.js.map +0 -1
- package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
- package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
- package/dist/C_QRCode.js.map +0 -1
- package/dist/C_QRCode2.js.map +0 -1
- package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
- package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
- package/dist/C_Signature.js.map +0 -1
- package/dist/C_Signature2.js.map +0 -1
- package/dist/C_Skeleton-BNPbaut7.css.map +0 -1
- package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
- package/dist/C_Skeleton.js.map +0 -1
- package/dist/C_Skeleton2.js.map +0 -1
- package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
- package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
- package/dist/C_SplitPane.js.map +0 -1
- package/dist/C_SplitPane2.js.map +0 -1
- package/dist/C_Steps-27Exh7PM.css.map +0 -1
- package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
- package/dist/C_Steps.js.map +0 -1
- package/dist/C_Steps2.js.map +0 -1
- package/dist/C_Table--kbQaaBv.css.map +0 -1
- package/dist/C_Table-D631kdXC.css.map +0 -1
- package/dist/C_Table.js.map +0 -1
- package/dist/C_Table2.js +0 -4
- package/dist/C_Table2.js.map +0 -1
- package/dist/C_TagsView-BN8vMRsY.css.map +0 -1
- package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
- package/dist/C_TagsView.js.map +0 -1
- package/dist/C_TagsView2.js.map +0 -1
- package/dist/C_Theme.js.map +0 -1
- package/dist/C_Theme2.js.map +0 -1
- package/dist/C_Time-BQ9PGy8B.css.map +0 -1
- package/dist/C_Time-CO73krC6.css.map +0 -1
- package/dist/C_Time.js.map +0 -1
- package/dist/C_Time2.js.map +0 -1
- package/dist/C_Timeline-4rk0Dzgn.css.map +0 -1
- package/dist/C_Timeline-DdESmqwL.css.map +0 -1
- package/dist/C_Timeline.js.map +0 -1
- package/dist/C_Timeline2.js.map +0 -1
- package/dist/C_Transfer-B-vjvhjI.css.map +0 -1
- package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
- package/dist/C_Transfer.js.map +0 -1
- package/dist/C_Transfer2.js.map +0 -1
- package/dist/C_Tree-CsXgGfhn.css.map +0 -1
- package/dist/C_Tree-P7eRpnOa.css.map +0 -1
- package/dist/C_Tree.js.map +0 -1
- package/dist/C_Tree2.js.map +0 -1
- package/dist/C_Upload-CHjiVVh7.css.map +0 -1
- package/dist/C_Upload-DE3OLsZD.css.map +0 -1
- package/dist/C_Upload.js.map +0 -1
- package/dist/C_Upload2.js.map +0 -1
- package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
- package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
- package/dist/C_VideoPlayer.js.map +0 -1
- package/dist/C_VideoPlayer2.js.map +0 -1
- package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
- package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
- package/dist/C_VtableGantt.js.map +0 -1
- package/dist/C_VtableGantt2.js.map +0 -1
- package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
- package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
- package/dist/C_WaterFall.js.map +0 -1
- package/dist/C_WaterFall2.js.map +0 -1
- package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
- package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
- package/dist/C_WorkFlow.js.map +0 -1
- package/dist/C_WorkFlow2.js.map +0 -1
- package/dist/_shared.cjs +0 -1
- package/dist/_shared.d.cts +0 -2
- package/dist/_shared.d.ts +0 -2
- package/dist/_shared.js +0 -1
- package/dist/city.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/menuAdapter.js +0 -2
- package/dist/menuAdapter.js.map +0 -1
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.js.map +0 -1
- package/dist/storage.js.map +0 -1
- package/dist/useModalEdit.d.ts +0 -1308
- /package/dist/{chunk.js → chunk.cjs} +0 -0
|
@@ -0,0 +1,1684 @@
|
|
|
1
|
+
import { i as ComponentLocale, r as ComponentFeedback } from "./config.js";
|
|
2
|
+
import * as vue from "vue";
|
|
3
|
+
import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
|
|
4
|
+
import { DataTableColumn, DataTableColumns, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
|
|
5
|
+
import * as _vue_shared0 from "@vue/shared";
|
|
6
|
+
import { HLJSApi } from "highlight.js";
|
|
7
|
+
|
|
8
|
+
//#region src/components/C_Table/composables/usePrintWatermark.d.ts
|
|
9
|
+
interface WatermarkConfig {
|
|
10
|
+
text: string;
|
|
11
|
+
textSize?: number;
|
|
12
|
+
textColor?: string;
|
|
13
|
+
font?: string;
|
|
14
|
+
opacity?: number;
|
|
15
|
+
rotate?: number;
|
|
16
|
+
position?: 'center' | 'repeat' | 'corner' | 'diagonal';
|
|
17
|
+
xGap?: number;
|
|
18
|
+
yGap?: number;
|
|
19
|
+
}
|
|
20
|
+
interface CaptureConfig {
|
|
21
|
+
scale?: number;
|
|
22
|
+
quality?: number;
|
|
23
|
+
format?: 'png' | 'jpeg' | 'webp';
|
|
24
|
+
backgroundColor?: string;
|
|
25
|
+
logging?: boolean;
|
|
26
|
+
allowTaint?: boolean;
|
|
27
|
+
useCORS?: boolean;
|
|
28
|
+
}
|
|
29
|
+
interface PrintConfig {
|
|
30
|
+
orientation?: 'portrait' | 'landscape';
|
|
31
|
+
paperSize?: 'A4' | 'A3' | 'Letter' | string;
|
|
32
|
+
margin?: string;
|
|
33
|
+
style?: string;
|
|
34
|
+
header?: string;
|
|
35
|
+
footer?: string;
|
|
36
|
+
showModal?: boolean;
|
|
37
|
+
modalMessage?: string;
|
|
38
|
+
onLoadingStart?: () => void;
|
|
39
|
+
onLoadingEnd?: () => void;
|
|
40
|
+
onPrintDialogClose?: () => void;
|
|
41
|
+
}
|
|
42
|
+
interface PrintWatermarkOptions {
|
|
43
|
+
watermark?: WatermarkConfig;
|
|
44
|
+
capture?: CaptureConfig;
|
|
45
|
+
print?: PrintConfig;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
declare function drawWatermark(canvas: HTMLCanvasElement, config: WatermarkConfig): HTMLCanvasElement;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
declare function captureElement(element: HTMLElement, config?: CaptureConfig): Promise<HTMLCanvasElement>;
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
58
|
+
declare function canvasToDataURL(canvas: HTMLCanvasElement, format?: 'png' | 'jpeg' | 'webp', quality?: number): string;
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
declare function downloadCanvas(canvas: HTMLCanvasElement, filename?: string, format?: 'png' | 'jpeg' | 'webp'): void;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
*/
|
|
66
|
+
declare function printImage(imageDataURL: string, config?: PrintConfig): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
declare function usePrintWatermark(): {
|
|
71
|
+
loading: vue.Ref<boolean, boolean>;
|
|
72
|
+
progress: vue.Ref<number, number>;
|
|
73
|
+
captureWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<string>;
|
|
74
|
+
printWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<void>;
|
|
75
|
+
downloadScreenshot: (element: HTMLElement, filename?: string, options?: PrintWatermarkOptions) => Promise<void>;
|
|
76
|
+
quickPrint: (element: HTMLElement, watermarkText?: string) => Promise<void>;
|
|
77
|
+
batchCapture: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<string[]>;
|
|
78
|
+
batchPrint: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<void>;
|
|
79
|
+
mergePrint: (elements: HTMLElement[], options?: PrintWatermarkOptions, mergeOptions?: {
|
|
80
|
+
orientation?: "horizontal" | "vertical";
|
|
81
|
+
spacing?: number;
|
|
82
|
+
backgroundColor?: string;
|
|
83
|
+
}) => Promise<void>;
|
|
84
|
+
createPreset: (name: string, options: PrintWatermarkOptions) => {
|
|
85
|
+
use: (element: HTMLElement) => Promise<void>;
|
|
86
|
+
download: (element: HTMLElement, filename?: string) => Promise<void>;
|
|
87
|
+
};
|
|
88
|
+
updateProgress: (value: number) => void;
|
|
89
|
+
utils: {
|
|
90
|
+
captureElement: typeof captureElement;
|
|
91
|
+
drawWatermark: typeof drawWatermark;
|
|
92
|
+
canvasToDataURL: typeof canvasToDataURL;
|
|
93
|
+
downloadCanvas: typeof downloadCanvas;
|
|
94
|
+
printImage: typeof printImage;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
declare const printPresets: {
|
|
98
|
+
readonly table: {
|
|
99
|
+
readonly watermark: {
|
|
100
|
+
readonly text: "Robot Admin - 数据表格";
|
|
101
|
+
readonly position: "repeat";
|
|
102
|
+
readonly textColor: "rgba(100, 100, 100, 0.25)";
|
|
103
|
+
readonly textSize: 14;
|
|
104
|
+
readonly xGap: 250;
|
|
105
|
+
readonly yGap: 120;
|
|
106
|
+
};
|
|
107
|
+
readonly capture: {
|
|
108
|
+
readonly scale: 1.2;
|
|
109
|
+
};
|
|
110
|
+
readonly print: {
|
|
111
|
+
readonly orientation: "landscape";
|
|
112
|
+
readonly style: "@page { margin: 8mm; } body { font-family: Arial, sans-serif; }";
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
readonly form: {
|
|
116
|
+
readonly watermark: {
|
|
117
|
+
readonly text: "Robot Admin - 表单数据";
|
|
118
|
+
readonly position: "diagonal";
|
|
119
|
+
readonly textColor: "rgba(150, 150, 150, 0.2)";
|
|
120
|
+
readonly textSize: 16;
|
|
121
|
+
};
|
|
122
|
+
readonly print: {
|
|
123
|
+
readonly orientation: "portrait";
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
readonly report: {
|
|
127
|
+
readonly watermark: {
|
|
128
|
+
readonly text: "Robot Admin - 机密报告";
|
|
129
|
+
readonly position: "center";
|
|
130
|
+
readonly textColor: "rgba(200, 50, 50, 0.15)";
|
|
131
|
+
readonly textSize: 24;
|
|
132
|
+
};
|
|
133
|
+
readonly capture: {
|
|
134
|
+
readonly quality: 0.95;
|
|
135
|
+
readonly format: "png";
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/components/C_Table/composables/useDynamicRow.d.ts
|
|
141
|
+
interface DynamicRowsOptions<T extends object = DataRecord> {
|
|
142
|
+
/** 总开关;关闭时公开方法保持安全 no-op */
|
|
143
|
+
enabled?: boolean;
|
|
144
|
+
rowKey?: string | ((row: T) => DataTableRowKey);
|
|
145
|
+
defaultRowData?: () => T;
|
|
146
|
+
enableRadioSelection?: boolean;
|
|
147
|
+
enableAdd?: boolean;
|
|
148
|
+
enableInsert?: boolean;
|
|
149
|
+
enableDelete?: boolean;
|
|
150
|
+
enableCopy?: boolean;
|
|
151
|
+
enableMove?: boolean;
|
|
152
|
+
enablePrint?: boolean;
|
|
153
|
+
printOptions?: PrintWatermarkOptions;
|
|
154
|
+
printPreset?: 'table' | 'form' | 'report';
|
|
155
|
+
printWatermarkText?: string;
|
|
156
|
+
printTargetSelector?: string;
|
|
157
|
+
confirmDelete?: boolean;
|
|
158
|
+
deleteConfirmText?: string;
|
|
159
|
+
feedback?: ComponentFeedback;
|
|
160
|
+
locale?: ComponentLocale;
|
|
161
|
+
onRowChange?: (data: T[]) => void;
|
|
162
|
+
onSelectionChange?: (selectedKey: DataTableRowKey | null, selectedRow: T | null) => void;
|
|
163
|
+
onRowAdd?: (newRow: T) => void;
|
|
164
|
+
onRowDelete?: (deletedRow: T, index: number) => void;
|
|
165
|
+
onRowCopy?: (originalRow: T, newRow: T) => void;
|
|
166
|
+
onRowMove?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
167
|
+
}
|
|
168
|
+
interface DynamicRowsReturn<T extends object = DataRecord> {
|
|
169
|
+
selectedRowKey: Ref<DataTableRowKey | null>;
|
|
170
|
+
selectedRowData: Ref<T | null>;
|
|
171
|
+
selectedRowIndex: Ref<number>;
|
|
172
|
+
canMoveUp: Ref<boolean>;
|
|
173
|
+
canMoveDown: Ref<boolean>;
|
|
174
|
+
deleteConfirmVisible: Ref<boolean>;
|
|
175
|
+
printLoading: Ref<boolean>;
|
|
176
|
+
printProgress: Ref<number>;
|
|
177
|
+
addRow: () => void;
|
|
178
|
+
insertRow: () => void;
|
|
179
|
+
deleteRow: () => void;
|
|
180
|
+
confirmDelete: () => void;
|
|
181
|
+
copyRow: () => void;
|
|
182
|
+
moveRowUp: () => void;
|
|
183
|
+
moveRowDown: () => void;
|
|
184
|
+
selectRow: (key: DataTableRowKey) => void;
|
|
185
|
+
clearSelection: () => void;
|
|
186
|
+
handlePrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
|
|
187
|
+
handleDownload: (elementRef: Ref<HTMLElement | undefined>, filename?: string) => Promise<void>;
|
|
188
|
+
handleQuickPrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
|
|
189
|
+
enhanceColumns: (columns: TableColumn<T>[]) => TableColumn<T>[];
|
|
190
|
+
renderToolbar: (target?: HTMLElement) => VNodeChild;
|
|
191
|
+
renderConfirmModal: () => VNodeChild;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 表格动态行操作功能组合
|
|
195
|
+
*/
|
|
196
|
+
declare function useDynamicRows<T extends object = DataRecord>(data: Readonly<Ref<T[]>>, options?: MaybeRefOrGetter<DynamicRowsOptions<T>>): DynamicRowsReturn<T>;
|
|
197
|
+
//#endregion
|
|
198
|
+
//#region src/components/C_Table/composables/useRowDrag.d.ts
|
|
199
|
+
interface RowDragConfig {
|
|
200
|
+
enabled?: boolean;
|
|
201
|
+
/** 拖拽手柄 CSS 选择器(不传则整行可拖) */
|
|
202
|
+
handleSelector?: string;
|
|
203
|
+
/** 动画时长(ms) */
|
|
204
|
+
animationDuration?: number;
|
|
205
|
+
/** 拖拽时 ghost 样式类 */
|
|
206
|
+
ghostClass?: string;
|
|
207
|
+
/** 拖拽中样式类 */
|
|
208
|
+
chosenClass?: string;
|
|
209
|
+
}
|
|
210
|
+
interface UseRowDragOptions<T extends object = DataRecord> {
|
|
211
|
+
/** 数据源(只读即可) */
|
|
212
|
+
data: Ref<T[]> | ComputedRef<T[]>;
|
|
213
|
+
/** 获取行键 */
|
|
214
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
215
|
+
/** 配置 */
|
|
216
|
+
config: MaybeRefOrGetter<RowDragConfig | undefined>;
|
|
217
|
+
/** 数据重排回调(由外部处理数据更新) */
|
|
218
|
+
onReorder?: (newData: T[]) => void;
|
|
219
|
+
/** 排序变更回调 */
|
|
220
|
+
onSort?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
221
|
+
}
|
|
222
|
+
interface UseRowDragReturn {
|
|
223
|
+
/** 初始化拖拽(需在 onMounted 中调用) */
|
|
224
|
+
initRowDrag: (wrapperEl: HTMLElement) => void;
|
|
225
|
+
/** 销毁拖拽实例 */
|
|
226
|
+
destroyRowDrag: () => void;
|
|
227
|
+
/** 是否正在拖拽 */
|
|
228
|
+
isDragging: Ref<boolean>;
|
|
229
|
+
}
|
|
230
|
+
/** 行拖拽排序组合式函数 */
|
|
231
|
+
declare function useRowDrag<T extends object = DataRecord>(options: UseRowDragOptions<T>): UseRowDragReturn;
|
|
232
|
+
//#endregion
|
|
233
|
+
//#region src/components/C_Table/composables/useCrossPageSelection.d.ts
|
|
234
|
+
interface CrossPageSelectionConfig {
|
|
235
|
+
enabled?: boolean;
|
|
236
|
+
/** 最大选择数 */
|
|
237
|
+
maxSelection?: number;
|
|
238
|
+
}
|
|
239
|
+
interface UseCrossPageSelectionOptions<T extends object = DataRecord> {
|
|
240
|
+
/** 全量数据(非分页后的) */
|
|
241
|
+
allData: Ref<T[]> | ComputedRef<T[]>;
|
|
242
|
+
/** 行键函数 */
|
|
243
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
244
|
+
/** 配置 */
|
|
245
|
+
config: MaybeRefOrGetter<CrossPageSelectionConfig | undefined>;
|
|
246
|
+
}
|
|
247
|
+
interface UseCrossPageSelectionReturn<T extends object = DataRecord> {
|
|
248
|
+
/** 所有选中的 key(跨页) */
|
|
249
|
+
selectedKeys: Ref<Set<DataTableRowKey>>;
|
|
250
|
+
/** 选中行数量 */
|
|
251
|
+
selectedCount: ComputedRef<number>;
|
|
252
|
+
/** 当前页数据的 checkedKeys(给 NDataTable 绑定) */
|
|
253
|
+
getPageCheckedKeys: (pageData: T[]) => DataTableRowKey[];
|
|
254
|
+
/** NDataTable @update:checked-row-keys 处理器 */
|
|
255
|
+
handlePageSelectionChange: (keys: DataTableRowKey[], pageData: T[]) => void;
|
|
256
|
+
/** 全选所有页 */
|
|
257
|
+
selectAll: () => void;
|
|
258
|
+
/** 选择指定 key */
|
|
259
|
+
select: (key: DataTableRowKey) => boolean;
|
|
260
|
+
/** 取消选择指定 key */
|
|
261
|
+
unselect: (key: DataTableRowKey) => void;
|
|
262
|
+
/** 清除所有页选中 */
|
|
263
|
+
clearAll: () => void;
|
|
264
|
+
/** 获取所有选中行数据 */
|
|
265
|
+
getSelectedRows: () => T[];
|
|
266
|
+
/** 判断 key 是否选中 */
|
|
267
|
+
isSelected: (key: DataTableRowKey) => boolean;
|
|
268
|
+
}
|
|
269
|
+
/** 跨页多选组合式函数 */
|
|
270
|
+
declare function useCrossPageSelection<T extends object = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region src/components/C_Table/composables/useTableExport.d.ts
|
|
273
|
+
interface ExportConfig {
|
|
274
|
+
/** 导出文件名(不含扩展名) */
|
|
275
|
+
filename?: string;
|
|
276
|
+
/** 导出格式 */
|
|
277
|
+
format?: 'csv' | 'xlsx';
|
|
278
|
+
/** 是否包含表头 */
|
|
279
|
+
includeHeader?: boolean;
|
|
280
|
+
/** 自定义选择导出列(传 key 数组) */
|
|
281
|
+
columnKeys?: string[];
|
|
282
|
+
/** CSV 分隔符 */
|
|
283
|
+
csvSeparator?: string;
|
|
284
|
+
/** 阻止表格软件把用户文本识别为公式,默认开启 */
|
|
285
|
+
preventFormulaInjection?: boolean;
|
|
286
|
+
/** 全局格式化配置(用于 formatter) */
|
|
287
|
+
formatterConfig?: FormatterConfig;
|
|
288
|
+
/** 请求格式不可用并自动降级时的通知。 */
|
|
289
|
+
onFallback?: (requested: 'xlsx', actual: 'csv', cause: unknown) => void;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* 导出表格数据
|
|
293
|
+
*/
|
|
294
|
+
declare function exportTableData(data: DataRecord[], columns: TableColumn[], config?: ExportConfig): Promise<void>;
|
|
295
|
+
//#endregion
|
|
296
|
+
//#region src/components/C_Table/composables/useTableConfig.d.ts
|
|
297
|
+
/**
|
|
298
|
+
* 可绑定到 C_Table 的 CRUD 对象接口(桥接类型)
|
|
299
|
+
*
|
|
300
|
+
* C_Table 内部已将 data/columns 规范化为 DataRecord/TableColumn,
|
|
301
|
+
* 此接口对 columns/actions 使用 any[] 避免 TableColumn<any> 结构展开异常,
|
|
302
|
+
* 同时允许 useTableCrud<T>() 任意子类型直接传入而无需类型断言。
|
|
303
|
+
*/
|
|
304
|
+
interface CrudBinding<T extends object = DataRecord> {
|
|
305
|
+
data: Ref<T[]>;
|
|
306
|
+
loading: Ref<boolean>;
|
|
307
|
+
columns: ComputedRef<TableColumn<T>[]>;
|
|
308
|
+
actions?: ComputedRef<SimpleTableActions<T>>;
|
|
309
|
+
pagination?: ComputedRef<PaginationConfig | boolean | undefined>;
|
|
310
|
+
tableRef?: Ref<any>;
|
|
311
|
+
save?: (...args: any[]) => any;
|
|
312
|
+
handleCancel?: () => void;
|
|
313
|
+
handlePaginationChange?: (page: number, pageSize: number) => void;
|
|
314
|
+
handleRowDelete?: (...args: any[]) => any;
|
|
315
|
+
detail?: {
|
|
316
|
+
show: (...args: any[]) => void;
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
/** C_Table :config prop 的类型 — 所有功能配置收拢在此 */
|
|
320
|
+
interface TableConfig<T extends object = DataRecord> {
|
|
321
|
+
/** 组件级反馈适配器;未提供时尝试复用 Naive Provider,再安全降级 */
|
|
322
|
+
feedback?: ComponentFeedback;
|
|
323
|
+
/** 组件级文案与语言覆盖 */
|
|
324
|
+
locale?: ComponentLocale;
|
|
325
|
+
/** 校验缺失/重复行键;默认开启,超大或无状态表格可关闭。 */
|
|
326
|
+
validateRowKeys?: boolean;
|
|
327
|
+
/** 编辑配置 */
|
|
328
|
+
edit?: EditConfig<T> | boolean;
|
|
329
|
+
/** 操作按钮 */
|
|
330
|
+
actions?: SimpleTableActions<T>;
|
|
331
|
+
/** 分页配置 */
|
|
332
|
+
pagination?: PaginationConfig | boolean;
|
|
333
|
+
/** 展开行配置 */
|
|
334
|
+
expand?: ExpandConfig$1<T> | boolean;
|
|
335
|
+
/** 选择配置 */
|
|
336
|
+
selection?: SelectionConfig$1<T> | boolean;
|
|
337
|
+
/** 动态行配置 */
|
|
338
|
+
dynamicRows?: DynamicRowsOptions<T> | boolean;
|
|
339
|
+
/** 工具栏 */
|
|
340
|
+
toolbar?: ToolbarConfig;
|
|
341
|
+
/** 表格显示属性 */
|
|
342
|
+
display?: DisplayConfig;
|
|
343
|
+
/** 虚拟滚动配置(大数据量) */
|
|
344
|
+
virtualScroll?: VirtualScrollConfig | boolean;
|
|
345
|
+
/** 合计行配置(财务场景) */
|
|
346
|
+
summary?: SummaryConfig<T>;
|
|
347
|
+
/** 列拖拽排序 */
|
|
348
|
+
columnDrag?: ColumnDragConfig | boolean;
|
|
349
|
+
/** 树形表格 */
|
|
350
|
+
tree?: TreeConfig | boolean;
|
|
351
|
+
/** 行拖拽排序 */
|
|
352
|
+
rowDrag?: RowDragConfig | boolean;
|
|
353
|
+
/** 跨页多选 */
|
|
354
|
+
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
355
|
+
/** 导出配置 */
|
|
356
|
+
export?: ExportConfig;
|
|
357
|
+
/** 列配置持久化 key(传入即启用 localStorage) */
|
|
358
|
+
persistKey?: string;
|
|
359
|
+
/** 全局格式化配置 */
|
|
360
|
+
formatterConfig?: FormatterConfig;
|
|
361
|
+
/** 错误状态配置 */
|
|
362
|
+
error?: ErrorConfig;
|
|
363
|
+
/** 批量操作配置 */
|
|
364
|
+
batchActions?: BatchActionsConfig<T>;
|
|
365
|
+
}
|
|
366
|
+
interface EditConfig<T extends object = DataRecord> {
|
|
367
|
+
enabled?: boolean;
|
|
368
|
+
mode?: 'row' | 'cell' | 'modal' | 'both' | 'none';
|
|
369
|
+
showRowActions?: boolean;
|
|
370
|
+
modalTitle?: string;
|
|
371
|
+
modalWidth?: number;
|
|
372
|
+
/** 保存前回调;抛出异常会保留编辑态,便于修正或重试 */
|
|
373
|
+
onSave?: (rowData: T, rowIndex: number, columnKey?: string) => void | Promise<void>;
|
|
374
|
+
/** 取消编辑回调 */
|
|
375
|
+
onCancel?: (rowData: T, rowIndex: number) => void | Promise<void>;
|
|
376
|
+
/** 编辑或保存失败回调 */
|
|
377
|
+
onError?: (error: unknown) => void;
|
|
378
|
+
}
|
|
379
|
+
interface ExpandConfig$1<T extends object = DataRecord> {
|
|
380
|
+
enabled?: boolean;
|
|
381
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
382
|
+
onLoadData?: (row: T) => Promise<unknown[]> | unknown[];
|
|
383
|
+
/** 展开数据加载失败回调 */
|
|
384
|
+
onError?: (error: unknown, row: T) => void;
|
|
385
|
+
renderContent?: (row: T, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild;
|
|
386
|
+
rowExpandable?: (row: T) => boolean;
|
|
387
|
+
}
|
|
388
|
+
interface SelectionConfig$1<T extends object = DataRecord> {
|
|
389
|
+
enabled?: boolean;
|
|
390
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
391
|
+
rowCheckable?: (row: T) => boolean;
|
|
392
|
+
maxSelection?: number;
|
|
393
|
+
childSelection?: {
|
|
394
|
+
enabled?: boolean;
|
|
395
|
+
childRowCheckable?: (childRow: unknown, parentRow: T) => boolean;
|
|
396
|
+
};
|
|
397
|
+
parentChildLink?: {
|
|
398
|
+
enabled?: boolean;
|
|
399
|
+
mode?: ParentChildLinkMode;
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
interface ToolbarConfig {
|
|
403
|
+
/** 是否显示工具栏 */
|
|
404
|
+
show?: boolean;
|
|
405
|
+
/** 是否启用列设置 */
|
|
406
|
+
columnSettings?: boolean;
|
|
407
|
+
}
|
|
408
|
+
interface DisplayConfig {
|
|
409
|
+
striped?: boolean;
|
|
410
|
+
bordered?: boolean;
|
|
411
|
+
singleLine?: boolean;
|
|
412
|
+
size?: 'small' | 'medium' | 'large';
|
|
413
|
+
maxHeight?: number | string;
|
|
414
|
+
scrollX?: number | string;
|
|
415
|
+
columnWidth?: number;
|
|
416
|
+
}
|
|
417
|
+
/** 虚拟滚动配置 */
|
|
418
|
+
interface VirtualScrollConfig {
|
|
419
|
+
enabled?: boolean;
|
|
420
|
+
/** 每行高度(px) */
|
|
421
|
+
itemHeight?: number;
|
|
422
|
+
/** 最大高度(px),用于滚动容器 */
|
|
423
|
+
maxHeight?: number;
|
|
424
|
+
}
|
|
425
|
+
/** 合计行配置 */
|
|
426
|
+
interface SummaryConfig<T extends object = DataRecord> {
|
|
427
|
+
/** 合计行位置 */
|
|
428
|
+
position?: 'top' | 'bottom';
|
|
429
|
+
/** 自定义合计函数,每列返回 { value, colSpan? } */
|
|
430
|
+
render?: (data: T[]) => Record<string, {
|
|
431
|
+
value: string | number;
|
|
432
|
+
colSpan?: number;
|
|
433
|
+
}>;
|
|
434
|
+
}
|
|
435
|
+
/** 列拖拽排序配置 */
|
|
436
|
+
interface ColumnDragConfig {
|
|
437
|
+
enabled?: boolean;
|
|
438
|
+
/** 拖拽手柄类名(默认拖拽头部区域) */
|
|
439
|
+
handleClass?: string;
|
|
440
|
+
/** 拖拽动画时长(ms) */
|
|
441
|
+
animationDuration?: number;
|
|
442
|
+
}
|
|
443
|
+
/** 树形表格配置 */
|
|
444
|
+
interface TreeConfig {
|
|
445
|
+
enabled?: boolean;
|
|
446
|
+
/** 子节点字段名 */
|
|
447
|
+
childrenKey?: string;
|
|
448
|
+
/** 缩进宽度(px) */
|
|
449
|
+
indent?: number;
|
|
450
|
+
/** 默认展开所有 */
|
|
451
|
+
defaultExpandAll?: boolean;
|
|
452
|
+
}
|
|
453
|
+
/** 错误状态配置 */
|
|
454
|
+
interface ErrorConfig {
|
|
455
|
+
/** 是否显示错误状态 */
|
|
456
|
+
show?: boolean;
|
|
457
|
+
/** 错误描述文案 */
|
|
458
|
+
message?: string;
|
|
459
|
+
/** 重试回调 */
|
|
460
|
+
onRetry?: () => void | Promise<void>;
|
|
461
|
+
}
|
|
462
|
+
/** 批量操作配置 */
|
|
463
|
+
interface BatchActionsConfig<T extends object = DataRecord> {
|
|
464
|
+
enabled?: boolean;
|
|
465
|
+
/** 操作成功后清空选择,默认不清空 */
|
|
466
|
+
clearSelectionOnSuccess?: boolean;
|
|
467
|
+
/** 批量操作失败回调 */
|
|
468
|
+
onError?: (error: unknown, actionKey: string) => void;
|
|
469
|
+
/** 自定义批量操作按钮 */
|
|
470
|
+
actions?: Array<{
|
|
471
|
+
key: string;
|
|
472
|
+
label: string;
|
|
473
|
+
icon?: string;
|
|
474
|
+
type?: string;
|
|
475
|
+
onClick: (selectedKeys: DataTableRowKey[], selectedRows: T[]) => void | Promise<void>;
|
|
476
|
+
}>;
|
|
477
|
+
}
|
|
478
|
+
interface ResolvedConfig {
|
|
479
|
+
feedback: ComponentFeedback | undefined;
|
|
480
|
+
locale: ComponentLocale | undefined;
|
|
481
|
+
editable: boolean;
|
|
482
|
+
editMode: string;
|
|
483
|
+
showRowActions: boolean;
|
|
484
|
+
modalTitle: string;
|
|
485
|
+
modalWidth: number;
|
|
486
|
+
onEditSave: EditConfig['onSave'] | undefined;
|
|
487
|
+
onEditCancel: EditConfig['onCancel'] | undefined;
|
|
488
|
+
onEditError: EditConfig['onError'] | undefined;
|
|
489
|
+
expandable: boolean;
|
|
490
|
+
defaultExpandedKeys: DataTableRowKey[] | undefined;
|
|
491
|
+
onLoadExpandData: ((row: DataRecord) => Promise<unknown[]> | unknown[]) | undefined;
|
|
492
|
+
onExpandError: ((error: unknown, row: DataRecord) => void) | undefined;
|
|
493
|
+
renderExpandContent: ((row: DataRecord, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild) | undefined;
|
|
494
|
+
rowExpandable: ((row: DataRecord) => boolean) | undefined;
|
|
495
|
+
enableSelection: boolean;
|
|
496
|
+
defaultCheckedKeys: DataTableRowKey[] | undefined;
|
|
497
|
+
rowCheckable: ((row: DataRecord) => boolean) | undefined;
|
|
498
|
+
maxSelection: number | undefined;
|
|
499
|
+
enableChildSelection: boolean;
|
|
500
|
+
childRowCheckable: ((childRow: unknown, parentRow: DataRecord) => boolean) | undefined;
|
|
501
|
+
enableParentChildLink: boolean;
|
|
502
|
+
parentChildLinkMode: ParentChildLinkMode;
|
|
503
|
+
pagination: PaginationConfig | null;
|
|
504
|
+
dynamicRows: DynamicRowsOptions<DataRecord> | undefined;
|
|
505
|
+
striped: boolean;
|
|
506
|
+
bordered: boolean;
|
|
507
|
+
singleLine: boolean;
|
|
508
|
+
size: 'small' | 'medium' | 'large';
|
|
509
|
+
maxHeight: number | string | undefined;
|
|
510
|
+
scrollX: number | string | undefined;
|
|
511
|
+
columnWidth: number;
|
|
512
|
+
showToolbar: boolean;
|
|
513
|
+
enableColumnSettings: boolean;
|
|
514
|
+
/** 虚拟滚动 */
|
|
515
|
+
virtualScroll: boolean;
|
|
516
|
+
virtualItemHeight: number;
|
|
517
|
+
virtualMaxHeight: number;
|
|
518
|
+
/** 合计行 */
|
|
519
|
+
summaryPosition: 'top' | 'bottom' | undefined;
|
|
520
|
+
summaryRender: ((data: DataRecord[]) => Record<string, {
|
|
521
|
+
value: string | number;
|
|
522
|
+
colSpan?: number;
|
|
523
|
+
}>) | undefined;
|
|
524
|
+
/** 列拖拽 */
|
|
525
|
+
enableColumnDrag: boolean;
|
|
526
|
+
columnDragHandleClass: string | undefined;
|
|
527
|
+
columnDragAnimationDuration: number;
|
|
528
|
+
/** 树形表格 */
|
|
529
|
+
treeEnabled: boolean;
|
|
530
|
+
treeChildrenKey: string;
|
|
531
|
+
treeIndent: number;
|
|
532
|
+
treeDefaultExpandAll: boolean;
|
|
533
|
+
/** 行拖拽 */
|
|
534
|
+
rowDrag: RowDragConfig | undefined;
|
|
535
|
+
/** 跨页多选 */
|
|
536
|
+
crossPageSelection: CrossPageSelectionConfig | undefined;
|
|
537
|
+
/** 导出配置 */
|
|
538
|
+
exportConfig: ExportConfig | undefined;
|
|
539
|
+
/** 列持久化 key */
|
|
540
|
+
persistKey: string | undefined;
|
|
541
|
+
/** 全局格式化配置 */
|
|
542
|
+
formatterConfig: FormatterConfig | undefined;
|
|
543
|
+
/** 错误状态 */
|
|
544
|
+
error: ErrorConfig | undefined;
|
|
545
|
+
/** 批量操作 */
|
|
546
|
+
batchActions: BatchActionsConfig | undefined;
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* 将 config 单一对象解析为内部扁平化配置
|
|
550
|
+
*/
|
|
551
|
+
declare function resolveConfig(config?: TableConfig): ResolvedConfig;
|
|
552
|
+
declare const createEditModeChecker: (config: ResolvedConfig) => {
|
|
553
|
+
isNonEditable: (column: TableColumn) => boolean;
|
|
554
|
+
isRowEditMode: () => boolean;
|
|
555
|
+
isCellEditMode: () => boolean;
|
|
556
|
+
};
|
|
557
|
+
//#endregion
|
|
558
|
+
//#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
|
|
559
|
+
type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
|
|
560
|
+
interface FormatterConfig {
|
|
561
|
+
/** 日期格式 */
|
|
562
|
+
date?: {
|
|
563
|
+
format?: string;
|
|
564
|
+
};
|
|
565
|
+
/** 日期时间格式 */
|
|
566
|
+
datetime?: {
|
|
567
|
+
format?: string;
|
|
568
|
+
};
|
|
569
|
+
/** 货币格式 */
|
|
570
|
+
currency?: {
|
|
571
|
+
prefix?: string;
|
|
572
|
+
suffix?: string;
|
|
573
|
+
precision?: number;
|
|
574
|
+
};
|
|
575
|
+
/** 百分比格式 */
|
|
576
|
+
percent?: {
|
|
577
|
+
precision?: number;
|
|
578
|
+
suffix?: string;
|
|
579
|
+
};
|
|
580
|
+
/** 数字格式(千分位) */
|
|
581
|
+
number?: {
|
|
582
|
+
precision?: number;
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
/** 列级 formatter 配置 */
|
|
586
|
+
interface ColumnFormatter {
|
|
587
|
+
type: FormatterType;
|
|
588
|
+
/** enum mapping:{ male: '男', female: '女' } */
|
|
589
|
+
mapping?: Record<string, string>;
|
|
590
|
+
/** 自定义格式化函数(优先级最高) */
|
|
591
|
+
fn?: (value: unknown, row: DataRecord) => string;
|
|
592
|
+
/** 覆盖全局格式配置 */
|
|
593
|
+
config?: Record<string, unknown>;
|
|
594
|
+
}
|
|
595
|
+
interface TableGlobalConfig {
|
|
596
|
+
/** 任意 C_Table 配置的应用级默认值。 */
|
|
597
|
+
defaults?: TableConfig;
|
|
598
|
+
/** 表格显示默认值 */
|
|
599
|
+
display?: DisplayConfig;
|
|
600
|
+
/** 默认分页条数 */
|
|
601
|
+
pageSize?: number;
|
|
602
|
+
/** 空状态文案 */
|
|
603
|
+
emptyText?: string;
|
|
604
|
+
/** 全局格式化配置 */
|
|
605
|
+
formatter?: FormatterConfig;
|
|
606
|
+
/** 列配置持久化前缀 */
|
|
607
|
+
persistPrefix?: string;
|
|
608
|
+
/** 默认导出文件名 */
|
|
609
|
+
exportFilename?: string;
|
|
610
|
+
}
|
|
611
|
+
declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
|
|
612
|
+
/** 根据 ColumnFormatter 配置格式化单元格值 */
|
|
613
|
+
declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
|
|
614
|
+
/** 在组件内获取全局配置(自动合并默认值) */
|
|
615
|
+
declare function useTableGlobalConfig(): TableGlobalConfig;
|
|
616
|
+
/** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
|
|
617
|
+
declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
|
|
618
|
+
//#endregion
|
|
619
|
+
//#region src/components/C_Table/types.d.ts
|
|
620
|
+
type RefLike<T> = {
|
|
621
|
+
value: T;
|
|
622
|
+
} | T;
|
|
623
|
+
type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
|
|
624
|
+
type DataRecord = Record<string, unknown>;
|
|
625
|
+
type TableRowKey<T extends object = DataRecord> = Extract<keyof T, string> | ((row: T) => DataTableRowKey);
|
|
626
|
+
interface TableRowKeyIssue<T extends object = DataRecord> {
|
|
627
|
+
type: 'missing' | 'duplicate' | 'error';
|
|
628
|
+
row: T;
|
|
629
|
+
index: number;
|
|
630
|
+
key?: DataTableRowKey;
|
|
631
|
+
firstIndex?: number;
|
|
632
|
+
cause?: unknown;
|
|
633
|
+
}
|
|
634
|
+
type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
|
|
635
|
+
type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
|
|
636
|
+
type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
|
|
637
|
+
type ParentChildLinkMode = 'strict' | 'loose';
|
|
638
|
+
interface PaginationConfig {
|
|
639
|
+
enabled?: boolean;
|
|
640
|
+
page?: number;
|
|
641
|
+
pageSize?: number;
|
|
642
|
+
total?: number;
|
|
643
|
+
showSizePicker?: boolean;
|
|
644
|
+
showQuickJumper?: boolean;
|
|
645
|
+
pageSizes?: number[];
|
|
646
|
+
simple?: boolean;
|
|
647
|
+
size?: 'small' | 'medium' | 'large';
|
|
648
|
+
remote?: boolean;
|
|
649
|
+
}
|
|
650
|
+
/** API 函数类型 */
|
|
651
|
+
type ApiFunction<T extends object = DataRecord> = (row: T, index: number) => unknown | Promise<unknown>;
|
|
652
|
+
/** 渲染函数类型 */
|
|
653
|
+
type RenderFunction<T extends object = DataRecord> = (row: T, index: number) => VNodeChild;
|
|
654
|
+
/** 自定义操作按钮配置 */
|
|
655
|
+
interface CustomAction<T extends object = DataRecord> {
|
|
656
|
+
/** 按钮唯一键 */
|
|
657
|
+
key: string;
|
|
658
|
+
/** 按钮显示文本 */
|
|
659
|
+
label: string | ((row: T, index: number) => string);
|
|
660
|
+
/** 按钮图标 */
|
|
661
|
+
icon: string | ((row: T, index: number) => string);
|
|
662
|
+
/** 按钮类型样式 */
|
|
663
|
+
type?: ButtonType | ((row: T, index: number) => ButtonType);
|
|
664
|
+
/** 点击事件处理器 */
|
|
665
|
+
onClick: (row: T, index: number) => void | Promise<void>;
|
|
666
|
+
/** 条件显示函数(可选) */
|
|
667
|
+
show?: (row: T, index: number) => boolean;
|
|
668
|
+
/** 是否禁用(可选) */
|
|
669
|
+
disabled?: (row: T, index: number) => boolean;
|
|
670
|
+
/** 按钮提示文本(可选) */
|
|
671
|
+
tooltip?: string;
|
|
672
|
+
}
|
|
673
|
+
/** 简化的操作配置 - 二元法则 */
|
|
674
|
+
interface SimpleTableActions<T extends object = DataRecord> {
|
|
675
|
+
/** 编辑操作 - 直接传入函数 */
|
|
676
|
+
edit?: false | ApiFunction<T>;
|
|
677
|
+
/** 删除操作 - 直接传入函数 */
|
|
678
|
+
delete?: false | ApiFunction<T>;
|
|
679
|
+
/** 详情操作 - 直接传入函数 */
|
|
680
|
+
detail?: false | ApiFunction<T>;
|
|
681
|
+
/** 自定义操作按钮 */
|
|
682
|
+
custom?: CustomAction<T>[];
|
|
683
|
+
/** 完全自定义渲染 - 10%场景 */
|
|
684
|
+
render?: RenderFunction<T>;
|
|
685
|
+
}
|
|
686
|
+
/** Minimal edit-state contract consumed by the action renderer. */
|
|
687
|
+
interface TableActionsManager<T extends object = DataRecord> {
|
|
688
|
+
editStates: {
|
|
689
|
+
modalEdit: {
|
|
690
|
+
startEdit: (rowKey: DataTableRowKey, sourceData?: T) => boolean | void;
|
|
691
|
+
};
|
|
692
|
+
rowEdit: {
|
|
693
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
694
|
+
startEditRow: (rowKey: DataTableRowKey) => boolean | void;
|
|
695
|
+
cancelEditRow: () => void | Promise<void>;
|
|
696
|
+
saveEditRow: () => Promise<unknown>;
|
|
697
|
+
};
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
/** useTableActions Hook 选项类型 */
|
|
701
|
+
interface UseTableActionsOptions<T extends object = DataRecord> {
|
|
702
|
+
/** 操作配置 */
|
|
703
|
+
actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
|
|
704
|
+
/** 表格配置 */
|
|
705
|
+
config: Ref<{
|
|
706
|
+
editable: boolean;
|
|
707
|
+
editMode: string;
|
|
708
|
+
feedback?: ComponentFeedback;
|
|
709
|
+
locale?: ComponentLocale;
|
|
710
|
+
}> | ComputedRef<{
|
|
711
|
+
editable: boolean;
|
|
712
|
+
editMode: string;
|
|
713
|
+
feedback?: ComponentFeedback;
|
|
714
|
+
locale?: ComponentLocale;
|
|
715
|
+
}>;
|
|
716
|
+
/** 表格管理器 */
|
|
717
|
+
tableManager: TableActionsManager<T>;
|
|
718
|
+
/** 行键获取函数 */
|
|
719
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
720
|
+
/** 事件发射器 */
|
|
721
|
+
/** Deletion action completion notification; kept separate from CRUD data mutation. */
|
|
722
|
+
onRowDeleted?: (row: T, index: number) => void;
|
|
723
|
+
/** 查看详情回调 */
|
|
724
|
+
onViewDetail?: (data: T) => void;
|
|
725
|
+
}
|
|
726
|
+
/** useTableActions Hook 返回类型 */
|
|
727
|
+
interface UseTableActionsReturn<T extends object = DataRecord> {
|
|
728
|
+
/** 渲染操作列 */
|
|
729
|
+
renderActions: (rowData: T, rowIndex: number) => VNodeChild;
|
|
730
|
+
/** 检查操作是否启用 */
|
|
731
|
+
isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
|
|
732
|
+
}
|
|
733
|
+
interface BaseOption {
|
|
734
|
+
label: string;
|
|
735
|
+
value: string | number;
|
|
736
|
+
disabled?: boolean;
|
|
737
|
+
}
|
|
738
|
+
interface BaseConfig<T extends object = DataRecord> {
|
|
739
|
+
enabled?: boolean;
|
|
740
|
+
rowCheckable?: (row: T) => boolean;
|
|
741
|
+
}
|
|
742
|
+
type SelectOption = BaseOption;
|
|
743
|
+
interface EditProps {
|
|
744
|
+
min?: number;
|
|
745
|
+
max?: number;
|
|
746
|
+
step?: number;
|
|
747
|
+
showButton?: boolean;
|
|
748
|
+
type?: string;
|
|
749
|
+
rows?: number;
|
|
750
|
+
placeholder?: string;
|
|
751
|
+
options?: SelectOption[];
|
|
752
|
+
rules?: FormItemRule[];
|
|
753
|
+
format?: string;
|
|
754
|
+
valueFormat?: string;
|
|
755
|
+
clearable?: boolean;
|
|
756
|
+
disabled?: boolean;
|
|
757
|
+
readonly?: boolean;
|
|
758
|
+
}
|
|
759
|
+
/**
|
|
760
|
+
* ================= 列类型系统 =================
|
|
761
|
+
* 说明:
|
|
762
|
+
* - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
|
|
763
|
+
* - NormalTableColumn:普通数据列,必须有 key + title
|
|
764
|
+
* - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
|
|
765
|
+
* - TableColumn:以上二者联合
|
|
766
|
+
*/
|
|
767
|
+
interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
|
|
768
|
+
key?: DataTableRowKey;
|
|
769
|
+
title?: string;
|
|
770
|
+
visible?: boolean;
|
|
771
|
+
editable?: boolean;
|
|
772
|
+
required?: boolean;
|
|
773
|
+
editType?: EditType;
|
|
774
|
+
editProps?: EditProps;
|
|
775
|
+
editRender?: (value: unknown, rowData: T, rowIndex: number) => VNodeChild;
|
|
776
|
+
render?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
777
|
+
/** 声明式格式化器(优先级低于 render) */
|
|
778
|
+
formatter?: ColumnFormatter;
|
|
779
|
+
fixed?: 'left' | 'right';
|
|
780
|
+
resizable?: boolean;
|
|
781
|
+
minWidth?: number;
|
|
782
|
+
maxWidth?: number;
|
|
783
|
+
}
|
|
784
|
+
interface NormalTableColumn<T extends object = DataRecord> extends BaseTableColumn<T> {
|
|
785
|
+
key: Extract<keyof T, DataTableRowKey> | DataTableRowKey;
|
|
786
|
+
title: string;
|
|
787
|
+
}
|
|
788
|
+
interface BuiltInTableColumn<T extends object = DataRecord> extends BaseTableColumn<T> {
|
|
789
|
+
/** 内置列类型:无需 key / title */
|
|
790
|
+
type: 'selection' | 'expand' | 'index';
|
|
791
|
+
/** 展开行渲染函数(仅当 type = expand 时有效) */
|
|
792
|
+
renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
793
|
+
}
|
|
794
|
+
type TableColumn<T extends object = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
|
|
795
|
+
type StrictTableColumn<T extends object> = (Omit<NormalTableColumn<T>, 'key'> & {
|
|
796
|
+
key: Extract<keyof T, string>;
|
|
797
|
+
}) | BuiltInTableColumn<T>;
|
|
798
|
+
interface ChildSelectionState {
|
|
799
|
+
selectedKeys: DataTableRowKey[];
|
|
800
|
+
isAllChecked: boolean;
|
|
801
|
+
selectAll: () => void;
|
|
802
|
+
clearAll: () => void;
|
|
803
|
+
}
|
|
804
|
+
interface ExpandConfig<T extends object = DataRecord, C = DataRecord> {
|
|
805
|
+
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
806
|
+
onError?: (error: unknown, row: T) => void;
|
|
807
|
+
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
808
|
+
rowExpandable?: (row: T) => boolean;
|
|
809
|
+
}
|
|
810
|
+
interface SelectionConfig<T extends object = DataRecord, C = DataRecord> extends BaseConfig<T> {
|
|
811
|
+
enableSelection?: boolean;
|
|
812
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
813
|
+
maxSelection?: number;
|
|
814
|
+
enableChildSelection?: boolean;
|
|
815
|
+
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
816
|
+
enableParentChildLink?: boolean;
|
|
817
|
+
parentChildLinkMode?: ParentChildLinkMode;
|
|
818
|
+
}
|
|
819
|
+
interface TableBaseProps<T extends object = DataRecord> {
|
|
820
|
+
columns: TableColumn<T>[];
|
|
821
|
+
data: MaybeRefLike<T[]>;
|
|
822
|
+
rowKey?: TableRowKey<T>;
|
|
823
|
+
loading?: MaybeRefLike<boolean>;
|
|
824
|
+
}
|
|
825
|
+
interface TableDisplayProps {
|
|
826
|
+
maxHeight?: number | string;
|
|
827
|
+
minHeight?: number | string;
|
|
828
|
+
scrollX?: number | string;
|
|
829
|
+
striped?: boolean;
|
|
830
|
+
bordered?: boolean;
|
|
831
|
+
singleLine?: boolean;
|
|
832
|
+
size?: 'small' | 'medium' | 'large';
|
|
833
|
+
}
|
|
834
|
+
interface TableEditProps<T extends object = DataRecord> {
|
|
835
|
+
editable?: boolean;
|
|
836
|
+
editMode?: EditMode;
|
|
837
|
+
onSave?: (rowData: T, rowIndex: number, columnKey?: string) => void | Promise<void>;
|
|
838
|
+
onCancel?: (rowData: T, rowIndex: number) => void;
|
|
839
|
+
showRowActions?: boolean;
|
|
840
|
+
modalTitle?: string;
|
|
841
|
+
modalWidth?: number;
|
|
842
|
+
columnWidth?: number;
|
|
843
|
+
}
|
|
844
|
+
interface TableExpandProps<T extends object = DataRecord, C = DataRecord> {
|
|
845
|
+
expandable?: boolean;
|
|
846
|
+
onLoadExpandData?: (row: T) => Promise<C[]> | C[];
|
|
847
|
+
renderExpandContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
848
|
+
rowExpandable?: (row: T) => boolean;
|
|
849
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
850
|
+
}
|
|
851
|
+
interface TableSelectionProps<T extends object = DataRecord, C = DataRecord> extends BaseConfig<T> {
|
|
852
|
+
enableSelection?: boolean;
|
|
853
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
854
|
+
maxSelection?: number;
|
|
855
|
+
enableChildSelection?: boolean;
|
|
856
|
+
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
857
|
+
enableParentChildLink?: boolean;
|
|
858
|
+
parentChildLinkMode?: ParentChildLinkMode;
|
|
859
|
+
}
|
|
860
|
+
interface TableProps<T extends object = DataRecord, C = DataRecord> extends TableBaseProps<T>, TableDisplayProps, TableEditProps<T>, TableExpandProps<T, C>, TableSelectionProps<T, C> {
|
|
861
|
+
pagination?: PaginationConfig | boolean;
|
|
862
|
+
actions?: SimpleTableActions<T>;
|
|
863
|
+
}
|
|
864
|
+
interface TableExpandEvents<T extends object = DataRecord> {
|
|
865
|
+
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
866
|
+
}
|
|
867
|
+
interface TableSelectionEvents<T extends object = DataRecord, C = DataRecord> {
|
|
868
|
+
'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
|
|
869
|
+
'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]];
|
|
870
|
+
'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
|
|
871
|
+
}
|
|
872
|
+
interface TableEditEvents<T extends object = DataRecord> {
|
|
873
|
+
'update:data': [data: T[]];
|
|
874
|
+
save: [rowData: T, rowIndex: number, columnKey?: string];
|
|
875
|
+
cancel: [rowData: T, rowIndex: number];
|
|
876
|
+
'edit-error': [error: unknown];
|
|
877
|
+
}
|
|
878
|
+
interface TableEmits<T extends object = DataRecord, C = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T, C>, TableEditEvents<T> {
|
|
879
|
+
'pagination-change': [page: number, pageSize: number];
|
|
880
|
+
'row-delete': [deletedRow: T, index: number];
|
|
881
|
+
'batch-action-error': [error: unknown, actionKey: string];
|
|
882
|
+
'row-key-error': [issues: TableRowKeyIssue<T>[]];
|
|
883
|
+
}
|
|
884
|
+
interface TableEditMethods<T extends object = DataRecord> {
|
|
885
|
+
startEdit: (rowKey: DataTableRowKey, columnKey?: string) => void;
|
|
886
|
+
cancelEdit: () => void;
|
|
887
|
+
saveEdit: () => Promise<void>;
|
|
888
|
+
isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
|
|
889
|
+
getEditingData: () => T | null;
|
|
890
|
+
}
|
|
891
|
+
interface TableExpandMethods {
|
|
892
|
+
expandRow: (rowKey: DataTableRowKey) => Promise<void>;
|
|
893
|
+
collapseRow: (rowKey: DataTableRowKey) => void;
|
|
894
|
+
toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
895
|
+
expandAll: () => Promise<void>;
|
|
896
|
+
collapseAll: () => void;
|
|
897
|
+
isExpanded: (rowKey: DataTableRowKey) => boolean;
|
|
898
|
+
}
|
|
899
|
+
interface TableSelectionMethods<T extends object = DataRecord, C = DataRecord> {
|
|
900
|
+
selectRow: (rowKey: DataTableRowKey) => boolean | void;
|
|
901
|
+
unselectRow: (rowKey: DataTableRowKey) => void;
|
|
902
|
+
selectAll: () => void;
|
|
903
|
+
clearSelection: () => void;
|
|
904
|
+
isRowSelected: (rowKey: DataTableRowKey) => boolean;
|
|
905
|
+
getSelectedRows: () => T[];
|
|
906
|
+
selectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
907
|
+
unselectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
908
|
+
selectAllChildren: (parentKey: DataTableRowKey) => void;
|
|
909
|
+
clearChildrenSelection: (parentKey: DataTableRowKey) => void;
|
|
910
|
+
getChildSelectedRows: (parentKey: DataTableRowKey) => C[];
|
|
911
|
+
clearAllSelections: () => void;
|
|
912
|
+
}
|
|
913
|
+
interface TableDynamicRowsMethods<T extends object = DataRecord> {
|
|
914
|
+
addRow: () => void;
|
|
915
|
+
insertRow: () => void;
|
|
916
|
+
deleteRow: () => void;
|
|
917
|
+
copyRow: () => void;
|
|
918
|
+
moveRowUp: () => void;
|
|
919
|
+
moveRowDown: () => void;
|
|
920
|
+
clearRowSelection: () => void;
|
|
921
|
+
getSelectedRowData: () => T | null;
|
|
922
|
+
printTable: (elementRef?: HTMLElement) => Promise<void>;
|
|
923
|
+
downloadTableScreenshot: (elementRef?: HTMLElement, filename?: string) => Promise<void>;
|
|
924
|
+
}
|
|
925
|
+
interface TablePaginationMethods {
|
|
926
|
+
resetToFirstPage: () => void;
|
|
927
|
+
getTotalPages: () => number;
|
|
928
|
+
}
|
|
929
|
+
interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {}
|
|
930
|
+
interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> extends ExpandConfig<T, C>, SelectionConfig<T, C> {
|
|
931
|
+
data: Ref<T[]> | ComputedRef<T[]>;
|
|
932
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
933
|
+
childRowKey?: (child: C) => DataTableRowKey;
|
|
934
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
935
|
+
onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
|
|
936
|
+
onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
937
|
+
onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
|
|
938
|
+
}
|
|
939
|
+
interface UseTableExpandReturn<T extends object = DataRecord, C = DataRecord> {
|
|
940
|
+
expandedKeys: Ref<DataTableRowKey[]>;
|
|
941
|
+
checkedKeys: Ref<DataTableRowKey[]>;
|
|
942
|
+
childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
|
|
943
|
+
expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
|
|
944
|
+
loadingMap: Ref<Map<DataTableRowKey, boolean>>;
|
|
945
|
+
selectedRowsCount: ComputedRef<number>;
|
|
946
|
+
totalChildSelections: ComputedRef<number>;
|
|
947
|
+
expandAll: () => Promise<void>;
|
|
948
|
+
collapseAll: () => void;
|
|
949
|
+
expandRow: (key: DataTableRowKey) => Promise<void>;
|
|
950
|
+
handleExpandChange: (keys: DataTableRowKey[]) => void;
|
|
951
|
+
selectAll: () => void;
|
|
952
|
+
clearSelection: () => void;
|
|
953
|
+
clearAllSelections: () => void;
|
|
954
|
+
handleSelectionChange: (keys: DataTableRowKey[]) => void;
|
|
955
|
+
getTableColumns: (originalColumns: TableColumn<T>[]) => unknown[];
|
|
956
|
+
}
|
|
957
|
+
/** 行操作按钮配置 */
|
|
958
|
+
interface RowAction<T extends object = DataRecord> {
|
|
959
|
+
label: string;
|
|
960
|
+
icon?: string;
|
|
961
|
+
type?: ButtonType;
|
|
962
|
+
disabled?: boolean | ((row: T, index: number) => boolean);
|
|
963
|
+
show?: boolean | ((row: T, index: number) => boolean);
|
|
964
|
+
onClick?: (row: T, index: number) => void | Promise<void>;
|
|
965
|
+
tooltip?: string;
|
|
966
|
+
}
|
|
967
|
+
/**
|
|
968
|
+
* 展平 TableColumn 联合类型以便直接访问 key/title/visible 等属性。
|
|
969
|
+
* 各 composable 共用此类型,避免重复定义。
|
|
970
|
+
*/
|
|
971
|
+
type ColumnWithKey = TableColumn & {
|
|
972
|
+
key?: string;
|
|
973
|
+
title?: string;
|
|
974
|
+
visible?: boolean;
|
|
975
|
+
width?: number | string;
|
|
976
|
+
align?: string;
|
|
977
|
+
titleAlign?: string;
|
|
978
|
+
formatter?: ColumnFormatter;
|
|
979
|
+
};
|
|
980
|
+
//#endregion
|
|
981
|
+
//#region src/components/C_Table/index.vue.d.ts
|
|
982
|
+
declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
983
|
+
props: vue.PublicProps & __VLS_PrettifyLocal<{
|
|
984
|
+
/** 列配置(crud 模式下可省略) */columns?: TableColumn<T>[]; /** 数据源(crud 模式下可省略) */
|
|
985
|
+
data?: MaybeRefLike<T[]>; /** 加载状态 */
|
|
986
|
+
loading?: MaybeRefLike<boolean>; /** 行唯一键 */
|
|
987
|
+
rowKey?: string | ((row: T) => DataTableRowKey); /** 统一功能配置(edit / selection / expand / pagination / dynamicRows / toolbar / display) */
|
|
988
|
+
config?: TableConfig<T>; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
|
|
989
|
+
crud?: CrudBinding<T>;
|
|
990
|
+
} & {
|
|
991
|
+
[x: `on${Capitalize<string>}`]: ((...args: any) => any) | undefined;
|
|
992
|
+
}> & (typeof globalThis extends {
|
|
993
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
994
|
+
} ? P : {});
|
|
995
|
+
expose: (exposed: vue.ShallowUnwrapRef<{
|
|
996
|
+
startEdit: (rowKey: DataTableRowKey, columnKey?: string) => void;
|
|
997
|
+
cancelEdit: () => void;
|
|
998
|
+
saveEdit: () => Promise<void>;
|
|
999
|
+
expandRow: (rowKey: DataTableRowKey) => Promise<void>;
|
|
1000
|
+
collapseRow: (rowKey: DataTableRowKey) => void;
|
|
1001
|
+
toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
1002
|
+
expandAll: () => Promise<void>;
|
|
1003
|
+
collapseAll: () => void;
|
|
1004
|
+
selectRow: (rowKey: DataTableRowKey) => boolean;
|
|
1005
|
+
unselectRow: (rowKey: DataTableRowKey) => void;
|
|
1006
|
+
selectAll: () => void;
|
|
1007
|
+
clearSelection: () => void;
|
|
1008
|
+
isRowSelected: (rowKey: DataTableRowKey) => boolean;
|
|
1009
|
+
clearAllSelections: () => void;
|
|
1010
|
+
selectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
1011
|
+
unselectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
1012
|
+
selectAllChildren: (parentKey: DataTableRowKey) => void;
|
|
1013
|
+
clearChildrenSelection: (parentKey: DataTableRowKey) => void;
|
|
1014
|
+
getChildSelectedRows: (parentKey: DataTableRowKey) => DataRecord[];
|
|
1015
|
+
addRow: () => void;
|
|
1016
|
+
insertRow: () => void;
|
|
1017
|
+
deleteRow: () => void;
|
|
1018
|
+
copyRow: () => void;
|
|
1019
|
+
moveRowUp: () => void;
|
|
1020
|
+
moveRowDown: () => void;
|
|
1021
|
+
clearRowSelection: () => void;
|
|
1022
|
+
getSelectedRowData: () => DataRecord | null;
|
|
1023
|
+
printTable: (elementRef?: HTMLElement) => Promise<void>;
|
|
1024
|
+
downloadTableScreenshot: (elementRef?: HTMLElement, filename?: string) => Promise<void>;
|
|
1025
|
+
resetToFirstPage: () => void;
|
|
1026
|
+
getTotalPages: () => number;
|
|
1027
|
+
getSelectedRows: () => DataRecord[];
|
|
1028
|
+
getEditingData: () => DataRecord | null | undefined;
|
|
1029
|
+
isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
|
|
1030
|
+
isExpanded: (rowKey: DataTableRowKey) => boolean;
|
|
1031
|
+
getManager: () => {
|
|
1032
|
+
edit: {
|
|
1033
|
+
start(rowKey: DataTableRowKey, columnKey?: string): void;
|
|
1034
|
+
cancel(): void;
|
|
1035
|
+
save(): Promise<void>;
|
|
1036
|
+
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean;
|
|
1037
|
+
getEditingData(): DataRecord | null | undefined;
|
|
1038
|
+
};
|
|
1039
|
+
expand: {
|
|
1040
|
+
row(rowKey: DataTableRowKey): Promise<void>;
|
|
1041
|
+
collapse(rowKey: DataTableRowKey): void;
|
|
1042
|
+
toggle(rowKey: DataTableRowKey): Promise<void>;
|
|
1043
|
+
all(): Promise<void>;
|
|
1044
|
+
collapseAll(): void;
|
|
1045
|
+
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
1046
|
+
};
|
|
1047
|
+
selection: {
|
|
1048
|
+
select(rowKey: DataTableRowKey): void;
|
|
1049
|
+
unselect(rowKey: DataTableRowKey): void;
|
|
1050
|
+
all(): void;
|
|
1051
|
+
clear(): void;
|
|
1052
|
+
isSelected(rowKey: DataTableRowKey): boolean;
|
|
1053
|
+
getSelected(): DataRecord[];
|
|
1054
|
+
};
|
|
1055
|
+
childSelection: {
|
|
1056
|
+
select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
|
|
1057
|
+
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
|
|
1058
|
+
selectAll(parentKey: DataTableRowKey): void;
|
|
1059
|
+
clear(parentKey: DataTableRowKey): void;
|
|
1060
|
+
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
1061
|
+
};
|
|
1062
|
+
dynamicRows: {
|
|
1063
|
+
add(): void;
|
|
1064
|
+
insert(): void;
|
|
1065
|
+
delete(): void;
|
|
1066
|
+
copy(): void;
|
|
1067
|
+
moveUp(): void;
|
|
1068
|
+
moveDown(): void;
|
|
1069
|
+
clearSelection(): void;
|
|
1070
|
+
getSelected(): DataRecord | null;
|
|
1071
|
+
print(elementRef?: HTMLElement): Promise<void>;
|
|
1072
|
+
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
1073
|
+
};
|
|
1074
|
+
clearAllSelections(): void;
|
|
1075
|
+
}; /** 导出数据 */
|
|
1076
|
+
exportData: () => Promise<void>; /** 跨页选择 */
|
|
1077
|
+
crossPageSelection: {
|
|
1078
|
+
enabled: vue.ComputedRef<boolean>;
|
|
1079
|
+
selectedKeys: vue.Ref<Set<DataTableRowKey>, Set<DataTableRowKey>>;
|
|
1080
|
+
selectedCount: vue.ComputedRef<number>;
|
|
1081
|
+
select: (key: DataTableRowKey) => boolean;
|
|
1082
|
+
unselect: (key: DataTableRowKey) => void;
|
|
1083
|
+
selectAll: () => void;
|
|
1084
|
+
clearAll: () => void;
|
|
1085
|
+
getSelectedRows: () => DataRecord[];
|
|
1086
|
+
};
|
|
1087
|
+
}>) => void;
|
|
1088
|
+
attrs: any;
|
|
1089
|
+
slots: {
|
|
1090
|
+
'toolbar-left'?: (props: {}) => any;
|
|
1091
|
+
} & {
|
|
1092
|
+
'toolbar-right'?: (props: {}) => any;
|
|
1093
|
+
} & {
|
|
1094
|
+
error?: (props: {
|
|
1095
|
+
error: ErrorConfig;
|
|
1096
|
+
}) => any;
|
|
1097
|
+
};
|
|
1098
|
+
emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
|
|
1099
|
+
}>) => vue.VNode & {
|
|
1100
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
1101
|
+
};
|
|
1102
|
+
declare const _default: typeof __VLS_export;
|
|
1103
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1104
|
+
//#endregion
|
|
1105
|
+
//#region src/components/C_Table/helpers.d.ts
|
|
1106
|
+
/** Type-safe identity helper that rejects misspelled business field keys. */
|
|
1107
|
+
declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
|
|
1108
|
+
/** Preserve row types across edit, action, summary and batch callbacks. */
|
|
1109
|
+
declare function defineTableConfig<T extends object>(config: TableConfig<T>): TableConfig<T>;
|
|
1110
|
+
/** Find missing and duplicate row keys before stateful table features consume them. */
|
|
1111
|
+
declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
|
|
1112
|
+
//#endregion
|
|
1113
|
+
//#region src/components/C_Table/composables/useTableColumns.d.ts
|
|
1114
|
+
/** useTableColumns 中对 tableManager 的最小依赖接口 */
|
|
1115
|
+
interface TableManagerRef {
|
|
1116
|
+
editStates: {
|
|
1117
|
+
cellEdit: {
|
|
1118
|
+
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1119
|
+
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1120
|
+
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1121
|
+
saveEditCell: () => Promise<unknown>;
|
|
1122
|
+
cancelEditCell: () => void;
|
|
1123
|
+
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => void;
|
|
1124
|
+
};
|
|
1125
|
+
rowEdit: {
|
|
1126
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1127
|
+
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1128
|
+
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1129
|
+
};
|
|
1130
|
+
};
|
|
1131
|
+
dynamicRowsState?: {
|
|
1132
|
+
enhanceColumns: (columns: TableColumn[]) => TableColumn[];
|
|
1133
|
+
} | null;
|
|
1134
|
+
expandState?: {
|
|
1135
|
+
getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
|
|
1136
|
+
} | null;
|
|
1137
|
+
}
|
|
1138
|
+
/**
|
|
1139
|
+
* 渲染编辑组件(行编辑/单元格编辑通用)
|
|
1140
|
+
*/
|
|
1141
|
+
interface UseTableColumnsOptions {
|
|
1142
|
+
/** 原始列配置 */
|
|
1143
|
+
rawColumns: ComputedRef<TableColumn[]>;
|
|
1144
|
+
/** 统一配置 */
|
|
1145
|
+
config: ComputedRef<ResolvedConfig>;
|
|
1146
|
+
/** 默认列宽 */
|
|
1147
|
+
columnWidth: number;
|
|
1148
|
+
/** 用户设定的 scrollX */
|
|
1149
|
+
scrollX?: number | string;
|
|
1150
|
+
/** 行键获取函数 */
|
|
1151
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1152
|
+
/** 表格管理器 */
|
|
1153
|
+
tableManager: TableManagerRef;
|
|
1154
|
+
/** 操作列渲染函数 */
|
|
1155
|
+
actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
|
|
1156
|
+
/** 编辑模式检查器 */
|
|
1157
|
+
editModeChecker: ComputedRef<{
|
|
1158
|
+
isNonEditable: (column: TableColumn) => boolean;
|
|
1159
|
+
isRowEditMode: () => boolean;
|
|
1160
|
+
isCellEditMode: () => boolean;
|
|
1161
|
+
}>;
|
|
1162
|
+
/** 是否渲染操作列 */
|
|
1163
|
+
showActionsColumn: ComputedRef<boolean>;
|
|
1164
|
+
}
|
|
1165
|
+
interface UseTableColumnsReturn {
|
|
1166
|
+
reactiveColumns: Ref<TableColumn[]>;
|
|
1167
|
+
showSettingsPanel: Ref<boolean>;
|
|
1168
|
+
computedColumns: ComputedRef<DataTableColumn[]>;
|
|
1169
|
+
computedScrollX: ComputedRef<number | string | undefined>;
|
|
1170
|
+
handleColumnChange: (columns: TableColumn[]) => void;
|
|
1171
|
+
}
|
|
1172
|
+
/**
|
|
1173
|
+
* 表格列处理引擎
|
|
1174
|
+
*/
|
|
1175
|
+
declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
|
|
1176
|
+
//#endregion
|
|
1177
|
+
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
1178
|
+
/** 行级校验错误 */
|
|
1179
|
+
interface RowValidationError {
|
|
1180
|
+
field: string;
|
|
1181
|
+
message: string;
|
|
1182
|
+
}
|
|
1183
|
+
/**
|
|
1184
|
+
* 行编辑配置选项
|
|
1185
|
+
*/
|
|
1186
|
+
interface RowEditOptions {
|
|
1187
|
+
data: () => DataRecord[];
|
|
1188
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1189
|
+
onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
1190
|
+
onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
1191
|
+
/** 列配置(用于提取校验规则) */
|
|
1192
|
+
columns?: () => TableColumn[];
|
|
1193
|
+
}
|
|
1194
|
+
/**
|
|
1195
|
+
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
1196
|
+
*/
|
|
1197
|
+
declare function useRowEdit(options: RowEditOptions): {
|
|
1198
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1199
|
+
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1200
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1201
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1202
|
+
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1203
|
+
cancelEditRow: () => Promise<void>;
|
|
1204
|
+
saveEditRow: () => Promise<{
|
|
1205
|
+
updatedData: DataRecord;
|
|
1206
|
+
rowIndex: number;
|
|
1207
|
+
} | undefined>;
|
|
1208
|
+
validateRow: () => Promise<boolean>;
|
|
1209
|
+
validationErrors: vue.Ref<{
|
|
1210
|
+
field: string;
|
|
1211
|
+
message: string;
|
|
1212
|
+
}[], RowValidationError[] | {
|
|
1213
|
+
field: string;
|
|
1214
|
+
message: string;
|
|
1215
|
+
}[]>;
|
|
1216
|
+
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1217
|
+
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1218
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1219
|
+
};
|
|
1220
|
+
//#endregion
|
|
1221
|
+
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
1222
|
+
/**
|
|
1223
|
+
* 表格管理器配置接口
|
|
1224
|
+
*/
|
|
1225
|
+
interface TableManagerConfig {
|
|
1226
|
+
feedback?: ComponentFeedback;
|
|
1227
|
+
locale?: ComponentLocale;
|
|
1228
|
+
editable: boolean;
|
|
1229
|
+
editMode: string;
|
|
1230
|
+
showRowActions: boolean;
|
|
1231
|
+
modalTitle: string;
|
|
1232
|
+
modalWidth: number;
|
|
1233
|
+
onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => void | Promise<void>;
|
|
1234
|
+
onEditCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
1235
|
+
onEditError?: (error: unknown) => void;
|
|
1236
|
+
expandable: boolean;
|
|
1237
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
1238
|
+
onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
|
|
1239
|
+
onExpandError?: (error: unknown, row: DataRecord) => void;
|
|
1240
|
+
renderExpandContent?: unknown;
|
|
1241
|
+
rowExpandable?: (row: DataRecord) => boolean;
|
|
1242
|
+
enableSelection: boolean;
|
|
1243
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
1244
|
+
rowCheckable?: (row: DataRecord) => boolean;
|
|
1245
|
+
maxSelection?: number;
|
|
1246
|
+
enableChildSelection: boolean;
|
|
1247
|
+
childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
|
|
1248
|
+
enableParentChildLink: boolean;
|
|
1249
|
+
parentChildLinkMode: ParentChildLinkMode;
|
|
1250
|
+
dynamicRows?: DynamicRowsOptions<DataRecord>;
|
|
1251
|
+
}
|
|
1252
|
+
/**
|
|
1253
|
+
* 表格管理器参数接口
|
|
1254
|
+
*/
|
|
1255
|
+
interface TableManagerParams {
|
|
1256
|
+
config: MaybeRefOrGetter<TableManagerConfig>;
|
|
1257
|
+
data: () => DataRecord[];
|
|
1258
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1259
|
+
emit: (...args: any[]) => unknown;
|
|
1260
|
+
/** 列配置(用于编辑校验) */
|
|
1261
|
+
columns?: () => TableColumn[];
|
|
1262
|
+
}
|
|
1263
|
+
/**
|
|
1264
|
+
* 事件处理器接口
|
|
1265
|
+
*/
|
|
1266
|
+
interface EventHandlers {
|
|
1267
|
+
onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string) => Promise<void>;
|
|
1268
|
+
onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
|
|
1269
|
+
onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
|
|
1270
|
+
onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
1271
|
+
onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
|
|
1272
|
+
onRowChange: (data: DataRecord[]) => void;
|
|
1273
|
+
onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
|
|
1274
|
+
onRowAdd: (newRow: DataRecord) => void;
|
|
1275
|
+
onRowDelete: (deletedRow: DataRecord, index: number) => void;
|
|
1276
|
+
onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
|
|
1277
|
+
onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
|
|
1278
|
+
}
|
|
1279
|
+
/**
|
|
1280
|
+
* 表格统一状态管理器
|
|
1281
|
+
*/
|
|
1282
|
+
declare function useTableManager(params: TableManagerParams): {
|
|
1283
|
+
editStates: {
|
|
1284
|
+
rowEdit: {
|
|
1285
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1286
|
+
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1287
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1288
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1289
|
+
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1290
|
+
cancelEditRow: () => Promise<void>;
|
|
1291
|
+
saveEditRow: () => Promise<{
|
|
1292
|
+
updatedData: DataRecord;
|
|
1293
|
+
rowIndex: number;
|
|
1294
|
+
} | undefined>;
|
|
1295
|
+
validateRow: () => Promise<boolean>;
|
|
1296
|
+
validationErrors: vue.Ref<{
|
|
1297
|
+
field: string;
|
|
1298
|
+
message: string;
|
|
1299
|
+
}[], RowValidationError[] | {
|
|
1300
|
+
field: string;
|
|
1301
|
+
message: string;
|
|
1302
|
+
}[]>;
|
|
1303
|
+
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1304
|
+
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1305
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1306
|
+
};
|
|
1307
|
+
cellEdit: {
|
|
1308
|
+
editingCell: vue.Ref<{
|
|
1309
|
+
rowKey: DataTableRowKey | null;
|
|
1310
|
+
columnKey: string | null;
|
|
1311
|
+
}, {
|
|
1312
|
+
rowKey: DataTableRowKey | null;
|
|
1313
|
+
columnKey: string | null;
|
|
1314
|
+
} | {
|
|
1315
|
+
rowKey: DataTableRowKey | null;
|
|
1316
|
+
columnKey: string | null;
|
|
1317
|
+
}>;
|
|
1318
|
+
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
1319
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1320
|
+
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1321
|
+
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1322
|
+
saveEditCell: () => Promise<{
|
|
1323
|
+
updatedData: {
|
|
1324
|
+
[x: string]: unknown;
|
|
1325
|
+
};
|
|
1326
|
+
rowIndex: number;
|
|
1327
|
+
columnKey: string;
|
|
1328
|
+
} | undefined>;
|
|
1329
|
+
cancelEditCell: () => void;
|
|
1330
|
+
validateCell: () => Promise<boolean>;
|
|
1331
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1332
|
+
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1333
|
+
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1334
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1335
|
+
};
|
|
1336
|
+
modalEdit: {
|
|
1337
|
+
isModalVisible: vue.Ref<boolean, boolean>;
|
|
1338
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1339
|
+
editingData: vue.Ref<DataRecord, DataRecord>;
|
|
1340
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1341
|
+
editingRowIndex: vue.ComputedRef<number>;
|
|
1342
|
+
startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
|
|
1343
|
+
saveEdit: (formData?: DataRecord | undefined) => Promise<{
|
|
1344
|
+
updatedData: any;
|
|
1345
|
+
rowIndex: number;
|
|
1346
|
+
} | undefined>;
|
|
1347
|
+
cancelEdit: () => Promise<boolean>;
|
|
1348
|
+
updateEditingData: (data: DataRecord) => boolean;
|
|
1349
|
+
resetEditingState: () => boolean;
|
|
1350
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1351
|
+
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
1352
|
+
};
|
|
1353
|
+
};
|
|
1354
|
+
expandState: UseTableExpandReturn<DataRecord, DataRecord>;
|
|
1355
|
+
dynamicRowsState: DynamicRowsReturn<DataRecord>;
|
|
1356
|
+
stateManager: {
|
|
1357
|
+
edit: {
|
|
1358
|
+
/** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
|
|
1359
|
+
cancel(): void; /** 保存编辑 */
|
|
1360
|
+
save(): Promise<void>; /** 是否正在编辑 */
|
|
1361
|
+
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
|
|
1362
|
+
getEditingData(): DataRecord | null | undefined;
|
|
1363
|
+
};
|
|
1364
|
+
expand: {
|
|
1365
|
+
/** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
|
|
1366
|
+
collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
|
|
1367
|
+
toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
|
|
1368
|
+
all(): Promise<void>; /** 折叠所有行 */
|
|
1369
|
+
collapseAll(): void; /** 检查行是否已展开 */
|
|
1370
|
+
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
1371
|
+
};
|
|
1372
|
+
selection: {
|
|
1373
|
+
/** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
|
|
1374
|
+
unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
|
|
1375
|
+
all(): void; /** 清除所有行选择 */
|
|
1376
|
+
clear(): void; /** 检查行是否已选择 */
|
|
1377
|
+
isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
|
|
1378
|
+
getSelected(): DataRecord[];
|
|
1379
|
+
};
|
|
1380
|
+
childSelection: {
|
|
1381
|
+
/** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
|
|
1382
|
+
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
|
|
1383
|
+
selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
|
|
1384
|
+
clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
|
|
1385
|
+
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
1386
|
+
};
|
|
1387
|
+
dynamicRows: {
|
|
1388
|
+
/** 添加行 */add(): void; /** 插入行 */
|
|
1389
|
+
insert(): void; /** 删除行 */
|
|
1390
|
+
delete(): void; /** 复制行 */
|
|
1391
|
+
copy(): void; /** 上移动态行 */
|
|
1392
|
+
moveUp(): void; /** 下移动态行 */
|
|
1393
|
+
moveDown(): void; /** 清空动态行数据 */
|
|
1394
|
+
clearSelection(): void; /** 获取当前选中的动态行数据 */
|
|
1395
|
+
getSelected(): DataRecord | null; /** 打印表格 */
|
|
1396
|
+
print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
|
|
1397
|
+
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
1398
|
+
}; /** 清除所有选择 */
|
|
1399
|
+
clearAllSelections(): void;
|
|
1400
|
+
};
|
|
1401
|
+
expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1402
|
+
checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1403
|
+
eventHandlers: EventHandlers;
|
|
1404
|
+
};
|
|
1405
|
+
//#endregion
|
|
1406
|
+
//#region src/components/C_Table/composables/useTableExpand.d.ts
|
|
1407
|
+
/**
|
|
1408
|
+
*
|
|
1409
|
+
*/
|
|
1410
|
+
declare function useTableExpand<T extends object = DataRecord, C = DataRecord>(options: UseTableExpandOptions<T, C>): UseTableExpandReturn<T, C>;
|
|
1411
|
+
//#endregion
|
|
1412
|
+
//#region src/components/C_Table/composables/useTableActions.d.ts
|
|
1413
|
+
/**
|
|
1414
|
+
* 表格操作Hook
|
|
1415
|
+
*/
|
|
1416
|
+
declare function useTableActions<T extends object = DataRecord>(options: UseTableActionsOptions<T>): UseTableActionsReturn<T>;
|
|
1417
|
+
//#endregion
|
|
1418
|
+
//#region src/components/C_Table/composables/usePagination.d.ts
|
|
1419
|
+
interface UsePaginationOptions<T extends object = DataRecord> {
|
|
1420
|
+
/** 数据源 - 支持函数、Ref 或 ComputedRef */
|
|
1421
|
+
data: (() => T[]) | Ref<T[]> | ComputedRef<T[]>;
|
|
1422
|
+
/** 分页配置 */
|
|
1423
|
+
config: Ref<PaginationConfig | null> | ComputedRef<PaginationConfig | null>;
|
|
1424
|
+
/** 事件触发器 */
|
|
1425
|
+
emit?: (event: 'pagination-change', page: number, pageSize: number) => void;
|
|
1426
|
+
}
|
|
1427
|
+
interface UsePaginationReturn<T extends object = DataRecord> {
|
|
1428
|
+
currentPage: Ref<number>;
|
|
1429
|
+
currentPageSize: Ref<number>;
|
|
1430
|
+
paginatedData: ComputedRef<T[]>;
|
|
1431
|
+
paginationConfig: ComputedRef<PaginationProps | null>;
|
|
1432
|
+
handlePageChange: (page: number) => void;
|
|
1433
|
+
handlePageSizeChange: (pageSize: number) => void;
|
|
1434
|
+
resetToFirstPage: () => void;
|
|
1435
|
+
getTotalPages: () => number;
|
|
1436
|
+
}
|
|
1437
|
+
/** Local and remote pagination with stable controlled-state synchronization. */
|
|
1438
|
+
declare function usePagination<T extends object = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
|
|
1439
|
+
//#endregion
|
|
1440
|
+
//#region src/components/C_Table/composables/useCellEdit.d.ts
|
|
1441
|
+
/**
|
|
1442
|
+
* 单元格编辑配置选项
|
|
1443
|
+
*/
|
|
1444
|
+
interface CellEditOptions {
|
|
1445
|
+
data: () => DataRecord[];
|
|
1446
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1447
|
+
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
|
|
1448
|
+
/** 列配置(用于提取校验规则) */
|
|
1449
|
+
columns?: () => TableColumn[];
|
|
1450
|
+
}
|
|
1451
|
+
/**
|
|
1452
|
+
* 可编辑单元格组合函数,提供表格单元格的编辑功能
|
|
1453
|
+
*/
|
|
1454
|
+
declare function useCellEdit(options: CellEditOptions): {
|
|
1455
|
+
editingCell: vue.Ref<{
|
|
1456
|
+
rowKey: DataTableRowKey | null;
|
|
1457
|
+
columnKey: string | null;
|
|
1458
|
+
}, {
|
|
1459
|
+
rowKey: DataTableRowKey | null;
|
|
1460
|
+
columnKey: string | null;
|
|
1461
|
+
} | {
|
|
1462
|
+
rowKey: DataTableRowKey | null;
|
|
1463
|
+
columnKey: string | null;
|
|
1464
|
+
}>;
|
|
1465
|
+
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
1466
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1467
|
+
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1468
|
+
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1469
|
+
saveEditCell: () => Promise<{
|
|
1470
|
+
updatedData: {
|
|
1471
|
+
[x: string]: unknown;
|
|
1472
|
+
};
|
|
1473
|
+
rowIndex: number;
|
|
1474
|
+
columnKey: string;
|
|
1475
|
+
} | undefined>;
|
|
1476
|
+
cancelEditCell: () => void;
|
|
1477
|
+
validateCell: () => Promise<boolean>;
|
|
1478
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1479
|
+
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1480
|
+
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1481
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1482
|
+
};
|
|
1483
|
+
//#endregion
|
|
1484
|
+
//#region src/components/C_Table/composables/useModalEdit.d.ts
|
|
1485
|
+
interface ModalEditOptions<T extends object = DataRecord> {
|
|
1486
|
+
data: () => T[];
|
|
1487
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
1488
|
+
onSave?: (editingData: T, rowIndex: number) => void | Promise<void>;
|
|
1489
|
+
onCancel?: (originalData: T, rowIndex: number) => void | Promise<void>;
|
|
1490
|
+
}
|
|
1491
|
+
/** Modal edit state with lossless snapshots and retry-safe async saves. */
|
|
1492
|
+
declare function useModalEdit<T extends object = DataRecord>(options: ModalEditOptions<T>): {
|
|
1493
|
+
isModalVisible: vue.Ref<boolean, boolean>;
|
|
1494
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1495
|
+
editingData: [T] extends [vue.Ref<any, any>] ? _vue_shared0.IfAny<T, vue.Ref<T, T>, T> : vue.Ref<vue.UnwrapRef<T>, T | vue.UnwrapRef<T>>;
|
|
1496
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1497
|
+
editingRowIndex: vue.ComputedRef<number>;
|
|
1498
|
+
startEdit: (rowKey: DataTableRowKey, sourceData?: T) => boolean;
|
|
1499
|
+
saveEdit: (formData?: T) => Promise<{
|
|
1500
|
+
updatedData: any;
|
|
1501
|
+
rowIndex: number;
|
|
1502
|
+
} | undefined>;
|
|
1503
|
+
cancelEdit: () => Promise<boolean>;
|
|
1504
|
+
updateEditingData: (data: T) => boolean;
|
|
1505
|
+
resetEditingState: () => boolean;
|
|
1506
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1507
|
+
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
1508
|
+
};
|
|
1509
|
+
//#endregion
|
|
1510
|
+
//#region src/plugins/highlight.d.ts
|
|
1511
|
+
interface HighlightPluginOptions {
|
|
1512
|
+
autoDetect?: boolean;
|
|
1513
|
+
extraLanguages?: string[];
|
|
1514
|
+
/** Enable lifecycle diagnostics through the supplied logger. */
|
|
1515
|
+
debug?: boolean;
|
|
1516
|
+
logger?: Pick<Console, 'info' | 'warn' | 'error'>;
|
|
1517
|
+
onError?: (error: unknown, context: {
|
|
1518
|
+
source: 'language-loader';
|
|
1519
|
+
language: string;
|
|
1520
|
+
}) => void;
|
|
1521
|
+
}
|
|
1522
|
+
/**
|
|
1523
|
+
* * @description 获取 highlight 功能的 API 接口
|
|
1524
|
+
* ! @return highlight API 对象,包含所有可用方法
|
|
1525
|
+
*/
|
|
1526
|
+
declare const useHighlight: (options?: HighlightPluginOptions) => {
|
|
1527
|
+
getHljs: () => HLJSApi;
|
|
1528
|
+
loadLanguage: (language: string) => Promise<boolean>;
|
|
1529
|
+
loadLanguages: (languages: string[]) => Promise<string[]>;
|
|
1530
|
+
getLoadedLanguages: () => string[];
|
|
1531
|
+
};
|
|
1532
|
+
/**
|
|
1533
|
+
* * @description 安装 highlight.js 插件到 Vue 应用
|
|
1534
|
+
* ? @param app - Vue 应用实例
|
|
1535
|
+
* ? @param options - 插件配置选项
|
|
1536
|
+
* ! @return void
|
|
1537
|
+
*/
|
|
1538
|
+
declare function setupHighlight(app: App, options?: HighlightPluginOptions): void;
|
|
1539
|
+
declare global {
|
|
1540
|
+
interface Window {
|
|
1541
|
+
hljs: HLJSApi;
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
//#endregion
|
|
1545
|
+
//#region src/utils/storage.d.ts
|
|
1546
|
+
/** SSR-safe localStorage helpers. Storage failures never break component state. */
|
|
1547
|
+
/** Store a value. Returns false when storage is unavailable or full. */
|
|
1548
|
+
declare function setItem<T>(key: string, value: T): boolean;
|
|
1549
|
+
/** Read and safely deserialize a value. */
|
|
1550
|
+
declare function getItem<T = unknown>(key: string): T | null;
|
|
1551
|
+
/** Remove one value. Returns whether the storage operation was available. */
|
|
1552
|
+
declare function removeItem(key: string): boolean;
|
|
1553
|
+
/**
|
|
1554
|
+
* Clear localStorage for backward compatibility.
|
|
1555
|
+
* Prefer `removeItem` in components so unrelated application data is preserved.
|
|
1556
|
+
*/
|
|
1557
|
+
declare function removeAllItem(): boolean;
|
|
1558
|
+
//#endregion
|
|
1559
|
+
//#region src/components/C_Table/composables/useTableQuery.d.ts
|
|
1560
|
+
interface TableQueryContext<Q> {
|
|
1561
|
+
page: number;
|
|
1562
|
+
pageSize: number;
|
|
1563
|
+
query: Readonly<Q>;
|
|
1564
|
+
signal: AbortSignal;
|
|
1565
|
+
}
|
|
1566
|
+
interface TableQueryResult<T extends object> {
|
|
1567
|
+
data: readonly T[];
|
|
1568
|
+
total: number;
|
|
1569
|
+
}
|
|
1570
|
+
interface UseTableQueryOptions<T extends object, Q extends object> {
|
|
1571
|
+
request: (context: TableQueryContext<Q>) => Promise<TableQueryResult<T>>;
|
|
1572
|
+
initialQuery: Q;
|
|
1573
|
+
columns?: MaybeRefOrGetter<TableColumn<T>[] | undefined>;
|
|
1574
|
+
config?: MaybeRefOrGetter<TableConfig<T> | undefined>;
|
|
1575
|
+
rowKey?: TableRowKey<T>;
|
|
1576
|
+
initialPage?: number;
|
|
1577
|
+
pageSize?: number;
|
|
1578
|
+
immediate?: boolean;
|
|
1579
|
+
onError?: (error: unknown) => void;
|
|
1580
|
+
onSuccess?: (result: TableQueryResult<T>) => void;
|
|
1581
|
+
}
|
|
1582
|
+
/**
|
|
1583
|
+
* Remote table controller with latest-request-wins cancellation and ready-to-bind props.
|
|
1584
|
+
*/
|
|
1585
|
+
declare function useTableQuery<T extends object, Q extends object = Record<string, unknown>>(options: UseTableQueryOptions<T, Q>): {
|
|
1586
|
+
data: vue.ShallowRef<T[], T[]>;
|
|
1587
|
+
loading: vue.Ref<boolean, boolean>;
|
|
1588
|
+
error: vue.ShallowRef<unknown, unknown>;
|
|
1589
|
+
total: vue.Ref<number, number>;
|
|
1590
|
+
page: vue.Ref<number, number>;
|
|
1591
|
+
pageSize: vue.Ref<number, number>;
|
|
1592
|
+
query: vue.Ref<any, any> extends Q ? Q extends Q & vue.Ref<any, any> ? _vue_shared0.IfAny<Q, vue.ShallowRef<Q, Q>, Q> : vue.ShallowRef<Q, Q> : vue.ShallowRef<Q, Q>;
|
|
1593
|
+
tableProps: vue.ComputedRef<{
|
|
1594
|
+
data: T[];
|
|
1595
|
+
loading: boolean;
|
|
1596
|
+
columns: TableColumn<T>[] | undefined;
|
|
1597
|
+
rowKey: TableRowKey<T>;
|
|
1598
|
+
config: {
|
|
1599
|
+
pagination: {
|
|
1600
|
+
enabled: true;
|
|
1601
|
+
remote: true;
|
|
1602
|
+
page: number;
|
|
1603
|
+
pageSize: number;
|
|
1604
|
+
total: number;
|
|
1605
|
+
showSizePicker?: boolean;
|
|
1606
|
+
showQuickJumper?: boolean;
|
|
1607
|
+
pageSizes?: number[];
|
|
1608
|
+
simple?: boolean;
|
|
1609
|
+
size?: "small" | "medium" | "large";
|
|
1610
|
+
};
|
|
1611
|
+
feedback?: ComponentFeedback;
|
|
1612
|
+
locale?: ComponentLocale;
|
|
1613
|
+
validateRowKeys?: boolean;
|
|
1614
|
+
edit?: boolean | EditConfig<T> | undefined;
|
|
1615
|
+
actions?: SimpleTableActions<T> | undefined;
|
|
1616
|
+
expand?: boolean | ExpandConfig$1<T> | undefined;
|
|
1617
|
+
selection?: boolean | SelectionConfig$1<T> | undefined;
|
|
1618
|
+
dynamicRows?: boolean | DynamicRowsOptions<T> | undefined;
|
|
1619
|
+
toolbar?: ToolbarConfig;
|
|
1620
|
+
display?: DisplayConfig;
|
|
1621
|
+
virtualScroll?: VirtualScrollConfig | boolean;
|
|
1622
|
+
summary?: SummaryConfig<T> | undefined;
|
|
1623
|
+
columnDrag?: ColumnDragConfig | boolean;
|
|
1624
|
+
tree?: TreeConfig | boolean;
|
|
1625
|
+
rowDrag?: RowDragConfig | boolean;
|
|
1626
|
+
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
1627
|
+
export?: ExportConfig;
|
|
1628
|
+
persistKey?: string;
|
|
1629
|
+
formatterConfig?: FormatterConfig;
|
|
1630
|
+
error?: ErrorConfig;
|
|
1631
|
+
batchActions?: BatchActionsConfig<T> | undefined;
|
|
1632
|
+
};
|
|
1633
|
+
}>;
|
|
1634
|
+
execute: () => Promise<boolean>;
|
|
1635
|
+
reload: () => Promise<boolean>;
|
|
1636
|
+
setQuery: (next: Partial<Q> | ((current: Readonly<Q>) => Q), reload?: boolean) => Promise<boolean>;
|
|
1637
|
+
resetQuery: (reload?: boolean) => Promise<boolean>;
|
|
1638
|
+
handlePaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
|
|
1639
|
+
bindings: vue.ComputedRef<{
|
|
1640
|
+
onPaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
|
|
1641
|
+
data: T[];
|
|
1642
|
+
loading: boolean;
|
|
1643
|
+
columns: TableColumn<T>[] | undefined;
|
|
1644
|
+
rowKey: TableRowKey<T>;
|
|
1645
|
+
config: {
|
|
1646
|
+
pagination: {
|
|
1647
|
+
enabled: true;
|
|
1648
|
+
remote: true;
|
|
1649
|
+
page: number;
|
|
1650
|
+
pageSize: number;
|
|
1651
|
+
total: number;
|
|
1652
|
+
showSizePicker?: boolean;
|
|
1653
|
+
showQuickJumper?: boolean;
|
|
1654
|
+
pageSizes?: number[];
|
|
1655
|
+
simple?: boolean;
|
|
1656
|
+
size?: "small" | "medium" | "large";
|
|
1657
|
+
};
|
|
1658
|
+
feedback?: ComponentFeedback;
|
|
1659
|
+
locale?: ComponentLocale;
|
|
1660
|
+
validateRowKeys?: boolean;
|
|
1661
|
+
edit?: boolean | EditConfig<T> | undefined;
|
|
1662
|
+
actions?: SimpleTableActions<T> | undefined;
|
|
1663
|
+
expand?: boolean | ExpandConfig$1<T> | undefined;
|
|
1664
|
+
selection?: boolean | SelectionConfig$1<T> | undefined;
|
|
1665
|
+
dynamicRows?: boolean | DynamicRowsOptions<T> | undefined;
|
|
1666
|
+
toolbar?: ToolbarConfig;
|
|
1667
|
+
display?: DisplayConfig;
|
|
1668
|
+
virtualScroll?: VirtualScrollConfig | boolean;
|
|
1669
|
+
summary?: SummaryConfig<T> | undefined;
|
|
1670
|
+
columnDrag?: ColumnDragConfig | boolean;
|
|
1671
|
+
tree?: TreeConfig | boolean;
|
|
1672
|
+
rowDrag?: RowDragConfig | boolean;
|
|
1673
|
+
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
1674
|
+
export?: ExportConfig;
|
|
1675
|
+
persistKey?: string;
|
|
1676
|
+
formatterConfig?: FormatterConfig;
|
|
1677
|
+
error?: ErrorConfig;
|
|
1678
|
+
batchActions?: BatchActionsConfig<T> | undefined;
|
|
1679
|
+
};
|
|
1680
|
+
}>;
|
|
1681
|
+
cancel: () => void;
|
|
1682
|
+
};
|
|
1683
|
+
//#endregion
|
|
1684
|
+
export { applyFormatter as $, EditMode as A, PrintWatermarkOptions as At, TableColumn as B, _default as C, RowDragConfig as Ct, ColumnWithKey as D, DynamicRowsOptions as Dt, ChildSelectionState as E, useRowDrag as Et, RenderFunction as F, TableRowKeyIssue as G, TableInstance as H, RowAction as I, ColumnFormatter as J, UseTableExpandOptions as K, SelectOption as L, NormalTableColumn as M, usePrintWatermark as Mt, PaginationConfig as N, CustomAction as O, DynamicRowsReturn as Ot, ParentChildLinkMode as P, TableGlobalConfig as Q, SimpleTableActions as R, validateTableRowKeys as S, useCrossPageSelection as St, BuiltInTableColumn as T, UseRowDragReturn as Tt, TableProps as U, TableEmits as V, TableRowKey as W, FormatterType as X, FormatterConfig as Y, TABLE_GLOBAL_CONFIG_KEY as Z, useTableManager as _, ExportConfig as _t, getItem as a, DisplayConfig as at, defineTableColumns as b, UseCrossPageSelectionOptions as bt, setItem as c, ExpandConfig$1 as ct, useHighlight as d, TableConfig as dt, mergeGlobalConfig as et, useModalEdit as f, ToolbarConfig as ft, useTableExpand as g, resolveConfig as gt, useTableActions as h, createEditModeChecker as ht, useTableQuery as i, CrudBinding as it, MaybeRefLike as j, printPresets as jt, DataRecord as k, useDynamicRows as kt, HighlightPluginOptions as l, SelectionConfig$1 as lt, usePagination as m, VirtualScrollConfig as mt, TableQueryResult as n, BatchActionsConfig as nt, removeAllItem as o, EditConfig as ot, useCellEdit as p, TreeConfig as pt, UseTableExpandReturn as q, UseTableQueryOptions as r, ColumnDragConfig as rt, removeItem as s, ErrorConfig as st, TableQueryContext as t, useTableGlobalConfig as tt, setupHighlight as u, SummaryConfig as ut, useRowEdit as v, exportTableData as vt, ApiFunction as w, UseRowDragOptions as wt, defineTableConfig as x, UseCrossPageSelectionReturn as xt, useTableColumns as y, CrossPageSelectionConfig as yt, StrictTableColumn as z };
|