main
HuangHai 3 weeks ago
parent 184e5ebbb7
commit 5a65d0904b

@ -176,41 +176,36 @@
});
// 修改prerequisiteUpdate和relatedUpdate函数
// 修改prerequisiteUpdate函数使用LayUI
function prerequisiteUpdate(nodeId) {
// 公共函数
function showKnowledgeSelector(nodeId, title, currentKnowledge, updateType) {
layui.use(['layer', 'form'], function () {
var layer = layui.layer;
var form = layui.form;
// 获取当前节点
const currentNode = findNodeById(treeData, nodeId);
// 构建HTML内容
let html = '<div style="padding: 20px;">';
html += '<form class="layui-form">';
allNodes.forEach(node => {
if (node.id !== nodeId && !node.isParent) {
const isSelected = currentNode && currentNode.prerequisite &&
currentNode.prerequisite.some(p => p.id === node.id);
// 获取父节点标题
const isSelected = currentKnowledge &&
currentKnowledge.some(p => p.id === node.id);
const parentTitle = findParentTitle(node);
const displayTitle = parentTitle ? `【${parentTitle}】${node.title}` : node.title;
html += '<div class="layui-form-item">';
html += '<input type="checkbox" name="node" value="' + node.id + '" title="' + displayTitle + '"' + (isSelected ? ' checked' : '') + '>';
html += '</div>';
}
});
html += '</form>';
html += '</div>';
// 弹出层
layer.open({
type: 1,
title: '选择先修知识',
title: '选择' + title,
content: html,
area: ['500px', '400px'],
btn: ['确定', '取消'],
@ -225,7 +220,7 @@
});
}
});
// 调用后端接口
fetch('/api/update-knowledge', {
method: 'POST',
@ -234,8 +229,8 @@
},
body: JSON.stringify({
node_id: nodeId,
knowledge: selectedNodes, // 修改参数名
update_type: 'prerequisite'
knowledge: selectedNodes,
update_type: updateType
})
})
.then(response => response.json())
@ -251,7 +246,7 @@
console.error('Error:', error);
layer.msg('保存出错', {icon: 2});
});
layer.close(index);
}
});
@ -259,86 +254,16 @@
});
}
function relatedUpdate(nodeId) {
layui.use(['layer', 'form'], function () {
var layer = layui.layer;
var form = layui.form;
// 获取当前节点
const currentNode = findNodeById(treeData, nodeId);
// 构建HTML内容
let html = '<div style="padding: 20px;">';
html += '<form class="layui-form">';
allNodes.forEach(node => {
if (node.id !== nodeId && !node.isParent) {
const isSelected = currentNode && currentNode.related &&
currentNode.related.some(p => p.id === node.id);
// 获取父节点标题
const parentTitle = findParentTitle(node);
const displayTitle = parentTitle ? `【${parentTitle}】${node.title}` : node.title;
html += '<div class="layui-form-item">';
html += '<input type="checkbox" name="node" value="' + node.id + '" title="' + displayTitle + '"' + (isSelected ? ' checked' : '') + '>';
html += '</div>';
}
});
html += '</form>';
html += '</div>';
// 弹出层
layer.open({
type: 1,
title: '选择相关知识',
content: html,
area: ['500px', '400px'],
btn: ['确定', '取消'],
yes: function (index, layero) {
const selectedNodes = [];
$('input[name="node"]:checked').each(function () {
const node = findNodeById(treeData, $(this).val());
if (node) {
selectedNodes.push({
id: node.id,
title: node.title
});
}
});
// 调用后端接口
fetch('/api/update-knowledge', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
node_id: nodeId,
knowledge: selectedNodes, // 修改参数名
update_type: 'related'
})
})
.then(response => response.json())
.then(data => {
if (data.code === 0) {
layer.msg('保存成功', {icon: 1});
setTimeout(() => location.reload(), 1000);
} else {
layer.msg('保存失败: ' + data.message, {icon: 2});
}
})
.catch(error => {
console.error('Error:', error);
layer.msg('保存出错', {icon: 2});
});
// 修改后的prerequisiteUpdate函数
function prerequisiteUpdate(nodeId) {
const currentNode = findNodeById(treeData, nodeId);
showKnowledgeSelector(nodeId, '先修知识', currentNode.prerequisite, 'prerequisite');
}
layer.close(index);
}
});
form.render();
});
// 修改后的relatedUpdate函数
function relatedUpdate(nodeId) {
const currentNode = findNodeById(treeData, nodeId);
showKnowledgeSelector(nodeId, '相关知识', currentNode.related, 'related');
}
</script>
</body>

Loading…
Cancel
Save