feat: Multi-user system with PostgreSQL - WIP temporary save

This commit is contained in:
TIANHE
2026-01-14 05:29:55 +08:00
parent 996e3b38fe
commit 61a5e5e6aa
68 changed files with 91057 additions and 1920 deletions
@@ -443,6 +443,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': 'فشلت الإضافة',
'dashboard.analysis.message.removeStockSuccess': 'تمت الإزالة بنجاح',
'dashboard.analysis.message.removeStockFailed': 'فشلت عملية الإزالة',
'dashboard.analysis.message.resumingAnalysis': 'جاري استئناف مهمة التحليل...',
'dashboard.analysis.message.deleteSuccess': 'تم الحذف بنجاح',
'dashboard.analysis.message.deleteFailed': 'فشل الحذف',
'dashboard.analysis.modal.history.delete': 'حذف',
'dashboard.analysis.modal.history.deleteConfirm': 'هل أنت متأكد أنك تريد حذف سجل التحليل هذا؟',
'dashboard.analysis.test': 'متجر رقم {no}، طريق Gongzhuan',
'dashboard.analysis.introduce': 'وصف المؤشر',
'dashboard.analysis.total-sales': 'إجمالي المبيعات',
@@ -444,6 +444,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': 'Das Hinzufügen ist fehlgeschlagen',
'dashboard.analysis.message.removeStockSuccess': 'Erfolgreich entfernt',
'dashboard.analysis.message.removeStockFailed': 'Das Entfernen ist fehlgeschlagen',
'dashboard.analysis.message.resumingAnalysis': 'Analyseaufgabe wird fortgesetzt...',
'dashboard.analysis.message.deleteSuccess': 'Erfolgreich gelöscht',
'dashboard.analysis.message.deleteFailed': 'Löschen fehlgeschlagen',
'dashboard.analysis.modal.history.delete': 'Löschen',
'dashboard.analysis.modal.history.deleteConfirm': 'Möchten Sie diesen Analysedatensatz wirklich löschen?',
'dashboard.analysis.test': 'Geschäft Nr. {no}, Gongzhuan Road',
'dashboard.analysis.introduce': 'Beschreibung des Indikators',
'dashboard.analysis.total-sales': 'Gesamtumsatz',
+71 -1
View File
@@ -485,6 +485,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': 'Failed to add',
'dashboard.analysis.message.removeStockSuccess': 'Removed successfully',
'dashboard.analysis.message.removeStockFailed': 'Failed to remove',
'dashboard.analysis.message.resumingAnalysis': 'Resuming analysis task...',
'dashboard.analysis.message.deleteSuccess': 'Deleted successfully',
'dashboard.analysis.message.deleteFailed': 'Failed to delete',
'dashboard.analysis.modal.history.delete': 'Delete',
'dashboard.analysis.modal.history.deleteConfirm': 'Are you sure you want to delete this analysis record?',
'dashboard.analysis.test': 'Gongzhuan No.{no} shop',
'dashboard.analysis.introduce': 'Introduce',
'dashboard.analysis.total-sales': 'Total Sales',
@@ -2266,7 +2271,72 @@ const locale = {
'portfolio.alerts.delete': 'Delete',
'portfolio.alerts.deleteConfirm': 'Are you sure you want to delete this alert?',
'portfolio.modal.addAlert': 'Add Alert',
'portfolio.modal.editAlert': 'Edit Alert'
'portfolio.modal.editAlert': 'Edit Alert',
// User Management
'menu.userManage': 'User Management',
'menu.myProfile': 'My Profile',
'common.actions': 'Actions',
'common.refresh': 'Refresh',
'userManage.title': 'User Management',
'userManage.description': 'Manage system users, roles and permissions',
'userManage.createUser': 'Create User',
'userManage.editUser': 'Edit User',
'userManage.username': 'Username',
'userManage.password': 'Password',
'userManage.nickname': 'Nickname',
'userManage.email': 'Email',
'userManage.role': 'Role',
'userManage.status': 'Status',
'userManage.lastLogin': 'Last Login',
'userManage.active': 'Active',
'userManage.disabled': 'Disabled',
'userManage.neverLogin': 'Never',
'userManage.usernameRequired': 'Please enter username',
'userManage.usernamePlaceholder': 'Enter username',
'userManage.passwordRequired': 'Please enter password',
'userManage.passwordPlaceholder': 'Enter password (min 6 chars)',
'userManage.passwordMin': 'Password must be at least 6 characters',
'userManage.nicknamePlaceholder': 'Enter nickname',
'userManage.emailPlaceholder': 'Enter email',
'userManage.emailInvalid': 'Invalid email format',
'userManage.rolePlaceholder': 'Select role',
'userManage.statusPlaceholder': 'Select status',
'userManage.resetPassword': 'Reset Password',
'userManage.resetPasswordWarning': 'This will reset the user\'s password',
'userManage.newPassword': 'New Password',
'userManage.newPasswordPlaceholder': 'Enter new password',
'userManage.confirmDelete': 'Are you sure to delete this user?',
'userManage.roleAdmin': 'Admin',
'userManage.roleManager': 'Manager',
'userManage.roleUser': 'User',
'userManage.roleViewer': 'Viewer',
// Profile
'profile.title': 'My Profile',
'profile.description': 'Manage your account settings and preferences',
'profile.basicInfo': 'Basic Info',
'profile.changePassword': 'Change Password',
'profile.username': 'Username',
'profile.nickname': 'Nickname',
'profile.email': 'Email',
'profile.lastLogin': 'Last Login',
'profile.nicknamePlaceholder': 'Enter your nickname',
'profile.emailPlaceholder': 'Enter your email',
'profile.emailInvalid': 'Invalid email format',
'profile.passwordHint': 'Password must be at least 6 characters',
'profile.oldPassword': 'Current Password',
'profile.newPassword': 'New Password',
'profile.confirmPassword': 'Confirm Password',
'profile.oldPasswordRequired': 'Please enter current password',
'profile.oldPasswordPlaceholder': 'Enter current password',
'profile.newPasswordRequired': 'Please enter new password',
'profile.newPasswordPlaceholder': 'Enter new password',
'profile.confirmPasswordRequired': 'Please confirm password',
'profile.confirmPasswordPlaceholder': 'Confirm new password',
'profile.passwordMin': 'Password must be at least 6 characters',
'profile.passwordMismatch': 'Passwords do not match'
}
export default {
@@ -444,6 +444,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': "L'ajout a échoué",
'dashboard.analysis.message.removeStockSuccess': 'Supprimé avec succès',
'dashboard.analysis.message.removeStockFailed': 'Échec de la suppression',
'dashboard.analysis.message.resumingAnalysis': "Reprise de la tâche d'analyse...",
'dashboard.analysis.message.deleteSuccess': 'Supprimé avec succès',
'dashboard.analysis.message.deleteFailed': 'Échec de la suppression',
'dashboard.analysis.modal.history.delete': 'Supprimer',
'dashboard.analysis.modal.history.deleteConfirm': "Êtes-vous sûr de vouloir supprimer cet enregistrement d'analyse ?",
'dashboard.analysis.test': 'Magasin n° {no}, route Gongzhuan',
'dashboard.analysis.introduce': "Description de l'indicateur",
'dashboard.analysis.total-sales': 'ventes totales',
@@ -444,6 +444,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': '追加に失敗しました',
'dashboard.analysis.message.removeStockSuccess': '正常に削除されました',
'dashboard.analysis.message.removeStockFailed': '削除に失敗しました',
'dashboard.analysis.message.resumingAnalysis': '分析タスクを再開しています...',
'dashboard.analysis.message.deleteSuccess': '正常に削除されました',
'dashboard.analysis.message.deleteFailed': '削除に失敗しました',
'dashboard.analysis.modal.history.delete': '削除',
'dashboard.analysis.modal.history.deleteConfirm': 'この分析記録を削除してもよろしいですか?',
'dashboard.analysis.test': 'ショップ番号 {no}、公庄路',
'dashboard.analysis.introduce': 'インジケーターの説明',
'dashboard.analysis.total-sales': '総売上高',
@@ -443,6 +443,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': '추가 실패',
'dashboard.analysis.message.removeStockSuccess': '성공적으로 제거되었습니다',
'dashboard.analysis.message.removeStockFailed': '제거 실패',
'dashboard.analysis.message.resumingAnalysis': '분석 작업을 재개하는 중...',
'dashboard.analysis.message.deleteSuccess': '성공적으로 삭제되었습니다',
'dashboard.analysis.message.deleteFailed': '삭제 실패',
'dashboard.analysis.modal.history.delete': '삭제',
'dashboard.analysis.modal.history.deleteConfirm': '이 분석 기록을 삭제하시겠습니까?',
'dashboard.analysis.test': '상점 번호 {no}, Gongzhuan Road',
'dashboard.analysis.introduce': '표시기 설명',
'dashboard.analysis.total-sales': '총매출',
@@ -444,6 +444,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': 'เพิ่มล้มเหลว',
'dashboard.analysis.message.removeStockSuccess': 'ลบสำเร็จแล้ว',
'dashboard.analysis.message.removeStockFailed': 'การลบล้มเหลว',
'dashboard.analysis.message.resumingAnalysis': 'กำลังดำเนินการงานวิเคราะห์ต่อ...',
'dashboard.analysis.message.deleteSuccess': 'ลบสำเร็จแล้ว',
'dashboard.analysis.message.deleteFailed': 'การลบล้มเหลว',
'dashboard.analysis.modal.history.delete': 'ลบ',
'dashboard.analysis.modal.history.deleteConfirm': 'คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการวิเคราะห์นี้?',
'dashboard.analysis.test': 'ร้านค้าเลขที่ {no} ถนน Gongzhan',
'dashboard.analysis.introduce': 'คำอธิบายตัวบ่งชี้',
'dashboard.analysis.total-sales': 'ยอดขายรวม',
+10
View File
@@ -876,6 +876,16 @@ const locale = {
'dashboard.analysis.message.removeStockFailed': 'Xóa thất bại',
'dashboard.analysis.message.resumingAnalysis': 'Đang tiếp tục tác vụ phân tích...',
'dashboard.analysis.message.deleteSuccess': 'Đã xóa thành công',
'dashboard.analysis.message.deleteFailed': 'Xóa thất bại',
'dashboard.analysis.modal.history.delete': 'Xóa',
'dashboard.analysis.modal.history.deleteConfirm': 'Bạn có chắc chắn muốn xóa bản ghi phân tích này không?',
'dashboard.analysis.test': 'Cửa hàng đường Gongzhuan {không}',
'dashboard.analysis.introduce': 'Mô tả chỉ báo',
+71 -1
View File
@@ -485,6 +485,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': '添加失败',
'dashboard.analysis.message.removeStockSuccess': '移除成功',
'dashboard.analysis.message.removeStockFailed': '移除失败',
'dashboard.analysis.message.resumingAnalysis': '正在恢复分析任务...',
'dashboard.analysis.message.deleteSuccess': '删除成功',
'dashboard.analysis.message.deleteFailed': '删除失败',
'dashboard.analysis.modal.history.delete': '删除',
'dashboard.analysis.modal.history.deleteConfirm': '确定要删除这条分析记录吗?',
'dashboard.analysis.test': '工专路 {no} 号店',
'dashboard.analysis.introduce': '指标说明',
'dashboard.analysis.total-sales': '总销售额',
@@ -2075,7 +2080,72 @@ const locale = {
'portfolio.alerts.delete': '删除',
'portfolio.alerts.deleteConfirm': '确定要删除此预警吗?',
'portfolio.modal.addAlert': '添加预警',
'portfolio.modal.editAlert': '编辑预警'
'portfolio.modal.editAlert': '编辑预警',
// User Management
'menu.userManage': '用户管理',
'menu.myProfile': '个人中心',
'common.actions': '操作',
'common.refresh': '刷新',
'userManage.title': '用户管理',
'userManage.description': '管理系统用户、角色和权限',
'userManage.createUser': '创建用户',
'userManage.editUser': '编辑用户',
'userManage.username': '用户名',
'userManage.password': '密码',
'userManage.nickname': '昵称',
'userManage.email': '邮箱',
'userManage.role': '角色',
'userManage.status': '状态',
'userManage.lastLogin': '最后登录',
'userManage.active': '启用',
'userManage.disabled': '禁用',
'userManage.neverLogin': '从未登录',
'userManage.usernameRequired': '请输入用户名',
'userManage.usernamePlaceholder': '输入用户名',
'userManage.passwordRequired': '请输入密码',
'userManage.passwordPlaceholder': '输入密码(至少6位)',
'userManage.passwordMin': '密码至少6个字符',
'userManage.nicknamePlaceholder': '输入昵称',
'userManage.emailPlaceholder': '输入邮箱',
'userManage.emailInvalid': '邮箱格式不正确',
'userManage.rolePlaceholder': '选择角色',
'userManage.statusPlaceholder': '选择状态',
'userManage.resetPassword': '重置密码',
'userManage.resetPasswordWarning': '此操作将重置用户密码',
'userManage.newPassword': '新密码',
'userManage.newPasswordPlaceholder': '输入新密码',
'userManage.confirmDelete': '确定要删除此用户吗?',
'userManage.roleAdmin': '管理员',
'userManage.roleManager': '经理',
'userManage.roleUser': '普通用户',
'userManage.roleViewer': '访客',
// Profile
'profile.title': '个人中心',
'profile.description': '管理您的账户设置和偏好',
'profile.basicInfo': '基本信息',
'profile.changePassword': '修改密码',
'profile.username': '用户名',
'profile.nickname': '昵称',
'profile.email': '邮箱',
'profile.lastLogin': '最后登录',
'profile.nicknamePlaceholder': '输入您的昵称',
'profile.emailPlaceholder': '输入您的邮箱',
'profile.emailInvalid': '邮箱格式不正确',
'profile.passwordHint': '密码至少需要6个字符',
'profile.oldPassword': '当前密码',
'profile.newPassword': '新密码',
'profile.confirmPassword': '确认密码',
'profile.oldPasswordRequired': '请输入当前密码',
'profile.oldPasswordPlaceholder': '输入当前密码',
'profile.newPasswordRequired': '请输入新密码',
'profile.newPasswordPlaceholder': '输入新密码',
'profile.confirmPasswordRequired': '请确认新密码',
'profile.confirmPasswordPlaceholder': '再次输入新密码',
'profile.passwordMin': '密码至少6个字符',
'profile.passwordMismatch': '两次输入的密码不一致'
}
export default {
@@ -445,6 +445,11 @@ const locale = {
'dashboard.analysis.message.addStockFailed': '添加失敗',
'dashboard.analysis.message.removeStockSuccess': '移除成功',
'dashboard.analysis.message.removeStockFailed': '移除失敗',
'dashboard.analysis.message.resumingAnalysis': '正在恢復分析任務...',
'dashboard.analysis.message.deleteSuccess': '刪除成功',
'dashboard.analysis.message.deleteFailed': '刪除失敗',
'dashboard.analysis.modal.history.delete': '刪除',
'dashboard.analysis.modal.history.deleteConfirm': '確定要刪除這條分析記錄嗎?',
'dashboard.analysis.test': '工專路 {no} 號店',
'dashboard.analysis.introduce': '指標說明',
'dashboard.analysis.total-sales': '總銷售額',