@pubinfo/module-rbac 2.0.0-rc.2 → 2.0.0-rc.4
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.
- package/dist/{ComponentSelect-Dyqb3Uh3.js → ComponentSelect-B1ZyenXP.js} +897 -945
- package/dist/ComponentSelect-DlVJI5an.js +2 -0
- package/dist/DynamicRoutesForm-Cu3WhRpA.js +4 -0
- package/dist/{DynamicRoutesForm-D3nGj7oA.js → DynamicRoutesForm-qjbrykW4.js} +95 -95
- package/dist/HCheckList-Cze_TkQp.js +2 -0
- package/dist/HoverCard-B79q5sly.js +43 -0
- package/dist/HoverCard-U5WTpvFy.js +2 -0
- package/dist/{ImportExport-Yt6dABIv.js → ImportExport-Clbc8xaw.js} +65 -65
- package/dist/ImportExport-CtEZTU87.js +4 -0
- package/dist/MetaForm-BWy4Lpr8.js +5 -0
- package/dist/MetaForm-DpH9an5A.js +300 -0
- package/dist/MetaForm.css +1 -0
- package/dist/OrgAndPosition-3lCm4Fyb.js +2 -0
- package/dist/ResourceEdit-0_cYB0iu.js +338 -0
- package/dist/ResourceEdit-CYPzEbqn.js +10 -0
- package/dist/{ResourceRelation-BihfkBCe.js → ResourceRelation-CZ8hGgOm.js} +6 -6
- package/dist/ResourceRelation-DMWa09ae.js +3 -0
- package/dist/{ResourceRelation-CBPrqf2V.js → ResourceRelation-DkKdZ3TD.js} +2 -2
- package/dist/ResourceRelation.css +1 -1
- package/dist/ResourceRelation2.css +1 -1
- package/dist/{ResourceSelector-CxZ1ae30.js → ResourceSelector-ConJ30Jd.js} +48 -48
- package/dist/ResourceSelector.css +1 -1
- package/dist/{RoleRelation-BlWDNAM1.js → RoleRelation-B1D1NM_L.js} +1 -1
- package/dist/RoleRelation-DySyilcs.js +2 -0
- package/dist/RoleSelector-DOt30OLy.js +279 -0
- package/dist/TenantEdit-D8-Pt7sf.js +6 -0
- package/dist/{TenantEdit-Bt31IV9W.js → TenantEdit-DNJzo8SS.js} +19 -19
- package/dist/{UserAuthorization-Dhp0ZamX.js → UserAuthorization-DPHUk69M.js} +6 -6
- package/dist/UserAuthorization-DuioGghR.js +4 -0
- package/dist/UserAuthorization.css +1 -1
- package/dist/UserEdit-6HYbgtOh.js +4 -0
- package/dist/{UserEdit-CqH6hxTZ.js → UserEdit-C6eNXSCu.js} +24 -24
- package/dist/animation_item-C3pkH-cB.js +2 -0
- package/dist/api/modules/assist/gonggaofuwu.d.ts +6 -6
- package/dist/api/modules/assist/qunzujiekou.d.ts +6 -6
- package/dist/api/modules/assist/quyujiekou.d.ts +5 -5
- package/dist/api/modules/configData/heibaimingdanfuwu.d.ts +5 -5
- package/dist/api/modules/configData/xitongpeizhifuwu.d.ts +14 -14
- package/dist/api/modules/configData/zidifuwu.d.ts +10 -10
- package/dist/api/modules/log/caozuorizhifuwu.d.ts +2 -2
- package/dist/api/modules/log/denglurizhifuwu.d.ts +2 -2
- package/dist/api/modules/rbac/gangweijiekou.d.ts +6 -6
- package/dist/api/modules/rbac/jiaosejiekou.d.ts +7 -7
- package/dist/api/modules/rbac/pubJiaosezukongzhiqi.d.ts +7 -7
- package/dist/api/modules/rbac/shujuquanxianzhubiaokongzhiqi.d.ts +9 -9
- package/dist/api/modules/rbac/yonghujiekou.d.ts +15 -15
- package/dist/api/modules/rbac/yonghushoucangbiaojiekou.d.ts +5 -5
- package/dist/api/modules/rbac/yonghuzuijinchangyongbiaojiekou.d.ts +4 -4
- package/dist/api/modules/rbac/ziyuandaorudaochuxiangguanjiekou.d.ts +6 -6
- package/dist/api/modules/rbac/ziyuanjiekou.d.ts +13 -13
- package/dist/api/modules/rbac/zuhuguanlijiekou.d.ts +5 -5
- package/dist/api/modules/rbac/zuzhijiaosebiaokongzhiqi.d.ts +4 -4
- package/dist/api/modules/rbac/zuzhijiekou.d.ts +9 -9
- package/dist/{blackWhiteList-B7tUj2Rx.js → blackWhiteList-DQALdBZf.js} +10 -10
- package/dist/blackWhiteList.css +1 -1
- package/dist/{breadcrumb_setting-CIm-6QHw.js → breadcrumb_setting-D3UjJYhA.js} +32 -32
- package/dist/breadcrumb_setting.css +1 -1
- package/dist/browserType-BGl2j5RW.js +2 -0
- package/dist/components/OrgUserSelector/OrgSelector.vue.d.ts +1 -1
- package/dist/components/OrgUserSelector/UserSelector.vue.d.ts +1 -1
- package/dist/components/ResourceSelector/index.vue.d.ts +1 -1
- package/dist/composables/useWebSocketManager.d.ts +8 -0
- package/dist/createAndEditDataPermission-CAaxueTy.js +8 -0
- package/dist/{createAndEditDataPermission-Bd3tlIEE.js → createAndEditDataPermission-DnAcKvaE.js} +55 -55
- package/dist/createAndEditDataPermission.css +1 -1
- package/dist/{data-permission-Db1Lu9KO.js → data-permission-CLnnLoPt.js} +8 -8
- package/dist/data-permission.css +1 -1
- package/dist/{dictionary-XMJprxvM.js → dictionary-BFM0Mx0P.js} +3 -3
- package/dist/{drawerBlackWhiteList-D-Sq4mul.js → drawerBlackWhiteList-BYACpO3D.js} +9 -9
- package/dist/drawerBlackWhiteList-C3xS7Kxx.js +3 -0
- package/dist/{drawerDictionary-Bw3w5PTm.js → drawerDictionary-BUBLrbTi.js} +13 -13
- package/dist/drawerDictionary-Bk0BgL7i.js +4 -0
- package/dist/{drawerDictionaryItem-4WIgL3No.js → drawerDictionaryItem-CfOPleN6.js} +14 -14
- package/dist/drawerDictionaryItem-Dy2T56AH.js +4 -0
- package/dist/{drawerGroup-932n7Ywc.js → drawerGroup-Bly3CWfM.js} +10 -10
- package/dist/drawerGroup-ZyzAWXOl.js +3 -0
- package/dist/{drawerOrganization-IwZZkHWM.js → drawerOrganization-BhO5-PP5.js} +27 -27
- package/dist/drawerOrganization-HSVB8JzO.js +3 -0
- package/dist/{drawerPosition-BiO92_At.js → drawerPosition-CM0NBfoR.js} +15 -15
- package/dist/drawerPosition-vsuG4JYe.js +3 -0
- package/dist/drawerRegion-BXZ751ge.js +3 -0
- package/dist/{drawerRegion-CNOK55im.js → drawerRegion-CGySAL6D.js} +17 -17
- package/dist/{drawerRole-IIsKhycU.js → drawerRole-BE0utb7R.js} +9 -9
- package/dist/drawerRole-BVeaz3Yb.js +5 -0
- package/dist/drawerRole-BdoMYLYW.js +215 -0
- package/dist/drawerRole-BeUNs7cF.js +6 -0
- package/dist/drawerRole-DNsK5a6O.js +3 -0
- package/dist/{drawerRole-PnDochPg.js → drawerRole-DS7fbx1h.js} +10 -10
- package/dist/{group-BzuuCGyR.js → group-B1gGoTD5.js} +10 -10
- package/dist/group.css +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2065 -1875
- package/dist/{itemlist-KOYuEUk4.js → itemlist-uCHnA_We.js} +3 -3
- package/dist/{layout_setting-DQgWzV7M.js → layout_setting-DMvxwL31.js} +20 -20
- package/dist/layout_setting.css +1 -1
- package/dist/{loginHistoryDetail-DgHx6n66.js → loginHistoryDetail-BAYuSqvw.js} +2 -2
- package/dist/loginHistoryDetail-DiuNa6Sv.js +4 -0
- package/dist/{login_history-Co6JLGsd.js → login_history-BexfCN-1.js} +7 -7
- package/dist/login_history.css +1 -1
- package/dist/{menu_setting-B0QIQ1um.js → menu_setting-BXR3EAXD.js} +43 -43
- package/dist/menu_setting.css +1 -1
- package/dist/not-data-OpiacaSk.js +2 -0
- package/dist/{operateHistoryDetail-BrdNmYD0.js → operateHistoryDetail-DiuqMTkN.js} +2 -2
- package/dist/operateHistoryDetail-r30ZBNqw.js +4 -0
- package/dist/{operate_history-CVeIorOr.js → operate_history-hXxS3atI.js} +7 -7
- package/dist/operate_history.css +1 -1
- package/dist/{organization-CXMk4mRo.js → organization-cvYm9P9w.js} +2647 -2647
- package/dist/organization.css +1 -1
- package/dist/{other_setting-DK9MHysY.js → other_setting-DjVQevBW.js} +69 -69
- package/dist/other_setting.css +1 -1
- package/dist/{page_animation_setting-tSYfjx-m.js → page_animation_setting-DgHHmFEc.js} +52 -52
- package/dist/page_animation_setting.css +1 -1
- package/dist/{page_w_setting-BDI5KsA-.js → page_w_setting-B_im6vBo.js} +20 -20
- package/dist/page_w_setting.css +1 -1
- package/dist/{position-BjUZQQUz.js → position-BkpbHXYP.js} +2 -2
- package/dist/{region-BsX0gK_y.js → region-DVkbjI9t.js} +6 -6
- package/dist/{resource-DKhlH74I.js → resource-CrhX7VRK.js} +13 -11
- package/dist/{role-ffXddsAo.js → role-PjmrOdFd.js} +6 -6
- package/dist/{role_group-BBH28A40.js → role_group-Dlx-6BZF.js} +2 -2
- package/dist/routeSystem-Dg0b6mAl.js +2 -0
- package/dist/{safe_setting-Dis73Gsw.js → safe_setting-DpWUCv2p.js} +1 -1
- package/dist/setItem-9ZBl0BlF.js +5 -0
- package/dist/setItem-BenNySNl.js +77 -0
- package/dist/setItem.css +1 -1
- package/dist/stores/view.d.ts +56 -0
- package/dist/{tabbar_setting-DGwk_Oec.js → tabbar_setting-9UKDc1Ev.js} +38 -38
- package/dist/tabbar_setting.css +1 -1
- package/dist/{tenant-BhA6R8aJ.js → tenant-BGtOP_wo.js} +5 -5
- package/dist/{theme_setting-Ca1YGTdZ.js → theme_setting-BBLaZ4NS.js} +8 -8
- package/dist/theme_setting.css +1 -1
- package/dist/{toolbar_setting-Cmrpyxgs.js → toolbar_setting-OemNp6pO.js} +37 -37
- package/dist/toolbar_setting.css +1 -1
- package/dist/{useAppAndResource-BgnrL15l.js → useAppAndResource-CeMCjg2v.js} +1 -1
- package/dist/{user-Bnb1cvVD.js → user-JCiGXodF.js} +11 -11
- package/dist/user.css +1 -1
- package/dist/utils/routeSystem.d.ts +55 -0
- package/dist/views/blackWhiteList/index.vue.d.ts +2 -2
- package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +5 -5
- package/dist/views/data-permission/index.vue.d.ts +7 -7
- package/dist/views/dictionary/index.vue.d.ts +2 -2
- package/dist/views/dictionary/itemlist.vue.d.ts +2 -2
- package/dist/views/group/index.vue.d.ts +2 -2
- package/dist/views/log_center/login_history.vue.d.ts +2 -2
- package/dist/views/log_center/operate_history.vue.d.ts +2 -2
- package/dist/views/position/index.vue.d.ts +2 -2
- package/dist/views/region/index.vue.d.ts +2 -2
- package/dist/views/resource/components/HoverCard.vue.d.ts +21 -0
- package/dist/views/resource/index.vue.d.ts +2 -2
- package/dist/views/resource/model.d.ts +3 -1
- package/dist/views/role/components/ResourceRelation.vue.d.ts +2 -2
- package/dist/views/role/components/drawerRole.vue.d.ts +2 -2
- package/dist/views/role/index.vue.d.ts +6 -6
- package/dist/views/role_group/index.vue.d.ts +2 -2
- package/dist/views/tenant/components/TenantEdit.vue.d.ts +2 -2
- package/dist/views/tenant/index.vue.d.ts +4 -4
- package/dist/views/user/index.vue.d.ts +2 -2
- package/dist/{watermark_setting-BnBt5gdM.js → watermark_setting-C1VFRfbW.js} +111 -111
- package/dist/watermark_setting.css +1 -1
- package/package.json +7 -7
- package/src/composables/useWebSocketManager.ts +104 -0
- package/src/index.ts +22 -0
- package/src/stores/view.ts +292 -0
- package/src/utils/routeSystem.ts +53 -0
- package/src/views/region/index.vue +1 -1
- package/src/views/resource/components/ComponentSelect.vue +12 -119
- package/src/views/resource/components/HoverCard.vue +62 -0
- package/src/views/resource/components/MetaForm.vue +129 -67
- package/src/views/resource/components/ResourceEdit.vue +33 -4
- package/src/views/resource/hooks/useMetaForm.ts +23 -0
- package/src/views/resource/model.ts +5 -1
- package/src/views/watermark_setting/index.vue +2 -2
- package/dist/ComponentSelect-Din5Vses.js +0 -2
- package/dist/DynamicRoutesForm-CkmCaHum.js +0 -4
- package/dist/HCheckList-Dd2Tx0jW.js +0 -2
- package/dist/ImportExport-BbZkZEW_.js +0 -4
- package/dist/MetaForm-CI-T2qEE.js +0 -284
- package/dist/MetaForm-CrsQmdOg.js +0 -4
- package/dist/OrgAndPosition-CDCim7yM.js +0 -2
- package/dist/ResourceEdit-BFXA953U.js +0 -309
- package/dist/ResourceEdit-V6gt22gW.js +0 -8
- package/dist/ResourceRelation-BnLQZey7.js +0 -3
- package/dist/RoleRelation-CAMzPMFz.js +0 -2
- package/dist/RoleSelector-DTnDRRTQ.js +0 -279
- package/dist/TenantEdit-DYHJehf0.js +0 -6
- package/dist/UserAuthorization-BdHxAQlK.js +0 -4
- package/dist/UserEdit-CqrRx717.js +0 -4
- package/dist/animation_item-COb6VI4T.js +0 -2
- package/dist/browserType-D2cPQa0k.js +0 -2
- package/dist/createAndEditDataPermission-6pvYsJo9.js +0 -8
- package/dist/drawerBlackWhiteList-DK4g_CpC.js +0 -3
- package/dist/drawerDictionary-DHIcxPrY.js +0 -4
- package/dist/drawerDictionaryItem-dg1sIDYE.js +0 -4
- package/dist/drawerGroup-CrF2c8UJ.js +0 -3
- package/dist/drawerOrganization-b39q3V33.js +0 -3
- package/dist/drawerPosition-BjoDy0cQ.js +0 -3
- package/dist/drawerRegion-omVT_dpq.js +0 -3
- package/dist/drawerRole-BaQBb2-J.js +0 -215
- package/dist/drawerRole-BqMh5l11.js +0 -5
- package/dist/drawerRole-D7VJRLmp.js +0 -6
- package/dist/drawerRole-dJ3m0_K2.js +0 -3
- package/dist/loginHistoryDetail-BNGtarOv.js +0 -4
- package/dist/not-data-uXybSS43.js +0 -2
- package/dist/operateHistoryDetail-DsM4L8Nz.js +0 -4
- package/dist/setItem-CjNn98dC.js +0 -77
- package/dist/setItem-H6NRNSt7.js +0 -5
- /package/dist/{HCheckList-3zLNVNr0.js → HCheckList-CmS0Zgjk.js} +0 -0
- /package/dist/{OrgAndPosition-BK5MTlOO.js → OrgAndPosition-DYxNkasL.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-Bvl99pNT.js → _plugin-vue_export-helper-DziIhCOI.js} +0 -0
- /package/dist/{add-child-sIXCU5sL.js → add-child-BqjLtFNF.js} +0 -0
- /package/dist/{animation_item-D78koyTo.js → animation_item-Cg-CB3zX.js} +0 -0
- /package/dist/{authority-DQ4-SayE.js → authority-BCFCPQkb.js} +0 -0
- /package/dist/{authorize-CR54jxEa.js → authorize-BykMzt1r.js} +0 -0
- /package/dist/{blacklist-disable-ypFSVSX1.js → blacklist-disable-COoLZMSA.js} +0 -0
- /package/dist/{blacklist-enable-DlkD_15-.js → blacklist-enable-LZep1trj.js} +0 -0
- /package/dist/{browser-chrome-DNH4U6iO.js → browser-chrome-D0rex7Ir.js} +0 -0
- /package/dist/{browser-edge-4sSjlzO1.js → browser-edge-KCb_AIL5.js} +0 -0
- /package/dist/{browser-ie-yTwVV0GC.js → browser-ie-C1znjJM-.js} +0 -0
- /package/dist/{browser-other-Jax-vzDs.js → browser-other-C4er8PkV.js} +0 -0
- /package/dist/{browser-safari-B7PIezpj.js → browser-safari-BPRC1TV-.js} +0 -0
- /package/dist/{browserType-DZrDbVVY.js → browserType-E4RCiZfN.js} +0 -0
- /package/dist/{configData-CONUFxaH.js → configData-DQOHeFW2.js} +0 -0
- /package/dist/{dayjs.min-KffHrkDe.js → dayjs.min-DcxwBe2I.js} +0 -0
- /package/dist/{edit-CCL7qbDV.js → edit-C9HH0bNg.js} +0 -0
- /package/dist/{enum-DUjQrWbG.js → enum-B1DCzyaW.js} +0 -0
- /package/dist/{enum-CUMv4gQ2.js → enum-BWzxzuim.js} +0 -0
- /package/dist/{enum-B-lkiBy0.js → enum-CYW8g64p.js} +0 -0
- /package/dist/{enum-BMY6bmPA.js → enum-D0U38jb6.js} +0 -0
- /package/dist/{enum-Bg70i-vM.js → enum-VH4_jOj5.js} +0 -0
- /package/dist/{icard-BUuV9yW4.js → icard-FW0Ro50-.js} +0 -0
- /package/dist/{icon_animation-rPC0qi0K.js → icon_animation-DuNUKCIP.js} +0 -0
- /package/dist/{icon_breadcrumb-BOiEdwRY.js → icon_breadcrumb-DrPNYW5B.js} +0 -0
- /package/dist/{icon_copyright-zk1pF8Jj.js → icon_copyright-Di3Yr0PZ.js} +0 -0
- /package/dist/{icon_jt-BMoQoZvf.js → icon_jt-C4rQLl9Y.js} +0 -0
- /package/dist/{icon_layout-KBHA8xU_.js → icon_layout-5L9E7uN2.js} +0 -0
- /package/dist/{icon_mainpage-BTdCCyi2.js → icon_mainpage-DMKqRgmE.js} +0 -0
- /package/dist/{icon_menu-5k8XiWt5.js → icon_menu-Cp7-Zght.js} +0 -0
- /package/dist/{icon_page_size-DUMZ6xhJ.js → icon_page_size-Dc0zqT2W.js} +0 -0
- /package/dist/{icon_position_type-Cnkn2IzO.js → icon_position_type-DH2qxQQE.js} +0 -0
- /package/dist/{icon_safe_manage-B0PtL90p.js → icon_safe_manage-DXYWl1y-.js} +0 -0
- /package/dist/{icon_screen_scale-CwVhfflc.js → icon_screen_scale-DwC6qqx2.js} +0 -0
- /package/dist/{icon_system_manage-vM71UmjM.js → icon_system_manage-BYTldLly.js} +0 -0
- /package/dist/{icon_tabbar-CuMnIey0.js → icon_tabbar-CxffARwI.js} +0 -0
- /package/dist/{icon_toolbar-BoCbAU3P.js → icon_toolbar-CsxnTrNJ.js} +0 -0
- /package/dist/{icon_topbar-DGIDBcE6.js → icon_topbar-DS-oEZFA.js} +0 -0
- /package/dist/{icon_watermark-BBU-lOdN.js → icon_watermark-DDXsHlfQ.js} +0 -0
- /package/dist/{log-center-Z3WDfhg1.js → log-center-BFjZ4IE1.js} +0 -0
- /package/dist/{log-BgIwPjNu.js → log-hgUXTuhy.js} +0 -0
- /package/dist/{not-data-DejN9beo.js → not-data-Bw8FlpyB.js} +0 -0
- /package/dist/{org-main-C2g7AMMY.js → org-main-D5Isevbc.js} +0 -0
- /package/dist/{org-unmain-CjGtvuIa.js → org-unmain-BHBqSuCz.js} +0 -0
- /package/dist/{remove-BroXCqy9.js → remove-DKMMsJNq.js} +0 -0
- /package/dist/{resource-app-DV2RZiRk.js → resource-app-DZwdNG6F.js} +0 -0
- /package/dist/{resource-btn-Dw9-L0P5.js → resource-btn-DPX0oM2L.js} +0 -0
- /package/dist/{resource-dynamic-Cmk2ihZb.js → resource-dynamic-Cb_vjMjt.js} +0 -0
- /package/dist/{resource-index-D9J-wVCc.js → resource-index-ah4NpEob.js} +0 -0
- /package/dist/{resource-menu-XnlgciPe.js → resource-menu-CzWI03EU.js} +0 -0
- /package/dist/{resource-micro-DzYCcl5c.js → resource-micro-Ca0NS7j_.js} +0 -0
- /package/dist/{resource-nonmenu-8bXZBBWf.js → resource-nonmenu-Deitjo_5.js} +0 -0
- /package/dist/{setting-manage-BPwzU94V.js → setting-manage-B3vaM0w1.js} +0 -0
- /package/dist/{stores-Di6SQ3pp.js → stores-D6JJmBEU.js} +0 -0
- /package/dist/{theme-check-mark-Dz4lGIXE.js → theme-check-mark-BK7E8lqd.js} +0 -0
- /package/dist/{theme-title-CPXdAbpI.js → theme-title-aqbHq846.js} +0 -0
- /package/dist/{view-D4SR4EYn.js → view-C6Eo1zRL.js} +0 -0
- /package/dist/{zddata-Cdy8vScr.js → zddata-fjEtQ3lZ.js} +0 -0
- /package/dist/{zy_checked-xjGWlIXf.js → zy_checked-DTsDCC94.js} +0 -0
- /package/dist/{zy_default-kwFuicHB.js → zy_default-BaIuMKw-.js} +0 -0
|
@@ -4,7 +4,6 @@ import { CaretDownOutlined } from '@ant-design/icons-vue';
|
|
|
4
4
|
import * as popover from '@destyler/popover';
|
|
5
5
|
import { normalizeProps, useMachine } from '@destyler/vue';
|
|
6
6
|
import { Empty } from 'ant-design-vue';
|
|
7
|
-
import { getAllRouteModules, readProjectModules } from 'pubinfo';
|
|
8
7
|
import ComponentsIcones from '@/components/DirectoryIcones/ComponentsIcones.vue';
|
|
9
8
|
import FolderIcones from '@/components/DirectoryIcones/FolderIcones.vue';
|
|
10
9
|
import ModuleIcones from '@/components/DirectoryIcones/ModuleIcones.vue';
|
|
@@ -12,6 +11,7 @@ import PackagesIcones from '@/components/DirectoryIcones/PackagesIcones.vue';
|
|
|
12
11
|
import SrcIcones from '@/components/DirectoryIcones/SrcIcones.vue';
|
|
13
12
|
import ViewIcones from '@/components/DirectoryIcones/ViewIcones.vue';
|
|
14
13
|
import VueIcones from '@/components/DirectoryIcones/VueIcones.vue';
|
|
14
|
+
import { useViewStore } from '@/stores/view';
|
|
15
15
|
|
|
16
16
|
defineOptions({
|
|
17
17
|
name: 'ComponentSelect',
|
|
@@ -19,6 +19,9 @@ defineOptions({
|
|
|
19
19
|
|
|
20
20
|
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
|
|
21
21
|
|
|
22
|
+
// 使用 Pinia store
|
|
23
|
+
const viewStore = useViewStore();
|
|
24
|
+
|
|
22
25
|
const moduleValue = defineModel<string>({
|
|
23
26
|
default: '',
|
|
24
27
|
});
|
|
@@ -125,131 +128,21 @@ watch(visibleRef, (open) => {
|
|
|
125
128
|
}
|
|
126
129
|
});
|
|
127
130
|
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
);
|
|
131
|
+
// 弹层再次打开时,若之前被手动折叠,重新展开到选中层级
|
|
132
|
+
watch(visibleRef, (open) => {
|
|
133
|
+
if (open) {
|
|
134
|
+
expandToSelected();
|
|
214
135
|
}
|
|
215
|
-
|
|
216
|
-
return treeNodes as unknown as TreeProps['treeData'];
|
|
217
136
|
});
|
|
218
137
|
|
|
219
|
-
//
|
|
138
|
+
// 从 store 获取树数据并支持搜索过滤
|
|
220
139
|
const displayedTreeData = computed<TreeProps['treeData']>(() => {
|
|
221
|
-
const q = searchQuery.value.trim()
|
|
222
|
-
const source = componentTreeOptions.value as any[];
|
|
140
|
+
const q = searchQuery.value.trim();
|
|
223
141
|
if (!q) {
|
|
224
|
-
return
|
|
142
|
+
return viewStore.getRouteTreeData() as unknown as TreeProps['treeData'];
|
|
225
143
|
}
|
|
226
144
|
|
|
227
|
-
|
|
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'];
|
|
145
|
+
return viewStore.filterRouteTree(q) as unknown as TreeProps['treeData'];
|
|
253
146
|
});
|
|
254
147
|
|
|
255
148
|
// 收集非叶子节点 key,用于搜索时全部展开
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { DoubleRightOutlined } from '@ant-design/icons-vue';
|
|
3
|
+
import { useToggle } from '@vueuse/core';
|
|
4
|
+
import { theme } from 'ant-design-vue';
|
|
5
|
+
|
|
6
|
+
defineOptions({
|
|
7
|
+
name: 'HoverCard',
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
defineProps<{
|
|
11
|
+
more?: boolean
|
|
12
|
+
}>();
|
|
13
|
+
|
|
14
|
+
const { token } = theme.useToken();
|
|
15
|
+
const [hovered, toggle] = useToggle();
|
|
16
|
+
const [expanded, expand] = useToggle();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<div
|
|
21
|
+
class="relative rounded-t-lg h-[72px] px-5 border border-solid"
|
|
22
|
+
:class="[expanded && more ? 'rounded-b-none' : 'rounded-b-lg']"
|
|
23
|
+
:style="{
|
|
24
|
+
borderColor: hovered ? token.colorPrimary : token.colorBorder,
|
|
25
|
+
boxShadow: hovered ? token.boxShadow : 'none',
|
|
26
|
+
}"
|
|
27
|
+
@mouseenter="toggle(true)"
|
|
28
|
+
@mouseleave="toggle(false)"
|
|
29
|
+
>
|
|
30
|
+
<slot />
|
|
31
|
+
|
|
32
|
+
<template v-if="more">
|
|
33
|
+
<div v-if="!expanded" class="absolute bottom-1 left-0 w-full text-center text-xs space-x-1 cursor-pointer" @click="expand(true)">
|
|
34
|
+
<span>更多</span>
|
|
35
|
+
<DoubleRightOutlined
|
|
36
|
+
:rotate="90"
|
|
37
|
+
class="animate-bounce"
|
|
38
|
+
/>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div
|
|
42
|
+
v-if="expanded"
|
|
43
|
+
class="absolute top-[70px] -left-[1px] z-50 w-[calc(100%+2px)] pt-5 px-5 border border-solid rounded-b-lg"
|
|
44
|
+
:style="{
|
|
45
|
+
borderColor: hovered ? token.colorPrimary : token.colorBorder,
|
|
46
|
+
backgroundColor: token.colorBgElevated,
|
|
47
|
+
boxShadow: token.boxShadow,
|
|
48
|
+
}"
|
|
49
|
+
>
|
|
50
|
+
<slot name="more" />
|
|
51
|
+
|
|
52
|
+
<div class="mt-5 pb-1 w-full text-center text-xs space-x-1 cursor-pointer" @click="expand(false)">
|
|
53
|
+
<span>收起</span>
|
|
54
|
+
<DoubleRightOutlined
|
|
55
|
+
:rotate="270"
|
|
56
|
+
class="animate-bounce"
|
|
57
|
+
/>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</template>
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { Form } from '../interface';
|
|
3
|
-
import { dataPermissionOptions } from '@/views/data-permission/enum';
|
|
4
3
|
import { useMetaForm } from '../hooks/useMetaForm';
|
|
4
|
+
import HoverCard from './HoverCard.vue';
|
|
5
5
|
|
|
6
6
|
defineOptions({
|
|
7
7
|
name: 'MetaForm',
|
|
@@ -30,90 +30,152 @@ const { show } = useMetaForm(form);
|
|
|
30
30
|
- 其他显示相关配置:适用于所有可视化的资源类型
|
|
31
31
|
-->
|
|
32
32
|
|
|
33
|
-
<a-row :gutter="8">
|
|
34
|
-
<a-col :span="
|
|
35
|
-
<a-form-item name="enable">
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
<a-row :gutter="[8, 8]">
|
|
34
|
+
<a-col :span="12">
|
|
35
|
+
<a-form-item name="enable" :label-col="{ span: 0 }">
|
|
36
|
+
<HoverCard class="flex items-center justify-between">
|
|
37
|
+
<div class="text-sm font-medium">
|
|
38
|
+
启用
|
|
39
|
+
</div>
|
|
40
|
+
<a-switch v-model:checked="form.enable" />
|
|
41
|
+
</HoverCard>
|
|
39
42
|
</a-form-item>
|
|
40
43
|
</a-col>
|
|
44
|
+
|
|
41
45
|
<!-- 开发模式:仅在应用或动态应用中显示 -->
|
|
42
|
-
<a-col v-if="show.devMode" :span="
|
|
43
|
-
<
|
|
44
|
-
<a-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
<a-col v-if="show.devMode" :span="12">
|
|
47
|
+
<HoverCard :more="form.meta?.isDev" class="flex flex-wrap items-center">
|
|
48
|
+
<a-form-item
|
|
49
|
+
name="isDev"
|
|
50
|
+
:label-col="{ span: 0 }"
|
|
51
|
+
class="form-item-bottom-0 w-full"
|
|
52
|
+
>
|
|
53
|
+
<div class="flex items-center justify-between">
|
|
54
|
+
<div class="text-sm font-medium">
|
|
55
|
+
开发模式
|
|
56
|
+
</div>
|
|
57
|
+
<a-switch v-model:checked="form.meta!.isDev" />
|
|
58
|
+
</div>
|
|
59
|
+
</a-form-item>
|
|
60
|
+
|
|
61
|
+
<template #more>
|
|
62
|
+
<!-- 开发模式文本:仅在开启开发模式时显示 -->
|
|
63
|
+
<a-form-item
|
|
64
|
+
v-if="form.meta?.isDev"
|
|
65
|
+
label="提示文本"
|
|
66
|
+
name="devText"
|
|
67
|
+
tooltip="此文本将在用户点击开发模式应用时显示在提示框中"
|
|
68
|
+
:label-col="{ style: { fontSize: '12px' } }"
|
|
69
|
+
class="w-full"
|
|
70
|
+
>
|
|
71
|
+
<a-input
|
|
72
|
+
v-model:value="form.meta!.devText"
|
|
73
|
+
placeholder="请输入开发模式下的提示文本"
|
|
74
|
+
:maxlength="100"
|
|
75
|
+
show-count
|
|
76
|
+
size="small"
|
|
77
|
+
/>
|
|
78
|
+
</a-form-item>
|
|
79
|
+
</template>
|
|
80
|
+
</HoverCard>
|
|
62
81
|
</a-col>
|
|
82
|
+
|
|
63
83
|
<!-- 缓存标签页:仅在菜单中显示 -->
|
|
64
|
-
<a-col v-if="show.cacheAndPin" :span="
|
|
65
|
-
<
|
|
66
|
-
<a-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
84
|
+
<a-col v-if="show.cacheAndPin" :span="12">
|
|
85
|
+
<HoverCard :more="form.meta?.cache" class="flex flex-wrap items-center">
|
|
86
|
+
<a-form-item name="cache" :label-col="{ span: 0 }" class="form-item-bottom-0 w-full">
|
|
87
|
+
<div class="flex items-center justify-between">
|
|
88
|
+
<div class="text-sm font-medium">
|
|
89
|
+
缓存标签页
|
|
90
|
+
</div>
|
|
91
|
+
<a-switch v-model:checked="form.meta!.cache" />
|
|
92
|
+
</div>
|
|
93
|
+
</a-form-item>
|
|
94
|
+
|
|
95
|
+
<template #more>
|
|
96
|
+
<a-form-item
|
|
97
|
+
label="指定页缓存"
|
|
98
|
+
name="cacheName"
|
|
99
|
+
tooltip="设置页面name值,前往指定页面时,当前页被缓存"
|
|
100
|
+
:label-col="{ style: { fontSize: '12px', width: '120px' } }"
|
|
101
|
+
class="w-full"
|
|
102
|
+
>
|
|
103
|
+
<a-input
|
|
104
|
+
v-model:value="form.meta!.cacheName"
|
|
105
|
+
placeholder="路由名称(多个用,隔开)"
|
|
106
|
+
size="small"
|
|
107
|
+
/>
|
|
108
|
+
</a-form-item>
|
|
109
|
+
|
|
110
|
+
<a-form-item
|
|
111
|
+
label="指定页不缓存"
|
|
112
|
+
name="cacheName"
|
|
113
|
+
tooltip="设置页面name值,前往指定页面时,当前页不缓存"
|
|
114
|
+
:label-col="{ style: { fontSize: '12px', width: '120px' } }"
|
|
115
|
+
class="w-full"
|
|
116
|
+
>
|
|
117
|
+
<a-input
|
|
118
|
+
v-model:value="form.meta!.noCache"
|
|
119
|
+
placeholder="路由名称(多个用,隔开)"
|
|
120
|
+
size="small"
|
|
121
|
+
/>
|
|
122
|
+
</a-form-item>
|
|
123
|
+
</template>
|
|
124
|
+
</HoverCard>
|
|
70
125
|
</a-col>
|
|
126
|
+
|
|
71
127
|
<!-- 固定标签页:仅在菜单中显示 -->
|
|
72
|
-
<a-col v-if="show.cacheAndPin" :span="
|
|
73
|
-
<a-form-item name="pin">
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
128
|
+
<a-col v-if="show.cacheAndPin" :span="12">
|
|
129
|
+
<a-form-item name="pin" :label-col="{ span: 0 }">
|
|
130
|
+
<HoverCard class="flex items-center justify-between">
|
|
131
|
+
<div class="text-sm font-medium">
|
|
132
|
+
固定在标签页
|
|
133
|
+
</div>
|
|
134
|
+
<a-switch v-model:checked="form.meta!.pin" />
|
|
135
|
+
</HoverCard>
|
|
77
136
|
</a-form-item>
|
|
78
137
|
</a-col>
|
|
138
|
+
|
|
79
139
|
<!-- 侧边栏显示:不适用于应用和动态应用 -->
|
|
80
|
-
<a-col v-if="show.sidebar" :span="
|
|
81
|
-
<a-form-item name="sidebar">
|
|
82
|
-
<
|
|
83
|
-
|
|
84
|
-
|
|
140
|
+
<a-col v-if="show.sidebar" :span="12">
|
|
141
|
+
<a-form-item name="sidebar" :label-col="{ span: 0 }">
|
|
142
|
+
<HoverCard class="flex items-center justify-between">
|
|
143
|
+
<div class="text-sm font-medium">
|
|
144
|
+
在侧边栏显示
|
|
145
|
+
</div>
|
|
146
|
+
<a-switch v-model:checked="form.meta!.sidebar" />
|
|
147
|
+
</HoverCard>
|
|
85
148
|
</a-form-item>
|
|
86
149
|
</a-col>
|
|
150
|
+
|
|
87
151
|
<!-- 标签栏显示:不适用于应用、动态应用和目录 -->
|
|
88
|
-
<a-col v-if="show.tabbar" :span="
|
|
89
|
-
<a-form-item name="tabbar">
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<a-form-item name="breadcrumb">
|
|
97
|
-
<a-checkbox v-model:checked="form.meta!.breadcrumb">
|
|
98
|
-
在面包屑显示
|
|
99
|
-
</a-checkbox>
|
|
152
|
+
<a-col v-if="show.tabbar" :span="12">
|
|
153
|
+
<a-form-item name="tabbar" :label-col="{ span: 0 }">
|
|
154
|
+
<HoverCard class="flex items-center justify-between">
|
|
155
|
+
<div class="text-sm font-medium">
|
|
156
|
+
在标签栏显示
|
|
157
|
+
</div>
|
|
158
|
+
<a-switch v-model:checked="form.meta!.tabbar" />
|
|
159
|
+
</HoverCard>
|
|
100
160
|
</a-form-item>
|
|
101
161
|
</a-col>
|
|
102
|
-
</a-row>
|
|
103
162
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
<a-col :span="12" :offset="3">
|
|
113
|
-
<a-form-item v-if="form.enableDataPermission" label="数据权限规则" name="dataPermissionType">
|
|
114
|
-
<a-select v-model:value="form.dataPermissionType" :options="dataPermissionOptions" />
|
|
163
|
+
<a-col v-if="show.breadcrumb" :span="12">
|
|
164
|
+
<a-form-item name="breadcrumb" :label-col="{ span: 0 }">
|
|
165
|
+
<HoverCard class="flex items-center justify-between">
|
|
166
|
+
<div class="text-sm font-medium">
|
|
167
|
+
在面包屑显示
|
|
168
|
+
</div>
|
|
169
|
+
<a-switch v-model:checked="form.meta!.breadcrumb" />
|
|
170
|
+
</HoverCard>
|
|
115
171
|
</a-form-item>
|
|
116
172
|
</a-col>
|
|
117
173
|
</a-row>
|
|
118
174
|
</div>
|
|
119
175
|
</template>
|
|
176
|
+
|
|
177
|
+
<style lang="css" scoped>
|
|
178
|
+
.form-item-bottom-0, .ant-form-item {
|
|
179
|
+
margin-bottom: 0;
|
|
180
|
+
}
|
|
181
|
+
</style>
|
|
@@ -6,7 +6,7 @@ import { useToggle } from '@vueuse/core';
|
|
|
6
6
|
import { message } from 'ant-design-vue';
|
|
7
7
|
import { cloneDeep } from 'lodash-es';
|
|
8
8
|
import { getRbacResourceInfo, postRbacResourceAddResource, postRbacResourceResourceUpdate } from '@/api/modules/rbac';
|
|
9
|
-
import { DATA_PERMISSION_TYPE } from '@/views/data-permission/enum';
|
|
9
|
+
import { DATA_PERMISSION_TYPE, dataPermissionOptions } from '@/views/data-permission/enum';
|
|
10
10
|
import { ACTION, RESOURCE_COLOR, RESOURCE_TYPE, resourceOptions } from '../enum';
|
|
11
11
|
import { useMetaForm } from '../hooks/useMetaForm';
|
|
12
12
|
import { defaultMeta } from '../model';
|
|
@@ -87,7 +87,7 @@ const resourceComputedOptions = computed(() => {
|
|
|
87
87
|
return [];
|
|
88
88
|
|
|
89
89
|
default:
|
|
90
|
-
return resourceOptions.filter(node => [RESOURCE_TYPE.APP, RESOURCE_TYPE.MICRO_APP, RESOURCE_TYPE.DYNAMIC_APP].includes(node.value));
|
|
90
|
+
return resourceOptions.filter(node => [RESOURCE_TYPE.APP, /* RESOURCE_TYPE.MICRO_APP, */ RESOURCE_TYPE.DYNAMIC_APP].includes(node.value));
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
|
|
@@ -129,10 +129,10 @@ async function onOpen(key: ACTION, record?: Form) {
|
|
|
129
129
|
const [loading, setLoading] = useToggle(false);
|
|
130
130
|
function onSubmit() {
|
|
131
131
|
formRef.value?.validate().then(() => {
|
|
132
|
-
const params = {
|
|
132
|
+
const params = cloneDeep({
|
|
133
133
|
...form.value,
|
|
134
134
|
icon: form.value.icon || undefined,
|
|
135
|
-
};
|
|
135
|
+
});
|
|
136
136
|
|
|
137
137
|
// app, 目录等不参与数据权限筛选
|
|
138
138
|
if (!show.value.dataPermission) {
|
|
@@ -144,6 +144,22 @@ function onSubmit() {
|
|
|
144
144
|
console.warn('开发模式应用的子路由将不会在生产环境中注册到vue-router,请确保这是预期行为。');
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
// 处理 cache 相关逻辑
|
|
148
|
+
if (params.meta?.cache) {
|
|
149
|
+
if (params.meta.cacheName) {
|
|
150
|
+
params.meta.cache = params.meta.cacheName.split(',');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (params.meta?.noCache) {
|
|
155
|
+
params.meta.noCache = params.meta.noCache.split(',');
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (!params.meta?.cache) {
|
|
159
|
+
delete params?.meta?.noCache;
|
|
160
|
+
}
|
|
161
|
+
delete params?.meta?.cacheName;
|
|
162
|
+
|
|
147
163
|
// 可以在提交前检查目录下是否有有效的子菜单,如果没有则给出提示
|
|
148
164
|
// 这部分逻辑可能需要额外的API调用来检查子资源
|
|
149
165
|
|
|
@@ -262,6 +278,19 @@ defineExpose({
|
|
|
262
278
|
</a-col>
|
|
263
279
|
</a-row>
|
|
264
280
|
|
|
281
|
+
<a-row v-if="show.dataPermission" :gutter="8">
|
|
282
|
+
<a-col :span="8">
|
|
283
|
+
<a-form-item label="启用数据权限" name="enableDataPermission">
|
|
284
|
+
<a-switch v-model:checked="form.enableDataPermission" />
|
|
285
|
+
</a-form-item>
|
|
286
|
+
</a-col>
|
|
287
|
+
<a-col :span="16">
|
|
288
|
+
<a-form-item v-if="form.enableDataPermission" label="数据权限规则" name="dataPermissionType">
|
|
289
|
+
<a-select v-model:value="form.dataPermissionType" :options="dataPermissionOptions" />
|
|
290
|
+
</a-form-item>
|
|
291
|
+
</a-col>
|
|
292
|
+
</a-row>
|
|
293
|
+
|
|
265
294
|
<MetaForm v-model="form" />
|
|
266
295
|
</a-form>
|
|
267
296
|
</a-spin>
|
|
@@ -64,6 +64,29 @@ export function useMetaForm(form: Ref<Form>) {
|
|
|
64
64
|
form.value.meta = { ...defaultMeta };
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
// 设置 cache 相关值
|
|
68
|
+
if (form.value.meta.cache) {
|
|
69
|
+
const cache = form.value.meta.cache;
|
|
70
|
+
|
|
71
|
+
if (typeof cache === 'boolean') {
|
|
72
|
+
form.value.meta.cache = cache;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (typeof cache === 'string') {
|
|
76
|
+
form.value.meta.cacheName = cache;
|
|
77
|
+
form.value.meta.cache = true;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (Array.isArray(cache)) {
|
|
81
|
+
form.value.meta.cacheName = cache.join(',');
|
|
82
|
+
form.value.meta.cache = true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (form.value.meta.noCache && Array.isArray(form.value.meta.noCache)) {
|
|
87
|
+
form.value.meta.noCache = form.value.meta.noCache.join(',');
|
|
88
|
+
}
|
|
89
|
+
|
|
67
90
|
// 如果当前资源类型不支持开发模式,则重置为false
|
|
68
91
|
if (!show.value.devMode) {
|
|
69
92
|
form.value.meta.isDev = false;
|
|
@@ -26,7 +26,9 @@ export interface CustomMeta {
|
|
|
26
26
|
activeMenu?: string
|
|
27
27
|
isDev: boolean
|
|
28
28
|
devText: string
|
|
29
|
-
cache: boolean
|
|
29
|
+
cache: boolean | string | string[]
|
|
30
|
+
cacheName?: string
|
|
31
|
+
noCache?: string | string[]
|
|
30
32
|
pin: boolean
|
|
31
33
|
sidebar: boolean
|
|
32
34
|
tabbar: boolean
|
|
@@ -44,6 +46,8 @@ export const defaultMeta: CustomMeta = {
|
|
|
44
46
|
isDev: false,
|
|
45
47
|
devText: '该功能暂未上线,敬请期待!',
|
|
46
48
|
cache: false,
|
|
49
|
+
cacheName: undefined,
|
|
50
|
+
noCache: undefined,
|
|
47
51
|
pin: false,
|
|
48
52
|
sidebar: true,
|
|
49
53
|
tabbar: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { message } from 'ant-design-vue';
|
|
3
|
-
import {
|
|
3
|
+
import { updateWatermark } from 'pubinfo';
|
|
4
4
|
import { postSysconfigAddOrEidtSysThemeStyleConfig } from '@/api/modules/configData';
|
|
5
5
|
import { useSettingsStore } from '@/stores';
|
|
6
6
|
import AnimationItem from '../components/animation_item.vue';
|
|
@@ -79,7 +79,7 @@ function setStyle(jsonStr: string) {
|
|
|
79
79
|
postSysconfigAddOrEidtSysThemeStyleConfig({ content: jsonStr }).then((res: API.ResponseDataBoolean) => {
|
|
80
80
|
if (res.success) {
|
|
81
81
|
message.success('设置成功');
|
|
82
|
-
|
|
82
|
+
updateWatermark();
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
}
|