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
@@ -79,10 +79,12 @@ const e = {
79
79
  comfortable: "舒适",
80
80
  compact: "紧凑",
81
81
  language: "语言",
82
- loginStyle: "登录页样式",
83
82
  collapse: "折叠菜单",
84
83
  openMenu: "打开菜单",
85
84
  switchModule: "切换应用",
85
+ appearance: "外观设置",
86
+ back: "后退",
87
+ forward: "前进",
86
88
  logout: "退出登录",
87
89
  personalCenter: "个人中心",
88
90
  clearCache: "清除缓存",
@@ -108,10 +110,21 @@ const e = {
108
110
  tabAppearance: "外观",
109
111
  tabLayout: "布局",
110
112
  tabGeneral: "通用",
111
- themeMode: "主题模式",
113
+ themeMode: "外观模式",
112
114
  auto: "跟随系统",
113
- themeColor: "主题色",
115
+ themeColor: "强调色",
114
116
  custom: "自定义",
117
+ accentName: {
118
+ blue: "蓝色",
119
+ indigo: "靛蓝",
120
+ purple: "紫色",
121
+ teal: "深青",
122
+ green: "墨绿",
123
+ graphite: "石墨",
124
+ custom: "自定义颜色"
125
+ },
126
+ accentDemoButton: "主按钮",
127
+ accentDemoLink: "链接文字",
115
128
  layout: "布局模式",
116
129
  layoutVertical: "左侧菜单模式",
117
130
  layoutVerticalMix: "左侧菜单混合模式",
@@ -119,7 +132,10 @@ const e = {
119
132
  layoutHorizontal: "顶部菜单模式",
120
133
  layoutTopHybridSidebarFirst: "顶部混合-侧边优先",
121
134
  layoutTopHybridHeaderFirst: "顶部混合-顶部优先",
122
- interface: "界面功能",
135
+ interface: "界面",
136
+ formStyle: "表单形态",
137
+ formStyleModal: "弹窗",
138
+ formStyleDrawer: "抽屉",
123
139
  showBreadcrumb: "显示面包屑",
124
140
  showTabs: "显示多标签",
125
141
  fixedHeader: "固定头部",
@@ -127,19 +143,17 @@ const e = {
127
143
  transitionNone: "无",
128
144
  transitionFade: "淡入淡出",
129
145
  transitionFadeSlide: "滑动淡入",
130
- grayscale: "灰色模式",
131
- watermark: "水印",
132
- watermarkText: "水印文案",
133
- watermarkPlaceholder: "请输入水印文案",
134
- formStyle: "表单形态",
135
- formStyleModal: "弹窗",
136
- formStyleDrawer: "抽屉",
137
146
  resetConfirm: "确定恢复默认设置?",
138
147
  copyConfig: "复制配置",
139
148
  configCopied: "已复制当前配置(粘回 stores/app.ts 的 DEFAULTS 即为新默认)",
140
149
  searchPlaceholder: "搜索菜单…",
141
150
  searchEmpty: "无匹配菜单",
142
- searchHint: "↑↓ 导航 · ↵ 进入 · Esc 关闭"
151
+ searchHint: "↑↓ 导航 · ↵ 进入 · Esc 关闭",
152
+ descBreadcrumb: "顶栏显示当前页面的层级",
153
+ descTabs: "保留已打开页面,可来回切换",
154
+ descFixedHeader: "顶栏固定并保持毛玻璃",
155
+ descPageTransition: "切换页面的过渡动画",
156
+ descCollapse: "隐藏侧栏,把宽度让给内容区"
143
157
  },
144
158
  tabs: {
145
159
  refresh: "刷新",
@@ -201,9 +215,9 @@ const e = {
201
215
  ssoDingtalk: "钉钉",
202
216
  sso: "SSO",
203
217
  ssoComingSoon: "第三方登录即将开放",
204
- skinAurora: "极光",
205
- skinSplit: "双栏",
206
- skinSpotlight: "聚光"
218
+ layoutLabel: "切换登录页布局",
219
+ layoutToSolo: "切换到单栏",
220
+ layoutToSplit: "切换到双栏"
207
221
  },
208
222
  module: {
209
223
  choose: "选择应用",
@@ -228,6 +242,7 @@ const e = {
228
242
  editTitle: "编辑应用",
229
243
  deleteConfirm: "确定删除应用「{title}」?",
230
244
  disableConfirm: "确定停用应用「{title}」?门户将不再显示该应用",
245
+ builtinNoDisable: "内置应用不可停用",
231
246
  saved: "保存成功",
232
247
  deleted: "已删除"
233
248
  },
@@ -286,6 +301,140 @@ const e = {
286
301
  saved: "保存成功",
287
302
  deleted: "已删除"
288
303
  },
304
+ // 内核种子菜单 / 应用标题(DefaultMenuSeed / DefaultModuleSeed)的译文;值 = 种子里的中文标题原文。
305
+ // 标题原文 → key 的映射表见 locales/kernelMenuTitles.ts。
306
+ menuTitle: {
307
+ module: {
308
+ system: "系统",
309
+ business: "业务中心"
310
+ },
311
+ catalog: {
312
+ org: "组织管理",
313
+ ops: "系统运维",
314
+ schedule: "任务调度",
315
+ audit: "日志审计",
316
+ ai: "AI 管理"
317
+ },
318
+ page: {
319
+ workbench: "工作台",
320
+ org: "机构管理",
321
+ position: "岗位管理",
322
+ user: "用户管理",
323
+ role: "角色管理",
324
+ config: "系统配置",
325
+ dict: "字典管理",
326
+ menu: "菜单管理",
327
+ module: "模块管理",
328
+ notice: "消息通知",
329
+ recycle: "回收站",
330
+ monitor: "服务器监控",
331
+ cache: "缓存管理",
332
+ apiDocs: "接口文档",
333
+ job: "定时任务",
334
+ jobLog: "执行记录",
335
+ jobMonitor: "任务监控",
336
+ loginLog: "登录日志",
337
+ opLog: "操作日志",
338
+ exceptionLog: "异常日志",
339
+ session: "在线会话",
340
+ file: "文件管理",
341
+ aiModel: "AI 模型",
342
+ aiUsage: "用量统计"
343
+ },
344
+ button: {
345
+ orgQuery: "机构-查询",
346
+ orgCreate: "机构-新增",
347
+ orgUpdate: "机构-更新",
348
+ orgDelete: "机构-删除",
349
+ orgCopy: "机构-复制",
350
+ positionQuery: "岗位-查询",
351
+ positionCreate: "岗位-新增",
352
+ positionUpdate: "岗位-更新",
353
+ positionDelete: "岗位-删除",
354
+ userQuery: "用户-查询",
355
+ userCreate: "用户-新增",
356
+ userUpdate: "用户-更新",
357
+ userDelete: "用户-删除",
358
+ userResetPassword: "用户-重置密码",
359
+ userToggle: "用户-启停",
360
+ userImport: "用户-导入",
361
+ userExport: "用户-导出",
362
+ roleQuery: "角色-查询",
363
+ roleCreate: "角色-新增",
364
+ roleUpdate: "角色-更新",
365
+ roleDelete: "角色-删除",
366
+ roleGrantMenus: "角色-授权菜单",
367
+ roleDataScope: "角色-数据范围",
368
+ roleGrantUsers: "角色-授权用户",
369
+ ping: "连通性探针",
370
+ configQuery: "配置-查询",
371
+ configCreate: "配置-新增",
372
+ configUpdate: "配置-更新",
373
+ configDelete: "配置-删除",
374
+ configUploadLogo: "配置-上传Logo",
375
+ sensitiveQuery: "高敏权限-查询",
376
+ sensitiveCreate: "高敏权限-新增",
377
+ sensitiveDelete: "高敏权限-删除",
378
+ mfaClear: "MFA-清除用户二因子",
379
+ dictTypeQuery: "字典类型-查询",
380
+ dictTypeCreate: "字典类型-新增",
381
+ dictTypeUpdate: "字典类型-更新",
382
+ dictTypeDelete: "字典类型-删除",
383
+ dictItemQuery: "字典项-查询",
384
+ dictItemCreate: "字典项-新增",
385
+ dictItemUpdate: "字典项-更新",
386
+ dictItemDelete: "字典项-删除",
387
+ menuQuery: "菜单-查询",
388
+ menuCreate: "菜单-新增",
389
+ menuUpdate: "菜单-更新",
390
+ menuDelete: "菜单-删除",
391
+ moduleQuery: "模块-查询",
392
+ moduleCreate: "模块-新增",
393
+ moduleUpdate: "模块-更新",
394
+ moduleDelete: "模块-删除",
395
+ noticeQuery: "通知-查询",
396
+ noticePublish: "通知-发布",
397
+ noticeDelete: "通知-删除",
398
+ recycleQuery: "回收站-查询",
399
+ recyclePurge: "回收站-彻底删除",
400
+ recycleRestore: "回收站-恢复",
401
+ monitorQuery: "服务器监控-查询",
402
+ cacheFlushAuth: "缓存-清授权",
403
+ cacheFlushDict: "缓存-清字典",
404
+ cacheFlushConfig: "缓存-清配置",
405
+ cacheRebuildPortal: "缓存-重建门户菜单",
406
+ apiDocsView: "接口文档-查看契约",
407
+ jobQuery: "任务-查询",
408
+ jobCreate: "任务-新增",
409
+ jobUpdate: "任务-更新",
410
+ jobDelete: "任务-删除",
411
+ jobToggle: "任务-启停",
412
+ jobRun: "任务-执行一次",
413
+ jobLogQuery: "记录-查询",
414
+ jobLogKill: "记录-终止",
415
+ jobLogClear: "记录-清空",
416
+ jobMonitorQuery: "监控-查询",
417
+ loginLogQuery: "登录日志-查询",
418
+ loginLogClear: "登录日志-清空",
419
+ opLogQuery: "操作日志-查询",
420
+ opLogClear: "操作日志-清空",
421
+ opLogExport: "操作日志-导出",
422
+ exceptionLogQuery: "异常日志-查询",
423
+ exceptionLogClear: "异常日志-清空",
424
+ sessionQuery: "在线会话-查询",
425
+ sessionKick: "强制下线",
426
+ fileQuery: "文件-查询",
427
+ fileUpload: "文件-上传",
428
+ fileDelete: "文件-删除",
429
+ fileDownload: "文件-下载",
430
+ aiProviderQuery: "AI 厂商-查询",
431
+ aiProviderCreate: "AI 厂商-新增",
432
+ aiProviderUpdate: "AI 厂商-更新",
433
+ aiProviderDelete: "AI 厂商-删除",
434
+ aiProviderTest: "AI 厂商-测试连接",
435
+ aiUsageQuery: "AI 用量-查询"
436
+ }
437
+ },
289
438
  iconPicker: {
290
439
  placeholder: "选择图标",
291
440
  title: "选择图标",
@@ -308,9 +457,13 @@ const e = {
308
457
  fixedNone: "取消固定",
309
458
  expand: "展开",
310
459
  collapse: "收起",
460
+ total: "共 {n} 条",
311
461
  // TableZoomButton(表格铺满视口看宽表)
312
462
  zoom: "放大",
313
- zoomExit: "还原"
463
+ zoomExit: "还原",
464
+ // 搜索条件超出后端能力时的提示(见 utils/tableFilter.ts)
465
+ filterFallback: "部分搜索条件后端不支持(同一字段只能设一个条件;日期区间要用「大于等于」加「小于等于」,且连接),已按可识别的条件查询",
466
+ filterTruncated: "数据超过 10000 条,搜索只覆盖前 10000 条,请换更精确的条件"
314
467
  },
315
468
  workbench: {
316
469
  welcome: "你好,{name}",
@@ -360,6 +513,8 @@ const e = {
360
513
  passwordHint: "留空则自动生成随机密码(创建后显示一次)",
361
514
  org: "归属机构",
362
515
  allOrgs: "全部",
516
+ // 内容区较窄时机构树收进抽屉:工具栏按钮与抽屉标题
517
+ orgFilter: "机构",
363
518
  orgPlaceholder: "选择机构(可空)",
364
519
  position: "职位",
365
520
  positionPlaceholder: "选择职位(可空)",
@@ -530,113 +685,344 @@ const e = {
530
685
  deleteConfirm: "确定删除配置「{name}」?",
531
686
  saved: "保存成功",
532
687
  deleted: "已删除",
533
- groupManagedBy: "该分组归「{tab}」管理,保存后在那里显示",
534
- groupExtra: {
535
- title: "本组其它配置",
536
- hint: "同一分组里上面的表单没有列出的配置项,在这里查看、修改或删除。"
537
- },
688
+ keyManagedBy: "该配置由「{tab}」页的表单管理,保存后请到那里修改。",
689
+ unsaved: "有 {n} 项修改未保存",
690
+ unsavedTab: "有未保存的修改",
691
+ discard: "放弃修改",
692
+ leaveTitle: "放弃未保存的修改?",
693
+ leaveConfirm: "配置中心还有未保存的修改,离开后会丢失。",
538
694
  tab: {
539
- base: "系统基础",
695
+ brand: "品牌与登录页",
696
+ signin: "登录方式",
540
697
  security: "安全策略",
541
- externalAuth: "第三方登录",
542
- upload: "上传策略",
698
+ watermark: "水印设置",
699
+ sensitive: "敏感操作",
700
+ upload: "文件上传",
543
701
  job: "定时任务",
544
- other: "其他配置"
702
+ advanced: "高级设置"
703
+ },
704
+ brand: {
705
+ desc: "站点在浏览器标签、侧栏、页脚和登录页上的样子。",
706
+ preview: "实时预览",
707
+ previewAdmin: "后台",
708
+ previewLogin: "登录页",
709
+ groupSite: "站点",
710
+ groupLogin: "登录页",
711
+ copyrightPh: "留空则显示站点名称",
712
+ copyrightUrlHint: "填了之后页脚的版权文字可点击"
713
+ },
714
+ watermark: {
715
+ desc: "登录后的每个页面都会叠一层水印,登录页不显示。",
716
+ groupContent: "内容",
717
+ groupStyle: "样式",
718
+ enable: "启用水印",
719
+ enableHint: "在每个页面上叠一层半透明文字,截图外传时可追溯到人",
720
+ content: "水印内容",
721
+ contentHint: "每位用户印的是自己的信息,按下面的顺序排列",
722
+ contentEmpty: "一项都没选,水印不会显示",
723
+ field: {
724
+ name: "姓名",
725
+ account: "账号",
726
+ org: "机构",
727
+ phone: "手机尾号",
728
+ time: "当前时间",
729
+ text: "自定义文字"
730
+ },
731
+ text: "自定义文字",
732
+ textHint: "如「内部资料 严禁外传」,所有人都一样",
733
+ textPlaceholder: "最多 {max} 个字",
734
+ timeFormat: "时间格式",
735
+ layout: "排版",
736
+ layoutSingle: "单行",
737
+ layoutMulti: "多行",
738
+ fontSize: "字号",
739
+ opacity: "浓淡",
740
+ opacityHint: "越大越清楚,也越影响阅读",
741
+ rotate: "倾斜角度",
742
+ density: "疏密",
743
+ sparse: "疏",
744
+ normal: "适中",
745
+ dense: "密",
746
+ cross: "错位排列",
747
+ crossHint: "相邻两行错开半格,更难被裁掉"
748
+ },
749
+ logo: {
750
+ title: "Logo",
751
+ edit: "更换 Logo",
752
+ upload: "上传新图片…",
753
+ useUrl: "使用图片链接…",
754
+ remove: "移除,恢复默认",
755
+ help: "PNG / JPG / WEBP,裁成正方形,也用作浏览器标签图标",
756
+ fallback: "没有设置时使用内置 Logo。浏览器标签页图标也会跟着 Logo 变。",
757
+ badType: "只支持 PNG、JPG、WEBP 图片",
758
+ tooLarge: "图片不能超过 {mb} MB",
759
+ cropTitle: "裁剪新 Logo",
760
+ cropTip: "拖动或用方向键调整位置,滚轮、滑块或 +/- 缩放",
761
+ zoom: "缩放",
762
+ apply: "设为新 Logo",
763
+ cropFailed: "裁剪失败,请换一张图片",
764
+ badUrl: "请填写以 http:// 或 https:// 开头的地址,或以 / 开头的站内路径",
765
+ urlHint: "图片要能匿名访问,建议用正方形。"
766
+ },
767
+ advanced: {
768
+ desc: "没有归到以上分类的配置项,按键值直接编辑。以上页签里能改的键不会出现在这里。"
769
+ },
770
+ preview: {
771
+ minutes: "{n} 分钟",
772
+ hours: "{n} 小时",
773
+ days: "{n} 天",
774
+ off: "(未启用)",
775
+ sep: "、",
776
+ expand: "展开",
777
+ collapse: "收起",
778
+ req: { upper: "大写字母", lower: "小写字母", digit: "数字", special: "特殊字符" },
779
+ lock: "连续输错密码 {count} 次,账号锁定 {minutes} 分钟",
780
+ lockOff: "输错密码不会锁定账号",
781
+ captcha: "登录时要填验证码({type})",
782
+ totp: "可以用动态口令做二次验证",
783
+ totpSuper: "可以用动态口令做二次验证,超级管理员必须开启",
784
+ smsMfa: "绑定了手机号的用户登录时要做短信验证",
785
+ password: "密码至少 {min} 位,须含{reqs}",
786
+ passwordMin: "密码至少 {min} 位",
787
+ expire: "密码 {days} 天后必须修改",
788
+ noExpire: "密码永不过期",
789
+ history: "新密码不能和最近 {n} 次用过的相同",
790
+ historyOff: "新密码可以和旧密码相同",
791
+ firstChange: "管理员新建的账号首次登录必须修改密码",
792
+ firstChangeOff: "新建账号首次登录不用修改密码",
793
+ session: "访问令牌 {access} 后自动续期,最长 {refresh} 不用重新登录",
794
+ rateLimit: "同一来源每 {seconds} 秒最多 {permit} 次请求"
545
795
  },
546
796
  job: {
547
- logRetentionDays: "日志保留天数",
797
+ desc: "执行日志保留多久,任务失败时通知谁。",
798
+ preview: "实时预览 · 生效效果",
799
+ groupLog: "执行日志",
800
+ groupAlert: "失败告警",
801
+ logRetentionDays: "保留天数",
802
+ logRetentionHint: "更早的日志每天自动清理",
548
803
  alertEmails: "告警邮箱",
549
- alertEmailsHint: "多个邮箱用逗号分隔"
804
+ alertEmailsHint: "回车添加;不填则不发邮件",
805
+ previewRetention: "执行日志保留最近 {days} 天,更早的每天自动清理",
806
+ previewKeep: "保留 {days} 天",
807
+ previewAxisStart: "{days} 天前",
808
+ previewToday: "今天",
809
+ previewTo: "收件人",
810
+ previewSubject: "主题",
811
+ previewSubjectText: "[{site}] 定时任务执行失败:日报汇总",
812
+ previewBody: "任务「日报汇总」在 02:00 执行失败,已重试 3 次。",
813
+ previewError: "数据库连接超时 (30s)",
814
+ previewNoAlert: "任务失败时不发邮件,只记录在执行日志里"
550
815
  },
551
816
  externalAuth: {
552
- hint: "控制登录页显示哪些已部署的第三方登录方式。关闭后按钮隐藏,授权入口同步拒绝。连接密钥仍在服务器配置文件中。",
553
- empty: "当前未注册任何第三方登录(需在部署中装包或配置 OIDC)",
554
- showOnLogin: "登录页显示",
555
- hidden: "已隐藏",
556
- loginVisible: "登录页显示",
557
- summary: "共 {total} 种方式 · {on} 个在登录页显示",
558
- summaryFull: "共 {total} 种 · 已配置 {registered} · 登录页显示 {on}",
559
- reset: "还原",
560
- notConfigured: "未配置",
561
- notConfiguredTip: "部署侧未注册该方式(未装包或未填密钥),无法在登录页开启。",
817
+ preview: "实时预览 · 登录框",
818
+ previewOther: "其他登录方式",
819
+ hint: "登录页上出现哪些登录入口。第三方的连接信息在各自的「设置」里填写,加密保存。",
820
+ groupLocal: "本地账号",
821
+ groupThird: "第三方",
822
+ password: "账号密码",
823
+ passwordHint: "始终可用",
824
+ smsHint: "用手机号和短信验证码登录",
825
+ state: {
826
+ notInstalled: "未安装",
827
+ unconfigured: "未配置",
828
+ configured: "已配置"
829
+ },
830
+ settings: "设置",
831
+ addOidc: "添加 OIDC",
832
+ needPackage: "需先在服务器安装 {pkg} 包",
833
+ codeRegistered: "由代码注册,不在此处配置",
562
834
  linkByAccount: "按账号自动关联",
835
+ linkByAccountHint: "账号相同的人首次登录时自动绑定本地账号,打开时会二次确认",
563
836
  linkByAccountConfirmTitle: "打开按账号自动关联?",
564
- linkByAccountConfirm: "{name}账号与本地账号完全相同的人,首次从{name}登录时会自动绑定到该本地账号并直接登录;超级管理员、已停用账号、已绑过{name}的账号除外。请先确认两边账号是同一批人,比如本地账号就是从{name}同步来的。"
837
+ linkByAccountConfirm: "{name}账号与本地账号完全相同的人,首次从{name}登录时会自动绑定到该本地账号并直接登录;超级管理员、已停用账号、已绑过{name}的账号除外。请先确认两边账号是同一批人,比如本地账号就是从{name}同步来的。",
838
+ field: {
839
+ displayName: "显示名",
840
+ code: "标识",
841
+ corpId: "企业 ID",
842
+ agentId: "应用 AgentId",
843
+ corpSecret: "应用 Secret",
844
+ appKey: "AppKey",
845
+ appSecret: "AppSecret",
846
+ clientId: "Client ID",
847
+ clientSecret: "Client Secret",
848
+ appId: "AppId",
849
+ authority: "Authority",
850
+ scopes: "Scopes",
851
+ usePkce: "使用 PKCE"
852
+ },
853
+ sheet: {
854
+ title: "{name} 登录设置",
855
+ addOidc: "添加 OIDC",
856
+ oidcHint: "标准 OpenID Connect 身份源",
857
+ secretNote: "密钥加密保存,保存后不显示明文",
858
+ namePlaceholder: "如 公司 SSO",
859
+ codePlaceholder: "小写字母、数字、连字符",
860
+ codeFixed: "保存后不可改",
861
+ codeTaken: "该标识已被使用",
862
+ secretPlaceholder: "粘贴密钥",
863
+ secretSet: "已配置",
864
+ keepSecret: "留空则不修改 · 当前 {now}",
865
+ secretRetype: "请重新输入密钥",
866
+ endpointMoved: "已修改 Authority:为防止把已保存的密钥发到新地址,请重新输入 Client Secret。",
867
+ ephemeralKey: "数据保护主密钥是临时密钥,暂时不能保存密钥。请先配置 SmartAdmin:Security:DataProtection:Key 并重启。",
868
+ ephemeralTitle: "主密钥是临时密钥,暂时不能保存",
869
+ callback: "回调地址",
870
+ callbackHint: "请把回调地址填到{name}的后台。",
871
+ idp: "身份源",
872
+ callbackMissing: "生产环境未配置 SmartAdmin:ExternalAuth:CallbackBaseUrl,无法算出回调地址。",
873
+ copyFailed: "复制失败,请手动选取",
874
+ test: "测试连接",
875
+ testing: "正在测试…",
876
+ saved: "已保存",
877
+ clear: "清除配置",
878
+ clearTitle: "清除「{name}」的配置?",
879
+ clearConfirm: "清除后该登录方式不可用,登录页不再显示它。用户已绑定的{name}账号不会被删除。",
880
+ cleared: "已清除"
881
+ },
882
+ check: {
883
+ reachable: "连通性",
884
+ credentials: "凭据",
885
+ agent: "AgentId",
886
+ appId: "AppId",
887
+ secret: "AppSecret",
888
+ discovery: "发现文档",
889
+ issuer: "issuer 一致性",
890
+ endpoints: "授权与令牌端点",
891
+ clientSecret: "Client Secret",
892
+ timeout: "超时",
893
+ error: "出错"
894
+ },
895
+ checkStatus: {
896
+ ok: "通过",
897
+ failed: "失败",
898
+ skipped: "未验证"
899
+ }
565
900
  },
566
901
  base: {
567
902
  siteTitle: "站点标题",
568
- logo: "Logo 地址",
569
- siteSubtitle: "登录副标题",
903
+ siteSubtitle: "副标题",
570
904
  copyright: "版权信息",
571
905
  copyrightUrl: "版权链接"
572
906
  },
907
+ login: {
908
+ language: "登录页语言",
909
+ localeZh: "中文",
910
+ localeEn: "English",
911
+ showFeatures: "显示亮点",
912
+ headline: "主标题",
913
+ headlinePlaceholder: "留空使用内置主标题",
914
+ highlight: "强调词",
915
+ highlightPlaceholder: "主标题中需要强调色的词",
916
+ highlightHint: "主标题里用强调色显示的词",
917
+ features: "亮点",
918
+ featuresPlaceholder: "一行一条,最多 5 条",
919
+ featuresHint: "一行一条,最多 5 条",
920
+ highlightMissing: "主标题里没有这个词,会按普通标题显示",
921
+ tooManyFeatures: "最多只能配置 5 条亮点"
922
+ },
573
923
  security: {
924
+ desc: "登录保护、密码规则、会话时长和请求限流,保存后立即生效。",
925
+ preview: "用户会遇到的规则",
926
+ groupLogin: "登录保护",
927
+ groupSession: "会话",
928
+ groupRate: "请求限流",
929
+ zeroNoLock: "0 表示不锁定",
930
+ zeroNever: "0 表示永不过期",
931
+ zeroOff: "0 表示不限制",
932
+ unit: { times: "次", minutes: "分钟", days: "天", seconds: "秒", chars: "位" },
933
+ tryLabel: "试填密码",
934
+ tryMin: "至少 {n} 位",
935
+ tryPass: "可以使用",
936
+ tryFail: "不符合要求",
574
937
  loginLock: {
575
- title: "登录失败锁定",
576
- maxFailCount: "锁定阈值(次)",
577
- lockMinutes: "锁定时长(分钟)"
938
+ maxFailCount: "连续输错锁定",
939
+ lockMinutes: "锁定时长"
578
940
  },
579
941
  password: {
580
- title: "密码复杂度",
942
+ title: "密码",
581
943
  minLength: "最小长度",
944
+ mustContain: "必须包含",
945
+ chipUpper: "A-Z",
946
+ chipLower: "a-z",
947
+ chipDigit: "0-9",
948
+ // @ 在 vue-i18n 里是链接语法,要用字面量插值转义
949
+ chipSpecial: "#{'@'}!",
582
950
  requireUpper: "须含大写字母",
583
951
  requireLower: "须含小写字母",
584
952
  requireDigit: "须含数字",
585
953
  requireSpecial: "须含特殊字符",
586
- expireDays: "密码有效天数(0=永不过期)",
587
- historyCount: "密码历史防重用条数(0=关闭)"
954
+ expireDays: "有效期",
955
+ historyCount: "不能与最近几次重复",
956
+ forceChangeOnFirstLogin: "首次登录须改密码",
957
+ forceChangeOnFirstLoginHint: "只影响之后新建的账号;重置密码仍须改"
588
958
  },
589
959
  session: {
590
- title: "会话时长",
591
- accessMinutes: "访问令牌(分钟)",
592
- refreshMinutes: "刷新令牌(分钟)"
960
+ accessMinutes: "访问令牌有效期",
961
+ refreshMinutes: "最长免登录"
593
962
  },
594
963
  captcha: {
595
- title: "登录验证码",
596
- enabled: "启用登录验证码",
597
- type: "验证码类型",
598
- types: { char: "字符", path: "描边(更抗爬)", math: "算术" }
964
+ enabled: "登录验证码",
965
+ type: "类型",
966
+ types: { char: "字符", path: "描边", math: "算术" }
599
967
  },
600
968
  totp: {
601
- title: "动态口令(TOTP)",
602
- enabled: "启用动态口令",
603
- requireForSuperAdmin: "超管必须动态口令",
969
+ enabled: "动态口令(TOTP)",
970
+ requireForSuperAdmin: "超级管理员必须使用",
604
971
  hint: "与登录验证码一样可即时开关。开启后,用户管理里的「强制动态口令」才会在登录时生效;用户可在账号安全中自助绑定。"
605
972
  },
606
973
  sms: {
607
- title: "短信验证",
608
974
  hint: "二次验证仅对绑定了手机号的用户生效;开发环境验证码打印在后端日志,生产需注册真实短信通道(ISmsSender)。"
609
975
  },
610
- mfa: { enabled: "启用短信二次验证" },
611
- smsLogin: { enabled: "启用短信验证码登录" },
976
+ mfa: { enabled: "短信二次验证" },
977
+ smsLogin: { enabled: "短信验证码登录" },
612
978
  rateLimit: {
613
- title: "请求限流",
614
- enabled: "启用请求限流",
615
- windowSeconds: "限流窗口(秒)",
616
- permitPerWindow: "全局每窗口请求数",
617
- authPermitPerWindow: "认证端点每窗口请求数"
979
+ enabled: "启用",
980
+ windowSeconds: "统计窗口",
981
+ permitPerWindow: "每个来源最多",
982
+ authPermitPerWindow: "登录接口最多"
618
983
  },
619
984
  highSens: {
620
- title: "高敏感权限(自定义追加)",
621
- hint: "内核默认高敏权限不可删除;下方仅可追加/删除消费者自定义权限码。写操作需近期再认证。",
622
985
  code: "权限码",
623
986
  remark: "备注",
624
- codePh: "如 POST:/api/v1/biz/order",
625
- remarkPh: "可选备注",
987
+ codePh: "如 POST:/api/v1/biz/order/refund",
988
+ remarkPh: "备注(可选)",
626
989
  codeRequired: "请填写权限码"
627
990
  }
628
991
  },
992
+ sensitive: {
993
+ desc: "执行这些接口前,要求用户再次验证身份。内置的不能删,可以追加自己的业务接口;增删即时生效。",
994
+ preview: "用户执行时看到的验证框",
995
+ previewTip: "点左侧任一行切换",
996
+ previewDoing: "你正在执行",
997
+ method: "方法",
998
+ path: "接口",
999
+ builtin: "内置",
1000
+ added: "已添加,立即生效",
1001
+ removed: "已删除,立即生效",
1002
+ removeConfirm: "删除「{code}」?删除后执行它不再需要验证身份。"
1003
+ },
629
1004
  upload: {
630
- title: "上传约束",
631
- maxSizeMb: "单文件上限(MB)",
632
- allowedExtensions: "允许的后缀",
633
- extPlaceholder: "输入后缀回车,如 .jpg",
634
- extTip: "含点、小写;留空则回退到服务端默认"
1005
+ desc: "全站上传文件的大小和格式限制,保存后立即生效。",
1006
+ preview: "实时预览 · 用户看到的上传框",
1007
+ previewDrop: "点击或拖拽文件到这里",
1008
+ previewLimit: "支持 {exts},单个文件不超过 {mb} MB",
1009
+ previewDefault: "服务端默认格式",
1010
+ groupLimit: "限制",
1011
+ maxSizeMb: "单个文件上限",
1012
+ allowedExtensions: "允许的格式",
1013
+ extTip: "留空则使用服务端默认",
1014
+ quickAdd: "快速添加",
1015
+ preset: { images: "图片", docs: "文档", archives: "压缩包", clear: "清空" },
1016
+ fileOk: "可以上传",
1017
+ fileBadExt: "不支持 {ext}",
1018
+ fileTooBig: "超过 {mb} MB",
1019
+ fileDefault: "按服务端默认格式判断"
635
1020
  }
636
1021
  },
637
1022
  // 字典管理(主从:左类型 / 右字典项)
638
1023
  dict: {
639
1024
  title: "字典管理",
1025
+ typeTitle: "字典类型",
640
1026
  code: "类型编码",
641
1027
  name: "类型名称",
642
1028
  searchName: "搜索名称",
@@ -650,7 +1036,7 @@ const e = {
650
1036
  typeSaved: "保存成功",
651
1037
  typeDeleted: "已删除",
652
1038
  itemsOf: "「{name}」的字典项",
653
- selectTypeHint: "请选择左侧字典类型以管理其字典项",
1039
+ selectTypeHint: "请选择上方字典类型以管理其字典项",
654
1040
  itemLabel: "显示文本",
655
1041
  itemValue: "值",
656
1042
  itemLabelRequired: "请输入显示文本",
@@ -660,7 +1046,10 @@ const e = {
660
1046
  editItemTitle: "编辑字典项",
661
1047
  itemDeleteConfirm: "确定删除字典项「{label}」?",
662
1048
  itemSaved: "保存成功",
663
- itemDeleted: "已删除"
1049
+ itemDeleted: "已删除",
1050
+ codeImmutable: "编码创建后不可修改",
1051
+ itemsSheetTitle: "字典项",
1052
+ selectItem: "选择"
664
1053
  },
665
1054
  // 机构管理(树表 + 上级机构树选)
666
1055
  org: {
@@ -675,6 +1064,7 @@ const e = {
675
1064
  parentPlaceholder: "选择上级机构(留空=顶级)",
676
1065
  nameRequired: "请输入机构名称",
677
1066
  codePlaceholder: "不填则自动生成",
1067
+ codeImmutableHint: "编码创建后不可修改",
678
1068
  addChild: "新增下级",
679
1069
  addTitle: "新增机构",
680
1070
  editTitle: "编辑机构",
@@ -817,6 +1207,7 @@ const e = {
817
1207
  name: "岗位名称",
818
1208
  sort: "排序",
819
1209
  codePlaceholder: "不填则自动生成",
1210
+ codeImmutableHint: "编码创建后不可修改",
820
1211
  nameRequired: "请输入岗位名称",
821
1212
  addTitle: "新增岗位",
822
1213
  editTitle: "编辑岗位",
@@ -848,10 +1239,17 @@ const e = {
848
1239
  deleted: "已删除",
849
1240
  grantMenus: "授权菜单",
850
1241
  grantSaved: "授权已保存",
851
- catalog: "一级目录",
852
- menuCol: "菜单",
853
- buttonsCol: "按钮授权",
854
1242
  apiOnlyRow: "接口权限(无页面)",
1243
+ grantSearch: "搜索目录、页面或按钮",
1244
+ grantSearchClear: "清除搜索",
1245
+ grantSelectAll: "全选「{name}」",
1246
+ noButtons: "无按钮权限",
1247
+ grantNoMatch: "没有匹配的权限",
1248
+ grantNoMatchElsewhere: "其他应用中有 {count} 个目录匹配,请切换上方应用查看",
1249
+ grantNoMenus: "该应用下暂无菜单",
1250
+ grantSummary: "已授权 {on} / {total} 项",
1251
+ grantSummarySplit: "页面 {pages} · 按钮 {buttons}",
1252
+ grantUnsaved: "有未保存的修改",
855
1253
  dataScope: "数据范围",
856
1254
  scopeType: "范围类型",
857
1255
  customOrgs: "自定义机构",
@@ -1035,6 +1433,7 @@ const e = {
1035
1433
  killed: "已请求终止",
1036
1434
  clear: "清空记录",
1037
1435
  clearTitle: "清空执行记录",
1436
+ clearRange: "范围",
1038
1437
  clearAll: "全部记录",
1039
1438
  beforeDays: "{n} 天以前的记录",
1040
1439
  clearHint: "运行中的记录一律保留;此为硬删除,不可恢复。",
@@ -1123,6 +1522,7 @@ const e = {
1123
1522
  enabled: "启用",
1124
1523
  disabled: "已停用",
1125
1524
  pendingConfigTip: "尚未配置 API Key,保存前请填写",
1525
+ pendingConfig: "待配置",
1126
1526
  provider: {
1127
1527
  code: "厂商编码",
1128
1528
  codePlaceholder: "唯一编码,创建后不可变",
@@ -1164,7 +1564,8 @@ const e = {
1164
1564
  defaultTag: "默认",
1165
1565
  atLeastOne: "至少保留一个模型",
1166
1566
  duplicateName: "模型名重复",
1167
- noDefault: "未设置默认模型"
1567
+ noDefault: "未设置默认模型",
1568
+ defaultUniqueHint: "默认模型全库唯一:在此设置默认并保存后,其它厂商原有的默认模型会被取消。"
1168
1569
  },
1169
1570
  test: {
1170
1571
  action: "测试连接",
@@ -1336,7 +1737,14 @@ const e = {
1336
1737
  csrfInvalid: "请求校验失败,请刷新页面后重试",
1337
1738
  reauthRequired: "此操作需要再次验证身份",
1338
1739
  mfaBindPasswordRequired: "绑定动态口令前请先验证当前密码",
1339
- apiKeyInvalid: "API Key 缺失或无效"
1740
+ apiKeyInvalid: "API Key 缺失或无效",
1741
+ externalAuthTypeNotFound: "登录方式类型不存在,或对应的扩展包尚未安装",
1742
+ externalAuthCodeExists: "该标识已被占用",
1743
+ externalAuthCodeInvalid: "标识格式不合法,或与内置登录方式的标识冲突",
1744
+ externalAuthFieldMissing: "请填写必填项:{field}",
1745
+ externalAuthDataProtectionKeyMissing: "尚未配置数据保护主密钥,无法安全保存第三方密钥。请先配置 SmartAdmin:Security:DataProtection:Key",
1746
+ externalAuthProviderNotFound: "该登录方式尚未配置",
1747
+ externalAuthEndpointBlocked: "该地址被出站访问围栏拒绝,请检查协议、主机与网段"
1340
1748
  },
1341
1749
  perm: {
1342
1750
  denied: "无权限访问",
@@ -1505,7 +1913,8 @@ const e = {
1505
1913
  fallbackLink: "没有自动打开?点此手动打开",
1506
1914
  copyToken: "复制我的接口令牌",
1507
1915
  copyTokenHint: "在新标签页里点右上角 Authentication → Bearer,粘贴这里复制的令牌",
1508
- tokenCopied: "已复制"
1916
+ tokenCopied: "已复制",
1917
+ tokenWarn: "令牌是当前登录会话的凭据,等同于你的身份,请勿分享给他人。"
1509
1918
  },
1510
1919
  // 用户导入导出:列标题 + 文件名(与 UserImportProfile / UserExportProfile 的列一一对应)
1511
1920
  userExport: {