@robot-admin/naive-ui-components 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/C_ActionBar-BAcfOfRw.css.map +1 -0
  2. package/dist/C_ActionBar-DG2HW7t5.css.map +1 -0
  3. package/dist/C_ActionBar.css +47 -47
  4. package/dist/C_ActionBar.js.map +1 -1
  5. package/dist/C_ActionBar2.js +1 -1
  6. package/dist/C_ActionBar2.js.map +1 -1
  7. package/dist/{C_AntV-BY8jqqmi.css.map → C_AntV-D_jTK8oZ.css.map} +1 -1
  8. package/dist/{C_AntV-BbkHc-_a.css.map → C_AntV-DanTAq22.css.map} +1 -1
  9. package/dist/C_AntV.css +79 -79
  10. package/dist/C_AntV.js.map +1 -1
  11. package/dist/C_AntV2.js +3 -3
  12. package/dist/C_AntV2.js.map +1 -1
  13. package/dist/{C_AudioPlayer-DKRIGhi7.css.map → C_AudioPlayer-BnYIJXPD.css.map} +1 -1
  14. package/dist/{C_AudioPlayer-DlB6eNsa.css.map → C_AudioPlayer-ldTy9Y34.css.map} +1 -1
  15. package/dist/C_AudioPlayer.css +47 -47
  16. package/dist/C_AudioPlayer.js.map +1 -1
  17. package/dist/C_AudioPlayer2.js +1 -1
  18. package/dist/C_AudioPlayer2.js.map +1 -1
  19. package/dist/{C_AvatarGroup-D02zci-i.css.map → C_AvatarGroup-B9d-GJ9c.css.map} +1 -1
  20. package/dist/{C_AvatarGroup-DatHaUlY.css.map → C_AvatarGroup-SIzxuuZr.css.map} +1 -1
  21. package/dist/C_AvatarGroup.css +21 -21
  22. package/dist/C_AvatarGroup.js.map +1 -1
  23. package/dist/C_AvatarGroup2.js +1 -1
  24. package/dist/C_AvatarGroup2.js.map +1 -1
  25. package/dist/{C_Barcode-DYDRDe2O.css.map → C_Barcode-CAU2mFcx.css.map} +1 -1
  26. package/dist/{C_Barcode-muJdc_O4.css.map → C_Barcode-D2oJaEg3.css.map} +1 -1
  27. package/dist/C_Barcode.css +7 -7
  28. package/dist/C_Barcode.js.map +1 -1
  29. package/dist/C_Barcode2.js +1 -1
  30. package/dist/C_Barcode2.js.map +1 -1
  31. package/dist/C_Breadcrumb.js.map +1 -1
  32. package/dist/C_Breadcrumb2.js +1 -1
  33. package/dist/C_Breadcrumb2.js.map +1 -1
  34. package/dist/{C_Captcha-9_hk6VmY.css.map → C_Captcha-B3yrtG7t.css.map} +1 -1
  35. package/dist/{C_Captcha-MtASlJ0f.css.map → C_Captcha-D4hDdWDu.css.map} +1 -1
  36. package/dist/C_Captcha.css +19 -19
  37. package/dist/C_Captcha.js.map +1 -1
  38. package/dist/C_Captcha2.js +1 -1
  39. package/dist/C_Captcha2.js.map +1 -1
  40. package/dist/C_Cascade-BE7t1OX5.css.map +1 -0
  41. package/dist/C_Cascade-CpDiau1y.css.map +1 -0
  42. package/dist/C_Cascade.css +3 -3
  43. package/dist/C_Cascade.js.map +1 -1
  44. package/dist/C_Cascade2.js +1 -1
  45. package/dist/C_Cascade2.js.map +1 -1
  46. package/dist/{C_Chat-Csjz_BFw.css.map → C_Chat-CF1SU7mc.css.map} +1 -1
  47. package/dist/{C_Chat-DO1ZBA_0.css.map → C_Chat-DeUv6uuI.css.map} +1 -1
  48. package/dist/C_Chat.css +65 -65
  49. package/dist/C_Chat.js.map +1 -1
  50. package/dist/C_Chat2.js +1 -1
  51. package/dist/C_Chat2.js.map +1 -1
  52. package/dist/{C_City-Bam08Qv3.css.map → C_City-DdkX6u64.css.map} +1 -1
  53. package/dist/{C_City-Bb3W-KaN.css.map → C_City-iP-dIvui.css.map} +1 -1
  54. package/dist/C_City.css +29 -29
  55. package/dist/C_City.js.map +1 -1
  56. package/dist/C_City2.js +1 -1
  57. package/dist/C_City2.js.map +1 -1
  58. package/dist/C_Code-BWmJMNS7.css.map +1 -0
  59. package/dist/C_Code-k14vjgVl.css.map +1 -0
  60. package/dist/C_Code.css +3 -3
  61. package/dist/C_Code.js.map +1 -1
  62. package/dist/C_Code2.js +1 -1
  63. package/dist/C_Code2.js.map +1 -1
  64. package/dist/{C_CollapsePanel-CWkFCqNQ.css.map → C_CollapsePanel-BSKcWSmY.css.map} +1 -1
  65. package/dist/{C_CollapsePanel-pcVJA_4z.css.map → C_CollapsePanel-DRvRq8tB.css.map} +1 -1
  66. package/dist/C_CollapsePanel.css +35 -35
  67. package/dist/C_CollapsePanel.js.map +1 -1
  68. package/dist/C_CollapsePanel2.js +1 -1
  69. package/dist/C_CollapsePanel2.js.map +1 -1
  70. package/dist/{C_ContextMenu-B3Cgz_wJ.css.map → C_ContextMenu-Bn_uhJSo.css.map} +1 -1
  71. package/dist/{C_ContextMenu-u1LixF3_.css.map → C_ContextMenu-C9iuxG2n.css.map} +1 -1
  72. package/dist/C_ContextMenu.css +17 -17
  73. package/dist/C_ContextMenu.js.map +1 -1
  74. package/dist/C_ContextMenu2.js +1 -1
  75. package/dist/C_ContextMenu2.js.map +1 -1
  76. package/dist/{C_Cron-Civir5-I.css.map → C_Cron-BIQ2By9v.css.map} +1 -1
  77. package/dist/{C_Cron-iw3qpMsy.css.map → C_Cron-BNSAGD6A.css.map} +1 -1
  78. package/dist/C_Cron.css +57 -57
  79. package/dist/C_Cron.js.map +1 -1
  80. package/dist/C_Cron2.js +1 -1
  81. package/dist/C_Cron2.js.map +1 -1
  82. package/dist/C_Date.js.map +1 -1
  83. package/dist/C_Date2.js +1 -1
  84. package/dist/C_Date2.js.map +1 -1
  85. package/dist/{C_Draggable-BCjIvIwT.css.map → C_Draggable-BDAbk4s5.css.map} +1 -1
  86. package/dist/{C_Draggable-DwkSlCOS.css.map → C_Draggable-UhfDLXop.css.map} +1 -1
  87. package/dist/C_Draggable.css +46 -46
  88. package/dist/C_Draggable.js.map +1 -1
  89. package/dist/C_Draggable2.js +1 -1
  90. package/dist/C_Draggable2.js.map +1 -1
  91. package/dist/{C_Editor-BfjjYQ9B.css.map → C_Editor-CZOaChru.css.map} +1 -1
  92. package/dist/{C_Editor-Do2StvoJ.css.map → C_Editor-kJAQq5z6.css.map} +1 -1
  93. package/dist/C_Editor.css +14 -14
  94. package/dist/C_Editor.js.map +1 -1
  95. package/dist/C_Editor2.js +1 -1
  96. package/dist/C_Editor2.js.map +1 -1
  97. package/dist/{C_FilePreview-BhcbiXsV.css.map → C_FilePreview-Bs_omgJS.css.map} +1 -1
  98. package/dist/{C_FilePreview-DJudcIbW.css.map → C_FilePreview-DbwoyF2j.css.map} +1 -1
  99. package/dist/C_FilePreview.css +91 -91
  100. package/dist/C_FilePreview.js.map +1 -1
  101. package/dist/C_FilePreview2.js +1 -1
  102. package/dist/C_FilePreview2.js.map +1 -1
  103. package/dist/{C_Form-BtcAPIRi.css.map → C_Form-SCq-DZaZ.css.map} +1 -1
  104. package/dist/{C_Form-D_gwQ7hC.css.map → C_Form-mcd1nKvF.css.map} +1 -1
  105. package/dist/C_Form.css +223 -223
  106. package/dist/C_Form.js.map +1 -1
  107. package/dist/C_Form2.js +1 -1
  108. package/dist/C_Form2.js.map +1 -1
  109. package/dist/{C_FormSearch-Bi4XYjjk.css.map → C_FormSearch-C3F8peAY.css.map} +1 -1
  110. package/dist/{C_FormSearch-DUGOoX0u.css.map → C_FormSearch-qW56bJPo.css.map} +1 -1
  111. package/dist/C_FormSearch.css +45 -45
  112. package/dist/C_FormSearch.js.map +1 -1
  113. package/dist/C_FormSearch2.js +1 -1
  114. package/dist/C_FormSearch2.js.map +1 -1
  115. package/dist/{C_FormulaEditor-CJk3SSUJ.css.map → C_FormulaEditor-ChOvDbsZ.css.map} +1 -1
  116. package/dist/{C_FormulaEditor-Cy7mjfVO.css.map → C_FormulaEditor-mfiIUDY4.css.map} +1 -1
  117. package/dist/C_FormulaEditor.css +78 -78
  118. package/dist/C_FormulaEditor.js.map +1 -1
  119. package/dist/C_FormulaEditor2.js +1 -1
  120. package/dist/C_FormulaEditor2.js.map +1 -1
  121. package/dist/C_FullCalendar-C2nsqrgS.css.map +1 -0
  122. package/dist/C_FullCalendar-DdFtXVhy.css.map +1 -0
  123. package/dist/C_FullCalendar.css +2 -2
  124. package/dist/C_FullCalendar.js.map +1 -1
  125. package/dist/C_FullCalendar2.js +1 -1
  126. package/dist/C_FullCalendar2.js.map +1 -1
  127. package/dist/{C_GlobalSearch-B6wK3m3k.css.map → C_GlobalSearch-Dq4Wo01K.css.map} +1 -1
  128. package/dist/{C_GlobalSearch-DoPjldFm.css.map → C_GlobalSearch-RB7J43gu.css.map} +1 -1
  129. package/dist/C_GlobalSearch.css +112 -112
  130. package/dist/C_GlobalSearch.js.map +1 -1
  131. package/dist/C_GlobalSearch2.js +1 -1
  132. package/dist/C_GlobalSearch2.js.map +1 -1
  133. package/dist/C_Guide.js.map +1 -1
  134. package/dist/C_Guide2.js +1 -1
  135. package/dist/C_Guide2.js.map +1 -1
  136. package/dist/C_Icon.js.map +1 -1
  137. package/dist/C_Icon2.js.map +1 -1
  138. package/dist/{C_ImageCropper-BqZpkZfU.css.map → C_ImageCropper-CdTX2nxU.css.map} +1 -1
  139. package/dist/{C_ImageCropper-CylwGuzS.css.map → C_ImageCropper-ilOqPklJ.css.map} +1 -1
  140. package/dist/C_ImageCropper.css +23 -23
  141. package/dist/C_ImageCropper.js.map +1 -1
  142. package/dist/C_ImageCropper2.js +1 -1
  143. package/dist/C_ImageCropper2.js.map +1 -1
  144. package/dist/C_Language.js.map +1 -1
  145. package/dist/C_Language2.js +1 -1
  146. package/dist/C_Language2.js.map +1 -1
  147. package/dist/{C_Login-BkdnkBKX.css.map → C_Login-B3qYkLrN.css.map} +1 -1
  148. package/dist/{C_Login-VkMM6OJ2.css.map → C_Login-xMI1_ojE.css.map} +1 -1
  149. package/dist/C_Login.css +72 -72
  150. package/dist/C_Login.js.map +1 -1
  151. package/dist/C_Login2.js +1 -1
  152. package/dist/C_Login2.js.map +1 -1
  153. package/dist/{C_Map-DNnBcY70.css.map → C_Map-CWMMN58_.css.map} +1 -1
  154. package/dist/{C_Map-LEXIx6zM.css.map → C_Map-xSR2H-9o.css.map} +1 -1
  155. package/dist/C_Map.css +4 -4
  156. package/dist/C_Map.js.map +1 -1
  157. package/dist/C_Map2.js +1 -1
  158. package/dist/C_Map2.js.map +1 -1
  159. package/dist/{C_Markdown-DwmI0_0Q.css.map → C_Markdown-C7lTVJ1S.css.map} +1 -1
  160. package/dist/{C_Markdown-k0794RW0.css.map → C_Markdown-CZDm_baQ.css.map} +1 -1
  161. package/dist/C_Markdown.css +33 -33
  162. package/dist/C_Markdown.js.map +1 -1
  163. package/dist/C_Markdown2.js +1 -1
  164. package/dist/C_Markdown2.js.map +1 -1
  165. package/dist/C_Menu.js.map +1 -1
  166. package/dist/C_Menu2.js +1 -1
  167. package/dist/C_Menu2.js.map +1 -1
  168. package/dist/{C_NotificationCenter-DT6fQ79O.css.map → C_NotificationCenter-D7GGGWg7.css.map} +1 -1
  169. package/dist/{C_NotificationCenter-DbgBiyqB.css.map → C_NotificationCenter-SSmeHA45.css.map} +1 -1
  170. package/dist/C_NotificationCenter.css +89 -89
  171. package/dist/C_NotificationCenter.js.map +1 -1
  172. package/dist/C_NotificationCenter2.js +1 -1
  173. package/dist/C_NotificationCenter2.js.map +1 -1
  174. package/dist/C_OrgChart.js.map +1 -1
  175. package/dist/C_OrgChart2.js.map +1 -1
  176. package/dist/C_Progress.js.map +1 -1
  177. package/dist/C_Progress2.js +1 -1
  178. package/dist/C_Progress2.js.map +1 -1
  179. package/dist/{C_QRCode-CFNTda_1.css.map → C_QRCode-B_1lHUdx.css.map} +1 -1
  180. package/dist/{C_QRCode-CmWr9lK-.css.map → C_QRCode-CuQRYu0s.css.map} +1 -1
  181. package/dist/C_QRCode.css +9 -9
  182. package/dist/C_QRCode.js.map +1 -1
  183. package/dist/C_QRCode2.js +1 -1
  184. package/dist/C_QRCode2.js.map +1 -1
  185. package/dist/{C_Signature-BDx4ctsE.css.map → C_Signature-Bp-RBpAl.css.map} +1 -1
  186. package/dist/{C_Signature-Bz_uNbwv.css.map → C_Signature-Cb2VW1ok.css.map} +1 -1
  187. package/dist/C_Signature.css +15 -15
  188. package/dist/C_Signature.js.map +1 -1
  189. package/dist/C_Signature2.js +1 -1
  190. package/dist/C_Signature2.js.map +1 -1
  191. package/dist/C_Skeleton.js.map +1 -1
  192. package/dist/C_Skeleton2.js.map +1 -1
  193. package/dist/{C_SplitPane-BOwr1C7K.css.map → C_SplitPane-CgGWYsRE.css.map} +1 -1
  194. package/dist/{C_SplitPane-N-a_D-7F.css.map → C_SplitPane-DGf6WEeR.css.map} +1 -1
  195. package/dist/C_SplitPane.css +31 -31
  196. package/dist/C_SplitPane.js.map +1 -1
  197. package/dist/C_SplitPane2.js +1 -1
  198. package/dist/C_SplitPane2.js.map +1 -1
  199. package/dist/C_Steps-Buyg7Axn.css.map +1 -0
  200. package/dist/C_Steps-DNY91VbQ.css.map +1 -0
  201. package/dist/C_Steps.css +38 -38
  202. package/dist/C_Steps.js.map +1 -1
  203. package/dist/C_Steps2.js +1 -1
  204. package/dist/C_Steps2.js.map +1 -1
  205. package/dist/{C_Table-BcM5LqAM.css.map → C_Table--kbQaaBv.css.map} +1 -1
  206. package/dist/{C_Table-HATVoq1F.css.map → C_Table-D631kdXC.css.map} +1 -1
  207. package/dist/C_Table.css +104 -104
  208. package/dist/C_Table.js.map +1 -1
  209. package/dist/C_Table2.js +2 -2
  210. package/dist/C_Table2.js.map +1 -1
  211. package/dist/{C_TagsView-DX3LecK1.css.map → C_TagsView-COjGNM9h.css.map} +1 -1
  212. package/dist/{C_TagsView-DqOTa8bL.css.map → C_TagsView-zUDj9S06.css.map} +1 -1
  213. package/dist/C_TagsView.css +36 -36
  214. package/dist/C_TagsView.js.map +1 -1
  215. package/dist/C_TagsView2.js +1 -1
  216. package/dist/C_TagsView2.js.map +1 -1
  217. package/dist/C_Theme.js.map +1 -1
  218. package/dist/C_Theme2.js +1 -1
  219. package/dist/C_Theme2.js.map +1 -1
  220. package/dist/C_Time-BQ9PGy8B.css.map +1 -0
  221. package/dist/C_Time-CO73krC6.css.map +1 -0
  222. package/dist/C_Time.css +5 -5
  223. package/dist/C_Time.js.map +1 -1
  224. package/dist/C_Time2.js +1 -1
  225. package/dist/C_Time2.js.map +1 -1
  226. package/dist/{C_Timeline-BKkimrZx.css.map → C_Timeline-4rk0Dzgn.css.map} +1 -1
  227. package/dist/{C_Timeline-DTuSCX6p.css.map → C_Timeline-DdESmqwL.css.map} +1 -1
  228. package/dist/C_Timeline.css +45 -45
  229. package/dist/C_Timeline.js.map +1 -1
  230. package/dist/C_Timeline2.js +1 -1
  231. package/dist/C_Timeline2.js.map +1 -1
  232. package/dist/{C_Transfer-BOB6OBqS.css.map → C_Transfer-B-vjvhjI.css.map} +1 -1
  233. package/dist/{C_Transfer-Dpq7ezWC.css.map → C_Transfer-EzdHzZNv.css.map} +1 -1
  234. package/dist/C_Transfer.css +31 -31
  235. package/dist/C_Transfer.js.map +1 -1
  236. package/dist/C_Transfer2.js +1 -1
  237. package/dist/C_Transfer2.js.map +1 -1
  238. package/dist/{C_Tree-D98nX9qT.css.map → C_Tree-CsXgGfhn.css.map} +1 -1
  239. package/dist/{C_Tree-ulfm7b-P.css.map → C_Tree-P7eRpnOa.css.map} +1 -1
  240. package/dist/C_Tree.css +33 -33
  241. package/dist/C_Tree.js.map +1 -1
  242. package/dist/C_Tree2.js +1 -1
  243. package/dist/C_Tree2.js.map +1 -1
  244. package/dist/{C_Upload-BR9fg5r4.css.map → C_Upload-CHjiVVh7.css.map} +1 -1
  245. package/dist/{C_Upload-CPqf74Ea.css.map → C_Upload-DE3OLsZD.css.map} +1 -1
  246. package/dist/C_Upload.css +50 -50
  247. package/dist/C_Upload.js.map +1 -1
  248. package/dist/C_Upload2.js +2 -2
  249. package/dist/C_Upload2.js.map +1 -1
  250. package/dist/{C_VideoPlayer-4J96tKfK.css.map → C_VideoPlayer-CnaNOFtW.css.map} +1 -1
  251. package/dist/{C_VideoPlayer-D35seHkm.css.map → C_VideoPlayer-cnP88zNV.css.map} +1 -1
  252. package/dist/C_VideoPlayer.css +68 -68
  253. package/dist/C_VideoPlayer.js.map +1 -1
  254. package/dist/C_VideoPlayer2.js +3 -3
  255. package/dist/C_VideoPlayer2.js.map +1 -1
  256. package/dist/{C_VtableGantt-C2lxFmWg.css.map → C_VtableGantt-CZlJgvpC.css.map} +1 -1
  257. package/dist/{C_VtableGantt-Dwnkw_WL.css.map → C_VtableGantt-DKfQkql0.css.map} +1 -1
  258. package/dist/C_VtableGantt.css +15 -15
  259. package/dist/C_VtableGantt.js.map +1 -1
  260. package/dist/C_VtableGantt2.js +1 -1
  261. package/dist/C_VtableGantt2.js.map +1 -1
  262. package/dist/{C_WaterFall-C4HDqf-a.css.map → C_WaterFall-BJ_39ext.css.map} +1 -1
  263. package/dist/{C_WaterFall-HWB-gPON.css.map → C_WaterFall-cYc1vntE.css.map} +1 -1
  264. package/dist/C_WaterFall.css +16 -16
  265. package/dist/C_WaterFall.js.map +1 -1
  266. package/dist/C_WaterFall2.js +1 -1
  267. package/dist/C_WaterFall2.js.map +1 -1
  268. package/dist/{C_WorkFlow-2hJfvvTK.css.map → C_WorkFlow-BFzRGGhJ.css.map} +1 -1
  269. package/dist/{C_WorkFlow-DHoNjl8-.css.map → C_WorkFlow-DSyCOvRp.css.map} +1 -1
  270. package/dist/C_WorkFlow.css +193 -193
  271. package/dist/C_WorkFlow.js.map +1 -1
  272. package/dist/C_WorkFlow2.js +1 -1
  273. package/dist/C_WorkFlow2.js.map +1 -1
  274. package/dist/constants.d.ts +1 -1
  275. package/dist/constants2.d.ts +2 -2
  276. package/dist/constants3.d.ts +1 -1
  277. package/dist/constants4.d.ts +1 -1
  278. package/dist/constants5.d.ts +2 -2
  279. package/dist/data.d.ts +1 -1
  280. package/dist/index.vue.d.ts +2 -2
  281. package/dist/index11.vue.d.ts +2 -2
  282. package/dist/index12.vue.d.ts +1 -1
  283. package/dist/index13.vue.d.ts +2 -2
  284. package/dist/index14.vue.d.ts +3 -3
  285. package/dist/index15.vue.d.ts +6 -6
  286. package/dist/index17.vue.d.ts +1 -1
  287. package/dist/index18.vue.d.ts +2 -2
  288. package/dist/index2.vue.d.ts +6 -6
  289. package/dist/index20.vue.d.ts +1 -1
  290. package/dist/index21.vue.d.ts +2 -2
  291. package/dist/index22.vue.d.ts +2 -2
  292. package/dist/index24.vue.d.ts +1 -1
  293. package/dist/index26.vue.d.ts +3 -3
  294. package/dist/index27.vue.d.ts +1 -1
  295. package/dist/index28.vue.d.ts +2 -2
  296. package/dist/index3.vue.d.ts +2 -2
  297. package/dist/index4.vue.d.ts +2 -2
  298. package/dist/index6.vue.d.ts +3 -3
  299. package/dist/style.css +1991 -1991
  300. package/dist/useCalendarEvents.d.ts +1 -1
  301. package/dist/useCollapsePanel.d.ts +3 -3
  302. package/dist/useCropperCore.d.ts +4 -4
  303. package/dist/useDraggableLayout.d.ts +2 -2
  304. package/dist/useDynamicFormState.d.ts +13 -13
  305. package/dist/useEdgeInteraction.d.ts +1 -1
  306. package/dist/useInfiniteScroll.d.ts +3 -3
  307. package/dist/useModalEdit.d.ts +3 -3
  308. package/dist/useQRCode.d.ts +3 -3
  309. package/dist/useSignatureHistory.d.ts +1 -1
  310. package/dist/useSplitResize.d.ts +5 -5
  311. package/dist/useTimeSelection.d.ts +2 -2
  312. package/dist/useTreeOperations.d.ts +4 -4
  313. package/dist/useWorkflowValidation.d.ts +4 -4
  314. package/package.json +4 -7
  315. package/dist/C_ActionBar-DYG0Yf3A.css.map +0 -1
  316. package/dist/C_ActionBar-MAjRhqcI.css.map +0 -1
  317. package/dist/C_Cascade-Dq0S5Jkm.css.map +0 -1
  318. package/dist/C_Cascade-IUUHIh7r.css.map +0 -1
  319. package/dist/C_Code-BFi5xxnM.css.map +0 -1
  320. package/dist/C_Code-CZ7yfnri.css.map +0 -1
  321. package/dist/C_FullCalendar-BQA0OjGB.css.map +0 -1
  322. package/dist/C_FullCalendar-ChJUosAi.css.map +0 -1
  323. package/dist/C_Steps-Bk1krgiR.css.map +0 -1
  324. package/dist/C_Steps-Dn2CMpy1.css.map +0 -1
  325. package/dist/C_Time-BzyQVvTS.css.map +0 -1
  326. package/dist/C_Time-DmpKLQHc.css.map +0 -1
  327. package/dist/themes/glass-morphism.css +0 -1
package/dist/C_Form2.js CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Editor2.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,getCurrentInstance as f,h as p,inject as m,mergeProps as h,nextTick as g,normalizeClass as _,normalizeStyle as v,onMounted as y,openBlock as b,reactive as x,readonly as S,ref as C,renderList as w,renderSlot as T,resolveComponent as E,resolveDynamicComponent as D,toDisplayString as O,toRaw as k,unref as A,vShow as j,watch as M,watchEffect as N,withCtx as P,withDirectives as F,withKeys as I}from"vue";import{NButton as L,NCascader as R,NCheckbox as z,NCheckboxGroup as B,NColorPicker as V,NDatePicker as H,NForm as U,NFormItem as W,NInput as G,NInputNumber as ee,NRadio as te,NRadioGroup as ne,NRate as re,NSelect as ie,NSlider as ae,NSpace as oe,NSwitch as se,NTimePicker as ce,NTooltip as le,NUpload as ue}from"naive-ui";import{VueDraggable as K}from"vue-draggable-plus";import{mergeRules as de}from"@robot-admin/form-validate";const q={layout:`default`,labelPlacement:`left`,labelWidth:`auto`,size:`medium`,disabled:!1,readonly:!1,showActions:!0,validateOnChange:!1,mode:`create`},fe=[`steps`,`custom`];function pe(e){return{...q,...e}}function me(e){return!(e.showActions===!1||fe.includes(e.layout))}function J(e,t){if(Object.is(e,t))return!0;if(e==null||t==null)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>J(e,t[n]));if(typeof e==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>J(e[n],t[n])):!1}return!1}function he(e){return JSON.parse(JSON.stringify(e))}function Y(e){let t=C({}),n=i(()=>r().length>0);function r(){let n=t.value,r=new Set([...Object.keys(n),...Object.keys(e)]),i=[];for(let t of r)J(n[t],e[t])||i.push(t);return i}function a(n){return!J(t.value[n],e[n])}function o(){t.value=he(e)}return{isDirty:n,getChangedFields:r,isFieldDirty:a,markAsClean:o}}const ge={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:null,upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:null},_e=e=>ge[e]??null;function ve(e,t,n,r){let a=x({}),o=x({}),s=C({}),c=C({}),{isDirty:l,getChangedFields:u,isFieldDirty:d,markAsClean:f}=Y(a),p=i(()=>e.value.filter(e=>e.show===!1?!1:e.showWhen?e.showWhen(a):!0)),m=()=>{try{Object.keys(o).forEach(e=>delete o[e]),e.value.forEach(e=>{e.prop in a||(a[e.prop]=e.value===void 0?_e(e.type):e.value),h(e)}),g(()=>f()),b()}catch(e){console.error(`[C_Form] 初始化失败:`,e)}};function h(e){let t=[...e.rulesWhen?e.rulesWhen(a):e.rules??[]];if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({validator:()=>{let e=n(a);return e?Promise.reject(Error(e)):Promise.resolve()},trigger:[`change`,`blur`]})}if(t.length===0){delete o[e.prop];return}let n=t.every(e=>typeof e.validator==`function`);o[e.prop]=n?de(t):t}function _(){let t=e.value.filter(e=>e.rulesWhen||e.crossFieldValidator);for(let e of t)h(e)}async function v(e){if(!e.asyncOptions)return;let{prop:t}=e;c.value[t]=!0;try{let n=await e.asyncOptions(a);s.value[t]=n}catch(e){console.warn(`[C_Form] asyncOptions 加载失败 (${t}):`,e),s.value[t]=[]}finally{c.value[t]=!1}}function b(){e.value.filter(e=>e.asyncOptions).forEach(e=>v(e))}function S(){let t=e.value.filter(e=>e.valueWhen);for(let e of t){let t=e.valueWhen(a);t!==void 0&&a[e.prop]!==t&&(a[e.prop]=t)}}let w=n=>{S(),_(),e.value.filter(e=>{if(!e.asyncOptions)return!1;let t=e.dependsOn;return t?Array.isArray(t)?t.includes(n):t===n:!1}).forEach(e=>v(e)),t.value.validateOnChange&&g(()=>{E(n).catch(()=>{})})},T=async()=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);try{await n.value.validate(),r(`validate-success`,P())}catch(e){throw r(`validate-error`,e),e}},E=async e=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);let t=Array.isArray(e)?e:[e];try{await n.value.validate()}catch(e){if(!Array.isArray(e))throw e;let n=e.filter(e=>e?.some(e=>{let n=e;return typeof n.field==`string`&&t.includes(n.field)}));if(n.length>0)throw n}},D=e=>{n.value&&(e?(Array.isArray(e)?e:[e]).forEach(e=>{a[e]!==void 0&&(a[e]=a[e])}):n.value.restoreValidation())},O=async(t,n)=>{try{let n=e.value.filter(t).map(e=>e.prop);return n.length===0||await E(n),!0}catch(e){return console.warn(`[C_Form] ${n}验证失败:`,e),!1}},k=async e=>{let n=t.value.steps?.steps?.[e]?.key;return n?O(e=>e.layout?.step===n,`步骤 ${e} `):!0},A=async e=>O(t=>t.layout?.tab===e,`标签页 ${e} `),j=async()=>O(e=>!!e.layout?.dynamic,`动态字段 `),N=async e=>O(t=>t.layout?.group===e,`自定义分组 ${e} `),P=()=>({...a}),F=e=>{Object.assign(a,e)},I=()=>{try{D(),e.value.forEach(e=>{let t=e.value===void 0?_e(e.type):e.value;a[e.prop]=t}),g(()=>f())}catch(e){console.error(`[C_Form] 重置表单失败:`,e)}};return y(()=>{m(),M(()=>e.value,()=>m(),{deep:!0}),M(()=>a,e=>r(`update:modelValue`,{...e}),{deep:!0})}),{formModel:a,formRules:o,visibleOptions:p,initialize:m,handleFieldChange:w,validate:T,validateField:E,validateStep:k,validateTab:A,validateDynamicFields:j,validateCustomGroup:N,clearValidation:D,getModel:P,setFields:F,resetFields:I,setFieldValue:async(e,t,n=!1)=>{a[e]=t,n&&await E(e)},getFieldValue:e=>a[e],setFieldsValue:async(e,t=!1)=>{Object.assign(a,e),t&&await T()},handleSubmit:async()=>{try{await T(),r(`submit`,{model:P(),form:n.value})}catch(e){console.warn(`[C_Form] 表单验证失败:`,e)}},handleReset:I,isDirty:l,getChangedFields:u,isFieldDirty:d,markAsClean:f,asyncOptionsCache:s,asyncLoadingMap:c}}function X(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function ye(e){return{input:t=>p(e.NInput,{...t}),textarea:t=>p(e.NInput,{...t,type:`textarea`}),inputNumber:t=>p(e.NInputNumber,{...t}),switch:t=>p(e.NSwitch,{...t}),slider:t=>p(e.NSlider,{...t}),rate:t=>p(e.NRate,{...t}),datePicker:t=>p(e.NDatePicker,{...t}),daterange:t=>p(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>p(e.NTimePicker,{...t}),cascader:t=>p(e.NCascader,{...t}),colorPicker:t=>p(e.NColorPicker,{...t}),select:(t,n)=>p(e.NSelect,{...t,options:n.children?.map(e=>({value:e.value,label:e.label,disabled:e.disabled}))||[]}),checkbox:(t,n)=>p(e.NCheckboxGroup,{...t},{default:()=>p(e.NSpace,{},{default:()=>n.children?.map(t=>p(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>p(e.NRadioGroup,{...t},{default:()=>p(e.NSpace,{},{default:()=>n.children?.map(t=>p(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>p(e.NUpload,{fileList:t.value||[],"onUpdate:fileList":e=>{t[`onUpdate:value`]?.(e)},...n.attrs},{trigger:()=>i?.slots?.uploadClick?.()||p(e.NButton,{type:`primary`},{default:()=>`选择文件`}),tip:()=>i?.slots?.uploadTip?.()||null}),editor:(t,n,r)=>p(e.C_Editor,{editorId:`editor-${n.prop}`,modelValue:t.value||``,placeholder:n.placeholder,disabled:r.disabled,readonly:r.readonly,"onUpdate:modelValue":e=>{t[`onUpdate:value`]?.(e)},...n.attrs})}}const Z={};function be(e,t){Z[e]=t}const xe=new Set([`select`,`checkbox`,`radio`,`cascader`]);function Se(e){let{formModel:t,visibleOptions:n,config:r,handleFieldChange:a,componentMap:o,instanceSlots:s,asyncOptionsCache:c,asyncLoadingMap:l}=e,u=o,d={...ye(u),...Z},f=e=>{let n={value:t[e.prop],"onUpdate:value":n=>{t[e.prop]=n,a(e.prop)},disabled:X(e.disabled,r.value.disabled,t),readonly:X(e.readonly,r.value.readonly,t)};return e.type===`textarea`&&(n.type=`textarea`),e.placeholder&&(n.placeholder=e.placeholder),n};function m(e){let t=e.children??[],n=c.value[e.prop]??[];return n.length>0?n:t}let h=e=>{try{let t=xe.has(e.type),n=l.value[e.prop],i=t?{...e,children:m(e)}:e,a=d[i.type];if(!a)return console.warn(`[C_Form] 未支持的组件类型: ${i.type}`),null;let o=f(i);return n&&i.type===`select`&&(o.loading=!0),a({...o,...i.attrs},i,r.value,{slots:s,components:u})}catch(t){return console.error(`[C_Form] 渲染表单项失败:`,t,e),null}};function g(e){if(e.label)return e.help?p(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,p(u.NTooltip,{trigger:`hover`},{trigger:()=>p(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,innerHTML:`&#9432;`}),default:()=>e.help})]):e.label}return{renderFormItem:h,formItems:i(()=>n.value.map(e=>{let t=!!(e.rules?.length||e.rulesWhen||e.crossFieldValidator),n=g(e);return p(u.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,key:e.prop,required:t},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>h(e)})})),getBaseProps:f}}const Ce={class:`c-form-default`};var we=t(d({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(e,t)=>(b(),s(`div`,Ce,[(b(!0),s(r,null,w(e.formItems,e=>(b(),a(D(e),{key:e.key}))),128))]))}}),[[`__scopeId`,`data-v-a0e973bb`]]),Te=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=i(()=>280),o=i(()=>t.layoutConfig?.inline?.gap??16),c=i(()=>16),l=i(()=>{let e=t.layoutConfig?.inline?.align;return e===`start`||e===`end`?e:`center`}),u=i(()=>{switch(l.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return`center`}}),d=i(()=>{switch(l.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),f=i(()=>({display:`flex`,flexWrap:`wrap`,alignItems:u.value,justifyContent:d.value,gap:`${c.value}px ${o.value}px`,width:`100%`})),p=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},m=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(e,t)=>(b(),s(`div`,{class:`c-form-inline`,style:v(f.value)},[(b(!0),s(r,null,w(e.formItems,(e,t)=>(b(),s(`div`,{key:p(e,t),class:`c-form-inline-item`,style:v(m(t))},[(b(),a(D(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-f8d8544a`]]);const Ee={class:`c-grid-layout`},De={class:`config-header`},Oe={class:`config-controls`},Q={class:`config-label`},ke={class:`item-wrapper`};var Ae=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(t,{expose:n}){let d=t,f=C(!!import.meta.env?.DEV),p=x({cols:24,gutter:16,responsive:!0}),m=i(()=>d.layoutConfig?.grid||{}),g=i(()=>m.value.showConfigPanel),_=i(()=>m.value.showStats),v=i(()=>({cols:g.value?p.cols:m.value.cols??24,gutter:g.value?p.gutter:m.value.gutter??16,responsive:g.value?p.responsive:m.value.responsive??!0})),y=i(()=>({cols:v.value.cols,xGap:v.value.gutter,yGap:v.value.gutter,responsive:v.value.responsive?`screen`:`self`})),S=i(()=>[{key:`cols`,label:`列数`,component:`NInputNumber`,value:i({get:()=>p.cols,set:e=>p.cols=e}),props:{min:1,max:48,size:`small`}},{key:`gutter`,label:`间距`,component:`NInputNumber`,value:i({get:()=>p.gutter,set:e=>p.gutter=e}),props:{min:0,max:48,size:`small`}},{key:`responsive`,label:`响应式`,component:`NSwitch`,value:i({get:()=>p.responsive,set:e=>p.responsive=e}),props:{size:`small`}}]),T=i(()=>`列数: ${v.value.cols} | 间距: ${v.value.gutter}px | 项目: ${d.formItems.length}个`),A=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,j=(e,t)=>{let n=d.options?.[e]?.layout;return n?.[t]??n?.grid?.[t]},F=()=>{let{cols:e}=v.value;return e<=12?e:e<=24?12:8},I=e=>{let t=j(e,`span`),n=j(e,`offset`),r=j(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=v.value.cols?t:F(),offset:typeof n==`number`&&n>=0&&n<v.value.cols?n:0,suffix:!!r}},L=()=>{f.value&&console.log(`Grid config updated:`,k(p))};return M(m,e=>{e.cols!==void 0&&(p.cols=e.cols),e.gutter!==void 0&&(p.gutter=e.gutter),e.responsive!==void 0&&(p.responsive=e.responsive)},{immediate:!0}),f.value&&N(()=>{let e=d.options.length,t=d.formItems.length;e>0&&e!==t&&console.warn(`[GridLayout] 配置数量(${e})与表单项数量(${t})不匹配`)}),n({updateGridConfig:e=>Object.assign(p,e),getCurrentConfig:()=>({...v.value}),getGridInfo:()=>({...v.value,itemCount:d.formItems.length})}),(t,n)=>{let i=E(`NCard`),d=E(`NGridItem`),p=E(`NGrid`),m=E(`NAlert`);return b(),s(`div`,Ee,[o(` 配置面板 `),g.value?(b(),a(i,{key:0,size:`small`,bordered:!1,class:`config-panel`},{header:P(()=>[c(`div`,De,[u(e,{name:`mdi:view-grid`,size:18}),n[0]||=c(`span`,null,`网格配置`,-1)])]),default:P(()=>[c(`div`,Oe,[(b(!0),s(r,null,w(S.value,e=>(b(),s(`div`,{key:e.key,class:`config-item`},[c(`span`,Q,O(e.label)+`:`,1),(b(),a(D(e.component),h({value:e.value,"onUpdate:value":t=>e.value=t},{ref_for:!0},e.props,{"onUpdate:value":L}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1})):o(`v-if`,!0),o(` 网格容器 `),u(p,h(y.value,{class:`grid-container`}),{default:P(()=>[(b(!0),s(r,null,w(t.formItems,(e,t)=>(b(),a(d,h({key:A(e,t)},{ref_for:!0},I(t),{class:`grid-item`}),{default:P(()=>[c(`div`,ke,[(b(),a(D(e)))])]),_:2},1040))),128))]),_:1},16),o(` 统计信息 `),_.value&&f.value?(b(),a(m,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:P(()=>[u(e,{name:`mdi:information-outline`,size:16}),n[1]||=l(` 网格信息 `,-1)]),default:P(()=>[l(` `+O(T.value),1)]),_:1})):o(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-0f32651a`]]);const je={class:`c-form-card`},Me={class:`flex items-center gap-2`},Ne={class:`config-controls`},Pe={class:`config-item`},Fe={class:`flex items-center gap-2`},Ie={class:`text-xs min-w-12`},Le={class:`config-item`},Re={class:`config-item`},ze={class:`config-item`},Be={class:`flex items-center gap-3`},Ve={class:`card-header`},He={class:`header-info`},Ue={class:`header-text`},We={key:0},Ge={class:`header-actions`},Ke={class:`field-stats`},qe={class:`card-content`},Je={key:0,class:`progress-section`},Ye={class:`action-content`},Xe={class:`status-summary`},Ze={class:`status-item`},Qe={class:`progress-display`},$e={class:`text-sm min-w-12`},et={class:`action-buttons`};var tt=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},formData:{default:()=>({})}},setup(t){let n=t,d=C(20),f=C(!0),p=C(!0),m=C(!0),h=C(`vertical`),g=C({}),x=i(()=>n.layoutConfig?.card?.groups||[]),S=i(()=>x.value.length>0),T=i(()=>n.layoutConfig?.card?.showLayoutConfig??!0),k=i(()=>n.layoutConfig?.card?.showActionPanel??!0),A=i(()=>S.value?`layout-${h.value}`:`layout-single`),M=i(()=>{if(!S.value)return[];let e=new Map;return x.value.forEach(t=>{e.set(t.key,[])}),n.formItems.forEach((t,r)=>{let i=(n.options?.[r])?.layout?.group||x.value[0]?.key||`default`;e.has(i)||e.set(i,[]),e.get(i).push(t)}),x.value.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),N=i(()=>{let e=Object.keys(g.value);return e.length>0&&e.every(e=>g.value[e])}),I=i(()=>{if(!n.options||n.options.length===0)return 0;let e=n.options.filter(e=>{let t=n.formData?.[e.prop||``];return L(t)}).length;return Math.round(e/n.options.length*100)}),L=e=>e==null?!1:Array.isArray(e)?e.length>0:typeof e==`string`?e.trim()!==``:!0,R=e=>n.options?n.options.filter(t=>t.layout?.group===e.config.key).filter(e=>{let t=n.formData?.[e.prop||``];return L(t)}).length:0,z=e=>{if(e.items.length===0)return 0;let t=R(e);return Math.round(t/e.items.length*100)},B=e=>{let t={basic:`mdi:account`,contact:`mdi:phone`,preferences:`mdi:cog`,settings:`mdi:cog`,info:`mdi:information`,default:`mdi:form-select`};return t[e]||t.default},V=e=>{g.value[e]=!g.value[e]},H=()=>{let e=!N.value;x.value.forEach(t=>{g.value[t.key]=e})};return y(()=>{let e=n.layoutConfig?.card;e?.direction&&(h.value=e.direction),e?.showProgress!==void 0&&(m.value=e.showProgress),x.value.forEach(e=>{g.value[e.key]=!1})}),(t,n)=>{let i=E(`NSlider`),y=E(`NSwitch`),x=E(`NRadio`),C=E(`NRadioGroup`),L=E(`NCard`),U=E(`NBadge`),W=E(`NButton`),G=E(`NProgress`);return b(),s(`div`,je,[o(` 布局配置面板 `),S.value&&T.value?(b(),a(L,{key:0,class:`layout-config-panel`,bordered:!1},{header:P(()=>[c(`div`,Me,[u(e,{name:`mdi:cog`,size:18}),n[4]||=c(`span`,null,`布局配置`,-1)])]),default:P(()=>[c(`div`,Ne,[c(`div`,Pe,[n[5]||=c(`span`,null,`卡片间距`,-1),c(`div`,Fe,[u(i,{value:d.value,"onUpdate:value":n[0]||=e=>d.value=e,min:12,max:32,step:4,class:`w-24`},null,8,[`value`]),c(`span`,Ie,O(d.value)+`px`,1)])]),c(`div`,Le,[n[6]||=c(`span`,null,`显示图标`,-1),u(y,{value:f.value,"onUpdate:value":n[1]||=e=>f.value=e,size:`small`},null,8,[`value`])]),c(`div`,Re,[n[7]||=c(`span`,null,`可折叠`,-1),u(y,{value:p.value,"onUpdate:value":n[2]||=e=>p.value=e,size:`small`},null,8,[`value`])]),c(`div`,ze,[n[10]||=c(`span`,null,`布局方向`,-1),u(C,{value:h.value,"onUpdate:value":n[3]||=e=>h.value=e,size:`small`},{default:P(()=>[u(x,{value:`vertical`},{default:P(()=>n[8]||=[l(`垂直`,-1)]),_:1,__:[8]}),u(x,{value:`horizontal`},{default:P(()=>n[9]||=[l(`水平`,-1)]),_:1,__:[9]})]),_:1},8,[`value`])])])]),_:1})):o(`v-if`,!0),o(` 表单内容区域 `),c(`div`,{class:_([`form-content`,A.value]),style:v({gap:`${d.value}px`})},[o(` 无分组时的单卡片模式 `),S.value?(b(),s(r,{key:1},[o(` 有分组时的多卡片模式 `),(b(!0),s(r,null,w(M.value,t=>(b(),a(L,{key:t.config.key,class:_([`group-card`,[`${t.config.key}-card`,{collapsed:p.value&&g.value[t.config.key]}]]),hoverable:``},{header:P(()=>[c(`div`,Ve,[c(`div`,He,[f.value&&t.config.icon?(b(),a(e,{key:0,name:t.config.icon,size:20,class:`card-icon`},null,8,[`name`])):f.value?(b(),a(e,{key:1,name:B(t.config.key),size:20,class:`card-icon`},null,8,[`name`])):o(`v-if`,!0),c(`div`,Ue,[c(`h3`,null,O(t.config.title),1),t.config.description?(b(),s(`p`,We,O(t.config.description),1)):o(`v-if`,!0)])]),c(`div`,Ge,[o(` 统计信息 `),c(`div`,Ke,[u(U,{value:t.items.length,type:`info`,"show-zero":``},null,8,[`value`]),u(U,{value:`${R(t)}/${t.items.length}`,type:R(t)===t.items.length?`success`:`warning`},null,8,[`value`,`type`])]),o(` 折叠按钮 `),p.value?(b(),a(W,{key:0,quaternary:``,circle:``,size:`small`,onClick:e=>V(t.config.key)},{icon:P(()=>[u(e,{name:g.value[t.config.key]?`mdi:chevron-down`:`mdi:chevron-up`,size:18},null,8,[`name`])]),_:2},1032,[`onClick`])):o(`v-if`,!0)])])]),default:P(()=>[F(c(`div`,qe,[o(` 进度指示器 `),m.value?(b(),s(`div`,Je,[u(G,{percentage:z(t),color:z(t)===100?`#52c41a`:`#1890ff`,"show-indicator":!1,class:`mb-4`},null,8,[`percentage`,`color`])])):o(`v-if`,!0),o(` 表单项 `),(b(!0),s(r,null,w(t.items,e=>(b(),a(D(e),{key:e.key}))),128))],512),[[j,!g.value[t.config.key]]])]),_:2},1032,[`class`]))),128))],64)):(b(),a(L,{key:0,class:`single-card`,hoverable:``},{header:P(()=>[c(`div`,Be,[f.value?(b(),a(e,{key:0,name:`mdi:form-select`,size:18,style:{color:`#3b82f6`}})):o(`v-if`,!0),n[11]||=c(`span`,null,`表单信息`,-1)])]),default:P(()=>[(b(!0),s(r,null,w(t.formItems,e=>(b(),a(D(e),{key:e.key}))),128))]),_:1}))],6),o(` 统一操作面板 `),S.value&&k.value?(b(),a(L,{key:1,class:`action-panel`,bordered:!1},{default:P(()=>[c(`div`,Ye,[c(`div`,Xe,[c(`div`,Ze,[n[12]||=c(`span`,{class:`label`},`完成进度:`,-1),c(`div`,Qe,[u(G,{percentage:I.value,"show-indicator":!1,color:I.value===100?`#52c41a`:`#1890ff`,class:`flex-1`},null,8,[`percentage`,`color`]),c(`span`,$e,O(I.value)+`%`,1)])])]),c(`div`,et,[p.value?(b(),a(W,{key:0,onClick:H},{icon:P(()=>[u(e,{name:N.value?`mdi:unfold-more-horizontal`:`mdi:unfold-less-horizontal`,size:18},null,8,[`name`])]),default:P(()=>[l(` `+O(N.value?`展开全部`:`折叠全部`),1)]),_:1})):o(`v-if`,!0)])])]),_:1})):o(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-6fd4b008`]]);const nt={class:`c-form-tabs`},rt={key:0,class:`single-panel`},it={class:`tabs-container`},at={key:0,class:`tab-header`},ot={class:`tab-description`},st={class:`tab-form-items`},ct={key:0,class:`tabs-actions`};var lt=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:n,emit:d}){let f=t,p=d,m=C(``),h=x({}),_=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),v=i(()=>{let e=_(),t=f.layoutConfig?.tabs||{};return{...e,...t}}),k=i(()=>v.value.tabs.length>0),A=i(()=>{if(!k.value)return[];let e=new Map;return v.value.tabs.forEach(t=>{e.set(t.key,[])}),f.formItems.forEach((t,n)=>{let r=(f.options?.[n])?.layout?.tab||v.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),v.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),j=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`tab-item-${t}`},N=async()=>{if(!m.value)return!0;try{return p(`tab-validate`,m.value),h[m.value]=!0,!0}catch(e){return console.error(`[Tabs Layout] 标签验证失败:`,e),h[m.value]=!1,!1}},F=async e=>{if(!e||e===m.value)return!0;if(!A.value.some(t=>t.config.key===e))return!1;try{return v.value.validateBeforeSwitch&&m.value&&!await N()?!1:(m.value&&p(`tab-before-change`,m.value,e),m.value=e,p(`tab-change`,e,A.value.findIndex(t=>t.config.key===e)),!0)}catch(e){return console.error(`[Tabs Layout] 标签切换失败:`,e),!1}},I=e=>{F(e)},L=e=>{p(`tab-close`,e)},R=()=>{p(`tab-add`)},z=()=>{if(!k.value||A.value.length===0)return;let{defaultTab:e}=v.value,t=e||A.value[0]?.config.key;t&&t!==m.value&&(m.value=t,g(()=>{let e=A.value.findIndex(e=>e.config.key===t);e>=0&&p(`tab-change`,t,e)}))};return y(()=>{z()}),M(i(()=>v.value.tabs.map(e=>e.key).join(`,`)),()=>{m.value&&!v.value.tabs.some(e=>e.key===m.value)&&z()}),M(()=>v.value.defaultTab,e=>{e&&e!==m.value&&F(e)}),n({switchToTab:F,validateCurrentTab:N,currentTab:S(m),totalTabs:i(()=>A.value.length),tabsWithItems:S(A)}),(t,n)=>{let i=E(`NBadge`),d=E(`NSpace`),f=E(`NEmpty`),p=E(`NTabPane`),h=E(`NTabs`),g=E(`NButton`);return b(),s(`div`,nt,[o(` 无标签配置时的单一面板模式 `),k.value?(b(),s(r,{key:1},[o(` 有标签配置时的分标签模式 `),c(`div`,it,[u(h,{value:m.value,"onUpdate:value":[n[0]||=e=>m.value=e,I],type:v.value.type,size:v.value.size,placement:v.value.placement,animated:v.value.animated,closable:v.value.closable,addable:v.value.addable,class:`form-tabs`,onClose:L,onAdd:R},{default:P(()=>[(b(!0),s(r,null,w(A.value,t=>(b(),a(p,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled,closable:t.config.closable},{tab:P(()=>[u(d,{align:`center`,size:8},{default:P(()=>[t.config.icon?(b(),a(e,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):o(`v-if`,!0),c(`span`,null,O(t.config.title),1),v.value.showCount?(b(),a(i,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):o(`v-if`,!0)]),_:2},1024)]),default:P(()=>[v.value.showTabHeader&&t.config.description?(b(),s(`div`,at,[c(`p`,ot,O(t.config.description),1)])):o(`v-if`,!0),c(`div`,st,[(b(!0),s(r,null,w(t.items,(e,t)=>(b(),a(D(e),{key:j(e,t)}))),128))]),t.items.length===0?(b(),a(f,{key:1,description:`暂无表单项`,class:`tab-empty`})):o(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),o(` 标签页操作按钮 `),v.value.showActions?(b(),s(`div`,ct,[u(d,{justify:`space-between`},{default:P(()=>[u(d,null,{default:P(()=>[v.value.validateBeforeSwitch?(b(),a(g,{key:0,type:`primary`,size:`small`,onClick:N},{default:P(()=>[u(e,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),n[1]||=l(` 验证当前标签 `,-1)]),_:1,__:[1]})):o(`v-if`,!0)]),_:1}),u(d,null,{default:P(()=>[T(t.$slots,`tab-actions`,{currentTab:m.value,totalTabs:A.value.length,validateTab:N,switchToTab:F},void 0,!0)]),_:3})]),_:3})])):o(`v-if`,!0)])],2112)):(b(),s(`div`,rt,[(b(!0),s(r,null,w(t.formItems,(e,t)=>(b(),a(D(e),{key:j(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-e847fa5c`]]);const ut={class:`c-form-steps`},dt={key:0,class:`single-panel`},ft={class:`steps-container`},pt={key:0,class:`step-header`},mt={class:`step-title`},ht={key:0,class:`step-description`},gt={class:`step-form-items`},_t={class:`steps-actions`};var vt=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:n,emit:d}){let f=t,p=d,m=C(0),h=C(!1),g=x({}),_=i(()=>{let e=f.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),v=i(()=>_.value.steps.length>0),k=i(()=>{if(!v.value)return[];let e=new Map;return _.value.steps.forEach(t=>{e.set(t.key,[])}),f.formItems.forEach((t,n)=>{let r=(f.options?.[n])?.layout?.step||_.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),_.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),A=i(()=>{for(let e=0;e<=m.value;e++)if(g[e]===!1)return`error`;return`process`}),N=i(()=>m.value===0),I=i(()=>m.value===k.value.length-1),L=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},R=async()=>{try{let e=await Promise.resolve(p(`step-validate`,m.value))!==!1;return g[m.value]=e,e}catch(e){return console.error(`[Steps Layout] 步骤验证失败:`,e),g[m.value]=!1,!1}},z=async(e,t=!1)=>{if(e<0||e>=k.value.length)return!1;if(e===m.value)return!0;try{return h.value=!0,t&&_.value.validateBeforeNext&&!await R()?!1:(await p(`step-before-change`,m.value,e),m.value=e,p(`step-change`,m.value,k.value[m.value].config.key),!0)}catch(e){return console.error(`[Steps Layout] 步骤切换失败:`,e),!1}finally{h.value=!1}},B=async()=>{await z(m.value+1,!0)},V=()=>{z(m.value-1)},H=async e=>{k.value[e]?.config.disabled||await z(e,e>m.value)},U=()=>{if(!v.value||k.value.length===0)return;let{defaultStep:e}=_.value;m.value=e>=0&&e<k.value.length&&!k.value[e]?.config.disabled?e:0};return M(i(()=>_.value.steps.map(e=>e.key).join(`,`)),()=>{U()}),y(()=>{U()}),n({nextStep:B,previousStep:V,goToStep:H,validateCurrentStep:R,currentStep:S(m),totalSteps:i(()=>k.value.length)}),(t,n)=>{let i=E(`NStep`),d=E(`NSteps`),f=E(`NCard`),p=E(`NButton`),g=E(`NSpace`);return b(),s(`div`,ut,[o(` 无步骤配置时的单一面板模式 `),v.value?(b(),s(r,{key:1},[o(` 有步骤配置时的分步骤模式 `),c(`div`,ft,[o(` 步骤指示器 `),u(d,{current:m.value+1,status:A.value,size:_.value.size,vertical:_.value.vertical,class:`steps-indicator`},{default:P(()=>[(b(!0),s(r,null,w(k.value,e=>(b(),a(i,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),o(` 步骤内容区域 `),u(f,{class:`steps-content`,bordered:!1},{default:P(()=>[(b(!0),s(r,null,w(k.value,(e,t)=>F((b(),s(`div`,{key:e.config.key,class:`step-panel`},[o(` 步骤标题和描述 `),_.value.showStepHeader?(b(),s(`div`,pt,[c(`h3`,mt,O(e.config.title),1),e.config.description?(b(),s(`p`,ht,O(e.config.description),1)):o(`v-if`,!0)])):o(`v-if`,!0),o(` 步骤内的表单项 `),c(`div`,gt,[(b(!0),s(r,null,w(e.items,(e,t)=>(b(),a(D(e),{key:L(e,t)}))),128))])])),[[j,m.value===t]])),128))]),_:1}),o(` 步骤操作按钮 `),c(`div`,_t,[u(g,{justify:`space-between`},{default:P(()=>[m.value>0?(b(),a(p,{key:0,disabled:h.value,onClick:V},{default:P(()=>[u(e,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),l(` `+O(_.value.prevButtonText),1)]),_:1},8,[`disabled`])):o(`v-if`,!0),n[0]||=c(`div`,null,null,-1),u(g,null,{default:P(()=>[m.value<k.value.length-1?(b(),a(p,{key:0,type:`primary`,loading:h.value,onClick:B},{default:P(()=>[l(O(_.value.nextButtonText)+` `,1),u(e,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`loading`])):o(`v-if`,!0),T(t.$slots,`step-actions`,{currentStep:m.value,totalSteps:k.value.length,isFirstStep:N.value,isLastStep:I.value,nextStep:B,previousStep:V,goToStep:H},void 0,!0)]),_:3})]),_:3,__:[0]})])])],2112)):(b(),s(`div`,dt,[(b(!0),s(r,null,w(t.formItems,(e,t)=>(b(),a(D(e),{key:L(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-04fd4a74`]]);const yt={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},$=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}],bt=()=>{let e=x({config:{...yt},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),t=i(()=>[...e.baseFields,...e.dynamicFields.map(t=>({...t,show:!e.hiddenFieldIds.has(t.prop)}))]),n=i(()=>t.value.filter(e=>e.show!==!1)),r=i(()=>e.dynamicFields.length),a=i(()=>e.hiddenFieldIds.size),o=i(()=>e.dynamicFields.length<e.config.maxFields),s=i(()=>e.hiddenFieldIds.size===0);return{state:S(e),allFields:t,visibleFields:n,dynamicFieldsCount:r,hiddenFieldsCount:a,canAddMoreFields:o,allVisible:s,FIELD_TYPE_OPTIONS:$,addField:(t={})=>{if(!o.value){console.warn(`[useDynamicFormState] 已达到最大字段数量限制`);return}e.fieldCounter++;let n=t.type||$[Math.floor(Math.random()*$.length)].value,r={id:`dynamic_field_${e.fieldCounter}`,type:n,prop:t.prop||`dynamic_${e.fieldCounter}`,label:t.label||`动态字段 ${e.fieldCounter}`,placeholder:t.placeholder||`请输入${t.label||`内容`}`,visible:!0,removable:!0,created:Date.now(),layout:t.layout||{span:12},...t};e.dynamicFields.push(r),console.log(`[useDynamicFormState] 添加字段:`,r)},removeField:t=>{if(e.dynamicFields.length===0){console.warn(`[useDynamicFormState] 没有可移除的动态字段`);return}let n=t??e.dynamicFields.length-1;if(n<0||n>=e.dynamicFields.length){console.warn(`[useDynamicFormState] 字段索引超出范围`);return}let r=e.dynamicFields.splice(n,1)[0];r&&(e.hiddenFieldIds.delete(r.prop),console.log(`[useDynamicFormState] 移除字段:`,r.prop))},clearDynamicFields:()=>{console.log(`[useDynamicFormState] 清空动态字段:`,e.dynamicFields.length),e.dynamicFields.forEach(t=>e.hiddenFieldIds.delete(t.prop)),e.dynamicFields.length=0,e.fieldCounter=0},toggleFieldVisibility:t=>{e.hiddenFieldIds.has(t)?(e.hiddenFieldIds.delete(t),console.log(`[useDynamicFormState] 显示字段:`,t)):(e.hiddenFieldIds.add(t),console.log(`[useDynamicFormState] 隐藏字段:`,t))},toggleAllVisibility:()=>{s.value?(e.dynamicFields.forEach(t=>{e.hiddenFieldIds.add(t.prop)}),console.log(`[useDynamicFormState] 隐藏所有动态字段`)):(e.hiddenFieldIds.clear(),console.log(`[useDynamicFormState] 显示所有字段`))},updateConfig:t=>{Object.assign(e.config,t),console.log(`[useDynamicFormState] 更新配置:`,t)},exportConfig:()=>{let t={baseFields:e.baseFields,dynamicFields:e.dynamicFields,config:e.config,hiddenFields:Array.from(e.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(t,null,2)},initialize:(t,n={})=>{console.log(`[useDynamicFormState] 初始化状态:`,{baseFieldsCount:t.length,config:n}),e.baseFields=[...t],Object.assign(e.config,n),e.isInitialized=!0,console.log(`[useDynamicFormState] 初始化完成`)}}},xt=Symbol(`dynamicFormState`),St={class:`c-form-dynamic`},Ct={key:0,class:`dynamic-controls`},wt={class:`max-fields-config`},Tt={class:`dynamic-stats`},Et={class:`dynamic-controls-fallback`},Dt={class:`dynamic-form-items`};var Ot=t(d({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},dynamicFormState:{default:null}},emits:[`field-add`,`field-remove`,`fields-clear`],setup(t,{expose:n}){let d=t,f=m(xt,null),p=i(()=>d.dynamicFormState||f),h=i(()=>!!p.value),g=i(()=>d.layoutConfig?.dynamic?.grid?.cols??24),v=i(()=>d.layoutConfig?.dynamic?.grid?.gutter??16),y=i(()=>d.layoutConfig?.dynamic?.controls?.showControls!==!1),x=i(()=>p.value?.state.config.maxFields??d.layoutConfig?.dynamic?.dynamic?.maxFields??50),S=i(()=>p.value?.dynamicFieldsCount.value??0),C=i(()=>p.value?.canAddMoreFields.value??!1),T=i(()=>d.formItems.length),k=(e,t)=>e.key?.toString()||e.props?.path||`dynamic-item-${t}`,A=e=>{let t=d.options?.[e]?.layout?.span;return typeof t==`number`&&t>0&&t<=g.value?t:Math.min(12,g.value)},j=e=>{if(!p.value)return!1;let t=e.props?.path||e.key?.toString()||``;return p.value.state.dynamicFields.some(e=>e.prop===t)};return n({addField:()=>p.value?.addField(),removeField:()=>p.value?.removeField(),clearAllDynamic:()=>p.value?.clearDynamicFields(),isDynamicStateAvailable:h,dynamicState:p}),import.meta.env?.DEV&&N(()=>{let{options:e,formItems:t}=d;e&&e.length!==t.length&&console.warn(`[Dynamic Layout] 配置项数量(${e.length})与表单项数量(${t.length})不匹配`),console.log(`[Dynamic Layout]`,h.value?`动态模式已启用`:`运行在静态模式`,{totalFields:T.value,dynamicFields:S.value,stateSource:d.dynamicFormState?`props透传`:`inject注入`})}),(t,n)=>{let i=E(`NBadge`),d=E(`NButton`),f=E(`NSpace`),m=E(`NInputNumber`),M=E(`NTag`),N=E(`NCard`),F=E(`NAlert`),I=E(`NGridItem`),L=E(`NGrid`);return b(),s(`div`,St,[o(` 动态控制面板 `),y.value&&h.value?(b(),s(`div`,Ct,[u(N,{size:`small`,title:`动态表单控制`,bordered:!1},{"header-extra":P(()=>[u(i,{value:S.value,type:`warning`},{default:P(()=>[u(e,{name:`mdi:layers`,size:16})]),_:1},8,[`value`])]),default:P(()=>[u(f,{justify:`space-between`,align:`center`},{default:P(()=>[u(f,null,{default:P(()=>[u(d,{size:`small`,type:`primary`,disabled:!C.value,onClick:n[0]||=e=>p.value.addField()},{icon:P(()=>[u(e,{name:`mdi:plus`,size:14})]),default:P(()=>[l(` 添加字段 (`+O(S.value)+`/`+O(x.value)+`) `,1)]),_:1},8,[`disabled`]),u(d,{size:`small`,type:`warning`,disabled:S.value===0,onClick:n[1]||=e=>p.value.removeField()},{icon:P(()=>[u(e,{name:`mdi:minus`,size:14})]),default:P(()=>[n[4]||=l(` 移除字段 `,-1)]),_:1,__:[4]},8,[`disabled`]),u(d,{size:`small`,type:`error`,disabled:S.value===0,onClick:n[2]||=e=>p.value.clearDynamicFields()},{icon:P(()=>[u(e,{name:`mdi:delete-sweep`,size:14})]),default:P(()=>[n[5]||=l(` 清空动态 `,-1)]),_:1,__:[5]},8,[`disabled`])]),_:1}),o(` 最大字段数配置 `),c(`div`,wt,[n[6]||=c(`span`,null,`最大字段数:`,-1),u(m,{value:x.value,"onUpdate:value":n[3]||=e=>e&&p.value.updateConfig({maxFields:e}),min:5,max:50,size:`small`,style:{width:`100px`}},null,8,[`value`])])]),_:1}),c(`div`,Tt,[u(f,null,{default:P(()=>[u(M,{type:`info`},{default:P(()=>[l(`总字段: `+O(T.value),1)]),_:1}),u(M,{type:`warning`},{default:P(()=>[l(`动态: `+O(S.value),1)]),_:1})]),_:1})])]),_:1})])):y.value&&!h.value?(b(),s(r,{key:1},[o(` 状态不可用时的提示 `),c(`div`,Et,[u(N,{size:`small`,title:`动态表单控制 (静态模式)`,bordered:!1},{default:P(()=>[u(F,{type:`info`,"show-icon":``},{icon:P(()=>[u(e,{name:`mdi:information-outline`,size:16})]),default:P(()=>[n[7]||=l(` 当前为静态模式,如需动态功能请在父组件中提供动态表单状态。 `,-1)]),_:1,__:[7]})]),_:1})])],2112)):o(`v-if`,!0),o(` 表单项渲染区域 `),c(`div`,Dt,[u(L,{cols:g.value,"x-gap":v.value,"y-gap":v.value},{default:P(()=>[(b(!0),s(r,null,w(t.formItems,(e,t)=>(b(),a(I,{key:k(e,t),span:A(t)},{default:P(()=>[c(`div`,{class:_([`dynamic-item-wrapper`,{"is-dynamic-field":j(e)}])},[(b(),a(D(e)))],2)]),_:2},1032,[`span`]))),128))]),_:1},8,[`cols`,`x-gap`,`y-gap`])])])}}}),[[`__scopeId`,`data-v-dd1d4f2c`]]);const kt={class:`custom-layout`},At={class:`toolbar-content`},jt={class:`mode-section`},Mt={class:`stats-section`},Nt={class:`stat-item`},Pt={class:`stat-value`},Ft={class:`stat-item`},It={class:`stat-value`},Lt={class:`actions-section`},Rt={class:`design-tools`},zt={class:`tool-group`},Bt={key:0,class:`canvas-hint`},Vt={class:`areas-container`},Ht={class:`area-header`},Ut={class:`area-info`},Wt=[`onClick`],Gt={class:`area-controls`},Kt={class:`field-preview`},qt={class:`field-label`},Jt={class:`field-type`},Yt={key:0,class:`area-drop-zone`},Xt={class:`field-name`},Zt={class:`field-type-tag`},Qt={key:0,class:`empty-layout`},$t={key:1,class:`form-container`},en={class:`form-areas`};var tn=t(d({__name:`index`,props:{options:{default:()=>[]},formItems:{default:()=>[]},formData:{default:()=>({})}},emits:[`fields-change`,`export-data`],setup(e,{emit:t}){let n=e,d=t,f=C(!0),p=C([]),m=C([]),h=C(``),g=i(()=>n.options?.length>0?n.options:n.formItems?.map(e=>{let t=e.props;return{prop:t?.path||``,label:t?.label||t?.path||``,type:`input`,show:!0}}).filter(e=>e.prop)||[]),v=i(()=>p.value.reduce((e,t)=>e+t.fields.length,0)),y=()=>`${Date.now()}-${Math.random().toString(36).substring(2,11)}`,x=e=>({input:`输入框`,select:`下拉框`,radio:`单选框`,checkbox:`复选框`,textarea:`文本域`,date:`日期`,number:`数字`})[e]||e,S=e=>n.formItems?.find(t=>t.props?.path===e.prop)||null,T=e=>{let t={id:y(),title:`${e===`horizontal`?`水平`:e===`vertical`?`垂直`:`网格`}区域`,type:e,fields:[]};p.value.push(t)},k=e=>{let t=p.value.findIndex(t=>t.id===e);t!==-1&&p.value.splice(t,1)},j=e=>({...e,id:`${e.prop}-${y()}`}),F=(e,t)=>{let n=p.value.find(t=>t.id===e);if(n){let e=n.fields.findIndex(e=>e.id===t);e!==-1&&n.fields.splice(e,1)}},L=()=>{let e=JSON.stringify(p.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`layout-config-${Date.now()}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},R=()=>{p.value=[]},z=()=>{d(`export-data`,{layout:p.value,formData:n.formData,timestamp:new Date().toISOString()})};return N(()=>{let e=new Set(p.value.flatMap(e=>e.fields.map(e=>e.prop)));m.value=g.value.filter(t=>!e.has(t.prop)).map(e=>({...e,id:e.prop}))}),M(()=>p.value,()=>{d(`fields-change`,p.value.flatMap(e=>e.fields.map(e=>({...e,id:void 0}))))},{deep:!0}),(e,t)=>{let n=E(`NButton`),i=E(`NButtonGroup`),d=E(`NCard`),g=E(`NInput`),y=E(`NTag`),C=E(`NEmpty`);return b(),s(`div`,kt,[o(` 顶部工具栏 `),u(d,{bordered:!1,class:`toolbar-card`},{default:P(()=>[c(`div`,At,[o(` 模式切换 `),c(`div`,jt,[t[12]||=c(`span`,{class:`section-label`},`自定义模式:`,-1),u(i,null,{default:P(()=>[u(n,{type:f.value?`primary`:`default`,onClick:t[0]||=e=>f.value=!0,size:`small`},{default:P(()=>t[10]||=[l(` 🎨 设计模式 `,-1)]),_:1,__:[10]},8,[`type`]),u(n,{type:f.value?`default`:`primary`,onClick:t[1]||=e=>f.value=!1,size:`small`},{default:P(()=>t[11]||=[l(` 📝 填写模式 `,-1)]),_:1,__:[11]},8,[`type`])]),_:1})]),o(` 统计信息 `),c(`div`,Mt,[c(`div`,Nt,[c(`div`,Pt,O(p.value.length),1),t[13]||=c(`div`,{class:`stat-label`},`自定义区域`,-1)]),c(`div`,Ft,[c(`div`,It,O(v.value),1),t[14]||=c(`div`,{class:`stat-label`},`字段总数`,-1)])]),o(` 操作按钮 `),c(`div`,Lt,[f.value?(b(),s(r,{key:0},[u(n,{secondary:``,onClick:L,size:`small`},{default:P(()=>t[15]||=[l(` 💾 保存布局 `,-1)]),_:1,__:[15]}),u(n,{secondary:``,onClick:R,size:`small`},{default:P(()=>t[16]||=[l(` 🔄 重置布局 `,-1)]),_:1,__:[16]})],64)):(b(),a(n,{key:1,secondary:``,onClick:z,size:`small`},{default:P(()=>t[17]||=[l(` 📊 导出数据 `,-1)]),_:1,__:[17]}))])])]),_:1}),o(` 设计模式工具面板 `),f.value?(b(),a(d,{key:0,class:`design-panel`,title:`🎨 设计工具`},{default:P(()=>[c(`div`,Rt,[c(`div`,zt,[t[21]||=c(`span`,{class:`group-label`},`添加区域:`,-1),u(n,{onClick:t[2]||=e=>T(`horizontal`),size:`small`},{default:P(()=>t[18]||=[l(` ➡️ 水平区域 `,-1)]),_:1,__:[18]}),u(n,{onClick:t[3]||=e=>T(`vertical`),size:`small`},{default:P(()=>t[19]||=[l(` ⬇️ 垂直区域 `,-1)]),_:1,__:[19]}),u(n,{onClick:t[4]||=e=>T(`grid`),size:`small`},{default:P(()=>t[20]||=[l(` ⚏ 网格区域 `,-1)]),_:1,__:[20]})])])]),_:1})):o(`v-if`,!0),o(` 主画布区域 `),c(`div`,{class:_([`layout-canvas`,{"design-mode":f.value}])},[o(` 设计模式 `),f.value?(b(),s(r,{key:0},[p.value.length===0?(b(),s(`div`,Bt,t[22]||=[c(`div`,{class:`hint-content`},[c(`h3`,null,`🎨 开始自定义你的布局`),c(`p`,null,`点击上方按钮添加区域`)],-1)])):(b(),s(r,{key:1},[o(` 区域列表 `),c(`div`,Vt,[(b(!0),s(r,null,w(p.value,e=>(b(),s(`div`,{key:e.id,class:_([`custom-area`,`area-${e.type}`])},[c(`div`,Ht,[c(`div`,Ut,[h.value===e.id?(b(),a(g,{key:0,value:e.title,"onUpdate:value":t=>e.title=t,size:`small`,onBlur:t[5]||=e=>h.value=``,onKeyup:t[6]||=I(e=>h.value=``,[`enter`]),class:`title-input`},null,8,[`value`,`onUpdate:value`])):(b(),s(`span`,{key:1,class:`area-title`,onClick:t=>h.value=e.id},O(e.title),9,Wt)),u(y,{size:`small`},{default:P(()=>[l(O(e.fields.length)+` 字段`,1)]),_:2},1024)]),c(`div`,Gt,[u(n,{text:``,onClick:t=>k(e.id),size:`tiny`,type:`error`,title:`删除区域`},{default:P(()=>t[23]||=[l(` 🗑️ `,-1)]),_:2,__:[23]},1032,[`onClick`])])]),o(` 字段容器(可拖入) `),u(A(K),{modelValue:e.fields,"onUpdate:modelValue":t=>e.fields=t,class:`area-fields`,group:{name:`form-fields`,pull:!0,put:!0},animation:200,"ghost-class":`field-ghost`,"item-key":`id`},{default:P(()=>[(b(!0),s(r,null,w(e.fields,r=>(b(),s(`div`,{key:r.id,class:`field-item`},[c(`div`,Kt,[t[25]||=c(`span`,{class:`drag-handle`},`⠿`,-1),c(`span`,qt,O(r.label||r.prop),1),c(`span`,Jt,O(x(r.type)),1),u(n,{text:``,size:`tiny`,type:`error`,onClick:t=>F(e.id,r.id),title:`移出字段`},{default:P(()=>t[24]||=[l(` ✕ `,-1)]),_:2,__:[24]},1032,[`onClick`])])]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]),e.fields.length===0?(b(),s(`div`,Yt,` 从下方字段池拖拽字段到这里 `)):o(`v-if`,!0)],2))),128))])],2112)),o(` 字段池(可拖出) `),u(d,{class:`field-pool`,title:`📦 可用字段`},{default:P(()=>[u(A(K),{modelValue:m.value,"onUpdate:modelValue":t[7]||=e=>m.value=e,class:`pool-fields-grid`,group:{name:`form-fields`,pull:`clone`,put:!0},animation:200,sort:!1,"ghost-class":`field-ghost`,"item-key":`id`,clone:j},{default:P(()=>[(b(!0),s(r,null,w(m.value,e=>(b(),s(`div`,{key:e.id,class:`pool-field`},[t[26]||=c(`span`,{class:`drag-handle`},`⠿`,-1),c(`span`,Xt,O(e.label||e.prop),1),c(`span`,Zt,O(x(e.type)),1)]))),128))]),_:1},8,[`modelValue`])]),_:1})],64)):(b(),s(r,{key:1},[o(` 填写模式 `),p.value.length===0?(b(),s(`div`,Qt,[u(C,{description:`尚未设计布局`},{extra:P(()=>[u(n,{onClick:t[8]||=e=>f.value=!0,type:`primary`},{default:P(()=>t[27]||=[l(` 🎨 开始设计 `,-1)]),_:1,__:[27]})]),_:1})])):(b(),s(`div`,$t,[c(`div`,en,[(b(!0),s(r,null,w(p.value,e=>(b(),s(`div`,{key:e.id,class:_([`form-area`,`area-${e.type}`])},[e.fields.length>0?(b(),a(d,{key:0,title:e.title},{default:P(()=>[c(`div`,{class:_([`area-form-items`,`layout-${e.type}`])},[(b(!0),s(r,null,w(e.fields,e=>(b(),a(D(S(e)),{key:e.prop}))),128))],2)]),_:2},1032,[`title`])):(b(),a(C,{key:1,description:`此区域暂无字段`,size:`small`},{extra:P(()=>[u(n,{onClick:t[9]||=e=>f.value=!0,size:`small`,secondary:``},{default:P(()=>t[28]||=[l(` 🎨 添加字段 `,-1)]),_:1,__:[28]})]),_:1}))],2))),128))])]))],64))],2)])}}}),[[`__scopeId`,`data-v-732076e2`]]);const nn=d({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(e,{expose:t,emit:r}){let s={default:we,inline:Te,grid:Ae,card:tt,tabs:lt,steps:vt,dynamic:Ot,custom:tn},c={NFormItem:W,NInput:G,NInputNumber:ee,NSwitch:se,NSlider:ae,NRate:re,NDatePicker:H,NTimePicker:ce,NCascader:R,NColorPicker:V,NSelect:ie,NCheckboxGroup:B,NCheckbox:z,NRadioGroup:ne,NRadio:te,NUpload:ue,NButton:L,NSpace:oe,NTooltip:le,C_Editor:n},d=e,p=r,m=i(()=>pe(d.config)),_=C(null),{formModel:v,formRules:y,visibleOptions:x,initialize:S,handleFieldChange:w,validate:E,validateField:O,validateStep:k,validateTab:j,validateDynamicFields:N,validateCustomGroup:F,clearValidation:I,getModel:K,setFields:de,resetFields:q,setFieldValue:fe,getFieldValue:J,setFieldsValue:he,handleSubmit:Y,handleReset:ge,isDirty:_e,getChangedFields:X,isFieldDirty:ye,markAsClean:Z,asyncOptionsCache:be,asyncLoadingMap:xe}=ve(i(()=>d.options),m,_,p),{formItems:Ce}=Se({formModel:v,visibleOptions:x,config:m,handleFieldChange:w,componentMap:c,instanceSlots:f()?.slots,asyncOptionsCache:be,asyncLoadingMap:xe});M(()=>m.value.initialValues,e=>{e&&m.value.mode===`edit`&&(Object.assign(v,e),g(()=>Z()))},{immediate:!0});let Ee=i(()=>s[m.value.layout]||s.default),De=i(()=>({type:m.value.layout,grid:m.value.grid,inline:m.value.inline,card:m.value.card,tabs:m.value.tabs,steps:m.value.steps,dynamic:m.value.dynamic,custom:m.value.custom})),Oe=i(()=>me(m.value)),Q=(e,...t)=>{let n=m.value[e];n?.(...t)},ke=e=>{m.value.onFieldsChange?.(e)},je=(e,t)=>{m.value.onStepChange?.(e,t)},Me=async(e,t)=>(m.value.onStepBeforeChange?.(e,t),!0),Ne=async e=>{try{let t=m.value.steps?.steps?.[e]?.key;if(!t)return!0;let n=d.options.filter(e=>e.layout?.step===t).map(e=>e.prop);return n.length===0?!0:(await O(n),m.value.onStepValidate?.(e),!0)}catch(t){return console.warn(`[C_Form] 步骤 ${e} 验证失败:`,t),!1}};return M(()=>d.modelValue,e=>{e&&Object.assign(v,e)},{immediate:!0,deep:!0}),t({validate:E,validateField:O,validateStep:k,validateTab:j,validateDynamicFields:N,validateCustomGroup:F,clearValidation:I,getModel:K,setFields:de,resetFields:q,setFieldValue:fe,getFieldValue:J,setFieldsValue:he,formRef:_,formModel:v,initialize:S,layoutType:i(()=>m.value.layout),shouldShowDefaultActions:Oe,isDirty:_e,getChangedFields:X,isFieldDirty:ye,markAsClean:Z,asyncLoadingMap:xe}),(e,t)=>(b(),a(A(U),h({ref_key:`formRef`,ref:_,model:A(v),rules:A(y),"validate-on-rule-change":!1,"label-placement":m.value.labelPlacement,"label-width":m.value.labelWidth,size:m.value.size,disabled:m.value.disabled,readonly:m.value.readonly},e.$attrs),{default:P(()=>[o(` 布局组件渲染 `),(b(),a(D(Ee.value),{"form-items":A(Ce),"layout-config":De.value,options:A(x),"form-data":A(v),onTabChange:t[0]||=e=>Q(`onTabChange`,e),onTabValidate:t[1]||=e=>Q(`onTabValidate`,e),onStepChange:je,onStepBeforeChange:Me,onStepValidate:Ne,onFieldAdd:t[2]||=e=>Q(`onFieldAdd`,e),onFieldRemove:t[3]||=e=>Q(`onFieldRemove`,e),onFieldToggle:t[4]||=(e,t)=>m.value.onFieldToggle?.(e,t),onFieldsClear:t[5]||=e=>Q(`onFieldsClear`),onRenderModeChange:t[6]||=e=>Q(`onRenderModeChange`,e),onGroupToggle:t[7]||=(e,t)=>m.value.onGroupToggle?.(e,t),onGroupReset:t[8]||=e=>Q(`onGroupReset`,e),onValidateSuccess:t[9]||=e=>p(`validate-success`,e),onValidateError:t[10]||=e=>p(`validate-error`,e),onFieldsChange:ke},null,40,[`form-items`,`layout-config`,`options`,`form-data`])),o(` 表单操作按钮区域(只在特定布局中显示) `),Oe.value?(b(),a(A(W),{key:0,style:{"margin-top":`20px`}},{default:P(()=>[T(e.$slots,`action`,{form:_.value,model:A(v),validate:A(E),validateField:A(O),reset:A(q),setFields:A(de),getModel:A(K),clearValidation:A(I)},()=>[u(A(oe),null,{default:P(()=>[u(A(L),{type:`primary`,onClick:A(Y)},{default:P(()=>t[11]||=[l(`提交`,-1)]),_:1,__:[11]},8,[`onClick`]),u(A(L),{onClick:A(ge)},{default:P(()=>t[12]||=[l(`重置`,-1)]),_:1,__:[12]},8,[`onClick`])]),_:1})])]),_:3})):o(`v-if`,!0)]),_:3},16,[`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`]))}});export{be as a,Y as c,pe as d,me as f,bt as i,q as l,xt as n,Se as o,$ as r,ve as s,nn as t,fe as u};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Editor2.js";import{NAlert as r,NBadge as i,NButton as a,NButtonGroup as o,NCard as s,NCascader as c,NCheckbox as l,NCheckboxGroup as u,NColorPicker as d,NDatePicker as f,NEmpty as p,NForm as m,NFormItem as h,NGrid as g,NGridItem as _,NInput as v,NInputNumber as y,NProgress as b,NRadio as x,NRadioGroup as S,NRate as C,NSelect as w,NSlider as T,NSpace as E,NStep as D,NSteps as O,NSwitch as ee,NTabPane as k,NTabs as A,NTag as te,NTimePicker as ne,NTooltip as re,NUpload as ie}from"naive-ui";import{Fragment as j,computed as M,createBlock as N,createCommentVNode as P,createElementBlock as F,createElementVNode as I,createTextVNode as L,createVNode as R,defineComponent as z,getCurrentInstance as ae,h as B,inject as oe,mergeProps as se,nextTick as ce,normalizeClass as V,normalizeStyle as le,onMounted as H,openBlock as U,reactive as W,readonly as ue,ref as G,renderList as K,renderSlot as de,resolveComponent as fe,resolveDynamicComponent as q,toDisplayString as J,toRaw as pe,unref as Y,vShow as me,watch as X,watchEffect as he,withCtx as Z,withDirectives as ge,withKeys as _e}from"vue";import{VueDraggable as ve}from"vue-draggable-plus";import{mergeRules as ye}from"@robot-admin/form-validate";const be={layout:`default`,labelPlacement:`left`,labelWidth:`auto`,size:`medium`,disabled:!1,readonly:!1,showActions:!0,validateOnChange:!1,mode:`create`},xe=[`steps`,`custom`];function Se(e){return{...be,...e}}function Ce(e){return!(e.showActions===!1||xe.includes(e.layout))}function Q(e,t){if(Object.is(e,t))return!0;if(e==null||t==null)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>Q(e,t[n]));if(typeof e==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>Q(e[n],t[n])):!1}return!1}function $(e){return JSON.parse(JSON.stringify(e))}function we(e){let t=G({}),n=M(()=>r().length>0);function r(){let n=t.value,r=new Set([...Object.keys(n),...Object.keys(e)]),i=[];for(let t of r)Q(n[t],e[t])||i.push(t);return i}function i(n){return!Q(t.value[n],e[n])}function a(){t.value=$(e)}return{isDirty:n,getChangedFields:r,isFieldDirty:i,markAsClean:a}}const Te={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:null,upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:null},Ee=e=>Te[e]??null;function De(e,t,n,r){let i=W({}),a=W({}),o=G({}),s=G({}),{isDirty:c,getChangedFields:l,isFieldDirty:u,markAsClean:d}=we(i),f=M(()=>e.value.filter(e=>e.show===!1?!1:e.showWhen?e.showWhen(i):!0)),p=()=>{try{Object.keys(a).forEach(e=>delete a[e]),e.value.forEach(e=>{e.prop in i||(i[e.prop]=e.value===void 0?Ee(e.type):e.value),m(e)}),ce(()=>d()),_()}catch(e){console.error(`[C_Form] 初始化失败:`,e)}};function m(e){let t=[...e.rulesWhen?e.rulesWhen(i):e.rules??[]];if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({validator:()=>{let e=n(i);return e?Promise.reject(Error(e)):Promise.resolve()},trigger:[`change`,`blur`]})}if(t.length===0){delete a[e.prop];return}let n=t.every(e=>typeof e.validator==`function`);a[e.prop]=n?ye(t):t}function h(){let t=e.value.filter(e=>e.rulesWhen||e.crossFieldValidator);for(let e of t)m(e)}async function g(e){if(!e.asyncOptions)return;let{prop:t}=e;s.value[t]=!0;try{let n=await e.asyncOptions(i);o.value[t]=n}catch(e){console.warn(`[C_Form] asyncOptions 加载失败 (${t}):`,e),o.value[t]=[]}finally{s.value[t]=!1}}function _(){e.value.filter(e=>e.asyncOptions).forEach(e=>g(e))}function v(){let t=e.value.filter(e=>e.valueWhen);for(let e of t){let t=e.valueWhen(i);t!==void 0&&i[e.prop]!==t&&(i[e.prop]=t)}}let y=n=>{v(),h(),e.value.filter(e=>{if(!e.asyncOptions)return!1;let t=e.dependsOn;return t?Array.isArray(t)?t.includes(n):t===n:!1}).forEach(e=>g(e)),t.value.validateOnChange&&ce(()=>{x(n).catch(()=>{})})},b=async()=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);try{await n.value.validate(),r(`validate-success`,O())}catch(e){throw r(`validate-error`,e),e}},x=async e=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);let t=Array.isArray(e)?e:[e];try{await n.value.validate()}catch(e){if(!Array.isArray(e))throw e;let n=e.filter(e=>e?.some(e=>{let n=e;return typeof n.field==`string`&&t.includes(n.field)}));if(n.length>0)throw n}},S=e=>{n.value&&(e?(Array.isArray(e)?e:[e]).forEach(e=>{i[e]!==void 0&&(i[e]=i[e])}):n.value.restoreValidation())},C=async(t,n)=>{try{let n=e.value.filter(t).map(e=>e.prop);return n.length===0||await x(n),!0}catch(e){return console.warn(`[C_Form] ${n}验证失败:`,e),!1}},w=async e=>{let n=t.value.steps?.steps?.[e]?.key;return n?C(e=>e.layout?.step===n,`步骤 ${e} `):!0},T=async e=>C(t=>t.layout?.tab===e,`标签页 ${e} `),E=async()=>C(e=>!!e.layout?.dynamic,`动态字段 `),D=async e=>C(t=>t.layout?.group===e,`自定义分组 ${e} `),O=()=>({...i}),ee=e=>{Object.assign(i,e)},k=()=>{try{S(),e.value.forEach(e=>{let t=e.value===void 0?Ee(e.type):e.value;i[e.prop]=t}),ce(()=>d())}catch(e){console.error(`[C_Form] 重置表单失败:`,e)}};return H(()=>{p(),X(()=>e.value,()=>p(),{deep:!0}),X(()=>i,e=>r(`update:modelValue`,{...e}),{deep:!0})}),{formModel:i,formRules:a,visibleOptions:f,initialize:p,handleFieldChange:y,validate:b,validateField:x,validateStep:w,validateTab:T,validateDynamicFields:E,validateCustomGroup:D,clearValidation:S,getModel:O,setFields:ee,resetFields:k,setFieldValue:async(e,t,n=!1)=>{i[e]=t,n&&await x(e)},getFieldValue:e=>i[e],setFieldsValue:async(e,t=!1)=>{Object.assign(i,e),t&&await b()},handleSubmit:async()=>{try{await b(),r(`submit`,{model:O(),form:n.value})}catch(e){console.warn(`[C_Form] 表单验证失败:`,e)}},handleReset:k,isDirty:c,getChangedFields:l,isFieldDirty:u,markAsClean:d,asyncOptionsCache:o,asyncLoadingMap:s}}function Oe(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function ke(e){return{input:t=>B(e.NInput,{...t}),textarea:t=>B(e.NInput,{...t,type:`textarea`}),inputNumber:t=>B(e.NInputNumber,{...t}),switch:t=>B(e.NSwitch,{...t}),slider:t=>B(e.NSlider,{...t}),rate:t=>B(e.NRate,{...t}),datePicker:t=>B(e.NDatePicker,{...t}),daterange:t=>B(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>B(e.NTimePicker,{...t}),cascader:t=>B(e.NCascader,{...t}),colorPicker:t=>B(e.NColorPicker,{...t}),select:(t,n)=>B(e.NSelect,{...t,options:n.children?.map(e=>({value:e.value,label:e.label,disabled:e.disabled}))||[]}),checkbox:(t,n)=>B(e.NCheckboxGroup,{...t},{default:()=>B(e.NSpace,{},{default:()=>n.children?.map(t=>B(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>B(e.NRadioGroup,{...t},{default:()=>B(e.NSpace,{},{default:()=>n.children?.map(t=>B(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>B(e.NUpload,{fileList:t.value||[],"onUpdate:fileList":e=>{t[`onUpdate:value`]?.(e)},...n.attrs},{trigger:()=>i?.slots?.uploadClick?.()||B(e.NButton,{type:`primary`},{default:()=>`选择文件`}),tip:()=>i?.slots?.uploadTip?.()||null}),editor:(t,n,r)=>B(e.C_Editor,{editorId:`editor-${n.prop}`,modelValue:t.value||``,placeholder:n.placeholder,disabled:r.disabled,readonly:r.readonly,"onUpdate:modelValue":e=>{t[`onUpdate:value`]?.(e)},...n.attrs})}}const Ae={};function je(e,t){Ae[e]=t}const Me=new Set([`select`,`checkbox`,`radio`,`cascader`]);function Ne(e){let{formModel:t,visibleOptions:n,config:r,handleFieldChange:i,componentMap:a,instanceSlots:o,asyncOptionsCache:s,asyncLoadingMap:c}=e,l=a,u={...ke(l),...Ae},d=e=>{let n={value:t[e.prop],"onUpdate:value":n=>{t[e.prop]=n,i(e.prop)},disabled:Oe(e.disabled,r.value.disabled,t),readonly:Oe(e.readonly,r.value.readonly,t)};return e.type===`textarea`&&(n.type=`textarea`),e.placeholder&&(n.placeholder=e.placeholder),n};function f(e){let t=e.children??[],n=s.value[e.prop]??[];return n.length>0?n:t}let p=e=>{try{let t=Me.has(e.type),n=c.value[e.prop],i=t?{...e,children:f(e)}:e,a=u[i.type];if(!a)return console.warn(`[C_Form] 未支持的组件类型: ${i.type}`),null;let s=d(i);return n&&i.type===`select`&&(s.loading=!0),a({...s,...i.attrs},i,r.value,{slots:o,components:l})}catch(t){return console.error(`[C_Form] 渲染表单项失败:`,t,e),null}};function m(e){if(e.label)return e.help?B(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,B(l.NTooltip,{trigger:`hover`},{trigger:()=>B(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,innerHTML:`&#9432;`}),default:()=>e.help})]):e.label}return{renderFormItem:p,formItems:M(()=>n.value.map(e=>{let t=!!(e.rules?.length||e.rulesWhen||e.crossFieldValidator),n=m(e);return B(l.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,key:e.prop,required:t},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>p(e)})})),getBaseProps:d}}const Pe={class:`c-form-default`};var Fe=t(z({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(e,t)=>(U(),F(`div`,Pe,[(U(!0),F(j,null,K(e.formItems,e=>(U(),N(q(e),{key:e.key}))),128))]))}}),[[`__scopeId`,`data-v-3422ba86`]]),Ie=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=M(()=>280),r=M(()=>t.layoutConfig?.inline?.gap??16),i=M(()=>16),a=M(()=>{let e=t.layoutConfig?.inline?.align;return e===`start`||e===`end`?e:`center`}),o=M(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return`center`}}),s=M(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=M(()=>({display:`flex`,flexWrap:`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(e,t)=>(U(),F(`div`,{class:`c-form-inline`,style:le(c.value)},[(U(!0),F(j,null,K(e.formItems,(e,t)=>(U(),F(`div`,{key:l(e,t),class:`c-form-inline-item`,style:le(u(t))},[(U(),N(q(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-067214c3`]]);const Le={class:`c-grid-layout`},Re={class:`config-header`},ze={class:`config-controls`},Be={class:`config-label`},Ve={class:`item-wrapper`};var He=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(t,{expose:n}){let i=t,a=G(!!import.meta.env?.DEV),o=W({cols:24,gutter:16,responsive:!0}),c=M(()=>i.layoutConfig?.grid||{}),l=M(()=>c.value.showConfigPanel),u=M(()=>c.value.showStats),d=M(()=>({cols:l.value?o.cols:c.value.cols??24,gutter:l.value?o.gutter:c.value.gutter??16,responsive:l.value?o.responsive:c.value.responsive??!0})),f=M(()=>({cols:d.value.cols,xGap:d.value.gutter,yGap:d.value.gutter,responsive:d.value.responsive?`screen`:`self`})),p=M(()=>[{key:`cols`,label:`列数`,component:`NInputNumber`,value:M({get:()=>o.cols,set:e=>o.cols=e}),props:{min:1,max:48,size:`small`}},{key:`gutter`,label:`间距`,component:`NInputNumber`,value:M({get:()=>o.gutter,set:e=>o.gutter=e}),props:{min:0,max:48,size:`small`}},{key:`responsive`,label:`响应式`,component:`NSwitch`,value:M({get:()=>o.responsive,set:e=>o.responsive=e}),props:{size:`small`}}]),m=M(()=>`列数: ${d.value.cols} | 间距: ${d.value.gutter}px | 项目: ${i.formItems.length}个`),h=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,v=(e,t)=>{let n=i.options?.[e]?.layout;return n?.[t]??n?.grid?.[t]},y=()=>{let{cols:e}=d.value;return e<=12?e:e<=24?12:8},b=e=>{let t=v(e,`span`),n=v(e,`offset`),r=v(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=d.value.cols?t:y(),offset:typeof n==`number`&&n>=0&&n<d.value.cols?n:0,suffix:!!r}},x=()=>{a.value&&console.log(`Grid config updated:`,pe(o))};return X(c,e=>{e.cols!==void 0&&(o.cols=e.cols),e.gutter!==void 0&&(o.gutter=e.gutter),e.responsive!==void 0&&(o.responsive=e.responsive)},{immediate:!0}),a.value&&he(()=>{let e=i.options.length,t=i.formItems.length;e>0&&e!==t&&console.warn(`[GridLayout] 配置数量(${e})与表单项数量(${t})不匹配`)}),n({updateGridConfig:e=>Object.assign(o,e),getCurrentConfig:()=>({...d.value}),getGridInfo:()=>({...d.value,itemCount:i.formItems.length})}),(t,n)=>{let i=s,o=_,c=g,d=r;return U(),F(`div`,Le,[P(` 配置面板 `),l.value?(U(),N(i,{key:0,size:`small`,bordered:!1,class:`config-panel`},{header:Z(()=>[I(`div`,Re,[R(e,{name:`mdi:view-grid`,size:18}),n[0]||=I(`span`,null,`网格配置`,-1)])]),default:Z(()=>[I(`div`,ze,[(U(!0),F(j,null,K(p.value,e=>(U(),F(`div`,{key:e.key,class:`config-item`},[I(`span`,Be,J(e.label)+`:`,1),(U(),N(q(e.component),se({value:e.value,"onUpdate:value":t=>e.value=t},{ref_for:!0},e.props,{"onUpdate:value":x}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1})):P(`v-if`,!0),P(` 网格容器 `),R(c,se(f.value,{class:`grid-container`}),{default:Z(()=>[(U(!0),F(j,null,K(t.formItems,(e,t)=>(U(),N(o,se({key:h(e,t)},{ref_for:!0},b(t),{class:`grid-item`}),{default:Z(()=>[I(`div`,Ve,[(U(),N(q(e)))])]),_:2},1040))),128))]),_:1},16),P(` 统计信息 `),u.value&&a.value?(U(),N(d,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:Z(()=>[R(e,{name:`mdi:information-outline`,size:16}),n[1]||=L(` 网格信息 `,-1)]),default:Z(()=>[L(` `+J(m.value),1)]),_:1})):P(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-941b317b`]]);const Ue={class:`c-form-card`},We={class:`flex items-center gap-2`},Ge={class:`config-controls`},Ke={class:`config-item`},qe={class:`flex items-center gap-2`},Je={class:`text-xs min-w-12`},Ye={class:`config-item`},Xe={class:`config-item`},Ze={class:`config-item`},Qe={class:`flex items-center gap-3`},$e={class:`card-header`},et={class:`header-info`},tt={class:`header-text`},nt={key:0},rt={class:`header-actions`},it={class:`field-stats`},at={class:`card-content`},ot={key:0,class:`progress-section`},st={class:`action-content`},ct={class:`status-summary`},lt={class:`status-item`},ut={class:`progress-display`},dt={class:`text-sm min-w-12`},ft={class:`action-buttons`};var pt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},formData:{default:()=>({})}},setup(t){let n=t,r=G(20),o=G(!0),c=G(!0),l=G(!0),u=G(`vertical`),d=G({}),f=M(()=>n.layoutConfig?.card?.groups||[]),p=M(()=>f.value.length>0),m=M(()=>n.layoutConfig?.card?.showLayoutConfig??!0),h=M(()=>n.layoutConfig?.card?.showActionPanel??!0),g=M(()=>p.value?`layout-${u.value}`:`layout-single`),_=M(()=>{if(!p.value)return[];let e=new Map;return f.value.forEach(t=>{e.set(t.key,[])}),n.formItems.forEach((t,r)=>{let i=(n.options?.[r])?.layout?.group||f.value[0]?.key||`default`;e.has(i)||e.set(i,[]),e.get(i).push(t)}),f.value.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),v=M(()=>{let e=Object.keys(d.value);return e.length>0&&e.every(e=>d.value[e])}),y=M(()=>{if(!n.options||n.options.length===0)return 0;let e=n.options.filter(e=>{let t=n.formData?.[e.prop||``];return C(t)}).length;return Math.round(e/n.options.length*100)}),C=e=>e==null?!1:Array.isArray(e)?e.length>0:typeof e==`string`?e.trim()!==``:!0,w=e=>n.options?n.options.filter(t=>t.layout?.group===e.config.key).filter(e=>{let t=n.formData?.[e.prop||``];return C(t)}).length:0,E=e=>{if(e.items.length===0)return 0;let t=w(e);return Math.round(t/e.items.length*100)},D=e=>{let t={basic:`mdi:account`,contact:`mdi:phone`,preferences:`mdi:cog`,settings:`mdi:cog`,info:`mdi:information`,default:`mdi:form-select`};return t[e]||t.default},O=e=>{d.value[e]=!d.value[e]},k=()=>{let e=!v.value;f.value.forEach(t=>{d.value[t.key]=e})};return H(()=>{let e=n.layoutConfig?.card;e?.direction&&(u.value=e.direction),e?.showProgress!==void 0&&(l.value=e.showProgress),f.value.forEach(e=>{d.value[e.key]=!1})}),(t,n)=>{let f=T,C=ee,A=x,te=S,ne=s,re=i,ie=a,M=b;return U(),F(`div`,Ue,[P(` 布局配置面板 `),p.value&&m.value?(U(),N(ne,{key:0,class:`layout-config-panel`,bordered:!1},{header:Z(()=>[I(`div`,We,[R(e,{name:`mdi:cog`,size:18}),n[4]||=I(`span`,null,`布局配置`,-1)])]),default:Z(()=>[I(`div`,Ge,[I(`div`,Ke,[n[5]||=I(`span`,null,`卡片间距`,-1),I(`div`,qe,[R(f,{value:r.value,"onUpdate:value":n[0]||=e=>r.value=e,min:12,max:32,step:4,class:`w-24`},null,8,[`value`]),I(`span`,Je,J(r.value)+`px`,1)])]),I(`div`,Ye,[n[6]||=I(`span`,null,`显示图标`,-1),R(C,{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,size:`small`},null,8,[`value`])]),I(`div`,Xe,[n[7]||=I(`span`,null,`可折叠`,-1),R(C,{value:c.value,"onUpdate:value":n[2]||=e=>c.value=e,size:`small`},null,8,[`value`])]),I(`div`,Ze,[n[10]||=I(`span`,null,`布局方向`,-1),R(te,{value:u.value,"onUpdate:value":n[3]||=e=>u.value=e,size:`small`},{default:Z(()=>[R(A,{value:`vertical`},{default:Z(()=>n[8]||=[L(`垂直`,-1)]),_:1,__:[8]}),R(A,{value:`horizontal`},{default:Z(()=>n[9]||=[L(`水平`,-1)]),_:1,__:[9]})]),_:1},8,[`value`])])])]),_:1})):P(`v-if`,!0),P(` 表单内容区域 `),I(`div`,{class:V([`form-content`,g.value]),style:le({gap:`${r.value}px`})},[P(` 无分组时的单卡片模式 `),p.value?(U(),F(j,{key:1},[P(` 有分组时的多卡片模式 `),(U(!0),F(j,null,K(_.value,t=>(U(),N(ne,{key:t.config.key,class:V([`group-card`,[`${t.config.key}-card`,{collapsed:c.value&&d.value[t.config.key]}]]),hoverable:``},{header:Z(()=>[I(`div`,$e,[I(`div`,et,[o.value&&t.config.icon?(U(),N(e,{key:0,name:t.config.icon,size:20,class:`card-icon`},null,8,[`name`])):o.value?(U(),N(e,{key:1,name:D(t.config.key),size:20,class:`card-icon`},null,8,[`name`])):P(`v-if`,!0),I(`div`,tt,[I(`h3`,null,J(t.config.title),1),t.config.description?(U(),F(`p`,nt,J(t.config.description),1)):P(`v-if`,!0)])]),I(`div`,rt,[P(` 统计信息 `),I(`div`,it,[R(re,{value:t.items.length,type:`info`,"show-zero":``},null,8,[`value`]),R(re,{value:`${w(t)}/${t.items.length}`,type:w(t)===t.items.length?`success`:`warning`},null,8,[`value`,`type`])]),P(` 折叠按钮 `),c.value?(U(),N(ie,{key:0,quaternary:``,circle:``,size:`small`,onClick:e=>O(t.config.key)},{icon:Z(()=>[R(e,{name:d.value[t.config.key]?`mdi:chevron-down`:`mdi:chevron-up`,size:18},null,8,[`name`])]),_:2},1032,[`onClick`])):P(`v-if`,!0)])])]),default:Z(()=>[ge(I(`div`,at,[P(` 进度指示器 `),l.value?(U(),F(`div`,ot,[R(M,{percentage:E(t),color:E(t)===100?`#52c41a`:`#1890ff`,"show-indicator":!1,class:`mb-4`},null,8,[`percentage`,`color`])])):P(`v-if`,!0),P(` 表单项 `),(U(!0),F(j,null,K(t.items,e=>(U(),N(q(e),{key:e.key}))),128))],512),[[me,!d.value[t.config.key]]])]),_:2},1032,[`class`]))),128))],64)):(U(),N(ne,{key:0,class:`single-card`,hoverable:``},{header:Z(()=>[I(`div`,Qe,[o.value?(U(),N(e,{key:0,name:`mdi:form-select`,size:18,style:{color:`#3b82f6`}})):P(`v-if`,!0),n[11]||=I(`span`,null,`表单信息`,-1)])]),default:Z(()=>[(U(!0),F(j,null,K(t.formItems,e=>(U(),N(q(e),{key:e.key}))),128))]),_:1}))],6),P(` 统一操作面板 `),p.value&&h.value?(U(),N(ne,{key:1,class:`action-panel`,bordered:!1},{default:Z(()=>[I(`div`,st,[I(`div`,ct,[I(`div`,lt,[n[12]||=I(`span`,{class:`label`},`完成进度:`,-1),I(`div`,ut,[R(M,{percentage:y.value,"show-indicator":!1,color:y.value===100?`#52c41a`:`#1890ff`,class:`flex-1`},null,8,[`percentage`,`color`]),I(`span`,dt,J(y.value)+`%`,1)])])]),I(`div`,ft,[c.value?(U(),N(ie,{key:0,onClick:k},{icon:Z(()=>[R(e,{name:v.value?`mdi:unfold-more-horizontal`:`mdi:unfold-less-horizontal`,size:18},null,8,[`name`])]),default:Z(()=>[L(` `+J(v.value?`展开全部`:`折叠全部`),1)]),_:1})):P(`v-if`,!0)])])]),_:1})):P(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-e4d182af`]]);const mt={class:`c-form-tabs`},ht={key:0,class:`single-panel`},gt={class:`tabs-container`},_t={key:0,class:`tab-header`},vt={class:`tab-description`},yt={class:`tab-form-items`},bt={key:0,class:`tabs-actions`};var xt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:n,emit:r}){let o=t,s=r,c=G(``),l=W({}),u=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),d=M(()=>{let e=u(),t=o.layoutConfig?.tabs||{};return{...e,...t}}),f=M(()=>d.value.tabs.length>0),m=M(()=>{if(!f.value)return[];let e=new Map;return d.value.tabs.forEach(t=>{e.set(t.key,[])}),o.formItems.forEach((t,n)=>{let r=(o.options?.[n])?.layout?.tab||d.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),h=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`tab-item-${t}`},g=async()=>{if(!c.value)return!0;try{return s(`tab-validate`,c.value),l[c.value]=!0,!0}catch(e){return console.error(`[Tabs Layout] 标签验证失败:`,e),l[c.value]=!1,!1}},_=async e=>{if(!e||e===c.value)return!0;if(!m.value.some(t=>t.config.key===e))return!1;try{return d.value.validateBeforeSwitch&&c.value&&!await g()?!1:(c.value&&s(`tab-before-change`,c.value,e),c.value=e,s(`tab-change`,e,m.value.findIndex(t=>t.config.key===e)),!0)}catch(e){return console.error(`[Tabs Layout] 标签切换失败:`,e),!1}},v=e=>{_(e)},y=e=>{s(`tab-close`,e)},b=()=>{s(`tab-add`)},x=()=>{if(!f.value||m.value.length===0)return;let{defaultTab:e}=d.value,t=e||m.value[0]?.config.key;t&&t!==c.value&&(c.value=t,ce(()=>{let e=m.value.findIndex(e=>e.config.key===t);e>=0&&s(`tab-change`,t,e)}))};return H(()=>{x()}),X(M(()=>d.value.tabs.map(e=>e.key).join(`,`)),()=>{c.value&&!d.value.tabs.some(e=>e.key===c.value)&&x()}),X(()=>d.value.defaultTab,e=>{e&&e!==c.value&&_(e)}),n({switchToTab:_,validateCurrentTab:g,currentTab:ue(c),totalTabs:M(()=>m.value.length),tabsWithItems:ue(m)}),(t,n)=>{let r=i,o=E,s=p,l=k,u=A,x=a;return U(),F(`div`,mt,[P(` 无标签配置时的单一面板模式 `),f.value?(U(),F(j,{key:1},[P(` 有标签配置时的分标签模式 `),I(`div`,gt,[R(u,{value:c.value,"onUpdate:value":[n[0]||=e=>c.value=e,v],type:d.value.type,size:d.value.size,placement:d.value.placement,animated:d.value.animated,closable:d.value.closable,addable:d.value.addable,class:`form-tabs`,onClose:y,onAdd:b},{default:Z(()=>[(U(!0),F(j,null,K(m.value,t=>(U(),N(l,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled,closable:t.config.closable},{tab:Z(()=>[R(o,{align:`center`,size:8},{default:Z(()=>[t.config.icon?(U(),N(e,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):P(`v-if`,!0),I(`span`,null,J(t.config.title),1),d.value.showCount?(U(),N(r,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):P(`v-if`,!0)]),_:2},1024)]),default:Z(()=>[d.value.showTabHeader&&t.config.description?(U(),F(`div`,_t,[I(`p`,vt,J(t.config.description),1)])):P(`v-if`,!0),I(`div`,yt,[(U(!0),F(j,null,K(t.items,(e,t)=>(U(),N(q(e),{key:h(e,t)}))),128))]),t.items.length===0?(U(),N(s,{key:1,description:`暂无表单项`,class:`tab-empty`})):P(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),P(` 标签页操作按钮 `),d.value.showActions?(U(),F(`div`,bt,[R(o,{justify:`space-between`},{default:Z(()=>[R(o,null,{default:Z(()=>[d.value.validateBeforeSwitch?(U(),N(x,{key:0,type:`primary`,size:`small`,onClick:g},{default:Z(()=>[R(e,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),n[1]||=L(` 验证当前标签 `,-1)]),_:1,__:[1]})):P(`v-if`,!0)]),_:1}),R(o,null,{default:Z(()=>[de(t.$slots,`tab-actions`,{currentTab:c.value,totalTabs:m.value.length,validateTab:g,switchToTab:_},void 0,!0)]),_:3})]),_:3})])):P(`v-if`,!0)])],2112)):(U(),F(`div`,ht,[(U(!0),F(j,null,K(t.formItems,(e,t)=>(U(),N(q(e),{key:h(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-330de51f`]]);const St={class:`c-form-steps`},Ct={key:0,class:`single-panel`},wt={class:`steps-container`},Tt={key:0,class:`step-header`},Et={class:`step-title`},Dt={key:0,class:`step-description`},Ot={class:`step-form-items`},kt={class:`steps-actions`};var At=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:n,emit:r}){let i=t,o=r,c=G(0),l=G(!1),u=W({}),d=M(()=>{let e=i.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),f=M(()=>d.value.steps.length>0),p=M(()=>{if(!f.value)return[];let e=new Map;return d.value.steps.forEach(t=>{e.set(t.key,[])}),i.formItems.forEach((t,n)=>{let r=(i.options?.[n])?.layout?.step||d.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),m=M(()=>{for(let e=0;e<=c.value;e++)if(u[e]===!1)return`error`;return`process`}),h=M(()=>c.value===0),g=M(()=>c.value===p.value.length-1),_=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},v=async()=>{try{let e=await Promise.resolve(o(`step-validate`,c.value))!==!1;return u[c.value]=e,e}catch(e){return console.error(`[Steps Layout] 步骤验证失败:`,e),u[c.value]=!1,!1}},y=async(e,t=!1)=>{if(e<0||e>=p.value.length)return!1;if(e===c.value)return!0;try{return l.value=!0,t&&d.value.validateBeforeNext&&!await v()?!1:(await o(`step-before-change`,c.value,e),c.value=e,o(`step-change`,c.value,p.value[c.value].config.key),!0)}catch(e){return console.error(`[Steps Layout] 步骤切换失败:`,e),!1}finally{l.value=!1}},b=async()=>{await y(c.value+1,!0)},x=()=>{y(c.value-1)},S=async e=>{p.value[e]?.config.disabled||await y(e,e>c.value)},C=()=>{if(!f.value||p.value.length===0)return;let{defaultStep:e}=d.value;c.value=e>=0&&e<p.value.length&&!p.value[e]?.config.disabled?e:0};return X(M(()=>d.value.steps.map(e=>e.key).join(`,`)),()=>{C()}),H(()=>{C()}),n({nextStep:b,previousStep:x,goToStep:S,validateCurrentStep:v,currentStep:ue(c),totalSteps:M(()=>p.value.length)}),(t,n)=>{let r=D,i=O,o=s,u=a,v=E;return U(),F(`div`,St,[P(` 无步骤配置时的单一面板模式 `),f.value?(U(),F(j,{key:1},[P(` 有步骤配置时的分步骤模式 `),I(`div`,wt,[P(` 步骤指示器 `),R(i,{current:c.value+1,status:m.value,size:d.value.size,vertical:d.value.vertical,class:`steps-indicator`},{default:Z(()=>[(U(!0),F(j,null,K(p.value,e=>(U(),N(r,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),P(` 步骤内容区域 `),R(o,{class:`steps-content`,bordered:!1},{default:Z(()=>[(U(!0),F(j,null,K(p.value,(e,t)=>ge((U(),F(`div`,{key:e.config.key,class:`step-panel`},[P(` 步骤标题和描述 `),d.value.showStepHeader?(U(),F(`div`,Tt,[I(`h3`,Et,J(e.config.title),1),e.config.description?(U(),F(`p`,Dt,J(e.config.description),1)):P(`v-if`,!0)])):P(`v-if`,!0),P(` 步骤内的表单项 `),I(`div`,Ot,[(U(!0),F(j,null,K(e.items,(e,t)=>(U(),N(q(e),{key:_(e,t)}))),128))])])),[[me,c.value===t]])),128))]),_:1}),P(` 步骤操作按钮 `),I(`div`,kt,[R(v,{justify:`space-between`},{default:Z(()=>[c.value>0?(U(),N(u,{key:0,disabled:l.value,onClick:x},{default:Z(()=>[R(e,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),L(` `+J(d.value.prevButtonText),1)]),_:1},8,[`disabled`])):P(`v-if`,!0),n[0]||=I(`div`,null,null,-1),R(v,null,{default:Z(()=>[c.value<p.value.length-1?(U(),N(u,{key:0,type:`primary`,loading:l.value,onClick:b},{default:Z(()=>[L(J(d.value.nextButtonText)+` `,1),R(e,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`loading`])):P(`v-if`,!0),de(t.$slots,`step-actions`,{currentStep:c.value,totalSteps:p.value.length,isFirstStep:h.value,isLastStep:g.value,nextStep:b,previousStep:x,goToStep:S},void 0,!0)]),_:3})]),_:3,__:[0]})])])],2112)):(U(),F(`div`,Ct,[(U(!0),F(j,null,K(t.formItems,(e,t)=>(U(),N(q(e),{key:_(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-20345bf3`]]);const jt={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},Mt=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}],Nt=()=>{let e=W({config:{...jt},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),t=M(()=>[...e.baseFields,...e.dynamicFields.map(t=>({...t,show:!e.hiddenFieldIds.has(t.prop)}))]),n=M(()=>t.value.filter(e=>e.show!==!1)),r=M(()=>e.dynamicFields.length),i=M(()=>e.hiddenFieldIds.size),a=M(()=>e.dynamicFields.length<e.config.maxFields),o=M(()=>e.hiddenFieldIds.size===0);return{state:ue(e),allFields:t,visibleFields:n,dynamicFieldsCount:r,hiddenFieldsCount:i,canAddMoreFields:a,allVisible:o,FIELD_TYPE_OPTIONS:Mt,addField:(t={})=>{if(!a.value){console.warn(`[useDynamicFormState] 已达到最大字段数量限制`);return}e.fieldCounter++;let n=t.type||Mt[Math.floor(Math.random()*Mt.length)].value,r={id:`dynamic_field_${e.fieldCounter}`,type:n,prop:t.prop||`dynamic_${e.fieldCounter}`,label:t.label||`动态字段 ${e.fieldCounter}`,placeholder:t.placeholder||`请输入${t.label||`内容`}`,visible:!0,removable:!0,created:Date.now(),layout:t.layout||{span:12},...t};e.dynamicFields.push(r),console.log(`[useDynamicFormState] 添加字段:`,r)},removeField:t=>{if(e.dynamicFields.length===0){console.warn(`[useDynamicFormState] 没有可移除的动态字段`);return}let n=t??e.dynamicFields.length-1;if(n<0||n>=e.dynamicFields.length){console.warn(`[useDynamicFormState] 字段索引超出范围`);return}let r=e.dynamicFields.splice(n,1)[0];r&&(e.hiddenFieldIds.delete(r.prop),console.log(`[useDynamicFormState] 移除字段:`,r.prop))},clearDynamicFields:()=>{console.log(`[useDynamicFormState] 清空动态字段:`,e.dynamicFields.length),e.dynamicFields.forEach(t=>e.hiddenFieldIds.delete(t.prop)),e.dynamicFields.length=0,e.fieldCounter=0},toggleFieldVisibility:t=>{e.hiddenFieldIds.has(t)?(e.hiddenFieldIds.delete(t),console.log(`[useDynamicFormState] 显示字段:`,t)):(e.hiddenFieldIds.add(t),console.log(`[useDynamicFormState] 隐藏字段:`,t))},toggleAllVisibility:()=>{o.value?(e.dynamicFields.forEach(t=>{e.hiddenFieldIds.add(t.prop)}),console.log(`[useDynamicFormState] 隐藏所有动态字段`)):(e.hiddenFieldIds.clear(),console.log(`[useDynamicFormState] 显示所有字段`))},updateConfig:t=>{Object.assign(e.config,t),console.log(`[useDynamicFormState] 更新配置:`,t)},exportConfig:()=>{let t={baseFields:e.baseFields,dynamicFields:e.dynamicFields,config:e.config,hiddenFields:Array.from(e.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(t,null,2)},initialize:(t,n={})=>{console.log(`[useDynamicFormState] 初始化状态:`,{baseFieldsCount:t.length,config:n}),e.baseFields=[...t],Object.assign(e.config,n),e.isInitialized=!0,console.log(`[useDynamicFormState] 初始化完成`)}}},Pt=Symbol(`dynamicFormState`),Ft={class:`c-form-dynamic`},It={key:0,class:`dynamic-controls`},Lt={class:`max-fields-config`},Rt={class:`dynamic-stats`},zt={class:`dynamic-controls-fallback`},Bt={class:`dynamic-form-items`};var Vt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},dynamicFormState:{default:null}},emits:[`field-add`,`field-remove`,`fields-clear`],setup(t,{expose:n}){let o=t,c=oe(Pt,null),l=M(()=>o.dynamicFormState||c),u=M(()=>!!l.value),d=M(()=>o.layoutConfig?.dynamic?.grid?.cols??24),f=M(()=>o.layoutConfig?.dynamic?.grid?.gutter??16),p=M(()=>o.layoutConfig?.dynamic?.controls?.showControls!==!1),m=M(()=>l.value?.state.config.maxFields??o.layoutConfig?.dynamic?.dynamic?.maxFields??50),h=M(()=>l.value?.dynamicFieldsCount.value??0),v=M(()=>l.value?.canAddMoreFields.value??!1),b=M(()=>o.formItems.length),x=(e,t)=>e.key?.toString()||e.props?.path||`dynamic-item-${t}`,S=e=>{let t=o.options?.[e]?.layout?.span;return typeof t==`number`&&t>0&&t<=d.value?t:Math.min(12,d.value)},C=e=>{if(!l.value)return!1;let t=e.props?.path||e.key?.toString()||``;return l.value.state.dynamicFields.some(e=>e.prop===t)};return n({addField:()=>l.value?.addField(),removeField:()=>l.value?.removeField(),clearAllDynamic:()=>l.value?.clearDynamicFields(),isDynamicStateAvailable:u,dynamicState:l}),import.meta.env?.DEV&&he(()=>{let{options:e,formItems:t}=o;e&&e.length!==t.length&&console.warn(`[Dynamic Layout] 配置项数量(${e.length})与表单项数量(${t.length})不匹配`),console.log(`[Dynamic Layout]`,u.value?`动态模式已启用`:`运行在静态模式`,{totalFields:b.value,dynamicFields:h.value,stateSource:o.dynamicFormState?`props透传`:`inject注入`})}),(t,n)=>{let o=i,c=a,w=E,T=y,D=te,O=s,ee=r,k=_,A=g;return U(),F(`div`,Ft,[P(` 动态控制面板 `),p.value&&u.value?(U(),F(`div`,It,[R(O,{size:`small`,title:`动态表单控制`,bordered:!1},{"header-extra":Z(()=>[R(o,{value:h.value,type:`warning`},{default:Z(()=>[R(e,{name:`mdi:layers`,size:16})]),_:1},8,[`value`])]),default:Z(()=>[R(w,{justify:`space-between`,align:`center`},{default:Z(()=>[R(w,null,{default:Z(()=>[R(c,{size:`small`,type:`primary`,disabled:!v.value,onClick:n[0]||=e=>l.value.addField()},{icon:Z(()=>[R(e,{name:`mdi:plus`,size:14})]),default:Z(()=>[L(` 添加字段 (`+J(h.value)+`/`+J(m.value)+`) `,1)]),_:1},8,[`disabled`]),R(c,{size:`small`,type:`warning`,disabled:h.value===0,onClick:n[1]||=e=>l.value.removeField()},{icon:Z(()=>[R(e,{name:`mdi:minus`,size:14})]),default:Z(()=>[n[4]||=L(` 移除字段 `,-1)]),_:1,__:[4]},8,[`disabled`]),R(c,{size:`small`,type:`error`,disabled:h.value===0,onClick:n[2]||=e=>l.value.clearDynamicFields()},{icon:Z(()=>[R(e,{name:`mdi:delete-sweep`,size:14})]),default:Z(()=>[n[5]||=L(` 清空动态 `,-1)]),_:1,__:[5]},8,[`disabled`])]),_:1}),P(` 最大字段数配置 `),I(`div`,Lt,[n[6]||=I(`span`,null,`最大字段数:`,-1),R(T,{value:m.value,"onUpdate:value":n[3]||=e=>e&&l.value.updateConfig({maxFields:e}),min:5,max:50,size:`small`,style:{width:`100px`}},null,8,[`value`])])]),_:1}),I(`div`,Rt,[R(w,null,{default:Z(()=>[R(D,{type:`info`},{default:Z(()=>[L(`总字段: `+J(b.value),1)]),_:1}),R(D,{type:`warning`},{default:Z(()=>[L(`动态: `+J(h.value),1)]),_:1})]),_:1})])]),_:1})])):p.value&&!u.value?(U(),F(j,{key:1},[P(` 状态不可用时的提示 `),I(`div`,zt,[R(O,{size:`small`,title:`动态表单控制 (静态模式)`,bordered:!1},{default:Z(()=>[R(ee,{type:`info`,"show-icon":``},{icon:Z(()=>[R(e,{name:`mdi:information-outline`,size:16})]),default:Z(()=>[n[7]||=L(` 当前为静态模式,如需动态功能请在父组件中提供动态表单状态。 `,-1)]),_:1,__:[7]})]),_:1})])],2112)):P(`v-if`,!0),P(` 表单项渲染区域 `),I(`div`,Bt,[R(A,{cols:d.value,"x-gap":f.value,"y-gap":f.value},{default:Z(()=>[(U(!0),F(j,null,K(t.formItems,(e,t)=>(U(),N(k,{key:x(e,t),span:S(t)},{default:Z(()=>[I(`div`,{class:V([`dynamic-item-wrapper`,{"is-dynamic-field":C(e)}])},[(U(),N(q(e)))],2)]),_:2},1032,[`span`]))),128))]),_:1},8,[`cols`,`x-gap`,`y-gap`])])])}}}),[[`__scopeId`,`data-v-c2b155a1`]]);const Ht={class:`custom-layout`},Ut={class:`toolbar-content`},Wt={class:`mode-section`},Gt={class:`stats-section`},Kt={class:`stat-item`},qt={class:`stat-value`},Jt={class:`stat-item`},Yt={class:`stat-value`},Xt={class:`actions-section`},Zt={class:`design-tools`},Qt={class:`tool-group`},$t={key:0,class:`canvas-hint`},en={class:`areas-container`},tn={class:`area-header`},nn={class:`area-info`},rn=[`onClick`],an={class:`area-controls`},on={class:`field-preview`},sn={class:`field-label`},cn={class:`field-type`},ln={key:0,class:`area-drop-zone`},un={class:`field-name`},dn={class:`field-type-tag`},fn={key:0,class:`empty-layout`},pn={key:1,class:`form-container`},mn={class:`form-areas`};var hn=t(z({__name:`index`,props:{options:{default:()=>[]},formItems:{default:()=>[]},formData:{default:()=>({})}},emits:[`fields-change`,`export-data`],setup(e,{emit:t}){let n=e,r=t,i=G(!0),c=G([]),l=G([]),u=G(``),d=M(()=>n.options?.length>0?n.options:n.formItems?.map(e=>{let t=e.props;return{prop:t?.path||``,label:t?.label||t?.path||``,type:`input`,show:!0}}).filter(e=>e.prop)||[]),f=M(()=>c.value.reduce((e,t)=>e+t.fields.length,0)),m=()=>`${Date.now()}-${Math.random().toString(36).substring(2,11)}`,h=e=>({input:`输入框`,select:`下拉框`,radio:`单选框`,checkbox:`复选框`,textarea:`文本域`,date:`日期`,number:`数字`})[e]||e,g=e=>n.formItems?.find(t=>t.props?.path===e.prop)||null,_=e=>{let t={id:m(),title:`${e===`horizontal`?`水平`:e===`vertical`?`垂直`:`网格`}区域`,type:e,fields:[]};c.value.push(t)},y=e=>{let t=c.value.findIndex(t=>t.id===e);t!==-1&&c.value.splice(t,1)},b=e=>({...e,id:`${e.prop}-${m()}`}),x=(e,t)=>{let n=c.value.find(t=>t.id===e);if(n){let e=n.fields.findIndex(e=>e.id===t);e!==-1&&n.fields.splice(e,1)}},S=()=>{let e=JSON.stringify(c.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`layout-config-${Date.now()}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},C=()=>{c.value=[]},w=()=>{r(`export-data`,{layout:c.value,formData:n.formData,timestamp:new Date().toISOString()})};return he(()=>{let e=new Set(c.value.flatMap(e=>e.fields.map(e=>e.prop)));l.value=d.value.filter(t=>!e.has(t.prop)).map(e=>({...e,id:e.prop}))}),X(()=>c.value,()=>{r(`fields-change`,c.value.flatMap(e=>e.fields.map(e=>({...e,id:void 0}))))},{deep:!0}),(e,t)=>{let n=a,r=o,d=s,m=v,T=te,E=p;return U(),F(`div`,Ht,[P(` 顶部工具栏 `),R(d,{bordered:!1,class:`toolbar-card`},{default:Z(()=>[I(`div`,Ut,[P(` 模式切换 `),I(`div`,Wt,[t[12]||=I(`span`,{class:`section-label`},`自定义模式:`,-1),R(r,null,{default:Z(()=>[R(n,{type:i.value?`primary`:`default`,onClick:t[0]||=e=>i.value=!0,size:`small`},{default:Z(()=>t[10]||=[L(` 🎨 设计模式 `,-1)]),_:1,__:[10]},8,[`type`]),R(n,{type:i.value?`default`:`primary`,onClick:t[1]||=e=>i.value=!1,size:`small`},{default:Z(()=>t[11]||=[L(` 📝 填写模式 `,-1)]),_:1,__:[11]},8,[`type`])]),_:1})]),P(` 统计信息 `),I(`div`,Gt,[I(`div`,Kt,[I(`div`,qt,J(c.value.length),1),t[13]||=I(`div`,{class:`stat-label`},`自定义区域`,-1)]),I(`div`,Jt,[I(`div`,Yt,J(f.value),1),t[14]||=I(`div`,{class:`stat-label`},`字段总数`,-1)])]),P(` 操作按钮 `),I(`div`,Xt,[i.value?(U(),F(j,{key:0},[R(n,{secondary:``,onClick:S,size:`small`},{default:Z(()=>t[15]||=[L(` 💾 保存布局 `,-1)]),_:1,__:[15]}),R(n,{secondary:``,onClick:C,size:`small`},{default:Z(()=>t[16]||=[L(` 🔄 重置布局 `,-1)]),_:1,__:[16]})],64)):(U(),N(n,{key:1,secondary:``,onClick:w,size:`small`},{default:Z(()=>t[17]||=[L(` 📊 导出数据 `,-1)]),_:1,__:[17]}))])])]),_:1}),P(` 设计模式工具面板 `),i.value?(U(),N(d,{key:0,class:`design-panel`,title:`🎨 设计工具`},{default:Z(()=>[I(`div`,Zt,[I(`div`,Qt,[t[21]||=I(`span`,{class:`group-label`},`添加区域:`,-1),R(n,{onClick:t[2]||=e=>_(`horizontal`),size:`small`},{default:Z(()=>t[18]||=[L(` ➡️ 水平区域 `,-1)]),_:1,__:[18]}),R(n,{onClick:t[3]||=e=>_(`vertical`),size:`small`},{default:Z(()=>t[19]||=[L(` ⬇️ 垂直区域 `,-1)]),_:1,__:[19]}),R(n,{onClick:t[4]||=e=>_(`grid`),size:`small`},{default:Z(()=>t[20]||=[L(` ⚏ 网格区域 `,-1)]),_:1,__:[20]})])])]),_:1})):P(`v-if`,!0),P(` 主画布区域 `),I(`div`,{class:V([`layout-canvas`,{"design-mode":i.value}])},[P(` 设计模式 `),i.value?(U(),F(j,{key:0},[c.value.length===0?(U(),F(`div`,$t,t[22]||=[I(`div`,{class:`hint-content`},[I(`h3`,null,`🎨 开始自定义你的布局`),I(`p`,null,`点击上方按钮添加区域`)],-1)])):(U(),F(j,{key:1},[P(` 区域列表 `),I(`div`,en,[(U(!0),F(j,null,K(c.value,e=>(U(),F(`div`,{key:e.id,class:V([`custom-area`,`area-${e.type}`])},[I(`div`,tn,[I(`div`,nn,[u.value===e.id?(U(),N(m,{key:0,value:e.title,"onUpdate:value":t=>e.title=t,size:`small`,onBlur:t[5]||=e=>u.value=``,onKeyup:t[6]||=_e(e=>u.value=``,[`enter`]),class:`title-input`},null,8,[`value`,`onUpdate:value`])):(U(),F(`span`,{key:1,class:`area-title`,onClick:t=>u.value=e.id},J(e.title),9,rn)),R(T,{size:`small`},{default:Z(()=>[L(J(e.fields.length)+` 字段`,1)]),_:2},1024)]),I(`div`,an,[R(n,{text:``,onClick:t=>y(e.id),size:`tiny`,type:`error`,title:`删除区域`},{default:Z(()=>t[23]||=[L(` 🗑️ `,-1)]),_:2,__:[23]},1032,[`onClick`])])]),P(` 字段容器(可拖入) `),R(Y(ve),{modelValue:e.fields,"onUpdate:modelValue":t=>e.fields=t,class:`area-fields`,group:{name:`form-fields`,pull:!0,put:!0},animation:200,"ghost-class":`field-ghost`,"item-key":`id`},{default:Z(()=>[(U(!0),F(j,null,K(e.fields,r=>(U(),F(`div`,{key:r.id,class:`field-item`},[I(`div`,on,[t[25]||=I(`span`,{class:`drag-handle`},`⠿`,-1),I(`span`,sn,J(r.label||r.prop),1),I(`span`,cn,J(h(r.type)),1),R(n,{text:``,size:`tiny`,type:`error`,onClick:t=>x(e.id,r.id),title:`移出字段`},{default:Z(()=>t[24]||=[L(` ✕ `,-1)]),_:2,__:[24]},1032,[`onClick`])])]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]),e.fields.length===0?(U(),F(`div`,ln,` 从下方字段池拖拽字段到这里 `)):P(`v-if`,!0)],2))),128))])],2112)),P(` 字段池(可拖出) `),R(d,{class:`field-pool`,title:`📦 可用字段`},{default:Z(()=>[R(Y(ve),{modelValue:l.value,"onUpdate:modelValue":t[7]||=e=>l.value=e,class:`pool-fields-grid`,group:{name:`form-fields`,pull:`clone`,put:!0},animation:200,sort:!1,"ghost-class":`field-ghost`,"item-key":`id`,clone:b},{default:Z(()=>[(U(!0),F(j,null,K(l.value,e=>(U(),F(`div`,{key:e.id,class:`pool-field`},[t[26]||=I(`span`,{class:`drag-handle`},`⠿`,-1),I(`span`,un,J(e.label||e.prop),1),I(`span`,dn,J(h(e.type)),1)]))),128))]),_:1},8,[`modelValue`])]),_:1})],64)):(U(),F(j,{key:1},[P(` 填写模式 `),c.value.length===0?(U(),F(`div`,fn,[R(E,{description:`尚未设计布局`},{extra:Z(()=>[R(n,{onClick:t[8]||=e=>i.value=!0,type:`primary`},{default:Z(()=>t[27]||=[L(` 🎨 开始设计 `,-1)]),_:1,__:[27]})]),_:1})])):(U(),F(`div`,pn,[I(`div`,mn,[(U(!0),F(j,null,K(c.value,e=>(U(),F(`div`,{key:e.id,class:V([`form-area`,`area-${e.type}`])},[e.fields.length>0?(U(),N(d,{key:0,title:e.title},{default:Z(()=>[I(`div`,{class:V([`area-form-items`,`layout-${e.type}`])},[(U(!0),F(j,null,K(e.fields,e=>(U(),N(q(g(e)),{key:e.prop}))),128))],2)]),_:2},1032,[`title`])):(U(),N(E,{key:1,description:`此区域暂无字段`,size:`small`},{extra:Z(()=>[R(n,{onClick:t[9]||=e=>i.value=!0,size:`small`,secondary:``},{default:Z(()=>t[28]||=[L(` 🎨 添加字段 `,-1)]),_:1,__:[28]})]),_:1}))],2))),128))])]))],64))],2)])}}}),[[`__scopeId`,`data-v-fe093284`]]);const gn=z({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(e,{expose:t,emit:r}){let i={default:Fe,inline:Ie,grid:He,card:pt,tabs:xt,steps:At,dynamic:Vt,custom:hn},o={NFormItem:h,NInput:v,NInputNumber:y,NSwitch:ee,NSlider:T,NRate:C,NDatePicker:f,NTimePicker:ne,NCascader:c,NColorPicker:d,NSelect:w,NCheckboxGroup:u,NCheckbox:l,NRadioGroup:S,NRadio:x,NUpload:ie,NButton:a,NSpace:E,NTooltip:re,C_Editor:n},s=e,p=r,g=M(()=>Se(s.config)),_=G(null),{formModel:b,formRules:D,visibleOptions:O,initialize:k,handleFieldChange:A,validate:te,validateField:j,validateStep:F,validateTab:I,validateDynamicFields:z,validateCustomGroup:B,clearValidation:oe,getModel:V,setFields:le,resetFields:H,setFieldValue:W,getFieldValue:ue,setFieldsValue:K,handleSubmit:fe,handleReset:J,isDirty:pe,getChangedFields:me,isFieldDirty:he,markAsClean:ge,asyncOptionsCache:_e,asyncLoadingMap:ve}=De(M(()=>s.options),g,_,p),{formItems:ye}=Ne({formModel:b,visibleOptions:O,config:g,handleFieldChange:A,componentMap:o,instanceSlots:ae()?.slots,asyncOptionsCache:_e,asyncLoadingMap:ve});X(()=>g.value.initialValues,e=>{e&&g.value.mode===`edit`&&(Object.assign(b,e),ce(()=>ge()))},{immediate:!0});let be=M(()=>i[g.value.layout]||i.default),xe=M(()=>({type:g.value.layout,grid:g.value.grid,inline:g.value.inline,card:g.value.card,tabs:g.value.tabs,steps:g.value.steps,dynamic:g.value.dynamic,custom:g.value.custom})),Q=M(()=>Ce(g.value)),$=(e,...t)=>{let n=g.value[e];n?.(...t)},we=e=>{g.value.onFieldsChange?.(e)},Te=(e,t)=>{g.value.onStepChange?.(e,t)},Ee=async(e,t)=>(g.value.onStepBeforeChange?.(e,t),!0),Oe=async e=>{try{let t=g.value.steps?.steps?.[e]?.key;if(!t)return!0;let n=s.options.filter(e=>e.layout?.step===t).map(e=>e.prop);return n.length===0?!0:(await j(n),g.value.onStepValidate?.(e),!0)}catch(t){return console.warn(`[C_Form] 步骤 ${e} 验证失败:`,t),!1}};return X(()=>s.modelValue,e=>{e&&Object.assign(b,e)},{immediate:!0,deep:!0}),t({validate:te,validateField:j,validateStep:F,validateTab:I,validateDynamicFields:z,validateCustomGroup:B,clearValidation:oe,getModel:V,setFields:le,resetFields:H,setFieldValue:W,getFieldValue:ue,setFieldsValue:K,formRef:_,formModel:b,initialize:k,layoutType:M(()=>g.value.layout),shouldShowDefaultActions:Q,isDirty:pe,getChangedFields:me,isFieldDirty:he,markAsClean:ge,asyncLoadingMap:ve}),(e,t)=>(U(),N(Y(m),se({ref_key:`formRef`,ref:_,model:Y(b),rules:Y(D),"validate-on-rule-change":!1,"label-placement":g.value.labelPlacement,"label-width":g.value.labelWidth,size:g.value.size,disabled:g.value.disabled,readonly:g.value.readonly},e.$attrs),{default:Z(()=>[P(` 布局组件渲染 `),(U(),N(q(be.value),{"form-items":Y(ye),"layout-config":xe.value,options:Y(O),"form-data":Y(b),onTabChange:t[0]||=e=>$(`onTabChange`,e),onTabValidate:t[1]||=e=>$(`onTabValidate`,e),onStepChange:Te,onStepBeforeChange:Ee,onStepValidate:Oe,onFieldAdd:t[2]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[3]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[4]||=(e,t)=>g.value.onFieldToggle?.(e,t),onFieldsClear:t[5]||=e=>$(`onFieldsClear`),onRenderModeChange:t[6]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[7]||=(e,t)=>g.value.onGroupToggle?.(e,t),onGroupReset:t[8]||=e=>$(`onGroupReset`,e),onValidateSuccess:t[9]||=e=>p(`validate-success`,e),onValidateError:t[10]||=e=>p(`validate-error`,e),onFieldsChange:we},null,40,[`form-items`,`layout-config`,`options`,`form-data`])),P(` 表单操作按钮区域(只在特定布局中显示) `),Q.value?(U(),N(Y(h),{key:0,style:{"margin-top":`20px`}},{default:Z(()=>[de(e.$slots,`action`,{form:_.value,model:Y(b),validate:Y(te),validateField:Y(j),reset:Y(H),setFields:Y(le),getModel:Y(V),clearValidation:Y(oe)},()=>[R(Y(E),null,{default:Z(()=>[R(Y(a),{type:`primary`,onClick:Y(fe)},{default:Z(()=>t[11]||=[L(`提交`,-1)]),_:1,__:[11]},8,[`onClick`]),R(Y(a),{onClick:Y(J)},{default:Z(()=>t[12]||=[L(`重置`,-1)]),_:1,__:[12]},8,[`onClick`])]),_:1})])]),_:3})):P(`v-if`,!0)]),_:3},16,[`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`]))}});export{je as a,we as c,Se as d,Ce as f,Nt as i,be as l,Pt as n,Ne as o,Mt as r,De as s,gn as t,xe as u};
2
2
  //# sourceMappingURL=C_Form2.js.map