mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-28 05:39:34 +08:00
feat: add error handle
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, unref, computed } from 'vue';
|
||||
import { Layout, Tooltip } from 'ant-design-vue';
|
||||
import { Layout, Tooltip, Badge } from 'ant-design-vue';
|
||||
import Logo from '/@/layouts/Logo.vue';
|
||||
import UserDropdown from './UserDropdown';
|
||||
import LayoutMenu from './LayoutMenu';
|
||||
@@ -12,12 +12,15 @@ import {
|
||||
FullscreenOutlined,
|
||||
GithubFilled,
|
||||
LockOutlined,
|
||||
BugOutlined,
|
||||
} from '@ant-design/icons-vue';
|
||||
import { useFullscreen } from '/@/hooks/web/useFullScreen';
|
||||
import { useTabs } from '/@/hooks/web/useTabs';
|
||||
import { GITHUB_URL } from '/@/settings/siteSetting';
|
||||
import LockAction from './actions/LockActionItem';
|
||||
import { useModal } from '/@/components/Modal/index';
|
||||
import { errorStore } from '/@/store/modules/error';
|
||||
import { useGo } from '/@/hooks/web/usePage';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'DefaultLayoutHeader',
|
||||
@@ -25,6 +28,7 @@ export default defineComponent({
|
||||
const { refreshPage } = useTabs();
|
||||
const [register, { openModal }] = useModal();
|
||||
const { toggleFullscreen, isFullscreenRef } = useFullscreen();
|
||||
const go = useGo();
|
||||
const getProjectConfigRef = computed(() => {
|
||||
return appStore.getProjectConfig;
|
||||
});
|
||||
@@ -37,6 +41,12 @@ export default defineComponent({
|
||||
const theme = unref(getProjectConfigRef).headerSetting.theme;
|
||||
return theme ? `layout-header__header--${theme}` : '';
|
||||
});
|
||||
|
||||
function handleToErrorList() {
|
||||
errorStore.commitErrorListCountState(0);
|
||||
go('/exception/error-log');
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 锁定屏幕
|
||||
*/
|
||||
@@ -46,9 +56,9 @@ export default defineComponent({
|
||||
return () => {
|
||||
const getProjectConfig = unref(getProjectConfigRef);
|
||||
const {
|
||||
// useErrorHandle,
|
||||
useErrorHandle,
|
||||
showLogo,
|
||||
headerSetting: { theme: headerTheme, showRedo, showGithub, showFullScreen },
|
||||
headerSetting: { theme: headerTheme, useLockPage, showRedo, showGithub, showFullScreen },
|
||||
menuSetting: { mode, type: menuType, split: splitMenu, topMenuAlign },
|
||||
showBreadCrumb,
|
||||
} = getProjectConfig;
|
||||
@@ -77,8 +87,28 @@ export default defineComponent({
|
||||
</div>
|
||||
|
||||
<div class={`layout-header__action`}>
|
||||
{useErrorHandle && (
|
||||
<Tooltip>
|
||||
{{
|
||||
title: () => '错误日志',
|
||||
default: () => (
|
||||
<Badge
|
||||
count={errorStore.getErrorListCountState}
|
||||
offset={[0, 10]}
|
||||
overflowCount={99}
|
||||
>
|
||||
{() => (
|
||||
<div class={`layout-header__action-item`} onClick={handleToErrorList}>
|
||||
<BugOutlined class={`layout-header__action-icon`} />
|
||||
</div>
|
||||
)}
|
||||
</Badge>
|
||||
),
|
||||
}}
|
||||
</Tooltip>
|
||||
)}
|
||||
|
||||
{showGithub && (
|
||||
// @ts-ignore
|
||||
<Tooltip>
|
||||
{{
|
||||
title: () => 'github',
|
||||
@@ -90,8 +120,7 @@ export default defineComponent({
|
||||
}}
|
||||
</Tooltip>
|
||||
)}
|
||||
{showGithub && (
|
||||
// @ts-ignore
|
||||
{useLockPage && (
|
||||
<Tooltip>
|
||||
{{
|
||||
title: () => '锁定屏幕',
|
||||
@@ -104,7 +133,6 @@ export default defineComponent({
|
||||
</Tooltip>
|
||||
)}
|
||||
{showRedo && (
|
||||
// @ts-ignore
|
||||
<Tooltip>
|
||||
{{
|
||||
title: () => '刷新',
|
||||
@@ -117,7 +145,6 @@ export default defineComponent({
|
||||
</Tooltip>
|
||||
)}
|
||||
{showFullScreen && (
|
||||
// @ts-ignore
|
||||
<Tooltip>
|
||||
{{
|
||||
title: () => (unref(isFullscreenRef) ? '退出全屏' : '全屏'),
|
||||
|
Reference in New Issue
Block a user