diff --git a/main/manager-mobile/src/i18n/en.ts b/main/manager-mobile/src/i18n/en.ts index fbc7be20..3618ea9d 100644 --- a/main/manager-mobile/src/i18n/en.ts +++ b/main/manager-mobile/src/i18n/en.ts @@ -19,8 +19,7 @@ export default { 'login.enterCaptcha': 'Please enter verification code', 'login.loginButton': 'Login', 'login.loggingIn': 'Logging in...', - 'login.noAccount': 'did not have an account?', - 'login.registerNow': 'Register Now', + 'login.noAccount': 'Sign Up', 'login.enterPhone': 'Please enter phone number', 'login.selectCountry': 'Select Country/Region', 'login.confirm': 'Confirm', @@ -30,6 +29,7 @@ export default { 'login.requiredCaptcha': 'Verification code cannot be empty', 'login.requiredMobile': 'Please enter a valid phone number', 'login.captchaError': 'Graphic verification code error', + 'login.forgotPassword': 'Forgot Password', // Register page 'register.pageTitle': 'Register', @@ -189,6 +189,27 @@ export default { 'common.unknownError': 'Unknown error', 'common.networkError': 'Network error', + // Retrieve Password page + 'retrievePassword.title': 'Reset Password', + 'retrievePassword.subtitle': 'Recover your account password via mobile number', + 'retrievePassword.mobileRequired': 'Please enter mobile number', + 'retrievePassword.inputCorrectMobile': 'Please enter a valid mobile number', + 'retrievePassword.captchaRequired': 'Please enter graphic verification code', + 'retrievePassword.mobileCaptchaRequired': 'Please enter SMS verification code', + 'retrievePassword.newPasswordRequired': 'Please enter new password', + 'retrievePassword.confirmNewPasswordRequired': 'Please confirm new password', + 'retrievePassword.passwordsNotMatch': 'Passwords do not match', + 'retrievePassword.mobilePlaceholder': 'Please enter mobile number', + 'retrievePassword.captchaPlaceholder': 'Please enter graphic verification code', + 'retrievePassword.mobileCaptchaPlaceholder': 'Please enter SMS verification code', + 'retrievePassword.newPasswordPlaceholder': 'Please enter new password', + 'retrievePassword.confirmNewPasswordPlaceholder': 'Please confirm new password', + 'retrievePassword.getMobileCaptcha': 'Get Code', + 'retrievePassword.captchaSendSuccess': 'Verification code sent successfully', + 'retrievePassword.passwordUpdateSuccess': 'Password reset successfully', + 'retrievePassword.resetButton': 'Reset Password', + 'retrievePassword.goToLogin': 'Back to Login', + // SM2 encryption related error messages 'sm2.publicKeyNotConfigured': 'SM2 public key not configured, please contact administrator', 'sm2.encryptionFailed': 'Password encryption failed', diff --git a/main/manager-mobile/src/i18n/zh_CN.ts b/main/manager-mobile/src/i18n/zh_CN.ts index 5b25c57b..c1e9b856 100644 --- a/main/manager-mobile/src/i18n/zh_CN.ts +++ b/main/manager-mobile/src/i18n/zh_CN.ts @@ -19,8 +19,7 @@ export default { 'login.enterCaptcha': '请输入验证码', 'login.loginButton': '登录', 'login.loggingIn': '登录中...', - 'login.noAccount': '还没有账户?', - 'login.registerNow': '立即注册', + 'login.noAccount': '新用户注册', 'login.enterPhone': '请输入手机号码', 'login.selectCountry': '选择国家/地区', 'login.confirm': '确认', @@ -30,6 +29,7 @@ export default { 'login.requiredCaptcha': '验证码不能为空', 'login.requiredMobile': '请输入正确的手机号码', 'login.captchaError': '图形验证码错误', + 'login.forgotPassword': '忘记密码', // 注册页面 'register.pageTitle': '注册', @@ -265,6 +265,27 @@ export default { 'settings.selectLanguage': '选择语言', 'settings.languageChanged': '语言切换成功', + // 重置密码页面 + 'retrievePassword.title': '重置密码', + 'retrievePassword.subtitle': '通过手机号找回您的账户密码', + 'retrievePassword.mobileRequired': '请输入手机号码', + 'retrievePassword.inputCorrectMobile': '请输入正确的手机号码', + 'retrievePassword.captchaRequired': '请输入图形验证码', + 'retrievePassword.mobileCaptchaRequired': '请输入短信验证码', + 'retrievePassword.newPasswordRequired': '请输入新密码', + 'retrievePassword.confirmNewPasswordRequired': '请确认新密码', + 'retrievePassword.passwordsNotMatch': '两次输入的密码不一致', + 'retrievePassword.mobilePlaceholder': '请输入手机号码', + 'retrievePassword.captchaPlaceholder': '请输入图形验证码', + 'retrievePassword.mobileCaptchaPlaceholder': '请输入短信验证码', + 'retrievePassword.newPasswordPlaceholder': '请输入新密码', + 'retrievePassword.confirmNewPasswordPlaceholder': '请确认新密码', + 'retrievePassword.getMobileCaptcha': '获取验证码', + 'retrievePassword.captchaSendSuccess': '验证码发送成功', + 'retrievePassword.passwordUpdateSuccess': '密码重置成功', + 'retrievePassword.resetButton': '重置密码', + 'retrievePassword.goToLogin': '返回登录', + // 消息提示 'message.loginSuccess': '登录成功!', 'message.loginFail': '登录失败', diff --git a/main/manager-mobile/src/i18n/zh_TW.ts b/main/manager-mobile/src/i18n/zh_TW.ts index 617aa5fb..8040dc0c 100644 --- a/main/manager-mobile/src/i18n/zh_TW.ts +++ b/main/manager-mobile/src/i18n/zh_TW.ts @@ -19,8 +19,7 @@ export default { 'login.enterCaptcha': '請輸入驗證碼', 'login.loginButton': '登錄', 'login.loggingIn': '登錄中...', - 'login.noAccount': '還沒有賬戶?', - 'login.registerNow': '立即註冊', + 'login.noAccount': '新用戶註冊', 'login.enterPhone': '請輸入手機號碼', 'login.selectCountry': '選擇國家/地區', 'login.confirm': '確認', @@ -30,6 +29,32 @@ export default { 'login.requiredCaptcha': '驗證碼不能為空', 'login.requiredMobile': '請輸入正確的手機號碼', 'login.captchaError': '圖形驗證碼錯誤', + 'login.forgotPassword': '忘記密碼', + + // 忘記密碼頁面 + 'retrievePassword.title': '重置密碼', + 'retrievePassword.subtitle': '請輸入您的手機號碼以重置密碼', + 'retrievePassword.mobileRequired': '請輸入手機號碼', + 'retrievePassword.inputCorrectMobile': '請輸入正確的手機號碼', + 'retrievePassword.captchaRequired': '請輸入圖形驗證碼', + 'retrievePassword.mobileCaptchaRequired': '請輸入手機驗證碼', + 'retrievePassword.newPasswordRequired': '請輸入新密碼', + 'retrievePassword.confirmNewPasswordRequired': '請確認新密碼', + 'retrievePassword.passwordsNotMatch': '兩次輸入的密碼不一致', + 'retrievePassword.mobilePlaceholder': '請輸入手機號碼', + 'retrievePassword.captchaPlaceholder': '請輸入圖形驗證碼', + 'retrievePassword.mobileCaptchaPlaceholder': '請輸入手機驗證碼', + 'retrievePassword.newPasswordPlaceholder': '請輸入新密碼', + 'retrievePassword.confirmNewPasswordPlaceholder': '請確認新密碼', + 'retrievePassword.confirmPasswordPlaceholder': '請確認新密碼', + 'retrievePassword.captchaSendSuccess': '驗證碼發送成功', + 'retrievePassword.passwordUpdateSuccess': '密碼更新成功', + 'retrievePassword.getCaptcha': '獲取驗證碼', + 'retrievePassword.getMobileCaptcha': '獲取驗證碼', + 'retrievePassword.resend': '重新發送', + 'retrievePassword.resetPasswordButton': '重置密碼', + 'retrievePassword.resetButton': '重置密碼', + 'retrievePassword.goToLogin': '返回登錄', // 註冊頁面 'register.pageTitle': '註冊', diff --git a/main/manager-mobile/src/pages/forgot-password/index.vue b/main/manager-mobile/src/pages/forgot-password/index.vue new file mode 100644 index 00000000..486321fa --- /dev/null +++ b/main/manager-mobile/src/pages/forgot-password/index.vue @@ -0,0 +1,622 @@ + +{ + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "ForgotPassword" + } +} + + + + + + + diff --git a/main/manager-mobile/src/pages/login/index.vue b/main/manager-mobile/src/pages/login/index.vue index 0a87707e..ffb8e740 100644 --- a/main/manager-mobile/src/pages/login/index.vue +++ b/main/manager-mobile/src/pages/login/index.vue @@ -116,6 +116,13 @@ function goToRegister() { }) } +// 跳转到忘记密码页面 +function goToForgotPassword() { + uni.navigateTo({ + url: '/pages/forgot-password/index', + }) +} + // 生成UUID function generateUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { @@ -369,13 +376,18 @@ onMounted(async () => { {{ loading ? t('login.loggingIn') : t('login.loginButton') }} - - - {{ t('login.noAccount') }} - - - {{ t('login.registerNow') }} - + + + + {{ t('login.noAccount') }} + + + + + + {{ t('login.forgotPassword') }} + + @@ -665,10 +677,14 @@ onMounted(async () => { } } - .forgot-password { - text-align: right; + .hint-row { + display: flex; + justify-content: space-between; + align-items: center; margin-bottom: 30rpx; + } + .forgot-password { .forgot-text { color: #667eea; font-size: 26rpx; @@ -706,14 +722,6 @@ onMounted(async () => { } .register-hint { - text-align: center; - - .hint-text { - color: #666666; - font-size: 26rpx; - margin-right: 8rpx; - } - .register-link { color: #667eea; font-size: 26rpx;