<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>知识点管理</title>
<!--#include file="/html/common/includeyf.html"-->
<link type="text/css" href="/js/common/dtree/dtree.css" rel="stylesheet"/>
<script type="text/javascript" src="/js/common/dtree/dtree.js"></script>
<script type="text/javascript" src="/js/baseinfo/kownlege/kownlege.js"></script>
</head>
<body>
<script type="text/x-jquery-tmpl" id="specialitem">
<option value="${specialId}">${specialName}</option>
</script>
<div class="tableWrap"><!-- 查询部分 -->
<div class="searchList">
<form id="selectForm">
<table class="tableHead">
<tr class="tableHeader"><td>查询条件</td></tr>
</table>
<table class="tableForm">
<tr>
<td align="center" width="20%">
<select id="subject" name="subject" onchange="getSpecial(this.options[this.selectedIndex].value)">
<option value="KM">科目</option>
<option value="YW">语文</option>
<option value="SX">数学</option>
<option value="YY">英语</option>
<option value="WL">物理</option>
<option value="HX">化学</option>
<option value="SW">生物</option>
<option value="ZZ">政治</option>
<option value="LS">历史</option>
<option value="DL">地理</option>
</select>
</td>
<td align="center" width="20%">
<select id="specialId" name="specialId" onchange="getKnowlegeList()">
<option value="0">专题</option>
</select>
</td>
</tr>
</table>
</form>
</div>
<div class="searchList">
<button id="add" onclick="popKn(-1,0)" style="display: none;">添加</button>
<div class="dtree" id="dtreeDiv"></div>
</div>
<div class="formWrap hc" id="formDiv"></div>
<script type="text/x-jquery-tmpl" id="addVoTmpl">
<form class="infoTitle" id="baseform" >
<article>
<fieldset class="S_line2">
<legend class="tit">{{if flag==0}}添加{{else}}{{if flag==-1}}添加{{else}}修改{{/if}}{{/if}}</legend>
</fieldset>
<table class="tableForm" style="table-layout:fixed">
<input type="hidden" id="knowledgeId" name="knowledgeId" value="${knowledgeId}">
<input type="hidden" name="specialId" value="${specialId}">
<input type="hidden" name="flag" value="${flag}">
{{if flag==0}}
<tr>
<td width="40%">专题</td>
<td width="60%">
${special}
</td>
</tr>
<tr>
<td width="40%">知识点名称</td>
<td width="60%">
<input type="text" maxlength="20" placeholder="最多只能输入20个字符" id="knowledgeName1" name="knowledgeName" style="width:250px;margin-right:5px" >
</td>
</tr>
<tr>
<td width="40%">知识点内容</td>
<td width="60%">
<input type="text" maxlength="30" placeholder="最多只能输入30个字符" id="content1" name="content" style="width:250px;margin-right:5px" >
</td>
</tr>
{{else}}
{{if flag==-1}}
<tr>
<td width="40%">专题</td>
<td width="60%">
${special}
</td>
</tr>
<tr>
<td width="40%">知识点名称</td>
<td width="60%">
<input type="text" maxlength="20" placeholder="最多只能输入20个字符" id="knowledgeName2" name="knowledgeName" style="width:250px;margin-right:5px" >
</td>
</tr>
<tr>
<td width="40%">知识点内容</td>
<td width="60%">
<input type="text" maxlength="30" placeholder="最多只能输入30个字符" id="content2" name="content" style="width:250px;margin-right:5px" >
</td>
</tr>
{{else}}
<tr>
<td width="40%">专题</td>
<td width="60%">
${special}
</td>
</tr>
<tr>
<td width="40%">知识点名称</td>
<td width="60%">
<input type="text" maxlength="20" placeholder="最多只能输入20个字符" id="knowledgeName3" name="knowledgeName" value="${knowledgeName}" style="width:250px;margin-right:5px" >
</td>
</tr>
<tr>
<td width="40%">知识点内容</td>
<td width="60%">
<input type="text" maxlength="30" placeholder="最多只能输入30个字符" id="content3" name="content" value="${content}" style="width:250px;margin-right:5px" >
</td>
</tr>
{{/if}}
{{/if}}
</table>
</article>
<p class="tc">
<input type="submit" class="btnFun" value="保存" onclick="addOrUpdateKn(0)">
{{if flag==0}}
<input type="submit" class="btnFun" value="保存继续录入" onclick="addOrUpdateKn(1)">
{{else}}{{if flag==-1}}
<input type="submit" class="btnFun" value="保存继续录入" onclick="addOrUpdateKn(1)">
{{/if}}{{/if}}
<a href="javascript:void(0)" class="btnFun" onclick="$(‘#formDiv‘).dialog(‘close‘);">取消</a>
</p>
</form>
</script>
<div class="formWrap hc" id="delDiv">
<form class="infoTitle" id="baseform1" >
<fieldset class="S_line2">
<legend class="tit">删除信息确认</legend>
</fieldset>
<p>确认要删除吗?</p>
<p class="tc">
<a href="#" class="btnFun" onclick="srueDel()">确认</a>
<a href="#" class="btnFun" onclick="$(‘#delDiv‘).dialog(‘close‘);">取消</a>
</p>
</form>
</div>
</div>
</body>
</html>
var delid;
var params = new Array();function getSpecial(subject) {
$(‘#specialId‘).empty();
$(‘#specialId‘).append("<option value=‘0‘>专题</option>");
$("#dtreeDiv").empty();
$(‘#add‘).attr(‘style‘,‘display: none;‘);
if (subject != "KM") {
$.ajax({
url:‘/service/manage/knowlege/getSpecial‘,
type:‘GET‘,
async:false,
dataType:‘json‘,
data:‘subject=‘+subject,
success: function(data){
if(data!=""){
$("#specialitem").tmpl(data).appendTo("#specialId");
} else {
$(‘#specialId‘).empty();
$(‘#specialId‘).append("<option value=‘0‘>专题</option>");
$("#dtreeDiv").empty();
}
}
});
}
}function getKnowlegeList(){
$("#dtreeDiv").empty();
var specialId = $(‘#specialId‘).val();
if (specialId == 0) {
$(‘#add‘).attr(‘style‘,‘display: none;‘);
} else {
$(‘#add‘).attr(‘style‘,‘display: display;‘);
var args = $("#selectForm").serialize();
$.ajax({
url : ‘/service/manage/knowlege/getKnowlegeList‘,
type : ‘GET‘,
dataType : ‘json‘,
async: false,
data :args,
success : function(data) {
if(data.length!=0){
d = new dTree(‘d‘);
d.config.useCookies = false;
d.config.useSelection = false;
d.add(0,-1,‘知识点 <a href=\"javascript: d.openAll();\">展开</a> | <a href=\"javascript: d.closeAll();\">收起</a> ‘);
for(var i=0;i<data.length;i++){
d.add(data[i].knowledgeId,data[i].parentId,data[i].knowledgeName +
"<input type=‘hidden‘ name=‘ids‘ value=‘"+data[i].knowledgeId+"‘>"+
"<input type=‘hidden‘ id=‘knowledgeName"+data[i].knowledgeId+"‘ value=‘"+data[i].knowledgeName+"‘>"+
"<input type=‘hidden‘ id=‘content"+data[i].knowledgeId+"‘ value=‘"+data[i].content+"‘>"+
"<input type=‘hidden‘ id=‘parentId"+data[i].knowledgeId+"‘ value=‘"+data[i].parentId+"‘>"+
"<input type=‘hidden‘ id=‘isLeaf"+data[i].knowledgeId+"‘ value=‘"+data[i].isLeaf+"‘>"+
"<button onclick=‘popKn(0,"+data[i].knowledgeId+")‘>添加</button>" +
"<button onclick=‘popKn("+data[i].knowledgeId+","+data[i].knowledgeId+")‘>修改</button>" +
"<button onclick=‘deleteKn("+data[i].knowledgeId+")‘>删除</button>");
}
document.getElementById("dtreeDiv").innerHTML=d;
d.closeAll();
}
}
});
}
}function popKn(flag,knowledgeId) {
$("#formDiv").html("");
var specialId = $(‘#specialId‘).val();
var special = $(‘#specialId‘).find("option:selected").text();;
if (flag == 0 || flag==-1) {
var data = eval("[{‘knowledgeId‘:‘"+knowledgeId+"‘,‘flag‘:‘"+flag+"‘,‘special‘:‘"+special+"‘,‘specialId‘:‘"+specialId+"‘}]");
$("#addVoTmpl").tmpl(data).appendTo("#formDiv");
} else {
var knowledgeName = $(‘#knowledgeName‘+knowledgeId).val();
var content = $(‘#content‘+knowledgeId).val();
var json = "{‘knowledgeId‘:‘"+knowledgeId+"‘,‘flag‘:‘"+flag+"‘,‘special‘:‘"+special+"‘,‘specialId‘:‘"+specialId+"‘}";
var data = eval("["+json+"]");
$("#addVoTmpl").tmpl(data).appendTo("#formDiv");
$(‘#specialId3‘).find(‘>option[value="‘+specialId+‘"]‘).attr(‘selected‘,‘true‘);
$(‘#knowledgeName3‘).val(knowledgeName);
$(‘#content3‘).val(content);
}
$("#formDiv").dialog({
modal : true,
width : 646,
minHeight : 87,
});
}function addOrUpdateKn(flag) {
$("#baseform").validate({
onkeyup:false,
onsubmit:true,
rules:{
"knowledgeName" : {
required: true,
},
"content" : {
required: true,
}
},
messages:{
"knowledgeName" : {
required: "名称不能为空",
},
"content" : {
required: "内容不能为空",
}
},
errorElement:"font",
errorPlacement: function(error, element){
error.appendTo(element.parent());
element.next().css("color","red");
},
success:"valid",
submitHandler:function(form) {
addOrUpdate(flag);
}
});
}function addOrUpdate(flag) {
var args = $("#baseform").serialize();
$.ajax({
url:‘/service/manage/knowlege/addOrUpdateKn‘,
type:‘POST‘,
async:false,
dataType:‘json‘,
data :args,
success : function(data) {
if (data == 1) {
if(flag == 0) {
$(‘#formDiv‘).dialog(‘close‘);
getKnowlegeList();
} else {
$(‘input[name="knowledgeName"]‘).val("");
$(‘input[name="content"]‘).val("");
getKnowlegeList();
}
} else {
alert("系统繁忙,请稍后再试!");
}
}
});
}function deleteKn(knowledgeId) {
params.push(knowledgeId);
// alert($(‘#content‘+knowledgeId).parent(‘.node‘).parent(‘.dTreeNode‘).next(‘.clip‘).find(‘input[name="ids"]‘).val());
for(var i=0 ; i<$(‘#content‘+knowledgeId).parent(‘.node‘).parent(‘.dTreeNode‘).next(‘.clip‘).find(‘input[name="ids"]‘).length ; i++){
params.push($(‘#content‘+knowledgeId).parent(‘.node‘).parent(‘.dTreeNode‘).next(‘.clip‘).find(‘input[name="ids"]:eq(‘+i+‘)‘).val());
}
$("#delDiv").dialog({
modal : true,
width : 300,
height: 150,
});
}function srueDel() {
var args = "params="+params;
$.ajax({
url : ‘/service/manage/knowlege/deleteKn‘,
type : ‘POST‘,
dataType : ‘json‘,
async: false,
data :args,
success : function(data) {
if (data == 1) {
getKnowlegeList();
}else{
alert("系统繁忙,请稍后再试!");
}
}
});
$(‘#delDiv‘).dialog(‘close‘);
}
坑了我两天的代码,新手入职一个月,没学过js,平时都是靠度娘边学边做,这两天给了我一个关于dtree的任务,首先了解dtree花费了我一天时间,为了动态生成这个树结构,我花费了好久时间,一直在琢磨,终于能够生成这个树结构;随后为了完成删除父节点以及子节点,想了好多方法,写了好多demo就是不成功,最后经过别人指点
alert($(‘#content‘+knowledgeId).parent(‘.node‘).parent(‘.dTreeNode‘).next(‘.clip‘).find(‘input[name="ids"]‘).val());
终于拿到了,父节点以及子节点所有的id值。
之后为了做一个验证(jquery.validate),之前就做过验证并且成功了,这次用很快速度完成了验证的js代码
function addOrUpExa(flag) {
$("#baseform").validate({
onkeyup:false,
onsubmit:true,
rules:{
"specielId" : {
min : 1,
},
"subject" : {
subjectxxx : true,
},
"examcentreName" : {
required: true,
}
},
messages:{
"specielId" : {
min : "请选择专题",
},
"subject" : {
subjectxxx : "请选择科目",
},
"examcentreName" : {
required: "不能为空",
}
},
errorElement:"font",
errorPlacement: function(error, element){
error.appendTo(element.parent());
element.next().css("color","red");
},
success:"valid",
submitHandler:function(form) {
addOrUp(flag);
}
});
}
可是死活出不来验证结果,但是通过审查元素发现表单是有变化的,但是为什么出不来验证提示,最后发现我的提交按钮用的是<a>提交</a>实现的,改成<input
type="submit">就好了,这里记下来。
然后是关于select的验证,我的两个select一个的value是数字一个是字符串,数字的很好的用min实现了,可是字符串的不知道怎么实现,最后我通过查找资料,添加验证规则实现了select字符串的验证
jQuery.validator.addMethod("subjectxxx", function(value, element) {
if (value == ‘KM‘) {
return false;
} else {
return true;
}
},"请选择科目");
终于舒了一口气,这两天的任务可累死,但是也学到了很多东西,除了技术上的各种难题,我也深深感觉到业务逻辑对于程序员的重要性,代码写的再好,对于业务的把握不够准确,写出来的代码也是废品。