zhangweicheng 7 years ago
parent
commit
6e6e78aaed

+ 2 - 1
config/config.js

@@ -22,6 +22,7 @@ module.exports = {
                  "socketOptions": {
                  "connectTimeoutMS": 20000
                 }
-            }
+            }/*,
+           'useMongoClient': true*/ //报 DeprecationWarning: `open()` is deprecated in mongoose这个错时可以用这句配置
         }
 }

+ 1 - 0
config/gulpConfig.js

@@ -108,6 +108,7 @@ module.exports = {
         'web/building_saas/main/js/views/glj_view_contextMenu.js',
         'web/building_saas/main/js/views/calc_program_view.js',
         'web/building_saas/main/js/views/confirm_modal.js',
+        'web/building_saas/main/js/views/zlfb_view.js',
         'public/web/rpt_tpl_def.js',
         'public/web/treeDataHelper.js',
         'public/web/ztree_common.js',

+ 33 - 0
modules/main/controllers/bills_controller.js

@@ -7,6 +7,7 @@ let ration_model = require('../models/ration');
 let ProjectsData = require('../../pm/models/project_model').project;
 let logger = require("../../../logs/log_helper").logger;
 let quantity_detail = require("../facade/quantity_detail_facade");
+let bill_detail = require("../facade/bill_facade");
 let ration_glj = mongoose.model('ration_glj');
 let ration_coe = mongoose.model('ration_coe');
 
@@ -114,6 +115,38 @@ module.exports = {
             result.message = err.message;
         }
         res.json(result);
+    },
+    getSectionInfo:async function(req, res){
+        let result={
+            error:0
+        }
+        try {
+            let data = req.body.data;
+            data = JSON.parse(data);
+            let sectionInfo= await bill_detail.getSectionInfo(data);
+            result.data=sectionInfo;
+        }catch (err){
+            logger.err(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        res.json(result);
+    },
+    reorganizeFBFX:async function(req,res){
+        let result={
+            error:0
+        }
+        try {
+            let data = req.body.data;
+            data = JSON.parse(data);
+            let reorganizeResult= await bill_detail.reorganizeFBFX(data);
+            result.data=reorganizeResult;
+        }catch (err){
+            logger.err(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        res.json(result);
     }
 
 };

+ 12 - 6
modules/main/facade/bill_facade.js

@@ -6,15 +6,12 @@ let Bills = model.billsMod;
 let _ = require("lodash");
 module.exports={
    getSectionInfo : async function (data) {
-        console.log(data);
         let conditions=[];
         let fxList=[];
-        let billsLibId=0;
         let sectionInfo ={};
         for(let libID in data){
             let codes=[];
             let temp={};
-            let billsLibId = libID;
             codes= _.keys(data[libID]);
             temp['billsLibId']=libID;
             temp['code'] = {"$in": codes};
@@ -33,9 +30,18 @@ module.exports={
                 }
             }
             let IDList = _.keys(sectionIDs);
-            let sectionList = await Bills.find({"billsLibId":billsLibId,'ID':{'$in':IDList}});
-            console.log(sectionList);
-            console.log('getData');
+            let sectionList = await Bills.find({'ID':{'$in':IDList}});
+            let sectionMap = _.mapKeys(sectionList,'ID');
+            let fxMap =  _.mapKeys(fxList,'code');
+            sectionInfo={
+                fxMap:fxMap,
+                sectionMap :sectionMap
+            }
+            return sectionInfo;
         }
+        return null;
+    },
+    reorganizeFBFX:async function(data){
+        console.log(data);
     }
 }

+ 2 - 1
modules/main/routes/bills_route.js

@@ -15,7 +15,8 @@ module.exports = function (app) {
     //删除单个清单,不删除子项
     billsRouter.post('/singleDelete',billsController.singleDelete);
     billsRouter.post('/multiDelete',billsController.multiDelete);
-
+    billsRouter.post('/getSectionInfo', billsController.getSectionInfo);
+    billsRouter.post('/reorganizeFBFX', billsController.reorganizeFBFX);
     app.use('/bills', billsRouter);
 };
 

+ 6 - 2
public/web/id_tree.js

@@ -88,8 +88,12 @@ var idTree = {
                 var pre, next, i;
                 if (nodes.length === 0) { return; }
                 if (arguments.length === 4) {
-                    pre = (iIndex <= 0 || iIndex > children.length) ? null : children[iIndex - 1];
-                    next = pre ? pre.nextSibling : null;
+                    pre = (iIndex <= 0 || iIndex > children.length) ? null : children[iIndex-1];
+                    if(pre==null){
+                        next = iIndex==0?children[0]:null;
+                    }else {
+                        next = pre.nextSibling;
+                    }
                 } else if (arguments.length === 3) {
                     pre = children.length === 0 ? null : children[children.length - 1];
                     next = null;

+ 3 - 0
web/building_saas/css/main.css

@@ -334,4 +334,7 @@ div.resize{
     background: #f7f7f9;
     width: 100%;
     cursor: s-resize;
+}
+.zlfb-check{
+    margin-left: 0;
 }

+ 2 - 2
web/building_saas/main/html/main.html

@@ -825,13 +825,13 @@
                         </label>
                     </div>
                     <div class="form-check">
-                        <input class="form-check-input zlfb-check" type="checkbox" id="bill_resort">
+                        <input class="form-check-input zlfb-check" type="checkbox" checked id="bill_resort">
                         <label class="form-check-label">
                             清单排序
                         </label>
                     </div>
                     <div class="form-check">
-                        <input class="form-check-input zlfb-check" type="checkbox" id="bill_recode"  >
+                        <input class="form-check-input zlfb-check" type="checkbox" checked id="bill_recode"  >
                         <label class="form-check-label">
                             清单重新编码
                         </label>

+ 29 - 0
web/building_saas/main/js/models/bills.js

@@ -504,6 +504,15 @@ var Bills = {
                 }
             }
         };
+        bills.prototype.getFBFXNode = function (controller) {//取分部分项工程节点
+            let roots =  controller.tree.roots;
+            for(let root of roots){
+                if(isFlag(root.data)&&root.data.flagsIndex.fixed.flag==fixedFlag.SUB_ENGINERRING){
+                    return root;
+                }
+            }
+        };
+
         bills.prototype.deleteSelectedNode=function(){//删除选中单行时的节点
             let controller = projectObj.mainController, project = projectObj.project;
             let selected = controller.tree.selected, parent = selected.parent;
@@ -649,6 +658,26 @@ var Bills = {
                 }
             }
         };
+        bills.prototype.deleteAllFBNodes = function(){
+            let controller = projectObj.mainController, project = projectObj.project;
+            let Bill = project.Bills;
+            let FBFX = Bill.getFBFXNode(controller);//取分部分项工程节点;
+            let deleteRootNodes = _.clone(FBFX.children);
+            let deleteRootNodes_id = _.clone(FBFX.source.children);
+            let sels = controller.sheet.getSelections();
+            controller.tree.m_delete(deleteRootNodes);
+            this.tree.m_delete(deleteRootNodes_id);
+            TREE_SHEET_HELPER.massOperationSheet(controller.sheet, function () {
+                let rowCount = 0;
+                for(let node of deleteRootNodes){
+                    rowCount = rowCount+node.posterityCount() + 1;
+                }
+                controller.sheet.deleteRows(1, rowCount);
+                let index = sels[0]?sels[0].row:1;
+                controller.setTreeSelected(controller.tree.items[1]);
+            });
+            cbTools.refreshFormulaNodes();
+        };
         return new bills(project);
     }
 };

+ 6 - 2
web/building_saas/main/js/models/cache_tree.js

@@ -76,8 +76,12 @@ var cacheTree = {
                 var pre, next, i;
                 if (nodes.length === 0) { return; }
                 if (arguments.length === 4) {
-                    pre = (iIndex <= 0 || iIndex > children.length) ? null : children[iIndex - 1];
-                    next = pre ? pre.nextSibling : null;
+                    pre = (iIndex <=0 || iIndex > children.length) ? null : children[iIndex-1];
+                    if(pre==null){
+                        next = iIndex==0?children[0]:null;
+                    }else {
+                        next = pre.nextSibling;
+                    }
                 } else if (arguments.length === 3) {
                     pre = children.length === 0 ? null : children[children.length - 1];
                     next = null;

+ 4 - 7
web/building_saas/main/js/models/ration_glj.js

@@ -495,7 +495,6 @@ var ration_glj = {
                 rationCount: project.Ration.maxRationID()
             }
             selectedSerialNo == null ? "" : postData.selectedSerialNo = selectedSerialNo;
-            $.bootstrapLoading.start();
             CommonAjax.post("/ration/insertGLJAsRation", postData, function (data) {
                 // 更新兄弟节点的序列号
                 if (selectedSerialNo != null) {
@@ -506,7 +505,7 @@ var ration_glj = {
                         }
                     }
                 }
-                let newNode=null;
+              /*  let newNode=null;
                 for (let r_glj of data) {
                     r_glj.marketUnitFee = r_glj.marketPrice;
                     r_glj.quantity = r_glj.quantity + "";
@@ -516,12 +515,9 @@ var ration_glj = {
                     newNode.sourceType = project.Ration.getSourceType();
                     newNode.data = r_glj;
                     ProjectController.syncDisplayNewNode(projectObj.mainController, newNode);
-                }
-                let parentNode = project.mainTree.nodes[project.mainTree.prefix + parentNodeID];
-                project.calcProgram.calcLeafAndSave(parentNode);//计算父级清单的所有子节点
+                }*/
                 //this.nodes[this.prefix + parentID];
-                callback(newNode);
-                $.bootstrapLoading.end();
+                callback(parentNodeID,nextNodeID,data);
             }, function () {
                 $.bootstrapLoading.end();
             });
@@ -680,6 +676,7 @@ var ration_glj = {
                     if (typeString.indexOf("2") != -1) {//只有材料类型才显示是否暂估
                         ration.isEstimate = glj.is_evaluate;
                     }
+                    ration = gljOprObj.setGLJPrice(ration,glj);
                     ration.basePrice = glj.unit_price.base_price;
                     ration.marketUnitFee = glj.unit_price.market_price;
                     ration.isAdd = glj.unit_price.is_add;

+ 20 - 6
web/building_saas/main/js/views/glj_view.js

@@ -837,7 +837,6 @@ var gljOprObj = {
             }
             quantity = scMathUtil.roundForObj(quantity, getDecimal("ration.quantity"));//计算前进行4舍5入
             glj.quantity = scMathUtil.roundForObj(glj.quantity, getDecimal("glj.quantity"));
-            console.log(glj.quantity);
             glj.totalQuantity = scMathUtil.roundToString(quantity * glj.quantity, getDecimal("glj.quantity"));
             if (glj.hasOwnProperty('subList')) {//需要计算glj下挂的组成物的总消耗量
                 this.calcMixRationTotalQuantity(glj.subList,glj.totalQuantity);
@@ -889,7 +888,7 @@ var gljOprObj = {
         return ration_gljs;
     },
     setGLJPrice:function (data,glj) {
-        glj = glj?glj:_.find(projectObj.project.projectGLJ.datas.projectGljs, {'id': ration_gljs[i].projectGLJID});
+        glj = glj?glj:_.find(projectObj.project.projectGLJ.datas.gljList, {'id': data.projectGLJID});
         if(this.calcPriceDiff(glj)==true) {//计取价差
             data.basePrice = glj.unit_price.base_price;
             data.marketPrice = glj.unit_price.market_price;
@@ -1290,14 +1289,29 @@ var gljOprObj = {
             return;
         }
         $("#glj_tree_div").modal('hide');
-        project.ration_glj.insertGLJAsRation(me.GLJSelection, selected, function (node) {
+        $.bootstrapLoading.start();
+        project.ration_glj.insertGLJAsRation(me.GLJSelection, selected, function (parentNodeID,nextNodeID,data) {
             project.projectGLJ.loadData(function () {
-                projectObj.mainController.refreshTreeNode([node]);
-                if(me.hasComposition(node.data,true)){
-                    me.showMixRatio(node);
+                  let newNode=null;
+                 for (let r_glj of data) {
+                     r_glj = me.setGLJPrice(r_glj);//设置工料机价格
+                     r_glj.marketUnitFee = r_glj.marketPrice;
+                     r_glj.quantity = r_glj.quantity + "";
+                     project.Ration.datas.push(r_glj);
+                     newNode = project.mainTree.insert(parentNodeID, nextNodeID, r_glj.ID);
+                     newNode.source = r_glj;
+                     newNode.sourceType = project.Ration.getSourceType();
+                     newNode.data = r_glj;
+                     ProjectController.syncDisplayNewNode(projectObj.mainController, newNode);
+                 }
+                project.calcProgram.calcLeafAndSave(newNode.parent);//计算父级清单的所有子节点
+                projectObj.mainController.refreshTreeNode([newNode]);
+                if(me.hasComposition(newNode.data,true)){
+                    me.showMixRatio(newNode);
                 }else {
                     me.showRationGLJSheetData();
                 }
+                $.bootstrapLoading.end();
             });
 
         })

+ 232 - 32
web/building_saas/main/js/views/zlfb_view.js

@@ -10,26 +10,28 @@ let zlfb_object={
         let all_sub_nodes=[],FB_nodes =[],FX_nodes =[], query={};
         let codeMap = {};
         let reorganize = false;
-        controller.tree.getAllSubNode(FBFX.source,all_sub_nodes);//取分部分项工程节点下的所有节点,不包括定额和工料机节点;
+        controller.tree.getAllSubNode(FBFX,all_sub_nodes);//取分部分项工程节点下的所有节点,不包括定额和工料机节点;
         for(let tem_node of all_sub_nodes){
-            if(tem_node.data.type == billType.FB){
-                FB_nodes.push(tem_node);
-            }
-            if(tem_node.data.type == billType.FX){
-                FX_nodes.push(tem_node);
-                let l_code = zlfb_object.getLibCode(tem_node.data.code);
-                if(tem_node.data.billsLibId&&l_code!=false){
-                    reorganize= true;
-                    if(codeMap[l_code]){
-                        codeMap[l_code].push(tem_node);
-                    }else {
-                        codeMap[l_code]=[tem_node];
-                    }
-                    if(query[tem_node.data.billsLibId]){
-                        query[tem_node.data.billsLibId][l_code]=true;
-                    }else {
-                        query[tem_node.data.billsLibId]={};
-                        query[tem_node.data.billsLibId][l_code]=true;
+            if(tem_node.sourceType==Bill.getSourceType()){
+                if(tem_node.data.type == billType.FB){
+                    FB_nodes.push(tem_node);
+                }
+                if(tem_node.data.type == billType.FX){
+                    FX_nodes.push(tem_node);
+                    let l_code = zlfb_object.getLibCode(tem_node.data.code);
+                    if(tem_node.data.billsLibId&&l_code!=false){
+                        reorganize= true;
+                        if(codeMap[l_code]){
+                            codeMap[l_code].push(tem_node);
+                        }else {
+                            codeMap[l_code]=[tem_node];
+                        }
+                        if(query[tem_node.data.billsLibId]){
+                            query[tem_node.data.billsLibId][l_code]=true;
+                        }else {
+                            query[tem_node.data.billsLibId]={};
+                            query[tem_node.data.billsLibId][l_code]=true;
+                        }
                     }
                 }
             }
@@ -41,14 +43,15 @@ let zlfb_object={
                 'FX_nodes':FX_nodes
             }
             CommonAjax.post('/bills/getSectionInfo',query,function (data) {
+                if(data){
+                    zlfb_object.sectionInfo.fxMap = data.fxMap;
+                    zlfb_object.sectionInfo.sectionMap = data.sectionMap;
+                }
                 $("#zlfb").modal({show:true});
             });
         }else {
             $("#zlfb").modal({show:true});
         }
-
-        console.log(query);
-
     },
     getLibCode:function (billCode) {//根据清单编号得到清单库中的编号
         if(billCode&&billCode.length>=9){
@@ -56,21 +59,218 @@ let zlfb_object={
         }else {
             return false;
         }
+    },
+    reorganizeNodes:function () {
+        let me = this;
+        let controller = projectObj.mainController, project = projectObj.project;
+        let Bill = project.Bills;
+        let FBFX = Bill.getFBFXNode(controller);//取分部分项工程节点;
+        let resort = $('#bill_resort').prop('checked'),recode=$('#bill_recode').prop('checked'),first=$('#bill_first').prop('checked');
+        let second =$('#bill_second').prop('checked'), third =$('#bill_third').prop('checked');
+        let needSelf = first==true||second==true||third==true;//需要补充分部节点;
+        $.bootstrapLoading.start();
+        if(me.sectionInfo){
+            let FX_nodes =me.sectionInfo.FX_nodes,fxMap = me.sectionInfo.fxMap,FB_nodes =me.sectionInfo.FB_nodes;
+            let codeMap = {},sectionNodeMap={},allNewNode=[],updateData={},newDataMap={};
+            let first_FX_ID = -1;
+            if(FB_nodes.length>0){
+                updateData.delete = me.getDeleteData(FB_nodes);
+                Bill.deleteAllFBNodes();
+            }
+            if(resort){
+                FX_nodes = _.sortBy(FX_nodes,'data.code');
+            }
+            for(let tem_node of FX_nodes){
+                let isStd = true;//是标准工料机
+                let l_code = me.getLibCode(tem_node.data.code);
+                let parentNode = FBFX;
+                let newCode = tem_node.data.code;
+                if(l_code!=false&&fxMap[l_code]){//能找到说明是标准工料机
+                    let tem_sectionInfo = fxMap[l_code].sectionInfo;
+                    if(first&&tem_sectionInfo['first']){//需要专业分部标题
+                        parentNode= me.createSectionNode(sectionNodeMap,tem_sectionInfo['first'],parentNode,allNewNode,newDataMap,true);
+                    }
+                    if(second&&tem_sectionInfo['second']){//需要章分部标题
+                        let isRoot = first==true?false:true;
+                        parentNode= me.createSectionNode(sectionNodeMap,tem_sectionInfo['second'],parentNode,allNewNode,newDataMap,isRoot);
+                    }
+                    if(third&&tem_sectionInfo['third']){//需要章分部标题
+                        let isRoot = first==true||second==true?false:true;
+                        parentNode= me.createSectionNode(sectionNodeMap,tem_sectionInfo['third'],parentNode,allNewNode,newDataMap,isRoot);
+                    }
+                    if(recode==true){//需要重新编号
+                        if(codeMap[l_code]){
+                            codeMap[l_code]+=1;
+                        }else {
+                            codeMap[l_code]=1;
+                        }
+                        newCode = l_code+me.getEndCode(codeMap[l_code],3);
+                    }
+                }else {//自定义分项
+                    if(needSelf==true){
+                        parentNode= me.createSectionNode(sectionNodeMap,"customer",parentNode,allNewNode,newDataMap,true);
+                    }
+                    isStd = false;
+                }
+                let nextID=-1;
+                if(needSelf==false){//如果章节信息三项都不勾选的情况下,要插在自定义分项前
+                    if(isStd==false&&first_FX_ID==-1){//如果是自定义分项,并且是第一个,要记住ID
+                        first_FX_ID = tem_node.getID();
+                    }
+                   if(isStd==true){//如果是标准的分部,则要插入到第一个自定义分部前面
+                       nextID = first_FX_ID;
+                    }
+                }
+                let newFXNode  = controller.tree.insert(parentNode.getID(), nextID,tem_node.getID());
+                let newSource = Bill.tree.insertByData(tem_node.data,parentNode.getID(), nextID, true);
+                newFXNode.source = newSource;
+                newFXNode.sourceType = project.Bills.getSourceType();
+                newFXNode.data = newSource.data;
+                allNewNode.push(newFXNode);
+                newFXNode.data.code = newCode;
+                newFXNode.data.ParentID = parentNode.getID();
+                newFXNode.data.NextSiblingID=nextID;
+                newDataMap[newFXNode.getID()]={
+                    code:newCode,
+                    ParentID:parentNode.getID(),
+                    NextSiblingID:nextID
+                }
+                if(newFXNode.preSibling){
+                    newFXNode.preSibling.data.NextSiblingID = newFXNode.getID();
+                    newDataMap[newFXNode.preSibling.getID()].NextSiblingID=newFXNode.getID();
+                }
+                //生成定额或工料机节点
+                if(tem_node.children.length>0){
+                    me.addSubNode(newFXNode,tem_node.children,allNewNode,controller)
+                }
+            };
+            me.submitRequest(newDataMap,allNewNode,updateData,FBFX,controller);
+            $.bootstrapLoading.end();
+        }else {
+            $.bootstrapLoading.end();
+        }
+    },
+    addSubNode:function (parentNode,oldChildren,allNewNode,controller) {
+        for(let c of oldChildren){
+            let newChild = controller.tree.insert(parentNode.getID(), -1,c.getID());
+            newChild.source = c.data;
+            newChild.sourceType = c.sourceType;
+            newChild.data = c.data;
+            allNewNode.push(newChild);
+            if(c.children.length>0){
+                zlfb_object.addSubNode(newChild,c.children,allNewNode,controller);
+            }
+        }
+    },
+    getDeleteData:function (FB_nodes) {
+        let fbIDs=[];
+        for(let fb of FB_nodes){
+            fbIDs.push(fb.getID());
+        }
+        return fbIDs;
+    },
+    createSectionNode:function (sectionNodeMap,ID,parentNode,allNewNode,newDataMap,isRoot) {
+        let sectionMap = zlfb_object.sectionInfo.sectionMap;
+        let controller = projectObj.mainController;
+        if(sectionNodeMap[ID]){//如果这个节点已经存在
+            parentNode = sectionNodeMap[ID];
+        }else {//不存在就生成一个
+            let nodeID = uuid.v1();
+            let nextID=-1;
+            if(isRoot==true&&ID!='customer'&&sectionNodeMap['customer']){//如果自定义分部存在,插入到自定文分部前面
+                nextID=sectionNodeMap['customer'].getID();
+            }
+            let newNode  = controller.tree.insert(parentNode.getID(), nextID,nodeID);
+            let data ={
+                ID:nodeID,
+                projectID:parseInt(projectObj.project.ID()),
+                ParentID:parentNode.getID(),
+                NextSiblingID:nextID,
+                type:billType.FB
+            };
+            if(newNode.preSibling){
+                newDataMap[newNode.preSibling.getID()].NextSiblingID=newNode.getID();
+                newNode.preSibling.data.NextSiblingID=newNode.getID();
+            }
+            if(ID=='customer'){
+                data.name = '补充分部';
+            }else {
+                if(sectionMap[ID]==undefined){
+                    console.log(ID);
+                }
+                data.code = sectionMap[ID].code;
+                data.name = sectionMap[ID].name;
+            }
+
+            let newSource = projectObj.project.Bills.tree.insertByData(data,parentNode.getID(), nextID, true);
+            newNode.source = newSource;
+            newNode.sourceType = projectObj.project.Bills.getSourceType();
+            newNode.data = newSource.data;
+            sectionNodeMap[ID]=newNode;
+            parentNode = newNode;
+            allNewNode.push(newNode);
+            newDataMap[nodeID]=data;
+        }
+        return parentNode;
+    },
+    getEndCode:function (number,length) {
+        let preString = '000000000000';
+        preString = preString+number;
+        return preString.substr(preString.length-length,length);
+    },
+    submitRequest:function(newDataMap,allNewNode,updateData,FBFX,controller){
+        for(let ID in newDataMap){ //生成更新数据
+            if(newDataMap[ID].type==billType.FB){//分部类型是插入
+                if(updateData['create']){
+                    updateData['create'].push(newDataMap[ID]);
+                }else {
+                    updateData['create']=[newDataMap[ID]];
+                }
+            }else {
+                if(updateData['update']){
+                    let u_data = {
+                        ID:ID,
+                        data:newDataMap[ID]
+                    };
+                    updateData['update'].push(u_data);
+                }else {
+                    let u_data = {
+                        ID:ID,
+                        data:newDataMap[ID]
+                    };
+                    updateData['update'] = [u_data];
+                }
+            }
+        }
+        updateData.projectID = FBFX.data.projectID;
+        updateData.user_id = userID;
+        console.log(updateData);
+        CommonAjax.post('/bills/reorganizeFBFX',updateData,function (data) {
+            console.log(data);
+        },function () {
+            //errorCallback
+        });
+        controller.sheet.addRows(1, allNewNode.length);
+        for(let c of FBFX.children){
+            TREE_SHEET_HELPER.massOperationSheet(controller.sheet, function () {
+                TREE_SHEET_HELPER.refreshTreeNodeData(controller.setting, controller.sheet, [c], true);
+                controller.sheet.showRow(c.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+            });
+        }
+        cbTools.refreshFormulaNodes();
+        console.log(newDataMap);
+        console.log(allNewNode);
     }
 }
 
 
-
-
 $(function () {
     $('#zlfb_confirm').click(function (){
-        console.log("confirm click")
-
-
-
-
-
-
-
+        $("#zlfb").modal('hide');
+        zlfb_object.reorganizeNodes();
+    });
+    $('#zlfb').on('hidden.bs.modal', function (e) {
+        zlfb_object.sectionInfo=null;
     })
+
 })