更新 Web/src/layout/lockScreen/index.vue

锁屏后,刷新页面后window.__env__.VITE_SM_PUBLIC_KEY保存的公钥就会丢失,就没办法解锁。已经修复
This commit is contained in:
Hans 2025-02-06 16:12:12 +08:00
parent c104298874
commit fe4300256f

View File

@ -36,7 +36,14 @@
<el-button style="max-width: 80px; margin-top: 20px" size="default" @click="hideMessage"> 确认 </el-button>
</div>
<div v-else class="layout-lock-screen-login-box-value">
<el-input placeholder="请输入密码" :type="state.isShowPassword ? 'text' : 'password'" ref="layoutLockScreenInputRef" size="default" v-model="state.lockScreenPassword" @keyup.enter.native.stop="onLockScreenSubmit()">
<el-input
placeholder="请输入密码"
:type="state.isShowPassword ? 'text' : 'password'"
ref="layoutLockScreenInputRef"
size="default"
v-model="state.lockScreenPassword"
@keyup.enter.native.stop="onLockScreenSubmit()"
>
<template #append>
<el-button @click="onLockScreenSubmit">
<el-icon class="el-input__icon">
@ -45,7 +52,11 @@
</el-button>
</template>
<template #suffix>
<i class="iconfont el-input__icon login-content-password" :class="state.isShowPassword ? 'icon-yincangmima' : 'icon-xianshimima'" @click="state.isShowPassword = !state.isShowPassword">
<i
class="iconfont el-input__icon login-content-password"
:class="state.isShowPassword ? 'icon-yincangmima' : 'icon-xianshimima'"
@click="state.isShowPassword = !state.isShowPassword"
>
</i>
</template>
</el-input>
@ -72,7 +83,8 @@ import { useUserInfo } from '/@/stores/userInfo';
import { sm2 } from 'sm-crypto-v2';
import { feature, getAPI } from '/@/utils/axios-utils';
import { SysAuthApi } from '/@/api-services';
import { useRoute } from 'vue-router';
import { loadSysInfo } from '/@/utils/sysInfo';
//
const layoutLockScreenDateRef = ref<HtmlType>();
const layoutLockScreenInputRef = ref();
@ -100,7 +112,7 @@ const state = reactive({
showMessage: false,
isShowPassword: false,
});
const route = useRoute();
// pc
const onDownPc = (down: MouseEvent) => {
state.isFlags = true;
@ -205,9 +217,10 @@ const onLockScreenSubmit = async () => {
setLocalThemeConfig();
return;
}
console.log('userInfos', userInfos);
// SM2
const publicKey = window.__env__.VITE_SM_PUBLIC_KEY;
console.log('publicKey', publicKey);
const password = sm2.doEncrypt(state.lockScreenPassword, publicKey, 1);
const [err, res] = await feature(getAPI(SysAuthApi).apiSysAuthUnLockScreenPost(password));
if (err) {
@ -235,11 +248,18 @@ const hideMessage = () => {
});
};
//
onMounted(() => {
onMounted(async() => {
initGetElement();
initSetTime();
initLockScreen();
// Id
var tenantid = Number(route.query.tid);
if (isNaN(tenantid)) {
tenantid = 0;
} else if (tenantid > 99999) {
Local.set('tid', tenantid);
}
await loadSysInfo(tenantid);
// ENTER
document.onkeydown = (e) => {
if (e.key === 'Enter') {
@ -263,7 +283,6 @@ onUnmounted(() => {
window.clearInterval(state.setIntervalTime);
window.clearInterval(state.isShowLockScreenIntervalTime);
});
</script>
<style scoped lang="scss">