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
@@ -0,0 +1,214 @@
1
+ import { defineComponent as R, ref as c, computed as T, onMounted as U, openBlock as p, createBlock as V, unref as e, withCtx as r, createElementVNode as i, normalizeClass as x, toDisplayString as n, createVNode as v, createElementBlock as _, Fragment as q, renderList as F, withKeys as A, withModifiers as z, createTextVNode as y, withDirectives as H, createCommentVNode as O } from "vue";
2
+ import { useMessage as j, NSpin as G, NPopconfirm as J, NButton as $, NInput as D } from "naive-ui";
3
+ import { useI18n as Q } from "vue-i18n";
4
+ import W from "../../../../components/AppIcon.vue.js";
5
+ import { highSensApi as N } from "../../../../api/index.js";
6
+ import { translateError as M } from "../../../../utils/error.js";
7
+ import { vFlash as X } from "../flash.js";
8
+ import { useConfigLayout as Y } from "../layoutMode.js";
9
+ import Z from "./SectionLayout.vue.js";
10
+ const ee = {
11
+ class: "th",
12
+ "aria-hidden": "true"
13
+ }, te = { class: "rm" }, se = ["aria-label"], ie = ["aria-selected", "onClick", "onKeydown"], ae = { class: "pt" }, ne = ["title"], oe = { class: "narsub" }, le = { class: "remark rm" }, re = {
14
+ key: 0,
15
+ class: "badge"
16
+ }, ce = {
17
+ key: 0,
18
+ class: "dlg",
19
+ "aria-hidden": "true"
20
+ }, ue = { class: "lock" }, de = { class: "hint" }, pe = { class: "in" }, ve = { class: "acts" }, me = { class: "p" }, xe = /* @__PURE__ */ R({
21
+ __name: "SensitiveSection",
22
+ setup(fe) {
23
+ const { t } = Q(), u = j(), { ctl: k, nar: E, side: I } = Y(), w = c(!1), d = c(!1), m = c([]), l = c(0), f = c(""), h = c(""), b = c(null);
24
+ function P(o, s = {}) {
25
+ const a = o.indexOf(":");
26
+ return a > 0 ? { code: o, method: o.slice(0, a).toUpperCase(), path: o.slice(a + 1), ...s } : { code: o, method: "", path: o, ...s };
27
+ }
28
+ async function C() {
29
+ w.value = !0;
30
+ try {
31
+ const o = await N.list();
32
+ m.value = [
33
+ ...(o.defaults ?? []).map((s) => P(s)),
34
+ ...(o.customs ?? []).flatMap(
35
+ (s) => s.id == null ? [] : [P(s.permissionCode ?? "", { id: Number(s.id), remark: s.remark })]
36
+ )
37
+ ], l.value = Math.min(l.value, Math.max(m.value.length - 1, 0));
38
+ } catch (o) {
39
+ u.error(M(o));
40
+ } finally {
41
+ w.value = !1;
42
+ }
43
+ }
44
+ async function K() {
45
+ var s;
46
+ const o = f.value.trim();
47
+ if (!o) {
48
+ u.warning(t("config.security.highSens.codeRequired"));
49
+ return;
50
+ }
51
+ d.value = !0;
52
+ try {
53
+ await N.add({ permissionCode: o, remark: h.value.trim() || void 0 }), u.success(t("config.sensitive.added")), f.value = "", h.value = "", await C(), l.value = m.value.findIndex((a) => a.code === o), (s = b.value) == null || s.scrollTo({ top: b.value.scrollHeight });
54
+ } catch (a) {
55
+ u.error(M(a));
56
+ } finally {
57
+ d.value = !1;
58
+ }
59
+ }
60
+ async function L(o) {
61
+ d.value = !0;
62
+ try {
63
+ await N.remove(o), u.success(t("config.sensitive.removed")), await C();
64
+ } catch (s) {
65
+ u.error(M(s));
66
+ } finally {
67
+ d.value = !1;
68
+ }
69
+ }
70
+ const S = T(() => m.value[l.value]);
71
+ return U(() => void C()), (o, s) => (p(), V(Z, {
72
+ title: e(t)("config.tab.sensitive"),
73
+ desc: e(t)("config.sensitive.desc"),
74
+ "preview-title": e(t)("config.sensitive.preview"),
75
+ "fixed-form": ""
76
+ }, {
77
+ "preview-extra": r(() => [
78
+ i("span", null, n(e(t)("config.sensitive.previewTip")), 1)
79
+ ]),
80
+ preview: r(() => [
81
+ S.value ? H((p(), _("div", ce, [
82
+ i("div", ue, [
83
+ v(W, {
84
+ icon: "ph:lock-key",
85
+ size: 24
86
+ })
87
+ ]),
88
+ i("b", null, n(e(t)("reauth.title")), 1),
89
+ i("p", null, [
90
+ y(n(e(t)("config.sensitive.previewDoing")) + " ", 1),
91
+ i("code", null, n(S.value.code), 1)
92
+ ]),
93
+ i("p", de, n(e(t)("reauth.hint")), 1),
94
+ i("i", pe, n(e(t)("reauth.passwordPlaceholder")), 1),
95
+ i("div", ve, [
96
+ i("span", null, n(e(t)("common.cancel")), 1),
97
+ i("span", me, n(e(t)("reauth.confirm")), 1)
98
+ ])
99
+ ])), [
100
+ [e(X), S.value.code]
101
+ ]) : O("", !0)
102
+ ]),
103
+ default: r(() => [
104
+ i("div", {
105
+ class: x(["tbl", { nar: e(E), side: e(I) }]),
106
+ "data-testid": "sensitive-table"
107
+ }, [
108
+ i("div", ee, [
109
+ i("span", null, n(e(t)("config.sensitive.method")), 1),
110
+ i("span", null, n(e(t)("config.sensitive.path")), 1),
111
+ i("span", te, n(e(t)("config.security.highSens.remark")), 1),
112
+ s[3] || (s[3] = i("span", null, null, -1))
113
+ ]),
114
+ v(e(G), {
115
+ show: w.value,
116
+ class: "spin"
117
+ }, {
118
+ default: r(() => [
119
+ i("ul", {
120
+ ref_key: "list",
121
+ ref: b,
122
+ class: "tb",
123
+ role: "listbox",
124
+ "aria-label": e(t)("config.tab.sensitive")
125
+ }, [
126
+ (p(!0), _(q, null, F(m.value, (a, g) => (p(), _("li", {
127
+ key: a.code,
128
+ role: "option",
129
+ "aria-selected": g === l.value,
130
+ class: x(["tr", { sel: g === l.value }]),
131
+ tabindex: "0",
132
+ onClick: (B) => l.value = g,
133
+ onKeydown: A(z((B) => l.value = g, ["prevent"]), ["enter", "space"])
134
+ }, [
135
+ i("span", {
136
+ class: x(["m", a.method])
137
+ }, n(a.method || "—"), 3),
138
+ i("span", ae, [
139
+ i("code", {
140
+ title: a.path
141
+ }, n(a.path), 9, ne),
142
+ i("small", oe, n(a.remark || ""), 1)
143
+ ]),
144
+ i("span", le, n(a.remark || "—"), 1),
145
+ a.id == null ? (p(), _("span", re, n(e(t)("config.sensitive.builtin")), 1)) : (p(), V(e(J), {
146
+ key: 1,
147
+ onPositiveClick: (B) => L(a.id)
148
+ }, {
149
+ trigger: r(() => [
150
+ v(e($), {
151
+ size: "tiny",
152
+ quaternary: "",
153
+ type: "error",
154
+ disabled: d.value,
155
+ onClick: s[0] || (s[0] = z(() => {
156
+ }, ["stop"]))
157
+ }, {
158
+ default: r(() => [
159
+ y(n(e(t)("common.delete")), 1)
160
+ ]),
161
+ _: 1
162
+ }, 8, ["disabled"])
163
+ ]),
164
+ default: r(() => [
165
+ y(" " + n(e(t)("config.sensitive.removeConfirm", { code: a.code })), 1)
166
+ ]),
167
+ _: 2
168
+ }, 1032, ["onPositiveClick"]))
169
+ ], 42, ie))), 128))
170
+ ], 8, se)
171
+ ]),
172
+ _: 1
173
+ }, 8, ["show"]),
174
+ i("form", {
175
+ class: "add",
176
+ onSubmit: z(K, ["prevent"])
177
+ }, [
178
+ v(e(D), {
179
+ value: f.value,
180
+ "onUpdate:value": s[1] || (s[1] = (a) => f.value = a),
181
+ size: e(k),
182
+ placeholder: e(t)("config.security.highSens.codePh"),
183
+ "input-props": { "aria-label": e(t)("config.security.highSens.code") }
184
+ }, null, 8, ["value", "size", "placeholder", "input-props"]),
185
+ v(e(D), {
186
+ value: h.value,
187
+ "onUpdate:value": s[2] || (s[2] = (a) => h.value = a),
188
+ size: e(k),
189
+ class: "rmi",
190
+ placeholder: e(t)("config.security.highSens.remarkPh"),
191
+ "input-props": { "aria-label": e(t)("config.security.highSens.remark") }
192
+ }, null, 8, ["value", "size", "placeholder", "input-props"]),
193
+ v(e($), {
194
+ type: "primary",
195
+ size: e(k),
196
+ "attr-type": "submit",
197
+ loading: d.value
198
+ }, {
199
+ default: r(() => [
200
+ y(n(e(t)("common.add")), 1)
201
+ ]),
202
+ _: 1
203
+ }, 8, ["size", "loading"])
204
+ ], 32)
205
+ ], 2)
206
+ ]),
207
+ _: 1
208
+ }, 8, ["title", "desc", "preview-title"]));
209
+ }
210
+ });
211
+ export {
212
+ xe as default
213
+ };
214
+ //# sourceMappingURL=SensitiveSection2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SensitiveSection2.vue.js","sources":["../../../../../src/views/system/config/components/SensitiveSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 敏感操作:执行这些接口前要求用户再次验证身份(高敏感权限)。内核内置的只读列出,不能删;\n// 消费者可以追加自己的业务接口。增删直接调 highSensApi 即时生效,不走底部保存条\n// (写路径本身要求近期再认证,由后端强制)。\n// 预览是用户执行选中那一行时弹出的验证框,文案与 ReauthModal 一致。\nimport { computed, onMounted, ref } from 'vue'\nimport { NButton, NInput, NPopconfirm, NSpin, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\nimport { highSensApi } from '#/api'\nimport { translateError } from '#/utils/error'\nimport { vFlash } from '../flash'\nimport { useConfigLayout } from '../layoutMode'\nimport SectionLayout from './SectionLayout.vue'\n\ninterface Row {\n code: string\n method: string\n path: string\n remark?: string | null\n /** 自定义项才有 id,可删除 */\n id?: number\n}\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst { ctl, nar, side } = useConfigLayout()\nconst loading = ref(false)\nconst saving = ref(false)\nconst rows = ref<Row[]>([])\nconst selected = ref(0)\nconst newCode = ref('')\nconst newRemark = ref('')\nconst list = ref<HTMLElement | null>(null)\n\n/** 权限码是规范化路由 {METHOD}:/{route},拆成方法与路径分开显示 */\nfunction toRow(code: string, extra: Partial<Row> = {}): Row {\n const i = code.indexOf(':')\n return i > 0\n ? { code, method: code.slice(0, i).toUpperCase(), path: code.slice(i + 1), ...extra }\n : { code, method: '', path: code, ...extra }\n}\n\nasync function load() {\n loading.value = true\n try {\n const data = await highSensApi.list()\n rows.value = [\n ...(data.defaults ?? []).map(code => toRow(code)),\n ...(data.customs ?? []).flatMap(item =>\n item.id == null\n ? []\n : [toRow(item.permissionCode ?? '', { id: Number(item.id), remark: item.remark })],\n ),\n ]\n selected.value = Math.min(selected.value, Math.max(rows.value.length - 1, 0))\n } catch (e) {\n message.error(translateError(e))\n } finally {\n loading.value = false\n }\n}\n\nasync function add() {\n const code = newCode.value.trim()\n if (!code) {\n message.warning(t('config.security.highSens.codeRequired'))\n return\n }\n saving.value = true\n try {\n await highSensApi.add({ permissionCode: code, remark: newRemark.value.trim() || undefined })\n message.success(t('config.sensitive.added'))\n newCode.value = ''\n newRemark.value = ''\n await load()\n selected.value = rows.value.findIndex(r => r.code === code)\n list.value?.scrollTo({ top: list.value.scrollHeight })\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n\nasync function remove(id: number) {\n saving.value = true\n try {\n await highSensApi.remove(id)\n message.success(t('config.sensitive.removed'))\n await load()\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n\nconst current = computed(() => rows.value[selected.value])\n\nonMounted(() => void load())\n</script>\n\n<template>\n <SectionLayout\n :title=\"t('config.tab.sensitive')\"\n :desc=\"t('config.sensitive.desc')\"\n :preview-title=\"t('config.sensitive.preview')\"\n fixed-form\n >\n <div :class=\"['tbl', { nar, side }]\" data-testid=\"sensitive-table\">\n <div class=\"th\" aria-hidden=\"true\">\n <span>{{ t('config.sensitive.method') }}</span>\n <span>{{ t('config.sensitive.path') }}</span>\n <span class=\"rm\">{{ t('config.security.highSens.remark') }}</span>\n <span />\n </div>\n <n-spin :show=\"loading\" class=\"spin\">\n <ul ref=\"list\" class=\"tb\" role=\"listbox\" :aria-label=\"t('config.tab.sensitive')\">\n <li\n v-for=\"(r, i) in rows\"\n :key=\"r.code\"\n role=\"option\"\n :aria-selected=\"i === selected\"\n :class=\"['tr', { sel: i === selected }]\"\n tabindex=\"0\"\n @click=\"selected = i\"\n @keydown.enter.space.prevent=\"selected = i\"\n >\n <span :class=\"['m', r.method]\">{{ r.method || '—' }}</span>\n <span class=\"pt\">\n <code :title=\"r.path\">{{ r.path }}</code>\n <small class=\"narsub\">{{ r.remark || '' }}</small>\n </span>\n <span class=\"remark rm\">{{ r.remark || '—' }}</span>\n <span v-if=\"r.id == null\" class=\"badge\">{{ t('config.sensitive.builtin') }}</span>\n <n-popconfirm v-else @positive-click=\"remove(r.id)\">\n <template #trigger>\n <n-button size=\"tiny\" quaternary type=\"error\" :disabled=\"saving\" @click.stop>\n {{ t('common.delete') }}\n </n-button>\n </template>\n {{ t('config.sensitive.removeConfirm', { code: r.code }) }}\n </n-popconfirm>\n </li>\n </ul>\n </n-spin>\n <form class=\"add\" @submit.prevent=\"add\">\n <n-input\n v-model:value=\"newCode\"\n :size=\"ctl\"\n :placeholder=\"t('config.security.highSens.codePh')\"\n :input-props=\"{ 'aria-label': t('config.security.highSens.code') }\"\n />\n <n-input\n v-model:value=\"newRemark\"\n :size=\"ctl\"\n class=\"rmi\"\n :placeholder=\"t('config.security.highSens.remarkPh')\"\n :input-props=\"{ 'aria-label': t('config.security.highSens.remark') }\"\n />\n <n-button type=\"primary\" :size=\"ctl\" attr-type=\"submit\" :loading=\"saving\">\n {{ t('common.add') }}\n </n-button>\n </form>\n </div>\n\n <template #preview-extra>\n <span>{{ t('config.sensitive.previewTip') }}</span>\n </template>\n <template #preview>\n <div v-if=\"current\" v-flash=\"current.code\" class=\"dlg\" aria-hidden=\"true\">\n <div class=\"lock\"><AppIcon icon=\"ph:lock-key\" :size=\"24\" /></div>\n <b>{{ t('reauth.title') }}</b>\n <p>\n {{ t('config.sensitive.previewDoing') }}\n <code>{{ current.code }}</code>\n </p>\n <p class=\"hint\">{{ t('reauth.hint') }}</p>\n <i class=\"in\">{{ t('reauth.passwordPlaceholder') }}</i>\n <div class=\"acts\">\n <span>{{ t('common.cancel') }}</span>\n <span class=\"p\">{{ t('reauth.confirm') }}</span>\n </div>\n </div>\n </template>\n </SectionLayout>\n</template>\n\n<style scoped>\n.tbl {\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n border-radius: var(--radius-lg);\n background: var(--fill);\n}\n/* 中档 / 窄档设置列不定高,列表卡片给一个固定高度,行多了在卡片里滚 */\n.tbl:not(.side) {\n flex: none;\n height: 440px;\n}\n.th,\n.tr {\n display: grid;\n grid-template-columns: 70px minmax(0, 1fr) 120px 64px;\n gap: 10px;\n align-items: center;\n min-height: 38px;\n padding: 0 14px;\n}\n.th {\n flex: none;\n font-size: 13px;\n color: var(--text-2);\n border-bottom: 1px solid var(--separator);\n}\n.spin {\n flex: 1 1 0;\n min-height: 0;\n}\n.spin :deep(.n-spin-content) {\n height: 100%;\n}\n.tb {\n height: 100%;\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n}\n.tr {\n position: relative;\n font-size: 14px;\n cursor: pointer;\n}\n.tr + .tr::before {\n content: '';\n position: absolute;\n top: 0;\n left: 14px;\n right: 0;\n border-top: 1px solid var(--separator);\n}\n.tr:hover {\n background: var(--hover);\n}\n.tr.sel {\n background: var(--sel-bg);\n box-shadow: inset 0 0 0 1px var(--sel-ring);\n}\n.tr:focus-visible {\n outline: 2px solid var(--signal);\n outline-offset: -2px;\n}\n.m {\n font-family: var(--font-mono);\n font-size: 12.5px;\n font-weight: 600;\n color: var(--text-2);\n}\n.m.DELETE {\n color: var(--err);\n}\n.m.POST {\n color: var(--ok);\n}\n.m.PUT {\n color: var(--warn);\n}\n.pt {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\ncode {\n overflow: hidden;\n font-family: var(--font-mono);\n font-size: 13px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.narsub {\n display: none;\n font-size: 13px;\n color: var(--text-3);\n}\n.remark {\n overflow: hidden;\n font-size: 13px;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--text-3);\n}\n.badge {\n padding: 1px 8px;\n border-radius: 999px;\n background: var(--glass-strong);\n font-size: 12px;\n color: var(--text-2);\n text-align: center;\n}\n/* 窄档:去掉备注列,备注挪到路径下面一行 */\n.tbl.nar .th,\n.tbl.nar .tr {\n grid-template-columns: 56px minmax(0, 1fr) auto;\n gap: 8px;\n padding: 0 10px;\n}\n.tbl.nar .rm {\n display: none;\n}\n.tbl.nar .tr {\n min-height: 44px;\n}\n.tbl.nar .narsub {\n display: block;\n}\n.add {\n display: flex;\n flex: none;\n gap: 8px;\n padding: 10px 14px;\n border-top: 1px solid var(--separator);\n}\n.add :deep(.n-input) {\n flex: 1;\n min-width: 0;\n}\n.add :deep(.n-input.rmi) {\n flex: 0 1 150px;\n}\n.tbl.nar .add {\n flex-wrap: wrap;\n}\n.tbl.nar .add :deep(.n-input),\n.tbl.nar .add :deep(.n-input.rmi) {\n flex: 1 1 100%;\n}\n/* 预览:ReauthModal 的样子 */\n.dlg {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: min(100%, 360px);\n margin: 0 auto;\n padding: 22px 24px 18px;\n border-radius: var(--radius-lg);\n background: var(--color-bg-elevated);\n box-shadow: var(--shadow-2);\n text-align: left;\n font-size: 14px;\n}\n.lock {\n display: grid;\n place-items: center;\n width: 44px;\n height: 44px;\n border-radius: var(--radius-lg);\n color: var(--sel-fg);\n background: var(--sel-bg);\n}\n.dlg b {\n font-size: 16px;\n font-weight: 600;\n}\n.dlg p {\n margin: 0;\n line-height: 1.5;\n}\n.dlg p code {\n display: block;\n margin-top: 2px;\n font-size: 13px;\n white-space: normal;\n word-break: break-all;\n color: var(--text-1);\n}\n.dlg .hint {\n font-size: 13px;\n color: var(--text-3);\n}\n.in {\n display: block;\n height: 34px;\n padding: 0 12px;\n border: 1px solid var(--border);\n border-radius: 9px;\n background: var(--fill);\n font-style: normal;\n font-size: 13px;\n line-height: 32px;\n color: var(--text-3);\n}\n.acts {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 6px;\n}\n.acts span {\n padding: 4px 14px;\n border-radius: 9px;\n background: var(--fill);\n font-size: 13px;\n}\n.acts .p {\n color: var(--on-acc);\n background: var(--acc-solid);\n}\n</style>\n"],"names":["useI18n","message","useMessage","ctl","nar","side","useConfigLayout","loading","ref","saving","rows","selected","newCode","newRemark","list","toRow","code","extra","i","load","data","highSensApi","item","e","translateError","add","r","_a","remove","id","current","computed","onMounted","_createBlock","SectionLayout","_unref","_createElementVNode","_withDirectives","_openBlock","_createElementBlock","_hoisted_10","_hoisted_11","_createVNode","AppIcon","_createTextVNode","_toDisplayString","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","vFlash","_normalizeClass","_hoisted_1","_hoisted_2","NSpin","_Fragment","_renderList","$event","_withKeys","_withModifiers","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","NPopconfirm","NButton","NInput"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import o from "./SigninSection2.vue.js";
2
+ /* empty css */
3
+ import t from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-f795c261"]]);
5
+ export {
6
+ f as default
7
+ };
8
+ //# sourceMappingURL=SigninSection.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SigninSection.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,201 @@
1
+ import { defineComponent as M, computed as C, ref as k, openBlock as r, createBlock as f, unref as t, withCtx as o, createVNode as l, isRef as W, createElementBlock as N, Fragment as B, renderList as Y, createSlots as j, createElementVNode as p, normalizeClass as L, toDisplayString as s, createTextVNode as b, createCommentVNode as w } from "vue";
2
+ import { NSwitch as m, NButton as U } from "naive-ui";
3
+ import { useI18n as q } from "vue-i18n";
4
+ import J from "../../../../components/oauth/BrandIcon.vue.js";
5
+ import { useConfirm as Q } from "../../../../composables/useConfirm.js";
6
+ import { useAppStore as X } from "../../../../stores/app.js";
7
+ import { SMS_LOGIN_KEY as I } from "../groups.js";
8
+ import { useConfigDraft as Z, useDraftFields as ee, enabledKey as x, hasLinkSwitch as te, linkKey as S } from "../draft.js";
9
+ import ae from "./SectionLayout.vue.js";
10
+ import T from "./CfgGroup.vue.js";
11
+ import g from "./CfgRow.vue.js";
12
+ import ne from "./ScaleToFit.vue.js";
13
+ import oe from "./LoginMock.vue.js";
14
+ import le from "./ProviderSheet.vue.js";
15
+ const ie = { class: "avatar" }, we = /* @__PURE__ */ M({
16
+ __name: "SigninSection",
17
+ setup(re) {
18
+ const { t: a } = q(), O = X(), { ask: z } = Q(), h = Z(), { values: c } = h, { bool: R } = ee(), v = R(I), $ = C(() => h.providerRows.value), _ = (n) => c[x(n)] === "true", D = (n) => c[S(n)] === "true", E = {
19
+ wecom: "SmartAdmin.Auth.WeCom",
20
+ dingtalk: "SmartAdmin.Auth.DingTalk",
21
+ github: "SmartAdmin.Auth.GitHub",
22
+ wechat: "SmartAdmin.Auth.WeChat"
23
+ }, d = k(!1), y = k(null), A = k(""), F = C(() => h.catalog.value.types.some((n) => n.type === "oidc"));
24
+ function G(n) {
25
+ y.value = n, A.value = "", d.value = !0;
26
+ }
27
+ function H() {
28
+ y.value = null, A.value = "oidc", d.value = !0;
29
+ }
30
+ const K = (n) => a(`config.externalAuth.state.${n.state}`);
31
+ function V(n, i) {
32
+ n.registered && (c[x(n.code)] = String(i));
33
+ }
34
+ async function P(n, i) {
35
+ n.registered && (i && !await z({
36
+ title: a("config.externalAuth.linkByAccountConfirmTitle"),
37
+ content: a("config.externalAuth.linkByAccountConfirm", { name: n.displayName })
38
+ }) || (c[S(n.code)] = String(i)));
39
+ }
40
+ return (n, i) => (r(), f(ae, {
41
+ title: t(a)("config.tab.signin"),
42
+ desc: t(a)("config.externalAuth.hint"),
43
+ "preview-title": t(a)("config.externalAuth.preview")
44
+ }, {
45
+ preview: o(() => [
46
+ l(ne, {
47
+ width: 440,
48
+ height: 540
49
+ }, {
50
+ default: o(() => [
51
+ l(oe, {
52
+ locale: t(O).locale === "en-US" ? "en-US" : "zh-CN",
53
+ "form-only": ""
54
+ }, null, 8, ["locale"])
55
+ ]),
56
+ _: 1
57
+ })
58
+ ]),
59
+ default: o(() => [
60
+ l(T, {
61
+ title: t(a)("config.externalAuth.groupLocal")
62
+ }, {
63
+ default: o(() => [
64
+ l(g, {
65
+ label: t(a)("config.externalAuth.password"),
66
+ hint: t(a)("config.externalAuth.passwordHint")
67
+ }, {
68
+ default: o(() => [
69
+ l(t(m), {
70
+ value: !0,
71
+ disabled: "",
72
+ "aria-label": t(a)("config.externalAuth.password")
73
+ }, null, 8, ["aria-label"])
74
+ ]),
75
+ _: 1
76
+ }, 8, ["label", "hint"]),
77
+ l(g, {
78
+ label: t(a)("config.security.smsLogin.enabled"),
79
+ hint: t(a)("config.externalAuth.smsHint"),
80
+ keys: [t(I)]
81
+ }, {
82
+ default: o(() => [
83
+ l(t(m), {
84
+ value: t(v),
85
+ "onUpdate:value": i[0] || (i[0] = (e) => W(v) ? v.value = e : null),
86
+ "aria-label": t(a)("config.security.smsLogin.enabled")
87
+ }, null, 8, ["value", "aria-label"])
88
+ ]),
89
+ _: 1
90
+ }, 8, ["label", "hint", "keys"])
91
+ ]),
92
+ _: 1
93
+ }, 8, ["title"]),
94
+ l(T, {
95
+ title: t(a)("config.externalAuth.groupThird")
96
+ }, {
97
+ extra: o(() => [
98
+ F.value ? (r(), f(t(U), {
99
+ key: 0,
100
+ text: "",
101
+ size: "tiny",
102
+ type: "primary",
103
+ "data-testid": "add-oidc",
104
+ onClick: H
105
+ }, {
106
+ default: o(() => [
107
+ b(s(t(a)("config.externalAuth.addOidc")), 1)
108
+ ]),
109
+ _: 1
110
+ })) : w("", !0)
111
+ ]),
112
+ default: o(() => [
113
+ (r(!0), N(B, null, Y($.value, (e) => (r(), N(B, {
114
+ key: e.code
115
+ }, [
116
+ l(g, {
117
+ keys: [t(x)(e.code)],
118
+ "data-provider": e.code,
119
+ "data-state": e.state
120
+ }, j({
121
+ label: o(() => [
122
+ p("span", ie, [
123
+ l(J, {
124
+ code: e.code,
125
+ icon: e.icon,
126
+ size: 18
127
+ }, null, 8, ["code", "icon"])
128
+ ]),
129
+ p("span", {
130
+ class: L({ na: e.state === "notInstalled" })
131
+ }, s(e.displayName), 3)
132
+ ]),
133
+ default: o(() => [
134
+ p("span", {
135
+ class: L(["status", e.state])
136
+ }, s(K(e)), 3),
137
+ e.state !== "notInstalled" && e.source !== "code" ? (r(), f(t(U), {
138
+ key: 0,
139
+ size: "small",
140
+ "data-testid": `provider-set-${e.code}`,
141
+ onClick: (u) => G(e)
142
+ }, {
143
+ default: o(() => [
144
+ b(s(t(a)("config.externalAuth.settings")), 1)
145
+ ]),
146
+ _: 1
147
+ }, 8, ["data-testid", "onClick"])) : w("", !0),
148
+ l(t(m), {
149
+ value: _(e.code),
150
+ disabled: !e.registered,
151
+ "aria-label": e.displayName,
152
+ "onUpdate:value": (u) => V(e, u)
153
+ }, null, 8, ["value", "disabled", "aria-label", "onUpdate:value"])
154
+ ]),
155
+ _: 2
156
+ }, [
157
+ e.state === "notInstalled" || e.source === "code" ? {
158
+ name: "hint",
159
+ fn: o(() => [
160
+ b(s(e.source === "code" ? t(a)("config.externalAuth.codeRegistered") : t(a)("config.externalAuth.needPackage", { pkg: E[e.code] ?? e.code })), 1)
161
+ ]),
162
+ key: "0"
163
+ } : void 0
164
+ ]), 1032, ["keys", "data-provider", "data-state"]),
165
+ t(te)(e.code) ? (r(), f(g, {
166
+ key: 0,
167
+ label: t(a)("config.externalAuth.linkByAccount"),
168
+ hint: t(a)("config.externalAuth.linkByAccountHint"),
169
+ keys: [t(S)(e.code)],
170
+ disabled: !e.registered || !_(e.code),
171
+ "data-link": e.code,
172
+ sub: ""
173
+ }, {
174
+ default: o(() => [
175
+ l(t(m), {
176
+ value: D(e.code),
177
+ "aria-label": `${e.displayName} ${t(a)("config.externalAuth.linkByAccount")}`,
178
+ "onUpdate:value": (u) => P(e, u)
179
+ }, null, 8, ["value", "aria-label", "onUpdate:value"])
180
+ ]),
181
+ _: 2
182
+ }, 1032, ["label", "hint", "keys", "disabled", "data-link"])) : w("", !0)
183
+ ], 64))), 128))
184
+ ]),
185
+ _: 1
186
+ }, 8, ["title"]),
187
+ l(le, {
188
+ show: d.value,
189
+ "onUpdate:show": i[1] || (i[1] = (e) => d.value = e),
190
+ row: y.value,
191
+ "new-type": A.value
192
+ }, null, 8, ["show", "row", "new-type"])
193
+ ]),
194
+ _: 1
195
+ }, 8, ["title", "desc", "preview-title"]));
196
+ }
197
+ });
198
+ export {
199
+ we as default
200
+ };
201
+ //# sourceMappingURL=SigninSection2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SigninSection2.vue.js","sources":["../../../../../src/views/system/config/components/SigninSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 登录方式:登录页上出现哪些登录入口——账号密码(始终可用)、短信验证码、各第三方登录。\n// 每个第三方一行:状态(未安装 / 未配置 / 已配置)、「设置」按钮、开关。连接信息与密钥在设置面板里填,\n// 加密入库,不经过页面草稿;开关是草稿项,随底部保存条保存。没配好的方式开关灰掉,也永远不写库。\n// 「按账号自动关联」打开前要确认两边账号是同一批人。预览就是登录框本身。\nimport { computed, ref } from 'vue'\nimport { NButton, NSwitch } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport BrandIcon from '#/components/oauth/BrandIcon.vue'\nimport { useConfirm } from '#/composables/useConfirm'\nimport { useAppStore } from '#/stores/app'\nimport type { ConfigProviderRow } from '#/utils/oauthBrand'\nimport { SMS_LOGIN_KEY } from '../groups'\nimport { enabledKey, hasLinkSwitch, linkKey, useConfigDraft, useDraftFields } from '../draft'\nimport SectionLayout from './SectionLayout.vue'\nimport CfgGroup from './CfgGroup.vue'\nimport CfgRow from './CfgRow.vue'\nimport ScaleToFit from './ScaleToFit.vue'\nimport LoginMock from './LoginMock.vue'\nimport ProviderSheet from './ProviderSheet.vue'\n\nconst { t } = useI18n()\nconst app = useAppStore()\nconst { ask } = useConfirm()\nconst draft = useConfigDraft()\nconst { values } = draft\nconst { bool } = useDraftFields()\nconst smsLogin = bool(SMS_LOGIN_KEY)\nconst rows = computed(() => draft.providerRows.value)\nconst isOn = (code: string) => values[enabledKey(code)] === 'true'\nconst linkOn = (code: string) => values[linkKey(code)] === 'true'\n\n/** 官方厂商对应的服务器扩展包,「未安装」时告诉管理员装哪个。 */\nconst PACKAGE_OF: Record<string, string> = {\n wecom: 'SmartAdmin.Auth.WeCom',\n dingtalk: 'SmartAdmin.Auth.DingTalk',\n github: 'SmartAdmin.Auth.GitHub',\n wechat: 'SmartAdmin.Auth.WeChat',\n}\n\nconst sheetShow = ref(false)\nconst sheetRow = ref<ConfigProviderRow | null>(null)\nconst sheetNewType = ref('')\nconst oidcInstalled = computed(() => draft.catalog.value.types.some(x => x.type === 'oidc'))\n\nfunction openSheet(row: ConfigProviderRow) {\n sheetRow.value = row\n sheetNewType.value = ''\n sheetShow.value = true\n}\n\nfunction openAddOidc() {\n sheetRow.value = null\n sheetNewType.value = 'oidc'\n sheetShow.value = true\n}\n\nconst statusText = (p: ConfigProviderRow) => t(`config.externalAuth.state.${p.state}`)\n\nfunction toggle(p: ConfigProviderRow, v: boolean) {\n if (p.registered) values[enabledKey(p.code)] = String(v)\n}\n\nasync function toggleLink(p: ConfigProviderRow, v: boolean) {\n if (!p.registered) return\n if (\n v &&\n !(await ask({\n title: t('config.externalAuth.linkByAccountConfirmTitle'),\n content: t('config.externalAuth.linkByAccountConfirm', { name: p.displayName }),\n }))\n )\n return\n values[linkKey(p.code)] = String(v)\n}\n</script>\n\n<template>\n <SectionLayout\n :title=\"t('config.tab.signin')\"\n :desc=\"t('config.externalAuth.hint')\"\n :preview-title=\"t('config.externalAuth.preview')\"\n >\n <CfgGroup :title=\"t('config.externalAuth.groupLocal')\">\n <CfgRow\n :label=\"t('config.externalAuth.password')\"\n :hint=\"t('config.externalAuth.passwordHint')\"\n >\n <n-switch :value=\"true\" disabled :aria-label=\"t('config.externalAuth.password')\" />\n </CfgRow>\n <CfgRow\n :label=\"t('config.security.smsLogin.enabled')\"\n :hint=\"t('config.externalAuth.smsHint')\"\n :keys=\"[SMS_LOGIN_KEY]\"\n >\n <n-switch v-model:value=\"smsLogin\" :aria-label=\"t('config.security.smsLogin.enabled')\" />\n </CfgRow>\n </CfgGroup>\n\n <CfgGroup :title=\"t('config.externalAuth.groupThird')\">\n <template #extra>\n <n-button\n v-if=\"oidcInstalled\"\n text\n size=\"tiny\"\n type=\"primary\"\n data-testid=\"add-oidc\"\n @click=\"openAddOidc\"\n >\n {{ t('config.externalAuth.addOidc') }}\n </n-button>\n </template>\n <template v-for=\"p in rows\" :key=\"p.code\">\n <CfgRow :keys=\"[enabledKey(p.code)]\" :data-provider=\"p.code\" :data-state=\"p.state\">\n <template #label>\n <span class=\"avatar\"><BrandIcon :code=\"p.code\" :icon=\"p.icon\" :size=\"18\" /></span>\n <span :class=\"{ na: p.state === 'notInstalled' }\">{{ p.displayName }}</span>\n </template>\n <template v-if=\"p.state === 'notInstalled' || p.source === 'code'\" #hint>\n {{\n p.source === 'code'\n ? t('config.externalAuth.codeRegistered')\n : t('config.externalAuth.needPackage', { pkg: PACKAGE_OF[p.code] ?? p.code })\n }}\n </template>\n <span :class=\"['status', p.state]\">{{ statusText(p) }}</span>\n <n-button\n v-if=\"p.state !== 'notInstalled' && p.source !== 'code'\"\n size=\"small\"\n :data-testid=\"`provider-set-${p.code}`\"\n @click=\"openSheet(p)\"\n >\n {{ t('config.externalAuth.settings') }}\n </n-button>\n <n-switch\n :value=\"isOn(p.code)\"\n :disabled=\"!p.registered\"\n :aria-label=\"p.displayName\"\n @update:value=\"v => toggle(p, v)\"\n />\n </CfgRow>\n <CfgRow\n v-if=\"hasLinkSwitch(p.code)\"\n :label=\"t('config.externalAuth.linkByAccount')\"\n :hint=\"t('config.externalAuth.linkByAccountHint')\"\n :keys=\"[linkKey(p.code)]\"\n :disabled=\"!p.registered || !isOn(p.code)\"\n :data-link=\"p.code\"\n sub\n >\n <n-switch\n :value=\"linkOn(p.code)\"\n :aria-label=\"`${p.displayName} ${t('config.externalAuth.linkByAccount')}`\"\n @update:value=\"v => toggleLink(p, v)\"\n />\n </CfgRow>\n </template>\n </CfgGroup>\n\n <ProviderSheet v-model:show=\"sheetShow\" :row=\"sheetRow\" :new-type=\"sheetNewType\" />\n\n <template #preview>\n <ScaleToFit :width=\"440\" :height=\"540\">\n <LoginMock :locale=\"app.locale === 'en-US' ? 'en-US' : 'zh-CN'\" form-only />\n </ScaleToFit>\n </template>\n </SectionLayout>\n</template>\n\n<style scoped>\n.avatar {\n display: grid;\n flex: none;\n place-items: center;\n width: 24px;\n height: 24px;\n margin-right: 6px;\n overflow: hidden;\n border-radius: 6px;\n background: var(--color-fill);\n}\n.na {\n color: var(--color-text-tertiary);\n}\n.status {\n font-size: var(--font-size-sm);\n color: var(--color-text-tertiary);\n}\n.status.configured {\n color: var(--color-success);\n}\n</style>\n"],"names":["t","useI18n","app","useAppStore","ask","useConfirm","draft","useConfigDraft","values","bool","useDraftFields","smsLogin","SMS_LOGIN_KEY","rows","computed","isOn","code","enabledKey","linkOn","linkKey","PACKAGE_OF","sheetShow","ref","sheetRow","sheetNewType","oidcInstalled","x","openSheet","row","openAddOidc","statusText","p","toggle","v","toggleLink","_createBlock","SectionLayout","_unref","_createVNode","ScaleToFit","LoginMock","CfgGroup","CfgRow","NSwitch","$event","NButton","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","BrandIcon","_normalizeClass","_toDisplayString","_createTextVNode","hasLinkSwitch","ProviderSheet"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,UAAM,EAAE,GAAAA,EAAA,IAAMC,EAAA,GACRC,IAAMC,EAAA,GACN,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACVC,IAAQC,EAAA,GACR,EAAE,QAAAC,MAAWF,GACb,EAAE,MAAAG,EAAA,IAASC,GAAA,GACXC,IAAWF,EAAKG,CAAa,GAC7BC,IAAOC,EAAS,MAAMR,EAAM,aAAa,KAAK,GAC9CS,IAAO,CAACC,MAAiBR,EAAOS,EAAWD,CAAI,CAAC,MAAM,QACtDE,IAAS,CAACF,MAAiBR,EAAOW,EAAQH,CAAI,CAAC,MAAM,QAGrDI,IAAqC;AAAA,MACzC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,IAAA,GAGJC,IAAYC,EAAI,EAAK,GACrBC,IAAWD,EAA8B,IAAI,GAC7CE,IAAeF,EAAI,EAAE,GACrBG,IAAgBX,EAAS,MAAMR,EAAM,QAAQ,MAAM,MAAM,KAAK,CAAAoB,MAAKA,EAAE,SAAS,MAAM,CAAC;AAE3F,aAASC,EAAUC,GAAwB;AACzC,MAAAL,EAAS,QAAQK,GACjBJ,EAAa,QAAQ,IACrBH,EAAU,QAAQ;AAAA,IACpB;AAEA,aAASQ,IAAc;AACrB,MAAAN,EAAS,QAAQ,MACjBC,EAAa,QAAQ,QACrBH,EAAU,QAAQ;AAAA,IACpB;AAEA,UAAMS,IAAa,CAACC,MAAyB/B,EAAE,6BAA6B+B,EAAE,KAAK,EAAE;AAErF,aAASC,EAAOD,GAAsBE,GAAY;AAChD,MAAIF,EAAE,eAAYvB,EAAOS,EAAWc,EAAE,IAAI,CAAC,IAAI,OAAOE,CAAC;AAAA,IACzD;AAEA,mBAAeC,EAAWH,GAAsBE,GAAY;AAC1D,MAAKF,EAAE,eAELE,KACA,CAAE,MAAM7B,EAAI;AAAA,QACV,OAAOJ,EAAE,+CAA+C;AAAA,QACxD,SAASA,EAAE,4CAA4C,EAAE,MAAM+B,EAAE,aAAa;AAAA,MAAA,CAC/E,MAGHvB,EAAOW,EAAQY,EAAE,IAAI,CAAC,IAAI,OAAOE,CAAC;AAAA,IACpC;2BAIEE,EAwFgBC,IAAA;AAAA,MAvFb,OAAOC,EAAArC,CAAA,EAAC,mBAAA;AAAA,MACR,MAAMqC,EAAArC,CAAA,EAAC,0BAAA;AAAA,MACP,iBAAeqC,EAAArC,CAAA,EAAC,6BAAA;AAAA,IAAA;MAgFN,WACT,MAEa;AAAA,QAFbsC,EAEaC,IAAA;AAAA,UAFA,OAAO;AAAA,UAAM,QAAQ;AAAA,QAAA;qBAChC,MAA4E;AAAA,YAA5ED,EAA4EE,IAAA;AAAA,cAAhE,QAAQH,EAAAnC,CAAA,EAAI,WAAM,UAAA,UAAA;AAAA,cAAkC,aAAA;AAAA,YAAA;;;;;iBAhFpE,MAcW;AAAA,QAdXoC,EAcWG,GAAA;AAAA,UAdA,OAAOJ,EAAArC,CAAA,EAAC,gCAAA;AAAA,QAAA;qBACjB,MAKS;AAAA,YALTsC,EAKSI,GAAA;AAAA,cAJN,OAAOL,EAAArC,CAAA,EAAC,8BAAA;AAAA,cACR,MAAMqC,EAAArC,CAAA,EAAC,kCAAA;AAAA,YAAA;yBAER,MAAmF;AAAA,gBAAnFsC,EAAmFD,EAAAM,CAAA,GAAA;AAAA,kBAAxE,OAAO;AAAA,kBAAM,UAAA;AAAA,kBAAU,cAAYN,EAAArC,CAAA,EAAC,8BAAA;AAAA,gBAAA;;;;YAEjDsC,EAMSI,GAAA;AAAA,cALN,OAAOL,EAAArC,CAAA,EAAC,kCAAA;AAAA,cACR,MAAMqC,EAAArC,CAAA,EAAC,6BAAA;AAAA,cACP,OAAOqC,EAAAzB,CAAA,CAAa;AAAA,YAAA;yBAErB,MAAyF;AAAA,gBAAzF0B,EAAyFD,EAAAM,CAAA,GAAA;AAAA,kBAAvE,OAAON,EAAA1B,CAAA;AAAA,kEAAAA,EAAQ,QAAAiC,IAAA;AAAA,kBAAG,cAAYP,EAAArC,CAAA,EAAC,kCAAA;AAAA,gBAAA;;;;;;;QAIrDsC,EA0DWG,GAAA;AAAA,UA1DA,OAAOJ,EAAArC,CAAA,EAAC,gCAAA;AAAA,QAAA;UACN,SACT,MASW;AAAA,YARHyB,EAAA,cADRU,EASWE,EAAAQ,CAAA,GAAA;AAAA;cAPT,MAAA;AAAA,cACA,MAAK;AAAA,cACL,MAAK;AAAA,cACL,eAAY;AAAA,cACX,SAAOhB;AAAA,YAAA;yBAER,MAAsC;AAAA,oBAAnCQ,EAAArC,CAAA,EAAC,6BAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;;qBAGE,MAAiB;AAAA,oBAA3B8C,EA4CWC,GAAA,MAAAC,EA5CWnC,EAAA,OAAI,CAATkB;cAAiB,KAAAA,EAAE;AAAA,YAAA;cAClCO,EA2BSI,GAAA;AAAA,gBA3BA,MAAI,CAAGL,EAAApB,CAAA,EAAWc,EAAE,IAAI,CAAA;AAAA,gBAAK,iBAAeA,EAAE;AAAA,gBAAO,cAAYA,EAAE;AAAA,cAAA;gBAC/D,SACT,MAAkF;AAAA,kBAAlFkB,EAAkF,QAAlFC,IAAkF;AAAA,oBAA7DZ,EAAsDa,GAAA;AAAA,sBAA1C,MAAMpB,EAAE;AAAA,sBAAO,MAAMA,EAAE;AAAA,sBAAO,MAAM;AAAA,oBAAA;;kBACrEkB,EAA4E,QAAA;AAAA,oBAArE,OAAKG,EAAA,EAAA,IAAQrB,EAAE,UAAK,gBAAA;AAAA,kBAAA,GAA0BsB,EAAAtB,EAAE,WAAW,GAAA,CAAA;AAAA,gBAAA;2BASpE,MAA6D;AAAA,kBAA7DkB,EAA6D,QAAA;AAAA,oBAAtD,OAAKG,EAAA,CAAA,UAAarB,EAAE,KAAK,CAAA;AAAA,kBAAA,GAAMsB,EAAAvB,EAAWC,CAAC,CAAA,GAAA,CAAA;AAAA,kBAE1CA,EAAE,UAAK,kBAAuBA,EAAE,WAAM,eAD9CI,EAOWE,EAAAQ,CAAA,GAAA;AAAA;oBALT,MAAK;AAAA,oBACJ,eAAW,gBAAkBd,EAAE,IAAI;AAAA,oBACnC,SAAK,CAAAa,MAAEjB,EAAUI,CAAC;AAAA,kBAAA;+BAEnB,MAAuC;AAAA,0BAApCM,EAAArC,CAAA,EAAC,8BAAA,CAAA,GAAA,CAAA;AAAA,oBAAA;;;kBAENsC,EAKED,EAAAM,CAAA,GAAA;AAAA,oBAJC,OAAO5B,EAAKgB,EAAE,IAAI;AAAA,oBAClB,UAAQ,CAAGA,EAAE;AAAA,oBACb,cAAYA,EAAE;AAAA,oBACd,kBAAc,CAAAE,MAAKD,EAAOD,GAAGE,CAAC;AAAA,kBAAA;;;;gBApBjBF,EAAE,UAAK,kBAAuBA,EAAE,WAAM;wBAAc;AAAA,wBAClE,MAIE;AAAA,oBAHAuB,EAAAD,EAAAtB,EAAE,WAAM,SAA8BM,EAAArC,CAAA,EAAC,oCAAA,IAAyDqC,EAAArC,CAAA,EAAC,mCAAA,EAAA,KAA2CoB,EAAWW,EAAE,IAAI,KAAKA,EAAE,MAAI,CAAA,GAAA,CAAA;AAAA,kBAAA;;;;cAsBtKM,EAAAkB,EAAA,EAAcxB,EAAE,IAAI,UAD5BI,EAcSO,GAAA;AAAA;gBAZN,OAAOL,EAAArC,CAAA,EAAC,mCAAA;AAAA,gBACR,MAAMqC,EAAArC,CAAA,EAAC,uCAAA;AAAA,gBACP,MAAI,CAAGqC,EAAAlB,CAAA,EAAQY,EAAE,IAAI,CAAA;AAAA,gBACrB,UAAQ,CAAGA,EAAE,eAAehB,EAAKgB,EAAE,IAAI;AAAA,gBACvC,aAAWA,EAAE;AAAA,gBACd,KAAA;AAAA,cAAA;2BAEA,MAIE;AAAA,kBAJFO,EAIED,EAAAM,CAAA,GAAA;AAAA,oBAHC,OAAOzB,EAAOa,EAAE,IAAI;AAAA,oBACpB,cAAU,GAAKA,EAAE,WAAW,IAAIM,EAAArC,CAAA,EAAC,mCAAA,CAAA;AAAA,oBACjC,kBAAc,CAAAiC,MAAKC,EAAWH,GAAGE,CAAC;AAAA,kBAAA;;;;;;;;QAM3CK,EAAmFkB,IAAA;AAAA,UAA5D,MAAMnC,EAAA;AAAA,kDAAAA,EAAS,QAAAuB;AAAA,UAAG,KAAKrB,EAAA;AAAA,UAAW,YAAUC,EAAA;AAAA,QAAA;;;;;;"}
@@ -0,0 +1,8 @@
1
+ import o from "./UploadSection2.vue.js";
2
+ /* empty css */
3
+ import t from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ce45acde"]]);
5
+ export {
6
+ p as default
7
+ };
8
+ //# sourceMappingURL=UploadSection.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadSection.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}