| 
					
				 | 
			
			
				@@ -1,116 +1,97 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Created by vian on 2017/4/12. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function getNewBIlls(controller, rowCount, billsLibId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let ParentID = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let NextSiblingID = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let sectionInfo = { first: null, second: null, third: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let updatePreData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let insertBills = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (controller.tree.items.length !== 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let node = controller.tree.selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ParentID = node.getParentID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      sectionInfo = tools.getSectionInfo(node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NextSiblingID = node.getNextSiblingID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updatePreData = { ID: node.getID() }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let updateNode = controller.tree.roots[controller.tree.roots.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updatePreData = { ID: updateNode.getID() }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    controller.tree.maxNodeID(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  for (let i = 0; i < rowCount; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let tem = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ID: uuid.v1(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ParentID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NextSiblingID: -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      sectionInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (i === rowCount - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tem.NextSiblingID = NextSiblingID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else if (i !== 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      insertBills[i - 1].NextSiblingID = tem.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (i === 0 && updatePreData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updatePreData.NextSiblingID = tem.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    insertBills.push(tem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  insertBills = insertBills.reverse(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return { insertBills, updatePreData }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var dbController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   controller: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   currentEditData: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  insert: function (controller, btn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  insert: function (controller, btn, rowCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tools.btnClose(btn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     btn.attr("doing", "true"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (controller.tree.items.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      controller.tree.maxNodeID(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let newNodeId = uuid.v1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let sectionInfo = { first: null, second: null, third: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      billsAjax.createBills( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userAccount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        newNodeId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sectionInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.insertByID(newNodeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.tree.selected.jobs = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.tree.selected.items = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.sheet.setTag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.tree.selected.serialNo(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            newNodeId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          sheetBillsDatas = tools.getsheetDatas( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.sheet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            "bills", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          tools.btnAction(btn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          btn.attr("doing", "false"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.sheet.getParent().focus(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let node = controller.tree.selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var updateId = node.getID(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          createpid = node.getParentID(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          createnid = node.getNextSiblingID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let newNodeId = uuid.v1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let updatePreData = { ID: updateId, NextSiblingID: newNodeId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let sectionInfo = tools.getSectionInfo(node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        billsAjax.createBills( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          userAccount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          newNodeId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          createpid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          createnid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          updatePreData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          sectionInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.insertByID(newNodeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.tree.selected.jobs = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.tree.selected.items = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.sheet.setTag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller.tree.selected.serialNo(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              newNodeId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sheetBillsDatas = tools.getsheetDatas( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller.sheet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              "bills", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            tools.btnAction(btn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            btn.attr("doing", "false"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.sheet.getParent().focus(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let { insertBills, updatePreData } = getNewBIlls( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      controller, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rowCount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      billsLibId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    billsAjax.createBills( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      userAccount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updatePreData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      insertBills, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (updatePreData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const node = controller.tree.findNode(updatePreData.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Object.assign(node.data, updatePreData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const treeData = insertBills.map((item) => ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: "new", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          data: item, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controller.m_insert(treeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controller.tree.selected.jobs = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controller.tree.selected.items = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controller.sheet.setTag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          controller.tree.selected.serialNo(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          controller.tree.selected.getID() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let updateNode = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          controller.tree.roots[controller.tree.roots.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let updateId = updateNode.getID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //let newNodeId = controllers.tree.newNodeID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let newNodeId = uuid.v1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let updatePreData = { ID: updateId, NextSiblingID: newNodeId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let sectionInfo = tools.getSectionInfo(node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        billsAjax.createBills( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          userAccount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          newNodeId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          updatePreData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          sectionInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.insertByID(newNodeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.tree.selected.jobs = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.tree.selected.items = new Array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.sheet.setTag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller.tree.selected.serialNo(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              newNodeId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sheetBillsDatas = tools.getsheetDatas( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller.sheet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              "bills", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            tools.btnAction(btn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            btn.attr("doing", "false"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            controller.sheet.getParent().focus(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sheetBillsDatas = tools.getsheetDatas( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          controller.sheet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          "bills", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tools.btnAction(btn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        btn.attr("doing", "false"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controller.sheet.getParent().focus(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   upLevel: function (controller, btn) { 
			 |