|
@@ -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) {
|