main
HuangHai 3 weeks ago
parent 184e5ebbb7
commit 5a65d0904b

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

Loading…
Cancel
Save