mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-14 19:15:06 +08:00
feat: add cache key
This commit is contained in:
@ -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>({
|
||||
|
@ -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) {
|
||||
|
@ -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 () => {
|
||||
|
@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user