smart-admin-web 10.14.0 → 10.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +6 -6
  2. package/dist/api/index.d.ts +41 -2
  3. package/dist/api/index.js +36 -15
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/schema.d.ts +418 -6
  6. package/dist/assets/icons/ph-subset.json.js +7 -7
  7. package/dist/assets/smart-logo.svg.js +5 -0
  8. package/dist/assets/smart-logo.svg.js.map +1 -0
  9. package/dist/components/AppIcon.vue.js +9 -9
  10. package/dist/components/AppIcon.vue.js.map +1 -1
  11. package/dist/components/AppWatermark.vue.d.ts +14 -0
  12. package/dist/components/AppWatermark.vue.js +38 -0
  13. package/dist/components/AppWatermark.vue.js.map +1 -0
  14. package/dist/components/AppWatermark2.vue.js +5 -0
  15. package/dist/components/AppWatermark2.vue.js.map +1 -0
  16. package/dist/components/Chart/PieChart.vue.d.ts +1 -1
  17. package/dist/components/Chart/echarts.js +15 -20
  18. package/dist/components/Chart/echarts.js.map +1 -1
  19. package/dist/components/CronEditor/index.vue.js +1 -1
  20. package/dist/components/CronEditor/index2.vue.js +2 -1
  21. package/dist/components/CronEditor/index2.vue.js.map +1 -1
  22. package/dist/components/DetailPage/index.vue.js +2 -2
  23. package/dist/components/DetailPage/index2.vue.js.map +1 -1
  24. package/dist/components/DictTag/index.vue.js.map +1 -1
  25. package/dist/components/ErrorBoundary/index.vue.js +2 -2
  26. package/dist/components/ErrorBoundary/index2.vue.js +1 -1
  27. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
  28. package/dist/components/FormContainer/index.vue.js +91 -56
  29. package/dist/components/FormContainer/index.vue.js.map +1 -1
  30. package/dist/components/ImportWizard/index.vue.js +1 -1
  31. package/dist/components/ImportWizard/index2.vue.js +44 -41
  32. package/dist/components/ImportWizard/index2.vue.js.map +1 -1
  33. package/dist/components/MenuSearch.vue.js +2 -2
  34. package/dist/components/MenuSearch2.vue.js +19 -18
  35. package/dist/components/MenuSearch2.vue.js.map +1 -1
  36. package/dist/components/PasswordStrength/index.vue.js +2 -2
  37. package/dist/components/PasswordStrength/index2.vue.js +20 -18
  38. package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
  39. package/dist/components/SmartLogo.vue.d.ts +3 -0
  40. package/dist/components/SmartLogo.vue.js +1 -1
  41. package/dist/components/SmartLogo2.vue.js +22 -64
  42. package/dist/components/SmartLogo2.vue.js.map +1 -1
  43. package/dist/{views/system/config/components/GroupExtraConfig.vue.d.ts → components/TableTotal/index.vue.d.ts} +1 -4
  44. package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
  45. package/dist/components/TableTotal/index2.vue.js +16 -0
  46. package/dist/components/TableTotal/index2.vue.js.map +1 -0
  47. package/dist/components/TableZoomButton/index.vue.js.map +1 -1
  48. package/dist/components/UserPicker/index.vue.js +2 -2
  49. package/dist/components/UserPicker/index2.vue.js +176 -117
  50. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  51. package/dist/composables/useBatchDelete.js.map +1 -1
  52. package/dist/composables/useLayoutMenu.js +17 -16
  53. package/dist/composables/useLayoutMenu.js.map +1 -1
  54. package/dist/composables/useLoginHero.d.ts +2 -0
  55. package/dist/composables/useLoginHero.js +22 -0
  56. package/dist/composables/useLoginHero.js.map +1 -0
  57. package/dist/composables/useModule.js +39 -29
  58. package/dist/composables/useModule.js.map +1 -1
  59. package/dist/composables/usePageTitle.js +16 -14
  60. package/dist/composables/usePageTitle.js.map +1 -1
  61. package/dist/composables/useShellBreakpoint.d.ts +19 -0
  62. package/dist/composables/useShellBreakpoint.js +37 -0
  63. package/dist/composables/useShellBreakpoint.js.map +1 -0
  64. package/dist/composables/useSite.d.ts +20 -0
  65. package/dist/composables/useSite.js +18 -13
  66. package/dist/composables/useSite.js.map +1 -1
  67. package/dist/composables/useTabTitle.js.map +1 -1
  68. package/dist/composables/useTableTitle.d.ts +6 -0
  69. package/dist/composables/useTableTitle.js +11 -0
  70. package/dist/composables/useTableTitle.js.map +1 -0
  71. package/dist/composables/useTableZoom.d.ts +5 -0
  72. package/dist/composables/useTableZoom.js.map +1 -1
  73. package/dist/composables/useTheme.d.ts +2 -2
  74. package/dist/composables/useTheme.js +23 -20
  75. package/dist/composables/useTheme.js.map +1 -1
  76. package/dist/createSmartAdmin.d.ts +12 -2
  77. package/dist/createSmartAdmin.js +72 -60
  78. package/dist/createSmartAdmin.js.map +1 -1
  79. package/dist/index.d.ts +5 -2
  80. package/dist/index.js +223 -208
  81. package/dist/index.js.map +1 -1
  82. package/dist/layouts/AccentPicker.vue.js +8 -0
  83. package/dist/layouts/AccentPicker.vue.js.map +1 -0
  84. package/dist/layouts/AccentPicker2.vue.js +131 -0
  85. package/dist/layouts/AccentPicker2.vue.js.map +1 -0
  86. package/dist/layouts/AppHeader.vue.d.ts +8 -1
  87. package/dist/layouts/AppHeader.vue.js +2 -2
  88. package/dist/layouts/AppHeader2.vue.js +317 -235
  89. package/dist/layouts/AppHeader2.vue.js.map +1 -1
  90. package/dist/layouts/NoticeBell.vue.js +2 -2
  91. package/dist/layouts/NoticeBell2.vue.js +1 -1
  92. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  93. package/dist/layouts/PersonalLayout.vue.js +2 -2
  94. package/dist/layouts/PersonalLayout2.vue.js +69 -47
  95. package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
  96. package/dist/layouts/SettingsDrawer.vue.js +3 -3
  97. package/dist/layouts/SettingsDrawer2.vue.js +261 -325
  98. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
  99. package/dist/layouts/TabsBar.vue.js +2 -2
  100. package/dist/layouts/TabsBar2.vue.js +97 -69
  101. package/dist/layouts/TabsBar2.vue.js.map +1 -1
  102. package/dist/layouts/components/SideNav.vue.d.ts +3 -0
  103. package/dist/layouts/components/SideNav.vue.js +1 -1
  104. package/dist/layouts/components/SideNav2.vue.js +54 -26
  105. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  106. package/dist/layouts/default.vue.js +1 -1
  107. package/dist/layouts/default2.vue.js +170 -140
  108. package/dist/layouts/default2.vue.js.map +1 -1
  109. package/dist/lib/favicon.d.ts +1 -0
  110. package/dist/lib/favicon.js +12 -0
  111. package/dist/lib/favicon.js.map +1 -0
  112. package/dist/lib/loginHero.d.ts +16 -0
  113. package/dist/lib/loginHero.js +33 -0
  114. package/dist/lib/loginHero.js.map +1 -0
  115. package/dist/lib/logoCrop.d.ts +25 -0
  116. package/dist/lib/logoCrop.js +22 -0
  117. package/dist/lib/logoCrop.js.map +1 -0
  118. package/dist/lib/runtime.d.ts +2 -0
  119. package/dist/lib/runtime.js +1 -1
  120. package/dist/lib/runtime.js.map +1 -1
  121. package/dist/lib/securityRules.d.ts +26 -0
  122. package/dist/lib/securityRules.js +86 -0
  123. package/dist/lib/securityRules.js.map +1 -0
  124. package/dist/lib/watermark.d.ts +110 -0
  125. package/dist/lib/watermark.js +151 -0
  126. package/dist/lib/watermark.js.map +1 -0
  127. package/dist/locales/en-US.d.ts +462 -42
  128. package/dist/locales/en-US.js +491 -78
  129. package/dist/locales/en-US.js.map +1 -1
  130. package/dist/locales/kernelMenuTitles.d.ts +1 -0
  131. package/dist/locales/kernelMenuTitles.js +128 -0
  132. package/dist/locales/kernelMenuTitles.js.map +1 -0
  133. package/dist/locales/menuTitle.d.ts +3 -0
  134. package/dist/locales/menuTitle.js +14 -12
  135. package/dist/locales/menuTitle.js.map +1 -1
  136. package/dist/locales/zh-CN.d.ts +462 -42
  137. package/dist/locales/zh-CN.js +490 -81
  138. package/dist/locales/zh-CN.js.map +1 -1
  139. package/dist/router/index.js +41 -32
  140. package/dist/router/index.js.map +1 -1
  141. package/dist/router/namedPage.d.ts +4 -0
  142. package/dist/router/namedPage.js +7 -7
  143. package/dist/router/namedPage.js.map +1 -1
  144. package/dist/router/viewRegistry.js +12 -12
  145. package/dist/router/viewRegistry.js.map +1 -1
  146. package/dist/stores/app.d.ts +0 -12
  147. package/dist/stores/app.js +11 -12
  148. package/dist/stores/app.js.map +1 -1
  149. package/dist/stores/tabs.js.map +1 -1
  150. package/dist/stores/user.d.ts +10 -0
  151. package/dist/stores/user.js.map +1 -1
  152. package/dist/style.css +1 -1
  153. package/dist/theme/accentTokens.d.ts +27 -0
  154. package/dist/theme/accentTokens.js +54 -0
  155. package/dist/theme/accentTokens.js.map +1 -0
  156. package/dist/theme/accents.d.ts +21 -1
  157. package/dist/theme/accents.js +11 -2
  158. package/dist/theme/accents.js.map +1 -1
  159. package/dist/theme/mix.d.ts +58 -7
  160. package/dist/theme/mix.js +115 -30
  161. package/dist/theme/mix.js.map +1 -1
  162. package/dist/theme/naive-theme.d.ts +5 -2
  163. package/dist/theme/naive-theme.js +405 -75
  164. package/dist/theme/naive-theme.js.map +1 -1
  165. package/dist/utils/jwt.d.ts +8 -0
  166. package/dist/utils/jwt.js +14 -0
  167. package/dist/utils/jwt.js.map +1 -0
  168. package/dist/utils/menuIcon.d.ts +2 -0
  169. package/dist/utils/menuIcon.js +8 -0
  170. package/dist/utils/menuIcon.js.map +1 -0
  171. package/dist/utils/oauthBrand.d.ts +34 -9
  172. package/dist/utils/oauthBrand.js +70 -74
  173. package/dist/utils/oauthBrand.js.map +1 -1
  174. package/dist/utils/tableFilter.d.ts +88 -0
  175. package/dist/utils/tableFilter.js +116 -0
  176. package/dist/utils/tableFilter.js.map +1 -0
  177. package/dist/utils/tableToolbar.d.ts +18 -0
  178. package/dist/utils/tableToolbar.js +11 -0
  179. package/dist/utils/tableToolbar.js.map +1 -0
  180. package/dist/utils/treeFilter.d.ts +20 -0
  181. package/dist/utils/treeFilter.js +24 -0
  182. package/dist/utils/treeFilter.js.map +1 -0
  183. package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
  184. package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
  185. package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
  186. package/dist/views/dashboard/biz.vue.js +1 -1
  187. package/dist/views/dashboard/biz2.vue.js +310 -257
  188. package/dist/views/dashboard/biz2.vue.js.map +1 -1
  189. package/dist/views/dashboard/workbench.vue.js +2 -2
  190. package/dist/views/dashboard/workbench2.vue.js +141 -155
  191. package/dist/views/dashboard/workbench2.vue.js.map +1 -1
  192. package/dist/views/embed/iframe.vue.js +2 -2
  193. package/dist/views/embed/iframe2.vue.js +22 -15
  194. package/dist/views/embed/iframe2.vue.js.map +1 -1
  195. package/dist/views/error/404.vue.js +2 -2
  196. package/dist/views/error/4042.vue.js +33 -24
  197. package/dist/views/error/4042.vue.js.map +1 -1
  198. package/dist/views/error/BootError.vue.js +1 -1
  199. package/dist/views/error/BootError2.vue.js +59 -48
  200. package/dist/views/error/BootError2.vue.js.map +1 -1
  201. package/dist/views/error/MissingRoute.vue.js +2 -2
  202. package/dist/views/error/MissingRoute2.vue.js +34 -15
  203. package/dist/views/error/MissingRoute2.vue.js.map +1 -1
  204. package/dist/views/login/LoginForm.vue.d.ts +7 -1
  205. package/dist/views/login/LoginForm.vue.js +2 -2
  206. package/dist/views/login/LoginForm2.vue.js +580 -488
  207. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  208. package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
  209. package/dist/views/login/components/LoginDesk.vue.js +9 -0
  210. package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
  211. package/dist/views/login/components/LoginDesk2.vue.js +100 -0
  212. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
  213. package/dist/views/login/components/LoginHeroPanel.vue.d.ts +18 -0
  214. package/dist/views/login/components/LoginHeroPanel.vue.js +8 -0
  215. package/dist/views/login/components/LoginHeroPanel.vue.js.map +1 -0
  216. package/dist/views/login/components/LoginHeroPanel2.vue.js +61 -0
  217. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -0
  218. package/dist/views/login/index.vue.js +1 -1
  219. package/dist/views/login/index2.vue.js +141 -71
  220. package/dist/views/login/index2.vue.js.map +1 -1
  221. package/dist/views/login/layout.d.ts +11 -0
  222. package/dist/views/login/layout.js +27 -0
  223. package/dist/views/login/layout.js.map +1 -0
  224. package/dist/views/mfa/index.vue.js +2 -2
  225. package/dist/views/mfa/index2.vue.js +367 -321
  226. package/dist/views/mfa/index2.vue.js.map +1 -1
  227. package/dist/views/module/index.vue.js +2 -2
  228. package/dist/views/module/index2.vue.js +132 -99
  229. package/dist/views/module/index2.vue.js.map +1 -1
  230. package/dist/views/oauth/callback.vue.js +2 -2
  231. package/dist/views/oauth/callback2.vue.js +65 -51
  232. package/dist/views/oauth/callback2.vue.js.map +1 -1
  233. package/dist/views/personal/bindings.vue.js +2 -2
  234. package/dist/views/personal/bindings2.vue.js +98 -94
  235. package/dist/views/personal/bindings2.vue.js.map +1 -1
  236. package/dist/views/personal/notice2.vue.js +103 -76
  237. package/dist/views/personal/notice2.vue.js.map +1 -1
  238. package/dist/views/personal/password2.vue.js +47 -40
  239. package/dist/views/personal/password2.vue.js.map +1 -1
  240. package/dist/views/personal/profile.vue.js +3 -3
  241. package/dist/views/personal/profile2.vue.js +24 -18
  242. package/dist/views/personal/profile2.vue.js.map +1 -1
  243. package/dist/views/personal/security.vue.js +2 -2
  244. package/dist/views/personal/security2.vue.js +65 -53
  245. package/dist/views/personal/security2.vue.js.map +1 -1
  246. package/dist/views/personal/sessions.vue.js +2 -2
  247. package/dist/views/personal/sessions2.vue.js +67 -62
  248. package/dist/views/personal/sessions2.vue.js.map +1 -1
  249. package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
  250. package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
  251. package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
  252. package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
  253. package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
  254. package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
  255. package/dist/views/system/ai-model/index.vue.js +2 -2
  256. package/dist/views/system/ai-model/index2.vue.js +99 -99
  257. package/dist/views/system/ai-model/index2.vue.js.map +1 -1
  258. package/dist/views/system/ai-model/presets.d.ts +1 -1
  259. package/dist/views/system/ai-model/presets.js +18 -18
  260. package/dist/views/system/ai-model/presets.js.map +1 -1
  261. package/dist/views/system/ai-usage/index.vue.js +2 -2
  262. package/dist/views/system/ai-usage/index2.vue.js +356 -258
  263. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  264. package/dist/views/system/api-docs/index.vue.js +5 -2
  265. package/dist/views/system/api-docs/index.vue.js.map +1 -1
  266. package/dist/views/system/api-docs/index2.vue.js +92 -42
  267. package/dist/views/system/api-docs/index2.vue.js.map +1 -1
  268. package/dist/views/system/cache/index.vue.js +2 -2
  269. package/dist/views/system/cache/index2.vue.js +74 -80
  270. package/dist/views/system/cache/index2.vue.js.map +1 -1
  271. package/dist/views/system/config/components/AdminMock.vue.js +8 -0
  272. package/dist/views/system/config/components/AdminMock.vue.js.map +1 -0
  273. package/dist/views/system/config/components/AdminMock2.vue.js +93 -0
  274. package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -0
  275. package/dist/views/system/config/components/AdvancedSection.vue.js +8 -0
  276. package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -0
  277. package/dist/views/system/config/components/AdvancedSection2.vue.js +163 -0
  278. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -0
  279. package/dist/views/system/config/components/BrandSection.vue.d.ts +7 -0
  280. package/dist/views/system/config/components/BrandSection.vue.js +8 -0
  281. package/dist/views/system/config/components/BrandSection.vue.js.map +1 -0
  282. package/dist/views/system/config/components/BrandSection2.vue.js +266 -0
  283. package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -0
  284. package/dist/views/system/config/components/CfgGroup.vue.d.ts +18 -0
  285. package/dist/views/system/config/components/CfgGroup.vue.js +8 -0
  286. package/dist/views/system/config/components/CfgGroup.vue.js.map +1 -0
  287. package/dist/views/system/config/components/CfgGroup2.vue.js +22 -0
  288. package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -0
  289. package/dist/views/system/config/components/CfgRow.vue.d.ts +26 -0
  290. package/dist/views/system/config/components/CfgRow.vue.js +9 -0
  291. package/dist/views/system/config/components/CfgRow.vue.js.map +1 -0
  292. package/dist/views/system/config/components/CfgRow2.vue.js +54 -0
  293. package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -0
  294. package/dist/views/system/config/components/CfgSegment.vue.d.ts +28 -0
  295. package/dist/views/system/config/components/CfgSegment.vue.js +8 -0
  296. package/dist/views/system/config/components/CfgSegment.vue.js.map +1 -0
  297. package/dist/views/system/config/components/CfgSegment2.vue.js +45 -0
  298. package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -0
  299. package/dist/views/system/config/components/ConfigFormModal.vue.js +4 -1
  300. package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -1
  301. package/dist/views/system/config/components/ConfigFormModal2.vue.js +72 -60
  302. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
  303. package/dist/views/system/config/components/JobSection.vue.js +8 -0
  304. package/dist/views/system/config/components/JobSection.vue.js.map +1 -0
  305. package/dist/views/system/config/components/JobSection2.vue.js +140 -0
  306. package/dist/views/system/config/components/JobSection2.vue.js.map +1 -0
  307. package/dist/views/system/config/components/LoginMock.vue.d.ts +8 -0
  308. package/dist/views/system/config/components/LoginMock.vue.js +8 -0
  309. package/dist/views/system/config/components/LoginMock.vue.js.map +1 -0
  310. package/dist/views/system/config/components/LoginMock2.vue.js +132 -0
  311. package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -0
  312. package/dist/views/system/config/components/LogoCropper.vue.d.ts +10 -0
  313. package/dist/views/system/config/components/LogoCropper.vue.js +8 -0
  314. package/dist/views/system/config/components/LogoCropper.vue.js.map +1 -0
  315. package/dist/views/system/config/components/LogoCropper2.vue.js +122 -0
  316. package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -0
  317. package/dist/views/system/config/components/LogoEditor.vue.js +8 -0
  318. package/dist/views/system/config/components/LogoEditor.vue.js.map +1 -0
  319. package/dist/views/system/config/components/LogoEditor2.vue.js +161 -0
  320. package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -0
  321. package/dist/views/system/config/components/ProviderSheet.vue.d.ts +17 -0
  322. package/dist/views/system/config/components/ProviderSheet.vue.js +8 -0
  323. package/dist/views/system/config/components/ProviderSheet.vue.js.map +1 -0
  324. package/dist/views/system/config/components/ProviderSheet2.vue.js +343 -0
  325. package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -0
  326. package/dist/{layouts/SettingRow.vue.d.ts → views/system/config/components/ScaleToFit.vue.d.ts} +2 -1
  327. package/dist/views/system/config/components/ScaleToFit.vue.js +8 -0
  328. package/dist/views/system/config/components/ScaleToFit.vue.js.map +1 -0
  329. package/dist/views/system/config/components/ScaleToFit2.vue.js +41 -0
  330. package/dist/views/system/config/components/ScaleToFit2.vue.js.map +1 -0
  331. package/dist/views/system/config/components/SectionLayout.vue.d.ts +30 -0
  332. package/dist/views/system/config/components/SectionLayout.vue.js +8 -0
  333. package/dist/views/system/config/components/SectionLayout.vue.js.map +1 -0
  334. package/dist/views/system/config/components/SectionLayout2.vue.js +69 -0
  335. package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -0
  336. package/dist/views/system/config/components/SecuritySection.vue.js +8 -0
  337. package/dist/views/system/config/components/SecuritySection.vue.js.map +1 -0
  338. package/dist/views/system/config/components/SecuritySection2.vue.js +417 -0
  339. package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -0
  340. package/dist/views/system/config/components/SensitiveSection.vue.js +8 -0
  341. package/dist/views/system/config/components/SensitiveSection.vue.js.map +1 -0
  342. package/dist/views/system/config/components/SensitiveSection2.vue.js +214 -0
  343. package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -0
  344. package/dist/views/system/config/components/SigninSection.vue.js +8 -0
  345. package/dist/views/system/config/components/SigninSection.vue.js.map +1 -0
  346. package/dist/views/system/config/components/SigninSection2.vue.js +201 -0
  347. package/dist/views/system/config/components/SigninSection2.vue.js.map +1 -0
  348. package/dist/views/system/config/components/UploadSection.vue.js +8 -0
  349. package/dist/views/system/config/components/UploadSection.vue.js.map +1 -0
  350. package/dist/views/system/config/components/UploadSection2.vue.js +176 -0
  351. package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -0
  352. package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
  353. package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
  354. package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
  355. package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
  356. package/dist/views/system/config/draft.d.ts +148 -0
  357. package/dist/views/system/config/draft.js +170 -0
  358. package/dist/views/system/config/draft.js.map +1 -0
  359. package/dist/views/system/config/flash.d.ts +2 -0
  360. package/dist/views/system/config/flash.js +9 -0
  361. package/dist/views/system/config/flash.js.map +1 -0
  362. package/dist/views/system/config/groups.d.ts +38 -7
  363. package/dist/views/system/config/groups.js +104 -14
  364. package/dist/views/system/config/groups.js.map +1 -1
  365. package/dist/views/system/config/index.vue.js +6 -2
  366. package/dist/views/system/config/index.vue.js.map +1 -1
  367. package/dist/views/system/config/index2.vue.js +201 -111
  368. package/dist/views/system/config/index2.vue.js.map +1 -1
  369. package/dist/views/system/config/layoutMode.d.ts +23 -0
  370. package/dist/views/system/config/layoutMode.js +28 -0
  371. package/dist/views/system/config/layoutMode.js.map +1 -0
  372. package/dist/views/system/config/providerForm.d.ts +33 -0
  373. package/dist/views/system/config/providerForm.js +63 -0
  374. package/dist/views/system/config/providerForm.js.map +1 -0
  375. package/dist/views/system/dict/index.vue.js +2 -2
  376. package/dist/views/system/dict/index2.vue.js +471 -366
  377. package/dist/views/system/dict/index2.vue.js.map +1 -1
  378. package/dist/views/system/file/index2.vue.js +91 -76
  379. package/dist/views/system/file/index2.vue.js.map +1 -1
  380. package/dist/views/system/job/index.vue.js +3 -3
  381. package/dist/views/system/job/index2.vue.js +897 -828
  382. package/dist/views/system/job/index2.vue.js.map +1 -1
  383. package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
  384. package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
  385. package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
  386. package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
  387. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
  388. package/dist/views/system/job-log/index.vue.js +2 -2
  389. package/dist/views/system/job-log/index2.vue.js +193 -207
  390. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  391. package/dist/views/system/job-log/runStatus.d.ts +13 -0
  392. package/dist/views/system/job-log/runStatus.js +26 -0
  393. package/dist/views/system/job-log/runStatus.js.map +1 -0
  394. package/dist/views/system/job-monitor/index.vue.js +2 -2
  395. package/dist/views/system/job-monitor/index2.vue.js +172 -180
  396. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  397. package/dist/views/system/log/exception/index.vue.js +2 -2
  398. package/dist/views/system/log/exception/index2.vue.js +135 -96
  399. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  400. package/dist/views/system/log/login/index2.vue.js +62 -41
  401. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  402. package/dist/views/system/log/op/index.vue.js +2 -2
  403. package/dist/views/system/log/op/index2.vue.js +200 -162
  404. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  405. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  406. package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
  407. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  408. package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
  409. package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
  410. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
  411. package/dist/views/system/menu/index.vue.js +1 -1
  412. package/dist/views/system/menu/index2.vue.js +216 -183
  413. package/dist/views/system/menu/index2.vue.js.map +1 -1
  414. package/dist/views/system/module/index.vue.js +1 -1
  415. package/dist/views/system/module/index2.vue.js +177 -144
  416. package/dist/views/system/module/index2.vue.js.map +1 -1
  417. package/dist/views/system/monitor/index.vue.js +2 -2
  418. package/dist/views/system/monitor/index2.vue.js +134 -149
  419. package/dist/views/system/monitor/index2.vue.js.map +1 -1
  420. package/dist/views/system/notice/index.vue.js +1 -1
  421. package/dist/views/system/notice/index2.vue.js +209 -181
  422. package/dist/views/system/notice/index2.vue.js.map +1 -1
  423. package/dist/views/system/org/index.vue.js +1 -1
  424. package/dist/views/system/org/index2.vue.js +278 -248
  425. package/dist/views/system/org/index2.vue.js.map +1 -1
  426. package/dist/views/system/position/index.vue.js +5 -2
  427. package/dist/views/system/position/index.vue.js.map +1 -1
  428. package/dist/views/system/position/index2.vue.js +128 -92
  429. package/dist/views/system/position/index2.vue.js.map +1 -1
  430. package/dist/views/system/recycle/index.vue.js +2 -2
  431. package/dist/views/system/recycle/index2.vue.js +90 -67
  432. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  433. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
  434. package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
  435. package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
  436. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
  437. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
  438. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
  439. package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
  440. package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
  441. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  442. package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
  443. package/dist/views/system/role/components/MatchText.vue.js +8 -0
  444. package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
  445. package/dist/views/system/role/components/MatchText2.vue.js +29 -0
  446. package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
  447. package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
  448. package/dist/views/system/role/components/grantMenuGroups.js +110 -48
  449. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  450. package/dist/views/system/role/index.vue.js +5 -2
  451. package/dist/views/system/role/index.vue.js.map +1 -1
  452. package/dist/views/system/role/index2.vue.js +181 -165
  453. package/dist/views/system/role/index2.vue.js.map +1 -1
  454. package/dist/views/system/session/index2.vue.js +75 -49
  455. package/dist/views/system/session/index2.vue.js.map +1 -1
  456. package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
  457. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
  458. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
  459. package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
  460. package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
  461. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
  462. package/dist/views/system/user/index.vue.js +2 -2
  463. package/dist/views/system/user/index2.vue.js +362 -275
  464. package/dist/views/system/user/index2.vue.js.map +1 -1
  465. package/package.json +6 -8
  466. package/dist/components/SelectTable/index.vue.d.ts +0 -76
  467. package/dist/components/SelectTable/index2.vue.js +0 -256
  468. package/dist/components/SelectTable/index2.vue.js.map +0 -1
  469. package/dist/composables/useTableRowSort.d.ts +0 -20
  470. package/dist/composables/useTableRowSort.js +0 -59
  471. package/dist/composables/useTableRowSort.js.map +0 -1
  472. package/dist/layouts/LayoutModeCards.vue.js +0 -8
  473. package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
  474. package/dist/layouts/LayoutModeCards2.vue.js +0 -67
  475. package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
  476. package/dist/layouts/SettingRow.vue.js +0 -8
  477. package/dist/layouts/SettingRow.vue.js.map +0 -1
  478. package/dist/layouts/SettingRow2.vue.js +0 -23
  479. package/dist/layouts/SettingRow2.vue.js.map +0 -1
  480. package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
  481. package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
  482. package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
  483. package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
  484. package/dist/views/login/skins/SplitPanel.vue.js +0 -8
  485. package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
  486. package/dist/views/login/skins/SplitPanel2.vue.js +0 -85
  487. package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
  488. package/dist/views/login/skins/Spotlight.vue.js +0 -8
  489. package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
  490. package/dist/views/login/skins/Spotlight2.vue.js +0 -36
  491. package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
  492. package/dist/views/login/skins.d.ts +0 -8
  493. package/dist/views/login/skins.js +0 -13
  494. package/dist/views/login/skins.js.map +0 -1
  495. package/dist/views/system/config/components/ExternalAuthConfig.vue.js +0 -8
  496. package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +0 -1
  497. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +0 -218
  498. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +0 -1
  499. package/dist/views/system/config/components/GroupExtraConfig.vue.js +0 -8
  500. package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +0 -1
  501. package/dist/views/system/config/components/GroupExtraConfig2.vue.js +0 -108
  502. package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +0 -1
  503. package/dist/views/system/config/components/HighSensConfig.vue.js +0 -5
  504. package/dist/views/system/config/components/HighSensConfig.vue.js.map +0 -1
  505. package/dist/views/system/config/components/HighSensConfig2.vue.js +0 -134
  506. package/dist/views/system/config/components/HighSensConfig2.vue.js.map +0 -1
  507. package/dist/views/system/config/components/JobConfig.vue.js +0 -5
  508. package/dist/views/system/config/components/JobConfig.vue.js.map +0 -1
  509. package/dist/views/system/config/components/JobConfig2.vue.js +0 -116
  510. package/dist/views/system/config/components/JobConfig2.vue.js.map +0 -1
  511. package/dist/views/system/config/components/OtherConfig.vue.js +0 -5
  512. package/dist/views/system/config/components/OtherConfig.vue.js.map +0 -1
  513. package/dist/views/system/config/components/OtherConfig2.vue.js +0 -121
  514. package/dist/views/system/config/components/OtherConfig2.vue.js.map +0 -1
  515. package/dist/views/system/config/components/SecurityConfig.vue.js +0 -8
  516. package/dist/views/system/config/components/SecurityConfig.vue.js.map +0 -1
  517. package/dist/views/system/config/components/SecurityConfig2.vue.js +0 -456
  518. package/dist/views/system/config/components/SecurityConfig2.vue.js.map +0 -1
  519. package/dist/views/system/config/components/SysBaseConfig.vue.js +0 -5
  520. package/dist/views/system/config/components/SysBaseConfig.vue.js.map +0 -1
  521. package/dist/views/system/config/components/SysBaseConfig2.vue.js +0 -107
  522. package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +0 -1
  523. package/dist/views/system/config/components/UploadConfig.vue.d.ts +0 -3
  524. package/dist/views/system/config/components/UploadConfig.vue.js +0 -5
  525. package/dist/views/system/config/components/UploadConfig.vue.js.map +0 -1
  526. package/dist/views/system/config/components/UploadConfig2.vue.js +0 -135
  527. package/dist/views/system/config/components/UploadConfig2.vue.js.map +0 -1
  528. /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
  529. /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
  530. /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/AdminMock.vue.d.ts} +0 -0
  531. /package/dist/views/{login/skins/SplitPanel.vue.d.ts → system/config/components/AdvancedSection.vue.d.ts} +0 -0
  532. /package/dist/views/{login/skins/Spotlight.vue.d.ts → system/config/components/JobSection.vue.d.ts} +0 -0
  533. /package/dist/views/system/config/components/{ExternalAuthConfig.vue.d.ts → LogoEditor.vue.d.ts} +0 -0
  534. /package/dist/views/system/config/components/{HighSensConfig.vue.d.ts → SecuritySection.vue.d.ts} +0 -0
  535. /package/dist/views/system/config/components/{JobConfig.vue.d.ts → SensitiveSection.vue.d.ts} +0 -0
  536. /package/dist/views/system/config/components/{OtherConfig.vue.d.ts → SigninSection.vue.d.ts} +0 -0
  537. /package/dist/views/system/config/components/{SecurityConfig.vue.d.ts → UploadSection.vue.d.ts} +0 -0
  538. /package/dist/views/system/config/components/{SysBaseConfig.vue.d.ts → WatermarkSection.vue.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MenuFormModal2.vue.js","sources":["../../../../../src/views/system/menu/components/MenuFormModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 菜单「新增/编辑」弹窗。父页(menu/index.vue)拥有 tree/modules 数据并保持响应,\n// 本弹窗只读消费,保存后 emit('saved') 交回父页重拉树 + 重建壳层。\nimport { computed, reactive, ref } from 'vue'\nimport {\n NForm,\n NInput,\n NInputNumber,\n NSwitch,\n NSelect,\n NGrid,\n NFormItemGi,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport IconPicker from '#/components/IconPicker/index.vue'\nimport FormContainer from '#/components/FormContainer/index.vue'\nimport { viewComponentPaths } from '#/composables/useAuthMenu'\nimport { menuApi } from '#/api'\nimport { translateError } from '#/utils/error'\nimport { MenuType, type MenuInput, type MenuTreeNode, toMenuInput } from '#/types/menu'\nimport type { ModuleRow } from '#/types/api'\n\nconst props = defineProps<{\n modules: ModuleRow[]\n /** 全树:subtreeIds 防环需要按钮在内的完整结构。 */\n tree: MenuTreeNode[]\n /** 当前应用、已剥按钮的树:父级下拉的候选来源(只在本应用子树里选父级,防跨应用误挂)。 */\n filteredTree: MenuTreeNode[]\n moduleFilter: number\n}>()\nconst emit = defineEmits<{ (e: 'saved'): void }>()\n\nconst { t } = useI18n()\nconst message = useMessage()\n\n/** 「未分配」「全部」哨兵,与父页一致:openAdd 顶级目录时据此决定是否自动带上当前应用。 */\nconst UNASSIGNED = 0\nconst ALL_MODULES = -1\n\nconst show = ref(false)\nconst formRef = ref<FormInst | null>(null)\nconst rules: FormRules = {\n // whitespace: 纯空白不算填写\n title: {\n required: true,\n whitespace: true,\n message: () => t('menu.titleRequired'),\n trigger: ['input', 'blur'],\n },\n}\nconst editingId = ref<number | null>(null)\nconst blank = (): MenuInput => ({\n parentId: 0,\n type: MenuType.Menu,\n title: '',\n permission: '',\n sort: 0,\n enabled: true,\n moduleId: null,\n path: '',\n component: '',\n icon: '',\n visible: true,\n})\nconst form = reactive<MenuInput>(blank())\n\n/** 所属应用仅对顶级目录(parentId==0)有效——后端对子节点强制置空,前端据此隐藏字段。 */\nconst isTopLevel = computed(() => form.parentId === 0)\n\n// 类型只留目录/页面:按钮统一走「权限按钮」弹窗建,主表单不提供按钮选项。\nconst typeOptions = computed(() => [\n { label: t('menu.typeCatalog'), value: MenuType.Catalog },\n { label: t('menu.typeMenu'), value: MenuType.Menu },\n])\nconst moduleOptions = computed(() => props.modules.map(m => ({ label: m.title, value: m.id })))\n// 组件路径下拉:取自已注册的页面表(内核内置页 + 消费方注册的页面),选得到的一定存在;手填错误则由 MissingRoute 诊断。\nconst componentOptions = computed(() => viewComponentPaths().map(p => ({ label: p, value: p })))\n\n/** 收集以 id 为根的子树全部 id(含自身)——编辑时排除,防止把节点挂到自己的子孙下形成环。 */\nfunction subtreeIds(nodes: MenuTreeNode[], id: number): Set<number> {\n const out = new Set<number>()\n const find = (list: MenuTreeNode[]): MenuTreeNode | null => {\n for (const n of list) {\n if (n.id === id) return n\n const hit = find(n.children)\n if (hit) return hit\n }\n return null\n }\n const collect = (n: MenuTreeNode) => {\n out.add(n.id)\n n.children.forEach(collect)\n }\n const root = find(nodes)\n if (root) collect(root)\n return out\n}\n\n/** 父节点下拉:根 + 全部目录/页面(按钮不能当父),缩进体现层级;编辑时排除自身子树。 */\nconst parentOptions = computed(() => {\n const exclude =\n editingId.value === null ? new Set<number>() : subtreeIds(props.tree, editingId.value)\n const opts: { label: string; value: number }[] = [{ label: t('menu.parentRoot'), value: 0 }]\n const walk = (nodes: MenuTreeNode[], depth: number) => {\n for (const n of nodes) {\n if (n.type !== MenuType.Button && !exclude.has(n.id)) {\n opts.push({ label: `${' '.repeat(depth)}${n.title}`, value: n.id })\n }\n walk(n.children, depth + 1)\n }\n }\n // 只在当前应用的子树里选父级——防止把节点误挂到别的应用目录下(会改变其实际所属应用)。\n walk(props.filteredTree, 0)\n return opts\n})\n\nfunction openAdd(parentId = 0) {\n editingId.value = null\n // 新建顶级目录时,自动盖上当前筛选的应用(「未分配」「全部」筛选下则留空,交给用户手选)。\n const moduleId =\n parentId === 0 && props.moduleFilter !== UNASSIGNED && props.moduleFilter !== ALL_MODULES\n ? props.moduleFilter\n : null\n Object.assign(form, blank(), { parentId, moduleId })\n show.value = true\n}\nfunction openEdit(r: MenuTreeNode) {\n editingId.value = r.id\n Object.assign(form, toMenuInput(r))\n show.value = true\n}\ndefineExpose({ openAdd, openEdit })\n\n/** FormContainer onConfirm:校验失败 reject / API 失败 return false → 弹层不关;成功正常返回自动关。\n * 重拉树/重建壳层交回父页(emit),失败不该把已成功的保存报成失败。 */\nasync function save() {\n await formRef.value?.validate()\n try {\n const payload: MenuInput = { ...form, moduleId: isTopLevel.value ? form.moduleId : null }\n if (editingId.value === null) await menuApi.add(payload)\n else await menuApi.update(editingId.value, payload)\n message.success(t('menu.saved'))\n emit('saved')\n } catch (e) {\n message.error(translateError(e))\n return false\n }\n}\n</script>\n\n<template>\n <FormContainer\n v-model:show=\"show\"\n :title=\"editingId === null ? t('menu.addTitle') : t('menu.editTitle')\"\n :width=\"720\"\n :on-confirm=\"save\"\n :confirm-text=\"t('common.save')\"\n >\n <!-- 两列布局:短字段两两一行、长/特殊字段整行(span 2),省纵向空间免下拉。 -->\n <n-form ref=\"formRef\" :model=\"form\" :rules=\"rules\" label-placement=\"left\" :label-width=\"90\">\n <n-grid :cols=\"2\" :x-gap=\"18\">\n <n-form-item-gi :label=\"t('menu.parent')\">\n <n-select v-model:value=\"form.parentId\" :options=\"parentOptions\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.type')\">\n <n-select v-model:value=\"form.type\" :options=\"typeOptions\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.title')\" path=\"title\">\n <n-input v-model:value=\"form.title\" :placeholder=\"t('menu.title')\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.sort')\">\n <n-input-number v-model:value=\"form.sort\" :min=\"0\" style=\"width: 100%\" />\n </n-form-item-gi>\n <!-- 无权限码字段:目录/页面结构上永远无权限码(授权靠角色拥有菜单,页面是前端路由无后端端点),\n 真正的权限码只活在按钮上,统一走每行「配置权限」按钮里的 ButtonManager 配。 -->\n <n-form-item-gi v-if=\"isTopLevel\" :span=\"2\" :label=\"t('menu.module')\">\n <n-select\n v-model:value=\"form.moduleId\"\n :options=\"moduleOptions\"\n clearable\n :placeholder=\"t('menu.moduleHint')\"\n />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.path')\">\n <n-input v-model:value=\"form.path as string\" placeholder=\"/system/xxx | https://...\" />\n </n-form-item-gi>\n <!-- 组件路径:选项来自已注册的页面表(内核内置页 + createSmartAdmin 传入的页面),选得到的一定能加载;\n 手敲错则该菜单进入 MissingRoute 并输出 console.warn。tag 保留手敲(页面文件尚未创建时先占位)。\n 外链/iframe 约定见下方 linkHint:路径填 URL = 外链新窗口打开;组件填 URL = 内嵌 iframe。 -->\n <n-form-item-gi :label=\"t('menu.component')\">\n <n-select\n v-model:value=\"form.component as string\"\n :options=\"componentOptions\"\n filterable\n tag\n clearable\n placeholder=\"system/xxx/index | https://...\"\n />\n </n-form-item-gi>\n <n-form-item-gi v-if=\"form.type === MenuType.Menu\" :span=\"2\" :show-label=\"false\">\n <span class=\"link-hint\">{{ t('menu.linkHint') }}</span>\n </n-form-item-gi>\n <n-form-item-gi :span=\"2\" :label=\"t('menu.icon')\">\n <IconPicker\n :model-value=\"form.icon ?? ''\"\n @update:model-value=\"(v: string) => (form.icon = v)\"\n />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('common.status')\">\n <n-switch v-model:value=\"form.enabled\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.visible')\">\n <n-switch v-model:value=\"form.visible\" />\n </n-form-item-gi>\n </n-grid>\n </n-form>\n </FormContainer>\n</template>\n\n<style scoped>\n.link-hint {\n font-size: 12px;\n color: var(--color-text-tertiary, #999);\n line-height: 1.5;\n}\n</style>\n"],"names":["UNASSIGNED","ALL_MODULES","props","__props","emit","__emit","t","useI18n","message","useMessage","show","ref","formRef","rules","editingId","blank","MenuType","form","reactive","isTopLevel","computed","typeOptions","moduleOptions","m","componentOptions","viewComponentPaths","p","subtreeIds","nodes","id","out","find","list","n","hit","collect","root","parentOptions","exclude","opts","walk","depth","openAdd","parentId","moduleId","openEdit","r","toMenuInput","__expose","save","_a","payload","menuApi","e","translateError","_createBlock","FormContainer","$event","_unref","_createVNode","NForm","NGrid","NFormItemGi","NSelect","_cache","NInput","NInputNumber","_createElementVNode","_hoisted_1","_toDisplayString","IconPicker","v","NSwitch"],"mappings":"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"}
1
+ {"version":3,"file":"MenuFormModal2.vue.js","sources":["../../../../../src/views/system/menu/components/MenuFormModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 菜单「新增/编辑」弹窗。父页(menu/index.vue)拥有 tree/modules 数据并保持响应,\n// 本弹窗只读消费,保存后 emit('saved') 交回父页重拉树 + 重建壳层。\nimport { computed, reactive, ref } from 'vue'\nimport { useMediaQuery } from '@vueuse/core'\nimport {\n NForm,\n NInput,\n NInputNumber,\n NSwitch,\n NSelect,\n NGrid,\n NFormItemGi,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport IconPicker from '#/components/IconPicker/index.vue'\nimport FormContainer from '#/components/FormContainer/index.vue'\nimport { viewComponentPaths } from '#/composables/useAuthMenu'\nimport { menuApi } from '#/api'\nimport { translateError } from '#/utils/error'\nimport { translateMenuTitle } from '#/locales/menuTitle'\nimport { MenuType, type MenuInput, type MenuTreeNode, toMenuInput } from '#/types/menu'\nimport type { ModuleRow } from '#/types/api'\n\nconst props = defineProps<{\n modules: ModuleRow[]\n /** 全树:subtreeIds 防环需要按钮在内的完整结构。 */\n tree: MenuTreeNode[]\n /** 当前应用、已剥按钮的树:父级下拉的候选来源(只在本应用子树里选父级,防跨应用误挂)。 */\n filteredTree: MenuTreeNode[]\n moduleFilter: number\n}>()\nconst emit = defineEmits<{ (e: 'saved'): void }>()\n\nconst { t } = useI18n()\nconst message = useMessage()\n\n/** 「未分配」「全部」哨兵,与父页一致:openAdd 顶级目录时据此决定是否自动带上当前应用。 */\nconst UNASSIGNED = 0\nconst ALL_MODULES = -1\n\nconst show = ref(false)\nconst formRef = ref<FormInst | null>(null)\nconst rules: FormRules = {\n // whitespace: 纯空白不算填写\n title: {\n required: true,\n whitespace: true,\n message: () => t('menu.titleRequired'),\n trigger: ['input', 'blur'],\n },\n}\nconst editingId = ref<number | null>(null)\nconst blank = (): MenuInput => ({\n parentId: 0,\n type: MenuType.Menu,\n title: '',\n permission: '',\n sort: 0,\n enabled: true,\n moduleId: null,\n path: '',\n component: '',\n icon: '',\n visible: true,\n})\nconst form = reactive<MenuInput>(blank())\n\n// 窄屏:标签放上方、两列网格收成单列(底部抽屉里并排两列太挤);宽 / 中档沿用左标签两列\nconst narrowForm = useMediaQuery('(max-width: 640px)')\nconst formCols = computed(() => (narrowForm.value ? 1 : 2))\nconst formLayout = computed(() =>\n narrowForm.value\n ? { labelPlacement: 'top' as const, labelWidth: undefined }\n : { labelPlacement: 'left' as const, labelWidth: 90 },\n)\n\n/** 所属应用仅对顶级目录(parentId==0)有效——后端对子节点强制置空,前端据此隐藏字段。 */\nconst isTopLevel = computed(() => form.parentId === 0)\n\n// 类型只留目录/页面:按钮统一走「权限按钮」弹窗建,主表单不提供按钮选项。\nconst typeOptions = computed(() => [\n { label: t('menu.typeCatalog'), value: MenuType.Catalog },\n { label: t('menu.typeMenu'), value: MenuType.Menu },\n])\nconst moduleOptions = computed(() =>\n props.modules.map(m => ({ label: translateMenuTitle(m.title), value: m.id })),\n)\n// 组件路径下拉:取自已注册的页面表(内核内置页 + 消费方注册的页面),选得到的一定存在;手填错误则由 MissingRoute 诊断。\nconst componentOptions = computed(() => viewComponentPaths().map(p => ({ label: p, value: p })))\n\n/** 收集以 id 为根的子树全部 id(含自身)——编辑时排除,防止把节点挂到自己的子孙下形成环。 */\nfunction subtreeIds(nodes: MenuTreeNode[], id: number): Set<number> {\n const out = new Set<number>()\n const find = (list: MenuTreeNode[]): MenuTreeNode | null => {\n for (const n of list) {\n if (n.id === id) return n\n const hit = find(n.children)\n if (hit) return hit\n }\n return null\n }\n const collect = (n: MenuTreeNode) => {\n out.add(n.id)\n n.children.forEach(collect)\n }\n const root = find(nodes)\n if (root) collect(root)\n return out\n}\n\n/** 父节点下拉:根 + 全部目录/页面(按钮不能当父),缩进体现层级;编辑时排除自身子树。 */\nconst parentOptions = computed(() => {\n const exclude =\n editingId.value === null ? new Set<number>() : subtreeIds(props.tree, editingId.value)\n const opts: { label: string; value: number }[] = [{ label: t('menu.parentRoot'), value: 0 }]\n const walk = (nodes: MenuTreeNode[], depth: number) => {\n for (const n of nodes) {\n if (n.type !== MenuType.Button && !exclude.has(n.id)) {\n opts.push({\n label: `${' '.repeat(depth)}${translateMenuTitle(n.title, n.path || undefined)}`,\n value: n.id,\n })\n }\n walk(n.children, depth + 1)\n }\n }\n // 只在当前应用的子树里选父级——防止把节点误挂到别的应用目录下(会改变其实际所属应用)。\n walk(props.filteredTree, 0)\n return opts\n})\n\nfunction openAdd(parentId = 0) {\n editingId.value = null\n // 新建顶级目录时,自动盖上当前筛选的应用(「未分配」「全部」筛选下则留空,交给用户手选)。\n const moduleId =\n parentId === 0 && props.moduleFilter !== UNASSIGNED && props.moduleFilter !== ALL_MODULES\n ? props.moduleFilter\n : null\n Object.assign(form, blank(), { parentId, moduleId })\n show.value = true\n}\nfunction openEdit(r: MenuTreeNode) {\n editingId.value = r.id\n Object.assign(form, toMenuInput(r))\n show.value = true\n}\ndefineExpose({ openAdd, openEdit })\n\n/** FormContainer onConfirm:校验失败 reject / API 失败 return false → 弹层不关;成功正常返回自动关。\n * 重拉树/重建壳层交回父页(emit),失败不该把已成功的保存报成失败。 */\nasync function save() {\n await formRef.value?.validate()\n try {\n const payload: MenuInput = { ...form, moduleId: isTopLevel.value ? form.moduleId : null }\n if (editingId.value === null) await menuApi.add(payload)\n else await menuApi.update(editingId.value, payload)\n message.success(t('menu.saved'))\n emit('saved')\n } catch (e) {\n message.error(translateError(e))\n return false\n }\n}\n</script>\n\n<template>\n <FormContainer\n v-model:show=\"show\"\n :title=\"editingId === null ? t('menu.addTitle') : t('menu.editTitle')\"\n :width=\"720\"\n :on-confirm=\"save\"\n :confirm-text=\"t('common.save')\"\n >\n <!-- 两列布局:短字段两两一行、长/特殊字段整行(span 2),省纵向空间免下拉。 -->\n <n-form\n ref=\"formRef\"\n :model=\"form\"\n :rules=\"rules\"\n require-mark-placement=\"left\"\n v-bind=\"formLayout\"\n >\n <n-grid :cols=\"formCols\" :x-gap=\"18\">\n <n-form-item-gi :label=\"t('menu.parent')\">\n <n-select v-model:value=\"form.parentId\" :options=\"parentOptions\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.type')\">\n <n-select v-model:value=\"form.type\" :options=\"typeOptions\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.title')\" path=\"title\">\n <n-input v-model:value=\"form.title\" :placeholder=\"t('menu.title')\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.sort')\">\n <n-input-number v-model:value=\"form.sort\" :min=\"0\" style=\"width: 100%\" />\n </n-form-item-gi>\n <!-- 无权限码字段:目录/页面结构上永远无权限码(授权靠角色拥有菜单,页面是前端路由无后端端点),\n 真正的权限码只活在按钮上,统一走每行「配置权限」按钮里的 ButtonManager 配。 -->\n <n-form-item-gi v-if=\"isTopLevel\" :span=\"formCols\" :label=\"t('menu.module')\">\n <n-select\n v-model:value=\"form.moduleId\"\n :options=\"moduleOptions\"\n clearable\n :placeholder=\"t('menu.moduleHint')\"\n />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.path')\">\n <n-input\n v-model:value=\"form.path as string\"\n class=\"mono\"\n placeholder=\"/system/xxx | https://...\"\n />\n </n-form-item-gi>\n <!-- 组件路径:选项来自已注册的页面表(内核内置页 + createSmartAdmin 传入的页面),选得到的一定能加载;\n 手敲错则该菜单进入 MissingRoute 并输出 console.warn。tag 保留手敲(页面文件尚未创建时先占位)。\n 外链/iframe 约定见下方 linkHint:路径填 URL = 外链新窗口打开;组件填 URL = 内嵌 iframe。 -->\n <n-form-item-gi :label=\"t('menu.component')\">\n <n-select\n v-model:value=\"form.component as string\"\n :options=\"componentOptions\"\n filterable\n tag\n clearable\n placeholder=\"system/xxx/index | https://...\"\n />\n </n-form-item-gi>\n <n-form-item-gi v-if=\"form.type === MenuType.Menu\" :span=\"formCols\" :show-label=\"false\">\n <span class=\"link-hint\">{{ t('menu.linkHint') }}</span>\n </n-form-item-gi>\n <n-form-item-gi :span=\"formCols\" :label=\"t('menu.icon')\">\n <IconPicker\n :model-value=\"form.icon ?? ''\"\n @update:model-value=\"(v: string) => (form.icon = v)\"\n />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('common.status')\">\n <n-switch v-model:value=\"form.enabled\" />\n </n-form-item-gi>\n <n-form-item-gi :label=\"t('menu.visible')\">\n <n-switch v-model:value=\"form.visible\" />\n </n-form-item-gi>\n </n-grid>\n </n-form>\n </FormContainer>\n</template>\n\n<style scoped>\n.link-hint {\n font-size: 13px;\n color: var(--text-3);\n line-height: 1.5;\n}\n\n.mono {\n font-family: var(--font-mono);\n font-size: 13.5px;\n letter-spacing: 0;\n}\n</style>\n"],"names":["UNASSIGNED","ALL_MODULES","props","__props","emit","__emit","t","useI18n","message","useMessage","show","ref","formRef","rules","editingId","blank","MenuType","form","reactive","narrowForm","useMediaQuery","formCols","computed","formLayout","isTopLevel","typeOptions","moduleOptions","translateMenuTitle","m","componentOptions","viewComponentPaths","p","subtreeIds","nodes","id","out","find","list","n","hit","collect","root","parentOptions","exclude","opts","walk","depth","openAdd","parentId","moduleId","openEdit","r","toMenuInput","__expose","save","_a","payload","menuApi","e","translateError","_createBlock","FormContainer","$event","_unref","_createVNode","_mergeProps","NGrid","NFormItemGi","NSelect","_cache","NInput","NInputNumber","_createElementVNode","_hoisted_1","_toDisplayString","IconPicker","v","NSwitch"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import o from "./index2.vue.js";
2
2
  /* empty css */
3
3
  import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-d019bdd8"]]);
4
+ const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-4a7db6ca"]]);
5
5
  export {
6
6
  p as default
7
7
  };