标签持久化
This commit is contained in:
parent
b50e0704a2
commit
ecd886a41b
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -22,8 +22,8 @@
|
||||
"editor.formatOnSave": true,
|
||||
// 保存时自动启用 eslint --fix 自动修复
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": true,
|
||||
"eslint.autoFixOnSave": true
|
||||
"source.fixAll": "explicit",
|
||||
"eslint.autoFixOnSave": "explicit"
|
||||
},
|
||||
"eslint.options": {
|
||||
"overrideConfig": {
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>{{ $t('layout.open') }} Tags-Views</span>
|
||||
<span>{{ $t('layout.open') }} 标签</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="tagsView" class="drawer-switch" />
|
||||
</span>
|
||||
@ -90,6 +90,13 @@
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>标签持久化</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="tabsPersist" class="drawer-switch" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<el-divider />
|
||||
|
||||
<el-button type="primary" plain icon="DocumentAdd" @click="saveSetting">{{ $t('layout.saveConfig') }}</el-button>
|
||||
@ -185,6 +192,14 @@ const showWatermark = computed({
|
||||
changeWatermark()
|
||||
}
|
||||
})
|
||||
|
||||
/**标签持久化 */
|
||||
const tabsPersist = computed({
|
||||
get: () => storeSettings.value.tagsViewPersist,
|
||||
set: (val) => {
|
||||
settingsStore.changeSetting({ key: 'tagsViewPersist', value: val })
|
||||
}
|
||||
})
|
||||
const changeWatermark = () => {
|
||||
storeSettings.value.showWatermark ? setWatermark(useUserStore().userInfo.userName) : removeWatermark()
|
||||
}
|
||||
@ -254,7 +269,8 @@ function saveSetting() {
|
||||
sideTheme: storeSettings.value.sideTheme,
|
||||
theme: storeSettings.value.theme,
|
||||
showFooter: storeSettings.value.showFooter,
|
||||
showWatermark: storeSettings.value.showWatermark
|
||||
showWatermark: storeSettings.value.showWatermark,
|
||||
tagsViewPersist: storeSettings.value.tagsViewPersist
|
||||
}
|
||||
localStorage.setItem('layout-setting', JSON.stringify(layoutSetting))
|
||||
setTimeout(proxy.$modal.closeLoading(), 100)
|
||||
|
||||
@ -75,9 +75,13 @@ export default {
|
||||
/**
|
||||
* 默认大小
|
||||
*/
|
||||
defaultSize: 'default',
|
||||
/**
|
||||
* 默认语言
|
||||
*/
|
||||
defaultLang: 'zh-cn'
|
||||
defaultSize: 'default',
|
||||
/**
|
||||
* 默认语言
|
||||
*/
|
||||
defaultLang: 'zh-cn',
|
||||
/**
|
||||
* 标签页持久化
|
||||
*/
|
||||
tagsViewPersist: true
|
||||
}
|
||||
|
||||
@ -1,8 +1,20 @@
|
||||
import defaultSettings from '@/settings'
|
||||
import { useDynamicTitle } from '@/utils/dynamicTitle'
|
||||
|
||||
const { sideTheme, theme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle, showFooter, showWatermark, watermarkText } =
|
||||
defaultSettings
|
||||
const {
|
||||
sideTheme,
|
||||
theme,
|
||||
showSettings,
|
||||
topNav,
|
||||
tagsView,
|
||||
fixedHeader,
|
||||
sidebarLogo,
|
||||
dynamicTitle,
|
||||
showFooter,
|
||||
showWatermark,
|
||||
watermarkText,
|
||||
tagsViewPersist
|
||||
} = defaultSettings
|
||||
|
||||
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
|
||||
const useSettingsStore = defineStore('settings', {
|
||||
@ -18,13 +30,13 @@ const useSettingsStore = defineStore('settings', {
|
||||
dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle,
|
||||
showFooter: storageSetting.showFooter === undefined ? showFooter : storageSetting.showFooter,
|
||||
showWatermark: storageSetting.showWatermark === undefined ? showWatermark : storageSetting.showWatermark,
|
||||
watermarkText: storageSetting.watermarkText === undefined ? watermarkText : storageSetting.watermarkText
|
||||
watermarkText: storageSetting.watermarkText === undefined ? watermarkText : storageSetting.watermarkText,
|
||||
tagsViewPersist: storageSetting.tagsViewPersist === undefined ? tagsViewPersist : storageSetting.tagsViewPersist
|
||||
}),
|
||||
actions: {
|
||||
// 修改布局设置
|
||||
changeSetting(data) {
|
||||
const { key, value } = data
|
||||
// if (this.hasOwnProperty(key)) {
|
||||
if (Object.prototype.hasOwnProperty.call(this.$state, key)) {
|
||||
this[key] = value
|
||||
}
|
||||
|
||||
@ -1,4 +1,9 @@
|
||||
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
|
||||
|
||||
const useTagsViewStore = defineStore('tagsView', {
|
||||
persist: {
|
||||
paths: [storageSetting.tagsViewPersist ? 'visitedViews' : ''] //存储指定key
|
||||
},
|
||||
state: () => ({
|
||||
visitedViews: [],
|
||||
cachedViews: [],
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { login, logout, getInfo, oauthCallback, getRsaKey } from '@/api/system/login'
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
import useTagsViewStore from './tagsView'
|
||||
import defAva from '@/assets/images/profile.jpg'
|
||||
import { encryptByPublicKey } from '@/utils/jsencrypt'
|
||||
const useUserStore = defineStore('user', {
|
||||
@ -110,6 +111,7 @@ const useUserStore = defineStore('user', {
|
||||
this.roles = []
|
||||
this.permissions = []
|
||||
removeToken()
|
||||
useTagsViewStore().visitedViews = []
|
||||
resolve(res)
|
||||
})
|
||||
.catch((error) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user