!6 merge dev into main
refix、网站图标 Created-by: qingss0 Commit-by: shufeng2012;qing Merged-by: qingss0 Description: 微调 💬 更改添加节点报错输出 ^-^ 临时提交 ✨ 添加删除节点功能 ... See merge request: qingss0/micro_servers!6
This commit is contained in:
6 files changed
+86
-26
No files matched your search
Regular → Executable
File renamed without changes.
+1
-14
@@ -9,20 +9,6 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<center class="article-header">
|
|
||||||
<!-- 文章主标题 -->
|
|
||||||
<h1><div id="article-title">title</div></h1>
|
|
||||||
|
|
||||||
<!-- 文章详情 -->
|
|
||||||
<div class="article-meta">
|
|
||||||
发布时间:<span id="publish-time">2026-1-1</span>
|
|
||||||
</div>
|
|
||||||
<div class="article-stats">
|
|
||||||
浏览:<span id="visit-count">999</span>
|
|
||||||
点赞:<span id="like-count">999</span>
|
|
||||||
分享:<span id="share-count">999</span>
|
|
||||||
</div>
|
|
||||||
</center>
|
|
||||||
<div id="article-content">hello</div>
|
<div id="article-content">hello</div>
|
||||||
<div class="recommend-list" id="recommend-list"></div>
|
<div class="recommend-list" id="recommend-list"></div>
|
||||||
<div class="card node-form">
|
<div class="card node-form">
|
||||||
@@ -32,6 +18,7 @@
|
|||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button id="input-note-submit">提交</button>
|
<button id="input-note-submit">提交</button>
|
||||||
<button id="input-note-clear">重置</button>
|
<button id="input-note-clear">重置</button>
|
||||||
|
<button id="delete-note">删除当前节点</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/12.0.0/markdown-it.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/12.0.0/markdown-it.min.js"></script>
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
+85
-12
@@ -85,6 +85,8 @@ async function addNode(token, pid, title, content) {
|
|||||||
throw new Error(result.message || `添加节点失败(HTTP ${res.status})`);
|
throw new Error(result.message || `添加节点失败(HTTP ${res.status})`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNode(token, stack[stack.length - 1]).then(load_notes);
|
||||||
|
|
||||||
//if (result.success) {
|
//if (result.success) {
|
||||||
console.log(`添加节点成功`, result);
|
console.log(`添加节点成功`, result);
|
||||||
return result
|
return result
|
||||||
@@ -96,18 +98,60 @@ async function addNode(token, pid, title, content) {
|
|||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert(err.message || '接口请求失败,请检查后端服务是否启动');
|
alert(err.message || '接口请求失败,请检查后端服务是否启动');
|
||||||
console.error('获取节点请求异常:', err);
|
console.error('添加节点请求异常:', err);
|
||||||
} finally {
|
} finally {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function deleteNode(token, id) {
|
||||||
|
try {
|
||||||
|
obj = {"id": String(id)};
|
||||||
|
jsonBody = JSON.stringify(obj);
|
||||||
|
console.log(jsonBody);
|
||||||
|
|
||||||
|
const res = await fetch('/delete_note', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'Authorization': `Bearer ${token}`,
|
||||||
|
'Target-Url': 'http://127.0.0.1:8006'
|
||||||
|
},
|
||||||
|
body: jsonBody
|
||||||
|
});
|
||||||
|
|
||||||
|
const responseText = await res.text();
|
||||||
|
let result;
|
||||||
|
|
||||||
|
try {
|
||||||
|
result = JSON.parse(responseText);
|
||||||
|
} catch {
|
||||||
|
console.error(`删除笔记接口返回非 JSON 内容(HTTP ${res.status}):`, responseText);
|
||||||
|
throw new Error('服务器响应格式异常,请稍后重试');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!res.ok) {
|
||||||
|
throw new Error(result.message || `删除节点失败(HTTP ${res.status})`);
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.pop();
|
||||||
|
getNode(token, stack[stack.length - 1]).then(load_notes);
|
||||||
|
|
||||||
|
console.log(`删除节点成功`);
|
||||||
|
return result
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
alert(err.message || '接口请求失败,请检查后端服务是否启动');
|
||||||
|
console.error('删除节点请求异常:', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* by shufeng2012 */
|
/* by shufeng2012 */
|
||||||
function renderMarkdown(element, content) {
|
function renderMarkdown(element, content) {
|
||||||
/*
|
/*
|
||||||
Markdown渲染
|
Markdown渲染
|
||||||
*/
|
*/
|
||||||
const md = window.markdownit();
|
const md = window.markdownit();
|
||||||
element.innerHTML = md.render(content);
|
element.innerHTML = md.render(content, {html: false});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---- by qing ---- */
|
/* ---- by qing ---- */
|
||||||
@@ -119,6 +163,7 @@ var input_note_content = document.getElementById('input-note-content');
|
|||||||
var input_note_submit = document.getElementById('input-note-submit');
|
var input_note_submit = document.getElementById('input-note-submit');
|
||||||
var input_note_clear = document.getElementById('input-note-clear');
|
var input_note_clear = document.getElementById('input-note-clear');
|
||||||
var recommend_list = document.getElementById('recommend-list');
|
var recommend_list = document.getElementById('recommend-list');
|
||||||
|
var delete_note = document.getElementById('delete-note');
|
||||||
|
|
||||||
input_note_submit.addEventListener('click', function(event) {
|
input_note_submit.addEventListener('click', function(event) {
|
||||||
var title = input_note_title.value
|
var title = input_note_title.value
|
||||||
@@ -136,9 +181,37 @@ input_note_clear.addEventListener('click', function(event) {
|
|||||||
input_note_content.value = "";
|
input_note_content.value = "";
|
||||||
})
|
})
|
||||||
|
|
||||||
|
delete_note.addEventListener('click', (event) => {
|
||||||
|
var id = (stack.length == 0) ? 0 : stack[stack.length - 1];
|
||||||
|
if (id == 0) {
|
||||||
|
alert('无法删除根节点');
|
||||||
|
console.log("节点未删除");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
deleteNode(token, id);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
function load_notes(main_node) {
|
function load_notes(main_node) {
|
||||||
article_title.textContent = "";
|
|
||||||
article_content.textContent = "";
|
/* 这个不能设置为空的 */
|
||||||
|
//article_title.textContent = "";
|
||||||
|
//article_content.textContent = "";
|
||||||
|
|
||||||
|
if (input_note_title.value != "" || input_note_content.value != "") {
|
||||||
|
if (confirm("是否放弃当前输入的内容?") == true) {
|
||||||
|
input_note_title.value = "";
|
||||||
|
input_note_content.value = "";
|
||||||
|
} else {
|
||||||
|
if (stack.length != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
input_note_title.value = "";
|
||||||
|
input_note_content.value = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
recommend_list.replaceChildren();
|
recommend_list.replaceChildren();
|
||||||
//alert(stack.length)
|
//alert(stack.length)
|
||||||
@@ -155,29 +228,29 @@ function load_notes(main_node) {
|
|||||||
recommend_list.appendChild(bak)
|
recommend_list.appendChild(bak)
|
||||||
}
|
}
|
||||||
for (let i in main_node) {
|
for (let i in main_node) {
|
||||||
item = main_node[i]
|
let item = main_node[i]
|
||||||
var card = document.createElement('div');
|
let card = document.createElement('div');
|
||||||
card.className = "card";
|
card.className = "card";
|
||||||
card.addEventListener('click', function(event) {
|
card.addEventListener('click', function(event) {
|
||||||
var id = Number(item.id)
|
var id = Number(item.id)
|
||||||
stack.push(id)
|
stack.push(id)
|
||||||
getNode(token, id).then(load_notes)
|
getNode(token, id).then(load_notes)
|
||||||
});
|
});
|
||||||
var ttl = document.createElement('center');
|
let ttl = document.createElement('center');
|
||||||
var ttl1 =document.createElement('h3');
|
let ttl1 =document.createElement('h3');
|
||||||
ttl1.textContent = item.title;
|
ttl1.textContent = item.title;
|
||||||
ttl.appendChild(ttl1);
|
ttl.appendChild(ttl1);
|
||||||
card.appendChild(ttl);
|
card.appendChild(ttl);
|
||||||
var vit_div = document.createElement('p');
|
let vit_div = document.createElement('p');
|
||||||
var lke_div = document.createElement('p');
|
let lke_div = document.createElement('p');
|
||||||
var srd_div = document.createElement('p');
|
let srd_div = document.createElement('p');
|
||||||
vit_div.textContent = "观看数:" + item.visit_count;
|
vit_div.textContent = "观看数:" + item.visit_count;
|
||||||
lke_div.textContent = "点赞数:" + item.like_count;
|
lke_div.textContent = "点赞数:" + item.like_count;
|
||||||
srd_div.textContent = "分享数:" + item.share_count;
|
srd_div.textContent = "分享数:" + item.share_count;
|
||||||
ttl.appendChild(vit_div);
|
ttl.appendChild(vit_div);
|
||||||
ttl.appendChild(lke_div);
|
ttl.appendChild(lke_div);
|
||||||
ttl.appendChild(srd_div);
|
ttl.appendChild(srd_div);
|
||||||
var ctt = document.createElement('p');
|
let ctt = document.createElement('p');
|
||||||
renderMarkdown(ctt, item.content);
|
renderMarkdown(ctt, item.content);
|
||||||
card.appendChild(ctt)
|
card.appendChild(ctt)
|
||||||
recommend_list.appendChild(card)
|
recommend_list.appendChild(card)
|
||||||
|
|||||||
Reference in new issue
Block a user