wip(Login): Login developing

This commit is contained in:
陈凯龙
2022-01-05 17:02:25 +08:00
parent 77097c8d92
commit 4216f7c218
26 changed files with 391 additions and 1597 deletions

View File

@@ -1,55 +1,14 @@
import { defineStore } from 'pinia'
import { store } from '../index'
import { useCache } from '@/hooks/web/useCache'
import { appModules } from '@/config/app'
import type { AppState, LayoutType } from '@/config/app'
export type LayoutType = 'Classic' | 'LeftTop' | 'Top' | 'Test'
export interface AppState {
collapsed: boolean
showTags: boolean
showLogo: boolean
showNavbar: boolean
fixedHeader: boolean
layout: LayoutType
showBreadcrumb: boolean
showHamburger: boolean
showScreenfull: boolean
showUserInfo: boolean
title: string
logoTitle: string
userInfo: string
greyMode: boolean
showBackTop: boolean
showMenuTab: boolean
requestTime: boolean
isDark: boolean
size: ElememtPlusSzie
sizeMap: ElememtPlusSzie[]
}
const { wsCache } = useCache()
export const useAppStore = defineStore({
id: 'app',
state: (): AppState => ({
collapsed: false, // 菜单栏是否栏缩收
showLogo: true, // 是否显示logo
showTags: true, // 是否显示标签栏
showNavbar: true, // 是否显示navbar
fixedHeader: true, // 是否固定header
layout: 'Classic', // layout布局
showBreadcrumb: true, // 是否显示面包屑
showHamburger: true, // 是否显示侧边栏缩收按钮
showScreenfull: true, // 是否全屏按钮
showUserInfo: true, // 是否显示用户头像
title: 'butterfly-admin', // 标题
logoTitle: 'butterfly-admin', // logo标题
userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
greyMode: false, // 是否开始灰色模式,用于特殊悼念日
showBackTop: true, // 是否显示回到顶部
showMenuTab: false, // 是否固定一级菜单
requestTime: false, // 是否在接口调用时添加时间戳避免IE缓存
isDark: false, // 是否是暗黑模式
size: 'default', // 组件尺寸
sizeMap: ['default', 'large', 'small']
}),
state: (): AppState => appModules,
getters: {
getCollapsed(): boolean {
return this.collapsed
@@ -170,9 +129,11 @@ export const useAppStore = defineStore({
document.documentElement.classList.add('light')
document.documentElement.classList.remove('dark')
}
wsCache.set('isDark', this.isDark)
},
setSize(size: ElememtPlusSzie) {
this.size = size
wsCache.set('size', this.size)
}
}
})

View File

@@ -1,38 +1,14 @@
import { defineStore } from 'pinia'
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
import en from 'element-plus/lib/locale/lang/en'
import { store } from '../index'
import { useCache } from '@/hooks/web/useCache'
import { localeModules, elLocaleMap } from '@/config/locale'
import type { LocaleState } from '@/config/locale'
const elLocaleMap = {
'zh-CN': zhCn,
en: en
}
export interface LocaleState {
locale: LocaleDropdownType
localeMap: LocaleDropdownType[]
}
const { wsCache } = useCache()
export const useLocaleStore = defineStore({
id: 'locales',
state: (): LocaleState => ({
// 当前语言
locale: {
lang: 'zh-CN',
elLocale: elLocaleMap['zh-CN']
},
// 多语言
localeMap: [
{
lang: 'zh-CN',
name: '简体中文'
},
{
lang: 'en',
name: 'English'
}
]
}),
state: (): LocaleState => localeModules,
getters: {
getLocale(): LocaleDropdownType {
return this.locale
@@ -46,6 +22,7 @@ export const useLocaleStore = defineStore({
// this.locale = Object.assign(this.locale, localeMap)
this.locale.lang = localeMap?.lang
this.locale.elLocale = elLocaleMap[localeMap?.lang]
wsCache.set('lang', localeMap?.lang)
}
}
})