feat(frontend): 优化弹窗组件架构和用户体验

- 使用 BaseDialog 替代旧版 Modal 组件
- 添加平滑过渡动画和更好的可访问性支持
- 新增 ExportProgressDialog 导出进度弹窗
- 优化所有账号管理和使用记录相关弹窗
- 更新国际化文案,改进用户交互体验
- 精简依赖,减少 package.json 体积
This commit is contained in:
IanShaw027
2025-12-29 16:13:09 +08:00
parent c01db6b180
commit 23412965f8
21 changed files with 1048 additions and 1546 deletions

View File

@@ -301,7 +301,7 @@
<BaseDialog
:show="showCreateModal || showEditModal"
:title="showEditModal ? t('keys.editKey') : t('keys.createKey')"
width="narrow"
width="normal"
@close="closeModals"
>
<form id="key-form" @submit.prevent="handleSubmit" class="space-y-5">
@@ -878,7 +878,20 @@ const importToCcswitch = (apiKey: string) => {
usageAutoInterval: '30'
})
const deeplink = `ccswitch://v1/import?${params.toString()}`
window.open(deeplink, '_self')
try {
window.open(deeplink, '_self')
// Check if the protocol handler worked by detecting if we're still focused
setTimeout(() => {
if (document.hasFocus()) {
// Still focused means the protocol handler likely failed
appStore.showError(t('keys.ccSwitchNotInstalled'))
}
}, 100)
} catch (error) {
appStore.showError(t('keys.ccSwitchNotInstalled'))
}
}
onMounted(() => {