refactor: modularize frontend flows

This commit is contained in:
Lan
2026-06-03 02:01:57 +08:00
parent 9300607f96
commit a11e7900b4
85 changed files with 4654 additions and 4363 deletions
+4 -3
View File
@@ -1,10 +1,11 @@
import { createI18n } from 'vue-i18n'
import zhCN from './locales/zh-CN'
import enUS from './locales/en-US'
import { readStoredLocale, writeStoredLocale } from '@/utils/preference-storage'
// 获取浏览器语言设置
const getDefaultLocale = (): string => {
const savedLocale = localStorage.getItem('locale')
const savedLocale = readStoredLocale()
if (savedLocale) {
return savedLocale
}
@@ -34,7 +35,7 @@ export default i18n
// 导出切换语言的函数
export const setLocale = (locale: string) => {
i18n.global.locale.value = locale as 'zh-CN' | 'en-US'
localStorage.setItem('locale', locale)
writeStoredLocale(locale)
document.documentElement.lang = locale
}
@@ -47,4 +48,4 @@ export const getCurrentLocale = () => {
export const availableLocales = [
{ code: 'zh-CN', name: '中文' },
{ code: 'en-US', name: 'English' }
]
]
+73 -16
View File
@@ -58,14 +58,42 @@ export default {
title: 'Dashboard',
totalFiles: 'Total Files',
storageSpace: 'Storage Space',
activeUsers: 'Active Users',
systemStatus: 'System Status',
yesterday: 'Yesterday:',
today: 'Today:',
weeklyChange: '↓ 5% from last week',
normal: 'Normal',
serverUptime: 'Server Uptime:',
version: 'Version v2.2.1 Updated: 2025-09-04'
todayShares: 'Today Shares',
totalRetrievals: 'Total Retrievals',
activeFiles: 'Active files: {count}',
todayIncrease: 'Today added: {count}',
yesterdayShares: 'Yesterday: {count}',
serverUptime: 'Uptime',
refresh: 'Refresh',
fileHealth: 'File Health',
fileHealthDesc: 'Real file records grouped by availability, expiry, and type.',
activeFileRatio: 'Active Ratio',
fileShareRatio: 'File Ratio',
textShareRatio: 'Text Ratio',
binaryFiles: '{count} file shares',
textShares: '{count} text shares',
expiredFiles: 'Expired Files',
needCleanup: 'Clean up in file management',
chunkedFiles: 'Chunked Files',
storagePolicy: 'Storage & Upload Policy',
storagePolicyDesc: 'Current settings that affect upload behavior.',
storageBackend: 'Storage Backend',
singleFileLimit: 'Single File Limit',
guestUpload: 'Guest Upload',
maxSaveTime: 'Max Retention',
noSaveLimit: 'Unlimited',
todayCapacityReference: 'Today Size / Single File Limit',
fileTypeDistribution: 'Type Distribution',
textType: 'Text',
recentFiles: 'Recent Shares',
recentFilesDesc: 'Recently created share records for quick status checks.',
available: 'Available',
table: {
file: 'File',
size: 'Size',
usage: 'Retrievals',
status: 'Status'
}
},
fileManage: {
title: 'File Management'
@@ -458,14 +486,42 @@ export default {
title: 'Dashboard',
totalFiles: 'Total Files',
storageSpace: 'Storage Space',
activeUsers: 'Active Users',
systemStatus: 'System Status',
yesterday: 'Yesterday:',
today: 'Today:',
weeklyChange: '↓ 5% from last week',
normal: 'Normal',
serverUptime: 'Server Uptime:',
version: 'Version v2.2.1 Updated: 2025-09-04'
todayShares: 'Today Shares',
totalRetrievals: 'Total Retrievals',
activeFiles: 'Active files: {count}',
todayIncrease: 'Today added: {count}',
yesterdayShares: 'Yesterday: {count}',
serverUptime: 'Uptime',
refresh: 'Refresh',
fileHealth: 'File Health',
fileHealthDesc: 'Real file records grouped by availability, expiry, and type.',
activeFileRatio: 'Active Ratio',
fileShareRatio: 'File Ratio',
textShareRatio: 'Text Ratio',
binaryFiles: '{count} file shares',
textShares: '{count} text shares',
expiredFiles: 'Expired Files',
needCleanup: 'Clean up in file management',
chunkedFiles: 'Chunked Files',
storagePolicy: 'Storage & Upload Policy',
storagePolicyDesc: 'Current settings that affect upload behavior.',
storageBackend: 'Storage Backend',
singleFileLimit: 'Single File Limit',
guestUpload: 'Guest Upload',
maxSaveTime: 'Max Retention',
noSaveLimit: 'Unlimited',
todayCapacityReference: 'Today Size / Single File Limit',
fileTypeDistribution: 'Type Distribution',
textType: 'Text',
recentFiles: 'Recent Shares',
recentFilesDesc: 'Recently created share records for quick status checks.',
available: 'Available',
table: {
file: 'File',
size: 'Size',
usage: 'Retrievals',
status: 'Status'
}
},
fileManage: {
title: 'File Management',
@@ -493,6 +549,7 @@ export default {
},
updateFailed: 'Update failed',
deleteFailed: 'Delete failed',
deleteConfirm: 'Delete this file? This action cannot be undone.',
loadFileListFailed: 'Failed to load file list'
},
login: {
+74 -16
View File
@@ -12,6 +12,7 @@ export default {
next: '下一页',
previous: '上一页',
loading: '加载中...',
noData: '暂无数据',
success: '成功',
error: '错误',
warning: '警告',
@@ -57,14 +58,42 @@ export default {
title: '仪表盘',
totalFiles: '总文件数',
storageSpace: '存储空间',
activeUsers: '活跃用户',
systemStatus: '系统状态',
yesterday: '昨天:',
today: '今天:',
weeklyChange: '↓ 5% 较上周',
normal: '正常',
serverUptime: '服务器运行时间:',
version: '版本 v2.2.1 更新时间:2025-09-04'
todayShares: '今日分享',
totalRetrievals: '累计取件',
activeFiles: '有效文件:{count}',
todayIncrease: '今日新增容量:{count}',
yesterdayShares: '昨日分享:{count}',
serverUptime: '运行时间',
refresh: '刷新数据',
fileHealth: '文件健康',
fileHealthDesc: '基于真实文件记录统计有效、过期和类型分布。',
activeFileRatio: '有效占比',
fileShareRatio: '文件占比',
textShareRatio: '文本占比',
binaryFiles: '文件分享 {count} 个',
textShares: '文本分享 {count} 条',
expiredFiles: '已过期文件',
needCleanup: '可在文件管理中清理',
chunkedFiles: '分片上传文件',
storagePolicy: '存储与上传策略',
storagePolicyDesc: '当前后台配置对上传链路的影响。',
storageBackend: '存储后端',
singleFileLimit: '单文件上限',
guestUpload: '游客上传',
maxSaveTime: '最长保存',
noSaveLimit: '不限制',
todayCapacityReference: '今日容量 / 单文件上限',
fileTypeDistribution: '类型分布',
textType: '文本',
recentFiles: '最近分享',
recentFilesDesc: '最近创建的分享记录,便于快速核对状态。',
available: '可取件',
table: {
file: '文件',
size: '大小',
usage: '取件',
status: '状态'
}
},
fileManage: {
title: '文件管理'
@@ -422,14 +451,42 @@ export default {
title: '仪表盘',
totalFiles: '总文件数',
storageSpace: '存储空间',
activeUsers: '活跃用户',
systemStatus: '系统状态',
yesterday: '昨天:',
today: '今天:',
weeklyChange: '↓ 5% 较上周',
normal: '正常',
serverUptime: '服务器运行时间:',
version: '版本 v2.2.1 更新时间:2025-09-04'
todayShares: '今日分享',
totalRetrievals: '累计取件',
activeFiles: '有效文件:{count}',
todayIncrease: '今日新增容量:{count}',
yesterdayShares: '昨日分享:{count}',
serverUptime: '运行时间',
refresh: '刷新数据',
fileHealth: '文件健康',
fileHealthDesc: '基于真实文件记录统计有效、过期和类型分布。',
activeFileRatio: '有效占比',
fileShareRatio: '文件占比',
textShareRatio: '文本占比',
binaryFiles: '文件分享 {count} 个',
textShares: '文本分享 {count} 条',
expiredFiles: '已过期文件',
needCleanup: '可在文件管理中清理',
chunkedFiles: '分片上传文件',
storagePolicy: '存储与上传策略',
storagePolicyDesc: '当前后台配置对上传链路的影响。',
storageBackend: '存储后端',
singleFileLimit: '单文件上限',
guestUpload: '游客上传',
maxSaveTime: '最长保存',
noSaveLimit: '不限制',
todayCapacityReference: '今日容量 / 单文件上限',
fileTypeDistribution: '类型分布',
textType: '文本',
recentFiles: '最近分享',
recentFilesDesc: '最近创建的分享记录,便于快速核对状态。',
available: '可取件',
table: {
file: '文件',
size: '大小',
usage: '取件',
status: '状态'
}
},
fileManage: {
title: '文件管理',
@@ -457,6 +514,7 @@ export default {
},
updateFailed: '更新失败',
deleteFailed: '删除失败',
deleteConfirm: '确认删除这个文件?此操作不可撤销。',
loadFileListFailed: '加载文件列表失败'
},
systemSettings: {