fix: friendly Chinese error messages on login/register pages
Map backend English error details to user-facing Chinese text on all 3 frontends (uni-app, user-frontend, admin-frontend). Previously raw English like 'Invalid credentials' was shown directly to users.
This commit is contained in:
@@ -90,7 +90,8 @@ async function submit() {
|
|||||||
localStorage.setItem('admin_user', JSON.stringify(res.user || {}))
|
localStorage.setItem('admin_user', JSON.stringify(res.user || {}))
|
||||||
ElMessage.success('登录成功')
|
ElMessage.success('登录成功')
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
error.value = e?.detail || '登录失败'
|
const map = { 'Invalid credentials': '用户名或密码错误' }
|
||||||
|
error.value = map[e?.detail] || e?.detail || '登录失败'
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ async function submit() {
|
|||||||
const redirect = route.query.redirect || '/dashboard'
|
const redirect = route.query.redirect || '/dashboard'
|
||||||
router.push(redirect)
|
router.push(redirect)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
error.value = e?.detail || '登录失败'
|
const map = { 'Invalid credentials': '用户名或密码错误' }
|
||||||
|
error.value = map[e?.detail] || e?.detail || '登录失败'
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,10 +229,14 @@ const handleSubmit = async () => {
|
|||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('登录失败', err)
|
console.error('登录失败', err)
|
||||||
error.value = (err.errMsg || err.message || '操作失败,请重试')
|
const msg = err.errMsg || err.message || err.detail || ''
|
||||||
if (err.statusCode === 401) {
|
const map = {
|
||||||
error.value = '手机号或密码错误'
|
'Invalid credentials': '手机号或密码错误',
|
||||||
|
'Phone already registered': '该手机号已被注册',
|
||||||
|
'Invalid refresh token': '登录已过期,请重新登录',
|
||||||
|
'phone required': '请输入手机号',
|
||||||
}
|
}
|
||||||
|
error.value = map[msg] || msg || '操作失败,请重试'
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,7 +172,8 @@ async function submit() {
|
|||||||
const redirect = route.query.redirect || '/workspace'
|
const redirect = route.query.redirect || '/workspace'
|
||||||
router.push(redirect)
|
router.push(redirect)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
error.value = e?.detail || '登录失败'
|
const map = { 'Invalid credentials': '手机号或密码错误', 'Invalid refresh token': '登录已过期,请重新登录', 'phone required': '请输入手机号' }
|
||||||
|
error.value = map[e?.detail] || e?.detail || '登录失败'
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
@@ -191,7 +192,8 @@ async function register() {
|
|||||||
regForm.phone = ''
|
regForm.phone = ''
|
||||||
regForm.password = ''
|
regForm.password = ''
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
regError.value = e?.detail || '注册失败'
|
const map = { 'Phone already registered': '该手机号已被注册', 'Invalid credentials': '手机号或密码错误' }
|
||||||
|
regError.value = map[e?.detail] || e?.detail || '注册失败'
|
||||||
} finally {
|
} finally {
|
||||||
regLoading.value = false
|
regLoading.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user