@pubinfo/module-rbac 2.0.0-beta.9 → 2.0.0-rc.2

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 (515) hide show
  1. package/dist/ComponentSelect-Din5Vses.js +2 -0
  2. package/dist/ComponentSelect-Dyqb3Uh3.js +3734 -0
  3. package/dist/ComponentSelect.css +1 -0
  4. package/dist/DynamicRoutesForm-CkmCaHum.js +4 -0
  5. package/dist/DynamicRoutesForm-D3nGj7oA.js +376 -0
  6. package/dist/HCheckList-3zLNVNr0.js +37 -0
  7. package/dist/HCheckList-Dd2Tx0jW.js +2 -0
  8. package/dist/ImportExport-BbZkZEW_.js +4 -0
  9. package/dist/ImportExport-Yt6dABIv.js +354 -0
  10. package/dist/MetaForm-CI-T2qEE.js +284 -0
  11. package/dist/MetaForm-CrsQmdOg.js +4 -0
  12. package/dist/OrgAndPosition-BK5MTlOO.js +188 -0
  13. package/dist/OrgAndPosition-CDCim7yM.js +2 -0
  14. package/dist/ResourceEdit-BFXA953U.js +309 -0
  15. package/dist/ResourceEdit-V6gt22gW.js +8 -0
  16. package/dist/ResourceRelation-BihfkBCe.js +93 -0
  17. package/dist/ResourceRelation-BnLQZey7.js +3 -0
  18. package/dist/ResourceRelation-CBPrqf2V.js +78 -0
  19. package/dist/ResourceRelation.css +1 -0
  20. package/dist/ResourceRelation2.css +1 -0
  21. package/dist/ResourceSelector-CxZ1ae30.js +247 -0
  22. package/dist/ResourceSelector.css +1 -0
  23. package/dist/RoleRelation-BlWDNAM1.js +79 -0
  24. package/dist/RoleRelation-CAMzPMFz.js +2 -0
  25. package/dist/RoleSelector-DTnDRRTQ.js +279 -0
  26. package/dist/TenantEdit-Bt31IV9W.js +253 -0
  27. package/dist/TenantEdit-DYHJehf0.js +6 -0
  28. package/dist/UserAuthorization-BdHxAQlK.js +4 -0
  29. package/dist/UserAuthorization-Dhp0ZamX.js +238 -0
  30. package/dist/UserAuthorization.css +1 -0
  31. package/dist/UserEdit-CqH6hxTZ.js +336 -0
  32. package/dist/UserEdit-CqrRx717.js +4 -0
  33. package/dist/_plugin-vue_export-helper-Bvl99pNT.js +6 -0
  34. package/dist/add-child-sIXCU5sL.js +2 -0
  35. package/dist/animation_item-COb6VI4T.js +2 -0
  36. package/dist/animation_item-D78koyTo.js +4536 -0
  37. package/dist/api/modules/assist/qunzujiekou.d.ts +7 -0
  38. package/dist/api/modules/configData/index.d.ts +1 -1
  39. package/dist/api/modules/configData/{zidianfuwu.d.ts → zidifuwu.d.ts} +14 -0
  40. package/dist/api/modules/rbac/gangweijiekou.d.ts +7 -0
  41. package/dist/api/modules/rbac/index.d.ts +1 -0
  42. package/dist/api/modules/rbac/pubJiaosezukongzhiqi.d.ts +7 -0
  43. package/dist/api/modules/rbac/yonghujiekou.d.ts +21 -0
  44. package/dist/api/modules/rbac/ziyuandaorudaochuxiangguanjiekou.d.ts +43 -0
  45. package/dist/api/modules/rbac/ziyuanjiekou.d.ts +7 -0
  46. package/dist/api/request.d.ts +1 -1
  47. package/dist/authority-DQ4-SayE.js +2 -0
  48. package/dist/authorize-CR54jxEa.js +2 -0
  49. package/dist/blackWhiteList-B7tUj2Rx.js +213 -0
  50. package/dist/blackWhiteList.css +1 -0
  51. package/dist/blacklist-disable-ypFSVSX1.js +2 -0
  52. package/dist/blacklist-enable-DlkD_15-.js +2 -0
  53. package/dist/breadcrumb_setting-CIm-6QHw.js +111 -0
  54. package/dist/breadcrumb_setting.css +1 -0
  55. package/dist/browser-chrome-DNH4U6iO.js +2 -0
  56. package/dist/browser-edge-4sSjlzO1.js +2 -0
  57. package/dist/browser-ie-yTwVV0GC.js +2 -0
  58. package/dist/browser-other-Jax-vzDs.js +2 -0
  59. package/dist/browser-safari-B7PIezpj.js +2 -0
  60. package/dist/browserType-D2cPQa0k.js +2 -0
  61. package/dist/browserType-DZrDbVVY.js +26 -0
  62. package/dist/chunk-B3eAFu3c.js +11 -0
  63. package/dist/cloneDeep-BnvyNhik.js +7 -0
  64. package/dist/components/DirectoryIcones/ComponentsIcones.vue.d.ts +7 -0
  65. package/dist/components/DirectoryIcones/FolderIcones.vue.d.ts +7 -0
  66. package/dist/components/DirectoryIcones/ModuleIcones.vue.d.ts +7 -0
  67. package/dist/components/DirectoryIcones/PackagesIcones.vue.d.ts +7 -0
  68. package/dist/components/DirectoryIcones/SrcIcones.vue.d.ts +7 -0
  69. package/dist/components/DirectoryIcones/ViewIcones.vue.d.ts +7 -0
  70. package/dist/components/DirectoryIcones/VueIcones.vue.d.ts +2 -0
  71. package/dist/components/GroupSelector/index.vue.d.ts +4 -4
  72. package/dist/components/OrgTree/index.vue.d.ts +1 -1
  73. package/dist/components/OrgUserSelector/OrgSelector.vue.d.ts +7 -7
  74. package/dist/components/OrgUserSelector/UserSelector.vue.d.ts +7 -7
  75. package/dist/components/OrgUserSelector/index.d.ts +3 -2
  76. package/dist/components/ResourceIcones/Select.vue.d.ts +9 -0
  77. package/dist/components/ResourceSelector/index.vue.d.ts +5 -5
  78. package/dist/components/RoleSelector/RoleSearch.vue.d.ts +19 -0
  79. package/dist/components/RoleSelector/RoleSelector.vue.d.ts +20 -0
  80. package/dist/components/RoleSelector/TooltipLabel.vue.d.ts +8 -0
  81. package/dist/components/RoleSelector/index.d.ts +2 -0
  82. package/dist/components/RoleSelector/interface.d.ts +4 -0
  83. package/dist/components/RoleSelector/useRole.d.ts +13 -0
  84. package/dist/composables/useLottie.d.ts +1 -1
  85. package/dist/configData-CONUFxaH.js +86 -0
  86. package/dist/context.d.ts +3 -0
  87. package/dist/createAndEditDataPermission-6pvYsJo9.js +8 -0
  88. package/dist/createAndEditDataPermission-Bd3tlIEE.js +443 -0
  89. package/dist/createAndEditDataPermission.css +1 -0
  90. package/dist/data-permission-Db1Lu9KO.js +156 -0
  91. package/dist/data-permission.css +1 -0
  92. package/dist/dayjs.min-KffHrkDe.js +297 -0
  93. package/dist/dictionary-XMJprxvM.js +180 -0
  94. package/dist/drawerBlackWhiteList-D-Sq4mul.js +125 -0
  95. package/dist/drawerBlackWhiteList-DK4g_CpC.js +3 -0
  96. package/dist/drawerDictionary-Bw3w5PTm.js +130 -0
  97. package/dist/drawerDictionary-DHIcxPrY.js +4 -0
  98. package/dist/drawerDictionaryItem-4WIgL3No.js +142 -0
  99. package/dist/drawerDictionaryItem-dg1sIDYE.js +4 -0
  100. package/dist/drawerGroup-932n7Ywc.js +188 -0
  101. package/dist/drawerGroup-CrF2c8UJ.js +3 -0
  102. package/dist/drawerOrganization-IwZZkHWM.js +251 -0
  103. package/dist/drawerOrganization-b39q3V33.js +3 -0
  104. package/dist/drawerPosition-BiO92_At.js +170 -0
  105. package/dist/drawerPosition-BjoDy0cQ.js +3 -0
  106. package/dist/drawerRegion-CNOK55im.js +187 -0
  107. package/dist/drawerRegion-omVT_dpq.js +3 -0
  108. package/dist/drawerRole-BaQBb2-J.js +215 -0
  109. package/dist/drawerRole-BqMh5l11.js +5 -0
  110. package/dist/drawerRole-D7VJRLmp.js +6 -0
  111. package/dist/drawerRole-IIsKhycU.js +159 -0
  112. package/dist/drawerRole-PnDochPg.js +172 -0
  113. package/dist/drawerRole-dJ3m0_K2.js +3 -0
  114. package/dist/edit-CCL7qbDV.js +2 -0
  115. package/dist/enum-B-lkiBy0.js +61 -0
  116. package/dist/enum-BMY6bmPA.js +54 -0
  117. package/dist/enum-Bg70i-vM.js +4 -0
  118. package/dist/enum-CUMv4gQ2.js +23 -0
  119. package/dist/enum-DUjQrWbG.js +4 -0
  120. package/dist/group-BzuuCGyR.js +174 -0
  121. package/dist/group.css +1 -0
  122. package/dist/icard-BUuV9yW4.js +2 -0
  123. package/dist/icon_animation-rPC0qi0K.js +2 -0
  124. package/dist/icon_breadcrumb-BOiEdwRY.js +2 -0
  125. package/dist/icon_copyright-zk1pF8Jj.js +2 -0
  126. package/dist/icon_jt-BMoQoZvf.js +2 -0
  127. package/dist/icon_layout-KBHA8xU_.js +2 -0
  128. package/dist/icon_mainpage-BTdCCyi2.js +2 -0
  129. package/dist/icon_menu-5k8XiWt5.js +2 -0
  130. package/dist/icon_page_size-DUMZ6xhJ.js +2 -0
  131. package/dist/icon_position_type-Cnkn2IzO.js +2 -0
  132. package/dist/icon_safe_manage-B0PtL90p.js +2 -0
  133. package/dist/icon_screen_scale-CwVhfflc.js +2 -0
  134. package/dist/icon_system_manage-vM71UmjM.js +2 -0
  135. package/dist/icon_tabbar-CuMnIey0.js +2 -0
  136. package/dist/icon_toolbar-BoCbAU3P.js +2 -0
  137. package/dist/icon_topbar-DGIDBcE6.js +2 -0
  138. package/dist/icon_watermark-BBU-lOdN.js +2 -0
  139. package/dist/index.css +1 -0
  140. package/dist/index.d.ts +2 -2
  141. package/dist/index.js +6906 -5
  142. package/dist/interface.d.ts +27 -3
  143. package/dist/itemlist-KOYuEUk4.js +157 -0
  144. package/dist/layout_setting-DQgWzV7M.js +74 -0
  145. package/dist/layout_setting.css +1 -0
  146. package/dist/log-BgIwPjNu.js +14 -0
  147. package/dist/log-center-Z3WDfhg1.js +2 -0
  148. package/dist/loginHistoryDetail-BNGtarOv.js +4 -0
  149. package/dist/loginHistoryDetail-DgHx6n66.js +78 -0
  150. package/dist/loginHistoryDetail.css +1 -0
  151. package/dist/login_history-Co6JLGsd.js +196 -0
  152. package/dist/login_history.css +1 -0
  153. package/dist/menu_setting-B0QIQ1um.js +158 -0
  154. package/dist/menu_setting.css +1 -0
  155. package/dist/not-data-DejN9beo.js +2 -0
  156. package/dist/not-data-uXybSS43.js +2 -0
  157. package/dist/operateHistoryDetail-BrdNmYD0.js +90 -0
  158. package/dist/operateHistoryDetail-DsM4L8Nz.js +4 -0
  159. package/dist/operateHistoryDetail.css +1 -0
  160. package/dist/operate_history-CVeIorOr.js +191 -0
  161. package/dist/operate_history.css +1 -0
  162. package/dist/org-main-C2g7AMMY.js +2 -0
  163. package/dist/org-unmain-CjGtvuIa.js +2 -0
  164. package/dist/organization-CXMk4mRo.js +15605 -0
  165. package/dist/organization.css +1 -0
  166. package/dist/other_setting-DK9MHysY.js +220 -0
  167. package/dist/other_setting.css +1 -0
  168. package/dist/{index-UZeQsp70.js → page_animation_setting-tSYfjx-m.js} +117 -177
  169. package/dist/page_animation_setting.css +1 -0
  170. package/dist/page_w_setting-BDI5KsA-.js +69 -0
  171. package/dist/page_w_setting.css +1 -0
  172. package/dist/position-BjUZQQUz.js +168 -0
  173. package/dist/region-BsX0gK_y.js +185 -0
  174. package/dist/remove-BroXCqy9.js +2 -0
  175. package/dist/resource-DKhlH74I.js +270 -0
  176. package/dist/resource-app-DV2RZiRk.js +2 -0
  177. package/dist/resource-btn-Dw9-L0P5.js +2 -0
  178. package/dist/resource-dynamic-Cmk2ihZb.js +2 -0
  179. package/dist/resource-index-D9J-wVCc.js +2 -0
  180. package/dist/resource-menu-XnlgciPe.js +2 -0
  181. package/dist/resource-micro-DzYCcl5c.js +2 -0
  182. package/dist/resource-nonmenu-8bXZBBWf.js +2 -0
  183. package/dist/role-ffXddsAo.js +196 -0
  184. package/dist/role_group-BBH28A40.js +172 -0
  185. package/dist/routes/index.d.ts +3 -1
  186. package/dist/routes/modules/authority.manage.menu.d.ts +1 -1
  187. package/dist/routes/modules/log.manage.menu.d.ts +1 -1
  188. package/dist/routes/modules/safe.manage.menu.d.ts +1 -1
  189. package/dist/routes/modules/stylesetting.manage.menu.d.ts +1 -1
  190. package/dist/routes/modules/system.manage.menu.d.ts +1 -1
  191. package/dist/safe_setting-Dis73Gsw.js +232 -0
  192. package/dist/safe_setting.css +1 -0
  193. package/dist/setItem-CjNn98dC.js +77 -0
  194. package/dist/setItem-H6NRNSt7.js +5 -0
  195. package/dist/setItem.css +1 -0
  196. package/dist/setting-manage-BPwzU94V.js +2 -0
  197. package/dist/stores-Di6SQ3pp.js +2 -0
  198. package/dist/tabbar_setting-DGwk_Oec.js +142 -0
  199. package/dist/tabbar_setting.css +1 -0
  200. package/dist/tenant-BhA6R8aJ.js +183 -0
  201. package/dist/theme-check-mark-Dz4lGIXE.js +2 -0
  202. package/dist/theme-title-CPXdAbpI.js +2 -0
  203. package/dist/theme_setting-Ca1YGTdZ.js +117 -0
  204. package/dist/theme_setting.css +1 -0
  205. package/dist/{index-BleenJqT.js → toolbar_setting-Cmrpyxgs.js} +155 -167
  206. package/dist/toolbar_setting.css +1 -0
  207. package/dist/useAppAndResource-BgnrL15l.js +57 -0
  208. package/dist/user-Bnb1cvVD.js +345 -0
  209. package/dist/user.css +1 -0
  210. package/dist/view-D4SR4EYn.js +2 -0
  211. package/dist/views/blackWhiteList/components/drawerBlackWhiteList.vue.d.ts +4 -4
  212. package/dist/views/blackWhiteList/index.vue.d.ts +319 -319
  213. package/dist/views/breadcrumb_setting/index.vue.d.ts +1 -1
  214. package/dist/views/components/HCheckList.vue.d.ts +5 -5
  215. package/dist/views/components/animation_item.vue.d.ts +5 -5
  216. package/dist/views/components/setItem.vue.d.ts +18 -18
  217. package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +35 -35
  218. package/dist/views/data-permission/index.vue.d.ts +350 -350
  219. package/dist/views/dictionary/components/drawerDictionary.vue.d.ts +4 -4
  220. package/dist/views/dictionary/components/drawerDictionaryItem.vue.d.ts +4 -4
  221. package/dist/views/dictionary/index.vue.d.ts +319 -319
  222. package/dist/views/dictionary/itemlist.vue.d.ts +319 -319
  223. package/dist/views/group/components/drawerGroup.vue.d.ts +4 -4
  224. package/dist/views/group/index.vue.d.ts +319 -319
  225. package/dist/views/layout_setting/index.vue.d.ts +1 -1
  226. package/dist/views/log_center/components/browserType.vue.d.ts +3 -3
  227. package/dist/views/log_center/components/loginHistoryDetail.vue.d.ts +4 -4
  228. package/dist/views/log_center/components/operateHistoryDetail.vue.d.ts +4 -4
  229. package/dist/views/log_center/login_history.vue.d.ts +315 -315
  230. package/dist/views/log_center/operate_history.vue.d.ts +315 -315
  231. package/dist/views/menu_setting/index.vue.d.ts +1 -1
  232. package/dist/views/organization/components/drawerOrganization.vue.d.ts +4 -4
  233. package/dist/views/organization/components/drawerRole.vue.d.ts +18 -10
  234. package/dist/views/organization/index.vue.d.ts +23 -15
  235. package/dist/views/other_setting/index.vue.d.ts +1 -1
  236. package/dist/views/page_animation_setting/index.vue.d.ts +1 -1
  237. package/dist/views/page_w_setting/index.vue.d.ts +1 -1
  238. package/dist/views/position/components/drawerPosition.vue.d.ts +4 -4
  239. package/dist/views/position/index.vue.d.ts +319 -319
  240. package/dist/views/region/components/drawerRegion.vue.d.ts +4 -4
  241. package/dist/views/region/index.vue.d.ts +319 -319
  242. package/dist/views/resource/components/ComponentSelect.vue.d.ts +14 -0
  243. package/dist/views/resource/components/DynamicRoutesForm.vue.d.ts +13 -0
  244. package/dist/views/resource/components/ImportExport.vue.d.ts +13 -0
  245. package/dist/views/resource/components/MetaForm.vue.d.ts +10 -0
  246. package/dist/views/resource/components/ResourceEdit.vue.d.ts +4 -4
  247. package/dist/views/resource/components/RoleRelation.vue.d.ts +2 -2
  248. package/dist/views/resource/enum.d.ts +6 -13
  249. package/dist/views/resource/hooks/useMetaForm.d.ts +6 -0
  250. package/dist/views/resource/index.vue.d.ts +343 -321
  251. package/dist/views/resource/interface.d.ts +4 -1
  252. package/dist/views/resource/model.d.ts +37 -0
  253. package/dist/views/role/components/ResourceRelation.vue.d.ts +316 -316
  254. package/dist/views/role/components/drawerRole.vue.d.ts +10 -10
  255. package/dist/views/role/index.vue.d.ts +642 -642
  256. package/dist/views/role_group/components/drawerRole.vue.d.ts +18 -10
  257. package/dist/views/role_group/index.vue.d.ts +333 -325
  258. package/dist/views/safe_setting/index.vue.d.ts +1 -1
  259. package/dist/views/tabbar_setting/index.vue.d.ts +1 -1
  260. package/dist/views/tenant/components/TenantEdit.vue.d.ts +10 -10
  261. package/dist/views/tenant/index.vue.d.ts +325 -325
  262. package/dist/views/theme_setting/index.vue.d.ts +1 -1
  263. package/dist/views/toolbar_setting/index.vue.d.ts +1 -1
  264. package/dist/views/user/components/OrgAndPosition.vue.d.ts +3 -3
  265. package/dist/views/user/components/UserAuthorization.vue.d.ts +18 -10
  266. package/dist/views/user/components/UserEdit.vue.d.ts +4 -4
  267. package/dist/views/user/index.vue.d.ts +337 -329
  268. package/dist/views/watermark_setting/index.vue.d.ts +9 -9
  269. package/dist/watermark_setting-BnBt5gdM.js +199 -0
  270. package/dist/watermark_setting.css +1 -0
  271. package/dist/zddata-Cdy8vScr.js +2 -0
  272. package/dist/zy_checked-xjGWlIXf.js +2 -0
  273. package/dist/zy_default-kwFuicHB.js +2 -0
  274. package/package.json +17 -15
  275. package/src/api/modules/assist/gonggaofuwu.ts +24 -9
  276. package/src/api/modules/assist/index.ts +0 -2
  277. package/src/api/modules/assist/qunzujiekou.ts +37 -7
  278. package/src/api/modules/assist/quyujiekou.ts +12 -3
  279. package/src/api/modules/assist/typings.d.ts +62 -58
  280. package/src/api/modules/configData/heibaimingdanfuwu.ts +12 -3
  281. package/src/api/modules/configData/index.ts +1 -3
  282. package/src/api/modules/configData/typings.d.ts +84 -74
  283. package/src/api/modules/configData/xitongpeizhifuwu.ts +39 -15
  284. package/src/api/modules/configData/{zidianfuwu.ts → zidifuwu.ts} +80 -8
  285. package/src/api/modules/log/caozuorizhifuwu.ts +8 -2
  286. package/src/api/modules/log/denglurizhifuwu.ts +8 -2
  287. package/src/api/modules/log/index.ts +0 -2
  288. package/src/api/modules/log/typings.d.ts +29 -25
  289. package/src/api/modules/rbac/gangweijiekou.ts +44 -8
  290. package/src/api/modules/rbac/index.ts +1 -2
  291. package/src/api/modules/rbac/jiaosejiekou.ts +24 -9
  292. package/src/api/modules/rbac/pubJiaosezukongzhiqi.ts +45 -6
  293. package/src/api/modules/rbac/shujuquanxianzhubiaokongzhiqi.ts +26 -12
  294. package/src/api/modules/rbac/typings.d.ts +419 -296
  295. package/src/api/modules/rbac/yonghujiekou.ts +115 -13
  296. package/src/api/modules/rbac/yonghushoucangbiaojiekou.ts +20 -5
  297. package/src/api/modules/rbac/yonghuzuijinchangyongbiaojiekou.ts +12 -3
  298. package/src/api/modules/rbac/ziyuandaorudaochuxiangguanjiekou.ts +158 -0
  299. package/src/api/modules/rbac/ziyuanjiekou.ts +43 -4
  300. package/src/api/modules/rbac/zuhuguanlijiekou.ts +20 -11
  301. package/src/api/modules/rbac/zuzhijiaosebiaokongzhiqi.ts +12 -3
  302. package/src/api/modules/rbac/zuzhijiekou.ts +28 -10
  303. package/src/api/request.ts +3 -2
  304. package/src/assets/icons/add-child.svg +1 -1
  305. package/src/assets/icons/authority.svg +1 -1
  306. package/src/assets/icons/authorize.svg +1 -1
  307. package/src/assets/icons/blacklist-disable.svg +1 -1
  308. package/src/assets/icons/blacklist-enable.svg +1 -1
  309. package/src/assets/icons/browser-chrome.svg +1 -1
  310. package/src/assets/icons/browser-edge.svg +1 -1
  311. package/src/assets/icons/browser-ie.svg +1 -1
  312. package/src/assets/icons/browser-other.svg +1 -1
  313. package/src/assets/icons/browser-safari.svg +1 -1
  314. package/src/assets/icons/edit.svg +1 -1
  315. package/src/assets/icons/icard.svg +1 -1
  316. package/src/assets/icons/icon_animation.svg +1 -1
  317. package/src/assets/icons/icon_breadcrumb.svg +1 -1
  318. package/src/assets/icons/icon_copyright.svg +1 -1
  319. package/src/assets/icons/icon_jt.svg +1 -1
  320. package/src/assets/icons/icon_layout.svg +1 -1
  321. package/src/assets/icons/icon_mainpage.svg +1 -1
  322. package/src/assets/icons/icon_menu.svg +1 -1
  323. package/src/assets/icons/icon_page_size.svg +1 -1
  324. package/src/assets/icons/icon_position_type.svg +1 -1
  325. package/src/assets/icons/icon_safe_manage.svg +1 -1
  326. package/src/assets/icons/icon_screen_scale.svg +2 -2
  327. package/src/assets/icons/icon_system_manage.svg +1 -1
  328. package/src/assets/icons/icon_tabbar.svg +1 -1
  329. package/src/assets/icons/icon_toolbar.svg +1 -1
  330. package/src/assets/icons/icon_topbar.svg +1 -1
  331. package/src/assets/icons/icon_watermark.svg +1 -1
  332. package/src/assets/icons/log-center.svg +1 -1
  333. package/src/assets/icons/not-data.svg +1 -1
  334. package/src/assets/icons/org-main.svg +1 -1
  335. package/src/assets/icons/org-unmain.svg +1 -1
  336. package/src/assets/icons/remove.svg +1 -1
  337. package/src/assets/icons/resource-app.svg +1 -1
  338. package/src/assets/icons/resource-btn.svg +1 -1
  339. package/src/assets/icons/resource-dynamic.svg +39 -0
  340. package/src/assets/icons/resource-index.svg +1 -1
  341. package/src/assets/icons/resource-menu.svg +1 -1
  342. package/src/assets/icons/resource-micro.svg +40 -0
  343. package/src/assets/icons/resource-nonmenu.svg +1 -1
  344. package/src/assets/icons/setting-manage.svg +1 -1
  345. package/src/assets/icons/theme-check-mark.svg +1 -1
  346. package/src/assets/icons/theme-title.svg +1 -1
  347. package/src/assets/icons/view.svg +1 -1
  348. package/src/assets/icons/zddata.svg +1 -1
  349. package/src/assets/icons/zy_checked.svg +1 -1
  350. package/src/assets/icons/zy_default.svg +1 -1
  351. package/src/components/DirectoryIcones/ComponentsIcones.vue +18 -0
  352. package/src/components/DirectoryIcones/FolderIcones.vue +18 -0
  353. package/src/components/DirectoryIcones/ModuleIcones.vue +18 -0
  354. package/src/components/DirectoryIcones/PackagesIcones.vue +18 -0
  355. package/src/components/DirectoryIcones/SrcIcones.vue +18 -0
  356. package/src/components/DirectoryIcones/ViewIcones.vue +18 -0
  357. package/src/components/DirectoryIcones/VueIcones.vue +9 -0
  358. package/src/components/GroupSelector/index.vue +64 -89
  359. package/src/components/OrgTree/index.vue +2 -2
  360. package/src/components/OrgUserSelector/index.ts +5 -0
  361. package/src/components/OrgUserSelector/provider.ts +1 -1
  362. package/src/components/ResourceIcones/Select.vue +240 -0
  363. package/src/components/ResourceSelector/index.vue +33 -50
  364. package/src/components/RoleSelector/RoleSearch.vue +60 -0
  365. package/src/components/RoleSelector/RoleSelector.vue +174 -0
  366. package/src/components/RoleSelector/TooltipLabel.vue +24 -0
  367. package/src/components/RoleSelector/index.ts +2 -0
  368. package/src/components/RoleSelector/interface.ts +4 -0
  369. package/src/components/RoleSelector/useRole.ts +56 -0
  370. package/src/context.ts +20 -0
  371. package/src/index.ts +21 -18
  372. package/src/interface.ts +31 -2
  373. package/src/routes/index.ts +9 -5
  374. package/src/routes/modules/authority.manage.menu.ts +0 -13
  375. package/src/routes/modules/log.manage.menu.ts +0 -8
  376. package/src/routes/modules/safe.manage.menu.ts +0 -12
  377. package/src/routes/modules/stylesetting.manage.menu.ts +0 -16
  378. package/src/routes/modules/system.manage.menu.ts +0 -10
  379. package/src/views/blackWhiteList/components/drawerBlackWhiteList.vue +1 -1
  380. package/src/views/blackWhiteList/index.vue +14 -26
  381. package/src/views/breadcrumb_setting/index.vue +3 -3
  382. package/src/views/components/animation_item.vue +2 -2
  383. package/src/views/components/setItem.vue +13 -20
  384. package/src/views/data-permission/components/createAndEditDataPermission.vue +4 -4
  385. package/src/views/data-permission/enum.ts +7 -7
  386. package/src/views/data-permission/index.vue +9 -12
  387. package/src/views/dictionary/components/drawerDictionary.vue +1 -1
  388. package/src/views/dictionary/components/drawerDictionaryItem.vue +1 -1
  389. package/src/views/dictionary/index.vue +3 -3
  390. package/src/views/dictionary/itemlist.vue +3 -3
  391. package/src/views/group/components/drawerGroup.vue +2 -2
  392. package/src/views/group/index.vue +13 -18
  393. package/src/views/layout_setting/index.vue +154 -164
  394. package/src/views/log_center/components/loginHistoryDetail.vue +6 -8
  395. package/src/views/log_center/components/operateHistoryDetail.vue +6 -8
  396. package/src/views/log_center/login_history.vue +6 -11
  397. package/src/views/log_center/operate_history.vue +6 -11
  398. package/src/views/menu_setting/index.vue +3 -3
  399. package/src/views/organization/components/drawerOrganization.vue +3 -3
  400. package/src/views/organization/components/drawerRole.vue +9 -7
  401. package/src/views/organization/index.vue +23 -49
  402. package/src/views/other_setting/index.vue +2 -2
  403. package/src/views/page_animation_setting/index.vue +10 -18
  404. package/src/views/page_w_setting/index.vue +133 -116
  405. package/src/views/position/components/drawerPosition.vue +2 -2
  406. package/src/views/position/index.vue +1 -1
  407. package/src/views/region/components/drawerRegion.vue +2 -2
  408. package/src/views/region/index.vue +1 -1
  409. package/src/views/resource/components/ComponentSelect.vue +400 -0
  410. package/src/views/resource/components/DynamicRoutesForm.vue +92 -0
  411. package/src/views/resource/components/ImportExport.vue +313 -0
  412. package/src/views/resource/components/MetaForm.vue +119 -0
  413. package/src/views/resource/components/ResourceEdit.vue +144 -73
  414. package/src/views/resource/components/RoleRelation.vue +1 -1
  415. package/src/views/resource/enum.ts +12 -13
  416. package/src/views/resource/hooks/useMetaForm.ts +103 -0
  417. package/src/views/resource/index.vue +59 -32
  418. package/src/views/resource/interface.ts +5 -1
  419. package/src/views/resource/model.ts +53 -0
  420. package/src/views/role/components/ResourceRelation.vue +3 -4
  421. package/src/views/role/components/drawerRole.vue +3 -3
  422. package/src/views/role/index.vue +1 -1
  423. package/src/views/role_group/components/ResourceRelation.vue +3 -4
  424. package/src/views/role_group/components/drawerRole.vue +8 -7
  425. package/src/views/role_group/index.vue +1 -1
  426. package/src/views/safe_setting/index.vue +5 -7
  427. package/src/views/tabbar_setting/index.vue +2 -2
  428. package/src/views/tenant/components/TenantEdit.vue +1 -1
  429. package/src/views/tenant/index.vue +1 -1
  430. package/src/views/theme_setting/index.vue +202 -231
  431. package/src/views/toolbar_setting/index.vue +3 -3
  432. package/src/views/user/components/OrgAndPosition.vue +2 -2
  433. package/src/views/user/components/UserAuthorization.vue +13 -12
  434. package/src/views/user/components/UserEdit.vue +1 -1
  435. package/src/views/user/index.vue +1 -1
  436. package/src/views/watermark_setting/index.vue +8 -15
  437. package/dist/OrgSelector.vue_vue_type_script_setup_true_lang-BcL0IFuA.js +0 -567
  438. package/dist/_baseClone-CQ44TFeq.js +0 -191
  439. package/dist/_commonjsHelpers-C6fGbg64.js +0 -6
  440. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  441. package/dist/animation_item.vue_vue_type_script_setup_true_lang-BQvmwheq.js +0 -4864
  442. package/dist/browserType.vue_vue_type_script_setup_true_lang-Cv8wph6G.js +0 -38
  443. package/dist/cloneDeep-BI4WNBQ9.js +0 -8
  444. package/dist/enum-BEHz_Q18.js +0 -74
  445. package/dist/enum-C9ihxJe7.js +0 -4
  446. package/dist/enum-CTUzwCYG.js +0 -4
  447. package/dist/enum-DDKThkSw.js +0 -24
  448. package/dist/gangweijiekou-BxJq_m0o.js +0 -46
  449. package/dist/index-BS45K9vK.js +0 -685
  450. package/dist/index-Bbsiwecf.js +0 -1631
  451. package/dist/index-BhcAk-IH.js +0 -399
  452. package/dist/index-Bl4v-7On.js +0 -125
  453. package/dist/index-CFPhIFyG.js +0 -140
  454. package/dist/index-CLSeuhTv.js +0 -872
  455. package/dist/index-CLxqmFPw.js +0 -317
  456. package/dist/index-CTiFd9M0.js +0 -303
  457. package/dist/index-Cej8u1qo.js +0 -274
  458. package/dist/index-Cr17VOfm.js +0 -389
  459. package/dist/index-CsHj-xDw.js +0 -283
  460. package/dist/index-D0yB_8b0.js +0 -181
  461. package/dist/index-DFR8dd2B.js +0 -785
  462. package/dist/index-DNf0NPrD.js +0 -131
  463. package/dist/index-Dm4sOX43.js +0 -27
  464. package/dist/index-KboUdpTh.js +0 -18588
  465. package/dist/index-MtXfNGqS.js +0 -1246
  466. package/dist/index-U8kjKY6p.js +0 -462
  467. package/dist/index-a0E9oj3q.js +0 -703
  468. package/dist/index-gmUZUdNl.js +0 -634
  469. package/dist/index-j_ln_NSt.js +0 -455
  470. package/dist/index-s32GbmsJ.js +0 -164
  471. package/dist/index-yEpViVkx.js +0 -409
  472. package/dist/index-zh8PZXw2.js +0 -862
  473. package/dist/itemlist-xAbIKRVj.js +0 -369
  474. package/dist/jiaosejiekou-BfY4h7uI.js +0 -58
  475. package/dist/login_history-CuQv9Iw3.js +0 -430
  476. package/dist/operate_history-CGP-1Xy2.js +0 -468
  477. package/dist/pubJiaosezukongzhiqi-CvYfc8Uz.js +0 -57
  478. package/dist/request-DQLgc7lT.js +0 -5
  479. package/dist/setItem-DkOvmWXP.js +0 -152
  480. package/dist/shujuquanxianzhubiaokongzhiqi-DyNgf1y6.js +0 -65
  481. package/dist/style.css +0 -1
  482. package/dist/useAppAndResource-D_b19V4t.js +0 -55
  483. package/dist/views/organization/components/roleSelect.vue.d.ts +0 -14
  484. package/dist/views/role_group/components/roleSelect.vue.d.ts +0 -14
  485. package/dist/views/user/components/roleSelect.vue.d.ts +0 -14
  486. package/dist/xitongpeizhifuwu-C1Vm-W1B.js +0 -23
  487. package/dist/zidianfuwu-yCWHhOfO.js +0 -65
  488. package/dist/ziyuanjiekou-DhrAbneq.js +0 -69
  489. package/dist/zuzhijiaosebiaokongzhiqi-B1g74RqL.js +0 -28
  490. package/dist/zuzhijiekou-PeZuFtCO.js +0 -85
  491. package/src/assets/icons/403.svg +0 -1
  492. package/src/assets/icons/403_dark.svg +0 -1
  493. package/src/assets/icons/404.svg +0 -1
  494. package/src/assets/icons/404_dark.svg +0 -1
  495. package/src/assets/icons/browser-360.svg +0 -1
  496. package/src/assets/icons/browser-qq.svg +0 -1
  497. package/src/assets/icons/browser-uc.svg +0 -1
  498. package/src/assets/icons/change-org.svg +0 -1
  499. package/src/assets/icons/empty-data.svg +0 -1
  500. package/src/assets/icons/favorites.svg +0 -1
  501. package/src/assets/icons/image-load-fail.svg +0 -1
  502. package/src/assets/icons/logo-sig.svg +0 -1
  503. package/src/assets/icons/logo.svg +0 -1
  504. package/src/assets/icons/mima.svg +0 -1
  505. package/src/assets/icons/process-management.svg +0 -1
  506. package/src/assets/icons/project-management.svg +0 -1
  507. package/src/assets/icons/rbac.svg +0 -1
  508. package/src/assets/icons/test.svg +0 -1
  509. package/src/assets/icons/toolbar-collapse.svg +0 -1
  510. package/src/assets/icons/tree_icon.svg +0 -1
  511. package/src/assets/icons/tree_icon_checked.svg +0 -1
  512. package/src/assets/icons/workbench.svg +0 -1
  513. package/src/views/organization/components/roleSelect.vue +0 -258
  514. package/src/views/role_group/components/roleSelect.vue +0 -224
  515. package/src/views/user/components/roleSelect.vue +0 -258
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import type { IOption } from './interface';
3
+ import { useToggle } from '@vueuse/core';
3
4
  import { postGroupList } from '@/api/modules/assist';
4
5
  import { GROUP_TYPE } from '@/views/group/enum';
5
- import { useToggle } from '@vueuse/core';
6
6
 
7
7
  defineOptions({
8
8
  name: 'GroupSelector',
@@ -170,92 +170,75 @@ defineExpose({
170
170
  </a-modal>
171
171
  </template>
172
172
 
173
- <style lang="scss">
174
- .group-modal {
175
- .ant-tabs-content-holder {
176
- padding: 0 16px 8px;
177
- overflow: auto;
178
- }
173
+ <style>
174
+ .group-modal .ant-tabs-content-holder {
175
+ --at-apply: overflow-auto pt-0 pb-2 px-4;
176
+ }
179
177
 
180
- .ant-tabs-nav::before {
181
- display: none;
182
- }
178
+ .group-modal .ant-tabs-nav::before {
179
+ --at-apply: hidden;
180
+ }
183
181
 
184
- .ant-tabs-nav-wrap {
185
- height: 38px;
186
- background: rgb(245 245 245);
187
- }
182
+ .group-modal .ant-tabs-nav-wrap {
183
+ --at-apply: h-38px [background:#f5f5f5];
184
+ }
188
185
 
189
- .ant-tabs-tab {
190
- padding: 0 12px;
191
- margin: 0;
186
+ .group-modal .ant-tabs-tab {
187
+ --at-apply: m-0 px-3 py-0;
188
+ }
192
189
 
193
- & + .ant-tabs-tab {
194
- margin-left: 0 !important;
195
- }
196
- }
190
+ .group-modal .ant-tabs-tab + .ant-tabs-tab {
191
+ margin-left: 0 !important;
192
+ }
197
193
 
198
- .ant-tabs-tab-active {
199
- background: white;
200
- }
194
+ .group-modal .ant-tabs-tab-active {
195
+ --at-apply: [background:white];
196
+ }
201
197
 
202
- .ant-checkbox-group {
203
- display: block;
204
- }
198
+ .group-modal .ant-checkbox-group {
199
+ --at-apply: block;
200
+ }
205
201
 
206
- .ant-checkbox-wrapper {
207
- display: flex;
208
- margin-bottom: 8px;
209
- }
202
+ .group-modal .ant-checkbox-wrapper {
203
+ --at-apply: flex mb-2;
204
+ }
210
205
 
211
- .ant-tabs-ink-bar {
212
- display: none;
213
- }
206
+ .group-modal .ant-tabs-ink-bar {
207
+ --at-apply: hidden;
214
208
  }
215
209
 
216
- .dark .group-modal {
217
- .ant-tabs-nav-wrap {
218
- color: #f2f3f5;
219
- background: #000;
220
- }
210
+ .dark .group-modal .ant-tabs-nav-wrap {
211
+ --at-apply: text-[#f2f3f5] [background:#000];
212
+ }
221
213
 
222
- .ant-tabs-tab-active {
223
- background: rgb(20 20 20);
224
- }
214
+ .dark .group-modal .ant-tabs-tab-active {
215
+ --at-apply: [background:#141414];
225
216
  }
226
217
  </style>
227
218
 
228
- <style lang='scss' scoped>
229
- .group-modal {
230
- :deep(.ant-modal-content) {
231
- padding: 0;
232
- border-radius: 0;
233
- }
219
+ <style scoped>
220
+ .group-modal :deep(.ant-modal-content) {
221
+ --at-apply: p-0 rounded-none;
222
+ }
234
223
 
235
- :deep(.ant-modal-header) {
236
- padding: 12px 16px;
237
- margin-bottom: 0;
238
- border-bottom: 1px solid #e5e6eb;
239
- }
224
+ .group-modal :deep(.ant-modal-header) {
225
+ --at-apply: mb-0 px-4 py-3 border-b-[#e5e6eb] border-b border-solid;
226
+ }
240
227
 
241
- :deep(.ant-modal-title) {
242
- font-size: 16px;
243
- font-weight: 500;
244
- color: #1d2129;
245
- }
228
+ .group-modal :deep(.ant-modal-title) {
229
+ --at-apply: text-base leading-none font-medium text-[#1d2129];
230
+ }
246
231
 
247
- :deep(.ant-modal-body) {
248
- padding: 16px;
249
- }
232
+ .group-modal :deep(.ant-modal-body) {
233
+ --at-apply: p-4;
234
+ }
250
235
 
251
- :deep(.ant-modal-footer) {
252
- padding: 16px;
253
- border-top: 1px solid #e5e6eb;
236
+ .group-modal :deep(.ant-modal-footer) {
237
+ --at-apply: p-4 border-t-[#e5e6eb] border-t border-solid;
238
+ }
254
239
 
255
- .ant-btn {
256
- border-radius: 2px;
257
- }
258
- }
240
+ .group-modal :deep(.ant-modal-footer) .ant-btn {
241
+ --at-apply: rounded-sm;
259
242
  }
260
243
 
261
244
  :deep(.ant-tree-checkbox) {
@@ -264,42 +247,34 @@ defineExpose({
264
247
  }
265
248
 
266
249
  :deep(.ant-tree-checkbox + span .ant-tree-iconEle) {
267
- margin-right: 4px;
250
+ --at-apply: mr-1;
268
251
  }
269
252
 
270
253
  .custom_tag {
271
- padding: 3px 8px;
272
- border-width: 0;
273
- border-radius: 2px;
254
+ --at-apply: px-2 py-[3px] rounded-sm border-0;
255
+ }
274
256
 
275
- :deep(.ant-tag-close-icon) {
276
- color: rgb(22 93 255 / 60%);
257
+ .custom_tag :deep(.ant-tag-close-icon) {
258
+ --at-apply: text-[#165dff] text-op-60;
259
+ }
277
260
 
278
- &:hover {
279
- color: #165dff;
280
- }
281
- }
261
+ .custom_tag :deep(.ant-tag-close-icon):hover {
262
+ --at-apply: text-[#165dff];
282
263
  }
283
264
 
284
265
  .border_color {
285
- border-color: #e5e6eb;
266
+ --at-apply: border-[#e5e6eb];
286
267
  }
287
268
 
288
- [data-theme="dark"] {
289
- .border_color {
290
- border-color: rgb(253 253 253 / 12%);
291
- }
269
+ [data-theme="dark"] .border_color {
270
+ --at-apply: border-[#FDFDFD] border-op-12;
292
271
  }
293
272
 
294
273
  .border_c {
295
- border: 1px dashed #ccc;
296
- border-radius: 10px;
274
+ --at-apply: border rounded-[10px] border-dashed border-[#ccc];
297
275
  }
298
276
 
299
277
  :deep(.ant-dropdown-link) {
300
- padding: 4px 6px;
301
- font-size: 12px;
302
- border-radius: 2px;
303
- transform: scale(0.7);
278
+ --at-apply: text-xs px-1.5 py-1 rounded-sm scale-[0.7];
304
279
  }
305
280
  </style>
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { EventDataNode, TreeProps } from 'ant-design-vue/es/tree';
3
- import { getRbacOrgOrgListByParentId } from '@/api/modules/rbac';
4
3
  import { useToggle } from '@vueuse/core';
4
+ import { getRbacOrgOrgListByParentId } from '@/api/modules/rbac';
5
5
 
6
6
  defineOptions({
7
7
  name: 'OrgTree',
@@ -86,6 +86,6 @@ onMounted(() => {
86
86
 
87
87
  <style scoped>
88
88
  :deep(.ant-tree .ant-tree-node-content-wrapper) {
89
- overflow: hidden;
89
+ --at-apply: overflow-hidden;
90
90
  }
91
91
  </style>
@@ -14,6 +14,11 @@ export function selectUser(props: UserSelectorProps & { modelValue?: UserModelVa
14
14
  createAppElement(UserSelector, props);
15
15
  }
16
16
 
17
+ export {
18
+ OrgSelector,
19
+ UserSelector,
20
+ };
21
+
17
22
  function createAppElement(
18
23
  component: typeof OrgSelector | typeof UserSelector,
19
24
  props: Parameters<typeof selectUser | typeof selectOrg>[0],
@@ -1,7 +1,7 @@
1
1
  import type { OrgProviderProps, UserProviderProps } from '@pubinfo/headlessui';
2
+ import { message } from 'ant-design-vue';
2
3
  import { getGroupDetailById, postGroupFindPage } from '@/api/modules/assist';
3
4
  import { getRbacOrgOrgListByParentId, getRbacOrgSearchSubOrgById, postRbacCollectAdd, postRbacCollectFindPage, postRbacCollectRemoveCollect, postRbacOrgSearch, postRbacOrgSearchOrgByIds, postRbacUsedAddBatch, postRbacUsedFindPage, postRbacUserUserAndOrgList, postRbacUserUserForMultiOrgPage } from '@/api/modules/rbac';
4
- import { message } from 'ant-design-vue';
5
5
 
6
6
  interface ExtraApis {
7
7
  /** 回显选中项 */
@@ -0,0 +1,240 @@
1
+ <script setup lang="ts">
2
+ import * as AntdIcons from '@ant-design/icons-vue';
3
+ import { Empty } from 'ant-design-vue';
4
+ import { getAllIconModules, PubinfoIcon } from 'pubinfo';
5
+
6
+ defineOptions({ name: 'ResourceIconesSelect' });
7
+
8
+ // v-model
9
+ const modelValueRef = defineModel<string>();
10
+
11
+ // 弹窗
12
+ const visibleRef = ref(false);
13
+ function handleOpenModal() {
14
+ visibleRef.value = true;
15
+ }
16
+ function handleClose() {
17
+ visibleRef.value = false;
18
+ }
19
+
20
+ // 基础数据
21
+ interface IconItem { name: string, module?: string }
22
+
23
+ // 提取文件名(去后缀)
24
+ function extractName(path: string) {
25
+ const seg = path.split(/[\\/]/).pop() || path;
26
+ return seg.replace(/\.(svg|png|jpe?g)$/i, '');
27
+ }
28
+
29
+ // 资产图标模块 -> 图标列表 (Map 迭代)
30
+ const moduleIconMap = computed(() => {
31
+ const m = new Map<string, string[]>();
32
+ const all = getAllIconModules();
33
+ for (const [mod, record] of all.entries()) {
34
+ const arr = Object.keys(record)
35
+ .map(extractName)
36
+ .sort();
37
+ m.set(mod, arr);
38
+ }
39
+ return m;
40
+ });
41
+
42
+ // AntD 图标(带前缀 antd:)
43
+ const antdIcons = computed<string[]>(() => Object.keys(AntdIcons)
44
+ .filter(n => /(?:Outlined|Filled|TwoTone)$/.test(n))
45
+ .map(n => `antd:${n}`)
46
+ .sort(),
47
+ );
48
+
49
+ // 模块列表(全部 + 本地(local) 优先 + 其余模块 + Ant Design)
50
+ const moduleOptions = computed(() => {
51
+ const keys = Array.from(moduleIconMap.value.keys());
52
+ const hasLocal = keys.includes('local');
53
+ const others = keys.filter(k => k !== 'local').sort();
54
+ return [
55
+ { label: '全部', value: 'all' },
56
+ ...(hasLocal ? [{ label: '本地', value: 'local' }] : []),
57
+ ...others.map(v => ({ label: v, value: v })),
58
+ { label: 'Ant Design', value: 'antd' },
59
+ ];
60
+ });
61
+ const activeModule = ref('all');
62
+
63
+ // 搜索关键字
64
+ const keyword = ref('');
65
+
66
+ // 所有图标集合
67
+ const allIcons = computed<IconItem[]>(() => {
68
+ const list: IconItem[] = [];
69
+ for (const [mod, arr] of moduleIconMap.value.entries()) {
70
+ arr.forEach((n) => {
71
+ if (mod === 'local') {
72
+ list.push({ name: n, module: mod });
73
+ }
74
+ else {
75
+ list.push({ name: `${mod}-[${n}]`, module: mod });
76
+ }
77
+ });
78
+ }
79
+ antdIcons.value.forEach(n => list.push({ name: n, module: 'antd' }));
80
+ return list;
81
+ });
82
+
83
+ // 模块过滤
84
+ const moduleFiltered = computed(() => {
85
+ if (activeModule.value === 'all') {
86
+ return allIcons.value;
87
+ }
88
+ if (activeModule.value === 'antd') {
89
+ return allIcons.value.filter(i => i.module === 'antd');
90
+ }
91
+ return allIcons.value.filter(i => i.module === activeModule.value);
92
+ });
93
+
94
+ // 搜索过滤(名称包含)
95
+ const filtered = computed(() => {
96
+ const k = keyword.value.trim().toLowerCase();
97
+ if (!k) {
98
+ return moduleFiltered.value;
99
+ }
100
+ return moduleFiltered.value.filter(i => i.name.toLowerCase().includes(k));
101
+ });
102
+
103
+ // 计数
104
+ function moduleCount(val: string) {
105
+ if (val === 'all') {
106
+ return allIcons.value.length;
107
+ }
108
+ if (val === 'antd') {
109
+ return allIcons.value.filter(i => i.module === 'antd').length;
110
+ }
111
+ return allIcons.value.filter(i => i.module === val).length;
112
+ }
113
+
114
+ // 分页 (30/页)
115
+ const pageSize = 30;
116
+ const currentPage = ref(1);
117
+ const pageCount = computed(() => Math.max(1, Math.ceil(filtered.value.length / pageSize)));
118
+ const pageIcons = computed(() => {
119
+ const start = (currentPage.value - 1) * pageSize;
120
+ return filtered.value.slice(start, start + pageSize);
121
+ });
122
+ watch([keyword, activeModule], () => {
123
+ currentPage.value = 1;
124
+ });
125
+ // 当过滤结果长度变化时,若当前页超出范围则回退到最后一页
126
+ watch(filtered, () => {
127
+ if (currentPage.value > pageCount.value) {
128
+ currentPage.value = pageCount.value;
129
+ }
130
+ });
131
+ function onPageChange(page: number) {
132
+ currentPage.value = page;
133
+ }
134
+
135
+ // 选择
136
+ function handleSelect(icon: IconItem) {
137
+ modelValueRef.value = icon.name;
138
+ handleClose();
139
+ }
140
+
141
+ const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
142
+ </script>
143
+
144
+ <template>
145
+ <a-input v-model:value="modelValueRef" @click="handleOpenModal">
146
+ <template #addonAfter>
147
+ <a-tooltip>
148
+ <template #title>
149
+ <PubinfoIcon :name="modelValueRef || ''" size="40px" class="cursor-default" />
150
+ </template>
151
+ <PubinfoIcon :name="modelValueRef || ''" size="20px" class="cursor-default" />
152
+ </a-tooltip>
153
+ </template>
154
+ </a-input>
155
+ <a-form-item-rest>
156
+ <a-modal
157
+ v-model:open="visibleRef"
158
+ title="选择图标"
159
+ width="1200px"
160
+ :footer="null"
161
+ destroy-on-close
162
+ @cancel="handleClose"
163
+ >
164
+ <div class="flex gap-4 min-h-[600px]">
165
+ <!-- 左侧模块列表 -->
166
+ <div class="w-58 flex flex-col border-r border-[#e5e7eb] dark:border-[#30363d] pr-3">
167
+ <div class="mb-3">
168
+ <a-input
169
+ v-model:value="keyword"
170
+ allow-clear
171
+ :bordered="true"
172
+ placeholder="搜索图标"
173
+ class="h-9 text-13px"
174
+ >
175
+ <template #prefix>
176
+ <PubinfoIcon name="i-carbon-search" size="16" class="text-[#7a869a]" />
177
+ </template>
178
+ </a-input>
179
+ </div>
180
+ <div class="flex-1 overflow-auto space-y-1 pr-1">
181
+ <div
182
+ v-for="m in moduleOptions"
183
+ :key="m.value"
184
+ class="flex items-center justify-between px-3 py-2 rounded-md cursor-pointer text-13px border border-transparent hover:bg-[#f3f6fa] dark:hover:bg-[#262c33] transition"
185
+ :class="activeModule === m.value ? 'bg-[#eef5ff] dark:bg-[#1e2a33] border-[#1677ff] text-[#1677ff] font-medium' : 'text-[#4b5563]'"
186
+ @click="activeModule = m.value"
187
+ >
188
+ <span class="truncate max-w-[120px]">{{ m.label }}</span>
189
+ <span class="ml-2 inline-block min-w-6 text-center text-11px rounded bg-[#eef1f5] dark:bg-[#2d3339] px-1 text-[#5d6671] dark:text-[#9aa3ad]">{{ moduleCount(m.value) }}</span>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ <!-- 主体 -->
194
+ <div class="flex-1 flex flex-col min-w-0">
195
+ <template v-if="filtered.length">
196
+ <div class="grid grid-cols-6 gap-3 auto-rows-[96px] overflow-auto flex-1 p-1">
197
+ <a-tooltip
198
+ v-for="icon in pageIcons"
199
+ :key="`${icon.module || ''}:${icon.name}`"
200
+ :mouse-enter-delay="0.35"
201
+ >
202
+ <template #title>
203
+ <div class="text-12px leading-tight space-y-1">
204
+ <div class="font-medium">
205
+ {{ icon.name }}
206
+ </div>
207
+ <div v-if="icon.module" class="opacity-70">
208
+ 模块: {{ icon.module }}
209
+ </div>
210
+ </div>
211
+ </template>
212
+ <div
213
+ class="group relative flex flex-col items-center justify-center cursor-pointer rounded-md"
214
+ :class="modelValueRef === icon.name ? 'border-[#1677ff] ring-2 ring-[#1677ff80]' : ''"
215
+ @click="handleSelect(icon)"
216
+ >
217
+ <PubinfoIcon :name="icon.name" size="30px" />
218
+ </div>
219
+ </a-tooltip>
220
+ </div>
221
+ <!-- 分页 -->
222
+ <div class="mt-4 flex justify-center select-none">
223
+ <a-pagination
224
+ :current="currentPage"
225
+ :page-size="pageSize"
226
+ :total="filtered.length"
227
+ :show-size-changer="false"
228
+ show-quick-jumper
229
+ @change="onPageChange"
230
+ />
231
+ </div>
232
+ </template>
233
+ <div v-else class="flex-1 flex items-center justify-center">
234
+ <a-empty :image="simpleImage" description="没有匹配的图标" />
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </a-modal>
239
+ </a-form-item-rest>
240
+ </template>
@@ -349,83 +349,66 @@ defineExpose({
349
349
  </a-modal>
350
350
  </template>
351
351
 
352
- <style lang="scss" scoped>
352
+ <style scoped>
353
353
  .border_color {
354
- border-color: #e5e6eb;
354
+ --at-apply: border-[#e5e6eb];
355
355
  }
356
356
 
357
- [data-theme="dark"] {
358
- .border_color {
359
- border-color: rgb(253 253 253 / 12%);
360
- }
357
+ [data-theme="dark"] .border_color {
358
+ --at-apply: border-[#fdfdfd1f];
361
359
  }
362
360
 
363
361
  .border_c {
364
- border: 1px dashed #ccc;
365
- border-radius: 10px;
362
+ --at-apply: border rounded-[10px] border-dashed border-[#ccc];
366
363
  }
367
364
 
368
365
  :deep(.ant-dropdown-link) {
369
- padding: 4px 6px;
370
- font-size: 12px;
371
- border-radius: 2px;
372
- transform: scale(0.7);
366
+ --at-apply: text-xs px-1.5 py-1 rounded-sm scale-[0.7];
373
367
  }
374
368
  </style>
375
369
 
376
- <style lang='scss' scoped>
377
- .custom_modal {
378
- :deep(.ant-modal-content) {
379
- padding: 0;
380
- border-radius: 0;
381
- }
370
+ <style lang='css' scoped>
371
+ .custom_modal :deep(.ant-modal-content) {
372
+ --at-apply: p-0 rounded-none;
373
+ }
382
374
 
383
- :deep(.ant-modal-header) {
384
- padding: 12px 16px;
385
- margin-bottom: 0;
386
- border-bottom: 1px solid #e5e6eb;
387
- }
375
+ .custom_modal :deep(.ant-modal-header) {
376
+ --at-apply: mb-0 px-4 py-3 border-b-[#e5e6eb] border-b border-solid;
377
+ }
388
378
 
389
- :deep(.ant-modal-title) {
390
- font-size: 16px;
391
- font-weight: 500;
392
- color: #1d2129;
393
- }
379
+ .custom_modal :deep(.ant-modal-title) {
380
+ --at-apply: text-base font-medium text-[#1d2129];
381
+ }
394
382
 
395
- :deep(.ant-modal-body) {
396
- padding: 16px;
397
- }
383
+ .custom_modal :deep(.ant-modal-body) {
384
+ --at-apply: p-4;
385
+ }
398
386
 
399
- :deep(.ant-modal-footer) {
400
- padding: 16px;
401
- border-top: 1px solid #e5e6eb;
387
+ .custom_modal :deep(.ant-modal-footer) {
388
+ --at-apply: p-4 border-t-[#e5e6eb] border-t border-solid;
389
+ }
402
390
 
403
- .ant-btn {
404
- border-radius: 2px;
405
- }
406
- }
391
+ .custom_modal :deep(.ant-modal-footer) .ant-btn {
392
+ --at-apply: rounded-sm;
407
393
  }
408
394
 
409
395
  :deep(.ant-tree-checkbox) {
410
- margin-block-start: 0;
411
- margin-inline-end: 2px;
396
+ --at-apply: mt-0 mr-2px;
412
397
  }
413
398
 
414
399
  :deep(.ant-tree-checkbox + span .ant-tree-iconEle) {
415
- margin-right: 4px;
400
+ --at-apply: mr-1;
416
401
  }
417
402
 
418
403
  .custom_tag {
419
- padding: 3px 8px;
420
- border-width: 0;
421
- border-radius: 2px;
404
+ --at-apply: px-2 py-[3px] rounded-sm border-0;
405
+ }
422
406
 
423
- :deep(.ant-tag-close-icon) {
424
- color: rgb(22 93 255 / 60%);
407
+ .custom_tag :deep(.ant-tag-close-icon) {
408
+ --at-apply: text-[#165dff] text-op-60;
409
+ }
425
410
 
426
- &:hover {
427
- color: #165dff;
428
- }
429
- }
411
+ .custom_tag :deep(.ant-tag-close-icon):hover {
412
+ --at-apply: text-[#165dff] text-op-100;
430
413
  }
431
414
  </style>
@@ -0,0 +1,60 @@
1
+ <script setup lang="ts">
2
+ import type { SelectValue } from 'ant-design-vue/es/select';
3
+ import { SearchOutlined } from '@ant-design/icons-vue';
4
+ import { getRbacPubRoleGroupGetAll } from '@/api/modules/rbac';
5
+
6
+ defineOptions({
7
+ name: 'RoleSearch',
8
+ });
9
+
10
+ const props = withDefaults(defineProps<{
11
+ group?: boolean
12
+ }>(), {
13
+ group: false,
14
+ });
15
+
16
+ const emit = defineEmits(['select']);
17
+
18
+ const searchContent = defineModel<string>();
19
+ const groupId = defineModel<string>('groupId');
20
+
21
+ const groups = ref<API.PubRoleGroup[]>([]);
22
+
23
+ async function getRoleGroup() {
24
+ const res = await getRbacPubRoleGroupGetAll({ name: '' });
25
+ if (res.success) {
26
+ groups.value = res.data ?? [];
27
+ }
28
+ }
29
+
30
+ onMounted(() => {
31
+ if (props.group) {
32
+ getRoleGroup();
33
+ }
34
+ });
35
+ </script>
36
+
37
+ <template>
38
+ <a-input v-model:value="searchContent" placeholder="请输入" allow-clear>
39
+ <template #addonBefore>
40
+ <a-select v-if="group" v-model:value="groupId" style="width: 90px;" @change="($event: SelectValue) => emit('select', $event)">
41
+ <a-select-option value="">
42
+ 全部
43
+ </a-select-option>
44
+ <a-select-option v-for="item in groups" :key="item.id" :value="item.id">
45
+ <a-tooltip :title="item.name">
46
+ {{ item.name }}
47
+ </a-tooltip>
48
+ </a-select-option>
49
+ </a-select>
50
+
51
+ <div v-else>
52
+ 全部
53
+ </div>
54
+ </template>
55
+
56
+ <template #suffix>
57
+ <SearchOutlined />
58
+ </template>
59
+ </a-input>
60
+ </template>