168 lines
4.6 KiB
JavaScript
168 lines
4.6 KiB
JavaScript
async function getNode(token, id) {
|
||
try {
|
||
obj = { "pid": String(id) }
|
||
jsonBody = JSON.stringify(obj)
|
||
console.log(jsonBody)
|
||
const res = await fetch('/get_notes', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json', // 告诉服务器内容为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})`);
|
||
}
|
||
|
||
//if (result.success) {
|
||
console.log(`获取节点成功`);
|
||
return result
|
||
//...
|
||
|
||
//} else {
|
||
// alert(result.message || '获取节点失败');
|
||
//}
|
||
|
||
} catch (err) {
|
||
alert(err.message || '接口请求失败,请检查后端服务是否启动');
|
||
console.error('获取节点请求异常:', err);
|
||
} finally {
|
||
}
|
||
}
|
||
|
||
async function addNode(token, pid, title, content) {
|
||
try {
|
||
obj = {
|
||
"pid": String(pid),
|
||
"title": title,
|
||
"content": content
|
||
}
|
||
jsonBody = JSON.stringify(obj)
|
||
console.log(jsonBody)
|
||
const res = await fetch('/add_note', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json', // 告诉服务器内容为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})`);
|
||
}
|
||
|
||
//if (result.success) {
|
||
console.log(`添加节点成功`, result);
|
||
return result
|
||
//...
|
||
|
||
//} else {
|
||
// alert(result.message || '获取节点失败');
|
||
//}
|
||
|
||
} catch (err) {
|
||
alert(err.message || '接口请求失败,请检查后端服务是否启动');
|
||
console.error('获取节点请求异常:', err);
|
||
} finally {
|
||
}
|
||
}
|
||
|
||
function renderMarkdown(element, content) {
|
||
/*
|
||
Markdown渲染
|
||
*/
|
||
const md = window.markdownit();
|
||
element.innerHTML = md.render(content);
|
||
}
|
||
const stack = []; /* 这个是笔记节点的栈 */
|
||
var article_title = document.getElementById('article-title');
|
||
var article_content = document.getElementById('article-content');
|
||
var input_note_title = document.getElementById('input-note-title');
|
||
var input_note_content = document.getElementById('input-note-content');
|
||
var input_note_submit = document.getElementById('input-note-submit');
|
||
var input_note_clear = document.getElementById('input-note-clear');
|
||
var recommend_list = document.getElementById('recommend-list');
|
||
|
||
input_note_submit.addEventListener('click', function(event) {
|
||
var title = input_note_title.value
|
||
var content = input_note_content.value
|
||
var pid = (stack.length == 0) ? 0 : stack[stack.length - 1];
|
||
alert(stack.length)
|
||
alert(pid)
|
||
addNode(token, pid, title, content).then(result => {
|
||
alert(result.message);
|
||
})
|
||
})
|
||
|
||
input_note_clear.addEventListener('click', function(event) {
|
||
input_note_title.value = "";
|
||
input_note_content.value = "";
|
||
})
|
||
|
||
function load_notes(main_node) {
|
||
article_title.textContent = "";
|
||
article_content.textContent = "";
|
||
|
||
recommend_list.replaceChildren();
|
||
//alert(stack.length)
|
||
if (stack.length > 0) { /* 如果不在根节点 */
|
||
var bak = document.createElement('a');
|
||
//ttl.href = '/dnfs.html';
|
||
bak.addEventListener('click', function (event) {
|
||
stack.pop();
|
||
var id = (stack.length > 1) ? stack[stack.length - 1] : 0;
|
||
getNode(token, id).then(load_notes)
|
||
});
|
||
var bak1 = document.createElement('h1');
|
||
bak1.textContent = "返回上一层";
|
||
bak.appendChild(bak1)
|
||
recommend_list.appendChild(bak)
|
||
}
|
||
for (i in main_node) {
|
||
item = main_node[i]
|
||
var ttl = document.createElement('a');
|
||
//ttl.href ="/dnfs.html";
|
||
ttl.addEventListener('click', function(event) {
|
||
var id = Number(item.id)
|
||
stack.push(id)
|
||
getNode(token, id).then(load_notes)
|
||
});
|
||
var ttl1 =document.createElement('h1');
|
||
ttl1.textContent = item.title
|
||
ttl.appendChild(ttl1)
|
||
recommend_list.appendChild(ttl)
|
||
var ctt = document.createElement('p');
|
||
renderMarkdown(ctt, item.content);
|
||
recommend_list.appendChild(ctt)
|
||
recommend_list.appendChild(document.createElement('br'))
|
||
}
|
||
};
|
||
|
||
var token = sessionStorage.getItem('q4_token')
|
||
getNode(token, 0).then(load_notes);
|