feat(ops-web): enhance login preference to include saved password functionality
Frontend CI / Frontend (push) Successful in 4m3s

This commit is contained in:
2026-06-02 14:59:54 +08:00
parent 723c3ffb86
commit 36d2f99fcf
3 changed files with 13 additions and 4 deletions
+3 -1
View File
@@ -19,6 +19,7 @@ export interface OpsSession {
export interface LoginPreference {
remember: boolean
lastUsername: string
savedPassword: string
}
export interface StoredSession {
@@ -31,7 +32,7 @@ function emptySession(): OpsSession {
}
function emptyPreference(): LoginPreference {
return { remember: false, lastUsername: '' }
return { remember: false, lastUsername: '', savedPassword: '' }
}
function hasWindow(): boolean {
@@ -105,6 +106,7 @@ export function readLoginPreference(): LoginPreference {
return {
remember: parsed.remember === true,
lastUsername: typeof parsed.lastUsername === 'string' ? parsed.lastUsername : '',
savedPassword: typeof parsed.savedPassword === 'string' ? parsed.savedPassword : '',
}
} catch {
return emptyPreference()
+5 -1
View File
@@ -65,7 +65,11 @@ export const useAuthStore = defineStore('ops-auth', () => {
},
payload.remember,
)
writeLoginPreference({ remember: payload.remember, lastUsername: payload.username })
writeLoginPreference({
remember: payload.remember,
lastUsername: payload.remember ? payload.username : '',
savedPassword: payload.remember ? payload.password : '',
})
})
.finally(() => {
loginPromise = null
+5 -2
View File
@@ -70,7 +70,7 @@
<div class="options">
<label class="remember">
<input v-model="remember" type="checkbox" />
记住登录状态
记住账号和密码
</label>
</div>
@@ -131,9 +131,12 @@ const formState = reactive({
onMounted(() => {
const pref = readLoginPreference()
remember.value = pref.remember
if (pref.lastUsername) {
if (pref.remember && pref.lastUsername) {
formState.username = pref.lastUsername
}
if (pref.remember && pref.savedPassword) {
formState.password = pref.savedPassword
}
})
function formatLoginError(error: unknown): string {