@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
@@ -0,0 +1,400 @@
1
+ <script setup lang="ts">
2
+ import type { TreeProps } from 'ant-design-vue';
3
+ import { CaretDownOutlined } from '@ant-design/icons-vue';
4
+ import * as popover from '@destyler/popover';
5
+ import { normalizeProps, useMachine } from '@destyler/vue';
6
+ import { Empty } from 'ant-design-vue';
7
+ import { getAllRouteModules, readProjectModules } from 'pubinfo';
8
+ import ComponentsIcones from '@/components/DirectoryIcones/ComponentsIcones.vue';
9
+ import FolderIcones from '@/components/DirectoryIcones/FolderIcones.vue';
10
+ import ModuleIcones from '@/components/DirectoryIcones/ModuleIcones.vue';
11
+ import PackagesIcones from '@/components/DirectoryIcones/PackagesIcones.vue';
12
+ import SrcIcones from '@/components/DirectoryIcones/SrcIcones.vue';
13
+ import ViewIcones from '@/components/DirectoryIcones/ViewIcones.vue';
14
+ import VueIcones from '@/components/DirectoryIcones/VueIcones.vue';
15
+
16
+ defineOptions({
17
+ name: 'ComponentSelect',
18
+ });
19
+
20
+ const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
21
+
22
+ const moduleValue = defineModel<string>({
23
+ default: '',
24
+ });
25
+
26
+ const scope = defineModel<string>('scope', {
27
+ default: '',
28
+ });
29
+
30
+ const searchInputEl = useTemplateRef<HTMLInputElement>('searchInputRef');
31
+
32
+ const [state, send] = useMachine(popover.machine({
33
+ id: useId(),
34
+ initialFocusEl: () => searchInputEl.value,
35
+ }));
36
+ const api = computed(() => popover.connect(state.value, send, normalizeProps));
37
+
38
+ const visibleRef: Ref<boolean> = ref<boolean>(false);
39
+ // 搜索关键字
40
+ const searchQuery = ref('');
41
+
42
+ // 计算:由输入框当前值与作用域,推导目录树的选中节点 key
43
+ // 约定:根 key 为 'local' 或 'module:<id>',叶子 key = `${root}/${path}`
44
+ const selectedKeys = computed<string[]>(() => {
45
+ if (!moduleValue.value) {
46
+ return [];
47
+ }
48
+ const prefix = scope.value ? `module:${scope.value}` : 'local';
49
+ return [`${prefix}/${moduleValue.value}`];
50
+ });
51
+
52
+ // 手风琴展开:控制顶层(local、module:<id>)仅展开一个
53
+ const expandedKeysRef = ref<string[]>([]);
54
+
55
+ function isRootKey(key: string) {
56
+ // 根 key 无分隔符:'local' 或 'module:<id>'
57
+ return !key.includes('/');
58
+ }
59
+
60
+ function getRootKeyFromPathKey(key: string) {
61
+ // 从 'local/...' 或 'module:<id>/...' 提取根 key
62
+ const idx = key.indexOf('/');
63
+ return idx === -1 ? key : key.slice(0, idx);
64
+ }
65
+
66
+ /**
67
+ * 从选中叶子节点的完整 key 生成展开链(父级链,不含叶子本身)。
68
+ * 例如:'local/a/b/c' -> ['local', 'local/a', 'local/a/b']
69
+ */
70
+ function getExpansionChainFromSelected(key: string) {
71
+ const parts = key.split('/');
72
+ const chain: string[] = [];
73
+ let acc = '';
74
+ // 到倒数第二段(父节点)即可;叶子无需加入 expandedKeys
75
+ for (let i = 0; i < Math.max(0, parts.length - 1); i++) {
76
+ const seg = parts[i];
77
+ acc = i === 0 ? seg : `${acc}/${seg}`;
78
+ chain.push(acc);
79
+ }
80
+ return chain;
81
+ }
82
+
83
+ /**
84
+ * 子层级允许多级展开(以便能展开到选中路径)。
85
+ */
86
+ function onExpand(nextKeys: (string | number)[], e: any) {
87
+ const keys = (nextKeys as string[]) || [];
88
+ const nodeKey: string | undefined = e?.node?.key;
89
+ const expanded: boolean = !!e?.expanded;
90
+
91
+ let rootToKeep: string | undefined;
92
+ if (nodeKey && isRootKey(nodeKey)) {
93
+ rootToKeep = expanded ? nodeKey : undefined;
94
+ }
95
+ else if (nodeKey) {
96
+ rootToKeep = getRootKeyFromPathKey(nodeKey);
97
+ }
98
+ else {
99
+ rootToKeep = keys.find(isRootKey);
100
+ }
101
+
102
+ const filtered = keys.filter(k => !isRootKey(String(k)) || String(k) === rootToKeep);
103
+ expandedKeysRef.value = filtered as string[];
104
+ }
105
+
106
+ // 抽取:根据当前选中路径展开到对应层级
107
+ function expandToSelected() {
108
+ const first = selectedKeys.value[0];
109
+ if (!first) {
110
+ return;
111
+ }
112
+ const chain = getExpansionChainFromSelected(first);
113
+ expandedKeysRef.value = chain;
114
+ }
115
+
116
+ // 手风琴效果:当选中项变化时,展开到对应层级
117
+ watch(selectedKeys, () => {
118
+ expandToSelected();
119
+ }, { immediate: true });
120
+
121
+ // 弹层再次打开时,若之前被手动折叠,重新展开到选中层级
122
+ watch(visibleRef, (open) => {
123
+ if (open) {
124
+ expandToSelected();
125
+ }
126
+ });
127
+
128
+ // 自定义树形结构
129
+ interface ComponentTreeNode {
130
+ title: string
131
+ key: string
132
+ // 是否为根节点(如:'local'/'module:<id>')
133
+ root?: boolean
134
+ module?: boolean
135
+ children?: ComponentTreeNode[]
136
+ isLeaf?: boolean
137
+ // 额外数据,选择时可用
138
+ value?: string
139
+ scope?: string
140
+ }
141
+
142
+ /**
143
+ * 从扁平路径数组构建“目录树”节点
144
+ * @param label 根节点标题(如:'本地'/'模块名')
145
+ * @param keyPrefix 根节点 key(如:'local'/'module:<id>')
146
+ * @param paths 叶子路径(views 相对路径)
147
+ * @param scope 作用域(模块 id),本地为 undefined
148
+ */
149
+ function buildTree(label: string, keyPrefix: string, paths: string[], scope?: string): ComponentTreeNode {
150
+ const root: ComponentTreeNode = { title: label, key: keyPrefix, root: true, module: keyPrefix !== 'local', children: [] };
151
+
152
+ // 便捷查找当前层的子节点
153
+ const findOrCreate = (parent: ComponentTreeNode, title: string, key: string) => {
154
+ if (!parent.children) {
155
+ parent.children = [];
156
+ }
157
+ let node = parent.children.find(n => n.title === title && !n.isLeaf);
158
+ if (!node) {
159
+ node = { title, key, children: [] };
160
+ parent.children.push(node);
161
+ }
162
+ return node;
163
+ };
164
+
165
+ for (const p of paths) {
166
+ const segs = p.split('/').filter(Boolean);
167
+ let current = root;
168
+ let acc = keyPrefix;
169
+ for (let i = 0; i < segs.length; i++) {
170
+ const seg = segs[i];
171
+ acc = acc ? `${acc}/${seg}` : seg;
172
+ const isLast = i === segs.length - 1;
173
+ if (isLast) {
174
+ // 叶子结点携带 value 与 scope 信息
175
+ current.children = current.children || [];
176
+ current.children.push({
177
+ title: seg,
178
+ key: acc,
179
+ isLeaf: true,
180
+ value: p,
181
+ scope,
182
+ });
183
+ }
184
+ else {
185
+ current = findOrCreate(current, seg, acc);
186
+ }
187
+ }
188
+ }
189
+
190
+ return root;
191
+ }
192
+
193
+ // 计算:树数据,根为“本地”和各模块名,叶子为 views 下的路径
194
+ const componentTreeOptions = computed<TreeProps['treeData']>(() => {
195
+ // 获取主项目的 pages
196
+ const projectStructure = readProjectModules();
197
+ const mainPages = projectStructure?.pages || {};
198
+
199
+ // 获取所有模块的 pages
200
+ const routeModuleMap = getAllRouteModules();
201
+
202
+ const treeNodes: ComponentTreeNode[] = [];
203
+
204
+ // 本地节点
205
+ treeNodes.push(
206
+ buildTree('本地', 'local', Object.keys(mainPages)),
207
+ );
208
+
209
+ // 模块节点
210
+ for (const [id, moduleMap] of routeModuleMap) {
211
+ treeNodes.push(
212
+ buildTree(id, `module:${id}`, Object.keys(moduleMap), id),
213
+ );
214
+ }
215
+
216
+ return treeNodes as unknown as TreeProps['treeData'];
217
+ });
218
+
219
+ // 根据搜索关键字过滤树数据,保留匹配节点及其祖先
220
+ const displayedTreeData = computed<TreeProps['treeData']>(() => {
221
+ const q = searchQuery.value.trim().toLowerCase();
222
+ const source = componentTreeOptions.value as any[];
223
+ if (!q) {
224
+ return source as unknown as TreeProps['treeData'];
225
+ }
226
+
227
+ const filterNodes = (nodes: any[]): any[] => {
228
+ const res: any[] = [];
229
+ for (const n of nodes || []) {
230
+ const title = String(n?.title ?? '').toLowerCase();
231
+ const value = String(n?.value ?? '').toLowerCase();
232
+ const keyStr = String(n?.key ?? '').toLowerCase();
233
+ const selfMatch = title.includes(q) || value.includes(q) || keyStr.includes(q);
234
+ let childrenFiltered: any[] | undefined;
235
+ if (Array.isArray(n?.children) && n.children.length) {
236
+ childrenFiltered = filterNodes(n.children);
237
+ }
238
+ if (selfMatch || (childrenFiltered && childrenFiltered.length)) {
239
+ const cloned = { ...n };
240
+ if (childrenFiltered) {
241
+ cloned.children = childrenFiltered;
242
+ }
243
+ else if (cloned.children) {
244
+ delete cloned.children;
245
+ }
246
+ res.push(cloned);
247
+ }
248
+ }
249
+ return res;
250
+ };
251
+
252
+ return filterNodes(source) as unknown as TreeProps['treeData'];
253
+ });
254
+
255
+ // 收集非叶子节点 key,用于搜索时全部展开
256
+ function collectNonLeafKeys(nodes: any[]): string[] {
257
+ const keys: string[] = [];
258
+ const dfs = (ns: any[]) => {
259
+ for (const n of ns || []) {
260
+ const hasChildren = Array.isArray(n?.children) && n.children.length > 0;
261
+ if (hasChildren) {
262
+ keys.push(String(n.key));
263
+ dfs(n.children);
264
+ }
265
+ }
266
+ };
267
+ dfs(nodes);
268
+ return keys;
269
+ }
270
+
271
+ // 搜索展开控制:有关键字时展开所有非叶节点,清空时回到选中项展开
272
+ watch(searchQuery, (q) => {
273
+ const hasQ = String(q || '').trim().length > 0;
274
+ if (hasQ) {
275
+ const data = displayedTreeData.value as any[];
276
+ expandedKeysRef.value = collectNonLeafKeys(data);
277
+ }
278
+ else {
279
+ expandToSelected();
280
+ }
281
+ });
282
+
283
+ // 选择项:回填路径与作用域,并关闭弹层
284
+ function onSelect(keys: (string | number)[], e: any) {
285
+ const node = e?.node;
286
+ const data = node?.dataRef ?? node;
287
+ if (data?.isLeaf) {
288
+ // 叶子节点:写入路径与作用域
289
+ moduleValue.value = data.value || '';
290
+ scope.value = data.scope || '';
291
+ // 选中后清空搜索
292
+ searchQuery.value = '';
293
+ // 选中后关闭弹窗(可按需保留)
294
+ visibleRef.value = false;
295
+ }
296
+ }
297
+ </script>
298
+
299
+ <template>
300
+ <div class="mt-0">
301
+ <div v-bind="api.getTriggerProps()">
302
+ <a-input
303
+ v-model:value="moduleValue"
304
+ :addon-before="scope || '本地'"
305
+ placeholder="请输入或选择组件路径(views下的路径)"
306
+ />
307
+ </div>
308
+ <!-- 始终挂载 Teleport,内部用 Transition 控制出现/消失动画 -->
309
+ <Teleport to="body">
310
+ <div
311
+ v-if="api.open"
312
+ v-bind="api.getPositionerProps()"
313
+ class="z-1050"
314
+ >
315
+ <div
316
+ v-bind="api.getContentProps()"
317
+ class="z-1050 w-162 rounded-md border border-solid p-4
318
+ border-[--g-border-color] shadow-md outline-none
319
+ bg-#ffffff dark:bg-#141414 text-dark dark:text-light
320
+ data-[state=open]:animate-in data-[state=closed]:animate-out
321
+ data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0
322
+ data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"
323
+ >
324
+ <div class="w-152 mb-2">
325
+ <a-form-item-rest>
326
+ <a-input
327
+ ref="searchInputRef"
328
+ v-model:value="searchQuery"
329
+ allow-clear
330
+ size="small"
331
+ placeholder="搜索组件或路径"
332
+ />
333
+ </a-form-item-rest>
334
+ </div>
335
+ <template v-if="displayedTreeData && displayedTreeData.length">
336
+ <a-directory-tree
337
+ v-model:expanded-keys="expandedKeysRef"
338
+ class="w-152 h-100 overflow-y-auto directory-tree-root"
339
+ :selected-keys="selectedKeys"
340
+ :tree-data="displayedTreeData"
341
+ :show-icon="true"
342
+ :show-line="true"
343
+ :virtual="true"
344
+ expand-action="click"
345
+ @expand="onExpand"
346
+ @select="onSelect"
347
+ >
348
+ <template #switcherIcon="{ switcherCls }">
349
+ <CaretDownOutlined :class="switcherCls" />
350
+ </template>
351
+ <!-- 自定义展开/折叠图标:根节点(local/module:<id>)用包图标,目录与叶子分别用你提供的图标 -->
352
+ <template #icon="{ expanded, dataRef }">
353
+ <span
354
+ class="inline-flex items-center text-inherit not-italic leading-[0] text-center
355
+ normal-case [vertical-align:-0.125em] [text-rendering:optimizeLegibility] svg:size-4"
356
+ >
357
+ <!-- 根:无 '/' 的 key 表示 -->
358
+ <PackagesIcones v-if="dataRef?.root && !dataRef?.module" :expanded="expanded" />
359
+ <ModuleIcones v-else-if="dataRef?.root && dataRef?.module" :expanded="expanded" />
360
+ <!-- 叶子:Vue 文件图标 -->
361
+ <VueIcones v-else-if="dataRef?.isLeaf" />
362
+ <!-- 特殊目录 -->
363
+ <ComponentsIcones v-else-if="['components', 'component'].includes(String(dataRef?.title).toLowerCase())" :expanded="expanded" />
364
+ <ViewIcones v-else-if="['views', 'view', 'pages', 'page'].includes(String(dataRef?.title).toLowerCase())" :expanded="expanded" />
365
+ <SrcIcones v-else-if="['src'].includes(String(dataRef?.title).toLowerCase())" :expanded="expanded" />
366
+ <!-- 其他目录 -->
367
+ <FolderIcones v-else :expanded="expanded" />
368
+ </span>
369
+ </template>
370
+ </a-directory-tree>
371
+ </template>
372
+ <template v-else>
373
+ <div class="flex items-center justify-center h-[220px]">
374
+ <a-empty :image="simpleImage" description="没有找到匹配的组件" />
375
+ </div>
376
+ </template>
377
+ </div>
378
+ </div>
379
+ </Teleport>
380
+ </div>
381
+ </template>
382
+
383
+ <style>
384
+ .directory-tree-root .ant-tree-treenode-selected::before {
385
+ background: #e6f4ff !important;
386
+ border-radius: 6px !important;
387
+ }
388
+
389
+ .directory-tree-root .ant-tree-treenode:hover:before {
390
+ border-radius: 6px !important;
391
+ }
392
+
393
+ .directory-tree-root .ant-tree-title{
394
+ color: #000 !important;
395
+ }
396
+
397
+ .directory-tree-root .anticon-file{
398
+ opacity: 0 !important;
399
+ }
400
+ </style>
@@ -0,0 +1,92 @@
1
+ <script setup lang="ts">
2
+ import type { Form } from '../interface';
3
+ import ResourceIconesSelect from '@/components/ResourceIcones/Select.vue';
4
+ import { RESOURCE_TYPE } from '../enum';
5
+ import ComponentSelect from './ComponentSelect.vue';
6
+
7
+ defineOptions({
8
+ name: 'DynamicRoutesForm',
9
+ });
10
+
11
+ defineProps<{
12
+ parent: Form
13
+ }>();
14
+
15
+ const form = defineModel<Form>({
16
+ default: {
17
+ meta: {
18
+ url: '',
19
+ component: '',
20
+ },
21
+ },
22
+ });
23
+
24
+ const show = computed(() => {
25
+ const type = form.value.type as RESOURCE_TYPE;
26
+
27
+ return {
28
+ path: [RESOURCE_TYPE.INDEX, RESOURCE_TYPE.MENU, RESOURCE_TYPE.MICRO_APP, RESOURCE_TYPE.NON_MENU, RESOURCE_TYPE.IFRAME, RESOURCE_TYPE.LINK].includes(type),
29
+ component: [RESOURCE_TYPE.MENU, RESOURCE_TYPE.NON_MENU].includes(type),
30
+ iframe: [RESOURCE_TYPE.IFRAME].includes(type),
31
+ link: [RESOURCE_TYPE.LINK].includes(type),
32
+ icon: [RESOURCE_TYPE.DYNAMIC_APP, RESOURCE_TYPE.MICRO_APP, RESOURCE_TYPE.INDEX, RESOURCE_TYPE.MENU, RESOURCE_TYPE.IFRAME, RESOURCE_TYPE.LINK].includes(type),
33
+ routeName: [RESOURCE_TYPE.MENU, RESOURCE_TYPE.NON_MENU, RESOURCE_TYPE.IFRAME, RESOURCE_TYPE.LINK].includes(type),
34
+ activeMenu: [RESOURCE_TYPE.MENU, RESOURCE_TYPE.NON_MENU, RESOURCE_TYPE.IFRAME, RESOURCE_TYPE.LINK].includes(type),
35
+ };
36
+ });
37
+
38
+ /** 是否展示微应用/动态应用的额外表单项 */
39
+ const isDynamicRoutesForm = computed(() => {
40
+ return true;
41
+ });
42
+ </script>
43
+
44
+ <template>
45
+ <!-- eslint-disable-next-line -->
46
+ <template v-if="isDynamicRoutesForm">
47
+ <a-col v-if="show.path" :span="12">
48
+ <a-form-item label="资源路径" :name="['meta', 'url']" :rules="[{ required: true, message: '请输入资源路径' }]">
49
+ <a-input v-model:value="form.meta!.url" placeholder="请输入资源路径" :maxlength="256" />
50
+ </a-form-item>
51
+ </a-col>
52
+
53
+ <a-col v-if="show.component" :span="24">
54
+ <a-form-item label="组件路径" :name="['meta', 'component']" :rules="[{ required: true, message: '请输入组件路径' }]">
55
+ <ComponentSelect
56
+ v-model="form.meta!.component"
57
+ v-model:scope="form.meta!.scope"
58
+ />
59
+ </a-form-item>
60
+ </a-col>
61
+
62
+ <a-col v-if="show.link" :span="24">
63
+ <a-form-item label="外链地址" :name="['meta', 'link']">
64
+ <a-input v-model:value="form.meta!.link" placeholder="请输入外链地址" :maxlength="256" />
65
+ </a-form-item>
66
+ </a-col>
67
+
68
+ <a-col v-if="show.iframe" :span="24">
69
+ <a-form-item label="内嵌地址" :name="['meta', 'iframe']">
70
+ <a-input v-model:value="form.meta!.iframe" placeholder="请输入内嵌地址" :maxlength="256" />
71
+ </a-form-item>
72
+ </a-col>
73
+
74
+ <a-col v-if="show.icon" :span="12">
75
+ <a-form-item label="资源图标" name="icon">
76
+ <ResourceIconesSelect v-model="form.icon" />
77
+ </a-form-item>
78
+ </a-col>
79
+
80
+ <a-col v-if="show.routeName" :span="12">
81
+ <a-form-item label="路由名称" :name="['meta', 'routeName']">
82
+ <a-input v-model:value="form.meta!.routeName" placeholder="请输入路由名称(name)" :maxlength="256" />
83
+ </a-form-item>
84
+ </a-col>
85
+
86
+ <a-col v-if="show.activeMenu" :span="12">
87
+ <a-form-item label="激活路径" :name="['meta', 'activeMenu']" tooltip="跳转到当前路由时,需要激活的菜单路径。 当不在导航菜单中显示时,需要指定激活路径">
88
+ <a-input v-model:value="form.meta!.activeMenu" placeholder="请输入激活路径" :maxlength="256" />
89
+ </a-form-item>
90
+ </a-col>
91
+ </template>
92
+ </template>