|
@@ -43,41 +43,6 @@
|
|
|
silent : false//设置初始化节点关闭
|
|
|
});
|
|
|
});
|
|
|
- $.getJSON("${ctx}/sg/managementCenter/constructionProject/treeData",function(data){
|
|
|
- jstreeTime(data)
|
|
|
- });
|
|
|
- //搜索
|
|
|
- var search1 = function(e) {
|
|
|
- var pattern = $.trim($('#input-search1').val());
|
|
|
- var options = {
|
|
|
- ignoreCase: $('#chk-ignore-case').is(':checked'),
|
|
|
- exactMatch: $('#chk-exact-match').is(':checked'),
|
|
|
- revealResults: $('#chk-reveal-results').is(':checked')
|
|
|
- };
|
|
|
- $('#jstreeTime').treeview('search', [ $.trim($('#input-search1').val()), { ignoreCase: false, exactMatch: false } ]);
|
|
|
- var results = $('#jstreeTime').treeview('search', [ pattern, options ]);
|
|
|
- }
|
|
|
- $('#btn-search1').on('click', search1);
|
|
|
- $('#btn-clear-search1').on('click', function (e) {
|
|
|
- $('#jstreeTime').treeview('clearSearch');
|
|
|
- $('#input-search1').val('');
|
|
|
- $('#jstreeTime').treeview('collapseAll', {
|
|
|
- silent : false//设置初始化节点关闭
|
|
|
- });
|
|
|
- });
|
|
|
- $('#selectId1').click(function () {
|
|
|
- var object = $('#jstreeTime').treeview('getChecked');
|
|
|
- if (object.length<1){
|
|
|
- jp.error("请选择项目!");
|
|
|
- return false;
|
|
|
- }
|
|
|
- var str = "";
|
|
|
- for (var i = 0; i < object.length; i++) {
|
|
|
- str+=object[i].id+",";
|
|
|
- }
|
|
|
- var sureStr = str.substring(0,str.length-1);
|
|
|
- minus(sureStr);
|
|
|
- })
|
|
|
//表格初始化
|
|
|
$('#table').bootstrapTable({
|
|
|
//请求方法
|
|
@@ -192,21 +157,41 @@
|
|
|
levels: 1,
|
|
|
highlightSelected:false,
|
|
|
showCheckbox:true,
|
|
|
- });
|
|
|
- }
|
|
|
- function jstreeTime(date) {
|
|
|
- $('#jstreeTime').treeview({
|
|
|
- data: date,
|
|
|
- levels: 1,
|
|
|
- highlightSelected:false,
|
|
|
- showCheckbox:true,
|
|
|
- onNodeSelected: function(event, treeNode) {
|
|
|
- var id = treeNode.id;
|
|
|
- jp.openSaveDialog('编辑安排计划项目', "${ctx}/sg/managementCenter/constructionProject/formPlan?id=" + id, '800px', '500px');
|
|
|
+ onNodeChecked: function (event, node) { //选中节点
|
|
|
+ var selectNodes = getChildNodeIdArr(node); //获取所有子节点
|
|
|
+ if (selectNodes) { //子节点不为空,则选中所有子节点
|
|
|
+ $('#jstree').treeview('checkNode', [selectNodes, { silent: true }]);
|
|
|
+ }
|
|
|
+ // var parentNode = $("#jstree").treeview("getNode", node.parentId);
|
|
|
+ // setParentNodeCheck(node);
|
|
|
},
|
|
|
-
|
|
|
+ onNodeUnchecked: function (event, node) { //取消选中节点
|
|
|
+ // 取消父节点 子节点取消
|
|
|
+ var selectNodes = setChildNodeUncheck(node); //获取未被选中的子节点
|
|
|
+ var childNodes = getChildNodeIdArr(node); //获取所有子节点
|
|
|
+ if (selectNodes && selectNodes.length == 0) { //有子节点且未被选中的子节点数目为0,则取消选中所有子节点
|
|
|
+ $('#tree').treeview('uncheckNode', [childNodes, { silent: true }]);
|
|
|
+ }
|
|
|
+ // 取消节点 父节点取消
|
|
|
+ var parentNode = $("#jstree").treeview("getNode", node.parentId); //获取父节点
|
|
|
+ var selectNodes = getChildNodeIdArr(node);
|
|
|
+ setParentNodeCheck(node);
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
+ // function jstreeTime(date) {
|
|
|
+ // $('#jstreeTime').treeview({
|
|
|
+ // data: date,
|
|
|
+ // levels: 1,
|
|
|
+ // highlightSelected:false,
|
|
|
+ // showCheckbox:true,
|
|
|
+ // onNodeSelected: function(event, treeNode) {
|
|
|
+ // var id = treeNode.id;
|
|
|
+ // jp.openSaveDialog('编辑安排计划项目', "${ctx}/sg/managementCenter/constructionProject/formPlan?id=" + id, '800px', '500px');
|
|
|
+ // },
|
|
|
+ //
|
|
|
+ // });
|
|
|
+ // }
|
|
|
function dateTimeValue(value) {
|
|
|
if (value != '1'){
|
|
|
$("#dateTimeId").val(value);
|
|
@@ -271,46 +256,65 @@
|
|
|
return row.id
|
|
|
});
|
|
|
}
|
|
|
-function OnTreeNodeChecked()
|
|
|
-{
|
|
|
- var ele = event.srcElement;
|
|
|
- alert(ele);
|
|
|
- alert(ele.type);
|
|
|
- if(ele.type=='checkbox')
|
|
|
- {
|
|
|
- var childrenDivID = ele.id.replace('CheckBox','Nodes');
|
|
|
- var div = document.getElementById(childrenDivID);
|
|
|
- if(div!=null)
|
|
|
- {
|
|
|
- var checkBoxs = div.getElementsByTagName('INPUT');
|
|
|
- for(var i=0;i<checkBoxs.length;i++)
|
|
|
- {
|
|
|
- if(checkBoxs[i].type=='checkbox')
|
|
|
- checkBoxs[i].checked=ele.checked;
|
|
|
+function getChildNodeIdArr(node) {
|
|
|
+ var ts = [];
|
|
|
+ if (node.children) {
|
|
|
+ for (x in node.children) {
|
|
|
+ ts.push(node.children[x].nodeId);
|
|
|
+ if (node.children[x].children) {
|
|
|
+ var getNodeDieDai = getChildNodeIdArr(node.children[x]);
|
|
|
+ for (j in getNodeDieDai) {
|
|
|
+ ts.push(getNodeDieDai[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ts.push(node.nodeId);
|
|
|
+ }
|
|
|
+ return ts;
|
|
|
+}
|
|
|
+
|
|
|
+// 选中所有子节点时,选中父节点 取消子节点时取消父节点
|
|
|
+function setParentNodeCheck(node) {
|
|
|
+ var parentNode = $("#jstree").treeview("getNode", node.parentId);
|
|
|
+ if (parentNode.children) {
|
|
|
+ var checkedCount = 0;
|
|
|
+ for (x in parentNode.children) {
|
|
|
+ if (parentNode.children[x].state.checked) {
|
|
|
+ checkedCount++;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- OnTreeNodeChildChecked(ele);
|
|
|
+ if (checkedCount == parentNode.children.length) { //如果子节点全部被选 父全选
|
|
|
+ $("#jstree").treeview("checkNode", parentNode.nodeId);
|
|
|
+ setParentNodeCheck(parentNode);
|
|
|
+ } else { //如果子节点未全部被选 父未全选
|
|
|
+ $('#jstree').treeview('uncheckNode', parentNode.nodeId);
|
|
|
+ setParentNodeCheck(parentNode);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function OnTreeNodeChildChecked(ele)
|
|
|
-{
|
|
|
- //递归处理
|
|
|
- var parentDiv=ele.parentElement.parentElement.parentElement.parentElement.parentElement;
|
|
|
- var parentChkBox=document.getElementById(parentDiv.id.replace('Nodes','CheckBox'));
|
|
|
- if(parentChkBox!=null)
|
|
|
- {
|
|
|
- var ChildsChkAll=true;
|
|
|
- var Boxs = parentDiv.getElementsByTagName('INPUT');
|
|
|
- for(var i=0;i<Boxs.length;i++)
|
|
|
- {
|
|
|
- if(Boxs[i].type=='checkbox'&&Boxs[i].checked==false)
|
|
|
- {
|
|
|
- ChildsChkAll=false;
|
|
|
+// 取消父节点时 取消所有子节点
|
|
|
+function setChildNodeUncheck(node) {
|
|
|
+ if (node.children) {
|
|
|
+ var ts = []; //当前节点子集中未被选中的集合
|
|
|
+ for (x in node.children) {
|
|
|
+ if (!node.children[x].state.checked) {
|
|
|
+ ts.push(node.children[x].nodeId);
|
|
|
+ }
|
|
|
+ if (node.children[x].nodes) {
|
|
|
+ var getNodeDieDai = node.children[x];
|
|
|
+ console.log(getNodeDieDai);
|
|
|
+ for (j in getNodeDieDai) {
|
|
|
+ if (!getNodeDieDai.state.checked) {
|
|
|
+ ts.push(getNodeDieDai[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- parentChkBox.checked=ChildsChkAll;
|
|
|
- OnTreeNodeChildChecked(parentChkBox);
|
|
|
}
|
|
|
+ return ts;
|
|
|
}
|
|
|
</script>
|