|
@@ -16,162 +16,59 @@ $("#gongliao").click(function(){
|
|
|
});
|
|
|
//----------------------------------------------------页面初始化
|
|
|
$(document).ready(function(){
|
|
|
- initParam();
|
|
|
+ rationOprObj.initParam();
|
|
|
mkRationItemSpread();
|
|
|
});
|
|
|
-function initParam(){
|
|
|
- var rationLibName = getQueryString("repository");//获取定额库参数
|
|
|
- if(rationLibName) {
|
|
|
- params.realLibName = rationLibName;
|
|
|
- getRationTree();
|
|
|
- } else{
|
|
|
- params = JSON.parse(getQueryString("params"));
|
|
|
- getRationTree();
|
|
|
- }
|
|
|
-}
|
|
|
-function addRootNode(){
|
|
|
- //$.ajax({
|
|
|
- // type:"POST",
|
|
|
- // url:"api/getRationTree",
|
|
|
- // data:{"rationLibName": params.realLibName},
|
|
|
- // dataType:"json",
|
|
|
- // cache:false,
|
|
|
- // timeout:20000,
|
|
|
- // success:function(result,textStatus,status){
|
|
|
- // if(status.status == 200) createRationTree(result.data);//根据返回的全部定额章节对象,构架树。
|
|
|
- // else{
|
|
|
- // //treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
|
|
|
- // //saveTempTree();
|
|
|
- // }
|
|
|
- // },
|
|
|
- // error:function(err){
|
|
|
- // alert(err.responseText.error)
|
|
|
- // }
|
|
|
- //})
|
|
|
|
|
|
- var newNodes = [], isSilent = false;
|
|
|
- newNodes.push({ id: 20, pId:-1, nId:-1, name:"新增节点",isParent:true, children:[]});
|
|
|
- if (treeObj) {
|
|
|
- treeObj.addNodes(null, -1, newNodes, isSilent);
|
|
|
- } else {
|
|
|
- treeObj = $.fn.zTree.init($("#treeDemo"), setting, newNodes);
|
|
|
+var rationOprObj = {
|
|
|
+ initParam : function() {
|
|
|
+ var me = this, rationLibName = getQueryString("repository");//获取定额库参数
|
|
|
+ if (rationLibName) {
|
|
|
+ params.realLibName = rationLibName;
|
|
|
+ me.getRationTree();
|
|
|
+ } else{
|
|
|
+ params = JSON.parse(getQueryString("params"));
|
|
|
+ me.getRationTree();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getRationTree: function(){
|
|
|
+ var me = this;
|
|
|
+ $.ajax({
|
|
|
+ type:"POST",
|
|
|
+ url:"api/getRationTree",
|
|
|
+ data:{"rationLibName": params.realLibName},
|
|
|
+ dataType:"json",
|
|
|
+ cache:false,
|
|
|
+ timeout:20000,
|
|
|
+ success:function(result,textStatus,status){
|
|
|
+ if(status.status == 200) {
|
|
|
+ me.createRationTree(result.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error:function(err){
|
|
|
+ alert(err.responseText.error)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ createRationTree: function(sourceData){
|
|
|
+ var treeArr = tree_Data_Helper.buildTreeNodeDirectly(sourceData);
|
|
|
+ treeObj = $.fn.zTree.init($("#treeDemo"), setting, treeArr);
|
|
|
}
|
|
|
}
|
|
|
-//---------------------------------------------------初始化章节树界面
|
|
|
-function getRationTree(){
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"api/getRationTree",
|
|
|
- data:{"rationLibName": params.realLibName},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:20000,
|
|
|
- success:function(result,textStatus,status){
|
|
|
- if(status.status == 200) createRationTree(result.data);//根据返回的全部定额章节对象,构架树。
|
|
|
- else{
|
|
|
- //treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
|
|
|
- //saveTempTree();
|
|
|
+
|
|
|
+function addRootNode(){
|
|
|
+ var rawNode = {ParentID: -1, NextSiblingID: -1, name: "新增节点"};
|
|
|
+ addNewNode(rawNode, function(err, rst){
|
|
|
+ if (!(err)) {
|
|
|
+ var newNodes = [], isSilent = false;
|
|
|
+ newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:true, items:[]});
|
|
|
+ if (treeObj) {
|
|
|
+ treeObj.addNodes(null, -1, newNodes, isSilent);
|
|
|
+ } else {
|
|
|
+ treeObj = $.fn.zTree.init($("#treeDemo"), setting, newNodes);
|
|
|
}
|
|
|
- },
|
|
|
- error:function(err){
|
|
|
- alert(err.responseText.error)
|
|
|
}
|
|
|
- })
|
|
|
-}
|
|
|
-//根据返回的节点集合构建树节点
|
|
|
-function createRationTree(obj){
|
|
|
- var treeArr;
|
|
|
- treeArr = makeNodes(obj);
|
|
|
- var maxIDNode = obj.reduce(function(a,b){
|
|
|
- return (a.id> b.id)?a:b;
|
|
|
});
|
|
|
- newCount = maxIDNode.id;
|
|
|
- treeObj = $.fn.zTree.init($("#treeDemo"), setting, treeArr);
|
|
|
-}
|
|
|
-function makeNodes(obj){
|
|
|
- var arr=[];
|
|
|
- arr = obj.filter(function(x){
|
|
|
- return x.parentId==0
|
|
|
- })
|
|
|
- arr.forEach(function(x){
|
|
|
- x.id = x.sectionId;
|
|
|
- x.pId = x.parentId;
|
|
|
- x.nId = x.nextSiblingId;
|
|
|
- x.name = x.name;
|
|
|
- x.isParent = true
|
|
|
- x.lev = 0
|
|
|
- });
|
|
|
- arr = sortArray(arr);
|
|
|
- for(var i=0;i<arr.length;i++){
|
|
|
- var L1 = [];
|
|
|
- L1 = obj.filter(function(x){
|
|
|
- return x.parentId ==arr[i].id;
|
|
|
- });
|
|
|
- L1.forEach(function(x){
|
|
|
- x.id = x.sectionId;
|
|
|
- x.pId = x.parentId;
|
|
|
- x.nId = x.nextSiblingId;
|
|
|
- x.name = x.name;
|
|
|
- x.isParent = true
|
|
|
- x.lev = 1
|
|
|
- });
|
|
|
- L1=sortArray(L1);
|
|
|
- for(var j=0; j<L1.length;j++){
|
|
|
- var L2 = [];
|
|
|
- L2 =obj.filter(function(x){
|
|
|
- return x.parentId == L1[j].id;
|
|
|
- })
|
|
|
- L2.forEach(function(x){
|
|
|
- x.id = x.sectionId;
|
|
|
- x.pId = x.parentId;
|
|
|
- x.nId = x.nextSiblingId;
|
|
|
- x.name = x.name;
|
|
|
- x.isParent = false;
|
|
|
- x.lev = 2
|
|
|
- })
|
|
|
- L2=sortArray(L2)
|
|
|
- L1[j].children = L2;
|
|
|
- }
|
|
|
- arr[i].children = L1;
|
|
|
- }
|
|
|
- return arr;
|
|
|
-}
|
|
|
-function sortArray(arr){
|
|
|
- var a = [];
|
|
|
- for(var i=0;i<arr.length;i++)
|
|
|
- if (arr[i].nextSiblingId == -1)
|
|
|
- a.push(arr[i])
|
|
|
- for(; a.length < arr.length;){
|
|
|
- for(var j=0;j<arr.length;j++) {
|
|
|
- if (arr[j].nextSiblingId == a[0].sectionId)
|
|
|
- {a.unshift(arr[j]); break;}
|
|
|
- }
|
|
|
- }
|
|
|
- return a ;
|
|
|
-}
|
|
|
-//新建的定额库保存模板节点
|
|
|
-function saveTempTree(){
|
|
|
- var N = []
|
|
|
- for(i=0;i<zNodes.length;i++){
|
|
|
- var node ={}
|
|
|
- node.sectionId = zNodes[i].id;
|
|
|
- node.parentId = zNodes[i].pId;
|
|
|
-
|
|
|
- node.nextSiblingId = zNodes[i].nId;
|
|
|
- node.name =zNodes[i].name;
|
|
|
- N.push(node);
|
|
|
- }
|
|
|
- var rationTempTree = JSON.stringify(N)
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"api/saveTempRationTree",
|
|
|
- data:{"rationName":rationLibName,"rationTempTree":rationTempTree},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:1000,
|
|
|
- success:function(result,textStatus,status){},
|
|
|
- error:function(){}
|
|
|
- })
|
|
|
}
|
|
|
//--------------------------------------------------------树处理事件
|
|
|
var newCount = 13;
|
|
@@ -186,7 +83,7 @@ function addHoverDom(treeId, treeNode) {
|
|
|
if (btn) btn.bind("click", function(){
|
|
|
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
|
|
|
if((treeNode.level==0)){
|
|
|
- var newNode = zTree.addNodes(treeNode, {id:(++newCount), pId:treeNode.id,nId:-1,isParent:true, name:"请输入章节名称",children:[]});
|
|
|
+ var newNode = zTree.addNodes(treeNode, {id:(++newCount), pId:treeNode.id,nId:-1,isParent:true, name:"请输入章节名称",items:[]});
|
|
|
|
|
|
}
|
|
|
else{
|
|
@@ -202,6 +99,23 @@ function addHoverDom(treeId, treeNode) {
|
|
|
return false;
|
|
|
});
|
|
|
};
|
|
|
+//增加新节点
|
|
|
+function addNewNode(rawNode, callback) {
|
|
|
+ $.ajax({
|
|
|
+ type:"POST",
|
|
|
+ url:"api/createNewNode",
|
|
|
+ data:{"rationLibName":params.realLibName,"rawNodeData": JSON.stringify(rawNode)},
|
|
|
+ dataType:"json",
|
|
|
+ cache:false,
|
|
|
+ timeout:1000,
|
|
|
+ success: function(result,textStatus,status){
|
|
|
+ callback(false, result);
|
|
|
+ },
|
|
|
+ error:function(err){
|
|
|
+ callback(err);
|
|
|
+ }
|
|
|
+ })
|
|
|
+};
|
|
|
//保存新增的节点
|
|
|
function saveNewSection(n){
|
|
|
var sec={};
|
|
@@ -229,7 +143,7 @@ function onRename(e, treeId, treeNode, isCancel) {
|
|
|
}
|
|
|
function onRemove(e, treeId, treeNode) {
|
|
|
var id = treeNode.id;
|
|
|
- var pNodes = treeNode.getParentNode().children;
|
|
|
+ var pNodes = treeNode.getParentNode().items;
|
|
|
for(var i=0;i<pNodes.length;i++){
|
|
|
if(pNodes[i].nId==id){
|
|
|
pNodes[i].nId = -1;
|