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
package/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # smart-admin-web
2
+
3
+ SmartAdmin 的前端内核:布局壳、动态菜单路由、登录与鉴权、`v-auth` 权限指令、全部内置系统页(用户、角色、菜单、组织、岗位、字典、配置中心、日志、个人中心……)和共享组件。后端是 NuGet 包 [`SmartAdmin`](https://www.nuget.org/packages/SmartAdmin),两边**同号发布**,配套使用。
4
+
5
+ 包是预编译的(ESM + `.d.ts` + 一份 CSS),内置页不随应用源码走:升级只改版本号。
6
+
7
+ ## 起步
8
+
9
+ 从前端模板起步最省事,它就是一个装好这个包的薄壳应用:
10
+
11
+ ```bash
12
+ npx degit SmartCode-X/SmartAdmin/web/template web
13
+ cd web
14
+ npm install
15
+ npm run dev
16
+ ```
17
+
18
+ dev server 起在 `5173`,`/api`、`/openapi`、`/hub` 反代到后端的 `5100`(用环境变量 `SMART_API_TARGET` 改目标)。
19
+
20
+ 已有的 Vite + Vue 3 应用直接装:
21
+
22
+ ```bash
23
+ npm install --save-exact smart-admin-web@X.Y.Z # X.Y.Z = 后端 SmartAdmin 包的版本号
24
+ npm install vue vue-router pinia vue-i18n naive-ui @vueuse/core @iconify/vue smart-naive-table smart-naive-icon
25
+ ```
26
+
27
+ 第二行的九个是 peerDependencies。它们持有全局单例:app 实例、路由、状态、SmartTable 的全局默认、图标注册表。应用和内核必须共用同一份,所以由应用来装;版本落在包声明的范围之外时,`npm install` 会直接报错。
28
+
29
+ ## 用法
30
+
31
+ ```ts
32
+ // src/main.ts
33
+ import { createSmartAdmin } from 'smart-admin-web'
34
+ import 'smart-admin-web/style.css'
35
+
36
+ createSmartAdmin({
37
+ views: import.meta.glob('./views/**/*.vue'),
38
+ locales: import.meta.glob('./locales/ext/*/*.ts', { eager: true }),
39
+ apiBase: import.meta.env.VITE_API_BASE,
40
+ dev: import.meta.env.DEV,
41
+ }).mount('#app')
42
+ ```
43
+
44
+ 应用自己的东西都经 `createSmartAdmin` 交给内核:
45
+
46
+ | 选项 | 作用 |
47
+ |---|---|
48
+ | `views` | 页面表。键取 `views/` 之后去掉 `.vue` 的路径,比如 `sample/doc/index`,就是菜单管理里填的「组件路径」。与内置页同名即覆盖内置页;`<模块>/detail.vue` 自动成为 `/<模块>/:id/detail` 详情路由 |
49
+ | `locales` | 文案。`locales/ext/<locale>/<命名空间>.ts` 默认导出该命名空间的键,按命名空间深合并进内置文案 |
50
+ | `routes` | 布局壳之外的顶级静态路由,比如整屏看板、打印页 |
51
+ | `icons` | 本地 SVG:`import.meta.glob('./assets/svg/*.svg', { query: '?raw', import: 'default', eager: true })` |
52
+ | `menuTitles` | 菜单 path → i18n key,存量库的菜单标题是中文时用 |
53
+ | `install(app)` | 需要 app 实例的注册:`registerHeaderTool`、`registerMenuBadge`、自己的 `app.use` |
54
+ | `plugins` | 与上面同形的插件对象。覆盖顺序:内核 < 插件(按数组顺序)< 应用 |
55
+ | `apiBase` / `version` / `dev` / `brand` / `table` | API 根地址、页脚版本号、开发态、品牌默认值(`sys.site.*` 配置有值时以配置为准)、SmartTable 全局默认 |
56
+
57
+ 组件、composables、stores、API 原语都从包根导入:
58
+
59
+ ```ts
60
+ import { FormContainer, useConfirm, translateError, unwrap, pageParams, toPage } from 'smart-admin-web'
61
+ import { SmartTable } from 'smart-naive-table'
62
+ ```
63
+
64
+ 应用自己的端点:对着自己的后端跑模板带的 `npm run gen:api` 生成 `src/api/schema.d.ts`,再用 `createApiClient<paths>()` 建客户端。超时、Bearer + CSRF、401 刷新重放这条中间件链与内核客户端是同一条。
65
+
66
+ ## 版本
67
+
68
+ 版本号与 NuGet 包 `SmartAdmin` 一致:主版本 = 内核所用的 .NET 主版本,次版本加功能,修订号修 bug。内置页照同一版后端的接口写,所以 `package.json` 里精确钉住版本、不带 `^`;升级时 `Directory.Packages.props` 与 `package.json` 填同一个数字,改动见 [CHANGELOG](https://github.com/SmartCode-X/SmartAdmin/blob/main/CHANGELOG.md)。
69
+
70
+ ## 文档
71
+
72
+ - 文档站:<https://smartcode-x.github.io/SmartAdmin/zh/>
73
+ - 共享组件目录:[web/COMPONENTS.md](https://github.com/SmartCode-X/SmartAdmin/blob/main/web/COMPONENTS.md)
74
+ - 源码与 issue:<https://github.com/SmartCode-X/SmartAdmin>
75
+
76
+ ## 许可证
77
+
78
+ [Apache-2.0](./LICENSE)
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,54 @@
1
+ import { defineComponent as u, computed as l, onMounted as p, watch as f, openBlock as s, createBlock as v, unref as e, withCtx as t, createVNode as o } from "vue";
2
+ import { RouterView as h } from "vue-router";
3
+ import { enUS as _, zhCN as g, dateEnUS as N, dateZhCN as S, NConfigProvider as B, NLoadingBarProvider as C, NMessageProvider as P, NDialogProvider as L } from "naive-ui";
4
+ import { LoadingBarBridge as U } from "./lib/loadingBar.js";
5
+ import { useTheme as w } from "./composables/useTheme.js";
6
+ import { useAppStore as x } from "./stores/app.js";
7
+ import { i18n as M } from "./locales/index.js";
8
+ import { useSite as T } from "./composables/useSite.js";
9
+ import { usePageTitle as k } from "./composables/usePageTitle.js";
10
+ import A from "./components/ReauthModal.vue.js";
11
+ const H = /* @__PURE__ */ u({
12
+ __name: "App",
13
+ setup(D) {
14
+ const r = x(), { overrides: i, naiveTheme: m } = w(), { loadSite: n } = T(), c = l(() => r.locale === "en-US" ? _ : g), d = l(() => r.locale === "en-US" ? N : S);
15
+ return p(n), k(), f(
16
+ () => r.locale,
17
+ (a) => {
18
+ M.global.locale.value = a;
19
+ },
20
+ { immediate: !0 }
21
+ ), (a, R) => (s(), v(e(B), {
22
+ theme: e(m),
23
+ "theme-overrides": e(i),
24
+ locale: c.value,
25
+ "date-locale": d.value
26
+ }, {
27
+ default: t(() => [
28
+ o(e(C), null, {
29
+ default: t(() => [
30
+ o(e(U)),
31
+ o(e(P), null, {
32
+ default: t(() => [
33
+ o(e(L), null, {
34
+ default: t(() => [
35
+ o(e(h)),
36
+ o(A)
37
+ ]),
38
+ _: 1
39
+ })
40
+ ]),
41
+ _: 1
42
+ })
43
+ ]),
44
+ _: 1
45
+ })
46
+ ]),
47
+ _: 1
48
+ }, 8, ["theme", "theme-overrides", "locale", "date-locale"]));
49
+ }
50
+ });
51
+ export {
52
+ H as default
53
+ };
54
+ //# sourceMappingURL=App.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.vue.js","sources":["../src/App.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onMounted, watch } from 'vue'\nimport { RouterView } from 'vue-router'\nimport {\n NConfigProvider,\n NMessageProvider,\n NDialogProvider,\n NLoadingBarProvider,\n zhCN,\n enUS,\n dateZhCN,\n dateEnUS,\n} from 'naive-ui'\nimport { LoadingBarBridge } from '#/lib/loadingBar'\nimport { useTheme } from '#/composables/useTheme'\nimport { useAppStore } from '#/stores/app'\nimport { i18n } from '#/locales'\nimport { useSite } from '#/composables/useSite'\nimport { usePageTitle } from '#/composables/usePageTitle'\nimport ReauthModal from '#/components/ReauthModal.vue'\n\nconst app = useAppStore()\nconst { overrides, naiveTheme } = useTheme()\nconst { loadSite } = useSite()\n\nconst naiveLocale = computed(() => (app.locale === 'en-US' ? enUS : zhCN))\nconst naiveDateLocale = computed(() => (app.locale === 'en-US' ? dateEnUS : dateZhCN))\n\n// 站点品牌真实生效:启动拉一次匿名站点信息(全站共用)。\n// 浏览器标题(sys.site.title 的消费点)与 <html lang> 交给 usePageTitle 随路由/语言持续跟。\nonMounted(loadSite)\nusePageTitle()\n\n// i18n 语言跟随 app.locale。\nwatch(\n () => app.locale,\n l => {\n i18n.global.locale.value = l\n },\n { immediate: true },\n)\n</script>\n\n<template>\n <n-config-provider\n :theme=\"naiveTheme\"\n :theme-overrides=\"overrides\"\n :locale=\"naiveLocale\"\n :date-locale=\"naiveDateLocale\"\n >\n <n-loading-bar-provider>\n <LoadingBarBridge />\n <n-message-provider>\n <n-dialog-provider>\n <router-view />\n <!-- 高危写 40024:client 中间件唤起,须挂在 message/dialog 之内 -->\n <ReauthModal />\n </n-dialog-provider>\n </n-message-provider>\n </n-loading-bar-provider>\n </n-config-provider>\n</template>\n"],"names":["app","useAppStore","overrides","naiveTheme","useTheme","loadSite","useSite","naiveLocale","computed","enUS","zhCN","naiveDateLocale","dateEnUS","dateZhCN","onMounted","usePageTitle","watch","l","i18n","_createBlock","_unref","NConfigProvider","_createVNode","NLoadingBarProvider","LoadingBarBridge","NMessageProvider","NDialogProvider","RouterView","ReauthModal"],"mappings":";;;;;;;;;;;;;AAqBA,UAAMA,IAAMC,EAAA,GACN,EAAE,WAAAC,GAAW,YAAAC,EAAA,IAAeC,EAAA,GAC5B,EAAE,UAAAC,EAAA,IAAaC,EAAA,GAEfC,IAAcC,EAAS,MAAOR,EAAI,WAAW,UAAUS,IAAOC,CAAK,GACnEC,IAAkBH,EAAS,MAAOR,EAAI,WAAW,UAAUY,IAAWC,CAAS;AAIrF,WAAAC,EAAUT,CAAQ,GAClBU,EAAA,GAGAC;AAAA,MACE,MAAMhB,EAAI;AAAA,MACV,CAAAiB,MAAK;AACH,QAAAC,EAAK,OAAO,OAAO,QAAQD;AAAA,MAC7B;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK,mBAKlBE,EAgBoBC,EAAAC,CAAA,GAAA;AAAA,MAfjB,OAAOD,EAAAjB,CAAA;AAAA,MACP,mBAAiBiB,EAAAlB,CAAA;AAAA,MACjB,QAAQK,EAAA;AAAA,MACR,eAAaI,EAAA;AAAA,IAAA;iBAEd,MASyB;AAAA,QATzBW,EASyBF,EAAAG,CAAA,GAAA,MAAA;AAAA,qBARvB,MAAoB;AAAA,YAApBD,EAAoBF,EAAAI,CAAA,CAAA;AAAA,YACpBF,EAMqBF,EAAAK,CAAA,GAAA,MAAA;AAAA,yBALnB,MAIoB;AAAA,gBAJpBH,EAIoBF,EAAAM,CAAA,GAAA,MAAA;AAAA,6BAHlB,MAAe;AAAA,oBAAfJ,EAAeF,EAAAO,CAAA,CAAA;AAAA,oBAEfL,EAAeM,CAAA;AAAA,kBAAA;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import f from "./App.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=App2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App2.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,10 @@
1
+ const s = (t, e) => {
2
+ const o = t.__vccOpts || t;
3
+ for (const [r, c] of e)
4
+ o[r] = c;
5
+ return o;
6
+ };
7
+ export {
8
+ s as default
9
+ };
10
+ //# sourceMappingURL=_plugin-vue_export-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue_export-helper.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,29 @@
1
+ import { Client } from 'openapi-fetch';
2
+ import { paths } from './schema';
3
+ /**
4
+ * 请求超时:没有超时的话,后端卡死或链路半开时 fetch 会一直挂着 —— 页面永远转圈,
5
+ * 按钮的 loading 永不结束,用户只能刷新。
6
+ * 默认 30 秒;上传/分片/导出/导入提交这类天然慢的调用在 api 层显式传 `timeout: LONG_TIMEOUT_MS`。
7
+ */
8
+ export declare const DEFAULT_TIMEOUT_MS = 30000;
9
+ export declare const LONG_TIMEOUT_MS: number;
10
+ /**
11
+ * 读 document.cookie 中的可读 Cookie(双提交 CSRF 的 smart_csrf)。
12
+ * HttpOnly 的 smart_rt 读不到,只能靠 credentials 自动携带。
13
+ */
14
+ export declare function readCookie(name: string): string;
15
+ /** 单飞静默刷新;路由守卫 F5 重建 Cookie 会话时也可调用。 */
16
+ export declare function refreshOnce(): Promise<boolean>;
17
+ /**
18
+ * 确保有可用 accessToken:已有则 true;Cookie 会话或 body refresh 则尝试静默刷新。
19
+ * 供路由守卫在 F5/深链时恢复内存令牌。
20
+ */
21
+ export declare function ensureAccessToken(): Promise<boolean>;
22
+ /**
23
+ * 消费方自己端点的类型化客户端:与内核 client 同 apiBase、同一条中间件链,只是 paths 换成自己生成的 schema。
24
+ * credentials:'include'——Cookie 会话(Session:CookieMode)静默刷新/登出依赖 HttpOnly refresh Cookie;
25
+ * 同源默认也会带 Cookie,显式 include 覆盖 apiBase 跨源场景(需后端 CORS AllowCredentials)。
26
+ */
27
+ export declare function createApiClient<P extends {}>(): Client<P>;
28
+ /** 内核客户端(内核端点的 paths)。 */
29
+ export declare const client: Client<paths, `${string}/${string}`>;
@@ -0,0 +1,139 @@
1
+ import E from "openapi-fetch";
2
+ import { useUserStore as c } from "../stores/user.js";
3
+ import { runtime as d } from "../lib/runtime.js";
4
+ import { REAUTH_RETRY_HEADER as g, REAUTH_REQUIRED_CODE as _, requestReauth as C } from "./reauthGate.js";
5
+ const M = 3e4, G = 10 * 6e4, h = "smart_csrf", w = "X-Smart-CSRF";
6
+ function m(e) {
7
+ if (typeof document > "u") return "";
8
+ const t = document.cookie.split(";");
9
+ for (const n of t) {
10
+ const s = n.indexOf("=");
11
+ if (s < 0) continue;
12
+ if (n.slice(0, s).trim() === e) return decodeURIComponent(n.slice(s + 1).trim());
13
+ }
14
+ return "";
15
+ }
16
+ function R(e) {
17
+ const t = e.toUpperCase();
18
+ return t !== "GET" && t !== "HEAD" && t !== "OPTIONS";
19
+ }
20
+ function T(e) {
21
+ const t = m(h);
22
+ t && e.set(w, t);
23
+ }
24
+ const S = {
25
+ onRequest({ request: e }) {
26
+ const t = e.timeout, n = typeof t == "number" && t > 0 ? t : M;
27
+ return new Request(e, {
28
+ signal: AbortSignal.any([e.signal, AbortSignal.timeout(n)])
29
+ });
30
+ }
31
+ }, U = {
32
+ async onRequest({ request: e }) {
33
+ const t = c().accessToken;
34
+ return t && e.headers.set("Authorization", `Bearer ${t}`), R(e.method) && T(e.headers), e;
35
+ }
36
+ }, p = /* @__PURE__ */ new WeakMap();
37
+ let l = null;
38
+ function A() {
39
+ return l ?? (l = b().finally(() => {
40
+ l = null;
41
+ })), l;
42
+ }
43
+ async function P() {
44
+ const e = c();
45
+ return e.accessToken ? !0 : !e.cookieSession && !e.refreshToken ? !1 : A();
46
+ }
47
+ async function b() {
48
+ const e = c();
49
+ if (!e.cookieSession && !e.refreshToken) return !1;
50
+ const t = {};
51
+ if (e.cookieSession || m(h)) {
52
+ const o = m(h);
53
+ o && (t[w] = o);
54
+ }
55
+ const { data: n, error: s } = await I.POST("/api/v1/auth/refresh", {
56
+ // Cookie 模式刷新令牌在 HttpOnly Cookie 里,body 的 refreshToken 留空:服务端 body 为空才读 Cookie
57
+ body: e.cookieSession ? { refreshToken: "" } : { refreshToken: e.refreshToken },
58
+ headers: t
59
+ }), r = n;
60
+ return s || !r || r.code !== 0 || !r.data ? !1 : (e.setSession(r.data), !0);
61
+ }
62
+ const v = {
63
+ onRequest({ request: e }) {
64
+ return e.method !== "GET" && e.method !== "HEAD" && p.set(e, e.clone()), e;
65
+ },
66
+ async onResponse({ request: e, response: t }) {
67
+ if (t.status !== 401) return t;
68
+ const n = e.url;
69
+ if (n.includes("/api/v1/auth/refresh") || n.includes("/api/v1/auth/login")) return t;
70
+ if (!await A()) {
71
+ c().clear();
72
+ const { useAuthStore: a } = await import("../stores/auth.js");
73
+ a().reset();
74
+ const { router: i, resetRouter: u } = await import("../router/index.js");
75
+ return u(), i.currentRoute.value.path !== "/login" && i.replace("/login"), t;
76
+ }
77
+ const r = p.get(e) ?? e, o = new Request(r, { headers: new Headers(r.headers), credentials: "include" });
78
+ return o.headers.set("Authorization", `Bearer ${c().accessToken}`), R(o.method) && T(o.headers), fetch(o);
79
+ }
80
+ }, H = {
81
+ async onResponse({ request: e, response: t }) {
82
+ if (t.status !== 403 || e.headers.get(g) === "1" || e.url.includes("/api/v1/auth/reauth") || e.url.includes("/api/v1/auth/login"))
83
+ return t;
84
+ let n;
85
+ try {
86
+ const i = await t.clone().json();
87
+ n = i == null ? void 0 : i.code;
88
+ } catch {
89
+ return t;
90
+ }
91
+ if (n !== _ || !await C()) return t;
92
+ const r = p.get(e) ?? e, o = new Request(r, { headers: new Headers(r.headers), credentials: "include" }), a = c().accessToken;
93
+ return a && o.headers.set("Authorization", `Bearer ${a}`), R(o.method) && T(o.headers), o.headers.set(g, "1"), fetch(o);
94
+ }
95
+ };
96
+ function B(e) {
97
+ return e.use(S), e.use(U), e.use(v), e.use(H), e;
98
+ }
99
+ function y(e) {
100
+ let t = d.apiBase, n = e(t);
101
+ const s = [], r = () => (t !== d.apiBase && (t = d.apiBase, n = e(t), s.length && n.use(...s)), n);
102
+ return new Proxy({}, {
103
+ get(o, a) {
104
+ if (a === "use")
105
+ return (...f) => {
106
+ s.push(...f), r().use(...f);
107
+ };
108
+ if (a === "eject")
109
+ return (...f) => {
110
+ for (const O of f) {
111
+ const k = s.indexOf(O);
112
+ k >= 0 && s.splice(k, 1);
113
+ }
114
+ r().eject(...f);
115
+ };
116
+ const i = r(), u = i[a];
117
+ return typeof u == "function" ? u.bind(i) : u;
118
+ }
119
+ });
120
+ }
121
+ function D() {
122
+ return y(
123
+ (e) => B(E({ baseUrl: e, credentials: "include" }))
124
+ );
125
+ }
126
+ const $ = D(), I = y((e) => {
127
+ const t = E({ baseUrl: e, credentials: "include" });
128
+ return t.use(S), t;
129
+ });
130
+ export {
131
+ M as DEFAULT_TIMEOUT_MS,
132
+ G as LONG_TIMEOUT_MS,
133
+ $ as client,
134
+ D as createApiClient,
135
+ P as ensureAccessToken,
136
+ m as readCookie,
137
+ A as refreshOnce
138
+ };
139
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sources":["../../src/api/client.ts"],"sourcesContent":["import createClient, { type Client, type Middleware } from 'openapi-fetch'\nimport type { paths } from './schema'\nimport { useUserStore } from '#/stores/user'\nimport { runtime } from '#/lib/runtime'\nimport { REAUTH_REQUIRED_CODE, REAUTH_RETRY_HEADER, requestReauth } from './reauthGate'\n\n// 默认空 apiBase = 同源:schema 的 path 键已含 /api/v1,dev 下由 Vite proxy 反代到后端(默认 :5100),\n// 生产下由 nginx 反代或后端自己托管 dist(见 docs/deployment.md 路线 A/B)。\n// 只有前端与 API 真的不同源(CDN / 独立域名)时才需要 createSmartAdmin({ apiBase: 'https://api.example.com' }),\n// 此时后端还必须配 SmartAdmin:Api:Cors:AllowedOrigins(默认 deny-all)。\n\n/**\n * 请求超时:没有超时的话,后端卡死或链路半开时 fetch 会一直挂着 —— 页面永远转圈,\n * 按钮的 loading 永不结束,用户只能刷新。\n * 默认 30 秒;上传/分片/导出/导入提交这类天然慢的调用在 api 层显式传 `timeout: LONG_TIMEOUT_MS`。\n */\nexport const DEFAULT_TIMEOUT_MS = 30_000\nexport const LONG_TIMEOUT_MS = 10 * 60_000\n\n/** 与后端 AuthCookieNames 对齐(禁硬编码纪律的前端镜像)。 */\nconst CSRF_COOKIE = 'smart_csrf'\nconst CSRF_HEADER = 'X-Smart-CSRF'\n\n/**\n * 读 document.cookie 中的可读 Cookie(双提交 CSRF 的 smart_csrf)。\n * HttpOnly 的 smart_rt 读不到,只能靠 credentials 自动携带。\n */\nexport function readCookie(name: string): string {\n if (typeof document === 'undefined') return ''\n const parts = document.cookie.split(';')\n for (const part of parts) {\n const i = part.indexOf('=')\n if (i < 0) continue\n const k = part.slice(0, i).trim()\n if (k === name) return decodeURIComponent(part.slice(i + 1).trim())\n }\n return ''\n}\n\n/** 写请求是否需要附 CSRF(有可读 CSRF Cookie 即附;无 Cookie 时不附)。 */\nfunction isMutating(method: string): boolean {\n const m = method.toUpperCase()\n return m !== 'GET' && m !== 'HEAD' && m !== 'OPTIONS'\n}\n\nfunction attachCsrf(headers: Headers) {\n const csrf = readCookie(CSRF_COOKIE)\n if (csrf) headers.set(CSRF_HEADER, csrf)\n}\n\n/**\n * 给每个请求装超时闸。必须**最先**注册:后面的重放中间件要克隆最终的 Request,顺序反了就克隆到旧的那份。\n *\n * 调用方传的 `signal` 依然生效 —— 这里用 `AbortSignal.any` 把它和超时信号并起来,谁先响算谁,\n * 不是把调用方的取消能力顶掉。单次调用要放宽时限就多传一个 `timeout`(毫秒),\n * openapi-fetch 会把它这类自定义键原样挂到 Request 上(见其 InitParam 的 `[key: string]: unknown`)。\n */\nconst timeoutMiddleware: Middleware = {\n onRequest({ request }) {\n const ms = (request as Request & { timeout?: unknown }).timeout\n const limit = typeof ms === 'number' && ms > 0 ? ms : DEFAULT_TIMEOUT_MS\n return new Request(request, {\n signal: AbortSignal.any([request.signal, AbortSignal.timeout(limit)]),\n })\n },\n}\n\n/** 请求前注入 Bearer + 写操作 CSRF。请求时读 store,始终拿最新令牌。 */\nconst authMiddleware: Middleware = {\n async onRequest({ request }) {\n const token = useUserStore().accessToken\n if (token) request.headers.set('Authorization', `Bearer ${token}`)\n if (isMutating(request.method)) attachCsrf(request.headers)\n return request\n },\n}\n\n// 令牌过期重放:Request 的 body 是一次性流,首次 fetch 就被消费,直接重放会丢 body\n//(GET 无 body 不受影响,但令牌恰好在一次 POST/PUT 时过期就会丢请求体)。\n// 发出前克隆一份副本(clone 会 tee body 流,与原请求各读各的),重放时用这份未消费的副本。\n// 键是发出前的 Request 实例(openapi-fetch 把它一路带到 onResponse),WeakMap 随请求回收自动清理。\nconst replayable = new WeakMap<Request, Request>()\n\n// 并发 401 合流到同一次刷新。\nlet refreshing: Promise<boolean> | null = null\n\n/** 单飞静默刷新;路由守卫 F5 重建 Cookie 会话时也可调用。 */\nexport function refreshOnce(): Promise<boolean> {\n refreshing ??= doRefresh().finally(() => {\n refreshing = null\n })\n return refreshing\n}\n\n/**\n * 确保有可用 accessToken:已有则 true;Cookie 会话或 body refresh 则尝试静默刷新。\n * 供路由守卫在 F5/深链时恢复内存令牌。\n */\nexport async function ensureAccessToken(): Promise<boolean> {\n const user = useUserStore()\n if (user.accessToken) return true\n if (!user.cookieSession && !user.refreshToken) return false\n return refreshOnce()\n}\n\nasync function doRefresh(): Promise<boolean> {\n const user = useUserStore()\n // Cookie 会话:body 不带 refresh(服务端读 smart_rt);body 模式:必须有 refreshToken\n if (!user.cookieSession && !user.refreshToken) return false\n\n const headers: Record<string, string> = {}\n if (user.cookieSession || readCookie(CSRF_COOKIE)) {\n const csrf = readCookie(CSRF_COOKIE)\n if (csrf) headers[CSRF_HEADER] = csrf\n }\n\n const { data, error } = await bare.POST('/api/v1/auth/refresh', {\n // Cookie 模式刷新令牌在 HttpOnly Cookie 里,body 的 refreshToken 留空:服务端 body 为空才读 Cookie\n body: user.cookieSession ? { refreshToken: '' } : { refreshToken: user.refreshToken },\n headers,\n })\n const env = data as { code?: number; data?: unknown } | undefined\n if (error || !env || env.code !== 0 || !env.data) return false\n user.setSession(env.data as Parameters<typeof user.setSession>[0])\n return true\n}\n\n/** 401 → 刷新一次并重放原请求;刷新失败 → 清会话 + 跳登录。 */\nconst refreshMiddleware: Middleware = {\n onRequest({ request }) {\n // 带 body 的写请求发出前存一份可重放副本(GET/HEAD 无 body,不必克隆)。\n if (request.method !== 'GET' && request.method !== 'HEAD')\n replayable.set(request, request.clone())\n return request\n },\n async onResponse({ request, response }) {\n if (response.status !== 401) return response\n const url = request.url\n if (url.includes('/api/v1/auth/refresh') || url.includes('/api/v1/auth/login')) return response\n\n const ok = await refreshOnce()\n if (!ok) {\n useUserStore().clear()\n const { useAuthStore } = await import('#/stores/auth')\n useAuthStore().reset()\n const { router, resetRouter } = await import('#/router') // 惰性引入,避免与 router 静态循环依赖\n resetRouter()\n if (router.currentRoute.value.path !== '/login') router.replace('/login')\n return response\n }\n // 重放:优先用发出前的克隆副本(body 未被消费),无副本的 GET 直接用原请求;裸 fetch 绕过中间件,手动补新令牌 + CSRF。\n const base = replayable.get(request) ?? request\n const retry = new Request(base, { headers: new Headers(base.headers), credentials: 'include' })\n retry.headers.set('Authorization', `Bearer ${useUserStore().accessToken}`)\n if (isMutating(retry.method)) attachCsrf(retry.headers)\n return fetch(retry)\n },\n}\n\n/**\n * 403 + 40024(ReauthRequired) → 弹再认证 → 成功后重放一次。\n * 与 refresh 同形:依赖 onRequest 预克隆 body;重试头防死循环。\n */\nconst reauthMiddleware: Middleware = {\n async onResponse({ request, response }) {\n if (response.status !== 403) return response\n if (request.headers.get(REAUTH_RETRY_HEADER) === '1') return response\n if (request.url.includes('/api/v1/auth/reauth') || request.url.includes('/api/v1/auth/login')) {\n return response\n }\n\n let code: number | undefined\n try {\n const body = (await response.clone().json()) as { code?: number }\n code = body?.code\n } catch {\n return response\n }\n if (code !== REAUTH_REQUIRED_CODE) return response\n\n const granted = await requestReauth()\n if (!granted) return response\n\n const base = replayable.get(request) ?? request\n const retry = new Request(base, { headers: new Headers(base.headers), credentials: 'include' })\n const token = useUserStore().accessToken\n if (token) retry.headers.set('Authorization', `Bearer ${token}`)\n if (isMutating(retry.method)) attachCsrf(retry.headers)\n retry.headers.set(REAUTH_RETRY_HEADER, '1')\n return fetch(retry)\n },\n}\n\n/** 内核同款中间件链:超时必须最先(后面两个要克隆最终 Request 做重放)→ Bearer + CSRF → 401 刷新重放 → 40024 再认证。 */\nfunction attachMiddlewares<P extends {}>(c: Client<P>): Client<P> {\n c.use(timeoutMiddleware)\n c.use(authMiddleware)\n c.use(refreshMiddleware)\n c.use(reauthMiddleware)\n return c\n}\n\n/**\n * 按调用时的 runtime.apiBase 取客户端。客户端大多在模块顶层创建(`export const client = createApiClient()`),\n * 那时 createSmartAdmin 可能还没跑、apiBase 尚未落定;所以每次调用前核对一次,变了就按新地址重建,\n * 调用方后加的中间件(use)一并带过去。\n */\nfunction followApiBase<P extends {}>(build: (baseUrl: string) => Client<P>): Client<P> {\n let base = runtime.apiBase\n let inner = build(base)\n const added: Middleware[] = []\n const current = () => {\n if (base !== runtime.apiBase) {\n base = runtime.apiBase\n inner = build(base)\n if (added.length) inner.use(...added)\n }\n return inner\n }\n return new Proxy({} as Client<P>, {\n get(_target, key) {\n if (key === 'use')\n return (...mw: Middleware[]) => {\n added.push(...mw)\n current().use(...mw)\n }\n if (key === 'eject')\n return (...mw: Middleware[]) => {\n for (const m of mw) {\n const i = added.indexOf(m)\n if (i >= 0) added.splice(i, 1)\n }\n current().eject(...mw)\n }\n const c = current() as unknown as Record<PropertyKey, unknown>\n const v = c[key]\n return typeof v === 'function' ? (v as (...args: unknown[]) => unknown).bind(c) : v\n },\n })\n}\n\n/**\n * 消费方自己端点的类型化客户端:与内核 client 同 apiBase、同一条中间件链,只是 paths 换成自己生成的 schema。\n * credentials:'include'——Cookie 会话(Session:CookieMode)静默刷新/登出依赖 HttpOnly refresh Cookie;\n * 同源默认也会带 Cookie,显式 include 覆盖 apiBase 跨源场景(需后端 CORS AllowCredentials)。\n */\nexport function createApiClient<P extends {}>(): Client<P> {\n return followApiBase(baseUrl =>\n attachMiddlewares(createClient<P>({ baseUrl, credentials: 'include' })),\n )\n}\n\n/** 内核客户端(内核端点的 paths)。 */\nexport const client = createApiClient<paths>()\n\n// 刷新专用客户端:不挂刷新中间件,避免刷新自身 401 触发递归;\n// 但也要有超时闸:它挂住时路由守卫会一起卡在 ensureAccessToken 上,整页停在白屏。\nconst bare = followApiBase(baseUrl => {\n const c = createClient<paths>({ baseUrl, credentials: 'include' })\n c.use(timeoutMiddleware)\n return c\n})\n"],"names":["DEFAULT_TIMEOUT_MS","LONG_TIMEOUT_MS","CSRF_COOKIE","CSRF_HEADER","readCookie","name","parts","part","i","isMutating","method","m","attachCsrf","headers","csrf","timeoutMiddleware","request","ms","limit","authMiddleware","token","useUserStore","replayable","refreshing","refreshOnce","doRefresh","ensureAccessToken","user","data","error","bare","env","refreshMiddleware","response","url","useAuthStore","router","resetRouter","base","retry","reauthMiddleware","REAUTH_RETRY_HEADER","code","body","REAUTH_REQUIRED_CODE","requestReauth","attachMiddlewares","c","followApiBase","build","runtime","inner","added","current","_target","key","mw","v","createApiClient","baseUrl","createClient","client"],"mappings":"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"}