Browse Source

材料替换库-删除

zhangweicheng 6 năm trước cách đây
mục cha
commit
9d1c56c59e

+ 7 - 1
modules/material_replace_lib/facade/material_replace_facade.js

@@ -70,7 +70,7 @@ let materialReplaceLib = {
             if(d.type == 'update') updateList.push(d);
             if(d.type == 'delete') deleteList.push(d);
         }
-        let p = await Promise.all([addBills(addList),updateBills(updateList)]);
+        let p = await Promise.all([addBills(addList),updateBills(updateList),deleteBills(deleteList)]);
         return p;
     }
 };
@@ -126,6 +126,12 @@ async function updateBills(datas) {
 }
 
 async function deleteBills(datas) {
+    let IDList = [];
+    for(let d of datas){
+        if(d.ID) IDList.push(d.ID)
+    }
+    await replaceBillModel.deleteMany({ID:{"$in": IDList}});
+    return {type:'delete',list:IDList};
 
 }
 

+ 25 - 7
web/maintain/material_replace_lib/js/material_replace_edit.js

@@ -6,6 +6,7 @@ let materialOjb = {
     billsSpread:null,
     materialSpread:null,
     billsList:JSON.parse(billsList),
+    materialList:[],
     billsSetting:{
         header: [
             {headerName: "清单编号", headerWidth: 180, dataCode: "code", dataType: "String",formatter: "@"},
@@ -51,17 +52,31 @@ let materialOjb = {
 
     },
     canDelete : function (sheet) {
+        let me = this;
         let sel =  sheet.getSelections()[0];
-        console.log(sel);
+        let datas = sheet.name() == 'billsSheet'?me.billsList:me.materialList;
         if(sel.row === undefined || sel.row < 0) return false ;//一行都没选中时,不能删除
-
-        //选中空行时,不能删除
-        // to do
+        if((sel.row + sel.rowCount) > datas.length) return false;//选中了空行,不能删除
         return true;
     },
+    deleteBills : async function(sheet){
+        let me = this,deleteList = [];
+        let sel = sheet.getSelections()[0];
+        for(let i = 0;i<sel.rowCount;i++){
+            if(me.billsList[sel.row + i]) deleteList.push(getDeleteDatas(me.billsList[sel.row + i]));
+        }
+        if(deleteList.length > 0) await me.saveBills(deleteList);
+
+
+        function getDeleteDatas(tem) {
+            return {type:'delete', ID:tem.ID}
+        }
+
+    },
 
     initRightClick : function(id,spread) {
         let me = this;
+        let sheet = spread.getActiveSheet();
         $.contextMenu({
             selector: '#'+id,
             build: function ($trigger, e) {
@@ -74,10 +89,11 @@ let materialOjb = {
                     name: "删除",
                     icon: 'fa-trash-o',
                     disabled: function () {
-                        return !me.canDelete(spread.getActiveSheet());
+                        return !me.canDelete(sheet);
                     },
                     callback: function (key, opt) {
-                       console.log();
+                        sheet.name() == 'billsSheet' ? me.deleteBills(sheet):"";
+                       console.log( me.rightClickTarget);
                     }
                 }
             }
@@ -163,7 +179,9 @@ let materialOjb = {
                         this.updateCache(l.code,l.updateData)
                     }
                 }if(r.type == 'delete'){
-
+                     _.remove(this.billsList,function (item) {
+                        return _.includes(r.list,item.ID)
+                    })
                 }
             }
             if(missCodes.length > 0) alert(`没有找到清单:${missCodes.join("、")}`);