@pubinfo/core 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.
- package/dist/{AppSetting-BQT7OI6K.js → AppSetting-D2RJrc9O.js} +37 -39
- package/dist/{HCheckList.vue_vue_type_script_setup_true_lang-D4u_haxr.js → HCheckList.vue_vue_type_script_setup_true_lang-DusVz35O.js} +12 -14
- package/dist/HDivider.vue_vue_type_script_setup_true_lang-DIHR-9Yv.js +20 -0
- package/dist/HToggle-DMcVgMVY.js +34 -0
- package/dist/PreferencesContent-Dtd9rtew.js +923 -0
- package/dist/{SettingBreadcrumb-CgugOTgx.js → SettingBreadcrumb-QSCSviKM.js} +9 -9
- package/dist/{SettingCopyright-BPeCJBLi.js → SettingCopyright-Dr5P6yfq.js} +8 -8
- package/dist/{SettingEnableTransition-BK0_EH_N.js → SettingEnableTransition-DGiHEbCI.js} +20 -21
- package/dist/{SettingHome-DGnxlXLd.js → SettingHome-CEPcBlds.js} +20 -20
- package/dist/{SettingMenu-BqAd9zbL.js → SettingMenu-BJdjnRA6.js} +26 -26
- package/dist/{SettingMode-CgA3XDwW.js → SettingMode-BnuCHoEY.js} +11 -12
- package/dist/{SettingNavSearch-WFnkcRQ3.js → SettingNavSearch-CiU4BmlU.js} +9 -9
- package/dist/{SettingOther-CG4RI6mO.js → SettingOther-DTHjVlFe.js} +13 -13
- package/dist/SettingPage-D75_Nf05.js +29 -0
- package/dist/{SettingTabbar-CQA6ZT9l.js → SettingTabbar-D48dzvgA.js} +18 -18
- package/dist/SettingThemes-D-8vTs5n.js +142 -0
- package/dist/{SettingToolbar-DdR2940j.js → SettingToolbar-DjIjm9V-.js} +10 -10
- package/dist/{SettingTopbar-C_jYO_Ax.js → SettingTopbar-Cg30OTH3.js} +16 -16
- package/dist/{SettingWidthMode-ir_28SE3.js → SettingWidthMode-BKV_7kb8.js} +19 -20
- package/dist/{TopThinMode-jHDpKsma.js → TopThinMode-JFYsp_lJ.js} +1 -1
- package/dist/built-in/authentication/helper.d.ts +1 -0
- package/dist/built-in/authentication/index.d.ts +10 -0
- package/dist/built-in/authentication/interface.d.ts +7 -0
- package/dist/built-in/authentication/router.d.ts +2 -0
- package/dist/built-in/authorization/directives.d.ts +2 -0
- package/dist/built-in/authorization/helper.d.ts +6 -0
- package/dist/built-in/authorization/index.d.ts +7 -0
- package/dist/built-in/authorization/router.d.ts +3 -0
- package/dist/built-in/index.d.ts +8 -0
- package/dist/{layout → built-in/layout-component}/Layout.vue.d.ts +2 -2
- package/dist/{layout → built-in/layout-component}/components/Header/TopMode/More.vue.d.ts +1 -1
- package/dist/{layout → built-in/layout-component}/components/Header/TopMode/NotCursor.vue.d.ts +2 -0
- package/dist/{layout → built-in/layout-component}/components/Menu/sub.vue.d.ts +43 -43
- package/dist/{layout → built-in/layout-component}/components/Menu/types.d.ts +1 -1
- package/dist/{layout → built-in/layout-component}/components/Tools/Search.vue.d.ts +43 -43
- package/dist/built-in/layout-component/components/Tools/index.vue.d.ts +27 -0
- package/dist/built-in/layout-component/components/Topbar/Tabbar/MoreAction.vue.d.ts +11 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HDialog.vue.d.ts +1 -1
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HSlideover.vue.d.ts +1 -1
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HTabList.vue.d.ts +2 -2
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HTooltip.vue.d.ts +1 -1
- package/dist/{layout → built-in/layout-component}/composables/useContext.d.ts +1 -1
- package/dist/built-in/layout-component/composables/useGlobalSearch.d.ts +19 -0
- package/dist/{layout → built-in/layout-component}/composables/useHotkey.d.ts +1 -1
- package/dist/{layout → built-in/layout-component}/composables/useMenu.d.ts +1 -1
- package/dist/{layout → built-in/layout-component}/index.d.ts +5 -4
- package/dist/built-in/layout-component/utils/eventBus.d.ts +5 -0
- package/dist/built-in/layout-component/utils/index.d.ts +3 -0
- package/dist/{utils → built-in/layout-component/utils}/watermark.d.ts +1 -1
- package/dist/built-in/locales/helpler.d.ts +594 -0
- package/dist/built-in/locales/index.d.ts +5 -0
- package/dist/built-in/n-progress/index.d.ts +6 -0
- package/dist/built-in/pinia-plugin/enum.d.ts +1 -0
- package/dist/built-in/pinia-plugin/index.d.ts +5 -0
- package/dist/built-in/pinia-plugin/plugins/persist.d.ts +3 -0
- package/dist/built-in/pre-access/index.d.ts +7 -0
- package/dist/built-in/settings/index.d.ts +5 -0
- package/dist/built-in/settings/router.d.ts +3 -0
- package/dist/{colors-gu4NABiz.js → colors-CODcBxrF.js} +1 -1
- package/dist/core/create.d.ts +2 -0
- package/dist/core/ctx.d.ts +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/interface.d.ts +74 -0
- package/dist/{modules.d.ts → core/modules.d.ts} +9 -0
- package/dist/{api/index.d.ts → core/request.d.ts} +2 -4
- package/dist/core/resolver/icon.d.ts +5 -0
- package/dist/core/resolver/index.d.ts +4 -0
- package/dist/core/resolver/layout.d.ts +2 -0
- package/dist/core/resolver/page.d.ts +17 -0
- package/dist/core/resolver/resolver.d.ts +10 -0
- package/dist/{api → features/api}/modules/auth/renzhengfuwu.d.ts +7 -0
- package/dist/{api → features/api}/modules/configData/index.d.ts +1 -1
- package/dist/{api → features/api}/modules/rbac/pubJiaosezukongzhiqi.d.ts +7 -0
- package/dist/{api → features/api}/modules/rbac/ziyuanjiekou.d.ts +7 -0
- package/dist/features/api/request.d.ts +2 -0
- package/dist/{assets → features/assets}/styles/index.d.ts +2 -3
- package/dist/{composables → features/composables}/auth.d.ts +1 -1
- package/dist/features/context/index.d.ts +12 -0
- package/dist/features/enum.d.ts +21 -0
- package/dist/features/index.d.ts +7 -0
- package/dist/features/router/asyncRoutes.d.ts +14 -0
- package/dist/features/router/index.d.ts +2 -0
- package/dist/features/router/systemRoutes.d.ts +9 -0
- package/dist/features/stores/index.d.ts +1 -0
- package/dist/{stores → features/stores}/modules/favorites.d.ts +2 -2
- package/dist/{stores → features/stores}/modules/route.d.ts +6 -6
- package/dist/{stores → features/stores}/modules/tabbar.d.ts +1 -1
- package/dist/features/stores/modules/user.d.ts +36 -0
- package/dist/features/stores/utils/crypto.d.ts +1 -0
- package/dist/features/stores/utils/index.d.ts +2 -0
- package/dist/features/stores/utils/routerHelper.d.ts +17 -0
- package/dist/index-BAoB7aoj.js +49 -0
- package/dist/{reload-CUcPYtl7.js → index-BD2fkZis.js} +5 -5
- package/dist/index-BROqFYXS.js +44 -0
- package/dist/{index-CjsnFBwd.js → index-BVLkBCRY.js} +7733 -8240
- package/dist/index-D4_xmL_A.js +258 -0
- package/dist/index-DQn1WFMa.js +139 -0
- package/dist/{index-CWIfG62O.js → index-DmcblkoZ.js} +1804 -1897
- package/dist/{index-NpS61xSA.js → index-DvJr0paY.js} +54 -54
- package/dist/index-Jd3PYkpj.js +52561 -0
- package/dist/index-RT-QBzm0.js +234 -0
- package/dist/index.d.ts +23 -11
- package/dist/index.js +59 -72
- package/dist/pick-BLJM77QN.js +12 -0
- package/dist/style.css +3 -3
- package/dist/utils/index.d.ts +4 -13
- package/dist/utils/path.d.ts +1 -0
- package/dist/utils/proxy.d.ts +1 -0
- package/dist/utils/storage.d.ts +1 -2
- package/package.json +41 -43
- package/src/built-in/authentication/helper.ts +55 -0
- package/src/built-in/authentication/index.ts +42 -0
- package/src/built-in/authentication/interface.ts +7 -0
- package/src/built-in/authentication/pages/change-organization/assets/change-org.svg +1 -0
- package/src/{pages/system → built-in/authentication/pages}/change-organization/index.vue +29 -43
- package/src/built-in/authentication/pages/change-password/assets/login-small.png +0 -0
- package/src/built-in/authentication/pages/change-password/assets/login-small_dark.webp +0 -0
- package/src/built-in/authentication/pages/change-password/assets/mima.svg +1 -0
- package/src/{pages/system → built-in/authentication/pages}/change-password/components/ChangePasswordForm/index.vue +1 -1
- package/src/{pages/system → built-in/authentication/pages}/change-password/index.vue +19 -36
- package/src/built-in/authentication/router.ts +57 -0
- package/src/{directives/plugins/permission.ts → built-in/authorization/directives.ts} +6 -7
- package/src/built-in/authorization/helper.ts +11 -0
- package/src/built-in/authorization/index.ts +25 -0
- package/src/built-in/authorization/pages/not-permission/403.svg +1 -0
- package/src/built-in/authorization/pages/not-permission/403_dark.svg +1 -0
- package/src/{pages/system → built-in/authorization/pages}/not-permission/index.vue +9 -13
- package/src/{route/guard/auth.ts → built-in/authorization/router.ts} +39 -9
- package/src/built-in/index.ts +8 -0
- package/src/built-in/layout-component/Layout.vue +273 -0
- package/src/built-in/layout-component/assets/icons/favorites.svg +1 -0
- package/src/built-in/layout-component/assets/icons/toolbar-collapse.svg +1 -0
- package/src/{layout → built-in/layout-component}/components/Content/IframeView.vue +1 -2
- package/src/{layout → built-in/layout-component}/components/Content/LinkView.vue +2 -2
- package/src/built-in/layout-component/components/Content/index.vue +146 -0
- package/src/{layout → built-in/layout-component}/components/Copyright/index.vue +7 -8
- package/src/{layout → built-in/layout-component}/components/Header/TopMode/More.vue +26 -34
- package/src/built-in/layout-component/components/Header/TopMode/NotCursor.vue +70 -0
- package/src/{layout → built-in/layout-component}/components/Header/TopMode/index.vue +14 -18
- package/src/built-in/layout-component/components/Header/index.vue +171 -0
- package/src/{layout → built-in/layout-component}/components/Logo/index.vue +5 -20
- package/src/{layout → built-in/layout-component}/components/Menu/index.vue +3 -3
- package/src/{layout → built-in/layout-component}/components/Menu/item.vue +22 -27
- package/src/{layout → built-in/layout-component}/components/Menu/types.ts +1 -1
- package/src/{layout → built-in/layout-component}/components/SettingBar/AppSetting.vue +11 -11
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/DayNightToggle.vue +26 -120
- package/src/built-in/layout-component/components/SettingBar/components/SettingEnableTransition.vue +190 -0
- package/src/built-in/layout-component/components/SettingBar/components/SettingMode.vue +154 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingThemes.vue +55 -90
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingWidthMode.vue +63 -71
- package/src/built-in/layout-component/components/SettingBar/index.vue +81 -0
- package/src/{layout → built-in/layout-component}/components/Sidebar/MainSidebar.vue +87 -135
- package/src/{layout → built-in/layout-component}/components/Sidebar/SubSidebar.vue +50 -59
- package/src/built-in/layout-component/components/Tools/Breadcrumb/index.vue +15 -0
- package/src/built-in/layout-component/components/Tools/DayNightSwitch.vue +70 -0
- package/src/{layout → built-in/layout-component}/components/Tools/Preferences/PreferencesContent.vue +214 -278
- package/src/{layout → built-in/layout-component}/components/Tools/Search.vue +15 -9
- package/src/{layout → built-in/layout-component}/components/Tools/index.vue +16 -20
- package/src/{layout → built-in/layout-component}/components/Topbar/Tabbar/MoreAction.vue +102 -148
- package/src/{layout → built-in/layout-component}/components/Topbar/Tabbar/index.vue +293 -405
- package/src/{layout → built-in/layout-component}/components/Topbar/Toolbar/Favorites.vue +5 -5
- package/src/{layout → built-in/layout-component}/components/Topbar/Toolbar/index.vue +72 -67
- package/src/{layout → built-in/layout-component}/components/Topbar/index.vue +16 -19
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HCheckList.vue +1 -1
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HDialog.vue +1 -1
- package/src/built-in/layout-component/components/ui/HDivider.vue +24 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdownMenu.vue +1 -1
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdownTree.vue +1 -1
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HSlideover.vue +1 -1
- package/src/built-in/layout-component/components/ui/HToggle.vue +133 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HTooltip.vue +1 -1
- package/src/{layout → built-in/layout-component}/composables/useContext.ts +2 -2
- package/src/{layout → built-in/layout-component}/composables/useGetComputedStyle.ts +1 -1
- package/src/built-in/layout-component/composables/useGlobalSearch.ts +48 -0
- package/src/{layout → built-in/layout-component}/composables/useHotkey.ts +1 -1
- package/src/{layout → built-in/layout-component}/composables/useMainPage.ts +2 -2
- package/src/{layout → built-in/layout-component}/composables/useMenu.ts +1 -1
- package/src/{layout → built-in/layout-component}/composables/useTabbar.ts +1 -1
- package/src/{layout → built-in/layout-component}/composables/useTitle.ts +1 -1
- package/src/{layout → built-in/layout-component}/composables/useWatermark.ts +4 -4
- package/src/{layout → built-in/layout-component}/index.ts +38 -16
- package/src/{layout → built-in/layout-component}/provider.ts +8 -2
- package/src/built-in/layout-component/utils/eventBus.ts +8 -0
- package/src/built-in/layout-component/utils/index.ts +3 -0
- package/src/{utils → built-in/layout-component/utils}/watermark.ts +2 -2
- package/src/{locales/index.ts → built-in/locales/helpler.ts} +13 -17
- package/src/built-in/locales/index.ts +20 -0
- package/src/built-in/n-progress/index.ts +31 -0
- package/src/built-in/n-progress/nprogress.css +68 -0
- package/src/built-in/pinia-plugin/enum.ts +1 -0
- package/src/{stores → built-in/pinia-plugin}/helper.ts +3 -3
- package/src/built-in/pinia-plugin/index.ts +27 -0
- package/src/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/cleanup.ts +1 -1
- package/src/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/favoritesStorage.ts +6 -7
- package/src/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/iframeCache.ts +3 -3
- package/src/built-in/pinia-plugin/plugins/persist.ts +21 -0
- package/src/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/tabbarStorage.ts +7 -8
- package/src/built-in/pre-access/index.ts +20 -0
- package/src/built-in/settings/index.ts +15 -0
- package/src/{route/guard/setting.ts → built-in/settings/router.ts} +3 -2
- package/src/core/create.ts +70 -0
- package/src/core/ctx.ts +3 -0
- package/src/core/index.ts +4 -0
- package/src/core/interface.ts +89 -0
- package/src/{modules.ts → core/modules.ts} +19 -5
- package/src/core/request.ts +52 -0
- package/src/core/resolver/icon.ts +75 -0
- package/src/core/resolver/index.ts +4 -0
- package/src/core/resolver/layout.ts +23 -0
- package/src/core/resolver/page.ts +89 -0
- package/src/core/resolver/resolver.ts +25 -0
- package/src/{api → features/api}/modules/auth/renzhengfuwu.ts +47 -15
- package/src/{api → features/api}/modules/auth/typings.d.ts +34 -28
- package/src/{api → features/api}/modules/configData/heibaimingdanfuwu.ts +13 -4
- package/src/{api → features/api}/modules/configData/index.ts +1 -1
- package/src/{api → features/api}/modules/configData/typings.d.ts +79 -79
- package/src/{api → features/api}/modules/configData/xitongpeizhifuwu.ts +43 -19
- package/src/{api/modules/configData/zidianfuwu.ts → features/api/modules/configData/zidifuwu.ts} +41 -11
- package/src/{api → features/api}/modules/rbac/gangweijiekou.ts +25 -10
- package/src/{api → features/api}/modules/rbac/jiaosejiekou.ts +25 -10
- package/src/{api → features/api}/modules/rbac/pubJiaosezukongzhiqi.ts +46 -7
- package/src/{api → features/api}/modules/rbac/shujuquanxianzhubiaokongzhiqi.ts +27 -13
- package/src/{api → features/api}/modules/rbac/typings.d.ts +323 -304
- package/src/{api → features/api}/modules/rbac/yonghujiekou.ts +49 -16
- package/src/{api → features/api}/modules/rbac/yonghushoucangbiaojiekou.ts +21 -6
- package/src/{api → features/api}/modules/rbac/yonghuzuijinchangyongbiaojiekou.ts +13 -4
- package/src/{api → features/api}/modules/rbac/ziyuanjiekou.ts +44 -5
- package/src/{api → features/api}/modules/rbac/zuhuguanlijiekou.ts +21 -12
- package/src/{api → features/api}/modules/rbac/zuzhijiaosebiaokongzhiqi.ts +13 -4
- package/src/{api → features/api}/modules/rbac/zuzhijiekou.ts +29 -11
- package/src/features/api/request.ts +5 -0
- package/src/{api → features/api}/system/user.ts +1 -1
- package/src/{assets → features/assets}/fonts/digital-7/digital-7-webfont.svg +131 -133
- package/src/{assets → features/assets}/fonts/digital-7_mono/digital-7_mono-webfont.svg +130 -132
- package/src/{assets → features/assets}/images/org.svg +2 -2
- package/src/features/assets/styles/globals.css +188 -0
- package/src/{assets → features/assets}/styles/index.ts +2 -3
- package/src/features/assets/styles/rbac.css +51 -0
- package/src/features/assets/styles/resources/utils.css +53 -0
- package/src/features/assets/styles/resources/variables.css +5 -0
- package/src/features/components/MicroAppContainer/index.vue +9 -0
- package/src/features/components/NotAllowed/assets/403.svg +1 -0
- package/src/features/components/NotAllowed/assets/403_dark.svg +1 -0
- package/src/{components → features/components}/NotAllowed/index.vue +6 -8
- package/src/{components → features/components}/PassStrengthValidator/index.vue +33 -48
- package/src/{components → features/components}/PassStrengthValidator/rule.vue +13 -25
- package/src/{components → features/components}/PubinfoApp/index.vue +2 -1
- package/src/features/components/PubinfoIcon/index.vue +140 -0
- package/src/{components → features/components}/PubinfoProvider/index.ts +1 -2
- package/src/{composables → features/composables}/auth.ts +2 -2
- package/src/{composables → features/composables}/theme.ts +1 -1
- package/src/{composables → features/composables}/watchDiff.ts +1 -1
- package/src/features/context/index.ts +40 -0
- package/src/features/enum.ts +21 -0
- package/src/features/index.ts +8 -0
- package/src/features/pages/not-found/assets/404.svg +1 -0
- package/src/features/pages/not-found/assets/404_dark.svg +1 -0
- package/src/{pages/system/[...all].vue → features/pages/not-found/index.vue} +6 -8
- package/src/{pages/personal → features/pages}/profile/index.vue +1 -1
- package/src/features/router/asyncRoutes.ts +35 -0
- package/src/features/router/index.ts +2 -0
- package/src/features/router/systemRoutes.ts +45 -0
- package/src/{config/settings.ts → features/settings/index.ts} +0 -1
- package/src/{stores/enum/index.ts → features/stores/enum.ts} +0 -1
- package/src/features/stores/index.ts +1 -0
- package/src/{stores → features/stores}/modules/keepAlive.ts +1 -0
- package/src/{stores → features/stores}/modules/menu.ts +44 -6
- package/src/{stores → features/stores}/modules/route.ts +89 -65
- package/src/{stores → features/stores}/modules/settings.ts +27 -10
- package/src/{stores → features/stores}/modules/tabbar.ts +8 -5
- package/src/{stores → features/stores}/modules/user.ts +60 -25
- package/src/{utils → features/stores/utils}/crypto.ts +7 -10
- package/src/features/stores/utils/index.ts +2 -0
- package/src/features/stores/utils/routerHelper.ts +221 -0
- package/src/index.ts +117 -12
- package/src/utils/cleanup.ts +1 -1
- package/src/utils/index.ts +4 -43
- package/src/utils/path.ts +5 -0
- package/src/utils/proxy.ts +36 -0
- package/src/utils/storage.ts +2 -4
- package/types/auto-imports.d.ts +3 -10
- package/types/components.d.ts +16 -15
- package/types/menu.d.ts +2 -0
- package/types/module.d.ts +2 -15
- package/types/settings.d.ts +0 -8
- package/types/tabbar.d.ts +1 -0
- package/types/vue-router.d.ts +11 -7
- package/dist/HButton.vue_vue_type_script_setup_true_lang-CYAzn9Mg.js +0 -25
- package/dist/HDivider-DgXBhPr0.js +0 -21
- package/dist/HToggle-Cd71WKvG.js +0 -34
- package/dist/PreferencesContent-MR1Db7z7.js +0 -972
- package/dist/SettingPage-C1CT1Mm8.js +0 -29
- package/dist/SettingThemes-BJu9czNK.js +0 -144
- package/dist/_...all_-18BnHmEa.js +0 -52
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
- package/dist/api/helper.d.ts +0 -32
- package/dist/api/interface.d.ts +0 -14
- package/dist/api/request.d.ts +0 -2
- package/dist/api/system/app.d.ts +0 -17
- package/dist/config/index.d.ts +0 -1
- package/dist/context.d.ts +0 -14
- package/dist/create.d.ts +0 -3
- package/dist/directives/index.d.ts +0 -4
- package/dist/directives/plugins/permission.d.ts +0 -6
- package/dist/index-C1p_tY7i.js +0 -49
- package/dist/index-CCPTQYuB.js +0 -12910
- package/dist/index-CNUEMTao.js +0 -354
- package/dist/index-CmXo8ShY.js +0 -276
- package/dist/index-DL8Y7jFG.js +0 -137
- package/dist/index-DTQQt_XY.js +0 -10
- package/dist/index-Dj8zy7hH.js +0 -230
- package/dist/index.vue_vue_type_style_index_0_scoped_fa1c6ee4_lang-BCo6Ft-Q.js +0 -2300
- package/dist/interface.d.ts +0 -29
- package/dist/layout/components/Tools/index.vue.d.ts +0 -233
- package/dist/layout/components/Topbar/Tabbar/MoreAction.vue.d.ts +0 -217
- package/dist/locales/index.d.ts +0 -301
- package/dist/menu-CLiZ1BO_.js +0 -15315
- package/dist/pick-C9bU8_xv.js +0 -19
- package/dist/request.js +0 -1811
- package/dist/route/async.d.ts +0 -9
- package/dist/route/guard/auth.d.ts +0 -3
- package/dist/route/guard/basic.d.ts +0 -3
- package/dist/route/guard/index.d.ts +0 -3
- package/dist/route/guard/setting.d.ts +0 -3
- package/dist/route/index.d.ts +0 -7
- package/dist/route/routes.d.ts +0 -3
- package/dist/stores/index.d.ts +0 -5
- package/dist/stores/modules/user.d.ts +0 -4
- package/dist/stores/plugin/persist.d.ts +0 -5
- package/dist/stores/plugin/sideEffect/index.d.ts +0 -5
- package/dist/utils/crypto.d.ts +0 -4
- package/dist/utils/eventBus.d.ts +0 -5
- package/src/api/helper.ts +0 -64
- package/src/api/index.ts +0 -75
- package/src/api/interface.ts +0 -15
- package/src/api/request.ts +0 -4
- package/src/api/system/app.ts +0 -28
- package/src/assets/icons/403.svg +0 -1
- package/src/assets/icons/403_dark.svg +0 -1
- package/src/assets/icons/404.svg +0 -1
- package/src/assets/icons/404_dark.svg +0 -1
- package/src/assets/icons/add-child.svg +0 -1
- package/src/assets/icons/authority.svg +0 -1
- package/src/assets/icons/authorize.svg +0 -1
- package/src/assets/icons/blacklist-disable.svg +0 -1
- package/src/assets/icons/blacklist-enable.svg +0 -1
- package/src/assets/icons/browser-360.svg +0 -1
- package/src/assets/icons/browser-chrome.svg +0 -1
- package/src/assets/icons/browser-edge.svg +0 -1
- package/src/assets/icons/browser-ie.svg +0 -1
- package/src/assets/icons/browser-other.svg +0 -1
- package/src/assets/icons/browser-qq.svg +0 -1
- package/src/assets/icons/browser-safari.svg +0 -1
- package/src/assets/icons/browser-uc.svg +0 -1
- package/src/assets/icons/change-org.svg +0 -1
- package/src/assets/icons/edit.svg +0 -1
- package/src/assets/icons/empty-data.svg +0 -1
- package/src/assets/icons/favorites.svg +0 -1
- package/src/assets/icons/icard.svg +0 -1
- package/src/assets/icons/icon_animation.svg +0 -1
- package/src/assets/icons/icon_breadcrumb.svg +0 -1
- package/src/assets/icons/icon_copyright.svg +0 -1
- package/src/assets/icons/icon_jt.svg +0 -1
- package/src/assets/icons/icon_layout.svg +0 -1
- package/src/assets/icons/icon_mainpage.svg +0 -1
- package/src/assets/icons/icon_menu.svg +0 -1
- package/src/assets/icons/icon_page_size.svg +0 -1
- package/src/assets/icons/icon_position_type.svg +0 -1
- package/src/assets/icons/icon_safe_manage.svg +0 -1
- package/src/assets/icons/icon_screen_scale.svg +0 -6
- package/src/assets/icons/icon_system_manage.svg +0 -1
- package/src/assets/icons/icon_tabbar.svg +0 -1
- package/src/assets/icons/icon_toolbar.svg +0 -1
- package/src/assets/icons/icon_topbar.svg +0 -1
- package/src/assets/icons/icon_watermark.svg +0 -1
- package/src/assets/icons/image-load-fail.svg +0 -1
- package/src/assets/icons/log-center.svg +0 -1
- package/src/assets/icons/logo-sig.svg +0 -1
- package/src/assets/icons/mima.svg +0 -1
- package/src/assets/icons/not-data.svg +0 -1
- package/src/assets/icons/org-main.svg +0 -1
- package/src/assets/icons/org-unmain.svg +0 -1
- package/src/assets/icons/process-management.svg +0 -1
- package/src/assets/icons/project-management.svg +0 -1
- package/src/assets/icons/rbac.svg +0 -1
- package/src/assets/icons/remove.svg +0 -1
- package/src/assets/icons/resource-app.svg +0 -1
- package/src/assets/icons/resource-btn.svg +0 -1
- package/src/assets/icons/resource-index.svg +0 -1
- package/src/assets/icons/resource-menu.svg +0 -1
- package/src/assets/icons/resource-nonmenu.svg +0 -1
- package/src/assets/icons/setting-manage.svg +0 -1
- package/src/assets/icons/test.svg +0 -1
- package/src/assets/icons/theme-check-mark.svg +0 -1
- package/src/assets/icons/theme-title.svg +0 -1
- package/src/assets/icons/toolbar-collapse.svg +0 -1
- package/src/assets/icons/tree_icon.svg +0 -1
- package/src/assets/icons/tree_icon_checked.svg +0 -1
- package/src/assets/icons/view.svg +0 -1
- package/src/assets/icons/workbench.svg +0 -1
- package/src/assets/icons/zddata.svg +0 -1
- package/src/assets/icons/zy_checked.svg +0 -1
- package/src/assets/icons/zy_default.svg +0 -1
- package/src/assets/images/layout/item1.webp +0 -0
- package/src/assets/images/layout/item1_dark.webp +0 -0
- package/src/assets/images/layout/item2.webp +0 -0
- package/src/assets/images/layout/item2_dark.webp +0 -0
- package/src/assets/images/layout/item3.webp +0 -0
- package/src/assets/images/layout/item3_dark.webp +0 -0
- package/src/assets/images/layout/item4.webp +0 -0
- package/src/assets/images/layout/item4_dark.webp +0 -0
- package/src/assets/images/layout/item5.webp +0 -0
- package/src/assets/images/layout/item5_dark.webp +0 -0
- package/src/assets/images/page-width/anto_min_w_dark.webp +0 -0
- package/src/assets/images/page-width/auto.webp +0 -0
- package/src/assets/images/page-width/auto_dark.webp +0 -0
- package/src/assets/images/page-width/auto_min_w.webp +0 -0
- package/src/assets/images/page-width/auto_min_w_dark.webp +0 -0
- package/src/assets/images/page-width/icon_auto.webp +0 -0
- package/src/assets/images/page-width/icon_auto_dark.webp +0 -0
- package/src/assets/images/page-width/icon_auto_min_w.webp +0 -0
- package/src/assets/images/page-width/icon_auto_min_w_dark.webp +0 -0
- package/src/assets/images/page-width/icon_middle.webp +0 -0
- package/src/assets/images/page-width/icon_middle_dark.webp +0 -0
- package/src/assets/images/page-width/icon_middle_max_w.webp +0 -0
- package/src/assets/images/page-width/icon_middle_max_w_dark.webp +0 -0
- package/src/assets/images/page-width/middle.webp +0 -0
- package/src/assets/images/page-width/middle_dark.webp +0 -0
- package/src/assets/images/page-width/middle_max_w.webp +0 -0
- package/src/assets/images/page-width/middle_max_w_dark.webp +0 -0
- package/src/assets/styles/globals.scss +0 -189
- package/src/assets/styles/nprogress.scss +0 -63
- package/src/assets/styles/rbac.scss +0 -61
- package/src/assets/styles/resources/utils.scss +0 -53
- package/src/assets/styles/resources/variables.scss +0 -6
- package/src/components/PubinfoIcon/index.vue +0 -85
- package/src/config/index.ts +0 -1
- package/src/context.ts +0 -30
- package/src/create.ts +0 -88
- package/src/directives/index.ts +0 -6
- package/src/interface.ts +0 -35
- package/src/layout/Layout.vue +0 -330
- package/src/layout/components/Content/index.vue +0 -100
- package/src/layout/components/Header/TopMode/NotCursor.vue +0 -77
- package/src/layout/components/Header/index.vue +0 -263
- package/src/layout/components/SettingBar/components/SettingEnableTransition.vue +0 -215
- package/src/layout/components/SettingBar/components/SettingMode.vue +0 -164
- package/src/layout/components/SettingBar/index.vue +0 -112
- package/src/layout/components/Tools/Breadcrumb/index.vue +0 -21
- package/src/layout/components/Tools/DayNightSwitch.vue +0 -93
- package/src/layout/components/Tools/I18nSelector.vue +0 -52
- package/src/layout/ui-kit/HDivider.vue +0 -53
- package/src/layout/ui-kit/HToggle.vue +0 -177
- package/src/pages/system/change-password/page.vue +0 -58
- package/src/pages/system/index.vue +0 -5
- package/src/route/async.ts +0 -18
- package/src/route/guard/basic.ts +0 -23
- package/src/route/guard/index.ts +0 -3
- package/src/route/index.ts +0 -12
- package/src/route/routes.ts +0 -101
- package/src/stores/index.ts +0 -10
- package/src/stores/plugin/persist.ts +0 -27
- package/src/stores/plugin/sideEffect/index.ts +0 -15
- package/src/utils/eventBus.ts +0 -15
- package/dist/{api/enum/code.d.ts → built-in/authentication/enum.d.ts} +0 -0
- package/dist/{components/NotAllowed → built-in/authentication/pages/change-organization}/index.vue.d.ts +0 -0
- package/dist/{pages/system → built-in/authentication/pages}/change-password/components/ChangePasswordForm/index.vue.d.ts +0 -0
- package/dist/{pages/system → built-in/authentication/pages}/change-password/index.vue.d.ts +0 -0
- package/dist/{layout/components/Topbar/Toolbar → built-in/authorization/pages/not-permission}/index.vue.d.ts +0 -0
- package/dist/{components/PubinfoApp → built-in/layout-component/components/BackTop}/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Content/IframeView.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Content/LinkView.vue.d.ts +0 -0
- package/dist/{layout/components/BackTop → built-in/layout-component/components/Content}/index.vue.d.ts +0 -0
- package/dist/{layout/components/Content → built-in/layout-component/components/Copyright}/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Header/TopMode/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Header/TopThinMode.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Header/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Logo/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Menu/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Menu/item.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/AppSetting.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/DayNightToggle.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingBreadcrumb.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingCopyright.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingEnableTransition.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingHome.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingMenu.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingMode.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingNavSearch.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingOther.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingPage.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingTabbar.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingThemes.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingToolbar.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingTopbar.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/SettingBar/components/SettingWidthMode.vue.d.ts +0 -0
- package/dist/{layout/components/Copyright → built-in/layout-component/components/SettingBar}/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Sidebar/MainSidebar.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Sidebar/SubSidebar.vue.d.ts +0 -0
- package/dist/{layout/components/SettingBar → built-in/layout-component/components/Sidebar}/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/Breadcrumb/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/Breadcrumb/item.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/DayNightSwitch.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/HotkeysIntro.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/Preferences/PreferencesContent.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Tools/Preferences/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Topbar/Tabbar/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Topbar/Toolbar/Favorites.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/components/Topbar/Toolbar/Star.vue.d.ts +0 -0
- package/dist/{layout/components/Topbar → built-in/layout-component/components/Topbar/Toolbar}/index.vue.d.ts +0 -0
- package/dist/{pages/personal/profile → built-in/layout-component/components/Topbar}/index.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HBadge.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HButton.vue.d.ts +1 -1
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HCheckList.vue.d.ts +2 -2
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HDivider.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdown.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdownMenu.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdownTree.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HInput.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HKbd.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HSelect.vue.d.ts +0 -0
- package/dist/{layout/ui-kit → built-in/layout-component/components/ui}/HToggle.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useGetComputedStyle.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useMainPage.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useTabbar.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useTitle.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useViewTransition.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/composables/useWatermark.d.ts +0 -0
- package/dist/{pages/system/change-organization → built-in/layout-component/pages/reload}/index.vue.d.ts +0 -0
- package/dist/{layout → built-in/layout-component}/provider.d.ts +0 -0
- package/dist/{utils → built-in/layout-component/utils}/injectionKeys.d.ts +0 -0
- package/dist/{locales → built-in/locales}/lang/en.json.d.ts +0 -0
- package/dist/{locales → built-in/locales}/lang/zh-cn.json.d.ts +0 -0
- package/dist/{locales → built-in/locales}/lang/zh-tw.json.d.ts +0 -0
- package/dist/{locales → built-in/locales}/ui.d.ts +0 -0
- package/dist/{stores → built-in/pinia-plugin}/helper.d.ts +0 -0
- package/dist/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/cleanup.d.ts +0 -0
- package/dist/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/favoritesStorage.d.ts +0 -0
- package/dist/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/iframeCache.d.ts +0 -0
- package/dist/{stores/plugin/sideEffect → built-in/pinia-plugin/plugins}/tabbarStorage.d.ts +0 -0
- package/dist/{utils → core}/utils.d.ts +0 -0
- package/dist/{api → features/api}/modules/auth/index.d.ts +0 -0
- package/dist/{api → features/api}/modules/configData/heibaimingdanfuwu.d.ts +0 -0
- package/dist/{api → features/api}/modules/configData/xitongpeizhifuwu.d.ts +0 -0
- package/dist/{api/modules/configData/zidianfuwu.d.ts → features/api/modules/configData/zidifuwu.d.ts} +0 -0
- package/dist/{api → features/api}/modules/rbac/gangweijiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/index.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/jiaosejiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/shujuquanxianzhubiaokongzhiqi.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/yonghujiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/yonghushoucangbiaojiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/yonghuzuijinchangyongbiaojiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/zuhuguanlijiekou.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/zuzhijiaosebiaokongzhiqi.d.ts +0 -0
- package/dist/{api → features/api}/modules/rbac/zuzhijiekou.d.ts +0 -0
- package/dist/{api → features/api}/system/user.d.ts +0 -0
- package/dist/{pages/system → features/components/MicroAppContainer}/index.vue.d.ts +0 -0
- package/dist/{pages/system/not-permission → features/components/NotAllowed}/index.vue.d.ts +0 -0
- package/dist/{components → features/components}/PageHeader/index.vue.d.ts +0 -0
- package/dist/{components → features/components}/PageMain/index.vue.d.ts +0 -0
- package/dist/{components → features/components}/PassStrengthValidator/index.vue.d.ts +2 -2
- package/dist/{components → features/components}/PassStrengthValidator/rule.vue.d.ts +0 -0
- package/dist/{layout/components/Sidebar → features/components/PubinfoApp}/index.vue.d.ts +0 -0
- package/dist/{components → features/components}/PubinfoIcon/index.vue.d.ts +0 -0
- package/dist/{components → features/components}/PubinfoProvider/index.d.ts +0 -0
- package/dist/{components → features/components}/index.d.ts +0 -0
- package/dist/{composables → features/composables}/index.d.ts +0 -0
- package/dist/{composables → features/composables}/log.d.ts +0 -0
- package/dist/{composables → features/composables}/theme.d.ts +0 -0
- package/dist/{composables → features/composables}/watchDiff.d.ts +0 -0
- package/dist/{pages/system/[...all].vue.d.ts → features/pages/not-found/index.vue.d.ts} +0 -0
- package/dist/{pages/system/reload.vue.d.ts → features/pages/profile/index.vue.d.ts} +0 -0
- package/dist/{config/settings.d.ts → features/settings/index.d.ts} +0 -0
- package/dist/{stores/enum/index.d.ts → features/stores/enum.d.ts} +0 -0
- package/dist/{stores → features/stores}/modules/iframe.d.ts +0 -0
- package/dist/{stores → features/stores}/modules/index.d.ts +0 -0
- package/dist/{stores → features/stores}/modules/keepAlive.d.ts +0 -0
- package/dist/{stores → features/stores}/modules/menu.d.ts +0 -0
- package/dist/{stores → features/stores}/modules/settings.d.ts +0 -0
- package/src/{api/enum/code.ts → built-in/authentication/enum.ts} +0 -0
- package/src/{assets/images → built-in/authentication/pages/change-organization/assets}/login-small.png +0 -0
- package/src/{assets/images → built-in/authentication/pages/change-organization/assets}/login-small_dark.webp +0 -0
- package/src/{assets → built-in/layout-component/assets}/images/not-cursor.png +0 -0
- package/src/{layout → built-in/layout-component}/components/BackTop/index.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Header/TopThinMode.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Menu/sub.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingBreadcrumb.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingCopyright.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingHome.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingMenu.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingNavSearch.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingOther.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingPage.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingTabbar.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingToolbar.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/SettingBar/components/SettingTopbar.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Sidebar/index.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Tools/Breadcrumb/item.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Tools/HotkeysIntro.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Tools/Preferences/index.vue +0 -0
- package/src/{layout → built-in/layout-component}/components/Topbar/Toolbar/Star.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HBadge.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HButton.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HDropdown.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HInput.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HKbd.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HSelect.vue +0 -0
- package/src/{layout/ui-kit → built-in/layout-component/components/ui}/HTabList.vue +0 -0
- package/src/{layout → built-in/layout-component}/composables/useViewTransition.ts +0 -0
- package/src/{pages/system/reload.vue → built-in/layout-component/pages/reload/index.vue} +0 -0
- package/src/{utils → built-in/layout-component/utils}/injectionKeys.ts +0 -0
- package/src/{locales → built-in/locales}/lang/en.json +0 -0
- package/src/{locales → built-in/locales}/lang/zh-cn.json +0 -0
- package/src/{locales → built-in/locales}/lang/zh-tw.json +0 -0
- package/src/{locales → built-in/locales}/ui.ts +0 -0
- package/src/{utils → core}/utils.ts +0 -0
- package/src/{api → features/api}/modules/auth/index.ts +0 -0
- package/src/{api → features/api}/modules/rbac/index.ts +0 -0
- package/src/{api → features/api}/system/typings.d.ts +0 -0
- package/src/{assets → features/assets}/fonts/digital-7/digital-7-webfont.eot +0 -0
- package/src/{assets → features/assets}/fonts/digital-7/digital-7-webfont.woff +0 -0
- package/src/{assets → features/assets}/fonts/digital-7/digital-7-webfont.woff2 +0 -0
- package/src/{assets → features/assets}/fonts/digital-7/stylesheet.css +0 -0
- package/src/{assets → features/assets}/fonts/digital-7_mono/digital-7_mono-webfont.eot +0 -0
- package/src/{assets → features/assets}/fonts/digital-7_mono/digital-7_mono-webfont.woff +0 -0
- package/src/{assets → features/assets}/fonts/digital-7_mono/digital-7_mono-webfont.woff2 +0 -0
- package/src/{assets → features/assets}/fonts/digital-7_mono/stylesheet.css +0 -0
- package/src/{assets → features/assets}/fonts/title.otf +0 -0
- package/src/{assets → features/assets}/images/change-org-bc.webp +0 -0
- package/src/{assets → features/assets}/images/header-bg.png +0 -0
- package/src/{assets → features/assets}/images/logo.png +0 -0
- package/src/{assets → features/assets}/images/slider-bg.png +0 -0
- package/src/{components → features/components}/PageHeader/index.vue +0 -0
- package/src/{components → features/components}/PageMain/index.vue +0 -0
- package/src/{components → features/components}/index.ts +0 -0
- package/src/{composables → features/composables}/index.ts +0 -0
- package/src/{composables → features/composables}/log.ts +0 -0
- package/src/{stores → features/stores}/modules/favorites.ts +1 -1
- /package/src/{stores → features/stores}/modules/iframe.ts +0 -0
- /package/src/{stores → features/stores}/modules/index.ts +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Router, RouteRecordRaw } from 'vue-router';
|
|
2
|
+
import { isUndefined } from 'lodash-es';
|
|
3
|
+
import { useUserStore } from '@/features';
|
|
4
|
+
|
|
5
|
+
const routes: RouteRecordRaw[] = [
|
|
6
|
+
{
|
|
7
|
+
path: '/change-password/:changePassWordToken',
|
|
8
|
+
name: 'ChangePassword',
|
|
9
|
+
component: () => import('./pages/change-password/index.vue'),
|
|
10
|
+
// 特殊处理changelog-password路由,不允许直接访问
|
|
11
|
+
// 其实应该移入到鉴权组路由,但是会导致需要频繁挂载销毁路由
|
|
12
|
+
beforeEnter: (to) => {
|
|
13
|
+
if (isUndefined(to.params.changePassWordToken)) {
|
|
14
|
+
return { name: 'Login' };
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
},
|
|
18
|
+
meta: {
|
|
19
|
+
whiteList: true,
|
|
20
|
+
title: '修改密码',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: '/change-organization/:orgId',
|
|
25
|
+
name: 'ChangeOrganization',
|
|
26
|
+
component: () => import('./pages/change-organization/index.vue'),
|
|
27
|
+
beforeEnter: (to) => {
|
|
28
|
+
const userStore = useUserStore();
|
|
29
|
+
if (isUndefined(to.params.orgId) || to.params.orgId !== userStore.user.orgId) {
|
|
30
|
+
return { name: 'Login' };
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
},
|
|
34
|
+
meta: {
|
|
35
|
+
whiteList: true,
|
|
36
|
+
title: '切换组织',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
export function createRouterGuard(router: Router) {
|
|
42
|
+
let isRouteAdded = false;
|
|
43
|
+
|
|
44
|
+
router.beforeEach((to) => {
|
|
45
|
+
if (!isRouteAdded) {
|
|
46
|
+
routes.forEach((route) => {
|
|
47
|
+
if (!router.hasRoute(route.name!)) {
|
|
48
|
+
router.addRoute(route);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
isRouteAdded = true;
|
|
53
|
+
|
|
54
|
+
return { ...to, replace: true };
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { App } from 'vue';
|
|
2
|
+
import { useAuth } from '@/features/composables';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
* 设置权限指令
|
|
5
|
-
* @param app 应用程序实例
|
|
6
|
-
*/
|
|
7
|
-
export function setupPermissionDirective(app: App) {
|
|
4
|
+
export function setupDirectives(app: App) {
|
|
8
5
|
app.directive('auth', {
|
|
9
6
|
mounted: (el, binding) => {
|
|
10
|
-
|
|
7
|
+
const { auth } = useAuth();
|
|
8
|
+
if (!auth(binding.value)) {
|
|
11
9
|
el.remove();
|
|
12
10
|
}
|
|
13
11
|
},
|
|
@@ -15,7 +13,8 @@ export function setupPermissionDirective(app: App) {
|
|
|
15
13
|
|
|
16
14
|
app.directive('auth-all', {
|
|
17
15
|
mounted: (el, binding) => {
|
|
18
|
-
|
|
16
|
+
const { authAll } = useAuth();
|
|
17
|
+
if (!authAll(binding.value)) {
|
|
19
18
|
el.remove();
|
|
20
19
|
}
|
|
21
20
|
},
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RequestMethod } from '@/core';
|
|
2
|
+
import { useSettingsStore } from '@/features/stores';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 数据权限标识
|
|
6
|
+
* @param method 请求方法
|
|
7
|
+
*/
|
|
8
|
+
export function maybeSetAuthData(method: RequestMethod) {
|
|
9
|
+
const settingsStore = useSettingsStore();
|
|
10
|
+
method.config.headers['X-ResourceMark'] = method.config.headers['X-ResourceMark'] || settingsStore.auth;
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ModuleOptions } from '@/core';
|
|
2
|
+
import { setupDirectives } from './directives';
|
|
3
|
+
import { maybeSetAuthData } from './helper';
|
|
4
|
+
import { setupRouterGuard } from './router';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 权限授权 (资源级拦截)
|
|
8
|
+
*
|
|
9
|
+
* 用户是否有访问某个页面/按钮的权限
|
|
10
|
+
*/
|
|
11
|
+
export function Authorization(): ModuleOptions {
|
|
12
|
+
return {
|
|
13
|
+
name: 'built-in:authorization',
|
|
14
|
+
setup(ctx) {
|
|
15
|
+
const { app, router } = ctx;
|
|
16
|
+
setupDirectives(app);
|
|
17
|
+
setupRouterGuard(router);
|
|
18
|
+
},
|
|
19
|
+
hooks: {
|
|
20
|
+
'http:request': (method) => {
|
|
21
|
+
maybeSetAuthData(method);
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 383 309" preserveAspectRatio="xMidYMid meet"><rect width="118.274" height="17.809" fill="#81ACFA" rx="4" transform="matrix(1 0 .08716 .9962 161.633 272.588)"/><rect width="118.274" height="17.809" fill="url(#a)" rx="4" transform="matrix(1 0 .08716 .9962 162.633 269.588)"/><path fill="url(#b)" d="m32.505 148.18 36.78 85.112c25.18 58.267 91.725 89.125 148.315 68.777l85.675-30.806c91.652-32.954 86.59-163.719-7.961-205.65L172.859 11.307C80.133-29.813-7.488 55.635 32.505 148.18"/><rect width="68.502" height="88.093" fill="url(#c)" rx="2" transform="matrix(1 0 .08716 .9962 180.84 189.236)"/><rect width="68.502" height="77.252" fill="url(#d)" rx="2" transform="matrix(1 0 .08716 .9962 180.84 189.236)"/><rect width="137.89" height="105.817" fill="url(#e)" rx="10" transform="matrix(1 0 .08716 .9962 .076 169.044)"/><g opacity=".3"><path fill="#B0C6F8" fill-rule="evenodd" d="M32.416 185.888a1 1 0 0 0-1 1v4.978a1 1 0 0 0 1 1H65.98a1 1 0 0 0 1-1v-4.978a1 1 0 0 0-1-1zm39.964 0a.9.9 0 0 0-.913.996l.434 4.959c.048.551.535.997 1.087.997h11.475a.9.9 0 0 0 .913-.997l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm-38.814 13.156a.9.9 0 0 0-.912.996l.433 4.959c.049.55.535.996 1.088.996h33.564a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm39.965 0a.9.9 0 0 0-.913.996l.434 4.959c.048.55.535.996 1.087.996h11.475a.9.9 0 0 0 .912-.996l-.433-4.959a1.11 1.11 0 0 0-1.088-.996z" clip-rule="evenodd"/><path fill="#CEDCFF" fill-rule="evenodd" d="M34.717 212.2a.9.9 0 0 0-.913.996l.434 4.959c.048.55.535.996 1.087.996H68.89a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm39.964 0a.9.9 0 0 0-.913.996l.434 4.959c.049.55.535.996 1.088.996h11.474a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996z" clip-rule="evenodd"/><path fill="#1CCDB8" d="M52.416 238.875c.698-1.125 2.373-1.125 3.268 0l15.628 19.634c1.05 1.319.262 3.141-1.36 3.141h-27.82c-1.622 0-2.728-1.822-1.909-3.141z"/><path fill="#1CCDB8" d="M75.608 246.101c.699-1.124 2.373-1.124 3.268 0l9.876 12.408c1.05 1.319.263 3.141-1.359 3.141h-17.58c-1.622 0-2.73-1.822-1.91-3.141z"/><circle cx="3.072" cy="3.072" r="3.072" fill="#1CCDB8" transform="matrix(1 0 .08716 .9962 76.041 232.35)"/></g><path fill="#0D4CAC" fill-opacity=".1" fill-rule="evenodd" d="M145.514 268.054H92.96c-6.628 0-12.655-5.332-13.463-11.91l-10.694-87.1h50.164c5.523 0 10.779 4.443 11.74 9.924l14.93 85.166c.244 1.392.188 2.718-.123 3.92" clip-rule="evenodd"/><rect width="238.238" height="173.566" fill="#81ACFA" rx="12" transform="matrix(1 0 .08716 .9962 84.719 85.475)"/><rect width="237.238" height="172.566" x=".544" y=".498" fill="url(#f)" stroke="url(#g)" rx="11.5" transform="matrix(1 0 .08716 .9962 86.675 83.477)"/><path fill="url(#h)" stroke="url(#i)" d="M101.526 88.354h209.477c5.247 0 9.871 4.237 10.328 9.464l10.845 123.958a1.35 1.35 0 0 1-1.369 1.495H105.33a1.666 1.666 0 0 1-1.631-1.495L92.854 97.818c-.457-5.227 3.425-9.464 8.672-9.464Z"/><path fill="#1346CB" fill-rule="evenodd" d="M101.481 87.856c-5.522 0-9.22 4.443-8.26 9.924l.757 4.315c.822-3.673 3.978-6.27 8.201-6.27h210.54c4.595 0 9.005 3.075 10.91 7.265l-.93-5.31c-.961-5.481-6.217-9.924-11.74-9.924z" clip-rule="evenodd"/><rect width="108" height="108" fill="#0D4CAC" fill-opacity=".18" rx="54" transform="matrix(1 0 .08716 .9962 246.5 74.57)"/><rect width="107" height="107" x=".544" y=".498" fill="url(#j)" stroke="#fff" rx="53.5" transform="matrix(1 0 .08716 .9962 264.88 56.617)"/><path fill="#CDDCEF" fill-rule="evenodd" d="M332.098 96.246c0 7.312-5.994 13.26-13.362 13.26-7.367 0-13.361-5.948-13.361-13.26s5.994-13.26 13.361-13.26 13.362 5.948 13.362 13.26m-29.466 46.337c-5.999-3.171-9.589-7.472-9.982-11.957-.194-2.221.403-4.42 1.757-6.471s3.437-3.916 6.133-5.486c2.696-1.571 5.95-2.816 9.577-3.666s7.556-1.287 11.562-1.287c4.007 0 8.012.437 11.788 1.287s7.248 2.095 10.219 3.666 5.38 3.434 7.093 5.486 2.694 4.25 2.888 6.471c.393 4.485-2.445 8.786-7.889 11.957s-13.048 4.953-21.14 4.953c-8.091 0-16.007-1.782-22.006-4.953" clip-rule="evenodd"/><path fill="#6599FF" fill-rule="evenodd" d="M337.098 90.246c0 7.312-5.994 13.26-13.362 13.26-7.367 0-13.361-5.948-13.361-13.26s5.994-13.26 13.361-13.26 13.362 5.948 13.362 13.26m-29.466 46.337c-5.999-3.171-9.589-7.472-9.982-11.957-.194-2.221.403-4.42 1.757-6.471s3.437-3.916 6.133-5.486c2.696-1.571 5.95-2.816 9.577-3.666s7.556-1.287 11.562-1.287c4.007 0 8.012.437 11.788 1.287s7.248 2.095 10.219 3.666 5.38 3.434 7.093 5.486 2.694 4.25 2.888 6.471c.393 4.485-2.445 8.786-7.889 11.957s-13.048 4.953-21.14 4.953c-8.091 0-16.007-1.782-22.006-4.953" clip-rule="evenodd"/><path fill="#1346CB" fill-opacity=".2" fill-rule="evenodd" d="m161.055 128.365 28.66 8.821c1.076.33 1.878 1.301 1.956 2.4l3.072 35.11v.003c-.04.279-.863 6.036-6.064 11.611-4.631 4.974-16.473 11.605-19.042 12.915l-1.302.678c-.343.183-.986.192-1.361 0l-1.421-.678a10 10 0 0 0-.462-.22 27 27 0 0 1-.957-.458c-4.799-2.399-15.802-7.932-20.564-12.237-6.146-5.556-7.984-11.293-8.085-11.608l-.002-.006-3.072-35.11c-.105-1.099.518-2.07 1.537-2.4zm6.113 66.088.019.009s.009 0 .026-.009zm.377-20.389h4.505c1.471 0 2.562-1.191 2.435-2.657h-.009l-.01-.109c-.128-1.466-1.428-2.657-2.899-2.657h-4.505l-.408-4.662c3.88-1.054 6.341-4.873 6.115-8.922.004-.064-.002-.128-.007-.192q.002-.054-.007-.102l-.007-.054c-.206-1.823-.911-3.682-2.108-5.175a11.26 11.26 0 0 0-5.118-3.636c-3.605-1.273-7.862-.11-9.983 2.757-1.225 1.658-1.835 3.518-1.832 5.651.007 1.869.697 3.866 1.811 5.46 1.072 1.529 2.596 2.876 4.308 3.627.506.219 1.009.393 1.509.54q.002.033.001.067l.002.08 1.427 16.304c.128 1.466 1.427 2.656 2.898 2.656s2.563-1.19 2.434-2.656zm-.834-16.882a1 1 0 0 0-.056.092 4 4 0 0 1-.341.41 2 2 0 0 1-.305.303 2 2 0 0 0-.276.201 8 8 0 0 1-.604.348c-.321.119-.661.22-1.005.284a7 7 0 0 1-1.076 0 9 9 0 0 1-1.054-.284 8 8 0 0 1-.792-.43 1 1 0 0 0-.098-.064 7 7 0 0 1-.446-.376 4 4 0 0 1-.27-.258l-.071-.072a3 3 0 0 0-.228-.293 9 9 0 0 1-.405-.632 7 7 0 0 1-.375-1.026 7 7 0 0 1-.093-1.072c.043-.348.105-.686.195-1.025q.16-.388.367-.751a1 1 0 0 0 .056-.092c.107-.147.224-.284.341-.412.072-.086.155-.167.237-.246l.067-.065c.165-.11.251-.174.276-.201q.294-.189.604-.349a6.4 6.4 0 0 1 1.005-.284 7 7 0 0 1 1.076 0c.356.074.704.166 1.054.284q.406.194.792.431c.011.009.05.037.098.064q.236.182.446.376c.094.079.183.169.27.258l.071.071c.126.175.198.266.228.294q.216.308.405.632c.149.339.281.687.375 1.035.034.173.06.356.075.531l.009.255.009.276a7 7 0 0 1-.194 1.035q-.16.389-.367.752" clip-rule="evenodd"/><path fill="#fff" fill-rule="evenodd" d="m166.536 122.143 28.659 8.82c1.077.33 1.879 1.302 1.957 2.401l3.072 35.109-.001.003c-.04.279-.862 6.036-6.063 11.611-4.631 4.974-16.473 11.606-19.043 12.915l-1.302.678c-.342.183-.985.192-1.361 0l-1.42-.678c-.138-.071-.282-.137-.463-.22a29 29 0 0 1-.957-.457c-4.798-2.4-15.802-7.933-20.564-12.238-6.145-5.556-7.983-11.293-8.084-11.608l-.002-.006-3.072-35.109c-.105-1.099.518-2.071 1.537-2.401zm6.112 66.087.02.009s.009 0 .026-.009zm.377-20.389h4.506c1.471 0 2.562-1.191 2.434-2.657h-.009l-.01-.109c-.128-1.466-1.427-2.657-2.898-2.657h-4.506l-.408-4.662c3.881-1.054 6.341-4.873 6.116-8.922a1 1 0 0 0-.008-.192.4.4 0 0 0-.007-.102q-.004-.025-.006-.054c-.206-1.822-.911-3.682-2.109-5.175a11.26 11.26 0 0 0-5.118-3.636c-3.605-1.273-7.861-.11-9.983 2.757-1.225 1.658-1.835 3.518-1.832 5.652.007 1.868.697 3.865 1.811 5.459 1.072 1.529 2.597 2.876 4.308 3.627.506.219 1.009.394 1.509.54q.002.033.002.067l.002.08 1.426 16.304c.128 1.466 1.428 2.656 2.899 2.656s2.562-1.19 2.434-2.656zm-.833-16.882a.5.5 0 0 0-.056.092 4 4 0 0 1-.342.41 2.2 2.2 0 0 1-.304.303c-.166.11-.251.174-.277.201-.2.129-.393.239-.604.348-.32.119-.661.22-1.005.284a7 7 0 0 1-1.076 0 9 9 0 0 1-1.054-.284 8 8 0 0 1-.791-.43 1 1 0 0 0-.098-.064 6 6 0 0 1-.447-.376 4 4 0 0 1-.27-.258l-.071-.072a3 3 0 0 0-.228-.293 9 9 0 0 1-.404-.632 7 7 0 0 1-.375-1.026 7 7 0 0 1-.094-1.071c.043-.349.106-.687.195-1.026a7 7 0 0 1 .367-.751.5.5 0 0 0 .056-.092q.164-.22.341-.412c.072-.086.156-.167.238-.246l.066-.065c.166-.11.251-.174.277-.201q.293-.188.604-.348c.32-.119.661-.22 1.005-.284a7 7 0 0 1 1.076 0c.355.073.703.165 1.054.284q.407.193.791.43c.011.009.05.037.098.064q.237.182.447.376c.093.079.182.169.27.258l.071.072c.125.174.197.265.228.293q.215.308.404.632c.149.339.281.687.376 1.035.034.173.059.356.074.531l.009.255.01.276a7 7 0 0 1-.195 1.035q-.16.389-.366.752" clip-rule="evenodd"/><path fill="#1346CB" fill-opacity=".2" fill-rule="evenodd" d="M249.143 139.557h-37.678l.357 4.085H249.5zm1.139 13.022h-37.678l.358 4.085h37.677zm-36.539 13.022h37.678l.358 4.085h-37.678zm38.817 13.021h-37.677l.357 4.086h37.678z" clip-rule="evenodd"/><path fill="#B6CFFF" fill-rule="evenodd" d="M252.143 135.557h-37.678l.357 4.085H252.5zm1.139 13.022h-37.678l.358 4.085h37.677zm-36.539 13.022h37.678l.358 4.085h-37.678zm38.817 13.021h-37.677l.357 4.086h37.678z" clip-rule="evenodd"/><defs><linearGradient id="a" x1="59.137" x2="59.137" y1="0" y2="17.809" gradientUnits="userSpaceOnUse"><stop stop-color="#EBF3FF"/><stop offset="1" stop-color="#D4E4FF"/></linearGradient><linearGradient id="b" x1="228.313" x2="228.313" y1="-98.142" y2="338.976" gradientUnits="userSpaceOnUse"><stop stop-color="#E5EFFF"/><stop offset="1" stop-color="#F2F7FF" stop-opacity="0"/></linearGradient><linearGradient id="c" x1="1.411" x2="66.523" y1="88.093" y2="99.442" gradientUnits="userSpaceOnUse"><stop stop-color="#3E71E2"/><stop offset="1" stop-color="#4A82E8"/></linearGradient><linearGradient id="d" x1="1.411" x2="65.952" y1="77.252" y2="90.081" gradientUnits="userSpaceOnUse"><stop stop-color="#1846AE"/><stop offset="1" stop-color="#1350BF"/></linearGradient><linearGradient id="e" x1="68.945" x2="68.945" y1="0" y2="105.817" gradientUnits="userSpaceOnUse"><stop stop-color="#E7F0FF"/><stop offset="1" stop-color="#F4F8FF"/></linearGradient><linearGradient id="f" x1="119.119" x2="119.119" y1="0" y2="173.566" gradientUnits="userSpaceOnUse"><stop stop-color="#EBF3FF"/><stop offset="1" stop-color="#D4E4FF"/></linearGradient><linearGradient id="g" x1="119.119" x2="119.119" y1="0" y2="173.566" gradientUnits="userSpaceOnUse"><stop stop-color="#fff"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="h" x1="206.221" x2="206.221" y1="87.856" y2="223.769" gradientUnits="userSpaceOnUse"><stop stop-color="#3D70F7"/><stop offset="1" stop-color="#7CAEFF"/></linearGradient><linearGradient id="i" x1="206.221" x2="206.221" y1="87.856" y2="223.769" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="j" x1="54" x2="54" y1="0" y2="108" gradientUnits="userSpaceOnUse"><stop stop-color="#E7F0FF"/><stop offset="1" stop-color="#F4F8FF"/></linearGradient></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="design-iconfont" viewBox="0 0 383 309" width="24" height="24" preserveAspectRatio="xMidYMid meet"><path fill="url(#a)" d="m32.505 148.18 36.78 85.112c25.18 58.267 91.725 89.125 148.315 68.777l85.675-30.806c91.652-32.954 86.59-163.719-7.961-205.65L172.859 11.307C80.133-29.813-7.488 55.635 32.505 148.18"/><rect width="118.274" height="17.809" fill="#81ACFA" rx="4" transform="matrix(1 0 .08716 .9962 161.633 272.588)"/><rect width="118.274" height="17.809" fill="#3A4E7A" rx="4" transform="matrix(1 0 .08716 .9962 161.633 272.588)"/><rect width="118.274" height="17.809" fill="url(#b)" rx="4" transform="matrix(1 0 .08716 .9962 162.633 269.588)"/><rect width="118.274" height="17.809" fill="url(#c)" rx="4" transform="matrix(1 0 .08716 .9962 162.633 269.588)"/><rect width="68.502" height="88.093" fill="url(#d)" rx="2" transform="matrix(1 0 .08716 .9962 180.84 189.236)"/><rect width="68.502" height="77.252" fill="#051539" rx="2" transform="matrix(1 0 .08716 .9962 180.84 189.236)"/><rect width="137.89" height="105.817" fill="url(#e)" rx="10" transform="matrix(1 0 .08716 .9962 .076 169.044)"/><rect width="137.89" height="105.817" fill="url(#f)" rx="10" transform="matrix(1 0 .08716 .9962 .076 169.044)"/><g opacity=".3"><path fill="#B0C6F8" fill-rule="evenodd" d="M32.416 185.888a1 1 0 0 0-1 1v4.978a1 1 0 0 0 1 1H65.98a1 1 0 0 0 1-1v-4.978a1 1 0 0 0-1-1zm39.964 0a.9.9 0 0 0-.913.996l.434 4.959c.048.551.535.997 1.087.997h11.475a.9.9 0 0 0 .913-.997l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm-38.814 13.156a.9.9 0 0 0-.912.996l.433 4.959c.049.55.535.996 1.088.996h33.564a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm39.965 0a.9.9 0 0 0-.913.996l.434 4.959c.048.55.535.996 1.087.996h11.475a.9.9 0 0 0 .912-.996l-.433-4.959a1.11 1.11 0 0 0-1.088-.996z" clip-rule="evenodd"/><path fill="#CEDCFF" fill-rule="evenodd" d="M34.717 212.2a.9.9 0 0 0-.913.996l.434 4.959c.048.55.535.996 1.087.996H68.89a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996zm39.964 0a.9.9 0 0 0-.913.996l.434 4.959c.049.55.535.996 1.088.996h11.474a.9.9 0 0 0 .913-.996l-.434-4.959a1.11 1.11 0 0 0-1.087-.996z" clip-rule="evenodd"/><path fill="#1CCDB8" d="M52.416 238.875c.698-1.125 2.373-1.125 3.268 0l15.628 19.634c1.05 1.319.262 3.141-1.36 3.141h-27.82c-1.622 0-2.728-1.822-1.909-3.141z"/><path fill="#1CCDB8" d="M75.608 246.101c.699-1.124 2.373-1.124 3.268 0l9.876 12.408c1.05 1.319.263 3.141-1.359 3.141h-17.58c-1.622 0-2.73-1.822-1.91-3.141zm3.505-13.751a3.203 2.935 42.502 1 0 .535 6.12 3.203 2.935 42.502 1 0-.535-6.12"/></g><path fill="#000F25" fill-opacity=".1" fill-rule="evenodd" d="M145.514 268.054H92.96c-6.628 0-12.655-5.332-13.463-11.91l-10.694-87.1h50.164c5.523 0 10.779 4.443 11.74 9.924l14.93 85.166c.244 1.392.188 2.718-.123 3.92" clip-rule="evenodd"/><rect width="238.238" height="173.566" fill="#81ACFA" rx="12" transform="matrix(1 0 .08716 .9962 84.719 85.475)"/><rect width="238.238" height="173.566" fill="#3A4E7A" rx="12" transform="matrix(1 0 .08716 .9962 84.719 85.475)"/><rect width="237.238" height="172.566" x=".544" y=".498" fill="url(#g)" stroke="url(#h)" rx="11.5" transform="matrix(1 0 .08716 .9962 86.675 83.477)"/><path fill="url(#i)" stroke="url(#j)" d="M101.526 88.354h209.477c5.247 0 9.871 4.237 10.328 9.464l10.845 123.958a1.35 1.35 0 0 1-1.369 1.495H105.33a1.666 1.666 0 0 1-1.631-1.495L92.854 97.818c-.457-5.227 3.425-9.464 8.672-9.464Z"/><path fill="#071435" fill-rule="evenodd" d="M101.481 87.856c-5.522 0-9.22 4.443-8.26 9.924l.757 4.315c.822-3.673 3.978-6.27 8.201-6.27h210.54c4.595 0 9.005 3.075 10.91 7.265l-.93-5.31c-.961-5.481-6.217-9.924-11.74-9.924z" clip-rule="evenodd"/><rect width="108" height="108" fill="#02132D" fill-opacity=".5" rx="54" transform="matrix(1 0 .08716 .9962 246.5 74.57)"/><rect width="107" height="107" x=".544" y=".498" fill="url(#k)" stroke="#7384AD" rx="53.5" transform="matrix(1 0 .08716 .9962 264.88 56.617)"/><path fill="#434F6F" fill-rule="evenodd" d="M332.098 96.246c0 7.312-5.994 13.26-13.362 13.26-7.367 0-13.361-5.948-13.361-13.26s5.994-13.26 13.361-13.26 13.362 5.948 13.362 13.26m-29.466 46.337c-5.999-3.171-9.589-7.472-9.982-11.957-.194-2.221.403-4.42 1.757-6.471s3.437-3.916 6.133-5.486c2.696-1.571 5.95-2.816 9.577-3.666s7.556-1.287 11.562-1.287c4.007 0 8.012.437 11.788 1.287s7.248 2.095 10.219 3.666 5.38 3.434 7.093 5.486 2.694 4.25 2.888 6.471c.393 4.485-2.445 8.786-7.889 11.957s-13.048 4.953-21.14 4.953c-8.091 0-16.007-1.782-22.006-4.953" clip-rule="evenodd"/><path fill="#6599FF" fill-rule="evenodd" d="M337.098 90.246c0 7.312-5.994 13.26-13.362 13.26-7.367 0-13.361-5.948-13.361-13.26s5.994-13.26 13.361-13.26 13.362 5.948 13.362 13.26m-29.466 46.337c-5.999-3.171-9.589-7.472-9.982-11.957-.194-2.221.403-4.42 1.757-6.471s3.437-3.916 6.133-5.486c2.696-1.571 5.95-2.816 9.577-3.666s7.556-1.287 11.562-1.287c4.007 0 8.012.437 11.788 1.287s7.248 2.095 10.219 3.666 5.38 3.434 7.093 5.486 2.694 4.25 2.888 6.471c.393 4.485-2.445 8.786-7.889 11.957s-13.048 4.953-21.14 4.953c-8.091 0-16.007-1.782-22.006-4.953" clip-rule="evenodd"/><path fill="#031031" fill-opacity=".5" fill-rule="evenodd" d="m161.055 128.365 28.66 8.821c1.076.33 1.878 1.301 1.956 2.4l3.072 35.11v.003c-.04.279-.863 6.036-6.064 11.611-4.631 4.974-16.473 11.605-19.042 12.915l-1.302.678c-.343.183-.986.192-1.361 0l-1.421-.678a10 10 0 0 0-.462-.22 27 27 0 0 1-.957-.458c-4.799-2.399-15.802-7.932-20.564-12.237-6.146-5.556-7.984-11.293-8.085-11.608l-.002-.006-3.072-35.11c-.105-1.099.518-2.07 1.537-2.4zm6.113 66.088.019.009s.009 0 .026-.009zm.377-20.389h4.505c1.471 0 2.562-1.191 2.435-2.657h-.009l-.01-.109c-.128-1.466-1.428-2.657-2.899-2.657h-4.505l-.408-4.662c3.88-1.054 6.341-4.873 6.115-8.922.004-.064-.002-.128-.007-.192q.002-.054-.007-.102l-.007-.054c-.206-1.823-.911-3.682-2.108-5.175a11.26 11.26 0 0 0-5.118-3.636c-3.605-1.273-7.862-.11-9.983 2.757-1.225 1.658-1.835 3.518-1.832 5.651.007 1.869.697 3.866 1.811 5.46 1.072 1.529 2.596 2.876 4.308 3.627.506.219 1.009.393 1.509.54q.002.033.001.067l.002.08 1.427 16.304c.128 1.466 1.427 2.656 2.898 2.656s2.563-1.19 2.434-2.656zm-.834-16.882a1 1 0 0 0-.056.092 4 4 0 0 1-.341.41 2 2 0 0 1-.305.303 2 2 0 0 0-.276.201 8 8 0 0 1-.604.348c-.321.119-.661.22-1.005.284a7 7 0 0 1-1.076 0 9 9 0 0 1-1.054-.284 8 8 0 0 1-.792-.43 1 1 0 0 0-.098-.064 7 7 0 0 1-.446-.376 4 4 0 0 1-.27-.258l-.071-.072a3 3 0 0 0-.228-.293 9 9 0 0 1-.405-.632 7 7 0 0 1-.375-1.026 7 7 0 0 1-.093-1.072c.043-.348.105-.686.195-1.025q.16-.388.367-.751a1 1 0 0 0 .056-.092c.107-.147.224-.284.341-.412.072-.086.155-.167.237-.246l.067-.065c.165-.11.251-.174.276-.201q.294-.189.604-.349a6.4 6.4 0 0 1 1.005-.284 7 7 0 0 1 1.076 0c.356.074.704.166 1.055.284q.405.194.791.431c.011.009.05.037.098.064q.236.182.446.376c.094.079.183.169.27.258l.071.071c.126.175.198.266.228.294q.216.308.405.632c.149.339.281.687.375 1.035.034.173.06.356.075.531l.009.255.009.276a7 7 0 0 1-.194 1.035q-.16.389-.367.752" clip-rule="evenodd"/><path fill="#8092EE" fill-rule="evenodd" d="m166.536 122.143 28.659 8.82c1.077.33 1.879 1.302 1.957 2.401l3.072 35.109-.001.003c-.04.279-.862 6.036-6.063 11.611-4.631 4.974-16.473 11.606-19.043 12.915l-1.302.678c-.342.183-.985.192-1.361 0l-1.42-.678c-.138-.071-.282-.137-.463-.22a29 29 0 0 1-.957-.457c-4.798-2.4-15.802-7.933-20.564-12.238-6.145-5.556-7.983-11.293-8.084-11.608l-.002-.006-3.072-35.109c-.105-1.099.518-2.071 1.537-2.401zm6.112 66.087.02.009s.009 0 .026-.009zm.377-20.389h4.506c1.471 0 2.562-1.191 2.434-2.657h-.009l-.01-.109c-.128-1.466-1.427-2.657-2.898-2.657h-4.506l-.408-4.662c3.881-1.054 6.341-4.873 6.116-8.922a1 1 0 0 0-.008-.192.4.4 0 0 0-.007-.102q-.004-.025-.006-.054c-.206-1.822-.911-3.682-2.109-5.175a11.26 11.26 0 0 0-5.118-3.636c-3.605-1.273-7.861-.11-9.983 2.757-1.225 1.658-1.835 3.518-1.832 5.652.007 1.868.697 3.865 1.811 5.459 1.072 1.529 2.597 2.876 4.308 3.627.506.219 1.009.394 1.509.54q.002.033.002.067l.002.08 1.426 16.304c.128 1.466 1.428 2.656 2.899 2.656s2.562-1.19 2.434-2.656zm-.833-16.882a.5.5 0 0 0-.056.092 4 4 0 0 1-.342.41 2.2 2.2 0 0 1-.304.303c-.166.11-.251.174-.277.201-.2.129-.393.239-.604.348-.32.119-.661.22-1.005.284a7 7 0 0 1-1.076 0 9 9 0 0 1-1.054-.284 8 8 0 0 1-.791-.43 1 1 0 0 0-.098-.064 6 6 0 0 1-.447-.376 4 4 0 0 1-.27-.258l-.071-.072a3 3 0 0 0-.228-.293 9 9 0 0 1-.404-.632 7 7 0 0 1-.375-1.026 7 7 0 0 1-.094-1.071c.043-.349.106-.687.195-1.026a7 7 0 0 1 .367-.751.5.5 0 0 0 .056-.092q.164-.22.341-.412c.072-.086.156-.167.238-.246l.066-.065c.166-.11.251-.174.277-.201q.293-.188.604-.348c.32-.119.661-.22 1.005-.284a7 7 0 0 1 1.076 0c.355.073.703.165 1.054.284q.407.193.791.43c.011.009.05.037.098.064q.237.182.447.376c.093.079.182.169.27.258l.071.072c.125.174.197.265.228.293q.215.308.404.632c.149.339.281.687.376 1.035.034.173.059.356.074.531l.009.255.01.276a7 7 0 0 1-.195 1.035q-.16.389-.366.752" clip-rule="evenodd"/><path fill="#031031" fill-opacity=".5" fill-rule="evenodd" d="M249.143 139.557h-37.678l.357 4.085H249.5zm1.139 13.022h-37.678l.358 4.085h37.677zm-36.539 13.022h37.678l.358 4.085h-37.678zm38.817 13.021h-37.677l.357 4.086h37.678z" clip-rule="evenodd"/><path fill="#7887D2" fill-rule="evenodd" d="M252.143 135.557h-37.678l.357 4.085H252.5zm1.139 13.022h-37.678l.358 4.085h37.677zm-36.539 13.022h37.678l.358 4.085h-37.678zm38.817 13.021h-37.677l.357 4.086h37.678z" clip-rule="evenodd"/><defs><linearGradient id="a" x1="228.313" x2="228.313" y1="-98.142" y2="338.976" gradientUnits="userSpaceOnUse"><stop stop-color="#363B42"/><stop offset="1" stop-color="#363B42" stop-opacity="0"/></linearGradient><linearGradient id="b" x1="59.137" x2="59.137" y1="0" y2="17.809" gradientUnits="userSpaceOnUse"><stop stop-color="#EBF3FF"/><stop offset="1" stop-color="#D4E4FF"/></linearGradient><linearGradient id="c" x1="59.137" x2="59.137" y1="0" y2="17.809" gradientUnits="userSpaceOnUse"><stop stop-color="#7D87A1"/><stop offset="1" stop-color="#97A1BB"/></linearGradient><linearGradient id="d" x1="1.411" x2="66.523" y1="88.093" y2="99.442" gradientUnits="userSpaceOnUse"><stop stop-color="#1E3B7A"/><stop offset="1" stop-color="#153F8B"/></linearGradient><linearGradient id="e" x1="68.945" x2="68.945" y1="0" y2="105.817" gradientUnits="userSpaceOnUse"><stop stop-color="#E7F0FF"/><stop offset="1" stop-color="#F4F8FF"/></linearGradient><linearGradient id="f" x1="68.945" x2="68.945" y1="0" y2="105.817" gradientUnits="userSpaceOnUse"><stop stop-color="#586075"/><stop offset="1" stop-color="#65749C"/></linearGradient><linearGradient id="g" x1="119.119" x2="119.119" y1="0" y2="173.566" gradientUnits="userSpaceOnUse"><stop stop-color="#7D87A1"/><stop offset="1" stop-color="#97A1BB"/></linearGradient><linearGradient id="h" x1="119.119" x2="119.119" y1="0" y2="173.566" gradientUnits="userSpaceOnUse"><stop stop-color="#959FB9"/><stop offset="1" stop-color="#959FB9" stop-opacity="0"/></linearGradient><linearGradient id="i" x1="206.221" x2="206.221" y1="87.856" y2="223.769" gradientUnits="userSpaceOnUse"><stop stop-color="#0C2054"/><stop offset="1" stop-color="#113C81"/></linearGradient><linearGradient id="j" x1="206.221" x2="206.221" y1="87.856" y2="223.769" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#9DA8E1"/></linearGradient><linearGradient id="k" x1="54" x2="54" y1="0" y2="108" gradientUnits="userSpaceOnUse"><stop stop-color="#586075"/><stop offset="1" stop-color="#65749C"/></linearGradient></defs></svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { useUserStore } from '@/stores';
|
|
2
|
+
import { useUserStore } from '@/features/stores';
|
|
3
3
|
|
|
4
4
|
defineOptions({
|
|
5
5
|
name: 'NotPermission',
|
|
@@ -31,11 +31,9 @@ onMounted(() => {
|
|
|
31
31
|
}, 1000);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
router.push(
|
|
37
|
-
name: 'login',
|
|
38
|
-
});
|
|
34
|
+
function goBack() {
|
|
35
|
+
userStore.logout();
|
|
36
|
+
router.push('/login');
|
|
39
37
|
}
|
|
40
38
|
</script>
|
|
41
39
|
|
|
@@ -58,16 +56,14 @@ async function goBack() {
|
|
|
58
56
|
</div>
|
|
59
57
|
</template>
|
|
60
58
|
|
|
61
|
-
<style
|
|
59
|
+
<style scoped>
|
|
62
60
|
.noPermissionIcon {
|
|
63
|
-
background: url("
|
|
61
|
+
background: url("./403.svg") no-repeat;
|
|
64
62
|
background-size: 100% 100%;
|
|
65
63
|
}
|
|
66
64
|
|
|
67
|
-
[data-theme="dark"] {
|
|
68
|
-
.
|
|
69
|
-
|
|
70
|
-
background-size: 100% 100%;
|
|
71
|
-
}
|
|
65
|
+
[data-theme="dark"] .noPermissionIcon {
|
|
66
|
+
background: url("./403_dark.svg") no-repeat;
|
|
67
|
+
background-size: 100% 100%;
|
|
72
68
|
}
|
|
73
69
|
</style>
|
|
@@ -1,23 +1,44 @@
|
|
|
1
|
-
import type { Router } from 'vue-router';
|
|
1
|
+
import type { Router, RouteRecordRaw } from 'vue-router';
|
|
2
2
|
import {
|
|
3
3
|
useFavoritesStore,
|
|
4
4
|
useRouteStore,
|
|
5
5
|
useSettingsStore,
|
|
6
6
|
useTabbarStore,
|
|
7
7
|
useUserStore,
|
|
8
|
-
} from '@/stores';
|
|
8
|
+
} from '@/features/stores';
|
|
9
|
+
import { cleanup } from '@/utils';
|
|
10
|
+
|
|
11
|
+
const NotPermissionRoute: RouteRecordRaw = {
|
|
12
|
+
path: '/not-permission',
|
|
13
|
+
name: 'NotPermission',
|
|
14
|
+
component: () => import('./pages/not-permission/index.vue'),
|
|
15
|
+
meta: {
|
|
16
|
+
whiteList: true,
|
|
17
|
+
title: '无权限访问',
|
|
18
|
+
},
|
|
19
|
+
};
|
|
9
20
|
|
|
10
21
|
/** 权限路由守卫 */
|
|
11
|
-
export function
|
|
22
|
+
export function setupRouterGuard(router: Router) {
|
|
12
23
|
const userStore = useUserStore();
|
|
13
24
|
const routeStore = useRouteStore();
|
|
14
25
|
const settingsStore = useSettingsStore();
|
|
15
26
|
const tabbarStore = useTabbarStore();
|
|
16
27
|
const favoritesStore = useFavoritesStore();
|
|
17
28
|
|
|
29
|
+
let isRouteAdded = false;
|
|
30
|
+
|
|
18
31
|
router.beforeEach(async (to, from) => {
|
|
19
32
|
const isAuthenticated = userStore.isLogin;
|
|
20
33
|
|
|
34
|
+
if (!isRouteAdded) {
|
|
35
|
+
if (!router.hasRoute(NotPermissionRoute.name!)) {
|
|
36
|
+
router.addRoute(NotPermissionRoute);
|
|
37
|
+
}
|
|
38
|
+
isRouteAdded = true;
|
|
39
|
+
return { ...to, replace: true };
|
|
40
|
+
}
|
|
41
|
+
|
|
21
42
|
// 是否已登录
|
|
22
43
|
if (!isAuthenticated) {
|
|
23
44
|
// 白名单路由直接进入
|
|
@@ -33,23 +54,32 @@ export function createAuthGuard(router: Router) {
|
|
|
33
54
|
|
|
34
55
|
// 是否已根据权限动态生成并注册路由
|
|
35
56
|
if (!routeStore.isGenerate) {
|
|
36
|
-
await Promise.allSettled([
|
|
37
|
-
// 获取用户组织列表
|
|
38
|
-
userStore.getUserInfo(),
|
|
57
|
+
const res = await Promise.allSettled([
|
|
39
58
|
// 获取用户偏好设置
|
|
40
59
|
settingsStore.settings.app.enableSettingPreferences && settingsStore.getPreferencesAll(),
|
|
60
|
+
// 获取用户组织列表
|
|
61
|
+
userStore.getUserInfo(),
|
|
41
62
|
]);
|
|
42
63
|
|
|
43
|
-
|
|
64
|
+
if (res.some(e => e.status === 'rejected')) {
|
|
65
|
+
cleanup();
|
|
66
|
+
return { name: 'Login' };
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const res2 = await Promise.allSettled([
|
|
44
70
|
// 复原固定标签页
|
|
45
71
|
(tabbarStore as any).recoveryStorage(),
|
|
46
72
|
// 复原收藏夹
|
|
47
73
|
(favoritesStore as any).recoveryStorage(),
|
|
48
74
|
// 生成动态路由
|
|
49
|
-
|
|
50
|
-
settingsStore.settings.app.routeBaseOn === 'backend' && routeStore.generateRoutesAtBack(),
|
|
75
|
+
routeStore.generateRoutes(),
|
|
51
76
|
]);
|
|
52
77
|
|
|
78
|
+
if (res2.some(e => e.status === 'rejected')) {
|
|
79
|
+
cleanup();
|
|
80
|
+
return { name: 'Login' };
|
|
81
|
+
}
|
|
82
|
+
|
|
53
83
|
// 注册并记录路由数据
|
|
54
84
|
// 记录的数据会在登出时会使用到,不使用 router.removeRoute 是考虑配置的路由可能不一定有设置 name
|
|
55
85
|
// 则通过调用 router.addRoute() 返回的回调进行删除
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import RiLogoutBoxLine from '~icons/ri/logout-box-line';
|
|
3
|
+
import BackTop from './components/BackTop/index.vue';
|
|
4
|
+
import LayoutContent from './components/Content/index.vue';
|
|
5
|
+
import Copyright from './components/Copyright/index.vue';
|
|
6
|
+
import LayoutHeader from './components/Header/index.vue';
|
|
7
|
+
|
|
8
|
+
import SettingBar from './components/SettingBar/index.vue';
|
|
9
|
+
// import Sidebar from './components/Sidebar/index.vue';
|
|
10
|
+
import MainSidebar from './components/Sidebar/MainSidebar.vue';
|
|
11
|
+
import SubSidebar from './components/Sidebar/SubSidebar.vue';
|
|
12
|
+
import Topbar from './components/Topbar/index.vue';
|
|
13
|
+
import { useContext } from './composables/useContext';
|
|
14
|
+
import { useGetSidebarActualWidth } from './composables/useGetComputedStyle';
|
|
15
|
+
import { useHotkey } from './composables/useHotkey';
|
|
16
|
+
import useWatermark from './composables/useWatermark';
|
|
17
|
+
|
|
18
|
+
defineOptions({
|
|
19
|
+
name: 'Layout',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const routeInfo = useRoute();
|
|
23
|
+
const { settingsStore, menuStore } = useContext();
|
|
24
|
+
const { mainSidebarActualWidth, subSidebarActualWidth } = useGetSidebarActualWidth();
|
|
25
|
+
|
|
26
|
+
useHotkey({
|
|
27
|
+
settingsStore,
|
|
28
|
+
menuStore,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
useWatermark();
|
|
32
|
+
|
|
33
|
+
watch(() => settingsStore.settings.menu.subMenuCollapse, (val) => {
|
|
34
|
+
if (settingsStore.mode === 'mobile') {
|
|
35
|
+
if (!val) {
|
|
36
|
+
document.body.classList.add('overflow-hidden');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
document.body.classList.remove('overflow-hidden');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
watch(() => routeInfo.path, () => {
|
|
45
|
+
if (settingsStore.mode === 'mobile') {
|
|
46
|
+
settingsStore.$patch((state) => {
|
|
47
|
+
state.settings.menu.subMenuCollapse = true;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<div
|
|
55
|
+
class="layout"
|
|
56
|
+
:style="{
|
|
57
|
+
'--g-main-sidebar-actual-width': mainSidebarActualWidth,
|
|
58
|
+
'--g-sub-sidebar-actual-width': subSidebarActualWidth,
|
|
59
|
+
}"
|
|
60
|
+
>
|
|
61
|
+
<div id="app-main" :class="{ 'main-page-maximize': settingsStore.mainPageMaximizeStatus }">
|
|
62
|
+
<slot name="header">
|
|
63
|
+
<LayoutHeader />
|
|
64
|
+
</slot>
|
|
65
|
+
|
|
66
|
+
<div class="wrapper">
|
|
67
|
+
<div
|
|
68
|
+
class="sidebar-container"
|
|
69
|
+
:class="{ show: settingsStore.mode === 'mobile' && !settingsStore.settings.menu.subMenuCollapse }"
|
|
70
|
+
>
|
|
71
|
+
<!-- TODO 这种写法会导致侧边栏模式的布局下,有样式问题 -->
|
|
72
|
+
<!-- <slot name="sidebar">
|
|
73
|
+
<Sidebar />
|
|
74
|
+
</slot> -->
|
|
75
|
+
|
|
76
|
+
<MainSidebar />
|
|
77
|
+
<SubSidebar />
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div
|
|
81
|
+
class="sidebar-mask"
|
|
82
|
+
:class="{ show: settingsStore.mode === 'mobile' && !settingsStore.settings.menu.subMenuCollapse }"
|
|
83
|
+
@click="settingsStore.toggleSidebarCollapse()"
|
|
84
|
+
/>
|
|
85
|
+
|
|
86
|
+
<div class="main-container" :style="{ 'padding-bottom': routeInfo.meta.paddingBottom }">
|
|
87
|
+
<slot name="topbar">
|
|
88
|
+
<Topbar />
|
|
89
|
+
</slot>
|
|
90
|
+
|
|
91
|
+
<div class="main">
|
|
92
|
+
<div
|
|
93
|
+
v-show="settingsStore.mainPageMaximizeStatus"
|
|
94
|
+
class="exit-main-page-maximize"
|
|
95
|
+
@click="settingsStore.setMainPageMaximize()"
|
|
96
|
+
>
|
|
97
|
+
<RiLogoutBoxLine />
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<slot>
|
|
101
|
+
<LayoutContent />
|
|
102
|
+
</slot>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<slot name="footer">
|
|
106
|
+
<Copyright />
|
|
107
|
+
</slot>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<SettingBar />
|
|
113
|
+
<BackTop />
|
|
114
|
+
</div>
|
|
115
|
+
</template>
|
|
116
|
+
|
|
117
|
+
<style scoped>
|
|
118
|
+
[data-app-width-mode="adaption"] #app-main {
|
|
119
|
+
--at-apply: w-full;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[data-app-width-mode="adaption-min-width"] #app-main {
|
|
123
|
+
width: max(var(--g-app-width), 100%);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
[data-app-width-mode="center"] #app-main {
|
|
127
|
+
--at-apply: w-[--g-app-width];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
[data-app-width-mode="center-max-width"] #app-main {
|
|
131
|
+
width: min(var(--g-app-width), 100%);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[data-mode="mobile"] #app-main {
|
|
135
|
+
--at-apply: w-full;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
[data-mode="mobile"] .sidebar-container {
|
|
139
|
+
transform: translateX(calc((var(--g-main-sidebar-width) + var(--g-sub-sidebar-width)) * -1));
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
[data-mode="mobile"] .sidebar-container.show {
|
|
143
|
+
transform: translateX(0);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
[data-mode="mobile"] .main-container {
|
|
147
|
+
margin-left: 0 !important;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[data-mode="mobile"][data-menu-mode="single"] .sidebar-container {
|
|
151
|
+
transform: translateX(calc(var(--g-sub-sidebar-width) * -1));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
[data-mode="mobile"][data-menu-mode="single"] .sidebar-container.show {
|
|
155
|
+
transform: translateX(0);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.layout {
|
|
159
|
+
--at-apply: h-full;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
#app-main {
|
|
163
|
+
--at-apply: h-full bg-[--g-bg] mx-auto my-0;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
#app-main.main-page-maximize header,
|
|
167
|
+
#app-main.main-page-maximize .sidebar-container {
|
|
168
|
+
--at-apply: hidden;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#app-main.main-page-maximize .wrapper {
|
|
172
|
+
--at-apply: pt-0;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
#app-main.main-page-maximize .wrapper .main-container {
|
|
176
|
+
--at-apply: ml-0;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
#app-main.main-page-maximize .wrapper .main-container .topbar-container {
|
|
180
|
+
--at-apply: hidden;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
#app-main.main-page-maximize .wrapper .main-container .main {
|
|
184
|
+
--at-apply: m-0;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#app-main.main-page-maximize :deep([data-fixed-calc-width]) {
|
|
188
|
+
--at-apply: w-full -translate-x-2/4;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.wrapper {
|
|
192
|
+
--at-apply: relative w-full h-full;
|
|
193
|
+
transition: padding-top 0.3s;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.wrapper .sidebar-container {
|
|
197
|
+
--at-apply: fixed top-0 bottom-0 z-501 flex;
|
|
198
|
+
width: calc(var(--g-main-sidebar-actual-width) + var(--g-sub-sidebar-actual-width));
|
|
199
|
+
box-shadow: -1px 0 0 0 var(--g-border-color), 1px 0 0 0 var(--g-border-color);
|
|
200
|
+
transition: width 0.3s, transform 0.3s, box-shadow 0.3s, top 0.3s;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.wrapper .sidebar-mask {
|
|
204
|
+
--at-apply: fixed z-[500] w-full h-full invisible opacity-0 left-0 top-0;
|
|
205
|
+
|
|
206
|
+
background-size: 4px 4px;
|
|
207
|
+
backdrop-filter: saturate(50%) blur(4px);
|
|
208
|
+
transition: all 0.2s;
|
|
209
|
+
background-image: radial-gradient(transparent 1px, rgb(0 0 0 / 30%) 1px);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.wrapper .sidebar-mask.show {
|
|
213
|
+
--at-apply: visible op-100;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.wrapper .main-sidebar-container:not(.main-sidebar-leave-active) + .sub-sidebar-container {
|
|
217
|
+
--at-apply: left-[--g-main-sidebar-width];
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.wrapper .main-container {
|
|
221
|
+
--at-apply: flex flex-col h-0 min-h-full;
|
|
222
|
+
margin-left: calc(var(--g-main-sidebar-actual-width) + var(--g-sub-sidebar-actual-width));
|
|
223
|
+
box-shadow: -1px 0 0 0 var(--g-border-color), 1px 0 0 0 var(--g-border-color);
|
|
224
|
+
transition: margin-left 0.3s, background-color 0.3s, box-shadow 0.3s;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.wrapper .main-container .main {
|
|
228
|
+
--at-apply: relative flex-[auto] basis-0 h-0;
|
|
229
|
+
transition: 0.3s;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.wrapper .main-container .main .exit-main-page-maximize {
|
|
233
|
+
--at-apply: bg-stone-7 dark:bg-stone-3 text-stone-3 dark:text-stone-7
|
|
234
|
+
op-50 hover:op-100 transition-opacity fixed z-[1000] w-20 h-20 cursor-pointer
|
|
235
|
+
rounded-[50%] -right-10 -top-10;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.wrapper .main-container .main .exit-main-page-maximize svg {
|
|
239
|
+
--at-apply: absolute bottom-4 left-4;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.wrapper .main-container .topbar-container.has-tabbar + .main {
|
|
243
|
+
margin: var(--g-tabbar-height) 0 0;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.wrapper .main-container .topbar-container.has-toolbar + .main {
|
|
247
|
+
margin: var(--g-toolbar-height) 0 0;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.wrapper .main-container .topbar-container.has-tabbar.has-toolbar + .main {
|
|
251
|
+
margin: calc(var(--g-tabbar-height) + var(--g-toolbar-height)) 0 0;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
header:not(.header-leave-active) + .wrapper {
|
|
255
|
+
--at-apply: pt-[--g-header-height];
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
header:not(.header-leave-active) + .wrapper .sidebar-container {
|
|
259
|
+
--at-apply: top-[--g-header-height];
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
header:not(.header-leave-active) + .wrapper .sidebar-container :deep(.sidebar-logo) {
|
|
263
|
+
--at-apply: hidden;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
header:not(.header-leave-active) + .wrapper .main-container .topbar-container {
|
|
267
|
+
--at-apply: top-[--g-header-height];
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
header:not(.header-leave-active) + .wrapper .main-container .topbar-container :deep(.tools) {
|
|
271
|
+
--at-apply: hidden;
|
|
272
|
+
}
|
|
273
|
+
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 190 170" preserveAspectRatio="xMidYMid meet"><mask id="a" width="190" height="170" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#D9D9D9" d="M0 0h190v170H0z"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="95" cy="84.706" fill="url(#c)" fill-opacity=".8" rx="65" ry="64.706" shape-rendering="crispEdges"/></g><g filter="url(#d)"><rect width="146" height="98" x="22" y="35" fill="#fff" rx="3.065"/><rect width="146" height="98" x="22" y="35" fill="url(#e)" rx="3.065"/></g><rect width="101" height="6" x="58" y="78.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="101" height="6" x="58" y="90.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="101" height="6" x="58" y="102.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="101" height="6" x="58" y="114.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="101" height="6" x="58" y="54.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="101" height="6" x="58" y="66.706" fill="#EEF2F6" opacity=".7" rx="1.022"/><rect width="9.254" height="4.083" x="66.193" y="39.46" fill="#ADBACC" opacity=".499" rx="2.042"/><path fill="#F2F4F6" d="M22 44.188h28.789V133h-25.19C23.61 133 22 131.629 22 129.938z"/><rect width="26.732" height="8.167" x="23.028" y="54.907" fill="#06F" fill-opacity=".16" rx="1.022"/><rect width="20.563" height="3.063" x="26.112" y="57.458" fill="#176DE6" rx=".511"/><path fill="#176DE6" d="M23.028 57.458h.223c.286 0 .429 0 .538.056a.5.5 0 0 1 .223.223c.056.11.056.252.056.538v1.428c0 .286 0 .43-.056.539a.5.5 0 0 1-.223.223c-.11.055-.252.055-.538.055h-.141c-.029 0-.043 0-.054-.005a.05.05 0 0 1-.022-.022c-.006-.011-.006-.026-.006-.054z"/><rect width="14.394" height="3.063" x="26.112" y="49.291" fill="#D8E0EB" rx=".511"/><rect width="14.394" height="3.063" x="26.112" y="65.625" fill="#D8E0EB" rx=".511"/><rect width="14.394" height="3.063" x="26.112" y="73.792" fill="#D8E0EB" rx=".511"/><rect width="14.394" height="3.063" x="26.112" y="81.958" fill="#D8E0EB" rx=".511"/><rect width="14.394" height="3.063" x="26.112" y="90.125" fill="#D8E0EB" rx=".511"/><rect width="14.394" height="3.063" x="26.112" y="98.292" fill="#D8E0EB" rx=".511"/><rect width="12.338" height="3.063" x="26.112" y="126.875" fill="#D8E0EB" rx=".511"/><ellipse cx="27.655" cy="39.594" fill="#fff" opacity=".747" rx="1.542" ry="1.531"/><ellipse cx="33.824" cy="39.594" fill="#fff" opacity=".747" rx="1.542" ry="1.531"/><ellipse cx="39.993" cy="39.594" fill="#fff" opacity=".747" rx="1.542" ry="1.531"/><g filter="url(#f)"><path fill="#fff" d="M22 38.065A3.064 3.064 0 0 1 25.064 35h139.871A3.065 3.065 0 0 1 168 38.065v8.164H22z"/><path fill="url(#g)" d="M22 38.065A3.064 3.064 0 0 1 25.064 35h139.871A3.065 3.065 0 0 1 168 38.065v8.164H22z"/></g><rect width="21.592" height="3.063" x="30.226" y="39.083" fill="#CFD8E5" opacity=".7" rx="1.022"/><rect width="8.225" height="3.063" x="151.549" y="39.083" fill="#CFD8E5" opacity=".7" rx="1.022"/><circle cx="44.581" cy="25.29" r="1.935" fill="#D9E8FD"/><circle cx="49.097" cy="22.064" r="1.29" fill="#D9E8FD"/><circle cx="178.129" cy="96.903" r="3.871" fill="#D9E8FD"/><circle cx="176.839" cy="86.581" r="1.29" fill="#D9E8FD"/><g filter="url(#h)"><rect width="76" height="88" x="100" y="53" fill="#fff" rx="3.065"/><rect width="76" height="88" x="100" y="53" fill="url(#i)" rx="3.065"/><rect width="76" height="88" x="100" y="53" fill="#F5F7FA" rx="3.065"/><rect width="76" height="88" x="100" y="53" stroke="#E6E9ED" rx="3.065"/></g><rect width="64" height="21" x="106" y="60.706" fill="#fff" rx="2"/><rect width="9" height="9" x="110" y="64.206" fill="#3AC27D" opacity=".15" rx="2"/><path fill="#30B471" fill-rule="evenodd" d="M116.96 66.175h-4.92a.33.33 0 0 0-.255.1.35.35 0 0 0-.097.262v4.338a.35.35 0 0 0 .097.262c.067.07.16.105.255.1h4.92a.33.33 0 0 0 .255-.1.35.35 0 0 0 .097-.262v-4.338a.35.35 0 0 0-.097-.262.33.33 0 0 0-.255-.1m-2.46 3.615h-1.757v-.723h1.757zm-1.757-1.446h3.514v-.723h-3.514z" clip-rule="evenodd"/><rect width="3" height="3" x="109" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="114" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="119" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="124" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="129" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="134" y="75.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="164" y="75.706" fill="#DADFE6" rx=".5"/><path fill="#ADBACC" d="M123 65.706a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-16a1 1 0 0 1-1-1z" opacity=".498"/><path fill="#E8EBF1" d="M123 70.706a1 1 0 0 1 1-1h42a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-42a1 1 0 0 1-1-1z"/><rect width="64" height="21" x="106" y="86.706" fill="#fff" rx="2"/><rect width="9" height="9" x="110" y="90.206" fill="#1A78FF" opacity=".15" rx="2"/><path fill="#0070FF" d="m117.424 96.28-.33-.117-2.241.808a1.04 1.04 0 0 1-.703 0l-2.244-.808-.33.118a.26.26 0 0 0-.17.24c0 .108.068.204.17.24l2.836 1.023a.26.26 0 0 0 .176 0l2.836-1.022a.26.26 0 0 0 .17-.24.26.26 0 0 0-.17-.241z"/><path fill="#0070FF" d="m117.424 94.747-.33-.118-2.241.807a1.04 1.04 0 0 1-.703 0l-2.244-.807-.33.118a.26.26 0 0 0-.17.24c0 .108.068.204.17.24l2.836 1.023a.26.26 0 0 0 .176 0l2.836-1.023a.26.26 0 0 0 .17-.24.26.26 0 0 0-.17-.24"/><path fill="#0070FF" d="m117.424 93.213-2.836-1.023a.26.26 0 0 0-.176 0l-2.836 1.023a.26.26 0 0 0-.17.24c0 .108.068.204.17.24l2.836 1.023a.26.26 0 0 0 .176 0l2.836-1.023a.26.26 0 0 0 .17-.24.26.26 0 0 0-.17-.24"/><rect width="3" height="3" x="109" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="114" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="119" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="124" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="129" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="134" y="101.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="164" y="101.706" fill="#DADFE6" rx=".5"/><path fill="#ADBACC" d="M123 91.706a1 1 0 0 1 1-1h20a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-20a1 1 0 0 1-1-1z" opacity=".498"/><path fill="#E8EBF1" d="M123 96.706a1 1 0 0 1 1-1h38a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-38a1 1 0 0 1-1-1z" opacity=".498"/><rect width="64" height="21" x="106" y="112.706" fill="#fff" rx="2"/><rect width="9" height="9" x="110" y="116.206" fill="#904EE2" opacity=".15" rx="2"/><path fill="#9046EB" d="M116.708 120.306a.45.45 0 0 0-.408-.25h-1.585l.653-1.57a.424.424 0 0 0-.188-.532.46.46 0 0 0-.576.095l-2.25 2.596a.42.42 0 0 0-.062.461.46.46 0 0 0 .408.249h1.585l-.653 1.57a.424.424 0 0 0 .188.532.46.46 0 0 0 .576-.094l2.25-2.597a.42.42 0 0 0 .062-.46"/><rect width="3" height="3" x="109" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="114" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="119" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="124" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="129" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="134" y="127.706" fill="#E6E9ED" fill-opacity=".8" rx=".5"/><rect width="3" height="3" x="164" y="127.706" fill="#DADFE6" rx=".5"/><path fill="#ADBACC" d="M123 117.706a1 1 0 0 1 1-1h20a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-20a1 1 0 0 1-1-1z" opacity=".498"/><path fill="#E8EBF1" d="M123 122.706a1 1 0 0 1 1-1h38a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-38a1 1 0 0 1-1-1z" opacity=".498"/></g><defs><linearGradient id="c" x1="166.5" x2="61.117" y1="161.206" y2="19.248" gradientUnits="userSpaceOnUse"><stop stop-color="#C4DCFF"/><stop offset="1" stop-color="#F5F7FA"/></linearGradient><linearGradient id="e" x1="-46.531" x2="39.043" y1="81.461" y2="210.632" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8FA"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="g" x1="-46.531" x2="-44.923" y1="40.324" y2="61.498" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8FA"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="i" x1="64.326" x2="147.037" y1="94.72" y2="167.095" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8FA"/><stop offset="1" stop-color="#fff"/></linearGradient><filter id="b" width="150" height="152.412" x="20" y="15" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="8"/><feGaussianBlur stdDeviation="5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0.570833 0 0 0 0 0.749653 0 0 0 0 1 0 0 0 0.12 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_76_32712"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="1"/><feGaussianBlur stdDeviation="3"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/><feBlend in2="effect1_dropShadow_76_32712" result="effect2_dropShadow_76_32712"/><feBlend in="SourceGraphic" in2="effect2_dropShadow_76_32712" result="shape"/></filter><filter id="d" width="156" height="108" x="17" y="32" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="2"/><feGaussianBlur stdDeviation="2.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0.504167 0 0 0 0 0.711918 0 0 0 0 1 0 0 0 0.1 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_76_32712"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_76_32712" result="shape"/></filter><filter id="f" width="154.172" height="19.401" x="17.914" y="32.957" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="2.043"/><feGaussianBlur stdDeviation="2.043"/><feColorMatrix values="0 0 0 0 0.819608 0 0 0 0 0.85098 0 0 0 0 0.901961 0 0 0 0.3 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_76_32712"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_76_32712" result="shape"/></filter><filter id="h" width="87" height="99" x="94.5" y="49.5" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="2"/><feGaussianBlur stdDeviation="2.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0.504167 0 0 0 0 0.711918 0 0 0 0 1 0 0 0 0.2 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_76_32712"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_76_32712" result="shape"/></filter></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 1028 1024" preserveAspectRatio="xMidYMid meet"><path d="M989.867 234.667H499.2c-17.067 0-34.133-21.334-34.133-42.667 0-25.6 12.8-42.667 34.133-42.667h490.667c17.066 0 34.133 17.067 34.133 42.667 0 21.333-12.8 42.667-34.133 42.667m-473.6 128h465.066c25.6 0 46.934 21.333 46.934 42.666 0 25.6-21.334 42.667-46.934 42.667H516.267c-25.6 0-46.934-17.067-46.934-42.667s21.334-42.666 46.934-42.666m0 298.666c-25.6 0-46.934-21.333-46.934-42.666 0-25.6 21.334-42.667 46.934-42.667h465.066c25.6 0 46.934 17.067 46.934 42.667s-21.334 42.666-46.934 42.666zm4.266 128H972.8c29.867 0 51.2 17.067 51.2 42.667s-21.333 42.667-51.2 42.667H520.533c-29.866 0-51.2-17.067-51.2-42.667s21.334-42.667 51.2-42.667m-192 25.6c-17.066 17.067-46.933 17.067-64 0L12.8 541.867c-17.067-17.067-17.067-51.2 0-68.267l251.733-273.067c17.067-17.066 46.934-17.066 64 0s17.067 51.2 0 68.267L106.667 507.733l221.866 238.934c17.067 21.333 17.067 51.2 0 68.266"/></svg>
|