@robot-admin/naive-ui-components 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/README.md +257 -0
  2. package/dist/C_ActionBar-DWN-woTc.css.map +1 -0
  3. package/dist/C_ActionBar.cjs +5 -0
  4. package/dist/C_ActionBar.d.cts +2 -0
  5. package/dist/C_ActionBar.d.ts +2 -0
  6. package/dist/C_ActionBar.js +4 -0
  7. package/dist/C_ActionBar2.js +196 -0
  8. package/dist/C_ActionBar2.js.map +1 -0
  9. package/dist/C_AntV-AFKyK6hH.css.map +1 -0
  10. package/dist/C_AntV.cjs +8 -0
  11. package/dist/C_AntV.d.cts +2 -0
  12. package/dist/C_AntV.d.ts +2 -0
  13. package/dist/C_AntV.js +4 -0
  14. package/dist/C_AntV2.js +3150 -0
  15. package/dist/C_AntV2.js.map +1 -0
  16. package/dist/C_Barcode-P_EFj8dC.css.map +1 -0
  17. package/dist/C_Barcode.cjs +4 -0
  18. package/dist/C_Barcode.d.cts +2 -0
  19. package/dist/C_Barcode.d.ts +2 -0
  20. package/dist/C_Barcode.js +3 -0
  21. package/dist/C_Barcode2.js +68 -0
  22. package/dist/C_Barcode2.js.map +1 -0
  23. package/dist/C_Captcha-C-ef41xw.css.map +1 -0
  24. package/dist/C_Captcha.cjs +4 -0
  25. package/dist/C_Captcha.d.cts +2 -0
  26. package/dist/C_Captcha.d.ts +2 -0
  27. package/dist/C_Captcha.js +3 -0
  28. package/dist/C_Captcha2.js +155 -0
  29. package/dist/C_Captcha2.js.map +1 -0
  30. package/dist/C_Cascade-D9kNsjsV.css.map +1 -0
  31. package/dist/C_Cascade.cjs +4 -0
  32. package/dist/C_Cascade.d.cts +2 -0
  33. package/dist/C_Cascade.d.ts +2 -0
  34. package/dist/C_Cascade.js +3 -0
  35. package/dist/C_Cascade2.js +103 -0
  36. package/dist/C_Cascade2.js.map +1 -0
  37. package/dist/C_City-BCQ4ipiK.css.map +1 -0
  38. package/dist/C_City.cjs +4 -0
  39. package/dist/C_City.d.cts +2 -0
  40. package/dist/C_City.d.ts +2 -0
  41. package/dist/C_City.js +3 -0
  42. package/dist/C_City2.js +841 -0
  43. package/dist/C_City2.js.map +1 -0
  44. package/dist/C_Code-C9kvvEmO.css.map +1 -0
  45. package/dist/C_Code.cjs +5 -0
  46. package/dist/C_Code.d.cts +2 -0
  47. package/dist/C_Code.d.ts +2 -0
  48. package/dist/C_Code.js +4 -0
  49. package/dist/C_Code2.js +346 -0
  50. package/dist/C_Code2.js.map +1 -0
  51. package/dist/C_CollapsePanel-BUJHuYcU.css.map +1 -0
  52. package/dist/C_CollapsePanel.cjs +6 -0
  53. package/dist/C_CollapsePanel.d.cts +2 -0
  54. package/dist/C_CollapsePanel.d.ts +2 -0
  55. package/dist/C_CollapsePanel.js +4 -0
  56. package/dist/C_CollapsePanel2.js +319 -0
  57. package/dist/C_CollapsePanel2.js.map +1 -0
  58. package/dist/C_Cron-yx2Ob4Jl.css.map +1 -0
  59. package/dist/C_Cron.cjs +15 -0
  60. package/dist/C_Cron.d.cts +2 -0
  61. package/dist/C_Cron.d.ts +2 -0
  62. package/dist/C_Cron.js +4 -0
  63. package/dist/C_Cron2.js +1209 -0
  64. package/dist/C_Cron2.js.map +1 -0
  65. package/dist/C_Date.cjs +4 -0
  66. package/dist/C_Date.d.cts +2 -0
  67. package/dist/C_Date.d.ts +2 -0
  68. package/dist/C_Date.js +3 -0
  69. package/dist/C_Date2.js +219 -0
  70. package/dist/C_Date2.js.map +1 -0
  71. package/dist/C_Draggable-C483syRC.css.map +1 -0
  72. package/dist/C_Draggable.cjs +5 -0
  73. package/dist/C_Draggable.d.cts +2 -0
  74. package/dist/C_Draggable.d.ts +2 -0
  75. package/dist/C_Draggable.js +3 -0
  76. package/dist/C_Draggable2.js +295 -0
  77. package/dist/C_Draggable2.js.map +1 -0
  78. package/dist/C_Editor-Bp0SyIEw.css.map +1 -0
  79. package/dist/C_Editor.cjs +4 -0
  80. package/dist/C_Editor.d.cts +2 -0
  81. package/dist/C_Editor.d.ts +2 -0
  82. package/dist/C_Editor.js +3 -0
  83. package/dist/C_Editor2.js +160 -0
  84. package/dist/C_Editor2.js.map +1 -0
  85. package/dist/C_FilePreview-CPqvhoCy.css.map +1 -0
  86. package/dist/C_FilePreview.cjs +6 -0
  87. package/dist/C_FilePreview.d.cts +2 -0
  88. package/dist/C_FilePreview.d.ts +2 -0
  89. package/dist/C_FilePreview.js +3 -0
  90. package/dist/C_FilePreview2.js +1031 -0
  91. package/dist/C_FilePreview2.js.map +1 -0
  92. package/dist/C_Form-Jx7PY3sT.css.map +1 -0
  93. package/dist/C_Form.cjs +15 -0
  94. package/dist/C_Form.d.cts +2 -0
  95. package/dist/C_Form.d.ts +2 -0
  96. package/dist/C_Form.js +4 -0
  97. package/dist/C_Form2.js +2510 -0
  98. package/dist/C_Form2.js.map +1 -0
  99. package/dist/C_FormSearch-DvRgxlRn.css.map +1 -0
  100. package/dist/C_FormSearch.cjs +6 -0
  101. package/dist/C_FormSearch.d.cts +2 -0
  102. package/dist/C_FormSearch.d.ts +2 -0
  103. package/dist/C_FormSearch.js +3 -0
  104. package/dist/C_FormSearch2.js +356 -0
  105. package/dist/C_FormSearch2.js.map +1 -0
  106. package/dist/C_FormulaEditor-DtGkt4T_.css.map +1 -0
  107. package/dist/C_FormulaEditor.cjs +13 -0
  108. package/dist/C_FormulaEditor.d.cts +2 -0
  109. package/dist/C_FormulaEditor.d.ts +2 -0
  110. package/dist/C_FormulaEditor.js +4 -0
  111. package/dist/C_FormulaEditor2.js +1433 -0
  112. package/dist/C_FormulaEditor2.js.map +1 -0
  113. package/dist/C_FullCalendar-BF7H0YIx.css.map +1 -0
  114. package/dist/C_FullCalendar.cjs +9 -0
  115. package/dist/C_FullCalendar.d.cts +2 -0
  116. package/dist/C_FullCalendar.d.ts +2 -0
  117. package/dist/C_FullCalendar.js +3 -0
  118. package/dist/C_FullCalendar2.js +377 -0
  119. package/dist/C_FullCalendar2.js.map +1 -0
  120. package/dist/C_Guide.cjs +4 -0
  121. package/dist/C_Guide.d.cts +2 -0
  122. package/dist/C_Guide.d.ts +2 -0
  123. package/dist/C_Guide.js +3 -0
  124. package/dist/C_Guide2.js +58 -0
  125. package/dist/C_Guide2.js.map +1 -0
  126. package/dist/C_Icon.cjs +4 -0
  127. package/dist/C_Icon.d.cts +2 -0
  128. package/dist/C_Icon.d.ts +2 -0
  129. package/dist/C_Icon.js +3 -0
  130. package/dist/C_Icon2.js +286 -0
  131. package/dist/C_Icon2.js.map +1 -0
  132. package/dist/C_ImageCropper-BVJfUufl.css.map +1 -0
  133. package/dist/C_ImageCropper.cjs +6 -0
  134. package/dist/C_ImageCropper.d.cts +2 -0
  135. package/dist/C_ImageCropper.d.ts +2 -0
  136. package/dist/C_ImageCropper.js +4 -0
  137. package/dist/C_ImageCropper2.js +723 -0
  138. package/dist/C_ImageCropper2.js.map +1 -0
  139. package/dist/C_Language.cjs +4 -0
  140. package/dist/C_Language.d.cts +2 -0
  141. package/dist/C_Language.d.ts +2 -0
  142. package/dist/C_Language.js +3 -0
  143. package/dist/C_Language2.js +72 -0
  144. package/dist/C_Language2.js.map +1 -0
  145. package/dist/C_Map-DpzeuWdX.css.map +1 -0
  146. package/dist/C_Map.cjs +7 -0
  147. package/dist/C_Map.d.cts +2 -0
  148. package/dist/C_Map.d.ts +2 -0
  149. package/dist/C_Map.js +3 -0
  150. package/dist/C_Map2.js +199 -0
  151. package/dist/C_Map2.js.map +1 -0
  152. package/dist/C_Markdown-BEjxknqd.css.map +1 -0
  153. package/dist/C_Markdown.cjs +4 -0
  154. package/dist/C_Markdown.d.cts +2 -0
  155. package/dist/C_Markdown.d.ts +2 -0
  156. package/dist/C_Markdown.js +3 -0
  157. package/dist/C_Markdown2.js +186 -0
  158. package/dist/C_Markdown2.js.map +1 -0
  159. package/dist/C_NotificationCenter-0l3TY2Gn.css.map +1 -0
  160. package/dist/C_NotificationCenter.cjs +20 -0
  161. package/dist/C_NotificationCenter.d.cts +2 -0
  162. package/dist/C_NotificationCenter.d.ts +2 -0
  163. package/dist/C_NotificationCenter.js +4 -0
  164. package/dist/C_NotificationCenter2.js +1383 -0
  165. package/dist/C_NotificationCenter2.js.map +1 -0
  166. package/dist/C_Progress.cjs +4 -0
  167. package/dist/C_Progress.d.cts +2 -0
  168. package/dist/C_Progress.d.ts +2 -0
  169. package/dist/C_Progress.js +3 -0
  170. package/dist/C_Progress2.js +103 -0
  171. package/dist/C_Progress2.js.map +1 -0
  172. package/dist/C_QRCode-DbdiAIPg.css.map +1 -0
  173. package/dist/C_QRCode.cjs +5 -0
  174. package/dist/C_QRCode.d.cts +2 -0
  175. package/dist/C_QRCode.d.ts +2 -0
  176. package/dist/C_QRCode.js +3 -0
  177. package/dist/C_QRCode2.js +218 -0
  178. package/dist/C_QRCode2.js.map +1 -0
  179. package/dist/C_Signature-zhHCbra9.css.map +1 -0
  180. package/dist/C_Signature.cjs +8 -0
  181. package/dist/C_Signature.d.cts +2 -0
  182. package/dist/C_Signature.d.ts +2 -0
  183. package/dist/C_Signature.js +4 -0
  184. package/dist/C_Signature2.js +618 -0
  185. package/dist/C_Signature2.js.map +1 -0
  186. package/dist/C_SplitPane-C6sBsfKY.css.map +1 -0
  187. package/dist/C_SplitPane.cjs +6 -0
  188. package/dist/C_SplitPane.d.cts +2 -0
  189. package/dist/C_SplitPane.d.ts +2 -0
  190. package/dist/C_SplitPane.js +4 -0
  191. package/dist/C_SplitPane2.js +356 -0
  192. package/dist/C_SplitPane2.js.map +1 -0
  193. package/dist/C_Steps-CODHN5Hs.css.map +1 -0
  194. package/dist/C_Steps.cjs +4 -0
  195. package/dist/C_Steps.d.cts +2 -0
  196. package/dist/C_Steps.d.ts +2 -0
  197. package/dist/C_Steps.js +3 -0
  198. package/dist/C_Steps2.js +82 -0
  199. package/dist/C_Steps2.js.map +1 -0
  200. package/dist/C_Table-DSNsntmT.css.map +1 -0
  201. package/dist/C_Table.cjs +19 -0
  202. package/dist/C_Table.d.cts +2 -0
  203. package/dist/C_Table.d.ts +2 -0
  204. package/dist/C_Table.js +5 -0
  205. package/dist/C_Table2.js +3009 -0
  206. package/dist/C_Table2.js.map +1 -0
  207. package/dist/C_Theme.cjs +4 -0
  208. package/dist/C_Theme.d.cts +2 -0
  209. package/dist/C_Theme.d.ts +2 -0
  210. package/dist/C_Theme.js +3 -0
  211. package/dist/C_Theme2.js +60 -0
  212. package/dist/C_Theme2.js.map +1 -0
  213. package/dist/C_Time-BvZLYraL.css.map +1 -0
  214. package/dist/C_Time.cjs +5 -0
  215. package/dist/C_Time.d.cts +2 -0
  216. package/dist/C_Time.d.ts +2 -0
  217. package/dist/C_Time.js +3 -0
  218. package/dist/C_Time2.js +199 -0
  219. package/dist/C_Time2.js.map +1 -0
  220. package/dist/C_Tree-0GDv--jX.css.map +1 -0
  221. package/dist/C_Tree.cjs +7 -0
  222. package/dist/C_Tree.d.cts +2 -0
  223. package/dist/C_Tree.d.ts +2 -0
  224. package/dist/C_Tree.js +4 -0
  225. package/dist/C_Tree2.js +441 -0
  226. package/dist/C_Tree2.js.map +1 -0
  227. package/dist/C_Upload-BXd3YYLx.css.map +1 -0
  228. package/dist/C_Upload.cjs +12 -0
  229. package/dist/C_Upload.d.cts +2 -0
  230. package/dist/C_Upload.d.ts +2 -0
  231. package/dist/C_Upload.js +4 -0
  232. package/dist/C_Upload2.js +1388 -0
  233. package/dist/C_Upload2.js.map +1 -0
  234. package/dist/C_VideoPlayer-DYG3RL0Q.css.map +1 -0
  235. package/dist/C_VideoPlayer.cjs +23 -0
  236. package/dist/C_VideoPlayer.d.cts +2 -0
  237. package/dist/C_VideoPlayer.d.ts +2 -0
  238. package/dist/C_VideoPlayer.js +3 -0
  239. package/dist/C_VideoPlayer2.js +1932 -0
  240. package/dist/C_VideoPlayer2.js.map +1 -0
  241. package/dist/C_VtableGantt-fhItIiHE.css.map +1 -0
  242. package/dist/C_VtableGantt.cjs +6 -0
  243. package/dist/C_VtableGantt.d.cts +2 -0
  244. package/dist/C_VtableGantt.d.ts +2 -0
  245. package/dist/C_VtableGantt.js +4 -0
  246. package/dist/C_VtableGantt2.js +873 -0
  247. package/dist/C_VtableGantt2.js.map +1 -0
  248. package/dist/C_WaterFall-8sQDFXKg.css.map +1 -0
  249. package/dist/C_WaterFall.cjs +13 -0
  250. package/dist/C_WaterFall.d.cts +2 -0
  251. package/dist/C_WaterFall.d.ts +2 -0
  252. package/dist/C_WaterFall.js +3 -0
  253. package/dist/C_WaterFall2.js +365 -0
  254. package/dist/C_WaterFall2.js.map +1 -0
  255. package/dist/C_WorkFlow-J-dyIuh9.css.map +1 -0
  256. package/dist/C_WorkFlow.cjs +8 -0
  257. package/dist/C_WorkFlow.d.cts +2 -0
  258. package/dist/C_WorkFlow.d.ts +2 -0
  259. package/dist/C_WorkFlow.js +4 -0
  260. package/dist/C_WorkFlow2.js +1984 -0
  261. package/dist/C_WorkFlow2.js.map +1 -0
  262. package/dist/chunk.js +22 -0
  263. package/dist/city.js +4817 -0
  264. package/dist/city.js.map +1 -0
  265. package/dist/constants.d.ts +273 -0
  266. package/dist/constants.d.ts.map +1 -0
  267. package/dist/constants2.d.ts +178 -0
  268. package/dist/constants2.d.ts.map +1 -0
  269. package/dist/constants3.d.ts +475 -0
  270. package/dist/constants3.d.ts.map +1 -0
  271. package/dist/constants4.d.ts +430 -0
  272. package/dist/constants4.d.ts.map +1 -0
  273. package/dist/constants5.d.ts +4283 -0
  274. package/dist/constants5.d.ts.map +1 -0
  275. package/dist/data.d.ts +67 -0
  276. package/dist/data.d.ts.map +1 -0
  277. package/dist/export-helper.js +9 -0
  278. package/dist/index.cjs +409 -0
  279. package/dist/index.d.cts +96 -0
  280. package/dist/index.d.cts.map +1 -0
  281. package/dist/index.d.ts +103 -0
  282. package/dist/index.d.ts.map +1 -0
  283. package/dist/index.js +230 -0
  284. package/dist/index.js.map +1 -0
  285. package/dist/index.vue.d.ts +80 -0
  286. package/dist/index.vue.d.ts.map +1 -0
  287. package/dist/index10.vue.d.ts +72 -0
  288. package/dist/index10.vue.d.ts.map +1 -0
  289. package/dist/index11.vue.d.ts +26 -0
  290. package/dist/index11.vue.d.ts.map +1 -0
  291. package/dist/index12.vue.d.ts +81 -0
  292. package/dist/index12.vue.d.ts.map +1 -0
  293. package/dist/index13.vue.d.ts +55 -0
  294. package/dist/index13.vue.d.ts.map +1 -0
  295. package/dist/index14.vue.d.ts +33 -0
  296. package/dist/index14.vue.d.ts.map +1 -0
  297. package/dist/index15.vue.d.ts +18 -0
  298. package/dist/index15.vue.d.ts.map +1 -0
  299. package/dist/index16.vue.d.ts +662 -0
  300. package/dist/index16.vue.d.ts.map +1 -0
  301. package/dist/index2.vue.d.ts +38 -0
  302. package/dist/index2.vue.d.ts.map +1 -0
  303. package/dist/index3.vue.d.ts +45 -0
  304. package/dist/index3.vue.d.ts.map +1 -0
  305. package/dist/index4.vue.d.ts +31 -0
  306. package/dist/index4.vue.d.ts.map +1 -0
  307. package/dist/index5.vue.d.ts +35 -0
  308. package/dist/index5.vue.d.ts.map +1 -0
  309. package/dist/index6.vue.d.ts +48 -0
  310. package/dist/index6.vue.d.ts.map +1 -0
  311. package/dist/index7.vue.d.ts +56 -0
  312. package/dist/index7.vue.d.ts.map +1 -0
  313. package/dist/index8.vue.d.ts +41 -0
  314. package/dist/index8.vue.d.ts.map +1 -0
  315. package/dist/index9.vue.d.ts +30 -0
  316. package/dist/index9.vue.d.ts.map +1 -0
  317. package/dist/storage.js +31 -0
  318. package/dist/storage.js.map +1 -0
  319. package/dist/style.css +7725 -0
  320. package/dist/useCalendarEvents.d.ts +148 -0
  321. package/dist/useCalendarEvents.d.ts.map +1 -0
  322. package/dist/useCollapsePanel.d.ts +132 -0
  323. package/dist/useCollapsePanel.d.ts.map +1 -0
  324. package/dist/useCropperCore.d.ts +102 -0
  325. package/dist/useCropperCore.d.ts.map +1 -0
  326. package/dist/useDraggableLayout.d.ts +194 -0
  327. package/dist/useDraggableLayout.d.ts.map +1 -0
  328. package/dist/useDynamicFormState.d.ts +4248 -0
  329. package/dist/useDynamicFormState.d.ts.map +1 -0
  330. package/dist/useEdgeInteraction.d.ts +7614 -0
  331. package/dist/useEdgeInteraction.d.ts.map +1 -0
  332. package/dist/useFullscreen.d.ts +166 -0
  333. package/dist/useFullscreen.d.ts.map +1 -0
  334. package/dist/useInfiniteScroll.d.ts +169 -0
  335. package/dist/useInfiniteScroll.d.ts.map +1 -0
  336. package/dist/useModalEdit.d.ts +960 -0
  337. package/dist/useModalEdit.d.ts.map +1 -0
  338. package/dist/useQRCode.d.ts +87 -0
  339. package/dist/useQRCode.d.ts.map +1 -0
  340. package/dist/useSearchState.d.ts +180 -0
  341. package/dist/useSearchState.d.ts.map +1 -0
  342. package/dist/useSignatureHistory.d.ts +189 -0
  343. package/dist/useSignatureHistory.d.ts.map +1 -0
  344. package/dist/useSplitResize.d.ts +158 -0
  345. package/dist/useSplitResize.d.ts.map +1 -0
  346. package/dist/useTimeSelection.d.ts +105 -0
  347. package/dist/useTimeSelection.d.ts.map +1 -0
  348. package/dist/useTreeOperations.d.ts +183 -0
  349. package/dist/useTreeOperations.d.ts.map +1 -0
  350. package/dist/useWorkflowValidation.d.ts +1052 -0
  351. package/dist/useWorkflowValidation.d.ts.map +1 -0
  352. package/package.json +342 -0
@@ -0,0 +1,960 @@
1
+ import * as vue from "vue";
2
+ import { ComputedRef, MaybeRef, Ref, VNodeChild } from "vue";
3
+ import { DataTableColumns, DataTableRowKey } from "naive-ui";
4
+ import * as naive_ui_es0 from "naive-ui/es";
5
+ import { DataTableColumn, DataTableRowKey as DataTableRowKey$1 } from "naive-ui/es";
6
+ import { FormItemRule } from "naive-ui/es/form";
7
+
8
+ //#region src/components/C_Table/types.d.ts
9
+ type RefLike<T> = {
10
+ value: T;
11
+ } | T;
12
+ type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
13
+ type DataRecord = Record<string, unknown>;
14
+ type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
15
+ type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
16
+ type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
17
+ type ParentChildLinkMode = 'strict' | 'loose';
18
+ interface PaginationConfig {
19
+ enabled?: boolean;
20
+ page?: number;
21
+ pageSize?: number;
22
+ total?: number;
23
+ showSizePicker?: boolean;
24
+ showQuickJumper?: boolean;
25
+ pageSizes?: number[];
26
+ simple?: boolean;
27
+ size?: 'small' | 'medium' | 'large';
28
+ remote?: boolean;
29
+ }
30
+ /** API 函数类型 */
31
+ type ApiFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => Promise<any> | any;
32
+ /** 渲染函数类型 */
33
+ type RenderFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => VNodeChild;
34
+ /** 自定义操作按钮配置 */
35
+ interface CustomAction<T extends DataRecord = DataRecord> {
36
+ /** 按钮唯一键 */
37
+ key: string;
38
+ /** 按钮显示文本 */
39
+ label: string | ((row: T, index: number) => string);
40
+ /** 按钮图标 */
41
+ icon: string | ((row: T, index: number) => string);
42
+ /** 按钮类型样式 */
43
+ type?: ButtonType | ((row: T, index: number) => ButtonType);
44
+ /** 点击事件处理器 */
45
+ onClick: (row: T, index: number) => void | Promise<void>;
46
+ /** 条件显示函数(可选) */
47
+ show?: (row: T, index: number) => boolean;
48
+ /** 是否禁用(可选) */
49
+ disabled?: (row: T, index: number) => boolean;
50
+ /** 按钮提示文本(可选) */
51
+ tooltip?: string;
52
+ }
53
+ /** 简化的操作配置 - 二元法则 */
54
+ interface SimpleTableActions<T extends DataRecord = DataRecord> {
55
+ /** 编辑操作 - 直接传入函数 */
56
+ edit?: false | ApiFunction<T>;
57
+ /** 删除操作 - 直接传入函数 */
58
+ delete?: false | ApiFunction<T>;
59
+ /** 详情操作 - 直接传入函数 */
60
+ detail?: false | ApiFunction<T>;
61
+ /** 自定义操作按钮 */
62
+ custom?: CustomAction<T>[];
63
+ /** 完全自定义渲染 - 10%场景 */
64
+ render?: RenderFunction<T>;
65
+ }
66
+ /** useTableActions Hook 选项类型 */
67
+ interface UseTableActionsOptions<T extends DataRecord = DataRecord> {
68
+ /** 操作配置 */
69
+ actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
70
+ /** 表格配置 */
71
+ config: Ref<any> | ComputedRef<any>;
72
+ /** 表格管理器 */
73
+ tableManager: any;
74
+ /** 行键获取函数 */
75
+ rowKey: (row: T) => DataTableRowKey;
76
+ /** 事件发射器 */
77
+ emit: any;
78
+ /** 查看详情回调 */
79
+ onViewDetail?: (data: T) => void;
80
+ }
81
+ /** useTableActions Hook 返回类型 */
82
+ interface UseTableActionsReturn<T extends DataRecord = DataRecord> {
83
+ /** 渲染操作列 */
84
+ renderActions: (rowData: T, rowIndex: number) => VNodeChild;
85
+ /** 检查操作是否启用 */
86
+ isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
87
+ }
88
+ interface BaseOption {
89
+ label: string;
90
+ value: string | number;
91
+ disabled?: boolean;
92
+ }
93
+ interface BaseConfig<T extends DataRecord = DataRecord> {
94
+ enabled?: boolean;
95
+ rowCheckable?: (row: T) => boolean;
96
+ }
97
+ type SelectOption = BaseOption;
98
+ interface EditProps {
99
+ min?: number;
100
+ max?: number;
101
+ step?: number;
102
+ showButton?: boolean;
103
+ type?: string;
104
+ rows?: number;
105
+ placeholder?: string;
106
+ options?: SelectOption[];
107
+ rules?: FormItemRule[];
108
+ format?: string;
109
+ valueFormat?: string;
110
+ clearable?: boolean;
111
+ disabled?: boolean;
112
+ readonly?: boolean;
113
+ }
114
+ /**
115
+ * ================= 列类型系统 =================
116
+ * 说明:
117
+ * - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
118
+ * - NormalTableColumn:普通数据列,必须有 key + title
119
+ * - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
120
+ * - TableColumn:以上二者联合
121
+ */
122
+ interface BaseTableColumn<T extends DataRecord = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render'> {
123
+ editable?: boolean;
124
+ required?: boolean;
125
+ editType?: EditType;
126
+ editProps?: EditProps;
127
+ editRender?: (value: any, rowData: T, rowIndex: number) => VNodeChild;
128
+ render?: (rowData: T, rowIndex: number) => VNodeChild;
129
+ fixed?: 'left' | 'right';
130
+ resizable?: boolean;
131
+ minWidth?: number;
132
+ maxWidth?: number;
133
+ }
134
+ interface NormalTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
135
+ key: keyof T | string;
136
+ title: string;
137
+ }
138
+ interface BuiltInTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
139
+ /** 内置列类型:无需 key / title */
140
+ type: 'selection' | 'expand' | 'index';
141
+ /** 展开行渲染函数(仅当 type = expand 时有效) */
142
+ renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
143
+ }
144
+ type TableColumn<T extends DataRecord = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
145
+ interface ChildSelectionState {
146
+ selectedKeys: DataTableRowKey[];
147
+ isAllChecked: boolean;
148
+ selectAll: () => void;
149
+ clearAll: () => void;
150
+ }
151
+ interface ExpandConfig$1<T extends DataRecord = DataRecord, C = any> {
152
+ onLoadData?: (row: T) => Promise<C[]> | C[];
153
+ renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
154
+ rowExpandable?: (row: T) => boolean;
155
+ }
156
+ interface SelectionConfig$1<T extends DataRecord = DataRecord> extends BaseConfig<T> {
157
+ enableSelection?: boolean;
158
+ defaultCheckedKeys?: DataTableRowKey[];
159
+ maxSelection?: number;
160
+ enableChildSelection?: boolean;
161
+ childRowCheckable?: (childRow: any, parentRow: T) => boolean;
162
+ enableParentChildLink?: boolean;
163
+ parentChildLinkMode?: ParentChildLinkMode;
164
+ }
165
+ interface TableExpandEvents<T extends DataRecord = DataRecord> {
166
+ 'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
167
+ }
168
+ interface TableSelectionEvents<T extends DataRecord = DataRecord> {
169
+ 'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
170
+ 'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: any[]];
171
+ 'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
172
+ }
173
+ interface TableEditEvents<T extends DataRecord = DataRecord> {
174
+ 'update:data': [data: T[]];
175
+ save: [rowData: T, rowIndex: number, columnKey?: string];
176
+ cancel: [rowData: T, rowIndex: number];
177
+ }
178
+ interface TableEmits<T extends DataRecord = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T>, TableEditEvents<T> {
179
+ 'pagination-change': [page: number, pageSize: number];
180
+ 'row-delete': [deletedRow: T, index: number];
181
+ }
182
+ interface UseTableExpandOptions<T extends DataRecord = DataRecord, C = any> extends ExpandConfig$1<T, C>, SelectionConfig$1<T> {
183
+ data: Ref<T[]> | ComputedRef<T[]>;
184
+ rowKey: (row: T) => DataTableRowKey;
185
+ childRowKey?: (child: C) => DataTableRowKey;
186
+ defaultExpandedKeys?: DataTableRowKey[];
187
+ onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
188
+ onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
189
+ onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
190
+ }
191
+ interface UseTableExpandReturn<T extends DataRecord = DataRecord, C = any> {
192
+ expandedKeys: Ref<DataTableRowKey[]>;
193
+ checkedKeys: Ref<DataTableRowKey[]>;
194
+ childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
195
+ expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
196
+ loadingMap: Ref<Map<DataTableRowKey, boolean>>;
197
+ selectedRowsCount: ComputedRef<number>;
198
+ totalChildSelections: ComputedRef<number>;
199
+ expandAll: () => Promise<void>;
200
+ collapseAll: () => void;
201
+ expandRow: (key: DataTableRowKey) => Promise<void>;
202
+ handleExpandChange: (keys: DataTableRowKey[]) => void;
203
+ selectAll: () => void;
204
+ clearSelection: () => void;
205
+ clearAllSelections: () => void;
206
+ handleSelectionChange: (keys: DataTableRowKey[]) => void;
207
+ getTableColumns: (originalColumns: TableColumn<T>[]) => any[];
208
+ }
209
+ //#endregion
210
+ //#region src/components/C_Table/composables/usePrintWatermark.d.ts
211
+ interface WatermarkConfig {
212
+ text: string;
213
+ textSize?: number;
214
+ textColor?: string;
215
+ font?: string;
216
+ opacity?: number;
217
+ rotate?: number;
218
+ position?: "center" | "repeat" | "corner" | "diagonal";
219
+ xGap?: number;
220
+ yGap?: number;
221
+ }
222
+ interface CaptureConfig {
223
+ scale?: number;
224
+ quality?: number;
225
+ format?: "png" | "jpeg" | "webp";
226
+ backgroundColor?: string;
227
+ logging?: boolean;
228
+ allowTaint?: boolean;
229
+ useCORS?: boolean;
230
+ }
231
+ interface PrintConfig {
232
+ orientation?: "portrait" | "landscape";
233
+ paperSize?: "A4" | "A3" | "Letter" | string;
234
+ margin?: string;
235
+ style?: string;
236
+ header?: string;
237
+ footer?: string;
238
+ showModal?: boolean;
239
+ modalMessage?: string;
240
+ onLoadingStart?: () => void;
241
+ onLoadingEnd?: () => void;
242
+ onPrintDialogClose?: () => void;
243
+ }
244
+ interface PrintWatermarkOptions {
245
+ watermark?: WatermarkConfig;
246
+ capture?: CaptureConfig;
247
+ print?: PrintConfig;
248
+ }
249
+ declare function drawWatermark(canvas: HTMLCanvasElement, config: WatermarkConfig): HTMLCanvasElement;
250
+ declare function captureElement(element: HTMLElement, config?: CaptureConfig): Promise<HTMLCanvasElement>;
251
+ declare function canvasToDataURL(canvas: HTMLCanvasElement, format?: "png" | "jpeg" | "webp", quality?: number): string;
252
+ declare function downloadCanvas(canvas: HTMLCanvasElement, filename?: string, format?: "png" | "jpeg" | "webp"): void;
253
+ declare function printImage(imageDataURL: string, config?: PrintConfig): Promise<void>;
254
+ declare function usePrintWatermark(): {
255
+ loading: vue.Ref<boolean, boolean>;
256
+ progress: vue.Ref<number, number>;
257
+ captureWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<string>;
258
+ printWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<void>;
259
+ downloadScreenshot: (element: HTMLElement, filename?: string, options?: PrintWatermarkOptions) => Promise<void>;
260
+ quickPrint: (element: HTMLElement, watermarkText?: string) => Promise<void>;
261
+ batchCapture: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<string[]>;
262
+ batchPrint: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<void>;
263
+ mergePrint: (elements: HTMLElement[], options?: PrintWatermarkOptions, mergeOptions?: {
264
+ orientation?: "horizontal" | "vertical";
265
+ spacing?: number;
266
+ backgroundColor?: string;
267
+ }) => Promise<void>;
268
+ createPreset: (name: string, options: PrintWatermarkOptions) => {
269
+ use: (element: HTMLElement) => Promise<void>;
270
+ download: (element: HTMLElement, filename?: string) => Promise<void>;
271
+ };
272
+ updateProgress: (value: number) => void;
273
+ utils: {
274
+ captureElement: typeof captureElement;
275
+ drawWatermark: typeof drawWatermark;
276
+ canvasToDataURL: typeof canvasToDataURL;
277
+ downloadCanvas: typeof downloadCanvas;
278
+ printImage: typeof printImage;
279
+ };
280
+ };
281
+ declare const printPresets: {
282
+ readonly table: {
283
+ readonly watermark: {
284
+ readonly text: "Robot Admin - 数据表格";
285
+ readonly position: "repeat";
286
+ readonly textColor: "rgba(100, 100, 100, 0.25)";
287
+ readonly textSize: 14;
288
+ readonly xGap: 250;
289
+ readonly yGap: 120;
290
+ };
291
+ readonly capture: {
292
+ readonly scale: 1.2;
293
+ };
294
+ readonly print: {
295
+ readonly orientation: "landscape";
296
+ readonly style: "@page { margin: 8mm; } body { font-family: Arial, sans-serif; }";
297
+ };
298
+ };
299
+ readonly form: {
300
+ readonly watermark: {
301
+ readonly text: "Robot Admin - 表单数据";
302
+ readonly position: "diagonal";
303
+ readonly textColor: "rgba(150, 150, 150, 0.2)";
304
+ readonly textSize: 16;
305
+ };
306
+ readonly print: {
307
+ readonly orientation: "portrait";
308
+ };
309
+ };
310
+ readonly report: {
311
+ readonly watermark: {
312
+ readonly text: "Robot Admin - 机密报告";
313
+ readonly position: "center";
314
+ readonly textColor: "rgba(200, 50, 50, 0.15)";
315
+ readonly textSize: 24;
316
+ };
317
+ readonly capture: {
318
+ readonly quality: 0.95;
319
+ readonly format: "png";
320
+ };
321
+ };
322
+ };
323
+ //#endregion
324
+ //#region src/components/C_Table/composables/useDynamicRow.d.ts
325
+ interface DynamicRowsOptions<T extends DataRecord = DataRecord> {
326
+ rowKey?: string | ((row: T) => DataTableRowKey$1);
327
+ defaultRowData?: () => T;
328
+ enableRadioSelection?: boolean;
329
+ enableAdd?: boolean;
330
+ enableInsert?: boolean;
331
+ enableDelete?: boolean;
332
+ enableCopy?: boolean;
333
+ enableMove?: boolean;
334
+ enablePrint?: boolean;
335
+ printOptions?: PrintWatermarkOptions;
336
+ printPreset?: "table" | "form" | "report";
337
+ printWatermarkText?: string;
338
+ printTargetSelector?: string;
339
+ confirmDelete?: boolean;
340
+ deleteConfirmText?: string;
341
+ onRowChange?: (data: T[]) => void;
342
+ onSelectionChange?: (selectedKey: DataTableRowKey$1 | null, selectedRow: T | null) => void;
343
+ onRowAdd?: (newRow: T) => void;
344
+ onRowDelete?: (deletedRow: T, index: number) => void;
345
+ onRowCopy?: (originalRow: T, newRow: T) => void;
346
+ onRowMove?: (row: T, fromIndex: number, toIndex: number) => void;
347
+ }
348
+ interface DynamicRowsReturn<T extends DataRecord = DataRecord> {
349
+ selectedRowKey: Ref<DataTableRowKey$1 | null>;
350
+ selectedRowData: Ref<T | null>;
351
+ selectedRowIndex: Ref<number>;
352
+ canMoveUp: Ref<boolean>;
353
+ canMoveDown: Ref<boolean>;
354
+ deleteConfirmVisible: Ref<boolean>;
355
+ printLoading: Ref<boolean>;
356
+ printProgress: Ref<number>;
357
+ addRow: () => void;
358
+ insertRow: () => void;
359
+ deleteRow: () => void;
360
+ confirmDelete: () => void;
361
+ copyRow: () => void;
362
+ moveRowUp: () => void;
363
+ moveRowDown: () => void;
364
+ selectRow: (key: DataTableRowKey$1) => void;
365
+ clearSelection: () => void;
366
+ handlePrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
367
+ handleDownload: (elementRef: Ref<HTMLElement | undefined>, filename?: string) => Promise<void>;
368
+ handleQuickPrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
369
+ enhanceColumns: (columns: TableColumn<T>[]) => TableColumn<T>[];
370
+ renderToolbar: () => VNodeChild;
371
+ renderConfirmModal: () => VNodeChild;
372
+ }
373
+ /**
374
+ * 表格动态行操作功能组合
375
+ */
376
+ declare function useDynamicRows<T extends DataRecord = DataRecord>(data: Ref<T[]>, options?: DynamicRowsOptions<T>): DynamicRowsReturn<T>;
377
+ //#endregion
378
+ //#region src/components/C_Table/composables/useTableConfig.d.ts
379
+ /** 可绑定到 C_Table 的 CRUD 对象接口 */
380
+ interface CrudBinding {
381
+ data: Ref<DataRecord[]>;
382
+ loading: Ref<boolean>;
383
+ columns: ComputedRef<TableColumn[]>;
384
+ actions?: ComputedRef<SimpleTableActions>;
385
+ pagination?: ComputedRef<PaginationConfig | null>;
386
+ tableRef?: Ref<unknown>;
387
+ save?: (...args: unknown[]) => unknown;
388
+ handleCancel?: () => void;
389
+ handlePaginationChange?: (page: number, pageSize: number) => void;
390
+ handleRowDelete?: (...args: unknown[]) => void;
391
+ detail?: {
392
+ show: (...args: unknown[]) => void;
393
+ };
394
+ }
395
+ /** C_Table :config prop 的类型 — 所有功能配置收拢在此 */
396
+ interface TableConfig<T extends DataRecord = DataRecord> {
397
+ /** 编辑配置 */
398
+ edit?: EditConfig | boolean;
399
+ /** 操作按钮 */
400
+ actions?: SimpleTableActions<T>;
401
+ /** 分页配置 */
402
+ pagination?: PaginationConfig | boolean;
403
+ /** 展开行配置 */
404
+ expand?: ExpandConfig<T> | boolean;
405
+ /** 选择配置 */
406
+ selection?: SelectionConfig<T> | boolean;
407
+ /** 动态行配置 */
408
+ dynamicRows?: DynamicRowsOptions<T> | boolean;
409
+ /** 工具栏 */
410
+ toolbar?: ToolbarConfig;
411
+ /** 表格显示属性 */
412
+ display?: DisplayConfig;
413
+ }
414
+ interface EditConfig {
415
+ enabled?: boolean;
416
+ mode?: "row" | "cell" | "modal" | "both" | "none";
417
+ showRowActions?: boolean;
418
+ modalTitle?: string;
419
+ modalWidth?: number;
420
+ }
421
+ interface ExpandConfig<T extends DataRecord = DataRecord> {
422
+ enabled?: boolean;
423
+ defaultExpandedKeys?: DataTableRowKey$1[];
424
+ onLoadData?: (row: T) => Promise<unknown[]> | unknown[];
425
+ renderContent?: (row: T, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild;
426
+ rowExpandable?: (row: T) => boolean;
427
+ }
428
+ interface SelectionConfig<T extends DataRecord = DataRecord> {
429
+ enabled?: boolean;
430
+ defaultCheckedKeys?: naive_ui_es0.DataTableRowKey[];
431
+ rowCheckable?: (row: T) => boolean;
432
+ maxSelection?: number;
433
+ childSelection?: {
434
+ enabled?: boolean;
435
+ childRowCheckable?: (childRow: unknown, parentRow: T) => boolean;
436
+ };
437
+ parentChildLink?: {
438
+ enabled?: boolean;
439
+ mode?: ParentChildLinkMode;
440
+ };
441
+ }
442
+ interface ToolbarConfig {
443
+ /** 是否显示工具栏 */
444
+ show?: boolean;
445
+ /** 是否启用列设置 */
446
+ columnSettings?: boolean;
447
+ }
448
+ interface DisplayConfig {
449
+ striped?: boolean;
450
+ bordered?: boolean;
451
+ singleLine?: boolean;
452
+ size?: "small" | "medium" | "large";
453
+ maxHeight?: number | string;
454
+ scrollX?: number | string;
455
+ columnWidth?: number;
456
+ }
457
+ interface ResolvedConfig {
458
+ editable: boolean;
459
+ editMode: string;
460
+ showRowActions: boolean;
461
+ modalTitle: string;
462
+ modalWidth: number;
463
+ expandable: boolean;
464
+ defaultExpandedKeys: DataTableRowKey$1[] | undefined;
465
+ onLoadExpandData: ((row: DataRecord) => Promise<unknown[]> | unknown[]) | undefined;
466
+ renderExpandContent: ((row: DataRecord, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild) | undefined;
467
+ rowExpandable: ((row: DataRecord) => boolean) | undefined;
468
+ enableSelection: boolean;
469
+ defaultCheckedKeys: DataTableRowKey$1[] | undefined;
470
+ rowCheckable: ((row: DataRecord) => boolean) | undefined;
471
+ maxSelection: number | undefined;
472
+ enableChildSelection: boolean;
473
+ childRowCheckable: ((childRow: unknown, parentRow: DataRecord) => boolean) | undefined;
474
+ enableParentChildLink: boolean;
475
+ parentChildLinkMode: ParentChildLinkMode;
476
+ pagination: PaginationConfig | null;
477
+ dynamicRows: DynamicRowsOptions<DataRecord> | undefined;
478
+ striped: boolean;
479
+ bordered: boolean;
480
+ singleLine: boolean;
481
+ size: string;
482
+ maxHeight: number | string | undefined;
483
+ scrollX: number | string | undefined;
484
+ columnWidth: number;
485
+ showToolbar: boolean;
486
+ enableColumnSettings: boolean;
487
+ }
488
+ /**
489
+ * 将 config 单一对象解析为内部扁平化配置
490
+ */
491
+ declare function resolveConfig(config?: TableConfig): ResolvedConfig;
492
+ declare const createEditModeChecker: (config: ResolvedConfig) => {
493
+ isNonEditable: (column: TableColumn) => boolean;
494
+ isRowEditMode: () => boolean;
495
+ isCellEditMode: () => boolean;
496
+ };
497
+ //#endregion
498
+ //#region src/components/C_Table/index.vue.d.ts
499
+ type __VLS_Props = {
500
+ /** 列配置(crud 模式下可省略) */columns?: TableColumn[]; /** 数据源(crud 模式下可省略) */
501
+ data?: MaybeRefLike<DataRecord[]>; /** 加载状态 */
502
+ loading?: MaybeRefLike<boolean>; /** 行唯一键 */
503
+ rowKey?: (row: DataRecord) => DataTableRowKey$1; /** 统一功能配置(edit / selection / expand / pagination / dynamicRows / toolbar / display) */
504
+ config?: TableConfig; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
505
+ crud?: CrudBinding;
506
+ };
507
+ declare var __VLS_6: {}, __VLS_8: {};
508
+ type __VLS_Slots = {} & {
509
+ 'toolbar-left'?: (props: typeof __VLS_6) => any;
510
+ } & {
511
+ 'toolbar-right'?: (props: typeof __VLS_8) => any;
512
+ };
513
+ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
514
+ startEdit: (rowKey: DataTableRowKey$1, columnKey?: string) => void;
515
+ expandAll: () => Promise<void>;
516
+ collapseAll: () => void;
517
+ selectAll: () => void;
518
+ clearSelection: () => void;
519
+ clearAllSelections: () => void;
520
+ clearRowSelection: () => void;
521
+ resetToFirstPage: () => void;
522
+ getSelectedRows: () => DataRecord[];
523
+ getEditingData: () => vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
524
+ isEditing: (rowKey: DataTableRowKey$1, columnKey?: string) => boolean;
525
+ isExpanded: (rowKey: DataTableRowKey$1) => boolean;
526
+ getManager: () => {
527
+ edit: {
528
+ start(rowKey: DataTableRowKey$1, columnKey?: string): void;
529
+ cancel(): void;
530
+ save(): Promise<void>;
531
+ isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean;
532
+ getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
533
+ };
534
+ expand: {
535
+ row(rowKey: DataTableRowKey$1): Promise<void>;
536
+ collapse(rowKey: DataTableRowKey$1): void;
537
+ toggle(rowKey: DataTableRowKey$1): Promise<void>;
538
+ all(): Promise<void>;
539
+ collapseAll(): void;
540
+ isExpanded(rowKey: DataTableRowKey$1): boolean;
541
+ };
542
+ selection: {
543
+ select(rowKey: DataTableRowKey$1): void;
544
+ unselect(rowKey: DataTableRowKey$1): void;
545
+ all(): void;
546
+ clear(): void;
547
+ isSelected(rowKey: DataTableRowKey$1): boolean;
548
+ getSelected(): DataRecord[];
549
+ };
550
+ childSelection: {
551
+ select(parentKey: DataTableRowKey$1, childKey: DataTableRowKey$1): void;
552
+ unselect(parentKey: DataTableRowKey$1, childKey: DataTableRowKey$1): void;
553
+ selectAll(parentKey: DataTableRowKey$1): void;
554
+ clear(parentKey: DataTableRowKey$1): void;
555
+ getSelected(parentKey: DataTableRowKey$1): DataRecord[];
556
+ };
557
+ dynamicRows: {
558
+ add(): void;
559
+ insert(): void;
560
+ delete(): void;
561
+ copy(): void;
562
+ moveUp(): void;
563
+ moveDown(): void;
564
+ clearSelection(): void;
565
+ getSelected(): DataRecord | null;
566
+ print(elementRef?: HTMLElement): Promise<void>;
567
+ download(elementRef?: HTMLElement, filename?: string): Promise<void>;
568
+ };
569
+ clearAllSelections(): void;
570
+ };
571
+ }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
572
+ cancel: (rowData: DataRecord, rowIndex: number) => any;
573
+ save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
574
+ "pagination-change": (...args: unknown[]) => any;
575
+ "row-delete": (...args: unknown[]) => any;
576
+ "expand-change": (expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any;
577
+ "selection-change": (checkedKeys: DataTableRowKey$1[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey$1, DataTableRowKey$1[]> | undefined) => any;
578
+ "child-selection-change": (parentKey: DataTableRowKey$1, childKeys: DataTableRowKey$1[], childRows: any[]) => any;
579
+ "parent-child-link-change": (parentKey: DataTableRowKey$1, shouldSelect: boolean) => any;
580
+ "update:data": (data: DataRecord[]) => any;
581
+ "row-add": (newRow: DataRecord) => any;
582
+ "row-copy": (originalRow: DataRecord, newRow: DataRecord) => any;
583
+ "row-move": (row: DataRecord, fromIndex: number, toIndex: number) => any;
584
+ "row-selection-change": (selectedKey: DataTableRowKey$1 | null, selectedRow: DataRecord | null) => any;
585
+ "view-detail": (data: DataRecord) => any;
586
+ "column-change": (columns: TableColumn[]) => any;
587
+ }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
588
+ onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
589
+ onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
590
+ "onPagination-change"?: ((...args: unknown[]) => any) | undefined;
591
+ "onRow-delete"?: ((...args: unknown[]) => any) | undefined;
592
+ "onExpand-change"?: ((expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any) | undefined;
593
+ "onSelection-change"?: ((checkedKeys: DataTableRowKey$1[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey$1, DataTableRowKey$1[]> | undefined) => any) | undefined;
594
+ "onChild-selection-change"?: ((parentKey: DataTableRowKey$1, childKeys: DataTableRowKey$1[], childRows: any[]) => any) | undefined;
595
+ "onParent-child-link-change"?: ((parentKey: DataTableRowKey$1, shouldSelect: boolean) => any) | undefined;
596
+ "onUpdate:data"?: ((data: DataRecord[]) => any) | undefined;
597
+ "onRow-add"?: ((newRow: DataRecord) => any) | undefined;
598
+ "onRow-copy"?: ((originalRow: DataRecord, newRow: DataRecord) => any) | undefined;
599
+ "onRow-move"?: ((row: DataRecord, fromIndex: number, toIndex: number) => any) | undefined;
600
+ "onRow-selection-change"?: ((selectedKey: DataTableRowKey$1 | null, selectedRow: DataRecord | null) => any) | undefined;
601
+ "onView-detail"?: ((data: DataRecord) => any) | undefined;
602
+ "onColumn-change"?: ((columns: TableColumn[]) => any) | undefined;
603
+ }>, {
604
+ loading: MaybeRefLike<boolean>;
605
+ config: TableConfig;
606
+ rowKey: (row: DataRecord) => DataTableRowKey$1;
607
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
608
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
609
+ declare const _default: typeof __VLS_export;
610
+ type __VLS_WithSlots<T, S> = T & {
611
+ new (): {
612
+ $slots: S;
613
+ };
614
+ }; //# sourceMappingURL=index.vue.d.ts.map
615
+ //#endregion
616
+ //#region src/components/C_Table/composables/useTableColumns.d.ts
617
+ /** useTableColumns 中对 tableManager 的最小依赖接口 */
618
+ interface TableManagerRef {
619
+ editStates: {
620
+ cellEdit: {
621
+ isEditingCell: (rowKey: DataTableRowKey$1, columnKey: string) => boolean;
622
+ getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
623
+ updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
624
+ saveEditCell: () => Promise<unknown>;
625
+ cancelEditCell: () => void;
626
+ startEditCell: (rowKey: DataTableRowKey$1, columnKey: string) => void;
627
+ };
628
+ rowEdit: {
629
+ isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
630
+ getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord | undefined;
631
+ updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
632
+ };
633
+ };
634
+ dynamicRowsState?: {
635
+ enhanceColumns: (columns: TableColumn[]) => TableColumn[];
636
+ } | null;
637
+ expandState?: {
638
+ getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
639
+ } | null;
640
+ }
641
+ /**
642
+ * 渲染编辑组件(行编辑/单元格编辑通用)
643
+ */
644
+ interface UseTableColumnsOptions {
645
+ /** 原始列配置 */
646
+ rawColumns: ComputedRef<TableColumn[]>;
647
+ /** 统一配置 */
648
+ config: ComputedRef<ResolvedConfig>;
649
+ /** 默认列宽 */
650
+ columnWidth: number;
651
+ /** 用户设定的 scrollX */
652
+ scrollX?: number | string;
653
+ /** 行键获取函数 */
654
+ rowKey: (row: DataRecord) => DataTableRowKey$1;
655
+ /** 表格管理器 */
656
+ tableManager: TableManagerRef;
657
+ /** 操作列渲染函数 */
658
+ actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
659
+ /** 编辑模式检查器 */
660
+ editModeChecker: ComputedRef<{
661
+ isNonEditable: (column: TableColumn) => boolean;
662
+ isRowEditMode: () => boolean;
663
+ isCellEditMode: () => boolean;
664
+ }>;
665
+ }
666
+ interface UseTableColumnsReturn {
667
+ reactiveColumns: Ref<TableColumn[]>;
668
+ showSettingsPanel: Ref<boolean>;
669
+ computedColumns: ComputedRef<DataTableColumn[]>;
670
+ computedScrollX: ComputedRef<number | string | undefined>;
671
+ handleColumnChange: (columns: TableColumn[]) => void;
672
+ }
673
+ /**
674
+ * 表格列处理引擎
675
+ */
676
+ declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
677
+ //#endregion
678
+ //#region src/components/C_Table/composables/useTableManager.d.ts
679
+ /**
680
+ * 表格管理器配置接口
681
+ */
682
+ interface TableManagerConfig {
683
+ editable: boolean;
684
+ editMode: string;
685
+ showRowActions: boolean;
686
+ modalTitle: string;
687
+ modalWidth: number;
688
+ expandable: boolean;
689
+ defaultExpandedKeys?: DataTableRowKey$1[];
690
+ onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
691
+ renderExpandContent?: unknown;
692
+ rowExpandable?: (row: DataRecord) => boolean;
693
+ enableSelection: boolean;
694
+ defaultCheckedKeys?: DataTableRowKey$1[];
695
+ rowCheckable?: (row: DataRecord) => boolean;
696
+ maxSelection?: number;
697
+ enableChildSelection: boolean;
698
+ childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
699
+ enableParentChildLink: boolean;
700
+ parentChildLinkMode: ParentChildLinkMode;
701
+ dynamicRows?: DynamicRowsOptions<DataRecord>;
702
+ }
703
+ /**
704
+ * 表格管理器参数接口
705
+ */
706
+ interface TableManagerParams {
707
+ config: TableManagerConfig;
708
+ data: () => DataRecord[];
709
+ rowKey: (row: DataRecord) => DataTableRowKey$1;
710
+ emit: (...args: unknown[]) => void;
711
+ }
712
+ /**
713
+ * 事件处理器接口
714
+ */
715
+ interface EventHandlers {
716
+ onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string) => Promise<void>;
717
+ onCancel: (rowData: DataRecord, rowIndex: number) => void;
718
+ onExpandChange: (keys: DataTableRowKey$1[], row?: DataRecord, expanded?: boolean) => void;
719
+ onSelectionChange: (checkedKeys: DataTableRowKey$1[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey$1, DataTableRowKey$1[]>) => void;
720
+ onChildSelectionChange: (parentKey: DataTableRowKey$1, childKeys: DataTableRowKey$1[], childRows: DataRecord[]) => void;
721
+ onRowChange: (data: DataRecord[]) => void;
722
+ onRowSelectionChange: (selectedKey: DataTableRowKey$1 | null, selectedRow: DataRecord | null) => void;
723
+ onRowAdd: (newRow: DataRecord) => void;
724
+ onRowDelete: (deletedRow: DataRecord, index: number) => void;
725
+ onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
726
+ onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
727
+ }
728
+ /**
729
+ * 表格统一状态管理器
730
+ */
731
+ declare function useTableManager(params: TableManagerParams): {
732
+ editStates: {
733
+ rowEdit: {
734
+ editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
735
+ isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
736
+ startEditRow: (rowKey: DataTableRowKey$1) => void;
737
+ cancelEditRow: () => Promise<void>;
738
+ saveEditRow: () => Promise<{
739
+ updatedData: DataRecord;
740
+ rowIndex: number;
741
+ } | undefined>;
742
+ getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
743
+ updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
744
+ findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
745
+ };
746
+ cellEdit: {
747
+ editingCell: vue.Ref<{
748
+ rowKey: DataTableRowKey$1 | null;
749
+ columnKey: string | null;
750
+ }, {
751
+ rowKey: DataTableRowKey$1 | null;
752
+ columnKey: string | null;
753
+ } | {
754
+ rowKey: DataTableRowKey$1 | null;
755
+ columnKey: string | null;
756
+ }>;
757
+ isEditingCell: (rowKey: DataTableRowKey$1, columnKey: string) => boolean;
758
+ startEditCell: (rowKey: DataTableRowKey$1, columnKey: string) => void;
759
+ saveEditCell: () => Promise<{
760
+ updatedData: {
761
+ [x: string]: unknown;
762
+ };
763
+ rowIndex: number;
764
+ columnKey: string;
765
+ } | undefined>;
766
+ cancelEditCell: () => void;
767
+ getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
768
+ updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
769
+ findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
770
+ };
771
+ modalEdit: {
772
+ isModalVisible: vue.Ref<boolean, boolean>;
773
+ editingData: vue.Ref<Record<string, any>, Record<string, any>>;
774
+ editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
775
+ editingRowIndex: vue.ComputedRef<number>;
776
+ startEdit: (rowKey: DataTableRowKey$1) => void;
777
+ saveEdit: (formData?: Record<string, any>) => Promise<void>;
778
+ cancelEdit: () => Promise<void>;
779
+ updateEditingData: (data: Record<string, any>) => void;
780
+ resetEditingState: () => void;
781
+ isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
782
+ getEditingRowData: (rowKey: DataTableRowKey$1) => Record<string, any> | null;
783
+ };
784
+ };
785
+ expandState: UseTableExpandReturn<DataRecord, DataRecord> | null;
786
+ dynamicRowsState: DynamicRowsReturn<DataRecord> | null;
787
+ stateManager: {
788
+ edit: {
789
+ /** 开始编辑 */start(rowKey: DataTableRowKey$1, columnKey?: string): void; /** 取消编辑 */
790
+ cancel(): void; /** 保存编辑 */
791
+ save(): Promise<void>; /** 是否正在编辑 */
792
+ isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean; /** 获取当前编辑数据 */
793
+ getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
794
+ };
795
+ expand: {
796
+ /** 展开行 */row(rowKey: DataTableRowKey$1): Promise<void>; /** 折叠行 */
797
+ collapse(rowKey: DataTableRowKey$1): void; /** 展开折叠切换 */
798
+ toggle(rowKey: DataTableRowKey$1): Promise<void>; /** 展开所有行 */
799
+ all(): Promise<void>; /** 折叠所有行 */
800
+ collapseAll(): void; /** 检查行是否已展开 */
801
+ isExpanded(rowKey: DataTableRowKey$1): boolean;
802
+ };
803
+ selection: {
804
+ /** 选择指定行 */select(rowKey: DataTableRowKey$1): void; /** 取消选择指定行 */
805
+ unselect(rowKey: DataTableRowKey$1): void; /** 选择所有行 */
806
+ all(): void; /** 清除所有行选择 */
807
+ clear(): void; /** 检查行是否已选择 */
808
+ isSelected(rowKey: DataTableRowKey$1): boolean; /** 获取所有已选择的行数据 */
809
+ getSelected(): DataRecord[];
810
+ };
811
+ childSelection: {
812
+ /** 选择指定父行下的子行 */select(parentKey: DataTableRowKey$1, childKey: DataTableRowKey$1): void; /** 取消选择指定父行下的子行 */
813
+ unselect(parentKey: DataTableRowKey$1, childKey: DataTableRowKey$1): void; /** 选择指定父行下的所有子行 */
814
+ selectAll(parentKey: DataTableRowKey$1): void; /** 清除指定父行下的所有子行选择 */
815
+ clear(parentKey: DataTableRowKey$1): void; /** 获取指定父行下所有已选择的子行数据 */
816
+ getSelected(parentKey: DataTableRowKey$1): DataRecord[];
817
+ };
818
+ dynamicRows: {
819
+ /** 添加行 */add(): void; /** 插入行 */
820
+ insert(): void; /** 删除行 */
821
+ delete(): void; /** 复制行 */
822
+ copy(): void; /** 上移动态行 */
823
+ moveUp(): void; /** 下移动态行 */
824
+ moveDown(): void; /** 清空动态行数据 */
825
+ clearSelection(): void; /** 获取当前选中的动态行数据 */
826
+ getSelected(): DataRecord | null; /** 打印表格 */
827
+ print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
828
+ download(elementRef?: HTMLElement, filename?: string): Promise<void>;
829
+ }; /** 清除所有选择 */
830
+ clearAllSelections(): void;
831
+ };
832
+ expandedKeys: vue.ComputedRef<DataTableRowKey$1[]>;
833
+ checkedKeys: vue.ComputedRef<DataTableRowKey$1[]>;
834
+ eventHandlers: EventHandlers;
835
+ };
836
+ //#endregion
837
+ //#region src/components/C_Table/composables/useTableExpand.d.ts
838
+ declare function useTableExpand<T extends DataRecord = Record<string, any>, C = any>(options: UseTableExpandOptions<T, C>): UseTableExpandReturn<T, C>;
839
+ //#endregion
840
+ //#region src/components/C_Table/composables/useTableActions.d.ts
841
+ /**
842
+ * 表格操作Hook
843
+ */
844
+ declare function useTableActions<T extends DataRecord = DataRecord>(options: UseTableActionsOptions<T>): UseTableActionsReturn<T>;
845
+ //#endregion
846
+ //#region src/components/C_Table/composables/usePagination.d.ts
847
+ interface UsePaginationOptions<T extends DataRecord = DataRecord> {
848
+ /** 数据源 - 支持函数、Ref 或 ComputedRef */
849
+ data: (() => T[]) | Ref<T[]> | ComputedRef<T[]>;
850
+ /** 分页配置 */
851
+ config: Ref<PaginationConfig | null> | ComputedRef<PaginationConfig | null>;
852
+ /** 事件触发器 */
853
+ emit?: (event: "pagination-change", page: number, pageSize: number) => void;
854
+ }
855
+ interface UsePaginationReturn<T extends DataRecord = DataRecord> {
856
+ currentPage: Ref<number>;
857
+ currentPageSize: Ref<number>;
858
+ paginatedData: ComputedRef<T[]>;
859
+ paginationConfig: ComputedRef<any>;
860
+ handlePageChange: (page: number) => void;
861
+ handlePageSizeChange: (pageSize: number) => void;
862
+ resetToFirstPage: () => void;
863
+ getTotalPages: () => number;
864
+ }
865
+ declare function usePagination<T extends DataRecord = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
866
+ //#endregion
867
+ //#region src/components/C_Table/composables/useRowEdit.d.ts
868
+ /**
869
+ * 行编辑配置选项
870
+ */
871
+ interface RowEditOptions {
872
+ data: () => DataRecord[];
873
+ rowKey: (row: DataRecord) => DataTableRowKey$1;
874
+ onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
875
+ onCancel?: (rowData: DataRecord, rowIndex: number) => void;
876
+ }
877
+ /**
878
+ * 可编辑行组合函数,提供表格整行的编辑功能
879
+ */
880
+ declare function useRowEdit(options: RowEditOptions): {
881
+ editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
882
+ isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
883
+ startEditRow: (rowKey: DataTableRowKey$1) => void;
884
+ cancelEditRow: () => Promise<void>;
885
+ saveEditRow: () => Promise<{
886
+ updatedData: DataRecord;
887
+ rowIndex: number;
888
+ } | undefined>;
889
+ getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
890
+ updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
891
+ findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
892
+ };
893
+ //#endregion
894
+ //#region src/components/C_Table/composables/useCellEdit.d.ts
895
+ /**
896
+ * 单元格编辑配置选项
897
+ */
898
+ interface CellEditOptions {
899
+ data: () => DataRecord[];
900
+ rowKey: (row: DataRecord) => DataTableRowKey$1;
901
+ onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
902
+ }
903
+ /**
904
+ * 可编辑单元格组合函数,提供表格单元格的编辑功能
905
+ */
906
+ declare function useCellEdit(options: CellEditOptions): {
907
+ editingCell: vue.Ref<{
908
+ rowKey: DataTableRowKey$1 | null;
909
+ columnKey: string | null;
910
+ }, {
911
+ rowKey: DataTableRowKey$1 | null;
912
+ columnKey: string | null;
913
+ } | {
914
+ rowKey: DataTableRowKey$1 | null;
915
+ columnKey: string | null;
916
+ }>;
917
+ isEditingCell: (rowKey: DataTableRowKey$1, columnKey: string) => boolean;
918
+ startEditCell: (rowKey: DataTableRowKey$1, columnKey: string) => void;
919
+ saveEditCell: () => Promise<{
920
+ updatedData: {
921
+ [x: string]: unknown;
922
+ };
923
+ rowIndex: number;
924
+ columnKey: string;
925
+ } | undefined>;
926
+ cancelEditCell: () => void;
927
+ getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
928
+ updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
929
+ findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
930
+ };
931
+ //#endregion
932
+ //#region src/components/C_Table/composables/useModalEdit.d.ts
933
+ /**
934
+ * 模态框编辑配置选项
935
+ */
936
+ interface ModalEditOptions<T = Record<string, any>> {
937
+ data: () => T[];
938
+ rowKey: (row: T) => DataTableRowKey$1;
939
+ onSave?: (editingData: Record<string, any>, rowIndex: number) => void | Promise<void>;
940
+ onCancel?: (originalData: T, rowIndex: number) => void | Promise<void>;
941
+ }
942
+ /**
943
+ * 模态框编辑组合函数,提供弹窗形式的数据编辑功能
944
+ */
945
+ declare function useModalEdit<T = Record<string, any>>(options: ModalEditOptions<T>): {
946
+ isModalVisible: vue.Ref<boolean, boolean>;
947
+ editingData: vue.Ref<Record<string, any>, Record<string, any>>;
948
+ editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
949
+ editingRowIndex: vue.ComputedRef<number>;
950
+ startEdit: (rowKey: DataTableRowKey$1) => void;
951
+ saveEdit: (formData?: Record<string, any>) => Promise<void>;
952
+ cancelEdit: () => Promise<void>;
953
+ updateEditingData: (data: Record<string, any>) => void;
954
+ resetEditingState: () => void;
955
+ isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
956
+ getEditingRowData: (rowKey: DataTableRowKey$1) => Record<string, any> | null;
957
+ };
958
+ //#endregion
959
+ export { MaybeRefLike as C, TableEmits as D, TableColumn as E, UseTableExpandOptions as O, EditMode as S, ParentChildLinkMode as T, PrintWatermarkOptions as _, useTableActions as a, ChildSelectionState as b, useTableColumns as c, TableConfig as d, createEditModeChecker as f, useDynamicRows as g, DynamicRowsReturn as h, usePagination as i, UseTableExpandReturn as k, _default as l, DynamicRowsOptions as m, useCellEdit as n, useTableExpand as o, resolveConfig as p, useRowEdit as r, useTableManager as s, useModalEdit as t, CrudBinding as u, printPresets as v, PaginationConfig as w, DataRecord as x, usePrintWatermark as y };
960
+ //# sourceMappingURL=useModalEdit.d.ts.map