feat(auth): 添加用户认证系统和导航菜单重构

- 实现用户登录注册功能并添加路由守卫
- 将Element UI菜单替换为自定义导航菜单样式
- 添加多语言用户相关文本资源
- 重构订单确认页面货币转换逻辑
- 实现支付成功/取消页面返回商品详情功能
- 在商品管理页面添加用户信息入口
- 调整API请求添加ERP接口认证机制
- 优化移动端导航菜单适配样式
This commit is contained in:
2025-12-25 15:09:32 +08:00
parent 1c461ab5c3
commit 48156d72aa
8 changed files with 567 additions and 74 deletions

View File

@@ -165,6 +165,46 @@ const zh = {
currencySGD: '新加坡元',
currencyHKD: '港币',
currencyPHP: '菲律宾比索'
},
// 用户相关
user: {
login: '登录',
register: '注册',
logout: '退出登录',
username: '账号',
password: '密码',
nickName: '用户名称',
phone: '手机号',
email: '邮箱',
storeCode: '店铺号',
loginTitle: '用户登录',
registerTitle: '用户注册',
loginSuccess: '登录成功',
registerSuccess: '注册成功',
logoutSuccess: '退出登录成功',
usernameRequired: '请输入账号',
passwordRequired: '请输入密码',
storeCodeRequired: '请输入店铺号',
usernamePlaceholder: '请输入账号3-50个字符',
passwordPlaceholder: '请输入密码6-20个字符',
nickNamePlaceholder: '请输入用户名称(可选)',
phonePlaceholder: '请输入手机号(可选)',
emailPlaceholder: '请输入邮箱(可选)',
storeCodePlaceholder: '请输入店铺号',
usernameInvalid: '账号只能包含字母、数字和下划线',
passwordInvalid: '密码长度必须在6-20个字符之间',
phoneInvalid: '手机号格式不正确',
emailInvalid: '邮箱格式不正确',
noAccount: '还没有账号?',
hasAccount: '已有账号?',
goRegister: '立即注册',
goLogin: '立即登录',
rememberMe: '记住我',
forgotPassword: '忘记密码?',
userInfo: '用户信息',
welcome: '欢迎',
lastLoginTime: '最后登录时间',
lastLoginIp: '最后登录IP'
}
}
@@ -327,6 +367,46 @@ const en = {
currencySGD: 'Singapore Dollar',
currencyHKD: 'Hong Kong Dollar',
currencyPHP: 'Philippine Peso'
},
// 用户相关
user: {
login: 'Login',
register: 'Register',
logout: 'Logout',
username: 'Username',
password: 'Password',
nickName: 'Nick Name',
phone: 'Phone',
email: 'Email',
storeCode: 'Store Code',
loginTitle: 'User Login',
registerTitle: 'User Register',
loginSuccess: 'Login successful',
registerSuccess: 'Registration successful',
logoutSuccess: 'Logout successful',
usernameRequired: 'Please enter username',
passwordRequired: 'Please enter password',
storeCodeRequired: 'Please enter store code',
usernamePlaceholder: 'Please enter username (3-50 characters)',
passwordPlaceholder: 'Please enter password (6-20 characters)',
nickNamePlaceholder: 'Please enter nick name (optional)',
phonePlaceholder: 'Please enter phone number (optional)',
emailPlaceholder: 'Please enter email (optional)',
storeCodePlaceholder: 'Please enter store code',
usernameInvalid: 'Username can only contain letters, numbers and underscores',
passwordInvalid: 'Password length must be between 6-20 characters',
phoneInvalid: 'Invalid phone number format',
emailInvalid: 'Invalid email format',
noAccount: 'No account yet?',
hasAccount: 'Already have an account?',
goRegister: 'Register now',
goLogin: 'Login now',
rememberMe: 'Remember me',
forgotPassword: 'Forgot password?',
userInfo: 'User Information',
welcome: 'Welcome',
lastLoginTime: 'Last Login Time',
lastLoginIp: 'Last Login IP'
}
}
@@ -486,6 +566,46 @@ const may = {
currencySGD: 'Dolar Singapura',
currencyHKD: 'Dolar Hong Kong',
currencyPHP: 'Peso Filipina'
},
// 用户相关
user: {
login: 'Log Masuk',
register: 'Daftar',
logout: 'Log Keluar',
username: 'Nama Pengguna',
password: 'Kata Laluan',
nickName: 'Nama Panggilan',
phone: 'Telefon',
email: 'E-mel',
storeCode: 'Kod Kedai',
loginTitle: 'Log Masuk Pengguna',
registerTitle: 'Pendaftaran Pengguna',
loginSuccess: 'Log masuk berjaya',
registerSuccess: 'Pendaftaran berjaya',
logoutSuccess: 'Log keluar berjaya',
usernameRequired: 'Sila masukkan nama pengguna',
passwordRequired: 'Sila masukkan kata laluan',
storeCodeRequired: 'Sila masukkan kod kedai',
usernamePlaceholder: 'Sila masukkan nama pengguna (3-50 aksara)',
passwordPlaceholder: 'Sila masukkan kata laluan (6-20 aksara)',
nickNamePlaceholder: 'Sila masukkan nama panggilan (pilihan)',
phonePlaceholder: 'Sila masukkan nombor telefon (pilihan)',
emailPlaceholder: 'Sila masukkan e-mel (pilihan)',
storeCodePlaceholder: 'Sila masukkan kod kedai',
usernameInvalid: 'Nama pengguna hanya boleh mengandungi huruf, nombor dan garis bawah',
passwordInvalid: 'Panjang kata laluan mestilah antara 6-20 aksara',
phoneInvalid: 'Format nombor telefon tidak sah',
emailInvalid: 'Format e-mel tidak sah',
noAccount: 'Belum ada akaun?',
hasAccount: 'Sudah ada akaun?',
goRegister: 'Daftar sekarang',
goLogin: 'Log masuk sekarang',
rememberMe: 'Ingat saya',
forgotPassword: 'Lupa kata laluan?',
userInfo: 'Maklumat Pengguna',
welcome: 'Selamat datang',
lastLoginTime: 'Masa Log Masuk Terakhir',
lastLoginIp: 'IP Log Masuk Terakhir'
}
}
@@ -592,6 +712,46 @@ const fil = {
currencySGD: 'Singapore Dollar',
currencyHKD: 'Hong Kong Dollar',
currencyPHP: 'Philippine Peso'
},
// 用户相关
user: {
login: 'Mag-login',
register: 'Magrehistro',
logout: 'Mag-logout',
username: 'Username',
password: 'Password',
nickName: 'Palayaw',
phone: 'Telepono',
email: 'Email',
storeCode: 'Store Code',
loginTitle: 'User Login',
registerTitle: 'User Register',
loginSuccess: 'Matagumpay na pag-login',
registerSuccess: 'Matagumpay na pagrehistro',
logoutSuccess: 'Matagumpay na pag-logout',
usernameRequired: 'Mangyaring maglagay ng username',
passwordRequired: 'Mangyaring maglagay ng password',
storeCodeRequired: 'Mangyaring maglagay ng store code',
usernamePlaceholder: 'Mangyaring maglagay ng username (3-50 characters)',
passwordPlaceholder: 'Mangyaring maglagay ng password (6-20 characters)',
nickNamePlaceholder: 'Mangyaring maglagay ng palayaw (opsyonal)',
phonePlaceholder: 'Mangyaring maglagay ng numero ng telepono (opsyonal)',
emailPlaceholder: 'Mangyaring maglagay ng email (opsyonal)',
storeCodePlaceholder: 'Mangyaring maglagay ng store code',
usernameInvalid: 'Ang username ay maaari lamang maglaman ng mga titik, numero at underscore',
passwordInvalid: 'Ang haba ng password ay dapat nasa pagitan ng 6-20 characters',
phoneInvalid: 'Hindi wasto ang format ng numero ng telepono',
emailInvalid: 'Hindi wasto ang format ng email',
noAccount: 'Wala pang account?',
hasAccount: 'Mayroon nang account?',
goRegister: 'Magrehistro ngayon',
goLogin: 'Mag-login ngayon',
rememberMe: 'Tandaan ako',
forgotPassword: 'Nakalimutan ang password?',
userInfo: 'Impormasyon ng User',
welcome: 'Maligayang pagdating',
lastLoginTime: 'Huling Oras ng Login',
lastLoginIp: 'Huling IP ng Login'
}
}
@@ -750,6 +910,46 @@ const th = {
currencySGD: 'ดอลลาร์สิงคโปร์',
currencyHKD: 'ดอลลาร์ฮ่องกง',
currencyPHP: 'เปโซฟิลิปปินส์'
},
// 用户相关
user: {
login: 'เข้าสู่ระบบ',
register: 'ลงทะเบียน',
logout: 'ออกจากระบบ',
username: 'ชื่อผู้ใช้',
password: 'รหัสผ่าน',
nickName: 'ชื่อเล่น',
phone: 'เบอร์โทรศัพท์',
email: 'อีเมล',
storeCode: 'รหัสร้านค้า',
loginTitle: 'เข้าสู่ระบบผู้ใช้',
registerTitle: 'ลงทะเบียนผู้ใช้',
loginSuccess: 'เข้าสู่ระบบสำเร็จ',
registerSuccess: 'ลงทะเบียนสำเร็จ',
logoutSuccess: 'ออกจากระบบสำเร็จ',
usernameRequired: 'กรุณากรอกชื่อผู้ใช้',
passwordRequired: 'กรุณากรอกรหัสผ่าน',
storeCodeRequired: 'กรุณากรอกรหัสร้านค้า',
usernamePlaceholder: 'กรุณากรอกชื่อผู้ใช้ (3-50 ตัวอักษร)',
passwordPlaceholder: 'กรุณากรอกรหัสผ่าน (6-20 ตัวอักษร)',
nickNamePlaceholder: 'กรุณากรอกชื่อเล่น (ไม่บังคับ)',
phonePlaceholder: 'กรุณากรอกเบอร์โทรศัพท์ (ไม่บังคับ)',
emailPlaceholder: 'กรุณากรอกอีเมล (ไม่บังคับ)',
storeCodePlaceholder: 'กรุณากรอกรหัสร้านค้า',
usernameInvalid: 'ชื่อผู้ใช้สามารถมีได้เฉพาะตัวอักษร ตัวเลข และขีดล่าง',
passwordInvalid: 'ความยาวรหัสผ่านต้องอยู่ระหว่าง 6-20 ตัวอักษร',
phoneInvalid: 'รูปแบบเบอร์โทรศัพท์ไม่ถูกต้อง',
emailInvalid: 'รูปแบบอีเมลไม่ถูกต้อง',
noAccount: 'ยังไม่มีบัญชี?',
hasAccount: 'มีบัญชีแล้ว?',
goRegister: 'ลงทะเบียนตอนนี้',
goLogin: 'เข้าสู่ระบบตอนนี้',
rememberMe: 'จำฉันไว้',
forgotPassword: 'ลืมรหัสผ่าน?',
userInfo: 'ข้อมูลผู้ใช้',
welcome: 'ยินดีต้อนรับ',
lastLoginTime: 'เวลาเข้าสู่ระบบล่าสุด',
lastLoginIp: 'IP เข้าสู่ระบบล่าสุด'
}
}
@@ -909,6 +1109,46 @@ const vie = {
currencySGD: 'Đô La Singapore',
currencyHKD: 'Đô La Hồng Kông',
currencyPHP: 'Peso Philippines'
},
// 用户相关
user: {
login: 'Đăng nhập',
register: 'Đăng ký',
logout: 'Đăng xuất',
username: 'Tên đăng nhập',
password: 'Mật khẩu',
nickName: 'Tên hiển thị',
phone: 'Số điện thoại',
email: 'Email',
storeCode: 'Mã cửa hàng',
loginTitle: 'Đăng nhập người dùng',
registerTitle: 'Đăng ký người dùng',
loginSuccess: 'Đăng nhập thành công',
registerSuccess: 'Đăng ký thành công',
logoutSuccess: 'Đăng xuất thành công',
usernameRequired: 'Vui lòng nhập tên đăng nhập',
passwordRequired: 'Vui lòng nhập mật khẩu',
storeCodeRequired: 'Vui lòng nhập mã cửa hàng',
usernamePlaceholder: 'Vui lòng nhập tên đăng nhập (3-50 ký tự)',
passwordPlaceholder: 'Vui lòng nhập mật khẩu (6-20 ký tự)',
nickNamePlaceholder: 'Vui lòng nhập tên hiển thị (tùy chọn)',
phonePlaceholder: 'Vui lòng nhập số điện thoại (tùy chọn)',
emailPlaceholder: 'Vui lòng nhập email (tùy chọn)',
storeCodePlaceholder: 'Vui lòng nhập mã cửa hàng',
usernameInvalid: 'Tên đăng nhập chỉ có thể chứa chữ cái, số và dấu gạch dưới',
passwordInvalid: 'Độ dài mật khẩu phải từ 6-20 ký tự',
phoneInvalid: 'Định dạng số điện thoại không hợp lệ',
emailInvalid: 'Định dạng email không hợp lệ',
noAccount: 'Chưa có tài khoản?',
hasAccount: 'Đã có tài khoản?',
goRegister: 'Đăng ký ngay',
goLogin: 'Đăng nhập ngay',
rememberMe: 'Ghi nhớ đăng nhập',
forgotPassword: 'Quên mật khẩu?',
userInfo: 'Thông tin người dùng',
welcome: 'Chào mừng',
lastLoginTime: 'Thời gian đăng nhập cuối',
lastLoginIp: 'IP đăng nhập cuối'
}
}
@@ -1015,6 +1255,46 @@ const id = {
currencySGD: 'Dolar Singapura',
currencyHKD: 'Dolar Hong Kong',
currencyPHP: 'Peso Filipina'
},
// 用户相关
user: {
login: 'Masuk',
register: 'Daftar',
logout: 'Keluar',
username: 'Nama Pengguna',
password: 'Kata Sandi',
nickName: 'Nama Panggilan',
phone: 'Telepon',
email: 'Email',
storeCode: 'Kode Toko',
loginTitle: 'Masuk Pengguna',
registerTitle: 'Pendaftaran Pengguna',
loginSuccess: 'Berhasil masuk',
registerSuccess: 'Pendaftaran berhasil',
logoutSuccess: 'Berhasil keluar',
usernameRequired: 'Silakan masukkan nama pengguna',
passwordRequired: 'Silakan masukkan kata sandi',
storeCodeRequired: 'Silakan masukkan kode toko',
usernamePlaceholder: 'Silakan masukkan nama pengguna (3-50 karakter)',
passwordPlaceholder: 'Silakan masukkan kata sandi (6-20 karakter)',
nickNamePlaceholder: 'Silakan masukkan nama panggilan (opsional)',
phonePlaceholder: 'Silakan masukkan nomor telepon (opsional)',
emailPlaceholder: 'Silakan masukkan email (opsional)',
storeCodePlaceholder: 'Silakan masukkan kode toko',
usernameInvalid: 'Nama pengguna hanya dapat berisi huruf, angka dan garis bawah',
passwordInvalid: 'Panjang kata sandi harus antara 6-20 karakter',
phoneInvalid: 'Format nomor telepon tidak valid',
emailInvalid: 'Format email tidak valid',
noAccount: 'Belum punya akun?',
hasAccount: 'Sudah punya akun?',
goRegister: 'Daftar sekarang',
goLogin: 'Masuk sekarang',
rememberMe: 'Ingat saya',
forgotPassword: 'Lupa kata sandi?',
userInfo: 'Informasi Pengguna',
welcome: 'Selamat datang',
lastLoginTime: 'Waktu Masuk Terakhir',
lastLoginIp: 'IP Masuk Terakhir'
}
}