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