smart-admin-web 10.5.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 (718) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +78 -0
  3. package/dist/App.vue.d.ts +3 -0
  4. package/dist/App.vue.js +54 -0
  5. package/dist/App.vue.js.map +1 -0
  6. package/dist/App2.vue.js +5 -0
  7. package/dist/App2.vue.js.map +1 -0
  8. package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
  9. package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
  10. package/dist/api/client.d.ts +29 -0
  11. package/dist/api/client.js +139 -0
  12. package/dist/api/client.js.map +1 -0
  13. package/dist/api/index.d.ts +672 -0
  14. package/dist/api/index.js +638 -0
  15. package/dist/api/index.js.map +1 -0
  16. package/dist/api/reauthGate.d.ts +16 -0
  17. package/dist/api/reauthGate.js +21 -0
  18. package/dist/api/reauthGate.js.map +1 -0
  19. package/dist/api/schema.d.ts +10230 -0
  20. package/dist/assets/icons/ph-subset.json.js +16 -0
  21. package/dist/assets/icons/ph-subset.json.js.map +1 -0
  22. package/dist/assets/oauth/dingtalk.svg.js +5 -0
  23. package/dist/assets/oauth/dingtalk.svg.js.map +1 -0
  24. package/dist/assets/oauth/gitee.svg.js +5 -0
  25. package/dist/assets/oauth/gitee.svg.js.map +1 -0
  26. package/dist/assets/oauth/github.svg.js +5 -0
  27. package/dist/assets/oauth/github.svg.js.map +1 -0
  28. package/dist/assets/oauth/qq.svg.js +5 -0
  29. package/dist/assets/oauth/qq.svg.js.map +1 -0
  30. package/dist/assets/oauth/wechat.svg.js +5 -0
  31. package/dist/assets/oauth/wechat.svg.js.map +1 -0
  32. package/dist/assets/oauth/wecom.svg.js +5 -0
  33. package/dist/assets/oauth/wecom.svg.js.map +1 -0
  34. package/dist/assets/svg/star.svg.js +6 -0
  35. package/dist/assets/svg/star.svg.js.map +1 -0
  36. package/dist/components/ApiSelect/index.vue.d.ts +22 -0
  37. package/dist/components/ApiSelect/index.vue.js +50 -0
  38. package/dist/components/ApiSelect/index.vue.js.map +1 -0
  39. package/dist/components/ApiSelect/index2.vue.js +5 -0
  40. package/dist/components/ApiSelect/index2.vue.js.map +1 -0
  41. package/dist/components/AppIcon.vue.d.ts +7 -0
  42. package/dist/components/AppIcon.vue.js +33 -0
  43. package/dist/components/AppIcon.vue.js.map +1 -0
  44. package/dist/components/AppIcon2.vue.js +5 -0
  45. package/dist/components/AppIcon2.vue.js.map +1 -0
  46. package/dist/components/Chart/BarChart.vue.d.ts +13 -0
  47. package/dist/components/Chart/BarChart.vue.js +27 -0
  48. package/dist/components/Chart/BarChart.vue.js.map +1 -0
  49. package/dist/components/Chart/BarChart2.vue.js +5 -0
  50. package/dist/components/Chart/BarChart2.vue.js.map +1 -0
  51. package/dist/components/Chart/LineChart.vue.d.ts +15 -0
  52. package/dist/components/Chart/LineChart.vue.js +33 -0
  53. package/dist/components/Chart/LineChart.vue.js.map +1 -0
  54. package/dist/components/Chart/LineChart2.vue.js +5 -0
  55. package/dist/components/Chart/LineChart2.vue.js.map +1 -0
  56. package/dist/components/Chart/PieChart.vue.d.ts +14 -0
  57. package/dist/components/Chart/PieChart.vue.js +31 -0
  58. package/dist/components/Chart/PieChart.vue.js.map +1 -0
  59. package/dist/components/Chart/PieChart2.vue.js +5 -0
  60. package/dist/components/Chart/PieChart2.vue.js.map +1 -0
  61. package/dist/components/Chart/echarts.d.ts +57 -0
  62. package/dist/components/Chart/echarts.js +47 -0
  63. package/dist/components/Chart/echarts.js.map +1 -0
  64. package/dist/components/Chart/index.vue.d.ts +12 -0
  65. package/dist/components/Chart/index.vue.js +8 -0
  66. package/dist/components/Chart/index.vue.js.map +1 -0
  67. package/dist/components/Chart/index2.vue.js +27 -0
  68. package/dist/components/Chart/index2.vue.js.map +1 -0
  69. package/dist/components/CodeBlock/index.vue.d.ts +17 -0
  70. package/dist/components/CodeBlock/index.vue.js +8 -0
  71. package/dist/components/CodeBlock/index.vue.js.map +1 -0
  72. package/dist/components/CodeBlock/index2.vue.js +48 -0
  73. package/dist/components/CodeBlock/index2.vue.js.map +1 -0
  74. package/dist/components/CronEditor/index.vue.d.ts +15 -0
  75. package/dist/components/CronEditor/index.vue.js +8 -0
  76. package/dist/components/CronEditor/index.vue.js.map +1 -0
  77. package/dist/components/CronEditor/index2.vue.js +528 -0
  78. package/dist/components/CronEditor/index2.vue.js.map +1 -0
  79. package/dist/components/DetailPage/index.vue.d.ts +26 -0
  80. package/dist/components/DetailPage/index.vue.js +8 -0
  81. package/dist/components/DetailPage/index.vue.js.map +1 -0
  82. package/dist/components/DetailPage/index2.vue.js +51 -0
  83. package/dist/components/DetailPage/index2.vue.js.map +1 -0
  84. package/dist/components/DictCheckbox/index.vue.d.ts +6 -0
  85. package/dist/components/DictCheckbox/index.vue.js +43 -0
  86. package/dist/components/DictCheckbox/index.vue.js.map +1 -0
  87. package/dist/components/DictCheckbox/index2.vue.js +5 -0
  88. package/dist/components/DictCheckbox/index2.vue.js.map +1 -0
  89. package/dist/components/DictRadio/index.vue.d.ts +6 -0
  90. package/dist/components/DictRadio/index.vue.js +38 -0
  91. package/dist/components/DictRadio/index.vue.js.map +1 -0
  92. package/dist/components/DictRadio/index2.vue.js +5 -0
  93. package/dist/components/DictRadio/index2.vue.js.map +1 -0
  94. package/dist/components/DictSelect/index.vue.d.ts +6 -0
  95. package/dist/components/DictSelect/index.vue.js +37 -0
  96. package/dist/components/DictSelect/index.vue.js.map +1 -0
  97. package/dist/components/DictSelect/index2.vue.js +5 -0
  98. package/dist/components/DictSelect/index2.vue.js.map +1 -0
  99. package/dist/components/DictTag/index.vue.d.ts +10 -0
  100. package/dist/components/DictTag/index.vue.js +48 -0
  101. package/dist/components/DictTag/index.vue.js.map +1 -0
  102. package/dist/components/DictTag/index2.vue.js +5 -0
  103. package/dist/components/DictTag/index2.vue.js.map +1 -0
  104. package/dist/components/ErrorBoundary/index.vue.d.ts +13 -0
  105. package/dist/components/ErrorBoundary/index.vue.js +8 -0
  106. package/dist/components/ErrorBoundary/index.vue.js.map +1 -0
  107. package/dist/components/ErrorBoundary/index2.vue.js +61 -0
  108. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -0
  109. package/dist/components/ExportColumnsModal/index.vue.d.ts +19 -0
  110. package/dist/components/ExportColumnsModal/index.vue.js +8 -0
  111. package/dist/components/ExportColumnsModal/index.vue.js.map +1 -0
  112. package/dist/components/ExportColumnsModal/index2.vue.js +121 -0
  113. package/dist/components/ExportColumnsModal/index2.vue.js.map +1 -0
  114. package/dist/components/FileUpload/index.vue.d.ts +24 -0
  115. package/dist/components/FileUpload/index.vue.js +42 -0
  116. package/dist/components/FileUpload/index.vue.js.map +1 -0
  117. package/dist/components/FileUpload/index2.vue.js +5 -0
  118. package/dist/components/FileUpload/index2.vue.js.map +1 -0
  119. package/dist/components/FormContainer/index.vue.d.ts +51 -0
  120. package/dist/components/FormContainer/index.vue.js +160 -0
  121. package/dist/components/FormContainer/index.vue.js.map +1 -0
  122. package/dist/components/FormContainer/index3.vue.js +6 -0
  123. package/dist/components/FormContainer/index3.vue.js.map +1 -0
  124. package/dist/components/IconPicker/index.vue.d.ts +18 -0
  125. package/dist/components/IconPicker/index.vue.js +43 -0
  126. package/dist/components/IconPicker/index.vue.js.map +1 -0
  127. package/dist/components/IconPicker/index2.vue.js +5 -0
  128. package/dist/components/IconPicker/index2.vue.js.map +1 -0
  129. package/dist/components/ImportWizard/index.vue.d.ts +39 -0
  130. package/dist/components/ImportWizard/index.vue.js +8 -0
  131. package/dist/components/ImportWizard/index.vue.js.map +1 -0
  132. package/dist/components/ImportWizard/index2.vue.js +634 -0
  133. package/dist/components/ImportWizard/index2.vue.js.map +1 -0
  134. package/dist/components/JsonEditor/index.vue.d.ts +12 -0
  135. package/dist/components/JsonEditor/index.vue.js +87 -0
  136. package/dist/components/JsonEditor/index.vue.js.map +1 -0
  137. package/dist/components/JsonEditor/index2.vue.js +5 -0
  138. package/dist/components/JsonEditor/index2.vue.js.map +1 -0
  139. package/dist/components/MarkdownEditor/MarkdownView.vue.d.ts +6 -0
  140. package/dist/components/MarkdownEditor/MarkdownView.vue.js +33 -0
  141. package/dist/components/MarkdownEditor/MarkdownView.vue.js.map +1 -0
  142. package/dist/components/MarkdownEditor/MarkdownView2.vue.js +5 -0
  143. package/dist/components/MarkdownEditor/MarkdownView2.vue.js.map +1 -0
  144. package/dist/components/MarkdownEditor/index.vue.d.ts +10 -0
  145. package/dist/components/MarkdownEditor/index.vue.js +35 -0
  146. package/dist/components/MarkdownEditor/index.vue.js.map +1 -0
  147. package/dist/components/MarkdownEditor/index2.vue.js +5 -0
  148. package/dist/components/MarkdownEditor/index2.vue.js.map +1 -0
  149. package/dist/components/MenuSearch.vue.d.ts +10 -0
  150. package/dist/components/MenuSearch.vue.js +8 -0
  151. package/dist/components/MenuSearch.vue.js.map +1 -0
  152. package/dist/components/MenuSearch2.vue.js +121 -0
  153. package/dist/components/MenuSearch2.vue.js.map +1 -0
  154. package/dist/components/OrgTreeSelect/index.vue.d.ts +6 -0
  155. package/dist/components/OrgTreeSelect/index.vue.js +42 -0
  156. package/dist/components/OrgTreeSelect/index.vue.js.map +1 -0
  157. package/dist/components/OrgTreeSelect/index2.vue.js +5 -0
  158. package/dist/components/OrgTreeSelect/index2.vue.js.map +1 -0
  159. package/dist/components/PasswordStrength/index.vue.d.ts +6 -0
  160. package/dist/components/PasswordStrength/index.vue.js +8 -0
  161. package/dist/components/PasswordStrength/index.vue.js.map +1 -0
  162. package/dist/components/PasswordStrength/index2.vue.js +91 -0
  163. package/dist/components/PasswordStrength/index2.vue.js.map +1 -0
  164. package/dist/components/ReauthModal.vue.d.ts +3 -0
  165. package/dist/components/ReauthModal.vue.js +8 -0
  166. package/dist/components/ReauthModal.vue.js.map +1 -0
  167. package/dist/components/ReauthModal2.vue.js +139 -0
  168. package/dist/components/ReauthModal2.vue.js.map +1 -0
  169. package/dist/components/RoleSelect/index.vue.d.ts +8 -0
  170. package/dist/components/RoleSelect/index.vue.js +26 -0
  171. package/dist/components/RoleSelect/index.vue.js.map +1 -0
  172. package/dist/components/RoleSelect/index2.vue.js +5 -0
  173. package/dist/components/RoleSelect/index2.vue.js.map +1 -0
  174. package/dist/components/SelectTable/index.vue.d.ts +76 -0
  175. package/dist/components/SelectTable/index.vue.js +8 -0
  176. package/dist/components/SelectTable/index.vue.js.map +1 -0
  177. package/dist/components/SelectTable/index2.vue.js +256 -0
  178. package/dist/components/SelectTable/index2.vue.js.map +1 -0
  179. package/dist/components/SmartLogo.vue.d.ts +8 -0
  180. package/dist/components/SmartLogo.vue.js +8 -0
  181. package/dist/components/SmartLogo.vue.js.map +1 -0
  182. package/dist/components/SmartLogo2.vue.js +74 -0
  183. package/dist/components/SmartLogo2.vue.js.map +1 -0
  184. package/dist/components/StatusSwitch/index.vue.d.ts +21 -0
  185. package/dist/components/StatusSwitch/index.vue.js +45 -0
  186. package/dist/components/StatusSwitch/index.vue.js.map +1 -0
  187. package/dist/components/StatusSwitch/index2.vue.js +5 -0
  188. package/dist/components/StatusSwitch/index2.vue.js.map +1 -0
  189. package/dist/components/TableZoomButton/index.vue.d.ts +13 -0
  190. package/dist/components/TableZoomButton/index.vue.js +42 -0
  191. package/dist/components/TableZoomButton/index.vue.js.map +1 -0
  192. package/dist/components/TableZoomButton/index2.vue.js +5 -0
  193. package/dist/components/TableZoomButton/index2.vue.js.map +1 -0
  194. package/dist/components/UserPicker/index.vue.d.ts +13 -0
  195. package/dist/components/UserPicker/index.vue.js +8 -0
  196. package/dist/components/UserPicker/index.vue.js.map +1 -0
  197. package/dist/components/UserPicker/index2.vue.js +214 -0
  198. package/dist/components/UserPicker/index2.vue.js.map +1 -0
  199. package/dist/components/UserSelect/index.vue.d.ts +9 -0
  200. package/dist/components/UserSelect/index.vue.js +32 -0
  201. package/dist/components/UserSelect/index.vue.js.map +1 -0
  202. package/dist/components/UserSelect/index2.vue.js +5 -0
  203. package/dist/components/UserSelect/index2.vue.js.map +1 -0
  204. package/dist/components/oauth/BrandIcon.vue.d.ts +12 -0
  205. package/dist/components/oauth/BrandIcon.vue.js +8 -0
  206. package/dist/components/oauth/BrandIcon.vue.js.map +1 -0
  207. package/dist/components/oauth/BrandIcon2.vue.js +95 -0
  208. package/dist/components/oauth/BrandIcon2.vue.js.map +1 -0
  209. package/dist/composables/authMenuRoute.d.ts +32 -0
  210. package/dist/composables/authMenuRoute.js +37 -0
  211. package/dist/composables/authMenuRoute.js.map +1 -0
  212. package/dist/composables/clearClientCache.d.ts +10 -0
  213. package/dist/composables/clearClientCache.js +17 -0
  214. package/dist/composables/clearClientCache.js.map +1 -0
  215. package/dist/composables/useAuthMenu.d.ts +3 -0
  216. package/dist/composables/useAuthMenu.js +61 -0
  217. package/dist/composables/useAuthMenu.js.map +1 -0
  218. package/dist/composables/useBatchDelete.d.ts +18 -0
  219. package/dist/composables/useBatchDelete.js +21 -0
  220. package/dist/composables/useBatchDelete.js.map +1 -0
  221. package/dist/composables/useCompactScreen.d.ts +12 -0
  222. package/dist/composables/useCompactScreen.js +17 -0
  223. package/dist/composables/useCompactScreen.js.map +1 -0
  224. package/dist/composables/useConfirm.d.ts +18 -0
  225. package/dist/composables/useConfirm.js +61 -0
  226. package/dist/composables/useConfirm.js.map +1 -0
  227. package/dist/composables/useFullscreenToggle.d.ts +11 -0
  228. package/dist/composables/useFullscreenToggle.js +64 -0
  229. package/dist/composables/useFullscreenToggle.js.map +1 -0
  230. package/dist/composables/useHeaderTools.d.ts +31 -0
  231. package/dist/composables/useHeaderTools.js +15 -0
  232. package/dist/composables/useHeaderTools.js.map +1 -0
  233. package/dist/composables/useLayoutMenu.d.ts +17 -0
  234. package/dist/composables/useLayoutMenu.js +93 -0
  235. package/dist/composables/useLayoutMenu.js.map +1 -0
  236. package/dist/composables/useMenuBadge.d.ts +11 -0
  237. package/dist/composables/useMenuBadge.js +17 -0
  238. package/dist/composables/useMenuBadge.js.map +1 -0
  239. package/dist/composables/useMenuFlat.d.ts +8 -0
  240. package/dist/composables/useMenuFlat.js +29 -0
  241. package/dist/composables/useMenuFlat.js.map +1 -0
  242. package/dist/composables/useModule.d.ts +16 -0
  243. package/dist/composables/useModule.js +44 -0
  244. package/dist/composables/useModule.js.map +1 -0
  245. package/dist/composables/useNoticeAction.d.ts +8 -0
  246. package/dist/composables/useNoticeAction.js +79 -0
  247. package/dist/composables/useNoticeAction.js.map +1 -0
  248. package/dist/composables/usePageTitle.d.ts +1 -0
  249. package/dist/composables/usePageTitle.js +20 -0
  250. package/dist/composables/usePageTitle.js.map +1 -0
  251. package/dist/composables/useRealtime.d.ts +31 -0
  252. package/dist/composables/useRealtime.js +59 -0
  253. package/dist/composables/useRealtime.js.map +1 -0
  254. package/dist/composables/useSite.d.ts +24 -0
  255. package/dist/composables/useSite.js +27 -0
  256. package/dist/composables/useSite.js.map +1 -0
  257. package/dist/composables/useTabTitle.d.ts +1 -0
  258. package/dist/composables/useTabTitle.js +10 -0
  259. package/dist/composables/useTabTitle.js.map +1 -0
  260. package/dist/composables/useTableRowSort.d.ts +20 -0
  261. package/dist/composables/useTableRowSort.js +59 -0
  262. package/dist/composables/useTableRowSort.js.map +1 -0
  263. package/dist/composables/useTableZoom.d.ts +5 -0
  264. package/dist/composables/useTableZoom.js +30 -0
  265. package/dist/composables/useTableZoom.js.map +1 -0
  266. package/dist/composables/useTheme.d.ts +13 -0
  267. package/dist/composables/useTheme.js +30 -0
  268. package/dist/composables/useTheme.js.map +1 -0
  269. package/dist/composables/useVisualViewportHeight.d.ts +3 -0
  270. package/dist/composables/useVisualViewportHeight.js +16 -0
  271. package/dist/composables/useVisualViewportHeight.js.map +1 -0
  272. package/dist/createSmartAdmin.d.ts +56 -0
  273. package/dist/createSmartAdmin.js +76 -0
  274. package/dist/createSmartAdmin.js.map +1 -0
  275. package/dist/directives/auth.d.ts +16 -0
  276. package/dist/directives/auth.js +19 -0
  277. package/dist/directives/auth.js.map +1 -0
  278. package/dist/env.d.ts +10 -0
  279. package/dist/index.d.ts +90 -0
  280. package/dist/index.js +273 -0
  281. package/dist/index.js.map +1 -0
  282. package/dist/layouts/AppHeader.vue.d.ts +12 -0
  283. package/dist/layouts/AppHeader.vue.js +8 -0
  284. package/dist/layouts/AppHeader.vue.js.map +1 -0
  285. package/dist/layouts/AppHeader2.vue.js +352 -0
  286. package/dist/layouts/AppHeader2.vue.js.map +1 -0
  287. package/dist/layouts/LayoutModeCards.vue.d.ts +3 -0
  288. package/dist/layouts/LayoutModeCards.vue.js +8 -0
  289. package/dist/layouts/LayoutModeCards.vue.js.map +1 -0
  290. package/dist/layouts/LayoutModeCards2.vue.js +67 -0
  291. package/dist/layouts/LayoutModeCards2.vue.js.map +1 -0
  292. package/dist/layouts/NoticeBell.vue.d.ts +3 -0
  293. package/dist/layouts/NoticeBell.vue.js +8 -0
  294. package/dist/layouts/NoticeBell.vue.js.map +1 -0
  295. package/dist/layouts/NoticeBell2.vue.js +292 -0
  296. package/dist/layouts/NoticeBell2.vue.js.map +1 -0
  297. package/dist/layouts/PersonalLayout.vue.d.ts +3 -0
  298. package/dist/layouts/PersonalLayout.vue.js +8 -0
  299. package/dist/layouts/PersonalLayout.vue.js.map +1 -0
  300. package/dist/layouts/PersonalLayout2.vue.js +65 -0
  301. package/dist/layouts/PersonalLayout2.vue.js.map +1 -0
  302. package/dist/layouts/SettingRow.vue.d.ts +16 -0
  303. package/dist/layouts/SettingRow.vue.js +8 -0
  304. package/dist/layouts/SettingRow.vue.js.map +1 -0
  305. package/dist/layouts/SettingRow2.vue.js +23 -0
  306. package/dist/layouts/SettingRow2.vue.js.map +1 -0
  307. package/dist/layouts/SettingsDrawer.vue.d.ts +10 -0
  308. package/dist/layouts/SettingsDrawer.vue.js +8 -0
  309. package/dist/layouts/SettingsDrawer.vue.js.map +1 -0
  310. package/dist/layouts/SettingsDrawer2.vue.js +380 -0
  311. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -0
  312. package/dist/layouts/TabsBar.vue.d.ts +3 -0
  313. package/dist/layouts/TabsBar.vue.js +8 -0
  314. package/dist/layouts/TabsBar.vue.js.map +1 -0
  315. package/dist/layouts/TabsBar2.vue.js +132 -0
  316. package/dist/layouts/TabsBar2.vue.js.map +1 -0
  317. package/dist/layouts/components/SideNav.vue.d.ts +15 -0
  318. package/dist/layouts/components/SideNav.vue.js +8 -0
  319. package/dist/layouts/components/SideNav.vue.js.map +1 -0
  320. package/dist/layouts/components/SideNav2.vue.js +49 -0
  321. package/dist/layouts/components/SideNav2.vue.js.map +1 -0
  322. package/dist/layouts/default.vue.d.ts +3 -0
  323. package/dist/layouts/default.vue.js +8 -0
  324. package/dist/layouts/default.vue.js.map +1 -0
  325. package/dist/layouts/default2.vue.js +213 -0
  326. package/dist/layouts/default2.vue.js.map +1 -0
  327. package/dist/lib/chunkReload.d.ts +9 -0
  328. package/dist/lib/chunkReload.js +24 -0
  329. package/dist/lib/chunkReload.js.map +1 -0
  330. package/dist/lib/icons.d.ts +2 -0
  331. package/dist/lib/icons.js +39 -0
  332. package/dist/lib/icons.js.map +1 -0
  333. package/dist/lib/loadingBar.d.ts +7 -0
  334. package/dist/lib/loadingBar.js +18 -0
  335. package/dist/lib/loadingBar.js.map +1 -0
  336. package/dist/lib/markdown.d.ts +8 -0
  337. package/dist/lib/markdown.js +16 -0
  338. package/dist/lib/markdown.js.map +1 -0
  339. package/dist/lib/markdownLinks.d.ts +26 -0
  340. package/dist/lib/markdownLinks.js +21 -0
  341. package/dist/lib/markdownLinks.js.map +1 -0
  342. package/dist/lib/noticeActions.d.ts +13 -0
  343. package/dist/lib/noticeActions.js +16 -0
  344. package/dist/lib/noticeActions.js.map +1 -0
  345. package/dist/lib/runtime.d.ts +21 -0
  346. package/dist/lib/runtime.js +13 -0
  347. package/dist/lib/runtime.js.map +1 -0
  348. package/dist/locales/en-US.d.ts +1358 -0
  349. package/dist/locales/en-US.js +1362 -0
  350. package/dist/locales/en-US.js.map +1 -0
  351. package/dist/locales/index.d.ts +30 -0
  352. package/dist/locales/index.js +46 -0
  353. package/dist/locales/index.js.map +1 -0
  354. package/dist/locales/menuTitle.d.ts +8 -0
  355. package/dist/locales/menuTitle.js +19 -0
  356. package/dist/locales/menuTitle.js.map +1 -0
  357. package/dist/locales/zh-CN.d.ts +1358 -0
  358. package/dist/locales/zh-CN.js +1368 -0
  359. package/dist/locales/zh-CN.js.map +1 -0
  360. package/dist/router/bootFailure.d.ts +8 -0
  361. package/dist/router/bootFailure.js +11 -0
  362. package/dist/router/bootFailure.js.map +1 -0
  363. package/dist/router/detailRoutes.d.ts +2 -0
  364. package/dist/router/detailRoutes.js +19 -0
  365. package/dist/router/detailRoutes.js.map +1 -0
  366. package/dist/router/index.d.ts +3 -0
  367. package/dist/router/index.js +58 -0
  368. package/dist/router/index.js.map +1 -0
  369. package/dist/router/namedPage.d.ts +13 -0
  370. package/dist/router/namedPage.js +12 -0
  371. package/dist/router/namedPage.js.map +1 -0
  372. package/dist/router/routes.d.ts +2 -0
  373. package/dist/router/routes.js +121 -0
  374. package/dist/router/routes.js.map +1 -0
  375. package/dist/router/viewRegistry.d.ts +18 -0
  376. package/dist/router/viewRegistry.js +26 -0
  377. package/dist/router/viewRegistry.js.map +1 -0
  378. package/dist/stores/app.d.ts +83 -0
  379. package/dist/stores/app.js +82 -0
  380. package/dist/stores/app.js.map +1 -0
  381. package/dist/stores/auth.d.ts +106 -0
  382. package/dist/stores/auth.js +59 -0
  383. package/dist/stores/auth.js.map +1 -0
  384. package/dist/stores/dict.d.ts +11 -0
  385. package/dist/stores/dict.js +36 -0
  386. package/dist/stores/dict.js.map +1 -0
  387. package/dist/stores/tabs.d.ts +53 -0
  388. package/dist/stores/tabs.js +88 -0
  389. package/dist/stores/tabs.js.map +1 -0
  390. package/dist/stores/user.d.ts +64 -0
  391. package/dist/stores/user.js +64 -0
  392. package/dist/stores/user.js.map +1 -0
  393. package/dist/style.css +1 -0
  394. package/dist/theme/accents.d.ts +2 -0
  395. package/dist/theme/accents.js +5 -0
  396. package/dist/theme/accents.js.map +1 -0
  397. package/dist/theme/mix.d.ts +26 -0
  398. package/dist/theme/mix.js +43 -0
  399. package/dist/theme/mix.js.map +1 -0
  400. package/dist/theme/naive-theme.d.ts +9 -0
  401. package/dist/theme/naive-theme.js +89 -0
  402. package/dist/theme/naive-theme.js.map +1 -0
  403. package/dist/types/api.d.ts +714 -0
  404. package/dist/types/api.js +15 -0
  405. package/dist/types/api.js.map +1 -0
  406. package/dist/types/menu.d.ts +67 -0
  407. package/dist/types/menu.js +26 -0
  408. package/dist/types/menu.js.map +1 -0
  409. package/dist/utils/chunkUpload.d.ts +6 -0
  410. package/dist/utils/chunkUpload.js +35 -0
  411. package/dist/utils/chunkUpload.js.map +1 -0
  412. package/dist/utils/download.d.ts +8 -0
  413. package/dist/utils/download.js +8 -0
  414. package/dist/utils/download.js.map +1 -0
  415. package/dist/utils/error.d.ts +14 -0
  416. package/dist/utils/error.js +50 -0
  417. package/dist/utils/error.js.map +1 -0
  418. package/dist/utils/format.d.ts +20 -0
  419. package/dist/utils/format.js +19 -0
  420. package/dist/utils/format.js.map +1 -0
  421. package/dist/utils/importDup.d.ts +17 -0
  422. package/dist/utils/importDup.js +18 -0
  423. package/dist/utils/importDup.js.map +1 -0
  424. package/dist/utils/oauthBrand.d.ts +100 -0
  425. package/dist/utils/oauthBrand.js +97 -0
  426. package/dist/utils/oauthBrand.js.map +1 -0
  427. package/dist/utils/tree.d.ts +33 -0
  428. package/dist/utils/tree.js +47 -0
  429. package/dist/utils/tree.js.map +1 -0
  430. package/dist/utils/ua.d.ts +7 -0
  431. package/dist/utils/ua.js +33 -0
  432. package/dist/utils/ua.js.map +1 -0
  433. package/dist/utils/url.d.ts +16 -0
  434. package/dist/utils/url.js +13 -0
  435. package/dist/utils/url.js.map +1 -0
  436. package/dist/views/dashboard/biz.vue.d.ts +3 -0
  437. package/dist/views/dashboard/biz.vue.js +8 -0
  438. package/dist/views/dashboard/biz.vue.js.map +1 -0
  439. package/dist/views/dashboard/biz2.vue.js +136 -0
  440. package/dist/views/dashboard/biz2.vue.js.map +1 -0
  441. package/dist/views/dashboard/workbench.vue.d.ts +3 -0
  442. package/dist/views/dashboard/workbench.vue.js +8 -0
  443. package/dist/views/dashboard/workbench.vue.js.map +1 -0
  444. package/dist/views/dashboard/workbench2.vue.js +195 -0
  445. package/dist/views/dashboard/workbench2.vue.js.map +1 -0
  446. package/dist/views/embed/iframe.vue.d.ts +3 -0
  447. package/dist/views/embed/iframe.vue.js +8 -0
  448. package/dist/views/embed/iframe.vue.js.map +1 -0
  449. package/dist/views/embed/iframe2.vue.js +21 -0
  450. package/dist/views/embed/iframe2.vue.js.map +1 -0
  451. package/dist/views/error/404.vue.d.ts +3 -0
  452. package/dist/views/error/404.vue.js +8 -0
  453. package/dist/views/error/404.vue.js.map +1 -0
  454. package/dist/views/error/4042.vue.js +31 -0
  455. package/dist/views/error/4042.vue.js.map +1 -0
  456. package/dist/views/error/BootError.vue.d.ts +3 -0
  457. package/dist/views/error/BootError.vue.js +8 -0
  458. package/dist/views/error/BootError.vue.js.map +1 -0
  459. package/dist/views/error/BootError2.vue.js +57 -0
  460. package/dist/views/error/BootError2.vue.js.map +1 -0
  461. package/dist/views/error/MissingRoute.vue.d.ts +3 -0
  462. package/dist/views/error/MissingRoute.vue.js +8 -0
  463. package/dist/views/error/MissingRoute.vue.js.map +1 -0
  464. package/dist/views/error/MissingRoute2.vue.js +23 -0
  465. package/dist/views/error/MissingRoute2.vue.js.map +1 -0
  466. package/dist/views/login/LoginForm.vue.d.ts +12 -0
  467. package/dist/views/login/LoginForm.vue.js +8 -0
  468. package/dist/views/login/LoginForm.vue.js.map +1 -0
  469. package/dist/views/login/LoginForm2.vue.js +642 -0
  470. package/dist/views/login/LoginForm2.vue.js.map +1 -0
  471. package/dist/views/login/index.vue.d.ts +3 -0
  472. package/dist/views/login/index.vue.js +8 -0
  473. package/dist/views/login/index.vue.js.map +1 -0
  474. package/dist/views/login/index2.vue.js +79 -0
  475. package/dist/views/login/index2.vue.js.map +1 -0
  476. package/dist/views/login/skins/AuroraGlass.vue.d.ts +3 -0
  477. package/dist/views/login/skins/AuroraGlass.vue.js +8 -0
  478. package/dist/views/login/skins/AuroraGlass.vue.js.map +1 -0
  479. package/dist/views/login/skins/AuroraGlass2.vue.js +80 -0
  480. package/dist/views/login/skins/AuroraGlass2.vue.js.map +1 -0
  481. package/dist/views/login/skins/SplitPanel.vue.d.ts +3 -0
  482. package/dist/views/login/skins/SplitPanel.vue.js +8 -0
  483. package/dist/views/login/skins/SplitPanel.vue.js.map +1 -0
  484. package/dist/views/login/skins/SplitPanel2.vue.js +85 -0
  485. package/dist/views/login/skins/SplitPanel2.vue.js.map +1 -0
  486. package/dist/views/login/skins/Spotlight.vue.d.ts +3 -0
  487. package/dist/views/login/skins/Spotlight.vue.js +8 -0
  488. package/dist/views/login/skins/Spotlight.vue.js.map +1 -0
  489. package/dist/views/login/skins/Spotlight2.vue.js +36 -0
  490. package/dist/views/login/skins/Spotlight2.vue.js.map +1 -0
  491. package/dist/views/login/skins.d.ts +8 -0
  492. package/dist/views/login/skins.js +13 -0
  493. package/dist/views/login/skins.js.map +1 -0
  494. package/dist/views/mfa/bindComplete.d.ts +7 -0
  495. package/dist/views/mfa/bindComplete.js +8 -0
  496. package/dist/views/mfa/bindComplete.js.map +1 -0
  497. package/dist/views/mfa/index.vue.d.ts +3 -0
  498. package/dist/views/mfa/index.vue.js +8 -0
  499. package/dist/views/mfa/index.vue.js.map +1 -0
  500. package/dist/views/mfa/index2.vue.js +425 -0
  501. package/dist/views/mfa/index2.vue.js.map +1 -0
  502. package/dist/views/module/index.vue.d.ts +3 -0
  503. package/dist/views/module/index.vue.js +8 -0
  504. package/dist/views/module/index.vue.js.map +1 -0
  505. package/dist/views/module/index2.vue.js +142 -0
  506. package/dist/views/module/index2.vue.js.map +1 -0
  507. package/dist/views/oauth/callback.vue.d.ts +3 -0
  508. package/dist/views/oauth/callback.vue.js +8 -0
  509. package/dist/views/oauth/callback.vue.js.map +1 -0
  510. package/dist/views/oauth/callback2.vue.js +86 -0
  511. package/dist/views/oauth/callback2.vue.js.map +1 -0
  512. package/dist/views/personal/bindings.vue.d.ts +3 -0
  513. package/dist/views/personal/bindings.vue.js +8 -0
  514. package/dist/views/personal/bindings.vue.js.map +1 -0
  515. package/dist/views/personal/bindings2.vue.js +220 -0
  516. package/dist/views/personal/bindings2.vue.js.map +1 -0
  517. package/dist/views/personal/notice.vue.d.ts +3 -0
  518. package/dist/views/personal/notice.vue.js +5 -0
  519. package/dist/views/personal/notice.vue.js.map +1 -0
  520. package/dist/views/personal/notice2.vue.js +163 -0
  521. package/dist/views/personal/notice2.vue.js.map +1 -0
  522. package/dist/views/personal/password.vue.d.ts +3 -0
  523. package/dist/views/personal/password.vue.js +5 -0
  524. package/dist/views/personal/password.vue.js.map +1 -0
  525. package/dist/views/personal/password2.vue.js +147 -0
  526. package/dist/views/personal/password2.vue.js.map +1 -0
  527. package/dist/views/personal/profile.vue.d.ts +3 -0
  528. package/dist/views/personal/profile.vue.js +8 -0
  529. package/dist/views/personal/profile.vue.js.map +1 -0
  530. package/dist/views/personal/profile2.vue.js +264 -0
  531. package/dist/views/personal/profile2.vue.js.map +1 -0
  532. package/dist/views/personal/security.vue.d.ts +3 -0
  533. package/dist/views/personal/security.vue.js +8 -0
  534. package/dist/views/personal/security.vue.js.map +1 -0
  535. package/dist/views/personal/security2.vue.js +82 -0
  536. package/dist/views/personal/security2.vue.js.map +1 -0
  537. package/dist/views/personal/sessions.vue.d.ts +3 -0
  538. package/dist/views/personal/sessions.vue.js +8 -0
  539. package/dist/views/personal/sessions.vue.js.map +1 -0
  540. package/dist/views/personal/sessions2.vue.js +101 -0
  541. package/dist/views/personal/sessions2.vue.js.map +1 -0
  542. package/dist/views/system/cache/index.vue.d.ts +3 -0
  543. package/dist/views/system/cache/index.vue.js +8 -0
  544. package/dist/views/system/cache/index.vue.js.map +1 -0
  545. package/dist/views/system/cache/index2.vue.js +113 -0
  546. package/dist/views/system/cache/index2.vue.js.map +1 -0
  547. package/dist/views/system/config/components/ConfigFormModal.vue.d.ts +16 -0
  548. package/dist/views/system/config/components/ConfigFormModal.vue.js +5 -0
  549. package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -0
  550. package/dist/views/system/config/components/ConfigFormModal2.vue.js +177 -0
  551. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -0
  552. package/dist/views/system/config/components/ExternalAuthConfig.vue.d.ts +3 -0
  553. package/dist/views/system/config/components/ExternalAuthConfig.vue.js +8 -0
  554. package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +1 -0
  555. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +218 -0
  556. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +1 -0
  557. package/dist/views/system/config/components/GroupExtraConfig.vue.d.ts +9 -0
  558. package/dist/views/system/config/components/GroupExtraConfig.vue.js +8 -0
  559. package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +1 -0
  560. package/dist/views/system/config/components/GroupExtraConfig2.vue.js +108 -0
  561. package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +1 -0
  562. package/dist/views/system/config/components/HighSensConfig.vue.d.ts +3 -0
  563. package/dist/views/system/config/components/HighSensConfig.vue.js +5 -0
  564. package/dist/views/system/config/components/HighSensConfig.vue.js.map +1 -0
  565. package/dist/views/system/config/components/HighSensConfig2.vue.js +134 -0
  566. package/dist/views/system/config/components/HighSensConfig2.vue.js.map +1 -0
  567. package/dist/views/system/config/components/JobConfig.vue.d.ts +3 -0
  568. package/dist/views/system/config/components/JobConfig.vue.js +5 -0
  569. package/dist/views/system/config/components/JobConfig.vue.js.map +1 -0
  570. package/dist/views/system/config/components/JobConfig2.vue.js +116 -0
  571. package/dist/views/system/config/components/JobConfig2.vue.js.map +1 -0
  572. package/dist/views/system/config/components/OtherConfig.vue.d.ts +3 -0
  573. package/dist/views/system/config/components/OtherConfig.vue.js +5 -0
  574. package/dist/views/system/config/components/OtherConfig.vue.js.map +1 -0
  575. package/dist/views/system/config/components/OtherConfig2.vue.js +121 -0
  576. package/dist/views/system/config/components/OtherConfig2.vue.js.map +1 -0
  577. package/dist/views/system/config/components/SecurityConfig.vue.d.ts +3 -0
  578. package/dist/views/system/config/components/SecurityConfig.vue.js +8 -0
  579. package/dist/views/system/config/components/SecurityConfig.vue.js.map +1 -0
  580. package/dist/views/system/config/components/SecurityConfig2.vue.js +456 -0
  581. package/dist/views/system/config/components/SecurityConfig2.vue.js.map +1 -0
  582. package/dist/views/system/config/components/SysBaseConfig.vue.d.ts +3 -0
  583. package/dist/views/system/config/components/SysBaseConfig.vue.js +5 -0
  584. package/dist/views/system/config/components/SysBaseConfig.vue.js.map +1 -0
  585. package/dist/views/system/config/components/SysBaseConfig2.vue.js +107 -0
  586. package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +1 -0
  587. package/dist/views/system/config/components/UploadConfig.vue.d.ts +3 -0
  588. package/dist/views/system/config/components/UploadConfig.vue.js +5 -0
  589. package/dist/views/system/config/components/UploadConfig.vue.js.map +1 -0
  590. package/dist/views/system/config/components/UploadConfig2.vue.js +135 -0
  591. package/dist/views/system/config/components/UploadConfig2.vue.js.map +1 -0
  592. package/dist/views/system/config/groups.d.ts +9 -0
  593. package/dist/views/system/config/groups.js +18 -0
  594. package/dist/views/system/config/groups.js.map +1 -0
  595. package/dist/views/system/config/index.vue.d.ts +3 -0
  596. package/dist/views/system/config/index.vue.js +5 -0
  597. package/dist/views/system/config/index.vue.js.map +1 -0
  598. package/dist/views/system/config/index2.vue.js +127 -0
  599. package/dist/views/system/config/index2.vue.js.map +1 -0
  600. package/dist/views/system/dict/index.vue.d.ts +3 -0
  601. package/dist/views/system/dict/index.vue.js +8 -0
  602. package/dist/views/system/dict/index.vue.js.map +1 -0
  603. package/dist/views/system/dict/index2.vue.js +560 -0
  604. package/dist/views/system/dict/index2.vue.js.map +1 -0
  605. package/dist/views/system/file/index.vue.d.ts +3 -0
  606. package/dist/views/system/file/index.vue.js +5 -0
  607. package/dist/views/system/file/index.vue.js.map +1 -0
  608. package/dist/views/system/file/index2.vue.js +186 -0
  609. package/dist/views/system/file/index2.vue.js.map +1 -0
  610. package/dist/views/system/job/index.vue.d.ts +3 -0
  611. package/dist/views/system/job/index.vue.js +8 -0
  612. package/dist/views/system/job/index.vue.js.map +1 -0
  613. package/dist/views/system/job/index2.vue.js +1167 -0
  614. package/dist/views/system/job/index2.vue.js.map +1 -0
  615. package/dist/views/system/job-log/index.vue.d.ts +3 -0
  616. package/dist/views/system/job-log/index.vue.js +8 -0
  617. package/dist/views/system/job-log/index.vue.js.map +1 -0
  618. package/dist/views/system/job-log/index2.vue.js +411 -0
  619. package/dist/views/system/job-log/index2.vue.js.map +1 -0
  620. package/dist/views/system/job-monitor/index.vue.d.ts +3 -0
  621. package/dist/views/system/job-monitor/index.vue.js +8 -0
  622. package/dist/views/system/job-monitor/index.vue.js.map +1 -0
  623. package/dist/views/system/job-monitor/index2.vue.js +253 -0
  624. package/dist/views/system/job-monitor/index2.vue.js.map +1 -0
  625. package/dist/views/system/log/exception/index.vue.d.ts +3 -0
  626. package/dist/views/system/log/exception/index.vue.js +8 -0
  627. package/dist/views/system/log/exception/index.vue.js.map +1 -0
  628. package/dist/views/system/log/exception/index2.vue.js +216 -0
  629. package/dist/views/system/log/exception/index2.vue.js.map +1 -0
  630. package/dist/views/system/log/login/index.vue.d.ts +3 -0
  631. package/dist/views/system/log/login/index.vue.js +5 -0
  632. package/dist/views/system/log/login/index.vue.js.map +1 -0
  633. package/dist/views/system/log/login/index2.vue.js +113 -0
  634. package/dist/views/system/log/login/index2.vue.js.map +1 -0
  635. package/dist/views/system/log/op/index.vue.d.ts +3 -0
  636. package/dist/views/system/log/op/index.vue.js +8 -0
  637. package/dist/views/system/log/op/index.vue.js.map +1 -0
  638. package/dist/views/system/log/op/index2.vue.js +332 -0
  639. package/dist/views/system/log/op/index2.vue.js.map +1 -0
  640. package/dist/views/system/menu/components/ButtonManager.vue.d.ts +21 -0
  641. package/dist/views/system/menu/components/ButtonManager.vue.js +8 -0
  642. package/dist/views/system/menu/components/ButtonManager.vue.js.map +1 -0
  643. package/dist/views/system/menu/components/ButtonManager2.vue.js +498 -0
  644. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -0
  645. package/dist/views/system/menu/components/MenuFormModal.vue.d.ts +22 -0
  646. package/dist/views/system/menu/components/MenuFormModal.vue.js +8 -0
  647. package/dist/views/system/menu/components/MenuFormModal.vue.js.map +1 -0
  648. package/dist/views/system/menu/components/MenuFormModal2.vue.js +259 -0
  649. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -0
  650. package/dist/views/system/menu/index.vue.d.ts +3 -0
  651. package/dist/views/system/menu/index.vue.js +8 -0
  652. package/dist/views/system/menu/index.vue.js.map +1 -0
  653. package/dist/views/system/menu/index2.vue.js +391 -0
  654. package/dist/views/system/menu/index2.vue.js.map +1 -0
  655. package/dist/views/system/module/index.vue.d.ts +3 -0
  656. package/dist/views/system/module/index.vue.js +8 -0
  657. package/dist/views/system/module/index.vue.js.map +1 -0
  658. package/dist/views/system/module/index2.vue.js +344 -0
  659. package/dist/views/system/module/index2.vue.js.map +1 -0
  660. package/dist/views/system/monitor/index.vue.d.ts +3 -0
  661. package/dist/views/system/monitor/index.vue.js +8 -0
  662. package/dist/views/system/monitor/index.vue.js.map +1 -0
  663. package/dist/views/system/monitor/index2.vue.js +184 -0
  664. package/dist/views/system/monitor/index2.vue.js.map +1 -0
  665. package/dist/views/system/notice/index.vue.d.ts +3 -0
  666. package/dist/views/system/notice/index.vue.js +8 -0
  667. package/dist/views/system/notice/index.vue.js.map +1 -0
  668. package/dist/views/system/notice/index2.vue.js +401 -0
  669. package/dist/views/system/notice/index2.vue.js.map +1 -0
  670. package/dist/views/system/org/index.vue.d.ts +3 -0
  671. package/dist/views/system/org/index.vue.js +8 -0
  672. package/dist/views/system/org/index.vue.js.map +1 -0
  673. package/dist/views/system/org/index2.vue.js +397 -0
  674. package/dist/views/system/org/index2.vue.js.map +1 -0
  675. package/dist/views/system/position/index.vue.d.ts +3 -0
  676. package/dist/views/system/position/index.vue.js +5 -0
  677. package/dist/views/system/position/index.vue.js.map +1 -0
  678. package/dist/views/system/position/index2.vue.js +211 -0
  679. package/dist/views/system/position/index2.vue.js.map +1 -0
  680. package/dist/views/system/recycle/index.vue.d.ts +3 -0
  681. package/dist/views/system/recycle/index.vue.js +8 -0
  682. package/dist/views/system/recycle/index.vue.js.map +1 -0
  683. package/dist/views/system/recycle/index2.vue.js +121 -0
  684. package/dist/views/system/recycle/index2.vue.js.map +1 -0
  685. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +18 -0
  686. package/dist/views/system/role/components/GrantMenuTable.vue.js +8 -0
  687. package/dist/views/system/role/components/GrantMenuTable.vue.js.map +1 -0
  688. package/dist/views/system/role/components/GrantMenuTable2.vue.js +212 -0
  689. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -0
  690. package/dist/views/system/role/components/grantMenuGroups.d.ts +31 -0
  691. package/dist/views/system/role/components/grantMenuGroups.js +76 -0
  692. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -0
  693. package/dist/views/system/role/index.vue.d.ts +3 -0
  694. package/dist/views/system/role/index.vue.js +5 -0
  695. package/dist/views/system/role/index.vue.js.map +1 -0
  696. package/dist/views/system/role/index2.vue.js +476 -0
  697. package/dist/views/system/role/index2.vue.js.map +1 -0
  698. package/dist/views/system/session/index.vue.d.ts +3 -0
  699. package/dist/views/system/session/index.vue.js +5 -0
  700. package/dist/views/system/session/index.vue.js.map +1 -0
  701. package/dist/views/system/session/index2.vue.js +80 -0
  702. package/dist/views/system/session/index2.vue.js.map +1 -0
  703. package/dist/views/system/user/components/ResetPasswordModal.vue.d.ts +10 -0
  704. package/dist/views/system/user/components/ResetPasswordModal.vue.js +8 -0
  705. package/dist/views/system/user/components/ResetPasswordModal.vue.js.map +1 -0
  706. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +111 -0
  707. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -0
  708. package/dist/views/system/user/components/UserFormModal.vue.d.ts +30 -0
  709. package/dist/views/system/user/components/UserFormModal.vue.js +8 -0
  710. package/dist/views/system/user/components/UserFormModal.vue.js.map +1 -0
  711. package/dist/views/system/user/components/UserFormModal2.vue.js +415 -0
  712. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -0
  713. package/dist/views/system/user/index.vue.d.ts +3 -0
  714. package/dist/views/system/user/index.vue.js +8 -0
  715. package/dist/views/system/user/index.vue.js.map +1 -0
  716. package/dist/views/system/user/index2.vue.js +427 -0
  717. package/dist/views/system/user/index2.vue.js.map +1 -0
  718. package/package.json +99 -0
@@ -0,0 +1,214 @@
1
+ import { defineComponent as G, ref as p, computed as m, onMounted as H, reactive as J, openBlock as h, createBlock as I, unref as l, withCtx as v, createElementVNode as s, toDisplayString as i, createVNode as u, createTextVNode as _, createElementBlock as N, Fragment as Q, renderList as W, createCommentVNode as X, h as Y } from "vue";
2
+ import { useMessage as Z, NTree as ee, NButton as y, NInput as te, NEmpty as ne } from "naive-ui";
3
+ import { SmartTable as le } from "smart-naive-table";
4
+ import { useI18n as oe } from "vue-i18n";
5
+ import ae from "../AppIcon.vue.js";
6
+ import se from "../FormContainer/index.vue.js";
7
+ /* empty css */
8
+ import { orgApi as re, userApi as P } from "../../api/index.js";
9
+ import { buildTree as ie } from "../../utils/tree.js";
10
+ import { translateError as ce } from "../../utils/error.js";
11
+ const de = { class: "user-picker" }, ue = { class: "picker-tree" }, pe = { class: "panel-header" }, me = { class: "picker-table" }, fe = { class: "panel-header" }, he = { class: "picker-selected" }, ve = { class: "panel-header" }, ye = { class: "selected-list" }, ke = { class: "selected-name" }, ge = { class: "selected-account" }, Ue = /* @__PURE__ */ G({
12
+ __name: "index",
13
+ props: {
14
+ excludeIds: {}
15
+ },
16
+ emits: ["confirm"],
17
+ setup(U, { expose: E, emit: T }) {
18
+ const q = U, B = T, { t: a } = oe(), K = Z(), k = p(!1), g = p(), w = p([]), L = m(() => [{ id: 0, parentId: -1, name: a("common.all"), children: ie(w.value) }]), c = p(null), V = m(
19
+ () => c.value && c.value !== 0 ? c.value : void 0
20
+ );
21
+ H(async () => {
22
+ try {
23
+ w.value = await re.list();
24
+ } catch {
25
+ }
26
+ });
27
+ function R(t) {
28
+ var e;
29
+ c.value = t[0] ?? null, (e = g.value) == null || e.refresh();
30
+ }
31
+ const d = p([]), S = m(() => new Set(q.excludeIds ?? [])), $ = (t) => P.page({
32
+ page: t.page,
33
+ pageSize: t.pageSize,
34
+ name: t.name,
35
+ orgId: V.value
36
+ }), A = [
37
+ { type: "selection" },
38
+ { key: "name", title: () => a("user.name"), width: 100 },
39
+ { key: "account", title: () => a("user.account"), width: 120, search: !0 },
40
+ {
41
+ key: "op",
42
+ title: () => a("common.operation"),
43
+ width: 70,
44
+ render: (t) => {
45
+ const e = b.value.has(t.id) || S.value.has(t.id);
46
+ return Y(
47
+ y,
48
+ {
49
+ size: "tiny",
50
+ type: "primary",
51
+ quaternary: !0,
52
+ disabled: e,
53
+ onClick: () => C([t])
54
+ },
55
+ () => a(e ? "userPicker.added" : "userPicker.add")
56
+ );
57
+ }
58
+ }
59
+ ], o = J([]), b = m(() => new Set(o.map((t) => t.id))), f = p(""), x = m(() => {
60
+ const t = f.value.trim().toLowerCase();
61
+ return t ? o.filter(
62
+ (e) => e.name.toLowerCase().includes(t) || e.account.toLowerCase().includes(t)
63
+ ) : o;
64
+ });
65
+ function C(t) {
66
+ for (const e of t)
67
+ !b.value.has(e.id) && !S.value.has(e.id) && o.push(e);
68
+ }
69
+ function D() {
70
+ var e;
71
+ const t = (l((e = g.value) == null ? void 0 : e.rows) ?? []).filter((n) => d.value.includes(n.id));
72
+ C(t), d.value = [];
73
+ }
74
+ function F(t) {
75
+ const e = o.findIndex((n) => n.id === t);
76
+ e >= 0 && o.splice(e, 1);
77
+ }
78
+ function M() {
79
+ o.splice(0, o.length);
80
+ }
81
+ async function O(t) {
82
+ if (o.splice(0, o.length), d.value = [], f.value = "", c.value = null, k.value = !0, t != null && t.length)
83
+ try {
84
+ const { items: e } = await P.page({ page: 1, pageSize: 200 }), n = e.filter((r) => t.includes(r.id)), z = new Set(n.map((r) => r.id));
85
+ for (const r of n) o.push(r);
86
+ for (const r of t)
87
+ z.has(r) || o.push({ id: r, account: String(r), name: String(r) });
88
+ } catch {
89
+ for (const e of t) o.push({ id: e, account: String(e), name: String(e) });
90
+ }
91
+ }
92
+ async function j() {
93
+ const t = o.map((e) => e.id);
94
+ B("confirm", t);
95
+ }
96
+ return E({ open: O }), (t, e) => (h(), I(se, {
97
+ show: k.value,
98
+ "onUpdate:show": e[3] || (e[3] = (n) => k.value = n),
99
+ title: l(a)("userPicker.title"),
100
+ width: 1100,
101
+ "on-confirm": j,
102
+ "confirm-text": l(a)("common.confirm")
103
+ }, {
104
+ default: v(() => [
105
+ s("div", de, [
106
+ s("div", ue, [
107
+ s("div", pe, i(l(a)("org.title")), 1),
108
+ u(l(ee), {
109
+ data: L.value,
110
+ "key-field": "id",
111
+ "label-field": "name",
112
+ "children-field": "children",
113
+ selectable: "",
114
+ "block-line": "",
115
+ "default-expand-all": "",
116
+ "selected-keys": c.value != null ? [c.value] : [],
117
+ "onUpdate:selectedKeys": R
118
+ }, null, 8, ["data", "selected-keys"])
119
+ ]),
120
+ s("div", me, [
121
+ s("div", fe, [
122
+ s("span", null, i(l(a)("userPicker.available")), 1),
123
+ u(l(y), {
124
+ size: "tiny",
125
+ type: "primary",
126
+ disabled: d.value.length === 0,
127
+ onClick: D
128
+ }, {
129
+ default: v(() => [
130
+ _(i(l(a)("userPicker.addChecked")) + "(" + i(d.value.length) + ") ", 1)
131
+ ]),
132
+ _: 1
133
+ }, 8, ["disabled"])
134
+ ]),
135
+ u(l(le), {
136
+ "default-page-size": 100,
137
+ ref_key: "tableRef",
138
+ ref: g,
139
+ columns: A,
140
+ fetcher: $,
141
+ pagination: { pageSize: 10 },
142
+ size: "small",
143
+ "storage-key": "user-picker",
144
+ "tool-button": !1,
145
+ "checked-row-keys": d.value,
146
+ "onUpdate:checkedRowKeys": e[0] || (e[0] = (n) => d.value = n),
147
+ onError: e[1] || (e[1] = (n) => l(K).error(l(ce)(n)))
148
+ }, null, 8, ["checked-row-keys"])
149
+ ]),
150
+ s("div", he, [
151
+ s("div", ve, [
152
+ s("span", null, i(l(a)("userPicker.selected")) + "(" + i(o.length) + ")", 1),
153
+ u(l(y), {
154
+ size: "tiny",
155
+ quaternary: "",
156
+ type: "error",
157
+ disabled: o.length === 0,
158
+ onClick: M
159
+ }, {
160
+ default: v(() => [
161
+ _(i(l(a)("userPicker.clear")), 1)
162
+ ]),
163
+ _: 1
164
+ }, 8, ["disabled"])
165
+ ]),
166
+ u(l(te), {
167
+ value: f.value,
168
+ "onUpdate:value": e[2] || (e[2] = (n) => f.value = n),
169
+ size: "small",
170
+ clearable: "",
171
+ placeholder: l(a)("common.search"),
172
+ style: { "margin-bottom": "8px" }
173
+ }, null, 8, ["value", "placeholder"]),
174
+ s("div", ye, [
175
+ (h(!0), N(Q, null, W(x.value, (n) => (h(), N("div", {
176
+ key: n.id,
177
+ class: "selected-item"
178
+ }, [
179
+ s("span", ke, [
180
+ _(i(n.name) + " ", 1),
181
+ s("span", ge, "(" + i(n.account) + ")", 1)
182
+ ]),
183
+ u(l(y), {
184
+ size: "tiny",
185
+ quaternary: "",
186
+ type: "error",
187
+ onClick: (z) => F(n.id)
188
+ }, {
189
+ icon: v(() => [
190
+ u(ae, {
191
+ icon: "ph:x",
192
+ size: 14
193
+ })
194
+ ]),
195
+ _: 1
196
+ }, 8, ["onClick"])
197
+ ]))), 128)),
198
+ x.value.length === 0 ? (h(), I(l(ne), {
199
+ key: 0,
200
+ description: l(a)("common.noData"),
201
+ style: { padding: "24px 0" }
202
+ }, null, 8, ["description"])) : X("", !0)
203
+ ])
204
+ ])
205
+ ])
206
+ ]),
207
+ _: 1
208
+ }, 8, ["show", "title", "confirm-text"]));
209
+ }
210
+ });
211
+ export {
212
+ Ue as default
213
+ };
214
+ //# sourceMappingURL=index2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.vue.js","sources":["../../../src/components/UserPicker/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, h, onMounted, reactive, ref, unref } from 'vue'\nimport { NButton, NEmpty, NInput, NTree, useMessage } from 'naive-ui'\nimport { SmartTable, type SmartTableColumn, type SmartTableInst } from 'smart-naive-table'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\nimport FormContainer from '#/components/FormContainer/index.vue'\nimport { orgApi, userApi } from '#/api'\nimport { buildTree } from '#/utils/tree'\nimport { translateError } from '#/utils/error'\nimport type { SysOrg, UserItem } from '#/types/api'\n\nconst props = defineProps<{ excludeIds?: number[] }>()\nconst emit = defineEmits<{ (e: 'confirm', ids: number[]): void }>()\n\nconst { t } = useI18n()\nconst message = useMessage()\n\nconst show = ref(false)\nconst tableRef = ref<SmartTableInst<UserItem>>()\n\n// ── 机构树(左面板) ──\nconst orgFlat = ref<SysOrg[]>([])\nconst orgTree = computed(() => {\n const all = { id: 0, parentId: -1, name: t('common.all'), children: buildTree(orgFlat.value) }\n return [all]\n})\nconst selectedOrgKey = ref<number | null>(null)\nconst orgId = computed(() =>\n selectedOrgKey.value && selectedOrgKey.value !== 0 ? selectedOrgKey.value : undefined,\n)\n\nonMounted(async () => {\n try {\n orgFlat.value = await orgApi.list()\n } catch {\n /* 静默 */\n }\n})\n\nfunction onOrgSelect(keys: Array<string | number>) {\n selectedOrgKey.value = (keys[0] as number) ?? null\n tableRef.value?.refresh()\n}\n\n// ── 可选用户表(中间面板) ──\nconst checkedKeys = ref<(string | number)[]>([])\nconst excludeSet = computed(() => new Set(props.excludeIds ?? []))\n\nconst fetcher = (params: { page: number; pageSize: number; name?: string }) =>\n userApi.page({\n page: params.page,\n pageSize: params.pageSize,\n name: params.name,\n orgId: orgId.value,\n })\n\nconst columns: SmartTableColumn<UserItem>[] = [\n { type: 'selection' },\n { key: 'name', title: () => t('user.name'), width: 100 },\n { key: 'account', title: () => t('user.account'), width: 120, search: true },\n {\n key: 'op',\n title: () => t('common.operation'),\n width: 70,\n render: r => {\n const already = selectedSet.value.has(r.id) || excludeSet.value.has(r.id)\n return h(\n NButton,\n {\n size: 'tiny',\n type: 'primary',\n quaternary: true,\n disabled: already,\n onClick: () => addUsers([r]),\n },\n () => (already ? t('userPicker.added') : t('userPicker.add')),\n )\n },\n },\n]\n\n// ── 已选用户(右面板) ──\nconst selected = reactive<UserItem[]>([])\nconst selectedSet = computed(() => new Set(selected.map(u => u.id)))\nconst selectedSearch = ref('')\nconst filteredSelected = computed(() => {\n const q = selectedSearch.value.trim().toLowerCase()\n if (!q) return selected\n return selected.filter(\n u => u.name.toLowerCase().includes(q) || u.account.toLowerCase().includes(q),\n )\n})\n\nfunction addUsers(users: UserItem[]) {\n for (const u of users) {\n if (!selectedSet.value.has(u.id) && !excludeSet.value.has(u.id)) {\n selected.push(u)\n }\n }\n}\n\nfunction addChecked() {\n // SmartTable 只 expose rows,别改用未公开的 tableData —— 恒为 undefined。\n // unref 兼容类型声明的 Ref 与运行时 expose 解包两种形态。\n const rows = (unref(tableRef.value?.rows) ?? []).filter(r => checkedKeys.value.includes(r.id))\n addUsers(rows)\n checkedKeys.value = []\n}\n\nfunction removeUser(id: number) {\n const idx = selected.findIndex(u => u.id === id)\n if (idx >= 0) selected.splice(idx, 1)\n}\n\nfunction clearSelected() {\n selected.splice(0, selected.length)\n}\n\n// ── 公共 API ──\nasync function open(ids?: number[]) {\n selected.splice(0, selected.length)\n checkedKeys.value = []\n selectedSearch.value = ''\n selectedOrgKey.value = null\n show.value = true\n\n if (ids?.length) {\n try {\n // ponytail: 拉一页,靠 id 过滤。200 是内核 Api:MaxPageSize 的默认上限,再大后端直接回 48001。\n // 用户超过 200 个时,排在后面的 id 解析不出名字,走下面那条退回显示 id 的分支;\n // 真要支持更大规模的用户名单,再改成分页搜索。\n const { items } = await userApi.page({ page: 1, pageSize: 200 })\n const all = items.filter(u => ids.includes(u.id))\n // 没拉到的 id(翻页之外),退回只显示 id\n const found = new Set(all.map(u => u.id))\n for (const u of all) selected.push(u)\n for (const id of ids) {\n if (!found.has(id)) selected.push({ id, account: String(id), name: String(id) } as UserItem)\n }\n } catch {\n for (const id of ids) selected.push({ id, account: String(id), name: String(id) } as UserItem)\n }\n }\n}\n\nasync function handleConfirm() {\n const ids = selected.map(u => u.id)\n emit('confirm', ids)\n}\n\ndefineExpose({ open })\n</script>\n\n<template>\n <FormContainer\n v-model:show=\"show\"\n :title=\"t('userPicker.title')\"\n :width=\"1100\"\n :on-confirm=\"handleConfirm\"\n :confirm-text=\"t('common.confirm')\"\n >\n <div class=\"user-picker\">\n <!-- 左面板:机构树 -->\n <div class=\"picker-tree\">\n <div class=\"panel-header\">{{ t('org.title') }}</div>\n <n-tree\n :data=\"orgTree\"\n key-field=\"id\"\n label-field=\"name\"\n children-field=\"children\"\n selectable\n block-line\n default-expand-all\n :selected-keys=\"selectedOrgKey != null ? [selectedOrgKey] : []\"\n @update:selected-keys=\"onOrgSelect\"\n />\n </div>\n\n <!-- 中间面板:可选用户 -->\n <div class=\"picker-table\">\n <div class=\"panel-header\">\n <span>{{ t('userPicker.available') }}</span>\n <n-button\n size=\"tiny\"\n type=\"primary\"\n :disabled=\"checkedKeys.length === 0\"\n @click=\"addChecked\"\n >\n {{ t('userPicker.addChecked') }}({{ checkedKeys.length }})\n </n-button>\n </div>\n <SmartTable\n :default-page-size=\"100\"\n ref=\"tableRef\"\n :columns=\"columns\"\n :fetcher=\"fetcher\"\n :pagination=\"{ pageSize: 10 }\"\n size=\"small\"\n storage-key=\"user-picker\"\n :tool-button=\"false\"\n :checked-row-keys=\"checkedKeys\"\n @update:checked-row-keys=\"(keys: (string | number)[]) => (checkedKeys = keys)\"\n @error=\"e => message.error(translateError(e))\"\n />\n </div>\n\n <!-- 右面板:已选用户 -->\n <div class=\"picker-selected\">\n <div class=\"panel-header\">\n <span>{{ t('userPicker.selected') }}({{ selected.length }})</span>\n <n-button\n size=\"tiny\"\n quaternary\n type=\"error\"\n :disabled=\"selected.length === 0\"\n @click=\"clearSelected\"\n >\n {{ t('userPicker.clear') }}\n </n-button>\n </div>\n <n-input\n v-model:value=\"selectedSearch\"\n size=\"small\"\n clearable\n :placeholder=\"t('common.search')\"\n style=\"margin-bottom: 8px\"\n />\n <div class=\"selected-list\">\n <div v-for=\"u in filteredSelected\" :key=\"u.id\" class=\"selected-item\">\n <span class=\"selected-name\">\n {{ u.name }}\n <span class=\"selected-account\">({{ u.account }})</span>\n </span>\n <n-button size=\"tiny\" quaternary type=\"error\" @click=\"removeUser(u.id)\">\n <template #icon><AppIcon icon=\"ph:x\" :size=\"14\" /></template>\n </n-button>\n </div>\n <n-empty\n v-if=\"filteredSelected.length === 0\"\n :description=\"t('common.noData')\"\n style=\"padding: 24px 0\"\n />\n </div>\n </div>\n </div>\n </FormContainer>\n</template>\n\n<style scoped>\n.user-picker {\n display: flex;\n gap: 12px;\n min-height: 400px;\n}\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-weight: 600;\n padding: 0 0 8px;\n border-bottom: 1px solid var(--n-border-color, #e0e0e6);\n margin-bottom: 8px;\n}\n.picker-tree {\n width: 160px;\n flex-shrink: 0;\n overflow: auto;\n border-right: 1px solid var(--n-border-color, #e0e0e6);\n padding-right: 12px;\n}\n.picker-table {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n.picker-selected {\n width: 200px;\n flex-shrink: 0;\n border-left: 1px solid var(--n-border-color, #e0e0e6);\n padding-left: 12px;\n display: flex;\n flex-direction: column;\n}\n.selected-list {\n flex: 1;\n overflow: auto;\n max-height: 380px;\n}\n.selected-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 0;\n font-size: 13px;\n border-bottom: 1px solid var(--n-border-color, #e0e0e6);\n}\n.selected-item:last-child {\n border-bottom: none;\n}\n.selected-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.selected-account {\n color: var(--n-text-color-disabled, #999);\n font-size: 12px;\n margin-left: 2px;\n}\n</style>\n"],"names":["props","__props","emit","__emit","t","useI18n","message","useMessage","show","ref","tableRef","orgFlat","orgTree","computed","buildTree","selectedOrgKey","orgId","onMounted","orgApi","onOrgSelect","keys","_a","checkedKeys","excludeSet","fetcher","params","userApi","columns","r","already","selectedSet","h","NButton","addUsers","selected","reactive","u","selectedSearch","filteredSelected","q","users","addChecked","rows","unref","removeUser","id","idx","clearSelected","open","ids","items","all","found","handleConfirm","__expose","_createBlock","FormContainer","$event","_unref","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","_createVNode","NTree","_hoisted_4","_hoisted_5","_createTextVNode","SmartTable","_cache","e","translateError","_hoisted_6","_hoisted_7","NInput","_hoisted_8","_createElementBlock","_Fragment","_renderList","_hoisted_9","_hoisted_10","AppIcon","NEmpty"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ type __VLS_Props = {
2
+ orgId?: number | null;
3
+ pageSize?: number;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ pageSize: number;
7
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,32 @@
1
+ import { defineComponent as i, computed as c, openBlock as s, createBlock as m, mergeProps as d } from "vue";
2
+ import l from "../ApiSelect/index.vue.js";
3
+ import { userApi as f } from "../../api/index.js";
4
+ const v = /* @__PURE__ */ i({
5
+ inheritAttrs: !1,
6
+ __name: "index",
7
+ props: {
8
+ orgId: {},
9
+ pageSize: { default: 50 }
10
+ },
11
+ setup(t) {
12
+ const e = t;
13
+ async function n(o) {
14
+ const { items: a } = await f.page({
15
+ page: 1,
16
+ pageSize: e.pageSize,
17
+ name: o || void 0,
18
+ orgId: e.orgId ?? void 0
19
+ });
20
+ return a.map((r) => ({ label: `${r.name}(${r.account})`, value: r.id }));
21
+ }
22
+ const p = c(() => e.orgId);
23
+ return (o, a) => (s(), m(l, d({
24
+ fetch: n,
25
+ "reload-on": p.value
26
+ }, o.$attrs), null, 16, ["reload-on"]));
27
+ }
28
+ });
29
+ export {
30
+ v as default
31
+ };
32
+ //# sourceMappingURL=index.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.js","sources":["../../../src/components/UserSelect/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 人员选择器:基于 ApiSelect,fetch=userApi.page(name 搜索 + 可选 orgId 部门过滤)。\n// 选项 label 为「姓名(账号)」,value 为用户 id。单/多选、placeholder 等一切经 $attrs 透传。\nimport { computed } from 'vue'\nimport type { SelectOption } from 'naive-ui'\nimport ApiSelect from '#/components/ApiSelect/index.vue'\nimport { userApi } from '#/api'\n\ndefineOptions({ inheritAttrs: false })\nconst props = withDefaults(defineProps<{ orgId?: number | null; pageSize?: number }>(), {\n pageSize: 50,\n})\n\nasync function fetch(keyword: string): Promise<SelectOption[]> {\n const { items } = await userApi.page({\n page: 1,\n pageSize: props.pageSize,\n name: keyword || undefined,\n orgId: props.orgId ?? undefined,\n })\n return items.map(u => ({ label: `${u.name}(${u.account})`, value: u.id }))\n}\nconst reloadOn = computed(() => props.orgId) // 部门过滤变化 → 重新拉\n</script>\n\n<template>\n <ApiSelect :fetch=\"fetch\" :reload-on=\"reloadOn\" v-bind=\"$attrs\" />\n</template>\n"],"names":["props","__props","fetch","keyword","items","userApi","u","reloadOn","computed","_openBlock","_createBlock","ApiSelect","_mergeProps","$attrs"],"mappings":";;;;;;;;;;;AASA,UAAMA,IAAQC;AAId,mBAAeC,EAAMC,GAA0C;AAC7D,YAAM,EAAE,OAAAC,EAAA,IAAU,MAAMC,EAAQ,KAAK;AAAA,QACnC,MAAM;AAAA,QACN,UAAUL,EAAM;AAAA,QAChB,MAAMG,KAAW;AAAA,QACjB,OAAOH,EAAM,SAAS;AAAA,MAAA,CACvB;AACD,aAAOI,EAAM,IAAI,CAAAE,OAAM,EAAE,OAAO,GAAGA,EAAE,IAAI,IAAIA,EAAE,OAAO,KAAK,OAAOA,EAAE,KAAK;AAAA,IAC3E;AACA,UAAMC,IAAWC,EAAS,MAAMR,EAAM,KAAK;sBAIzCS,EAAA,GAAAC,EAAkEC,GAAlEC,EAAkE;AAAA,MAAtD,OAAAV;AAAA,MAAe,aAAWK,EAAA;AAAA,IAAA,GAAkBM,EAAAA,MAAM,GAAA,MAAA,IAAA,CAAA,WAAA,CAAA;AAAA;;"}
@@ -0,0 +1,5 @@
1
+ import f from "./index.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=index2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ code: string;
3
+ icon?: string | null;
4
+ size?: number;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {
7
+ isBadge: import('vue').ComputedRef<boolean>;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ size: number;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import o from "./BrandIcon2.vue.js";
2
+ /* empty css */
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-d7509bf4"]]);
5
+ export {
6
+ m as default
7
+ };
8
+ //# sourceMappingURL=BrandIcon.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandIcon.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,95 @@
1
+ import y from "../../assets/oauth/dingtalk.svg.js";
2
+ import q from "../../assets/oauth/gitee.svg.js";
3
+ import x from "../../assets/oauth/github.svg.js";
4
+ import B from "../../assets/oauth/qq.svg.js";
5
+ import C from "../../assets/oauth/wechat.svg.js";
6
+ import I from "../../assets/oauth/wecom.svg.js";
7
+ import { defineComponent as S, computed as n, openBlock as a, createElementBlock as r, normalizeStyle as j, createBlock as h, unref as m, toDisplayString as L } from "vue";
8
+ import { SmartIcon as b } from "smart-naive-icon";
9
+ import { resolveProviderIcon as O } from "../../utils/oauthBrand.js";
10
+ const U = ["src", "width", "height"], $ = {
11
+ key: 2,
12
+ class: "oauth-brand-letter"
13
+ }, N = /* @__PURE__ */ S({
14
+ __name: "BrandIcon",
15
+ props: {
16
+ code: {},
17
+ icon: {},
18
+ size: { default: 22 }
19
+ },
20
+ setup(t, { expose: v }) {
21
+ const d = t, e = n(() => O(d.code, d.icon)), _ = /* @__PURE__ */ Object.assign({
22
+ "../../assets/oauth/dingtalk.svg": y,
23
+ "../../assets/oauth/gitee.svg": q,
24
+ "../../assets/oauth/github.svg": x,
25
+ "../../assets/oauth/qq.svg": B,
26
+ "../../assets/oauth/wechat.svg": C,
27
+ "../../assets/oauth/wecom.svg": I
28
+ });
29
+ function k(o) {
30
+ const u = o.toLowerCase();
31
+ for (const l of ["svg", "png", "webp"]) {
32
+ const i = Object.entries(_).find(([z, g]) => {
33
+ var f;
34
+ return !g || typeof g != "string" ? !1 : (((f = z.replace(/\\/g, "/").split("/").pop()) == null ? void 0 : f.toLowerCase()) ?? "") === `${u}.${l}`;
35
+ });
36
+ if (i) return i[1];
37
+ }
38
+ return null;
39
+ }
40
+ const s = n(() => e.value.kind !== "brand" ? null : k(e.value.code)), p = {
41
+ github: "ant-design:github-filled",
42
+ wechat: "ant-design:wechat-filled",
43
+ wecom: "ant-design:wechat-work-filled",
44
+ dingtalk: "ant-design:dingtalk-circle-filled",
45
+ qq: "ant-design:qq-circle-filled"
46
+ }, w = {
47
+ github: "#24292f",
48
+ wechat: "#07c160",
49
+ wecom: "#2b7de9",
50
+ dingtalk: "#0089ff",
51
+ qq: "#12b7f5",
52
+ gitee: "#c71d23"
53
+ }, c = n(() => {
54
+ if (e.value.kind !== "brand") return null;
55
+ const o = e.value.code;
56
+ return {
57
+ icon: p[o],
58
+ color: w[o] ?? "#666"
59
+ };
60
+ });
61
+ return v({ isBadge: n(() => !!s.value) }), (o, u) => {
62
+ var l, i;
63
+ return s.value ? (a(), r("img", {
64
+ key: 0,
65
+ class: "oauth-brand-badge",
66
+ src: s.value,
67
+ width: t.size,
68
+ height: t.size,
69
+ alt: "",
70
+ draggable: "false"
71
+ }, null, 8, U)) : (a(), r("span", {
72
+ key: 1,
73
+ class: "oauth-brand-icon",
74
+ style: j({ width: t.size + "px", height: t.size + "px", color: (l = c.value) == null ? void 0 : l.color }),
75
+ "aria-hidden": "true"
76
+ }, [
77
+ (i = c.value) != null && i.icon ? (a(), h(m(b), {
78
+ key: 0,
79
+ icon: c.value.icon,
80
+ size: t.size,
81
+ fallback: "ph:link-simple"
82
+ }, null, 8, ["icon", "size"])) : e.value.kind === "iconify" ? (a(), h(m(b), {
83
+ key: 1,
84
+ icon: e.value.name,
85
+ size: t.size,
86
+ fallback: "ph:link-simple"
87
+ }, null, 8, ["icon", "size"])) : (a(), r("span", $, L(e.value.kind === "letter" ? e.value.letter : "?"), 1))
88
+ ], 4));
89
+ };
90
+ }
91
+ });
92
+ export {
93
+ N as default
94
+ };
95
+ //# sourceMappingURL=BrandIcon2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandIcon2.vue.js","sources":["../../../src/components/oauth/BrandIcon.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 外部登录品牌标:\n// 1) 优先本地 assets/oauth/{code}.svg|png(彩色圆标,Gitee 风)\n// 2) 再 Iconify 名\n// 3) 首字母\nimport { computed } from 'vue'\nimport { SmartIcon } from 'smart-naive-icon'\nimport { resolveProviderIcon, type BrandCode } from '#/utils/oauthBrand'\n\nconst props = withDefaults(\n defineProps<{\n code: string\n icon?: string | null\n size?: number\n }>(),\n { size: 22 },\n)\n\nconst resolved = computed(() => resolveProviderIcon(props.code, props.icon))\n\n// 内核自带的品牌圆标(assets/oauth/),库构建时内联进产物\nconst assetModules = import.meta.glob('../../assets/oauth/*.{svg,png,webp}', {\n eager: true,\n import: 'default',\n query: '?url',\n}) as Record<string, string>\n\nfunction localBadgeUrl(code: string): string | null {\n const c = code.toLowerCase()\n for (const ext of ['svg', 'png', 'webp'] as const) {\n const hit = Object.entries(assetModules).find(([path, url]) => {\n if (!url || typeof url !== 'string') return false\n const base = path.replace(/\\\\/g, '/').split('/').pop()?.toLowerCase() ?? ''\n return base === `${c}.${ext}`\n })\n if (hit) return hit[1]\n }\n return null\n}\n\nconst badgeUrl = computed(() => {\n if (resolved.value.kind !== 'brand') return null\n return localBadgeUrl(resolved.value.code)\n})\n\n/** 无本地图时的线标回退(仅占位,真正观感靠你放的本地圆标) */\nconst fallbackIconify: Partial<Record<BrandCode, string>> = {\n github: 'ant-design:github-filled',\n wechat: 'ant-design:wechat-filled',\n wecom: 'ant-design:wechat-work-filled',\n dingtalk: 'ant-design:dingtalk-circle-filled',\n qq: 'ant-design:qq-circle-filled',\n}\n\nconst fallbackColor: Partial<Record<BrandCode, string>> = {\n github: '#24292f',\n wechat: '#07c160',\n wecom: '#2b7de9',\n dingtalk: '#0089ff',\n qq: '#12b7f5',\n gitee: '#c71d23',\n}\n\nconst fallback = computed(() => {\n if (resolved.value.kind !== 'brand') return null\n const code = resolved.value.code\n return {\n icon: fallbackIconify[code],\n color: fallbackColor[code] ?? '#666',\n }\n})\n\n// 给父级判断:是否整图圆标(用于去掉按钮灰边)\ndefineExpose({ isBadge: computed(() => !!badgeUrl.value) })\n</script>\n\n<template>\n <!-- 本地彩色圆标:铺满按钮,图自带圆底 -->\n <img\n v-if=\"badgeUrl\"\n class=\"oauth-brand-badge\"\n :src=\"badgeUrl\"\n :width=\"size\"\n :height=\"size\"\n alt=\"\"\n draggable=\"false\"\n />\n <span\n v-else\n class=\"oauth-brand-icon\"\n :style=\"{ width: size + 'px', height: size + 'px', color: fallback?.color }\"\n aria-hidden=\"true\"\n >\n <SmartIcon v-if=\"fallback?.icon\" :icon=\"fallback.icon\" :size=\"size\" fallback=\"ph:link-simple\" />\n <SmartIcon\n v-else-if=\"resolved.kind === 'iconify'\"\n :icon=\"resolved.name\"\n :size=\"size\"\n fallback=\"ph:link-simple\"\n />\n <span v-else class=\"oauth-brand-letter\">\n {{ resolved.kind === 'letter' ? resolved.letter : '?' }}\n </span>\n </span>\n</template>\n\n<style scoped>\n/* 方形素材也强制裁成圆(Gitee 风);cover 铺满避免留白变「方块」 */\n.oauth-brand-badge {\n display: block;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n border-radius: 50%;\n overflow: hidden;\n pointer-events: none;\n user-select: none;\n flex-shrink: 0;\n}\n.oauth-brand-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n}\n.oauth-brand-letter {\n font-size: 12px;\n font-weight: 700;\n color: var(--color-text-secondary, #666);\n line-height: 1;\n}\n</style>\n"],"names":["props","__props","resolved","computed","resolveProviderIcon","assetModules","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","localBadgeUrl","code","c","ext","hit","path","url","_a","badgeUrl","fallbackIconify","fallbackColor","fallback","__expose","_createElementBlock","_b","_createBlock","_unref","SmartIcon","_hoisted_2","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GASRC,IAAWC,EAAS,MAAMC,EAAoBJ,EAAM,MAAMA,EAAM,IAAI,CAAC,GAGrEK,IAAe,uBAAA,OAAA;AAAA,MAAA,mCAAAC;AAAA,MAAA,gCAAAC;AAAA,MAAA,iCAAAC;AAAA,MAAA,6BAAAC;AAAA,MAAA,iCAAAC;AAAA,MAAA,gCAAAC;AAAA,IAAA,CAAA;AAMrB,aAASC,EAAcC,GAA6B;AAClD,YAAMC,IAAID,EAAK,YAAA;AACf,iBAAWE,KAAO,CAAC,OAAO,OAAO,MAAM,GAAY;AACjD,cAAMC,IAAM,OAAO,QAAQX,CAAY,EAAE,KAAK,CAAC,CAACY,GAAMC,CAAG,MAAM;;AAC7D,iBAAI,CAACA,KAAO,OAAOA,KAAQ,WAAiB,QAC/BC,IAAAF,EAAK,QAAQ,OAAO,GAAG,EAAE,MAAM,GAAG,EAAE,UAApC,gBAAAE,EAA2C,kBAAiB,QACzD,GAAGL,CAAC,IAAIC,CAAG;AAAA,QAC7B,CAAC;AACD,YAAIC,EAAK,QAAOA,EAAI,CAAC;AAAA,MACvB;AACA,aAAO;AAAA,IACT;AAEA,UAAMI,IAAWjB,EAAS,MACpBD,EAAS,MAAM,SAAS,UAAgB,OACrCU,EAAcV,EAAS,MAAM,IAAI,CACzC,GAGKmB,IAAsD;AAAA,MAC1D,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,MACV,IAAI;AAAA,IAAA,GAGAC,IAAoD;AAAA,MACxD,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,OAAO;AAAA,IAAA,GAGHC,IAAWpB,EAAS,MAAM;AAC9B,UAAID,EAAS,MAAM,SAAS,QAAS,QAAO;AAC5C,YAAMW,IAAOX,EAAS,MAAM;AAC5B,aAAO;AAAA,QACL,MAAMmB,EAAgBR,CAAI;AAAA,QAC1B,OAAOS,EAAcT,CAAI,KAAK;AAAA,MAAA;AAAA,IAElC,CAAC;AAGD,WAAAW,EAAa,EAAE,SAASrB,EAAS,MAAM,CAAC,CAACiB,EAAS,KAAK,GAAG;;aAMhDA,EAAA,cADRK,EAQE,OAAA;AAAA;QANA,OAAM;AAAA,QACL,KAAKL,EAAA;AAAA,QACL,OAAOnB,EAAA;AAAA,QACP,QAAQA,EAAA;AAAA,QACT,KAAI;AAAA,QACJ,WAAU;AAAA,MAAA,wBAEZwB,EAgBO,QAAA;AAAA;QAdL,OAAM;AAAA,QACL,kBAAgBxB,EAAA,OAAI,MAAA,QAAiBA,SAAI,MAAA,QAAgBkB,IAAAI,EAAA,UAAA,gBAAAJ,EAAU,OAAK;AAAA,QACzE,eAAY;AAAA,MAAA;SAEKO,IAAAH,EAAA,UAAA,QAAAG,EAAU,aAA3BC,EAAgGC,EAAAC,CAAA,GAAA;AAAA;UAA9D,MAAMN,EAAA,MAAS;AAAA,UAAO,MAAMtB,EAAA;AAAA,UAAM,UAAS;AAAA,QAAA,iCAEhEC,EAAA,MAAS,SAAI,kBAD1ByB,EAKEC,EAAAC,CAAA,GAAA;AAAA;UAHC,MAAM3B,EAAA,MAAS;AAAA,UACf,MAAMD,EAAA;AAAA,UACP,UAAS;AAAA,QAAA,uCAEXwB,EAEO,QAFPK,GAEOC,EADF7B,EAAA,MAAS,SAAI,WAAgBA,EAAA,MAAS,SAAM,GAAA,GAAA,CAAA;AAAA,MAAA;;;;"}
@@ -0,0 +1,32 @@
1
+ import { MenuNode } from '../types/menu';
2
+ /**
3
+ * 菜单节点的可物化结果。三种变体把 iframe/view/missing 各自所需的数据收窄,调用方无需再次
4
+ * 解释后端的 `component` 字符串。
5
+ */
6
+ export type MenuRouteDescriptor = {
7
+ kind: 'iframe';
8
+ path: string;
9
+ name: string;
10
+ title: string;
11
+ icon?: string;
12
+ iframeSrc: string;
13
+ } | {
14
+ kind: 'view';
15
+ path: string;
16
+ name: string;
17
+ title: string;
18
+ icon?: string;
19
+ viewKey: string;
20
+ } | {
21
+ kind: 'missing';
22
+ path: string;
23
+ name: string;
24
+ title: string;
25
+ icon?: string;
26
+ component: string;
27
+ };
28
+ /**
29
+ * 只负责菜单路由决策,让分支逻辑能脱离 vue-router 做单测;路由注册与组件物化仍由
30
+ * `useAuthMenu` 负责。`viewKeys` 必须来自同一张页面 glob,避免存在性判断与 loader 来源漂移。
31
+ */
32
+ export declare function describeMenuRoute(node: MenuNode, viewKeys: ReadonlySet<string>): MenuRouteDescriptor | null;
@@ -0,0 +1,37 @@
1
+ import { isHttpUrl as n } from "../utils/url.js";
2
+ import { menuTitleKey as p } from "../locales/menuTitle.js";
3
+ import { MenuType as u } from "../types/menu.js";
4
+ function s(t, a) {
5
+ if (t.type !== u.Menu || !t.path || n(t.path)) return null;
6
+ const r = t.path.startsWith("/") ? t.path : `/${t.path}`, e = `menu-${t.id}`, i = t.component;
7
+ if (i && n(i))
8
+ return {
9
+ kind: "iframe",
10
+ path: r,
11
+ name: e,
12
+ title: p(t.title, t.path),
13
+ icon: t.icon,
14
+ iframeSrc: i
15
+ };
16
+ if (!i) return null;
17
+ const c = i.replace(/^\/+/, "").replace(/\.vue$/, "");
18
+ return a.has(c) ? {
19
+ kind: "view",
20
+ path: r,
21
+ name: e,
22
+ title: p(t.title, t.path),
23
+ icon: t.icon,
24
+ viewKey: c
25
+ } : {
26
+ kind: "missing",
27
+ path: r,
28
+ name: e,
29
+ title: p(t.title, t.path),
30
+ icon: t.icon,
31
+ component: i
32
+ };
33
+ }
34
+ export {
35
+ s as describeMenuRoute
36
+ };
37
+ //# sourceMappingURL=authMenuRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authMenuRoute.js","sources":["../../src/composables/authMenuRoute.ts"],"sourcesContent":["import { isHttpUrl } from '#/utils/url'\nimport { menuTitleKey } from '#/locales/menuTitle'\nimport { MenuType, type MenuNode } from '#/types/menu'\n\n/**\n * 菜单节点的可物化结果。三种变体把 iframe/view/missing 各自所需的数据收窄,调用方无需再次\n * 解释后端的 `component` 字符串。\n */\nexport type MenuRouteDescriptor =\n | { kind: 'iframe'; path: string; name: string; title: string; icon?: string; iframeSrc: string }\n | { kind: 'view'; path: string; name: string; title: string; icon?: string; viewKey: string }\n | { kind: 'missing'; path: string; name: string; title: string; icon?: string; component: string }\n\n/**\n * 只负责菜单路由决策,让分支逻辑能脱离 vue-router 做单测;路由注册与组件物化仍由\n * `useAuthMenu` 负责。`viewKeys` 必须来自同一张页面 glob,避免存在性判断与 loader 来源漂移。\n */\nexport function describeMenuRoute(\n node: MenuNode,\n viewKeys: ReadonlySet<string>,\n): MenuRouteDescriptor | null {\n if (node.type !== MenuType.Menu || !node.path || isHttpUrl(node.path)) return null\n\n const path = node.path.startsWith('/') ? node.path : `/${node.path}`\n const name = `menu-${node.id}`\n const component = node.component\n if (component && isHttpUrl(component)) {\n return {\n kind: 'iframe',\n path,\n name,\n title: menuTitleKey(node.title, node.path),\n icon: node.icon,\n iframeSrc: component,\n }\n }\n if (!component) return null\n\n // 页面表的 key 形如 system/user/index;容忍存量配置带前导斜杠或 .vue 后缀\n const viewKey = component.replace(/^\\/+/, '').replace(/\\.vue$/, '')\n if (viewKeys.has(viewKey))\n return {\n kind: 'view',\n path,\n name,\n title: menuTitleKey(node.title, node.path),\n icon: node.icon,\n viewKey,\n }\n return {\n kind: 'missing',\n path,\n name,\n title: menuTitleKey(node.title, node.path),\n icon: node.icon,\n component,\n }\n}\n"],"names":["describeMenuRoute","node","viewKeys","MenuType","isHttpUrl","path","name","component","menuTitleKey","viewKey"],"mappings":";;;AAiBO,SAASA,EACdC,GACAC,GAC4B;AAC5B,MAAID,EAAK,SAASE,EAAS,QAAQ,CAACF,EAAK,QAAQG,EAAUH,EAAK,IAAI,EAAG,QAAO;AAE9E,QAAMI,IAAOJ,EAAK,KAAK,WAAW,GAAG,IAAIA,EAAK,OAAO,IAAIA,EAAK,IAAI,IAC5DK,IAAO,QAAQL,EAAK,EAAE,IACtBM,IAAYN,EAAK;AACvB,MAAIM,KAAaH,EAAUG,CAAS;AAClC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAAF;AAAA,MACA,MAAAC;AAAA,MACA,OAAOE,EAAaP,EAAK,OAAOA,EAAK,IAAI;AAAA,MACzC,MAAMA,EAAK;AAAA,MACX,WAAWM;AAAA,IAAA;AAGf,MAAI,CAACA,EAAW,QAAO;AAGvB,QAAME,IAAUF,EAAU,QAAQ,QAAQ,EAAE,EAAE,QAAQ,UAAU,EAAE;AAClE,SAAIL,EAAS,IAAIO,CAAO,IACf;AAAA,IACL,MAAM;AAAA,IACN,MAAAJ;AAAA,IACA,MAAAC;AAAA,IACA,OAAOE,EAAaP,EAAK,OAAOA,EAAK,IAAI;AAAA,IACzC,MAAMA,EAAK;AAAA,IACX,SAAAQ;AAAA,EAAA,IAEG;AAAA,IACL,MAAM;AAAA,IACN,MAAAJ;AAAA,IACA,MAAAC;AAAA,IACA,OAAOE,EAAaP,EAAK,OAAOA,EAAK,IAAI;AAAA,IACzC,MAAMA,EAAK;AAAA,IACX,WAAAM;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 清除前端会话缓存并尽量从服务端重拉:
3
+ * - 字典内存缓存全清
4
+ * - 站点品牌配置强制重取
5
+ * - 权限码 / 超管标记重取
6
+ * - 当前应用菜单树与动态路由重建
7
+ *
8
+ * 不碰登录态、外观偏好、标签页——只解决"改了字典/菜单/权限还看到旧数据"。
9
+ */
10
+ export declare function clearClientCache(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { personalApi as i } from "../api/index.js";
2
+ import { buildRoutesForModule as s } from "./useAuthMenu.js";
3
+ import { loadSite as a } from "./useSite.js";
4
+ import { useAuthStore as m } from "../stores/auth.js";
5
+ import { useDictStore as d } from "../stores/dict.js";
6
+ async function f() {
7
+ d().invalidate(), await a(!0);
8
+ const e = m(), [r, t] = await Promise.all([
9
+ i.permissions().then((o) => ({ ok: !0, codes: o })).catch(() => ({ ok: !1, codes: [] })),
10
+ i.profile().then((o) => ({ sadm: o.isSuperAdmin })).catch(() => ({ sadm: !1 }))
11
+ ]);
12
+ e.permissionCodes = r.codes, e.permissionsLoaded = r.ok, e.isSuperAdmin = t.sadm, e.currentModuleId != null && await s(e.currentModuleId);
13
+ }
14
+ export {
15
+ f as clearClientCache
16
+ };
17
+ //# sourceMappingURL=clearClientCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearClientCache.js","sources":["../../src/composables/clearClientCache.ts"],"sourcesContent":["import { personalApi } from '#/api'\nimport { buildRoutesForModule } from '#/composables/useAuthMenu'\nimport { loadSite } from '#/composables/useSite'\nimport { useAuthStore } from '#/stores/auth'\nimport { useDictStore } from '#/stores/dict'\n\n/**\n * 清除前端会话缓存并尽量从服务端重拉:\n * - 字典内存缓存全清\n * - 站点品牌配置强制重取\n * - 权限码 / 超管标记重取\n * - 当前应用菜单树与动态路由重建\n *\n * 不碰登录态、外观偏好、标签页——只解决\"改了字典/菜单/权限还看到旧数据\"。\n */\nexport async function clearClientCache(): Promise<void> {\n useDictStore().invalidate()\n await loadSite(true)\n\n const auth = useAuthStore()\n const [perm, profile] = await Promise.all([\n personalApi\n .permissions()\n .then(codes => ({ ok: true as const, codes }))\n .catch(() => ({ ok: false as const, codes: [] as string[] })),\n personalApi\n .profile()\n .then(p => ({ sadm: p.isSuperAdmin }))\n .catch(() => ({ sadm: false })),\n ])\n auth.permissionCodes = perm.codes\n auth.permissionsLoaded = perm.ok\n auth.isSuperAdmin = profile.sadm\n\n if (auth.currentModuleId != null) {\n await buildRoutesForModule(auth.currentModuleId)\n }\n}\n"],"names":["clearClientCache","useDictStore","loadSite","auth","useAuthStore","perm","profile","personalApi","codes","p","buildRoutesForModule"],"mappings":";;;;;AAeA,eAAsBA,IAAkC;AACtD,EAAAC,EAAA,EAAe,WAAA,GACf,MAAMC,EAAS,EAAI;AAEnB,QAAMC,IAAOC,EAAA,GACP,CAACC,GAAMC,CAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,IACxCC,EACG,YAAA,EACA,KAAK,CAAAC,OAAU,EAAE,IAAI,IAAe,OAAAA,EAAA,EAAQ,EAC5C,MAAM,OAAO,EAAE,IAAI,IAAgB,OAAO,CAAA,IAAiB;AAAA,IAC9DD,EACG,QAAA,EACA,KAAK,CAAAE,OAAM,EAAE,MAAMA,EAAE,aAAA,EAAe,EACpC,MAAM,OAAO,EAAE,MAAM,KAAQ;AAAA,EAAA,CACjC;AACD,EAAAN,EAAK,kBAAkBE,EAAK,OAC5BF,EAAK,oBAAoBE,EAAK,IAC9BF,EAAK,eAAeG,EAAQ,MAExBH,EAAK,mBAAmB,QAC1B,MAAMO,EAAqBP,EAAK,eAAe;AAEnD;"}
@@ -0,0 +1,3 @@
1
+ export { registerViews, viewComponentPaths, type ViewLoader } from '../router/viewRegistry';
2
+ /** 拉某应用的菜单树 → 重建动态路由(挂在 layout 下)。 */
3
+ export declare function buildRoutesForModule(moduleId: number): Promise<void>;
@@ -0,0 +1,61 @@
1
+ import { resetRouter as s, router as n, registerDynamic as r } from "../router/index.js";
2
+ import { namedPage as m } from "../router/namedPage.js";
3
+ import { registerDetailRoutes as l } from "../router/detailRoutes.js";
4
+ import { viewComponentPaths as f, getView as d } from "../router/viewRegistry.js";
5
+ import { registerViews as D } from "../router/viewRegistry.js";
6
+ import { useAuthStore as h } from "../stores/auth.js";
7
+ import { personalApi as R } from "../api/index.js";
8
+ import { describeMenuRoute as g } from "./authMenuRoute.js";
9
+ function a(i) {
10
+ return i.flatMap((t) => {
11
+ var o;
12
+ return [t, ...(o = t.children) != null && o.length ? a(t.children) : []];
13
+ });
14
+ }
15
+ async function b(i) {
16
+ const t = h(), o = await R.menu(i);
17
+ t.menuTree = o, t.currentModuleId = i;
18
+ const u = new Set(f());
19
+ s();
20
+ for (const c of a(o)) {
21
+ const e = g(c, u);
22
+ if (!e) continue;
23
+ if (n.hasRoute(e.name) && n.removeRoute(e.name), e.kind === "iframe") {
24
+ n.addRoute("layout", {
25
+ path: e.path,
26
+ name: e.name,
27
+ component: m(e.name, () => import("../views/embed/iframe.vue.js")),
28
+ meta: { title: e.title, icon: e.icon, keepAlive: !0, iframeSrc: e.iframeSrc }
29
+ }), r(e.name);
30
+ continue;
31
+ }
32
+ if (e.kind === "missing") {
33
+ console.warn("[menu] 缺少视图组件:", e.component), n.addRoute("layout", {
34
+ path: e.path,
35
+ name: e.name,
36
+ component: m(e.name, () => import("../views/error/MissingRoute.vue.js")),
37
+ meta: {
38
+ title: e.title,
39
+ icon: e.icon,
40
+ keepAlive: !0,
41
+ missingComponent: e.component
42
+ }
43
+ }), r(e.name);
44
+ continue;
45
+ }
46
+ const p = d(e.viewKey);
47
+ n.addRoute("layout", {
48
+ path: e.path,
49
+ name: e.name,
50
+ component: m(e.name, p),
51
+ meta: { title: e.title, icon: e.icon, keepAlive: !0 }
52
+ }), r(e.name);
53
+ }
54
+ l(), t.routesReady = !0;
55
+ }
56
+ export {
57
+ b as buildRoutesForModule,
58
+ D as registerViews,
59
+ f as viewComponentPaths
60
+ };
61
+ //# sourceMappingURL=useAuthMenu.js.map