update 优化 添加页签图标显示开关功能
This commit is contained in:
parent
3019701856
commit
592fb84aa7
@ -59,6 +59,13 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="drawer-item">
|
||||||
|
<span>显示页签图标</span>
|
||||||
|
<span class="comp-style">
|
||||||
|
<el-switch v-model="settingsStore.tagsIcon" :disabled="!settingsStore.tagsView" class="drawer-switch" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="drawer-item">
|
<div class="drawer-item">
|
||||||
<span>固定 Header</span>
|
<span>固定 Header</span>
|
||||||
<span class="comp-style">
|
<span class="comp-style">
|
||||||
@ -153,6 +160,7 @@ const saveSetting = () => {
|
|||||||
const settings = useStorage<LayoutSetting>('layout-setting', defaultSettings);
|
const settings = useStorage<LayoutSetting>('layout-setting', defaultSettings);
|
||||||
settings.value.topNav = storeSettings.value.topNav;
|
settings.value.topNav = storeSettings.value.topNav;
|
||||||
settings.value.tagsView = storeSettings.value.tagsView;
|
settings.value.tagsView = storeSettings.value.tagsView;
|
||||||
|
settings.value.tagsIcon = storeSettings.value.tagsIcon;
|
||||||
settings.value.fixedHeader = storeSettings.value.fixedHeader;
|
settings.value.fixedHeader = storeSettings.value.fixedHeader;
|
||||||
settings.value.sidebarLogo = storeSettings.value.sidebarLogo;
|
settings.value.sidebarLogo = storeSettings.value.sidebarLogo;
|
||||||
settings.value.dynamicTitle = storeSettings.value.dynamicTitle;
|
settings.value.dynamicTitle = storeSettings.value.dynamicTitle;
|
||||||
|
@ -5,13 +5,14 @@
|
|||||||
v-for="tag in visitedViews"
|
v-for="tag in visitedViews"
|
||||||
:key="tag.path"
|
:key="tag.path"
|
||||||
:data-path="tag.path"
|
:data-path="tag.path"
|
||||||
:class="isActive(tag) ? 'active' : ''"
|
:class="{ 'active': isActive(tag), 'has-icon': tagsIcon }"
|
||||||
:to="{ path: tag.path ? tag.path : '', query: tag.query, fullPath: tag.fullPath ? tag.fullPath : '' }"
|
:to="{ path: tag.path ? tag.path : '', query: tag.query, fullPath: tag.fullPath ? tag.fullPath : '' }"
|
||||||
class="tags-view-item"
|
class="tags-view-item"
|
||||||
:style="activeStyle(tag)"
|
:style="activeStyle(tag)"
|
||||||
@click.middle="!isAffix(tag) ? closeSelectedTag(tag) : ''"
|
@click.middle="!isAffix(tag) ? closeSelectedTag(tag) : ''"
|
||||||
@contextmenu.prevent="openMenu(tag, $event)"
|
@contextmenu.prevent="openMenu(tag, $event)"
|
||||||
>
|
>
|
||||||
|
<svg-icon v-if="tagsIcon && tag.meta && tag.meta.icon && tag.meta.icon !== '#'" :icon-class="tag.meta.icon"/>
|
||||||
{{ tag.title }}
|
{{ tag.title }}
|
||||||
<span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
|
<span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
|
||||||
<close class="el-icon-close" style="width: 1em; height: 1em; vertical-align: middle" />
|
<close class="el-icon-close" style="width: 1em; height: 1em; vertical-align: middle" />
|
||||||
@ -51,6 +52,7 @@ const router = useRouter();
|
|||||||
const visitedViews = computed(() => useTagsViewStore().getVisitedViews());
|
const visitedViews = computed(() => useTagsViewStore().getVisitedViews());
|
||||||
const routes = computed(() => usePermissionStore().getRoutes());
|
const routes = computed(() => usePermissionStore().getRoutes());
|
||||||
const theme = computed(() => useSettingsStore().theme);
|
const theme = computed(() => useSettingsStore().theme);
|
||||||
|
const tagsIcon = computed(() => useSettingsStore().tagsIcon)
|
||||||
|
|
||||||
watch(route, () => {
|
watch(route, () => {
|
||||||
addTags();
|
addTags();
|
||||||
@ -285,6 +287,9 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.tags-view-item.active.has-icon::before {
|
||||||
|
content: none !important;
|
||||||
|
}
|
||||||
.contextmenu {
|
.contextmenu {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background: var(--el-bg-color);
|
background: var(--el-bg-color);
|
||||||
|
@ -27,6 +27,11 @@ const setting: DefaultSettings = {
|
|||||||
*/
|
*/
|
||||||
tagsView: true,
|
tagsView: true,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示页签图标
|
||||||
|
*/
|
||||||
|
tagsIcon: false,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否固定头部
|
* 是否固定头部
|
||||||
*/
|
*/
|
||||||
@ -42,14 +47,6 @@ const setting: DefaultSettings = {
|
|||||||
*/
|
*/
|
||||||
dynamicTitle: false,
|
dynamicTitle: false,
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {string | array} 'production' | ['production', 'development']
|
|
||||||
* @description Need show err logs component.
|
|
||||||
* The default is only used in the production env
|
|
||||||
* If you want to also use it in dev, you can pass ['production', 'development']
|
|
||||||
*/
|
|
||||||
errorLog: 'production',
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否开启动画 开启随机 关闭渐进渐出
|
* 是否开启动画 开启随机 关闭渐进渐出
|
||||||
*/
|
*/
|
||||||
|
@ -8,6 +8,7 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
const storageSetting = useStorage<LayoutSetting>('layout-setting', {
|
const storageSetting = useStorage<LayoutSetting>('layout-setting', {
|
||||||
topNav: defaultSettings.topNav,
|
topNav: defaultSettings.topNav,
|
||||||
tagsView: defaultSettings.tagsView,
|
tagsView: defaultSettings.tagsView,
|
||||||
|
tagsIcon: defaultSettings.tagsIcon,
|
||||||
fixedHeader: defaultSettings.fixedHeader,
|
fixedHeader: defaultSettings.fixedHeader,
|
||||||
sidebarLogo: defaultSettings.sidebarLogo,
|
sidebarLogo: defaultSettings.sidebarLogo,
|
||||||
dynamicTitle: defaultSettings.dynamicTitle,
|
dynamicTitle: defaultSettings.dynamicTitle,
|
||||||
@ -20,6 +21,7 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
const showSettings = ref<boolean>(defaultSettings.showSettings);
|
const showSettings = ref<boolean>(defaultSettings.showSettings);
|
||||||
const topNav = ref<boolean>(storageSetting.value.topNav);
|
const topNav = ref<boolean>(storageSetting.value.topNav);
|
||||||
const tagsView = ref<boolean>(storageSetting.value.tagsView);
|
const tagsView = ref<boolean>(storageSetting.value.tagsView);
|
||||||
|
const tagsIcon = ref<boolean>(storageSetting.value.tagsIcon);
|
||||||
const fixedHeader = ref<boolean>(storageSetting.value.fixedHeader);
|
const fixedHeader = ref<boolean>(storageSetting.value.fixedHeader);
|
||||||
const sidebarLogo = ref<boolean>(storageSetting.value.sidebarLogo);
|
const sidebarLogo = ref<boolean>(storageSetting.value.sidebarLogo);
|
||||||
const dynamicTitle = ref<boolean>(storageSetting.value.dynamicTitle);
|
const dynamicTitle = ref<boolean>(storageSetting.value.dynamicTitle);
|
||||||
@ -37,6 +39,7 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
showSettings,
|
showSettings,
|
||||||
topNav,
|
topNav,
|
||||||
tagsView,
|
tagsView,
|
||||||
|
tagsIcon,
|
||||||
fixedHeader,
|
fixedHeader,
|
||||||
sidebarLogo,
|
sidebarLogo,
|
||||||
dynamicTitle,
|
dynamicTitle,
|
||||||
|
6
src/types/global.d.ts
vendored
6
src/types/global.d.ts
vendored
@ -98,6 +98,10 @@ declare global {
|
|||||||
* 是否显示多标签导航
|
* 是否显示多标签导航
|
||||||
*/
|
*/
|
||||||
tagsView: boolean;
|
tagsView: boolean;
|
||||||
|
/**
|
||||||
|
* 显示页签图标
|
||||||
|
*/
|
||||||
|
tagsIcon: boolean;
|
||||||
/**
|
/**
|
||||||
* 是否固定头部
|
* 是否固定头部
|
||||||
*/
|
*/
|
||||||
@ -157,8 +161,6 @@ declare global {
|
|||||||
* false: 明亮模式
|
* false: 明亮模式
|
||||||
*/
|
*/
|
||||||
dark: boolean;
|
dark: boolean;
|
||||||
|
|
||||||
errorLog: string;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export {};
|
export {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user