diff --git a/templates/MetaLab-2026/html/settings/index.html b/templates/MetaLab-2026/html/settings/index.html index bfdcdc6..c61193a 100644 --- a/templates/MetaLab-2026/html/settings/index.html +++ b/templates/MetaLab-2026/html/settings/index.html @@ -783,37 +783,37 @@ showSettingsToast('请输入密码确认', true); return; } - if (!confirm('确定要注销账号吗?\n\n注销后 7 天内重新登录可撤销注销,期满后将永久删除。')) { - return; - } - deleteAccountBtn.disabled = true; - deleteAccountBtn.textContent = '注销中...'; + showConfirm('注销账号', '确定要注销账号吗?\n\n注销后 7 天内重新登录可撤销注销,期满后将永久删除。').then(function(ok) { + if (!ok) return; + deleteAccountBtn.disabled = true; + deleteAccountBtn.textContent = '注销中...'; - var xhr = new XMLHttpRequest(); - xhr.open('POST', '/api/settings/delete-account', true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onreadystatechange = function () { - if (xhr.readyState !== 4) return; - deleteAccountBtn.disabled = false; - deleteAccountBtn.textContent = '确认注销'; - try { - var res = JSON.parse(xhr.responseText); - if (res.success) { - showSettingsToast(res.message || '账号已注销'); - setTimeout(function () { - window.location.href = '/'; - }, 2000); - } else { - showSettingsToast(res.message || '操作失败', true); + var xhr = new XMLHttpRequest(); + xhr.open('POST', '/api/settings/delete-account', true); + xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.onreadystatechange = function () { + if (xhr.readyState !== 4) return; + deleteAccountBtn.disabled = false; + deleteAccountBtn.textContent = '确认注销'; + try { + var res = JSON.parse(xhr.responseText); + if (res.success) { + showSettingsToast(res.message || '账号已注销'); + setTimeout(function () { + window.location.href = '/'; + }, 2000); + } else { + showSettingsToast(res.message || '操作失败', true); + } + } catch (e) { + showSettingsToast('操作失败', true); } - } catch (e) { - showSettingsToast('操作失败', true); - } - }; - xhr.send(JSON.stringify({ - password: deletePwd.value, - reason: deleteReason ? deleteReason.value : '' - })); + }; + xhr.send(JSON.stringify({ + password: deletePwd.value, + reason: deleteReason ? deleteReason.value : '' + })); + }); }); } @@ -829,36 +829,38 @@ btn.addEventListener('click', function () { var sid = btn.getAttribute('data-sid'); if (!sid) return; - if (!confirm('确定要踢出该设备吗?')) return; - btn.disabled = true; - btn.textContent = '踢出中...'; + showConfirm('确认', '确定要踢出该设备吗?').then(function(ok) { + if (!ok) return; + btn.disabled = true; + btn.textContent = '踢出中...'; - var xhr = new XMLHttpRequest(); - xhr.open('DELETE', '/api/settings/sessions/' + encodeURIComponent(sid), true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onreadystatechange = function () { - if (xhr.readyState !== 4) return; - btn.disabled = false; - btn.textContent = '踢出'; - try { - var res = JSON.parse(xhr.responseText); - if (res.success) { - showSettingsToast(res.message || '已踢出该设备'); - var item = btn.closest('.session-item'); - if (item) { - item.style.transition = 'opacity .3s ease, transform .3s ease'; - item.style.opacity = '0'; - item.style.transform = 'translateX(20px)'; - setTimeout(function () { item.remove(); }, 300); + var xhr = new XMLHttpRequest(); + xhr.open('DELETE', '/api/settings/sessions/' + encodeURIComponent(sid), true); + xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.onreadystatechange = function () { + if (xhr.readyState !== 4) return; + btn.disabled = false; + btn.textContent = '踢出'; + try { + var res = JSON.parse(xhr.responseText); + if (res.success) { + showSettingsToast(res.message || '已踢出该设备'); + var item = btn.closest('.session-item'); + if (item) { + item.style.transition = 'opacity .3s ease, transform .3s ease'; + item.style.opacity = '0'; + item.style.transform = 'translateX(20px)'; + setTimeout(function () { item.remove(); }, 300); + } + } else { + showSettingsToast(res.message || '操作失败', true); } - } else { - showSettingsToast(res.message || '操作失败', true); + } catch (e) { + showSettingsToast('操作失败', true); } - } catch (e) { - showSettingsToast('操作失败', true); - } - }; - xhr.send(); + }; + xhr.send(); + }); }); }); @@ -870,38 +872,40 @@ showSettingsToast('没有其他在线设备'); return; } - if (!confirm('确定要踢出所有其他设备(共 ' + otherCount + ' 台)吗?')) return; - kickOthersBtn.disabled = true; - kickOthersBtn.textContent = '处理中...'; + showConfirm('确认', '确定要踢出所有其他设备(共 ' + otherCount + ' 台)吗?').then(function(ok) { + if (!ok) return; + kickOthersBtn.disabled = true; + kickOthersBtn.textContent = '处理中...'; - var xhr = new XMLHttpRequest(); - xhr.open('POST', '/api/settings/sessions/destroy-others', true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onreadystatechange = function () { - if (xhr.readyState !== 4) return; - kickOthersBtn.disabled = false; - kickOthersBtn.textContent = '一键踢出其他设备'; - try { - var res = JSON.parse(xhr.responseText); - if (res.success) { - showSettingsToast(res.message || '已踢出所有其他设备'); - var others = document.querySelectorAll('.session-item:not(.session-current)'); - others.forEach(function (item, i) { - setTimeout(function () { - item.style.transition = 'opacity .3s ease, transform .3s ease'; - item.style.opacity = '0'; - item.style.transform = 'translateX(20px)'; - setTimeout(function () { item.remove(); }, 300); - }, i * 100); - }); - } else { - showSettingsToast(res.message || '操作失败', true); + var xhr = new XMLHttpRequest(); + xhr.open('POST', '/api/settings/sessions/destroy-others', true); + xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.onreadystatechange = function () { + if (xhr.readyState !== 4) return; + kickOthersBtn.disabled = false; + kickOthersBtn.textContent = '一键踢出其他设备'; + try { + var res = JSON.parse(xhr.responseText); + if (res.success) { + showSettingsToast(res.message || '已踢出所有其他设备'); + var others = document.querySelectorAll('.session-item:not(.session-current)'); + others.forEach(function (item, i) { + setTimeout(function () { + item.style.transition = 'opacity .3s ease, transform .3s ease'; + item.style.opacity = '0'; + item.style.transform = 'translateX(20px)'; + setTimeout(function () { item.remove(); }, 300); + }, i * 100); + }); + } else { + showSettingsToast(res.message || '操作失败', true); + } + } catch (e) { + showSettingsToast('操作失败', true); } - } catch (e) { - showSettingsToast('操作失败', true); - } - }; - xhr.send(); + }; + xhr.send(); + }); }); } @@ -1056,19 +1060,21 @@ listEl.querySelectorAll('.fav-folder-del').forEach(function (btn) { btn.addEventListener('click', function () { var id = btn.getAttribute('data-id'); - if (!confirm('确定要删除此收藏夹?其中的收藏内容也将被清除。')) return; - api('DELETE', '/api/folders/' + id) - .then(function (r) { - if (r.success) { - showSettingsToast('收藏夹已删除'); - loadFolders(); - } else { - showSettingsToast(r.message || '删除失败', true); - } - }) - .catch(function () { - showSettingsToast('删除失败', true); - }); + showConfirm('确认', '确定要删除此收藏夹?其中的收藏内容也将被清除。').then(function(ok) { + if (!ok) return; + api('DELETE', '/api/folders/' + id) + .then(function (r) { + if (r.success) { + showSettingsToast('收藏夹已删除'); + loadFolders(); + } else { + showSettingsToast(r.message || '删除失败', true); + } + }) + .catch(function () { + showSettingsToast('删除失败', true); + }); + }); }); }); }) @@ -1079,24 +1085,25 @@ if (createBtn) { createBtn.addEventListener('click', function () { - var name = prompt('请输入收藏夹名称(最多50个字符):'); - if (!name || !name.trim()) return; - if (name.trim().length > 50) { - showSettingsToast('收藏夹名称不能超过 50 个字符', true); - return; - } - api('POST', '/api/folders', { name: name.trim(), description: '', is_public: false }) - .then(function (r) { - if (r.success) { - showSettingsToast('收藏夹已创建'); - loadFolders(); - } else { - showSettingsToast(r.message || '创建失败', true); - } - }) - .catch(function () { - showSettingsToast('创建失败', true); - }); + showPrompt('请输入收藏夹名称(最多50个字符):').then(function(name) { + if (!name || !name.trim()) return; + if (name.trim().length > 50) { + showSettingsToast('收藏夹名称不能超过 50 个字符', true); + return; + } + api('POST', '/api/folders', { name: name.trim(), description: '', is_public: false }) + .then(function (r) { + if (r.success) { + showSettingsToast('收藏夹已创建'); + loadFolders(); + } else { + showSettingsToast(r.message || '创建失败', true); + } + }) + .catch(function () { + showSettingsToast('创建失败', true); + }); + }); }); } diff --git a/templates/MetaLab-2026/html/studio/drafts.html b/templates/MetaLab-2026/html/studio/drafts.html index df6d666..5768f27 100644 --- a/templates/MetaLab-2026/html/studio/drafts.html +++ b/templates/MetaLab-2026/html/studio/drafts.html @@ -59,42 +59,44 @@