feat: add cache key

This commit is contained in:
xingyu4j
2022-12-06 16:12:54 +08:00
parent c8c6e349ae
commit 3e60ff2970
18 changed files with 100 additions and 81 deletions

View File

@ -167,20 +167,21 @@ import { EChartsOption } from 'echarts'
import { ElRow, ElCol, ElSkeleton, ElCard, ElDivider, ElLink } from 'element-plus'
import { formatTime } from '@/utils'
import { useI18n } from '@/hooks/web/useI18n'
import { useCache } from '@/hooks/web/useCache'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { useWatermark } from '@/hooks/web/useWatermark'
import { Echart } from '@/components/Echart'
import { CountTo } from '@/components/CountTo'
import { Highlight } from '@/components/Highlight'
import type { WorkplaceTotal, Project, Notice, Shortcut } from './types'
import { pieOptions, barOptions } from './echarts-data'
import { Icon } from 'vxe-table'
const { t } = useI18n()
const { wsCache } = useCache()
const { setWatermark } = useWatermark()
const loading = ref(true)
const avatar = wsCache.get('user').user.avatar
const username = wsCache.get('user').user.nickname
const avatar = wsCache.get(CACHE_KEY.USER).user.avatar
const username = wsCache.get(CACHE_KEY.USER).user.nickname
const pieOptionsData = reactive<EChartsOption>(pieOptions) as EChartsOption
// 获取统计数
let totalSate = reactive<WorkplaceTotal>({

View File

@ -154,10 +154,24 @@ import { useRouter } from 'vue-router'
import type { RouteLocationNormalizedLoaded } from 'vue-router'
import { useI18n } from '@/hooks/web/useI18n'
import { useIcon } from '@/hooks/web/useIcon'
import { useCache } from '@/hooks/web/useCache'
import { required } from '@/utils/formRules'
import { setToken, setTenantId } from '@/utils/auth'
import { decrypt, encrypt } from '@/utils/jsencrypt'
import {
setToken,
setTenantId,
setUsername,
setPassword,
setRememberMe,
setTenantName,
removeUsername,
removePassword,
removeRememberMe,
removeTenantName,
getUsername,
getPassword,
getRememberMe,
getTenantName
} from '@/utils/auth'
import { decrypt } from '@/utils/jsencrypt'
import { Icon } from '@/components/Icon'
import { Verify } from '@/components/Verifition'
import { usePermissionStore } from '@/store/modules/permission'
@ -166,7 +180,6 @@ import { LoginStateEnum, useLoginState, useFormValid } from './useLogin'
const { t } = useI18n()
const formLogin = ref()
const { wsCache } = useCache()
const { validForm } = useFormValid(formLogin)
const { setLoginState, getLoginState } = useLoginState()
const { currentRoute, push } = useRouter()
@ -195,11 +208,9 @@ const loginData = reactive({
signIn: false
},
loginForm: {
tenantName: wsCache.get('tenantName') ? wsCache.get('tenantName') : '芋道源码',
username: wsCache.get('username') ? wsCache.get('username') : 'admin',
password: wsCache.get('password')
? (decrypt(wsCache.get('password')) as unknown as string)
: 'admin123',
tenantName: '芋道源码',
username: 'admin',
password: 'admin123',
captchaVerification: '',
rememberMe: false
}
@ -223,12 +234,10 @@ const getTenantId = async () => {
}
// 记住我
const getCookie = () => {
const username = wsCache.get('username')
const password = wsCache.get('password')
? (decrypt(wsCache.get('password')) as unknown as string)
: undefined
const rememberMe = wsCache.get('rememberMe')
const tenantName = wsCache.get('tenantName')
const username = getUsername()
const password = getPassword() ? decrypt(getPassword() as unknown as string) : undefined
const rememberMe = getRememberMe()
const tenantName = getTenantName()
loginData.loginForm = {
...loginData.loginForm,
username: username ? username : loginData.loginForm.username,
@ -257,17 +266,15 @@ const handleLogin = async (params) => {
background: 'rgba(0, 0, 0, 0.7)'
})
if (loginData.loginForm.rememberMe) {
wsCache.set('username', loginData.loginForm.username, { exp: 30 * 24 * 60 * 60 })
wsCache.set('password', encrypt(loginData.loginForm.password as unknown as string), {
exp: 30
})
wsCache.set('rememberMe', loginData.loginForm.rememberMe, { exp: 30 * 24 * 60 * 60 })
wsCache.set('tenantName', loginData.loginForm.tenantName, { exp: 30 * 24 * 60 * 60 })
setUsername(loginData.loginForm.username)
setPassword(loginData.loginForm.password)
setRememberMe(loginData.loginForm.rememberMe)
setTenantName(loginData.loginForm.tenantName)
} else {
wsCache.delete('username')
wsCache.delete('password')
wsCache.delete('rememberMe')
wsCache.delete('tenantName')
removeUsername()
removePassword()
removeRememberMe()
removeTenantName()
}
setToken(res)
if (!redirect.value) {

View File

@ -91,9 +91,8 @@ import { useRouter } from 'vue-router'
import type { RouteLocationNormalizedLoaded } from 'vue-router'
import { useI18n } from '@/hooks/web/useI18n'
import { useIcon } from '@/hooks/web/useIcon'
import { useCache } from '@/hooks/web/useCache'
import { useMessage } from '@/hooks/web/useMessage'
import { setToken } from '@/utils/auth'
import { setTenantId, setToken } from '@/utils/auth'
import { required } from '@/utils/formRules'
import { usePermissionStore } from '@/store/modules/permission'
import { getTenantIdByNameApi, sendSmsCodeApi, smsLoginApi } from '@/api/login'
@ -101,7 +100,6 @@ import LoginFormTitle from './LoginFormTitle.vue'
import { useLoginState, LoginStateEnum, useFormValid } from './useLogin'
const { t } = useI18n()
const { wsCache } = useCache()
const message = useMessage()
const permissionStore = usePermissionStore()
const { currentRoute, push } = useRouter()
@ -172,7 +170,7 @@ watch(
// 获取租户 ID
const getTenantId = async () => {
const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)
wsCache.set('tenantId', res)
setTenantId(res)
}
// 登录
const signIn = async () => {

View File

@ -215,6 +215,7 @@
// 全局相关的 import
import { onMounted, reactive, ref } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { useMessage } from '@/hooks/web/useMessage'
import {
ElForm,
@ -241,6 +242,7 @@ import { handleTree, defaultProps } from '@/utils/tree'
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const { wsCache } = useCache()
// 列表相关的变量
const xTable = ref<VxeTableInstance>()
const tableLoading = ref(false)
@ -380,6 +382,7 @@ const submitForm = async () => {
} finally {
dialogVisible.value = false
actionLoading.value = false
wsCache.delete(CACHE_KEY.ROLE_ROUTERS)
// 操作成功,重新加载列表
await getList()
}