yangtb24's picture
Upload 37 files
bbb6398 verified
raw
history blame
2.37 kB
/**
* API密钥管理器 - 模态框控制模块
* 负责统一管理模态框的显示和交互
*/
// 打开添加密钥模态框
function openAddKeyModal() {
if (!window.apiKeyManagerInstance) return;
window.apiKeyManagerInstance.showAddModal = true;
// 聚焦到平台选择下拉框
setTimeout(() => {
document.getElementById('platform')?.focus();
}, 100);
}
// 打开编辑密钥模态框
function openEditKeyModal(id, name, key, platform) {
if (!window.apiKeyManagerInstance) return;
window.apiKeyManagerInstance.editApiKey(id, name, key, platform);
}
// 打开删除确认模态框
function openDeleteConfirmModal(id, name) {
if (!window.apiKeyManagerInstance) return;
window.apiKeyManagerInstance.deleteApiKey(id, name);
}
// 关闭所有模态框
function closeAllModals() {
if (!window.apiKeyManagerInstance) return;
window.apiKeyManagerInstance.showAddModal = false;
window.apiKeyManagerInstance.showEditModal = false;
window.apiKeyManagerInstance.showDeleteConfirm = false;
}
// 处理键盘快捷键
function setupModalKeyboardShortcuts() {
document.addEventListener('keydown', (e) => {
// ESC键关闭所有模态框
if (e.key === 'Escape') {
closeAllModals();
}
// Alt+N 打开添加模态框
if (e.altKey && e.key === 'n') {
openAddKeyModal();
}
});
}
// 初始化模态框设置
function initModals() {
// 存储对API密钥管理器实例的引用,方便全局访问
window.addEventListener('alpine:initialized', () => {
const apiKeyManagerEl = document.querySelector('[x-data="apiKeyManager()"]');
if (apiKeyManagerEl) {
window.apiKeyManagerInstance = apiKeyManagerEl.__x.getUnobservedData();
}
});
// 设置键盘快捷键
setupModalKeyboardShortcuts();
// 监听打开添加模态框事件
window.addEventListener('open-add-modal', openAddKeyModal);
}
// 暴露给外部使用的方法
window.apiKeyModals = {
openAddKeyModal,
openEditKeyModal,
openDeleteConfirmModal,
closeAllModals,
initModals
};
// 注册初始化函数
document.addEventListener('DOMContentLoaded', () => {
initModals();
});