应用配置 toolbar 对象内属性调整

This commit is contained in:
Hooray Hu
2023-12-28 21:55:16 +08:00
parent bbd314e042
commit f0fc82fd7a
10 changed files with 38 additions and 44 deletions
+6 -6
View File
@@ -180,7 +180,7 @@ function handleCopy() {
<div class="label">
全屏
</div>
<HToggle v-model="settingsStore.settings.toolbar.enableFullscreen" />
<HToggle v-model="settingsStore.settings.toolbar.fullscreen" />
</div>
<div class="setting-item">
<div class="label">
@@ -189,7 +189,7 @@ function handleCopy() {
<SvgIcon name="ri:question-line" />
</HTooltip>
</div>
<HToggle v-model="settingsStore.settings.toolbar.enablePageReload" />
<HToggle v-model="settingsStore.settings.toolbar.pageReload" />
</div>
<div class="setting-item">
<div class="label">
@@ -198,7 +198,7 @@ function handleCopy() {
<SvgIcon name="ri:question-line" />
</HTooltip>
</div>
<HToggle v-model="settingsStore.settings.toolbar.enableColorScheme" />
<HToggle v-model="settingsStore.settings.toolbar.colorScheme" />
</div>
<div v-if="settingsStore.mode === 'pc'" class="divider">
面包屑导航
@@ -207,7 +207,7 @@ function handleCopy() {
<div class="label">
是否启用
</div>
<HToggle v-model="settingsStore.settings.breadcrumb.enable" />
<HToggle v-model="settingsStore.settings.toolbar.breadcrumb" />
</div>
<div class="divider">
页面
@@ -228,13 +228,13 @@ function handleCopy() {
<SvgIcon name="ri:question-line" />
</HTooltip>
</div>
<HToggle v-model="settingsStore.settings.navSearch.enable" />
<HToggle v-model="settingsStore.settings.toolbar.navSearch" />
</div>
<div class="setting-item">
<div class="label">
是否启用快捷键
</div>
<HToggle v-model="settingsStore.settings.navSearch.enableHotkeys" :disabled="!settingsStore.settings.navSearch.enable" />
<HToggle v-model="settingsStore.settings.navSearch.enableHotkeys" :disabled="!settingsStore.settings.toolbar.navSearch" />
</div>
<div class="divider">
底部版权
@@ -31,7 +31,7 @@ onMounted(() => {
<HKbd>I</HKbd>
查看系统信息
</li>
<li v-if="settingsStore.settings.navSearch.enable && settingsStore.settings.navSearch.enableHotkeys" class="py-1">
<li v-if="settingsStore.settings.toolbar.navSearch && settingsStore.settings.navSearch.enableHotkeys" class="py-1">
<HKbd>{{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}</HKbd>
<HKbd>S</HKbd>
唤起导航搜索
+2 -2
View File
@@ -132,14 +132,14 @@ onMounted(() => {
isShow.value = !isShow.value
})
hotkeys('alt+s', (e) => {
if (settingsStore.settings.navSearch.enable && settingsStore.settings.navSearch.enableHotkeys) {
if (settingsStore.settings.toolbar.navSearch && settingsStore.settings.navSearch.enableHotkeys) {
e.preventDefault()
initSourceList()
isShow.value = true
}
})
hotkeys('esc', (e) => {
if (settingsStore.settings.navSearch.enable && settingsStore.settings.navSearch.enableHotkeys) {
if (settingsStore.settings.toolbar.navSearch && settingsStore.settings.navSearch.enableHotkeys) {
e.preventDefault()
isShow.value = false
}
+5 -5
View File
@@ -54,22 +54,22 @@ watch(() => userStore.avatar, () => {
<template>
<div class="tools flex items-center gap-4 whitespace-nowrap px-4">
<span v-if="settingsStore.settings.navSearch.enable && settingsStore.mode === 'pc'" class="group inline-flex cursor-pointer items-center gap-1 rounded-2 bg-stone-1 px-2 py-1.5 text-dark ring-stone-3 ring-inset transition dark:bg-stone-9 dark:text-white hover:ring-1 dark:ring-stone-7" @click="eventBus.emit('global-search-toggle')">
<span v-if="settingsStore.settings.toolbar.navSearch && settingsStore.mode === 'pc'" class="group inline-flex cursor-pointer items-center gap-1 rounded-2 bg-stone-1 px-2 py-1.5 text-dark ring-stone-3 ring-inset transition dark:bg-stone-9 dark:text-white hover:ring-1 dark:ring-stone-7" @click="eventBus.emit('global-search-toggle')">
<SvgIcon name="ri:search-line" />
<span class="text-sm text-stone-5 transition group-hover:text-dark dark:group-hover:text-white">搜索</span>
<HKbd v-if="settingsStore.settings.navSearch.enableHotkeys" class="ml-2">{{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }} S</HKbd>
</span>
<div class="flex items-center empty:hidden">
<span v-if="settingsStore.settings.navSearch.enable && settingsStore.mode === 'mobile'" class="item" @click="eventBus.emit('global-search-toggle')">
<span v-if="settingsStore.settings.toolbar.navSearch && settingsStore.mode === 'mobile'" class="item" @click="eventBus.emit('global-search-toggle')">
<SvgIcon name="ri:search-line" />
</span>
<span v-if="settingsStore.mode === 'pc' && settingsStore.settings.toolbar.enableFullscreen" class="item" @click="toggle">
<span v-if="settingsStore.mode === 'pc' && settingsStore.settings.toolbar.fullscreen" class="item" @click="toggle">
<SvgIcon :name="isFullscreen ? 'ri:fullscreen-exit-line' : 'ri:fullscreen-line'" />
</span>
<span v-if="settingsStore.settings.toolbar.enablePageReload" class="item" @click="mainPage.reload()">
<span v-if="settingsStore.settings.toolbar.pageReload" class="item" @click="mainPage.reload()">
<SvgIcon name="iconoir:refresh-double" />
</span>
<span v-if="settingsStore.settings.toolbar.enableColorScheme" class="item" @click="toggleColorScheme">
<span v-if="settingsStore.settings.toolbar.colorScheme" class="item" @click="toggleColorScheme">
<SvgIcon :name="settingsStore.settings.app.colorScheme === 'light' ? 'ri:sun-line' : 'ri:moon-line'" />
</span>
</div>
@@ -50,7 +50,7 @@ function pathCompile(path: string) {
<div v-if="enableSubMenuCollapseButton" class="flex-center cursor-pointer px-2 py-1 transition-transform" :class="{ '-rotate-z-180': settingsStore.settings.menu.subMenuCollapse }" @click="settingsStore.toggleSidebarCollapse()">
<SvgIcon name="toolbar-collapse" />
</div>
<Breadcrumb v-if="settingsStore.mode === 'pc' && settingsStore.settings.breadcrumb.enable && settingsStore.settings.app.routeBaseOn !== 'filesystem'" class="breadcrumb">
<Breadcrumb v-if="settingsStore.mode === 'pc' && settingsStore.settings.toolbar.breadcrumb && settingsStore.settings.app.routeBaseOn !== 'filesystem'" class="breadcrumb">
<TransitionGroup name="breadcrumb">
<BreadcrumbItem v-for="(item, index) in breadcrumbList" :key="`${index}_${item.path}_${item.title}`" :to="index < breadcrumbList.length - 1 && item.path !== '' ? pathCompile(item.path) : ''">
{{ item.title }}
+1 -1
View File
@@ -11,7 +11,7 @@ const settingsStore = useSettingsStore()
const enableToolbar = computed(() => {
return !(
settingsStore.settings.menu.menuMode === 'head' && !settingsStore.settings.menu.enableSubMenuCollapseButton && (
!settingsStore.settings.breadcrumb.enable || settingsStore.settings.app.routeBaseOn === 'filesystem'
!settingsStore.settings.toolbar.breadcrumb || settingsStore.settings.app.routeBaseOn === 'filesystem'
)
)
})
+1 -1
View File
@@ -52,7 +52,7 @@ watch(() => routeInfo.path, () => {
onMounted(() => {
hotkeys('f5', (e) => {
if (settingsStore.settings.toolbar.enablePageReload) {
if (settingsStore.settings.toolbar.pageReload) {
e.preventDefault()
mainPage.reload()
}
+5 -7
View File
@@ -31,18 +31,16 @@ const globalSettingsDefault: RecursiveRequired<Settings.all> = {
mode: 'static',
},
toolbar: {
enableFullscreen: false,
enablePageReload: false,
enableColorScheme: false,
},
breadcrumb: {
enable: true,
breadcrumb: true,
navSearch: true,
fullscreen: false,
pageReload: false,
colorScheme: false,
},
mainPage: {
enableHotkeys: true,
},
navSearch: {
enable: true,
enableHotkeys: true,
},
copyright: {
+3 -3
View File
@@ -18,9 +18,9 @@ const globalSettings: Settings.all = {
mode: 'fixed',
},
toolbar: {
enableFullscreen: true,
enablePageReload: true,
enableColorScheme: true,
fullscreen: true,
pageReload: true,
colorScheme: true,
},
mainPage: {
enableHotkeys: true,
+13 -17
View File
@@ -113,28 +113,31 @@ declare namespace Settings {
mode?: 'static' | 'fixed' | 'sticky'
}
interface toolbar {
/**
* 是否开启面包屑导航
* @默认值 `true`
*/
breadcrumb?: boolean
/**
* 是否开启导航搜索
* @默认值 `true`
*/
navSearch?: boolean
/**
* 是否开启全屏
* @默认值 `false`
*/
enableFullscreen?: boolean
fullscreen?: boolean
/**
* 是否开启页面刷新
* @默认值 `false`
*/
enablePageReload?: boolean
pageReload?: boolean
/**
* 是否开启颜色主题
* @默认值 `false`
*/
enableColorScheme?: boolean
}
interface breadcrumb {
/**
* 是否开启面包屑导航
* @默认值 `true`
*/
enable?: boolean
colorScheme?: boolean
}
interface mainPage {
/**
@@ -144,11 +147,6 @@ declare namespace Settings {
enableHotkeys?: boolean
}
interface navSearch {
/**
* 是否开启导航搜索
* @默认值 `true`
*/
enable?: boolean
/**
* 是否开启导航搜索快捷键
* @默认值 `true`
@@ -195,8 +193,6 @@ declare namespace Settings {
topbar?: topbar
/** 工具栏设置 */
toolbar?: toolbar
/** 面包屑导航设置 */
breadcrumb?: breadcrumb
/** 页面设置 */
mainPage?: mainPage
/** 导航搜索设置 */