From 1e8960f37c8eb64e2a80e7a2c2d54f5a28d3bc80 Mon Sep 17 00:00:00 2001 From: zhuoqinglian <1035449612@qq.com> Date: Thu, 12 Mar 2026 17:34:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20mobile=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=8D=8F=E8=AE=AE=E5=92=8C=E9=9A=90=E7=A7=81=E6=94=BF?= =?UTF-8?q?=E7=AD=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-mobile/src/i18n/de.ts | 2 + main/manager-mobile/src/i18n/en.ts | 2 + main/manager-mobile/src/i18n/pt_BR.ts | 4 +- main/manager-mobile/src/i18n/vi.ts | 2 + main/manager-mobile/src/i18n/zh_CN.ts | 2 + main/manager-mobile/src/i18n/zh_TW.ts | 4 +- main/manager-mobile/src/pages/login/index.vue | 51 +- .../src/pages/login/privacy-policy-en.vue | 402 +++++++++++++ .../src/pages/login/privacy-policy-zh.vue | 402 +++++++++++++ .../src/pages/login/user-agreement-en.vue | 539 +++++++++++++++++ .../src/pages/login/user-agreement-zh.vue | 542 ++++++++++++++++++ 11 files changed, 1949 insertions(+), 3 deletions(-) create mode 100644 main/manager-mobile/src/pages/login/privacy-policy-en.vue create mode 100644 main/manager-mobile/src/pages/login/privacy-policy-zh.vue create mode 100644 main/manager-mobile/src/pages/login/user-agreement-en.vue create mode 100644 main/manager-mobile/src/pages/login/user-agreement-zh.vue diff --git a/main/manager-mobile/src/i18n/de.ts b/main/manager-mobile/src/i18n/de.ts index 546838cd..9d0711ea 100644 --- a/main/manager-mobile/src/i18n/de.ts +++ b/main/manager-mobile/src/i18n/de.ts @@ -30,6 +30,8 @@ export default { 'login.requiredMobile': 'Bitte gültige Handynummer eingeben', 'login.captchaError': 'Grafischer Bestätigungscode Fehler', 'login.forgotPassword': 'Passwort vergessen', + 'login.userAgreement': 'Nutzungsbedingungen', + 'login.privacyPolicy': 'Datenschutzrichtlinie', // Registrierungsseite 'register.pageTitle': 'Registrieren', diff --git a/main/manager-mobile/src/i18n/en.ts b/main/manager-mobile/src/i18n/en.ts index 9ccaad1d..ea232160 100644 --- a/main/manager-mobile/src/i18n/en.ts +++ b/main/manager-mobile/src/i18n/en.ts @@ -30,6 +30,8 @@ export default { 'login.requiredMobile': 'Please enter a valid phone number', 'login.captchaError': 'Graphic verification code error', 'login.forgotPassword': 'Forgot Password', + 'login.userAgreement': 'User Agreement', + 'login.privacyPolicy': 'Privacy Policy', // Register page 'register.pageTitle': 'Register', diff --git a/main/manager-mobile/src/i18n/pt_BR.ts b/main/manager-mobile/src/i18n/pt_BR.ts index e4594603..7d91096a 100644 --- a/main/manager-mobile/src/i18n/pt_BR.ts +++ b/main/manager-mobile/src/i18n/pt_BR.ts @@ -29,7 +29,9 @@ export default { 'login.requiredCaptcha': 'O código de verificação não pode estar vazio', 'login.requiredMobile': 'Por favor, insira um número de telefone válido', 'login.captchaError': 'Erro no código de verificação gráfico', - 'login.forgotPassword': 'Esqueceu a Senha', + 'login.forgotPassword': 'Esqueceu a Senha', + 'login.userAgreement': 'Termos de Uso', + 'login.privacyPolicy': 'Política de Privacidade', // Register page 'register.pageTitle': 'Cadastro', diff --git a/main/manager-mobile/src/i18n/vi.ts b/main/manager-mobile/src/i18n/vi.ts index 059663f2..2deab9d9 100644 --- a/main/manager-mobile/src/i18n/vi.ts +++ b/main/manager-mobile/src/i18n/vi.ts @@ -30,6 +30,8 @@ export default { 'login.requiredMobile': 'Vui lòng nhập số điện thoại hợp lệ', 'login.captchaError': 'Lỗi mã xác minh đồ họa', 'login.forgotPassword': 'Quên mật khẩu', + 'login.userAgreement': 'Thỏa thuận người dùng', + 'login.privacyPolicy': 'Chính sách bảo mật', // Trang đăng ký 'register.pageTitle': 'Đăng ký', diff --git a/main/manager-mobile/src/i18n/zh_CN.ts b/main/manager-mobile/src/i18n/zh_CN.ts index 10865328..dbe3980c 100644 --- a/main/manager-mobile/src/i18n/zh_CN.ts +++ b/main/manager-mobile/src/i18n/zh_CN.ts @@ -30,6 +30,8 @@ export default { 'login.requiredMobile': '请输入正确的手机号码', 'login.captchaError': '图形验证码错误', 'login.forgotPassword': '忘记密码', + 'login.userAgreement': '用户协议', + 'login.privacyPolicy': '隐私政策', // 注册页面 'register.pageTitle': '注册', diff --git a/main/manager-mobile/src/i18n/zh_TW.ts b/main/manager-mobile/src/i18n/zh_TW.ts index f428878f..d290a118 100644 --- a/main/manager-mobile/src/i18n/zh_TW.ts +++ b/main/manager-mobile/src/i18n/zh_TW.ts @@ -29,7 +29,9 @@ export default { 'login.requiredCaptcha': '驗證碼不能為空', 'login.requiredMobile': '請輸入正確的手機號碼', 'login.captchaError': '圖形驗證碼錯誤', - 'login.forgotPassword': '忘記密碼', + 'login.forgotPassword': '忘記密碼', + 'login.userAgreement': '用戶協議', + 'login.privacyPolicy': '隱私政策', // 忘記密碼頁面 'retrievePassword.title': '重置密碼', diff --git a/main/manager-mobile/src/pages/login/index.vue b/main/manager-mobile/src/pages/login/index.vue index a093694c..1b2edefd 100644 --- a/main/manager-mobile/src/pages/login/index.vue +++ b/main/manager-mobile/src/pages/login/index.vue @@ -14,7 +14,7 @@ import type { Language } from '@/store/lang' import { computed, onMounted, ref } from 'vue' import { login } from '@/api/auth' // 导入国际化相关功能 -import { changeLanguage, getSupportedLanguages, initI18n, t } from '@/i18n' +import { changeLanguage, getCurrentLanguage, getSupportedLanguages, initI18n, t } from '@/i18n' import { useConfigStore } from '@/store' // 导入SM2加密工具 import { getEnvBaseUrl, sm2Encrypt } from '@/utils' @@ -117,6 +117,22 @@ function goToForgotPassword() { }) } +// 跳转到用户协议 +function goToUserAgreement() { + const lang = getCurrentLanguage() === 'zh_CN' ? 'zh' : 'en' + uni.navigateTo({ + url: `/pages/login/user-agreement-${lang}`, + }) +} + +// 跳转到隐私政策 +function goToPrivacyPolicy() { + const lang = getCurrentLanguage() === 'zh_CN' ? 'zh' : 'en' + uni.navigateTo({ + url: `/pages/login/privacy-policy-${lang}`, + }) +} + // 生成UUID function generateUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { @@ -387,6 +403,16 @@ onMounted(async () => { + + + {{ t('login.userAgreement') }} + + | + + {{ t('login.privacyPolicy') }} + + + @@ -681,6 +707,29 @@ onMounted(async () => { margin-bottom: 30rpx; } + .policy-links { + display: flex; + justify-content: center; + align-items: center; + gap: 20rpx; + margin-bottom: 30rpx; + + .policy-link { + color: #667eea; + font-size: 26rpx; + cursor: pointer; + + &:hover { + text-decoration: underline; + } + } + + .policy-divider { + color: #999999; + font-size: 26rpx; + } + } + .forgot-password { .forgot-text { color: #667eea; diff --git a/main/manager-mobile/src/pages/login/privacy-policy-en.vue b/main/manager-mobile/src/pages/login/privacy-policy-en.vue new file mode 100644 index 00000000..53aa0216 --- /dev/null +++ b/main/manager-mobile/src/pages/login/privacy-policy-en.vue @@ -0,0 +1,402 @@ + +{ + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "Privacy Policy" + } +} + + + + + diff --git a/main/manager-mobile/src/pages/login/privacy-policy-zh.vue b/main/manager-mobile/src/pages/login/privacy-policy-zh.vue new file mode 100644 index 00000000..3fffa070 --- /dev/null +++ b/main/manager-mobile/src/pages/login/privacy-policy-zh.vue @@ -0,0 +1,402 @@ + +{ + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "隐私政策" + } +} + + + + + diff --git a/main/manager-mobile/src/pages/login/user-agreement-en.vue b/main/manager-mobile/src/pages/login/user-agreement-en.vue new file mode 100644 index 00000000..be9369a1 --- /dev/null +++ b/main/manager-mobile/src/pages/login/user-agreement-en.vue @@ -0,0 +1,539 @@ + +{ + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "User Agreement" + } +} + + + + + diff --git a/main/manager-mobile/src/pages/login/user-agreement-zh.vue b/main/manager-mobile/src/pages/login/user-agreement-zh.vue new file mode 100644 index 00000000..e612a187 --- /dev/null +++ b/main/manager-mobile/src/pages/login/user-agreement-zh.vue @@ -0,0 +1,542 @@ + +{ + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "用户协议" + } +} + + + + + + +