From 1f86d12fada0134000cf646d0e4680b9e64199f2 Mon Sep 17 00:00:00 2001 From: dockermen Date: Thu, 10 Apr 2025 23:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E9=A9=B1?= =?UTF-8?q?=E5=8A=A8=E9=85=8D=E7=BD=AE=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E7=9A=84API=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=89=8D=E7=AB=AFJSON=E7=BC=96=E8=BE=91=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=A9=B1=E5=8A=A8=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E6=9B=B4=E6=96=B0=E5=92=8C=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database.db | Bin 28672 -> 28672 bytes main.py | 10 ++++++-- templates/admin.html | 56 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 4 deletions(-) diff --git a/database.db b/database.db index 8e1cbc9cc8f43e84964065ba524ac325d908877d..53ba5a12f88a48f7319e924bc2871a0b0828d273 100644 GIT binary patch delta 146 zcmZp8z}WDBae_3X*hCp;MzM_v4t{A(v5agCs;%6rPnYa?+S>hm@5JY`XDC(2+e8^>Mz)O!4t^6SBr`WwF;3=``?V-Q0RX{i3se9A diff --git a/main.py b/main.py index a4bf9f9..d80ba56 100644 --- a/main.py +++ b/main.py @@ -116,7 +116,6 @@ def admin(): db = get_db() providers = db.get_all_drive_providers() alluser_drives = db.get_all_user_drives() - print(alluser_drives) return render_template('admin.html',providers=providers,alluser_drives=alluser_drives) @@ -156,7 +155,6 @@ def drive_provider(metfunc): """ body = request.get_json() - print(data) status = db.add_drive_provider(body.get("provider_name","测试网盘"),body.get("config_vars"),body.get("remarks","测试网盘")) if status: @@ -177,6 +175,14 @@ def user_drive(metfunc): if status: data["status"] = True data["data"] = body + elif metfunc == "update": + body = request.get_json() + print(body) + print(body.get("id"),body.get("login_config")) + status = db.update_user_drive(body.get("id"),json.loads(body.get("login_config")),body.get("remarks","测试网盘")) + if status: + data["status"] = True + data["data"] = body return data diff --git a/templates/admin.html b/templates/admin.html index 87aef15..6be95a4 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -596,9 +596,10 @@ if (selectedtid) { let defaultJson = {}; - const user_drives = JSON.parse('{{ alluser_drives | tojson | safe }}'); // Use safe filter + // 解析返回的JSON字符串为JavaScript对象 + const allUserDrivesStr = '{{ alluser_drives | tojson | safe }}'; + const user_drives = JSON.parse(allUserDrivesStr); // Use safe filter const selectedUdrive = user_drives.find(user_drive => user_drive.id == selectedtid); - if (selectedUdrive && selectedUdrive.login_config) { defaultJson = selectedUdrive.login_config; } else { @@ -609,9 +610,60 @@ }; } editor.setValue(JSON.stringify(defaultJson, null, 2), -1); + + // Store the selected ID in a data attribute for the save button to access + document.querySelector('#editudriveModal #saveAccount').setAttribute('data-tid', selectedtid); } }); }); + + // 编辑用户驱动保存事件 + $('#editudriveModal #saveAccount').on('click', function() { + const editModalEditorArea = document.querySelector('#editudriveModal .json-editor-area'); + const editorElement = editModalEditorArea.querySelector('.ace-editor'); + const editor = ace.edit(editorElement); + const configJson = editor.getValue(); + const tid = this.getAttribute('data-tid'); + + try { + // 验证JSON格式 + JSON.parse(configJson); + + // 发送数据到服务器 + $.ajax({ + url: '/admin/user_drive/update', + type: 'POST', + contentType: 'application/json', + data: JSON.stringify({ + id: tid, + login_config: configJson + }), + success: function(response) { + console.log(response); + if (response.status) { + showMessage('配置更新成功', 'success'); + // 清空并关闭模态框 + editor.setValue(configJson, -1); + $('#editudriveModal').modal('hide'); + // 如果需要,可以在这里刷新页面或表格数据 + // 局部刷新表格内容 + } else { + showMessage('配置更新失败: ' + response.message, 'error'); + } + }, + error: function(error) { + console.error('更新配置出错:', error); + showMessage('更新配置时发生错误,请查看控制台', 'error'); + } + }); + } catch (e) { + showMessage('无效的JSON格式: ' + e.message, 'error'); + const errorDisplay = editModalEditorArea.closest('.mb-3').querySelector('.json-error'); + errorDisplay.textContent = '无效的JSON格式: ' + e.message; + errorDisplay.style.display = 'block'; + editorElement.classList.add('border-danger'); + } + }); \ No newline at end of file