smart-admin-web 10.15.0 → 10.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.d.ts +4 -2
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/schema.d.ts +39 -5
  6. package/dist/assets/icons/ph-subset.json.js +5 -5
  7. package/dist/components/AppIcon.vue.js +9 -9
  8. package/dist/components/AppIcon.vue.js.map +1 -1
  9. package/dist/components/AppWatermark.vue.d.ts +14 -0
  10. package/dist/components/AppWatermark.vue.js +38 -0
  11. package/dist/components/AppWatermark.vue.js.map +1 -0
  12. package/dist/components/AppWatermark2.vue.js +5 -0
  13. package/dist/components/AppWatermark2.vue.js.map +1 -0
  14. package/dist/components/Chart/PieChart.vue.d.ts +1 -1
  15. package/dist/components/Chart/echarts.js +15 -20
  16. package/dist/components/Chart/echarts.js.map +1 -1
  17. package/dist/components/CronEditor/index.vue.js +1 -1
  18. package/dist/components/CronEditor/index2.vue.js +2 -1
  19. package/dist/components/CronEditor/index2.vue.js.map +1 -1
  20. package/dist/components/DetailPage/index.vue.js +2 -2
  21. package/dist/components/DetailPage/index2.vue.js.map +1 -1
  22. package/dist/components/DictTag/index.vue.js.map +1 -1
  23. package/dist/components/ErrorBoundary/index.vue.js +2 -2
  24. package/dist/components/ErrorBoundary/index2.vue.js +1 -1
  25. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
  26. package/dist/components/FormContainer/index.vue.js +91 -56
  27. package/dist/components/FormContainer/index.vue.js.map +1 -1
  28. package/dist/components/ImportWizard/index.vue.js +1 -1
  29. package/dist/components/ImportWizard/index2.vue.js +44 -41
  30. package/dist/components/ImportWizard/index2.vue.js.map +1 -1
  31. package/dist/components/MenuSearch.vue.js +2 -2
  32. package/dist/components/MenuSearch2.vue.js +19 -18
  33. package/dist/components/MenuSearch2.vue.js.map +1 -1
  34. package/dist/components/PasswordStrength/index.vue.js +2 -2
  35. package/dist/components/PasswordStrength/index2.vue.js +20 -18
  36. package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
  37. package/dist/components/TableTotal/index.vue.d.ts +6 -0
  38. package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
  39. package/dist/components/TableTotal/index2.vue.js +16 -0
  40. package/dist/components/TableTotal/index2.vue.js.map +1 -0
  41. package/dist/components/TableZoomButton/index.vue.js.map +1 -1
  42. package/dist/components/UserPicker/index.vue.js +2 -2
  43. package/dist/components/UserPicker/index2.vue.js +176 -117
  44. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  45. package/dist/composables/useBatchDelete.js.map +1 -1
  46. package/dist/composables/useLayoutMenu.js +17 -16
  47. package/dist/composables/useLayoutMenu.js.map +1 -1
  48. package/dist/composables/useModule.js +39 -29
  49. package/dist/composables/useModule.js.map +1 -1
  50. package/dist/composables/useShellBreakpoint.d.ts +19 -0
  51. package/dist/composables/useShellBreakpoint.js +37 -0
  52. package/dist/composables/useShellBreakpoint.js.map +1 -0
  53. package/dist/composables/useSite.d.ts +15 -0
  54. package/dist/composables/useSite.js +16 -14
  55. package/dist/composables/useSite.js.map +1 -1
  56. package/dist/composables/useTabTitle.js.map +1 -1
  57. package/dist/composables/useTableTitle.d.ts +6 -0
  58. package/dist/composables/useTableTitle.js +11 -0
  59. package/dist/composables/useTableTitle.js.map +1 -0
  60. package/dist/composables/useTableZoom.d.ts +5 -0
  61. package/dist/composables/useTableZoom.js.map +1 -1
  62. package/dist/composables/useTheme.d.ts +2 -2
  63. package/dist/composables/useTheme.js +23 -20
  64. package/dist/composables/useTheme.js.map +1 -1
  65. package/dist/createSmartAdmin.d.ts +12 -2
  66. package/dist/createSmartAdmin.js +72 -60
  67. package/dist/createSmartAdmin.js.map +1 -1
  68. package/dist/index.d.ts +5 -2
  69. package/dist/index.js +219 -205
  70. package/dist/index.js.map +1 -1
  71. package/dist/layouts/AccentPicker.vue.js +8 -0
  72. package/dist/layouts/AccentPicker.vue.js.map +1 -0
  73. package/dist/layouts/AccentPicker2.vue.js +131 -0
  74. package/dist/layouts/AccentPicker2.vue.js.map +1 -0
  75. package/dist/layouts/AppHeader.vue.d.ts +8 -1
  76. package/dist/layouts/AppHeader.vue.js +2 -2
  77. package/dist/layouts/AppHeader2.vue.js +317 -235
  78. package/dist/layouts/AppHeader2.vue.js.map +1 -1
  79. package/dist/layouts/NoticeBell.vue.js +2 -2
  80. package/dist/layouts/NoticeBell2.vue.js +19 -18
  81. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  82. package/dist/layouts/PersonalLayout.vue.js +2 -2
  83. package/dist/layouts/PersonalLayout2.vue.js +69 -47
  84. package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
  85. package/dist/layouts/SettingsDrawer.vue.js +3 -3
  86. package/dist/layouts/SettingsDrawer2.vue.js +261 -325
  87. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
  88. package/dist/layouts/TabsBar.vue.js +2 -2
  89. package/dist/layouts/TabsBar2.vue.js +97 -69
  90. package/dist/layouts/TabsBar2.vue.js.map +1 -1
  91. package/dist/layouts/components/SideNav.vue.d.ts +3 -0
  92. package/dist/layouts/components/SideNav.vue.js +1 -1
  93. package/dist/layouts/components/SideNav2.vue.js +54 -26
  94. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  95. package/dist/layouts/default.vue.js +1 -1
  96. package/dist/layouts/default2.vue.js +170 -140
  97. package/dist/layouts/default2.vue.js.map +1 -1
  98. package/dist/lib/loginHero.d.ts +2 -2
  99. package/dist/lib/loginHero.js.map +1 -1
  100. package/dist/lib/runtime.js +1 -1
  101. package/dist/lib/watermark.d.ts +110 -0
  102. package/dist/lib/watermark.js +151 -0
  103. package/dist/lib/watermark.js.map +1 -0
  104. package/dist/locales/en-US.d.ts +221 -15
  105. package/dist/locales/en-US.js +230 -21
  106. package/dist/locales/en-US.js.map +1 -1
  107. package/dist/locales/kernelMenuTitles.d.ts +1 -0
  108. package/dist/locales/kernelMenuTitles.js +128 -0
  109. package/dist/locales/kernelMenuTitles.js.map +1 -0
  110. package/dist/locales/menuTitle.d.ts +3 -0
  111. package/dist/locales/menuTitle.js +14 -12
  112. package/dist/locales/menuTitle.js.map +1 -1
  113. package/dist/locales/zh-CN.d.ts +221 -15
  114. package/dist/locales/zh-CN.js +238 -28
  115. package/dist/locales/zh-CN.js.map +1 -1
  116. package/dist/router/index.js +41 -32
  117. package/dist/router/index.js.map +1 -1
  118. package/dist/router/namedPage.d.ts +4 -0
  119. package/dist/router/namedPage.js +7 -7
  120. package/dist/router/namedPage.js.map +1 -1
  121. package/dist/router/viewRegistry.js +8 -8
  122. package/dist/router/viewRegistry.js.map +1 -1
  123. package/dist/stores/app.d.ts +0 -12
  124. package/dist/stores/app.js +11 -12
  125. package/dist/stores/app.js.map +1 -1
  126. package/dist/stores/tabs.js.map +1 -1
  127. package/dist/stores/user.d.ts +10 -0
  128. package/dist/stores/user.js.map +1 -1
  129. package/dist/style.css +1 -1
  130. package/dist/theme/accentTokens.d.ts +27 -0
  131. package/dist/theme/accentTokens.js +54 -0
  132. package/dist/theme/accentTokens.js.map +1 -0
  133. package/dist/theme/accents.d.ts +21 -1
  134. package/dist/theme/accents.js +11 -2
  135. package/dist/theme/accents.js.map +1 -1
  136. package/dist/theme/mix.d.ts +58 -7
  137. package/dist/theme/mix.js +115 -30
  138. package/dist/theme/mix.js.map +1 -1
  139. package/dist/theme/naive-theme.d.ts +5 -2
  140. package/dist/theme/naive-theme.js +407 -75
  141. package/dist/theme/naive-theme.js.map +1 -1
  142. package/dist/utils/jwt.d.ts +8 -0
  143. package/dist/utils/jwt.js +14 -0
  144. package/dist/utils/jwt.js.map +1 -0
  145. package/dist/utils/menuIcon.d.ts +2 -0
  146. package/dist/utils/menuIcon.js +8 -0
  147. package/dist/utils/menuIcon.js.map +1 -0
  148. package/dist/utils/oauthBrand.js.map +1 -1
  149. package/dist/utils/tableFilter.d.ts +88 -0
  150. package/dist/utils/tableFilter.js +116 -0
  151. package/dist/utils/tableFilter.js.map +1 -0
  152. package/dist/utils/tableToolbar.d.ts +18 -0
  153. package/dist/utils/tableToolbar.js +11 -0
  154. package/dist/utils/tableToolbar.js.map +1 -0
  155. package/dist/utils/treeFilter.d.ts +20 -0
  156. package/dist/utils/treeFilter.js +24 -0
  157. package/dist/utils/treeFilter.js.map +1 -0
  158. package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
  159. package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
  160. package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
  161. package/dist/views/dashboard/biz.vue.js +1 -1
  162. package/dist/views/dashboard/biz2.vue.js +310 -257
  163. package/dist/views/dashboard/biz2.vue.js.map +1 -1
  164. package/dist/views/dashboard/workbench.vue.js +2 -2
  165. package/dist/views/dashboard/workbench2.vue.js +141 -155
  166. package/dist/views/dashboard/workbench2.vue.js.map +1 -1
  167. package/dist/views/embed/iframe.vue.js +2 -2
  168. package/dist/views/embed/iframe2.vue.js +22 -15
  169. package/dist/views/embed/iframe2.vue.js.map +1 -1
  170. package/dist/views/error/404.vue.js +2 -2
  171. package/dist/views/error/4042.vue.js +33 -24
  172. package/dist/views/error/4042.vue.js.map +1 -1
  173. package/dist/views/error/BootError.vue.js +1 -1
  174. package/dist/views/error/BootError2.vue.js +59 -48
  175. package/dist/views/error/BootError2.vue.js.map +1 -1
  176. package/dist/views/error/MissingRoute.vue.js +2 -2
  177. package/dist/views/error/MissingRoute2.vue.js +34 -15
  178. package/dist/views/error/MissingRoute2.vue.js.map +1 -1
  179. package/dist/views/login/LoginForm.vue.d.ts +7 -1
  180. package/dist/views/login/LoginForm.vue.js +2 -2
  181. package/dist/views/login/LoginForm2.vue.js +580 -488
  182. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  183. package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
  184. package/dist/views/login/components/LoginDesk.vue.js +9 -0
  185. package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
  186. package/dist/views/login/components/LoginDesk2.vue.js +100 -0
  187. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
  188. package/dist/views/login/components/LoginHeroPanel.vue.js +3 -3
  189. package/dist/views/login/components/LoginHeroPanel2.vue.js +34 -39
  190. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
  191. package/dist/views/login/index.vue.js +1 -1
  192. package/dist/views/login/index2.vue.js +141 -71
  193. package/dist/views/login/index2.vue.js.map +1 -1
  194. package/dist/views/login/layout.d.ts +11 -0
  195. package/dist/views/login/layout.js +27 -0
  196. package/dist/views/login/layout.js.map +1 -0
  197. package/dist/views/mfa/index.vue.js +2 -2
  198. package/dist/views/mfa/index2.vue.js +367 -321
  199. package/dist/views/mfa/index2.vue.js.map +1 -1
  200. package/dist/views/module/index.vue.js +2 -2
  201. package/dist/views/module/index2.vue.js +132 -99
  202. package/dist/views/module/index2.vue.js.map +1 -1
  203. package/dist/views/oauth/callback.vue.js +2 -2
  204. package/dist/views/oauth/callback2.vue.js +65 -51
  205. package/dist/views/oauth/callback2.vue.js.map +1 -1
  206. package/dist/views/personal/bindings.vue.js +2 -2
  207. package/dist/views/personal/bindings2.vue.js +98 -94
  208. package/dist/views/personal/bindings2.vue.js.map +1 -1
  209. package/dist/views/personal/notice2.vue.js +103 -76
  210. package/dist/views/personal/notice2.vue.js.map +1 -1
  211. package/dist/views/personal/password2.vue.js +47 -40
  212. package/dist/views/personal/password2.vue.js.map +1 -1
  213. package/dist/views/personal/profile.vue.js +3 -3
  214. package/dist/views/personal/profile2.vue.js +24 -18
  215. package/dist/views/personal/profile2.vue.js.map +1 -1
  216. package/dist/views/personal/security.vue.js +2 -2
  217. package/dist/views/personal/security2.vue.js +65 -53
  218. package/dist/views/personal/security2.vue.js.map +1 -1
  219. package/dist/views/personal/sessions.vue.js +2 -2
  220. package/dist/views/personal/sessions2.vue.js +67 -62
  221. package/dist/views/personal/sessions2.vue.js.map +1 -1
  222. package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
  223. package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
  224. package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
  225. package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
  226. package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
  227. package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
  228. package/dist/views/system/ai-model/index.vue.js +2 -2
  229. package/dist/views/system/ai-model/index2.vue.js +99 -99
  230. package/dist/views/system/ai-model/index2.vue.js.map +1 -1
  231. package/dist/views/system/ai-model/presets.d.ts +1 -1
  232. package/dist/views/system/ai-model/presets.js +18 -18
  233. package/dist/views/system/ai-model/presets.js.map +1 -1
  234. package/dist/views/system/ai-usage/index.vue.js +2 -2
  235. package/dist/views/system/ai-usage/index2.vue.js +356 -258
  236. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  237. package/dist/views/system/api-docs/index.vue.js +5 -2
  238. package/dist/views/system/api-docs/index.vue.js.map +1 -1
  239. package/dist/views/system/api-docs/index2.vue.js +92 -42
  240. package/dist/views/system/api-docs/index2.vue.js.map +1 -1
  241. package/dist/views/system/cache/index.vue.js +2 -2
  242. package/dist/views/system/cache/index2.vue.js +74 -80
  243. package/dist/views/system/cache/index2.vue.js.map +1 -1
  244. package/dist/views/system/config/components/AdminMock.vue.js +2 -2
  245. package/dist/views/system/config/components/AdminMock2.vue.js +60 -43
  246. package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -1
  247. package/dist/views/system/config/components/AdvancedSection.vue.js +5 -2
  248. package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -1
  249. package/dist/views/system/config/components/AdvancedSection2.vue.js +98 -70
  250. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  251. package/dist/views/system/config/components/BrandSection.vue.js +2 -2
  252. package/dist/views/system/config/components/BrandSection2.vue.js +121 -119
  253. package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -1
  254. package/dist/views/system/config/components/CfgGroup.vue.js +3 -3
  255. package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -1
  256. package/dist/views/system/config/components/CfgRow.vue.js +1 -1
  257. package/dist/views/system/config/components/CfgRow2.vue.js +24 -23
  258. package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -1
  259. package/dist/views/system/config/components/CfgSegment.vue.js +1 -1
  260. package/dist/views/system/config/components/CfgSegment2.vue.js +16 -15
  261. package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -1
  262. package/dist/views/system/config/components/ConfigFormModal.vue.js +2 -2
  263. package/dist/views/system/config/components/ConfigFormModal2.vue.js +35 -33
  264. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
  265. package/dist/views/system/config/components/JobSection.vue.js +2 -2
  266. package/dist/views/system/config/components/JobSection2.vue.js +46 -44
  267. package/dist/views/system/config/components/JobSection2.vue.js.map +1 -1
  268. package/dist/views/system/config/components/LoginMock.vue.js +3 -3
  269. package/dist/views/system/config/components/LoginMock2.vue.js +83 -72
  270. package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -1
  271. package/dist/views/system/config/components/LogoCropper.vue.js +1 -1
  272. package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -1
  273. package/dist/views/system/config/components/LogoEditor.vue.js +2 -2
  274. package/dist/views/system/config/components/LogoEditor2.vue.js +11 -13
  275. package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -1
  276. package/dist/views/system/config/components/ProviderSheet.vue.js +3 -3
  277. package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -1
  278. package/dist/views/system/config/components/SectionLayout.vue.d.ts +4 -2
  279. package/dist/views/system/config/components/SectionLayout.vue.js +2 -2
  280. package/dist/views/system/config/components/SectionLayout2.vue.js +51 -27
  281. package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -1
  282. package/dist/views/system/config/components/SecuritySection.vue.js +2 -2
  283. package/dist/views/system/config/components/SecuritySection2.vue.js +207 -206
  284. package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -1
  285. package/dist/views/system/config/components/SensitiveSection.vue.js +2 -2
  286. package/dist/views/system/config/components/SensitiveSection2.vue.js +107 -102
  287. package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -1
  288. package/dist/views/system/config/components/UploadSection.vue.js +2 -2
  289. package/dist/views/system/config/components/UploadSection2.vue.js +86 -77
  290. package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -1
  291. package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
  292. package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
  293. package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
  294. package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
  295. package/dist/views/system/config/draft.d.ts +2 -2
  296. package/dist/views/system/config/draft.js.map +1 -1
  297. package/dist/views/system/config/groups.d.ts +4 -1
  298. package/dist/views/system/config/groups.js +54 -49
  299. package/dist/views/system/config/groups.js.map +1 -1
  300. package/dist/views/system/config/index.vue.js +3 -2
  301. package/dist/views/system/config/index.vue.js.map +1 -1
  302. package/dist/views/system/config/index2.vue.js +173 -148
  303. package/dist/views/system/config/index2.vue.js.map +1 -1
  304. package/dist/views/system/config/layoutMode.d.ts +23 -0
  305. package/dist/views/system/config/layoutMode.js +28 -0
  306. package/dist/views/system/config/layoutMode.js.map +1 -0
  307. package/dist/views/system/dict/index.vue.js +2 -2
  308. package/dist/views/system/dict/index2.vue.js +471 -366
  309. package/dist/views/system/dict/index2.vue.js.map +1 -1
  310. package/dist/views/system/file/index2.vue.js +91 -76
  311. package/dist/views/system/file/index2.vue.js.map +1 -1
  312. package/dist/views/system/job/index.vue.js +3 -3
  313. package/dist/views/system/job/index2.vue.js +897 -828
  314. package/dist/views/system/job/index2.vue.js.map +1 -1
  315. package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
  316. package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
  317. package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
  318. package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
  319. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
  320. package/dist/views/system/job-log/index.vue.js +2 -2
  321. package/dist/views/system/job-log/index2.vue.js +193 -207
  322. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  323. package/dist/views/system/job-log/runStatus.d.ts +13 -0
  324. package/dist/views/system/job-log/runStatus.js +26 -0
  325. package/dist/views/system/job-log/runStatus.js.map +1 -0
  326. package/dist/views/system/job-monitor/index.vue.js +2 -2
  327. package/dist/views/system/job-monitor/index2.vue.js +172 -180
  328. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  329. package/dist/views/system/log/exception/index.vue.js +2 -2
  330. package/dist/views/system/log/exception/index2.vue.js +135 -96
  331. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  332. package/dist/views/system/log/login/index2.vue.js +62 -41
  333. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  334. package/dist/views/system/log/op/index.vue.js +2 -2
  335. package/dist/views/system/log/op/index2.vue.js +200 -162
  336. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  337. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  338. package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
  339. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  340. package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
  341. package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
  342. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
  343. package/dist/views/system/menu/index.vue.js +1 -1
  344. package/dist/views/system/menu/index2.vue.js +216 -183
  345. package/dist/views/system/menu/index2.vue.js.map +1 -1
  346. package/dist/views/system/module/index.vue.js +1 -1
  347. package/dist/views/system/module/index2.vue.js +177 -144
  348. package/dist/views/system/module/index2.vue.js.map +1 -1
  349. package/dist/views/system/monitor/index.vue.js +2 -2
  350. package/dist/views/system/monitor/index2.vue.js +134 -149
  351. package/dist/views/system/monitor/index2.vue.js.map +1 -1
  352. package/dist/views/system/notice/index.vue.js +1 -1
  353. package/dist/views/system/notice/index2.vue.js +209 -181
  354. package/dist/views/system/notice/index2.vue.js.map +1 -1
  355. package/dist/views/system/org/index.vue.js +1 -1
  356. package/dist/views/system/org/index2.vue.js +278 -248
  357. package/dist/views/system/org/index2.vue.js.map +1 -1
  358. package/dist/views/system/position/index.vue.js +5 -2
  359. package/dist/views/system/position/index.vue.js.map +1 -1
  360. package/dist/views/system/position/index2.vue.js +128 -92
  361. package/dist/views/system/position/index2.vue.js.map +1 -1
  362. package/dist/views/system/recycle/index.vue.js +2 -2
  363. package/dist/views/system/recycle/index2.vue.js +90 -67
  364. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  365. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
  366. package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
  367. package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
  368. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
  369. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
  370. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
  371. package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
  372. package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
  373. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  374. package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
  375. package/dist/views/system/role/components/MatchText.vue.js +8 -0
  376. package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
  377. package/dist/views/system/role/components/MatchText2.vue.js +29 -0
  378. package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
  379. package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
  380. package/dist/views/system/role/components/grantMenuGroups.js +110 -48
  381. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  382. package/dist/views/system/role/index.vue.js +5 -2
  383. package/dist/views/system/role/index.vue.js.map +1 -1
  384. package/dist/views/system/role/index2.vue.js +181 -165
  385. package/dist/views/system/role/index2.vue.js.map +1 -1
  386. package/dist/views/system/session/index2.vue.js +75 -49
  387. package/dist/views/system/session/index2.vue.js.map +1 -1
  388. package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
  389. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
  390. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
  391. package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
  392. package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
  393. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
  394. package/dist/views/system/user/index.vue.js +2 -2
  395. package/dist/views/system/user/index2.vue.js +362 -275
  396. package/dist/views/system/user/index2.vue.js.map +1 -1
  397. package/package.json +3 -5
  398. package/dist/components/SelectTable/index.vue.d.ts +0 -76
  399. package/dist/components/SelectTable/index2.vue.js +0 -256
  400. package/dist/components/SelectTable/index2.vue.js.map +0 -1
  401. package/dist/composables/useTableRowSort.d.ts +0 -20
  402. package/dist/composables/useTableRowSort.js +0 -59
  403. package/dist/composables/useTableRowSort.js.map +0 -1
  404. package/dist/layouts/LayoutModeCards.vue.js +0 -8
  405. package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
  406. package/dist/layouts/LayoutModeCards2.vue.js +0 -67
  407. package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
  408. package/dist/layouts/SettingRow.vue.d.ts +0 -16
  409. package/dist/layouts/SettingRow.vue.js +0 -8
  410. package/dist/layouts/SettingRow.vue.js.map +0 -1
  411. package/dist/layouts/SettingRow2.vue.js +0 -23
  412. package/dist/layouts/SettingRow2.vue.js.map +0 -1
  413. package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
  414. package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
  415. package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
  416. package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
  417. package/dist/views/login/skins/SplitPanel.vue.d.ts +0 -3
  418. package/dist/views/login/skins/SplitPanel.vue.js +0 -8
  419. package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
  420. package/dist/views/login/skins/SplitPanel2.vue.js +0 -65
  421. package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
  422. package/dist/views/login/skins/Spotlight.vue.d.ts +0 -3
  423. package/dist/views/login/skins/Spotlight.vue.js +0 -8
  424. package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
  425. package/dist/views/login/skins/Spotlight2.vue.js +0 -36
  426. package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
  427. package/dist/views/login/skins.d.ts +0 -8
  428. package/dist/views/login/skins.js +0 -13
  429. package/dist/views/login/skins.js.map +0 -1
  430. /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
  431. /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
  432. /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/WatermarkSection.vue.d.ts} +0 -0
@@ -1,177 +1,162 @@
1
- import { defineComponent as k, ref as g, onMounted as b, openBlock as d, createElementBlock as B, createElementVNode as s, createVNode as r, unref as e, withCtx as l, createTextVNode as C, toDisplayString as t, createBlock as M, Fragment as x, renderList as S, createCommentVNode as z } from "vue";
2
- import { useMessage as A, NButton as P, NSpin as V, NGrid as D, NGi as _, NCard as f, NProgress as h } from "naive-ui";
3
- import { useI18n as E } from "vue-i18n";
4
- import W from "../../../components/AppIcon.vue.js";
5
- import { monitorApi as F } from "../../../api/index.js";
6
- import { translateError as G } from "../../../utils/error.js";
1
+ import { defineComponent as P, ref as k, computed as _, onMounted as D, openBlock as d, createElementBlock as v, createElementVNode as s, createVNode as l, unref as e, withCtx as c, createTextVNode as M, toDisplayString as t, normalizeStyle as h, Fragment as E, renderList as H, createBlock as V } from "vue";
2
+ import { useMessage as W, NButton as F, NSpin as T, NCard as f, NProgress as B } from "naive-ui";
3
+ import { useI18n as U } from "vue-i18n";
4
+ import j from "../../../components/AppIcon.vue.js";
5
+ import { useShellBreakpoint as I } from "../../../composables/useShellBreakpoint.js";
6
+ import { monitorApi as L } from "../../../api/index.js";
7
+ import { translateError as q } from "../../../utils/error.js";
7
8
  import { fmtBytes as u } from "../../../utils/format.js";
8
- const H = { class: "monitor" }, U = { class: "bar" }, j = { class: "metric" }, I = { class: "sub" }, L = { class: "metric" }, T = { class: "sub" }, q = { class: "rows" }, J = { class: "k" }, K = { class: "v" }, O = { class: "k" }, Q = { class: "v" }, R = { class: "k" }, X = { class: "v" }, Y = { class: "k" }, Z = { class: "v" }, ee = { class: "k" }, te = { class: "v" }, se = { class: "metric small" }, oe = { class: "sub" }, pe = /* @__PURE__ */ k({
9
+ const G = { class: "monitor" }, J = { class: "bar" }, K = { class: "stat-val num" }, O = { class: "sub" }, Q = { class: "stat-val num" }, R = { class: "sub" }, X = { class: "rows" }, Y = { class: "row" }, Z = { class: "k" }, ee = { class: "v" }, te = { class: "row" }, se = { class: "k" }, oe = { class: "v" }, ae = { class: "row" }, ne = { class: "k" }, re = { class: "v" }, le = { class: "row" }, ie = { class: "k" }, ce = { class: "v" }, ue = { class: "row" }, me = { class: "k" }, de = { class: "v" }, pe = { class: "disk-val num" }, _e = { class: "sub" }, Me = /* @__PURE__ */ P({
9
10
  __name: "index",
10
- setup(ae) {
11
- const { t: a } = E(), N = A(), o = g(null), m = g(!1);
12
- async function y() {
11
+ setup(ve) {
12
+ const { t: a } = U(), S = W(), o = k(null), m = k(!1), { width: w, bp: $ } = I(), y = _(() => w.value < 600 ? 1 : w.value < 1e3 ? 2 : 4), N = _(() => ({ gridTemplateColumns: `repeat(${y.value}, minmax(0, 1fr))` })), b = _(() => ({ gridColumn: `span ${y.value === 1 ? 1 : 2}` })), x = _(() => ({ gridColumn: `span ${y.value === 2 ? 2 : 1}` }));
13
+ async function C() {
13
14
  m.value = !0;
14
15
  try {
15
- o.value = await F.server();
16
- } catch (i) {
17
- N.error(G(i));
16
+ o.value = await L.server();
17
+ } catch (r) {
18
+ S.error(q(r));
18
19
  } finally {
19
20
  m.value = !1;
20
21
  }
21
22
  }
22
- b(y);
23
- function w(i) {
24
- const c = Math.floor(i / 86400), n = Math.floor(i % 86400 / 3600), $ = Math.floor(i % 3600 / 60);
23
+ D(C);
24
+ function A(r) {
25
+ const i = Math.floor(r / 86400), n = Math.floor(r % 86400 / 3600), z = Math.floor(r % 3600 / 60);
25
26
  return [
26
- c ? `${c}${a("monitor.days")}` : "",
27
+ i ? `${i}${a("monitor.days")}` : "",
27
28
  n ? `${n}${a("monitor.hours")}` : "",
28
- `${$}${a("monitor.minutes")}`
29
+ `${z}${a("monitor.minutes")}`
29
30
  ].filter(Boolean).join(" ");
30
31
  }
31
- function p(i, c) {
32
- return c > 0 ? Math.round(i / c * 100) : 0;
32
+ function p(r, i) {
33
+ return i > 0 ? Math.round(r / i * 100) : 0;
33
34
  }
34
- function v(i) {
35
- return i >= 90 ? "error" : i >= 75 ? "warning" : "success";
35
+ function g(r) {
36
+ return r >= 90 ? "error" : r >= 75 ? "warning" : "success";
36
37
  }
37
- return (i, c) => (d(), B("div", H, [
38
- s("div", U, [
39
- r(e(P), {
40
- size: "small",
38
+ return (r, i) => (d(), v("div", G, [
39
+ s("div", J, [
40
+ l(e(F), {
41
41
  secondary: "",
42
+ size: e($) === "narrow" ? "large" : "medium",
42
43
  loading: m.value,
43
- onClick: y
44
+ onClick: C
44
45
  }, {
45
- icon: l(() => [
46
- r(W, {
46
+ icon: c(() => [
47
+ l(j, {
47
48
  icon: "ph:arrow-clockwise",
48
49
  size: 16
49
50
  })
50
51
  ]),
51
- default: l(() => [
52
- C(" " + t(e(a)("monitor.refresh")), 1)
52
+ default: c(() => [
53
+ M(" " + t(e(a)("monitor.refresh")), 1)
53
54
  ]),
54
55
  _: 1
55
- }, 8, ["loading"])
56
+ }, 8, ["size", "loading"])
56
57
  ]),
57
- r(e(V), { show: m.value }, {
58
- default: l(() => [
59
- o.value ? (d(), M(e(D), {
58
+ l(e(T), {
59
+ show: m.value,
60
+ class: "monitor-spin"
61
+ }, {
62
+ default: c(() => [
63
+ o.value ? (d(), v("div", {
60
64
  key: 0,
61
- cols: "1 s:2 l:4",
62
- responsive: "screen",
63
- "x-gap": 12,
64
- "y-gap": 12
65
- }, {
66
- default: l(() => [
67
- r(e(_), null, {
68
- default: l(() => [
69
- r(e(f), {
70
- title: e(a)("monitor.cpu"),
71
- size: "small"
72
- }, {
73
- default: l(() => [
74
- s("div", j, [
75
- C(t(o.value.processCpuPercent.toFixed(1)) + " ", 1),
76
- c[0] || (c[0] = s("span", { class: "unit" }, "%", -1))
77
- ]),
78
- r(e(h), {
79
- type: "line",
80
- percentage: Math.round(o.value.processCpuPercent),
81
- status: v(Math.round(o.value.processCpuPercent)),
82
- "show-indicator": !1,
83
- height: 6
84
- }, null, 8, ["percentage", "status"]),
85
- s("div", I, t(e(a)("monitor.processorCount")) + ": " + t(o.value.processorCount) + " · " + t(e(a)("monitor.threadCount")) + ": " + t(o.value.threadCount), 1)
86
- ]),
87
- _: 1
88
- }, 8, ["title"])
65
+ class: "cards",
66
+ style: h(N.value)
67
+ }, [
68
+ l(e(f), {
69
+ title: e(a)("monitor.cpu"),
70
+ class: "a-card"
71
+ }, {
72
+ default: c(() => [
73
+ s("div", K, [
74
+ M(t(o.value.processCpuPercent.toFixed(1)) + " ", 1),
75
+ i[0] || (i[0] = s("small", null, "%", -1))
89
76
  ]),
90
- _: 1
91
- }),
92
- r(e(_), null, {
93
- default: l(() => [
94
- r(e(f), {
95
- title: e(a)("monitor.memory"),
96
- size: "small"
97
- }, {
98
- default: l(() => [
99
- s("div", L, t(e(u)(o.value.processWorkingSetBytes)), 1),
100
- r(e(h), {
101
- type: "line",
102
- percentage: p(o.value.processWorkingSetBytes, o.value.totalAvailableMemoryBytes),
103
- status: v(p(o.value.processWorkingSetBytes, o.value.totalAvailableMemoryBytes)),
104
- height: 6
105
- }, null, 8, ["percentage", "status"]),
106
- s("div", T, t(e(a)("monitor.gcHeap")) + ": " + t(e(u)(o.value.gcHeapBytes)) + " · " + t(e(a)("monitor.totalMemory")) + ": " + t(e(u)(o.value.totalAvailableMemoryBytes)), 1)
107
- ]),
108
- _: 1
109
- }, 8, ["title"])
110
- ]),
111
- _: 1
112
- }),
113
- r(e(_), { span: "1 s:2" }, {
114
- default: l(() => [
115
- r(e(f), {
116
- title: e(a)("monitor.runtime"),
117
- size: "small"
118
- }, {
119
- default: l(() => [
120
- s("div", q, [
121
- s("div", null, [
122
- s("span", J, t(e(a)("monitor.machineName")), 1),
123
- s("span", K, t(o.value.machineName), 1)
124
- ]),
125
- s("div", null, [
126
- s("span", O, t(e(a)("monitor.framework")), 1),
127
- s("span", Q, t(o.value.frameworkDescription), 1)
128
- ]),
129
- s("div", null, [
130
- s("span", R, t(e(a)("monitor.os")), 1),
131
- s("span", X, t(o.value.osDescription), 1)
132
- ]),
133
- s("div", null, [
134
- s("span", Y, t(e(a)("monitor.arch")), 1),
135
- s("span", Z, t(o.value.processArchitecture), 1)
136
- ]),
137
- s("div", null, [
138
- s("span", ee, t(e(a)("monitor.uptime")), 1),
139
- s("span", te, t(w(o.value.processUptimeSeconds)), 1)
140
- ])
141
- ])
142
- ]),
143
- _: 1
144
- }, 8, ["title"])
145
- ]),
146
- _: 1
147
- }),
148
- (d(!0), B(x, null, S(o.value.disks.filter((n) => n.totalBytes > 0), (n) => (d(), M(e(_), {
149
- key: n.name,
150
- span: "1 s:2 l:1"
151
- }, {
152
- default: l(() => [
153
- r(e(f), {
154
- title: `${e(a)("monitor.disk")} ${n.name}`,
155
- size: "small"
156
- }, {
157
- default: l(() => [
158
- s("div", se, t(e(u)(n.totalBytes - n.freeBytes)) + " / " + t(e(u)(n.totalBytes)), 1),
159
- r(e(h), {
160
- type: "line",
161
- percentage: p(n.totalBytes - n.freeBytes, n.totalBytes),
162
- status: v(p(n.totalBytes - n.freeBytes, n.totalBytes)),
163
- height: 6
164
- }, null, 8, ["percentage", "status"]),
165
- s("div", oe, t(e(a)("monitor.free")) + ": " + t(e(u)(n.freeBytes)), 1)
166
- ]),
167
- _: 2
168
- }, 1032, ["title"])
169
- ]),
170
- _: 2
171
- }, 1024))), 128))
172
- ]),
173
- _: 1
174
- })) : z("", !0)
77
+ l(e(B), {
78
+ class: "usage",
79
+ type: "line",
80
+ percentage: Math.round(o.value.processCpuPercent),
81
+ status: g(Math.round(o.value.processCpuPercent)),
82
+ "show-indicator": !1,
83
+ height: 6
84
+ }, null, 8, ["percentage", "status"]),
85
+ s("div", O, t(e(a)("monitor.processorCount")) + ": " + t(o.value.processorCount) + " · " + t(e(a)("monitor.threadCount")) + ": " + t(o.value.threadCount), 1)
86
+ ]),
87
+ _: 1
88
+ }, 8, ["title"]),
89
+ l(e(f), {
90
+ title: e(a)("monitor.memory"),
91
+ class: "a-card"
92
+ }, {
93
+ default: c(() => [
94
+ s("div", Q, t(e(u)(o.value.processWorkingSetBytes)), 1),
95
+ l(e(B), {
96
+ class: "usage",
97
+ type: "line",
98
+ percentage: p(o.value.processWorkingSetBytes, o.value.totalAvailableMemoryBytes),
99
+ status: g(p(o.value.processWorkingSetBytes, o.value.totalAvailableMemoryBytes)),
100
+ height: 6
101
+ }, null, 8, ["percentage", "status"]),
102
+ s("div", R, t(e(a)("monitor.gcHeap")) + ": " + t(e(u)(o.value.gcHeapBytes)) + " · " + t(e(a)("monitor.totalMemory")) + ": " + t(e(u)(o.value.totalAvailableMemoryBytes)), 1)
103
+ ]),
104
+ _: 1
105
+ }, 8, ["title"]),
106
+ l(e(f), {
107
+ title: e(a)("monitor.runtime"),
108
+ class: "a-card",
109
+ style: h(b.value)
110
+ }, {
111
+ default: c(() => [
112
+ s("div", X, [
113
+ s("div", Y, [
114
+ s("span", Z, t(e(a)("monitor.machineName")), 1),
115
+ s("span", ee, t(o.value.machineName), 1)
116
+ ]),
117
+ s("div", te, [
118
+ s("span", se, t(e(a)("monitor.framework")), 1),
119
+ s("span", oe, t(o.value.frameworkDescription), 1)
120
+ ]),
121
+ s("div", ae, [
122
+ s("span", ne, t(e(a)("monitor.os")), 1),
123
+ s("span", re, t(o.value.osDescription), 1)
124
+ ]),
125
+ s("div", le, [
126
+ s("span", ie, t(e(a)("monitor.arch")), 1),
127
+ s("span", ce, t(o.value.processArchitecture), 1)
128
+ ]),
129
+ s("div", ue, [
130
+ s("span", me, t(e(a)("monitor.uptime")), 1),
131
+ s("span", de, t(A(o.value.processUptimeSeconds)), 1)
132
+ ])
133
+ ])
134
+ ]),
135
+ _: 1
136
+ }, 8, ["title", "style"]),
137
+ (d(!0), v(E, null, H(o.value.disks.filter((n) => n.totalBytes > 0), (n) => (d(), V(e(f), {
138
+ key: n.name,
139
+ title: `${e(a)("monitor.disk")} ${n.name}`,
140
+ class: "a-card",
141
+ style: h(x.value)
142
+ }, {
143
+ default: c(() => [
144
+ s("div", pe, t(e(u)(n.totalBytes - n.freeBytes)) + " / " + t(e(u)(n.totalBytes)), 1),
145
+ l(e(B), {
146
+ class: "usage",
147
+ type: "line",
148
+ percentage: p(n.totalBytes - n.freeBytes, n.totalBytes),
149
+ status: g(p(n.totalBytes - n.freeBytes, n.totalBytes)),
150
+ height: 6
151
+ }, null, 8, ["percentage", "status"]),
152
+ s("div", _e, t(e(a)("monitor.free")) + ": " + t(e(u)(n.freeBytes)), 1)
153
+ ]),
154
+ _: 2
155
+ }, 1032, ["title", "style"]))), 128))
156
+ ], 4)) : (d(), v("div", {
157
+ key: 1,
158
+ style: h({ minHeight: m.value ? "180px" : "0" })
159
+ }, null, 4))
175
160
  ]),
176
161
  _: 1
177
162
  }, 8, ["show"])
@@ -179,6 +164,6 @@ const H = { class: "monitor" }, U = { class: "bar" }, j = { class: "metric" }, I
179
164
  }
180
165
  });
181
166
  export {
182
- pe as default
167
+ Me as default
183
168
  };
184
169
  //# sourceMappingURL=index2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.vue.js","sources":["../../../../src/views/system/monitor/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 服务器监控 = 卡片 + 手动刷新(不轮询:CPU 快照后端每次采样 500ms,自动轮询会持续占用)。\nimport { onMounted, ref } from 'vue'\nimport { NGrid, NGi, NCard, NProgress, NButton, NSpin, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\nimport { monitorApi } from '#/api'\nimport { translateError } from '#/utils/error'\nimport { fmtBytes } from '#/utils/format'\nimport type { ServerInfoOutput } from '#/types/api'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst info = ref<ServerInfoOutput | null>(null)\nconst loading = ref(false)\n\nasync function load() {\n loading.value = true\n try {\n info.value = await monitorApi.server()\n } catch (e) {\n message.error(translateError(e))\n } finally {\n loading.value = false\n }\n}\nonMounted(load)\n\n/** 运行秒数 → d/h/m。 */\nfunction fmtUptime(s: number): string {\n const d = Math.floor(s / 86400)\n const h = Math.floor((s % 86400) / 3600)\n const m = Math.floor((s % 3600) / 60)\n return [\n d ? `${d}${t('monitor.days')}` : '',\n h ? `${h}${t('monitor.hours')}` : '',\n `${m}${t('monitor.minutes')}`,\n ]\n .filter(Boolean)\n .join(' ')\n}\n/** 内存/磁盘占用百分比(整数,0–100)。 */\nfunction pct(used: number, total: number): number {\n return total > 0 ? Math.round((used / total) * 100) : 0\n}\nfunction usageStatus(p: number): 'success' | 'warning' | 'error' {\n return p >= 90 ? 'error' : p >= 75 ? 'warning' : 'success'\n}\n</script>\n\n<template>\n <div class=\"monitor\">\n <div class=\"bar\">\n <n-button size=\"small\" secondary :loading=\"loading\" @click=\"load\">\n <template #icon><AppIcon icon=\"ph:arrow-clockwise\" :size=\"16\" /></template>\n {{ t('monitor.refresh') }}\n </n-button>\n </div>\n\n <n-spin :show=\"loading\">\n <n-grid v-if=\"info\" cols=\"1 s:2 l:4\" responsive=\"screen\" :x-gap=\"12\" :y-gap=\"12\">\n <!-- CPU -->\n <n-gi>\n <n-card :title=\"t('monitor.cpu')\" size=\"small\">\n <div class=\"metric\">\n {{ info.processCpuPercent.toFixed(1) }}\n <span class=\"unit\">%</span>\n </div>\n <n-progress\n type=\"line\"\n :percentage=\"Math.round(info.processCpuPercent)\"\n :status=\"usageStatus(Math.round(info.processCpuPercent))\"\n :show-indicator=\"false\"\n :height=\"6\"\n />\n <div class=\"sub\">\n {{ t('monitor.processorCount') }}: {{ info.processorCount }} ·\n {{ t('monitor.threadCount') }}: {{ info.threadCount }}\n </div>\n </n-card>\n </n-gi>\n\n <!-- 内存 -->\n <n-gi>\n <n-card :title=\"t('monitor.memory')\" size=\"small\">\n <div class=\"metric\">{{ fmtBytes(info.processWorkingSetBytes) }}</div>\n <n-progress\n type=\"line\"\n :percentage=\"pct(info.processWorkingSetBytes, info.totalAvailableMemoryBytes)\"\n :status=\"\n usageStatus(pct(info.processWorkingSetBytes, info.totalAvailableMemoryBytes))\n \"\n :height=\"6\"\n />\n <div class=\"sub\">\n {{ t('monitor.gcHeap') }}: {{ fmtBytes(info.gcHeapBytes) }} ·\n {{ t('monitor.totalMemory') }}: {{ fmtBytes(info.totalAvailableMemoryBytes) }}\n </div>\n </n-card>\n </n-gi>\n\n <!-- 运行时 -->\n <n-gi span=\"1 s:2\">\n <n-card :title=\"t('monitor.runtime')\" size=\"small\">\n <div class=\"rows\">\n <div>\n <span class=\"k\">{{ t('monitor.machineName') }}</span>\n <span class=\"v\">{{ info.machineName }}</span>\n </div>\n <div>\n <span class=\"k\">{{ t('monitor.framework') }}</span>\n <span class=\"v\">{{ info.frameworkDescription }}</span>\n </div>\n <div>\n <span class=\"k\">{{ t('monitor.os') }}</span>\n <span class=\"v\">{{ info.osDescription }}</span>\n </div>\n <div>\n <span class=\"k\">{{ t('monitor.arch') }}</span>\n <span class=\"v\">{{ info.processArchitecture }}</span>\n </div>\n <div>\n <span class=\"k\">{{ t('monitor.uptime') }}</span>\n <span class=\"v\">{{ fmtUptime(info.processUptimeSeconds) }}</span>\n </div>\n </div>\n </n-card>\n </n-gi>\n\n <!-- 磁盘(过滤掉容量为 0 的未就绪/映射盘,免渲染一张全 0 卡片) -->\n <n-gi\n v-for=\"disk in info.disks.filter(d => d.totalBytes > 0)\"\n :key=\"disk.name\"\n span=\"1 s:2 l:1\"\n >\n <n-card :title=\"`${t('monitor.disk')} ${disk.name}`\" size=\"small\">\n <div class=\"metric small\">\n {{ fmtBytes(disk.totalBytes - disk.freeBytes) }} / {{ fmtBytes(disk.totalBytes) }}\n </div>\n <n-progress\n type=\"line\"\n :percentage=\"pct(disk.totalBytes - disk.freeBytes, disk.totalBytes)\"\n :status=\"usageStatus(pct(disk.totalBytes - disk.freeBytes, disk.totalBytes))\"\n :height=\"6\"\n />\n <div class=\"sub\">{{ t('monitor.free') }}: {{ fmtBytes(disk.freeBytes) }}</div>\n </n-card>\n </n-gi>\n </n-grid>\n </n-spin>\n </div>\n</template>\n\n<style scoped>\n.monitor {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.bar {\n display: flex;\n justify-content: flex-end;\n}\n.metric {\n font-size: 28px;\n font-weight: 600;\n line-height: 1.2;\n margin-bottom: 10px;\n}\n.metric.small {\n font-size: 18px;\n}\n.unit {\n font-size: 16px;\n margin-left: 2px;\n color: var(--color-text-secondary, #999);\n}\n.sub {\n margin-top: 8px;\n font-size: 12px;\n color: var(--color-text-secondary, #999);\n}\n.rows {\n display: grid;\n gap: 8px;\n font-size: 13px;\n}\n.rows .k {\n display: inline-block;\n width: 88px;\n color: var(--color-text-secondary, #999);\n}\n.rows .v {\n word-break: break-all;\n}\n</style>\n"],"names":["t","useI18n","message","useMessage","info","ref","loading","load","monitorApi","e","translateError","onMounted","fmtUptime","s","d","h","m","pct","used","total","usageStatus","p","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","_unref","NButton","AppIcon","_createTextVNode","NSpin","_createBlock","NGrid","NGi","NCard","_hoisted_3","_toDisplayString","_cache","NProgress","_hoisted_4","_hoisted_5","_hoisted_6","fmtBytes","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_Fragment","_renderList","disk","_hoisted_18","_hoisted_19"],"mappings":"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"}
1
+ {"version":3,"file":"index2.vue.js","sources":["../../../../src/views/system/monitor/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 服务器监控 = 卡片 + 手动刷新(不轮询:CPU 快照后端每次采样 500ms,自动轮询会持续占用)。\nimport { computed, onMounted, ref } from 'vue'\nimport { NCard, NProgress, NButton, NSpin, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\nimport { useShellBreakpoint } from '#/composables/useShellBreakpoint'\nimport { monitorApi } from '#/api'\nimport { translateError } from '#/utils/error'\nimport { fmtBytes } from '#/utils/format'\nimport type { ServerInfoOutput } from '#/types/api'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst info = ref<ServerInfoOutput | null>(null)\nconst loading = ref(false)\n\n// 栅格按内容区宽度分档(壳层 604 在这里量的是不含留白的 content box,折算为 600):\n// < 600 一列,600–999 两列,>= 1000 四列。运行时卡片占 2 列(一列时占 1),磁盘卡片两列档下占满一行\nconst { width: pw, bp } = useShellBreakpoint()\nconst cols = computed(() => (pw.value < 600 ? 1 : pw.value < 1000 ? 2 : 4))\nconst gridStyle = computed(() => ({ gridTemplateColumns: `repeat(${cols.value}, minmax(0, 1fr))` }))\nconst runtimeSpan = computed(() => ({ gridColumn: `span ${cols.value === 1 ? 1 : 2}` }))\nconst diskSpan = computed(() => ({ gridColumn: `span ${cols.value === 2 ? 2 : 1}` }))\n\nasync function load() {\n loading.value = true\n try {\n info.value = await monitorApi.server()\n } catch (e) {\n message.error(translateError(e))\n } finally {\n loading.value = false\n }\n}\nonMounted(load)\n\n/** 运行秒数 → d/h/m。 */\nfunction fmtUptime(s: number): string {\n const d = Math.floor(s / 86400)\n const h = Math.floor((s % 86400) / 3600)\n const m = Math.floor((s % 3600) / 60)\n return [\n d ? `${d}${t('monitor.days')}` : '',\n h ? `${h}${t('monitor.hours')}` : '',\n `${m}${t('monitor.minutes')}`,\n ]\n .filter(Boolean)\n .join(' ')\n}\n/** 内存/磁盘占用百分比(整数,0–100)。 */\nfunction pct(used: number, total: number): number {\n return total > 0 ? Math.round((used / total) * 100) : 0\n}\nfunction usageStatus(p: number): 'success' | 'warning' | 'error' {\n return p >= 90 ? 'error' : p >= 75 ? 'warning' : 'success'\n}\n</script>\n\n<template>\n <div class=\"monitor\">\n <!-- 顶部工具条:右对齐,只有一个「刷新」(无权限码、无确认) -->\n <div class=\"bar\">\n <n-button\n secondary\n :size=\"bp === 'narrow' ? 'large' : 'medium'\"\n :loading=\"loading\"\n @click=\"load\"\n >\n <template #icon><AppIcon icon=\"ph:arrow-clockwise\" :size=\"16\" /></template>\n {{ t('monitor.refresh') }}\n </n-button>\n </div>\n\n <n-spin :show=\"loading\" class=\"monitor-spin\">\n <div v-if=\"info\" class=\"cards\" :style=\"gridStyle\">\n <!-- CPU:当前进程占用,不是整机 CPU -->\n <n-card :title=\"t('monitor.cpu')\" class=\"a-card\">\n <div class=\"stat-val num\">\n {{ info.processCpuPercent.toFixed(1) }}\n <small>%</small>\n </div>\n <n-progress\n class=\"usage\"\n type=\"line\"\n :percentage=\"Math.round(info.processCpuPercent)\"\n :status=\"usageStatus(Math.round(info.processCpuPercent))\"\n :show-indicator=\"false\"\n :height=\"6\"\n />\n <div class=\"sub\">\n {{ t('monitor.processorCount') }}: {{ info.processorCount }} ·\n {{ t('monitor.threadCount') }}: {{ info.threadCount }}\n </div>\n </n-card>\n\n <!-- 内存:大字是字节数,百分比只在进度条指示器上 -->\n <n-card :title=\"t('monitor.memory')\" class=\"a-card\">\n <div class=\"stat-val num\">{{ fmtBytes(info.processWorkingSetBytes) }}</div>\n <n-progress\n class=\"usage\"\n type=\"line\"\n :percentage=\"pct(info.processWorkingSetBytes, info.totalAvailableMemoryBytes)\"\n :status=\"usageStatus(pct(info.processWorkingSetBytes, info.totalAvailableMemoryBytes))\"\n :height=\"6\"\n />\n <div class=\"sub\">\n {{ t('monitor.gcHeap') }}: {{ fmtBytes(info.gcHeapBytes) }} ·\n {{ t('monitor.totalMemory') }}: {{ fmtBytes(info.totalAvailableMemoryBytes) }}\n </div>\n </n-card>\n\n <!-- 运行时 -->\n\n <n-card :title=\"t('monitor.runtime')\" class=\"a-card\" :style=\"runtimeSpan\">\n <div class=\"rows\">\n <div class=\"row\">\n <span class=\"k\">{{ t('monitor.machineName') }}</span>\n <span class=\"v\">{{ info.machineName }}</span>\n </div>\n <div class=\"row\">\n <span class=\"k\">{{ t('monitor.framework') }}</span>\n <span class=\"v\">{{ info.frameworkDescription }}</span>\n </div>\n <div class=\"row\">\n <span class=\"k\">{{ t('monitor.os') }}</span>\n <span class=\"v\">{{ info.osDescription }}</span>\n </div>\n <div class=\"row\">\n <span class=\"k\">{{ t('monitor.arch') }}</span>\n <span class=\"v\">{{ info.processArchitecture }}</span>\n </div>\n <div class=\"row\">\n <span class=\"k\">{{ t('monitor.uptime') }}</span>\n <span class=\"v\">{{ fmtUptime(info.processUptimeSeconds) }}</span>\n </div>\n </div>\n </n-card>\n\n <!-- 磁盘(过滤掉容量为 0 的未就绪/映射盘,免渲染一张全 0 卡片) -->\n <n-card\n v-for=\"disk in info.disks.filter(d => d.totalBytes > 0)\"\n :key=\"disk.name\"\n :title=\"`${t('monitor.disk')} ${disk.name}`\"\n class=\"a-card\"\n :style=\"diskSpan\"\n >\n <div class=\"disk-val num\">\n {{ fmtBytes(disk.totalBytes - disk.freeBytes) }} / {{ fmtBytes(disk.totalBytes) }}\n </div>\n <n-progress\n class=\"usage\"\n type=\"line\"\n :percentage=\"pct(disk.totalBytes - disk.freeBytes, disk.totalBytes)\"\n :status=\"usageStatus(pct(disk.totalBytes - disk.freeBytes, disk.totalBytes))\"\n :height=\"6\"\n />\n <div class=\"sub\">{{ t('monitor.free') }}: {{ fmtBytes(disk.freeBytes) }}</div>\n </n-card>\n </div>\n <!-- 首次加载前没有数据:栅格不渲染,只留一块加载区给 n-spin 盖 -->\n <div v-else :style=\"{ minHeight: loading ? '180px' : '0' }\"></div>\n </n-spin>\n </div>\n</template>\n\n<style scoped>\n.monitor {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.bar {\n display: flex;\n justify-content: flex-end;\n padding: 2px 4px 0;\n}\n.cards {\n display: grid;\n gap: 12px;\n}\n.monitor-spin {\n flex-shrink: 0;\n}\n/* 大字:28px 加粗、字距收紧、等宽数字;单位缩小并退到三级文字色 */\n.stat-val {\n color: var(--text-1);\n font-size: 28px;\n line-height: 34px;\n font-weight: 600;\n letter-spacing: -0.04em;\n}\n.stat-val small {\n margin-left: 4px;\n font-size: 16px;\n color: var(--text-3);\n letter-spacing: 0;\n}\n.disk-val {\n color: var(--text-1);\n font-size: 18px;\n line-height: 26px;\n font-weight: 600;\n}\n.num {\n font-variant-numeric: tabular-nums;\n}\n.usage {\n margin: 12px 0 8px;\n}\n.sub {\n font-size: 13px;\n color: var(--text-2);\n}\n.rows .row {\n display: grid;\n grid-template-columns: 88px minmax(0, 1fr);\n gap: 12px;\n padding: 3px 0;\n line-height: 22px;\n}\n.rows .k {\n font-size: 13px;\n color: var(--text-2);\n}\n.rows .v {\n overflow-wrap: anywhere;\n}\n</style>\n"],"names":["t","useI18n","message","useMessage","info","ref","loading","pw","bp","useShellBreakpoint","cols","computed","gridStyle","runtimeSpan","diskSpan","load","monitorApi","e","translateError","onMounted","fmtUptime","s","d","h","m","pct","used","total","usageStatus","p","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","_unref","NButton","AppIcon","_createTextVNode","NSpin","NCard","_hoisted_3","_toDisplayString","_cache","NProgress","_hoisted_4","_hoisted_5","_hoisted_6","fmtBytes","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_Fragment","_renderList","disk","_createBlock","_hoisted_23","_hoisted_24"],"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 m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-5c6d1da0"]]);
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-0e60f33e"]]);
5
5
  export {
6
6
  m as default
7
7
  };