chenshilong 6 年之前
父節點
當前提交
02f8e6255c
共有 2 個文件被更改,包括 53 次插入5 次删除
  1. 33 2
      modules/main/facade/block_lib_facade.js
  2. 20 3
      web/building_saas/main/js/views/block_lib.js

+ 33 - 2
modules/main/facade/block_lib_facade.js

@@ -31,8 +31,39 @@ async function getLibNamesAndFirstLib(data) {
     return {libNames: libNames, firstLib: firstLib};
 };
 
-// libID
+/*------------------------------------------------------------------------------
+data参数示例:
+        {
+            libID: 3,
+            nodeID: 5,
+            create: {node}
+            delete: true
+            update: {nodeName: 'xxx', children: [...]}
+        }
+说明:   libID、nodeID 必须。 create|update|delete三选一。
+        create属性值是完整的node节点数据。
+        delete属性值是true。
+        update属性值是要修改的属性键值对组成的对象。
+------------------------------------------------------------------------------*/
 async function saveBlock(data) {
-    await blModel.update({libID: data.libID}, {"$addToSet": {"datas": data}});
+    if (data.create) {
+        await blModel.update({libID: data.libID}, {$addToSet: {datas: data.create}});
+    }
+    if (data.delete) {
+        await blModel.update({libID: data.libID}, {$pull: {datas: {ID: data.nodeID}}});
+    }
+    else if (data.update){
+        let doc = await blModel.findOne({libID: data.libID});
+        let datas = doc._doc.datas;
+        for (let i = 0; i < datas.length; i++) {
+            if (datas[i].ID == data.nodeID) {
+                for (let pn in data.update){
+                    datas[i][pn] = data.update[pn];
+                };
+                await doc.save();
+                break;
+            }
+        };
+    };
     return 'saveBlock.OK';
 };

+ 20 - 3
web/building_saas/main/js/views/block_lib.js

@@ -383,7 +383,12 @@ var blockLibObj = {
             blockLibObj.assignData(temp, source);
 
         try {
-            await ajaxPost('/blockLib/saveBlock', temp.data);
+            let obj = {
+                libID: blockLibObj.activeLib.libID,
+                nodeID: temp.data.ID,
+                create: temp.data
+            };
+            await ajaxPost('/blockLib/saveBlock', obj);
             let newN = tree.insertByID(ID, pID, nID);
             newN.data = temp.data;
             tree.selected = newN;
@@ -427,8 +432,14 @@ var blockLibObj = {
             delete r.feesIndex;
         };
     },
-    reName: function (node, newName){
+    reName: async function (node, newName){
         if (newName == '') return;
+        let obj = {
+            libID: blockLibObj.activeLib.libID,
+            nodeID: node.data.ID,
+            update: {nodeName: newName}
+        };
+        await ajaxPost('/blockLib/saveBlock', obj);
         node.data.nodeName = newName;
         let idx = blockLibObj.mainTree.items.indexOf(node);
         blockLibObj.mainSheet.setValue(idx, 0, newName);
@@ -436,7 +447,13 @@ var blockLibObj = {
     moveBlock: function (parentID) {
         // this.mainTreeController.moveTo(parentID);
     },
-    delete: function () {
+    delete: async function () {
+        let obj = {
+            libID: blockLibObj.activeLib.libID,
+            nodeID: blockLibObj.mainTree.selected.data.ID,
+            delete: true
+        };
+        await ajaxPost('/blockLib/saveBlock', obj);
         this.mainTreeController.delete();
     },
     getCategories: function () {