Prechádzať zdrojové kódy

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionOperation

TonyKang 7 rokov pred
rodič
commit
bec955dd26

+ 6 - 6
modules/bills_lib/models/bills_lib_interfaces.js

@@ -1911,7 +1911,7 @@ billsLibDao.prototype.updateJobContent = function(uJobData, callback){
 
 billsLibDao.prototype.deleteJobContent = function(data, callback){
     let delIds = data.ids;
-    let billsLibId = data.billsLibId, lastOperator = data.lastOperator, lastOperateDate = moment(Data.now()).format('YYYY-MM-DD HH:mm:ss');
+    let billsLibId = data.billsLibId, lastOperator = data.lastOperator, lastOperateDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
     if(delIds){
         async.parallel([
             function (cb) {
@@ -2078,7 +2078,7 @@ billsLibDao.prototype.pasteJobs = function (data, callback) {
             functions.push(parallelFucs.createFuc(createDatas[i]));
         }
     }
-    functions.push(parallelFucs.updateLastOpr);
+    functions.push(parallelFucs.updateLastOpr());
     async.parallel(functions, function(err, datas){
         if(err){
             callback(1, 'Error', null);
@@ -2324,7 +2324,7 @@ billsLibDao.prototype.updateItemCharacter = function(uItemData, callback){
     let updateData = uItemData.data;
     let id = uItemData.updateId;
     let billsLibId = uItemData.billsLibId, needSet = {},
-        lastOperator = uItemData.lastOperator, lastOperateDate = moment(Data.now()).format('YYYY-MM-DD HH:mm:ss');
+        lastOperator = uItemData.lastOperator, lastOperateDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
     needSet[field] = updateData;
     async.parallel([
         function (cb) {
@@ -2553,7 +2553,7 @@ billsLibDao.prototype.updateValue = function(uData, callback){
 
 billsLibDao.prototype.deleteItemCharacter = function(data, callback){
     let delIds = data.ids;
-    let billsLibId = data.billsLibId, lastOperator = data.lastOperator, lastOperateDate = moment(Data.now()).format('YYYY-MM-DD HH:mm:ss');
+    let billsLibId = data.billsLibId, lastOperator = data.lastOperator, lastOperateDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
     if(delIds){
         async.parallel([
             function (cb) {
@@ -2721,7 +2721,7 @@ billsLibDao.prototype.pasteItems = function (data, callback) {
             functions.push(parallelFucs.createFuc(createDatas[i]));
         }
     }
-    functions.push(parallelFucs.updateLastOpr);
+    functions.push(parallelFucs.updateLastOpr());
     async.parallel(functions, function(err, datas){
         if(err){
             callback(1, 'Error', null);
@@ -2861,7 +2861,7 @@ billsLibDao.prototype.pasteValues = function(data, callback) {
             functions.push(parallelFucs.createFuc(createDatas[i]));
         }
     }
-    functions.push(parallelFucs.updateLastOpr);
+    functions.push(parallelFucs.updateLastOpr());
     async.parallel(functions, function(err, datas){
         if(err){
             callback(1, 'Error', null);

+ 1 - 1
web/maintain/bills_lib/html/main.html

@@ -32,7 +32,7 @@
                   <div class="col-md-8">
                     <div class="warp-p2 mt-3">
                       <table class="table table-hover table-bordered">
-                        <thead><tr><th>清单规则名称</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
+                        <thead><tr><th>清单规则名称</th><th width="160">编办</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
                         <tbody id="showArea">
                           <!--<tr><td><a href="qingdan.html">XX清单规则</a></td><td>2017-01-01 </td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td></tr>
                           <tr><td><a href="qingdan.html">XX清单规则</a></td><td>2017-01-01 </td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td></tr>

+ 9 - 9
web/maintain/bills_lib/html/neirong.html

@@ -290,27 +290,27 @@
                         }
                     }
                 }
-                let uniqPasteDatas = tools.uniqObjArr(pasteDatas);
-                tools.resetRowIdx(uniqPasteDatas, orgRow);
-                for(let i=0; i< uniqPasteDatas.length; i++){
+                //let pasteDatas = tools.uniqObjArr(pasteDatas);
+            //    tools.resetRowIdx(pasteDatas, orgRow);
+                for(let i=0; i< pasteDatas.length; i++){
                     let crossedData;
                     let flag = true;
                     sheetJobsDatas.forEach(function(orgData){
-                        if(uniqPasteDatas[i].rowIdx === orgData.rowIdx && uniqPasteDatas[i].colIdx === orgData.colIdx){
+                        if(pasteDatas[i].rowIdx === orgData.rowIdx && pasteDatas[i].colIdx === orgData.colIdx){
                             flag = false;
                             crossedData = {
                                 billsLibId: billsLibId,
-                                rowIdx: uniqPasteDatas[i].rowIdx,
-                                colIdx: uniqPasteDatas[i].colIdx,
-                                field: uniqPasteDatas[i].field,
+                                rowIdx: pasteDatas[i].rowIdx,
+                                colIdx: pasteDatas[i].colIdx,
+                                field: pasteDatas[i].field,
                                 orgId: orgData.id,
-                                data: uniqPasteDatas[i].data,
+                                data: pasteDatas[i].data,
                                 type: 'Update'
                             }
                         }
                     });
                     if(flag){
-                        uncrossedDatas.push(uniqPasteDatas[i]);
+                        uncrossedDatas.push(pasteDatas[i]);
                     }
                     else{
                         crossedDatas.push(crossedData);

+ 9 - 0
web/maintain/bills_lib/html/qingdan.html

@@ -685,6 +685,7 @@
         sheetDatas = tools.getsheetDatas(sheet, 'jobs');
         sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
             let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
+            sheetDatas = tools.getsheetDatas(sheet, 'jobs');
             //复制的列数超过正确的列数,不可复制
             if(maxCol >= jobsSetting.cols.length){
                 args.cancel = true;
@@ -746,6 +747,14 @@
     }
     function bindPasteItemsRel(sheet, controller, totalItems, setting){
         sheetItemsDatas = tools.getsheetDatas(sheet, 'items');
+        sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
+            let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
+            sheetItemsDatas = tools.getsheetDatas(sheet, 'items');
+            //复制的列数超过正确的列数,不可复制
+            if(maxCol >= itemsSetting.cols.length){
+                args.cancel = true;
+            }
+        });
         sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function(sender, args){
             //sheet.setColumnCount(2, GC.Spread.Sheets.SheetArea.viewport);
            // sheet.setColumnCount(2, GC.Spread.Sheets.SheetArea.colHeader);

+ 9 - 9
web/maintain/bills_lib/html/tezheng.html

@@ -339,27 +339,27 @@
                         }
                     }
                 }
-                let uniqPasteDatas = tools.uniqObjArr(pasteDatas);
-                tools.resetRowIdx(uniqPasteDatas, orgRow);
-                for(let i=0; i< uniqPasteDatas.length; i++){
+                //let pasteDatas = tools.uniqObjArr(pasteDatas);
+                //tools.resetRowIdx(pasteDatas, orgRow);
+                for(let i=0; i< pasteDatas.length; i++){
                     let crossedData;
                     let flag = true;
                     totalItemsDatas.forEach(function(orgData){
-                        if(uniqPasteDatas[i].rowIdx === orgData.rowIdx && uniqPasteDatas[i].colIdx === orgData.colIdx){
+                        if(pasteDatas[i].rowIdx === orgData.rowIdx && pasteDatas[i].colIdx === orgData.colIdx){
                             flag = false;
                             crossedData = {
                                 billsLibId: billsLibId,
-                                rowIdx: uniqPasteDatas[i].rowIdx,
-                                colIdx: uniqPasteDatas[i].colIdx,
-                                field: uniqPasteDatas[i].field,
+                                rowIdx: pasteDatas[i].rowIdx,
+                                colIdx: pasteDatas[i].colIdx,
+                                field: pasteDatas[i].field,
                                 orgId: orgData.id,
-                                data: uniqPasteDatas[i].data,
+                                data: pasteDatas[i].data,
                                 type: 'Update'
                             }
                         }
                     });
                     if(flag){
-                        uncrossedDatas.push(uniqPasteDatas[i]);
+                        uncrossedDatas.push(pasteDatas[i]);
                     }
                     else{
                         crossedDatas.push(crossedData);

+ 6 - 2
web/maintain/bills_lib/scripts/bills_lib_ajax.js

@@ -62,9 +62,11 @@ var mainAjax = {
                         var billsLibName = result.data[i].billsLibName;
                         var createDate = result.data[i].createDate;
                         var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
+                        let compilationName = result.data[i].compilationName;
                         $("#showArea").append(
                             "<tr id='tempId'>" +
                             "<td><a href='stdBills'>"+billsLibName+"</a></td>" +
+                            "<td>"+compilationName+" </td>" +
                             "<td>"+createDateFmt+" </td>" +
                             "<td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
                             "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
@@ -90,7 +92,7 @@ var mainAjax = {
                     var createDate = result.data[0].createDate;
                     var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
                     $("#showArea").append(
-                        "<tr id='tempId'><td><a href='stdBills'>"+billsLibName+"</a></td><td>"+createDateFmt+" </td><td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
+                        "<tr id='tempId'><td><a href='stdBills'>"+billsLibName+"</a></td><td>"+ compilationName+"</td><td>"+createDateFmt+" </td><td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
                         "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
                         "<i class='fa fa-remove'></i></a></td></tr>"
                     );
@@ -537,7 +539,9 @@ var itemsAjax = {
             data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, pasteDatas: pasteDatas})},
             dataType: 'json',
             success: function(result){
-                if(!result.error && callback){
+                console.log(result);
+                if(!result.error){
+                    console.log(result.data);
                     callback(result.data);
                 }
             }

+ 208 - 193
web/maintain/bills_lib/scripts/db_controller.js

@@ -473,28 +473,30 @@ var tools = {
     },
     isRepeat: function(arr, field, newData, ref, classify){
         var isRepeat = false;
-        if(classify){
-            if(arr){
-                arr.forEach(function(item){
-                    if(ref === 'reference' && item[classify].data[field] == newData){
-                        isRepeat = true;
-                    }
-                    else if(ref === 'document' && item[field] === newData){
-                        isRepeat = true;
-                    }
-                });
+        if(field === 'code'){
+            if(classify){
+                if(arr){
+                    arr.forEach(function(item){
+                        if(ref === 'reference' && item[classify].data[field] == newData){
+                            isRepeat = true;
+                        }
+                        else if(ref === 'document' && item[field] === newData){
+                            isRepeat = true;
+                        }
+                    });
+                }
             }
-        }
-        else {
-            if(arr){
-                arr.forEach(function(item){
-                    if(ref === 'reference' && item.data[field] == newData){
-                        isRepeat = true;
-                    }
-                    else if(ref === 'document' && item[field] === newData){
-                        isRepeat = true;
-                    }
-                });
+            else {
+                if(arr){
+                    arr.forEach(function(item){
+                        if(ref === 'reference' && item.data[field] == newData){
+                            isRepeat = true;
+                        }
+                        else if(ref === 'document' && item[field] === newData){
+                            isRepeat = true;
+                        }
+                    });
+                }
             }
         }
         return isRepeat;
@@ -736,6 +738,7 @@ var tools = {
     },
 
     reshowData: function(sheet, arr, setting, isResort){
+        sheet.suspendPaint();
         sheet.setColumnCount(2, GC.Spread.Sheets.SheetArea.viewport);
         sheet.setColumnCount(2, GC.Spread.Sheets.SheetArea.colHeader);
         tools.clearData(sheet);
@@ -743,7 +746,6 @@ var tools = {
             tools.resort(arr, 'code', false);
         }
         if(arr.length > 0){
-            sheet.suspendPaint();
             var length = arr.length;
             for(var i=0; i<length; i++){
                 setting.cols.forEach(function(col, colIdx){
@@ -756,8 +758,8 @@ var tools = {
                     }
                 });
             }
-            sheet.resumePaint();
         }
+        sheet.resumePaint();
     },
 
     reshowValue: function(sheet, arr, setting, isResort){
@@ -1389,48 +1391,50 @@ let pasteController = {
         const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
         if(datas.length > 0){
             for(let i=0; i<datas.length; i++){
-                if(datas[i].type === UpdateExist){
-                    totalJobs.jobsArr.forEach(job => {
-                        if(job.data.content === datas[i].newData){
-                            let serialNo = datas[i].serialNo;
-                            let index = tools.getIndex(controller.tree.selected.jobs, datas[i].orgJobId, 'job');
-                            job.count ++;
-                            controller.tree.selected.jobs.splice(index, 1);
-                            controller.tree.selected.jobs.splice(index, 0, {job: job, serialNo: serialNo});
-                        }
-                    });
-                }
-                if(datas[i].type === UpdateNew){
-                    let newJobData, newJob;
-                    let newJobId = datas[i].newJobId, serialNo = datas[i].serialNo;
-                    newJobData = {id: newJobId, content: datas[i].newData, code: datas[i].code};
-                    newJob = createObj.newJob(newJobData);
-                    newJob.count = 1;
-                    totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
-                    totalJobs.jobsArr.push(newJob);
-                    var index = tools.getIndex(controller.tree.selected.jobs, datas[i].orgJobId, 'job');
-                    controller.tree.selected.jobs.splice(index, 1);
-                    controller.tree.selected.jobs.splice(index, 0, {job: newJob, serialNo: serialNo});
-                }
-                if(datas[i].type === CreateExist){
-                    let serialNo = datas[i].serialNo;
-                    totalJobs.jobsArr.forEach(job => {
-                        if(job.data.content === datas[i].newData){
-                            job.count ++;
-                            controller.tree.selected.jobs.push({job: job, serialNo: serialNo});
-                        }
+                if(datas[i]){
+                    if(datas[i].type === UpdateExist){
+                        totalJobs.jobsArr.forEach(job => {
+                            if(job.data.content === datas[i].newData){
+                                let serialNo = datas[i].serialNo;
+                                let index = tools.getIndex(controller.tree.selected.jobs, datas[i].orgJobId, 'job');
+                                job.count ++;
+                                controller.tree.selected.jobs.splice(index, 1);
+                                controller.tree.selected.jobs.splice(index, 0, {job: job, serialNo: serialNo});
+                            }
+                        });
+                    }
+                   else if(datas[i].type === UpdateNew){
+                        let newJobData, newJob;
+                        let newJobId = datas[i].newJobId, serialNo = datas[i].serialNo;
+                        newJobData = {id: newJobId, content: datas[i].newData, code: datas[i].code};
+                        newJob = createObj.newJob(newJobData);
+                        newJob.count = 1;
+                        totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
+                        totalJobs.jobsArr.push(newJob);
+                        var index = tools.getIndex(controller.tree.selected.jobs, datas[i].orgJobId, 'job');
+                        controller.tree.selected.jobs.splice(index, 1);
+                        controller.tree.selected.jobs.splice(index, 0, {job: newJob, serialNo: serialNo});
+                    }
+                   else if(datas[i].type === CreateExist){
+                        let serialNo = datas[i].serialNo;
+                        totalJobs.jobsArr.forEach(job => {
+                            if(job.data.content === datas[i].newData){
+                                job.count ++;
+                                controller.tree.selected.jobs.push({job: job, serialNo: serialNo});
+                            }
 
-                    });
-                }
-                if(datas[i].type === CreateNew){
-                    let newJobId = datas[i].newJobId, serialNo = datas[i].serialNo;
-                    let newJobData, newJob;
-                    newJobData = {id: newJobId, content: datas[i].newData, code: datas[i].code};
-                    newJob = createObj.newJob(newJobData);
-                    newJob.count = 1;
-                    totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
-                    totalJobs.jobsArr.push(newJob);
-                    controller.tree.selected.jobs.push({job: newJob, serialNo: serialNo});
+                        });
+                    }
+                   else if(datas[i].type === CreateNew){
+                        let newJobId = datas[i].newJobId, serialNo = datas[i].serialNo;
+                        let newJobData, newJob;
+                        newJobData = {id: newJobId, content: datas[i].newData, code: datas[i].code};
+                        newJob = createObj.newJob(newJobData);
+                        newJob.count = 1;
+                        totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
+                        totalJobs.jobsArr.push(newJob);
+                        controller.tree.selected.jobs.push({job: newJob, serialNo: serialNo});
+                    }
                 }
             }
         }
@@ -1443,48 +1447,50 @@ let pasteController = {
         const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
         if(datas.length > 0){
             for(let i =0; i<datas.length; i++){
-                if(datas[i].type === UpdateExist){
-                    let serialNo = datas[i].serialNo;
-                    totalItems.itemsArr.forEach(item => {
-                        if(item.data.content === datas[i].newData){
-                            let index = tools.getIndex(controller.tree.selected.items, datas[i].orgItemId, 'item');
-                            item.count ++;
-                            controller.tree.selected.items.splice(index, 1);
-                            controller.tree.selected.items.splice(index, 0, {item: item, serialNo: serialNo});
-                        }
-                    });
-                }
-                if(datas[i].type === UpdateNew){
-                    let newItemData, newItem;
-                    let newItemId = datas[i].newItemId, serialNo = datas[i].serialNo;
-                    newItemData = {id: newItemId, content: datas[i].newData, code: datas[i].code};
-                    newItem = createObj.newItem(newItemData);
-                    newItem.count = 1;
-                    totalItems.items[totalItems.prefix + newItemId] = newItem;
-                    totalItems.itemsArr.push(newItem);
-                    var index = tools.getIndex(controller.tree.selected.items, datas[i].orgItemId, 'item');
-                    controller.tree.selected.items.splice(index, 1);
-                    controller.tree.selected.items.splice(index, 0, {item: newItem, serialNo: serialNo});
-                }
-                if(datas[i].type === CreateExist){
-                    let serialNo = datas[i].serialNo;
-                    totalItems.itemsArr.forEach(item => {
-                        if(item.data.content === datas[i].newData){
-                            item.count ++;
-                            controller.tree.selected.items.push({item: item, serialNo: serialNo});
-                        }
+                if(datas[i]){
+                    if(datas[i].type === UpdateExist){
+                        let serialNo = datas[i].serialNo;
+                        totalItems.itemsArr.forEach(item => {
+                            if(item.data.content === datas[i].newData){
+                                let index = tools.getIndex(controller.tree.selected.items, datas[i].orgItemId, 'item');
+                                item.count ++;
+                                controller.tree.selected.items.splice(index, 1);
+                                controller.tree.selected.items.splice(index, 0, {item: item, serialNo: serialNo});
+                            }
+                        });
+                    }
+                   else if(datas[i].type === UpdateNew){
+                        let newItemData, newItem;
+                        let newItemId = datas[i].newItemId, serialNo = datas[i].serialNo;
+                        newItemData = {id: newItemId, content: datas[i].newData, code: datas[i].code};
+                        newItem = createObj.newItem(newItemData);
+                        newItem.count = 1;
+                        totalItems.items[totalItems.prefix + newItemId] = newItem;
+                        totalItems.itemsArr.push(newItem);
+                        var index = tools.getIndex(controller.tree.selected.items, datas[i].orgItemId, 'item');
+                        controller.tree.selected.items.splice(index, 1);
+                        controller.tree.selected.items.splice(index, 0, {item: newItem, serialNo: serialNo});
+                    }
+                   else if(datas[i].type === CreateExist){
+                        let serialNo = datas[i].serialNo;
+                        totalItems.itemsArr.forEach(item => {
+                            if(item.data.content === datas[i].newData){
+                                item.count ++;
+                                controller.tree.selected.items.push({item: item, serialNo: serialNo});
+                            }
 
-                    });
-                }
-                if(datas[i].type === CreateNew){
-                    let newItemId = datas[i].newItemId, serialNo = datas[i].serialNo;
-                    let newItemData, newItem;
-                    newItemData = {id: newItemId, content: datas[i].newData, code: datas[i].code};
-                    newItem = createObj.newItem(newItemData);
-                    newItem.count = 1;
-                    totalItems.items[totalItems.prefix + newItemId] = newItem;
-                    totalItems.itemsArr.push(newItem);
-                    controller.tree.selected.items.push({item: newItem, serialNo: serialNo});
+                        });
+                    }
+                   else if(datas[i].type === CreateNew){
+                        let newItemId = datas[i].newItemId, serialNo = datas[i].serialNo;
+                        let newItemData, newItem;
+                        newItemData = {id: newItemId, content: datas[i].newData, code: datas[i].code};
+                        newItem = createObj.newItem(newItemData);
+                        newItem.count = 1;
+                        totalItems.items[totalItems.prefix + newItemId] = newItem;
+                        totalItems.itemsArr.push(newItem);
+                        controller.tree.selected.items.push({item: newItem, serialNo: serialNo});
+                    }
                 }
             }
         }
@@ -1498,75 +1504,78 @@ let pasteController = {
         if(datas.length > 0){
             for(let i=0; i<datas.length; i++){
                 let newJobData, newJob;
-                if(datas[i].type === Update){
-                    totalJobs.jobsArr.forEach(job => {
-                        if(job.data.id === datas[i].orgId){
-                            job.data[field] = datas[i].data;
-                        }
-                    });
-                }
-                if(datas[i].type === CreateT){
-                    //maxJobsNumber++;
-                   // maxJobsNumber = maxJobsNumber >= datas[i].code ? maxJobsNumber : datas[i].code;
-                    newJobData = {id: datas[i].newJobId, content: datas[i].content, code: datas[i].code};
-                    newJob = createObj.newJob(newJobData);
-                    totalJobs.jobsArr.push(newJob);
-                }
-                if(datas[i].type !== CreateT && datas[i].field === 'content'){
-                    newJobData = {id: datas[i].newJobId, content: datas[i].data, code: datas[i].code};
-                    newJob = createObj.newJob(newJobData);
-                    totalJobs.jobsArr.push(newJob);
-                }
-                if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
-                  //  maxJobsNumber++;
-                   // maxJobsNumber = maxJobsNumber >= datas[i].data  ? maxJobsNumber : datas[i].data;
-                    newJobData = {id: datas[i].newJobId, content: '', code: datas[i].data};
-                    newJob = createObj.newJob(newJobData);
-                    totalJobs.jobsArr.push(newJob);
+                if(datas[i]){
+                    if(datas[i].type === Update){
+                        totalJobs.jobsArr.forEach(job => {
+                            if(job.data.id === datas[i].orgId){
+                                job.data[datas[i].field] = datas[i].data;
+                            }
+                        });
+                    }
+                   else if(datas[i].type === CreateT){
+                        //maxJobsNumber++;
+                        // maxJobsNumber = maxJobsNumber >= datas[i].code ? maxJobsNumber : datas[i].code;
+                        newJobData = {id: datas[i].newJobId, content: datas[i].content, code: datas[i].code};
+                        newJob = createObj.newJob(newJobData);
+                        totalJobs.jobsArr.push(newJob);
+                    }
+                   else if(datas[i].type !== CreateT && datas[i].field === 'content'){
+                        newJobData = {id: datas[i].newJobId, content: datas[i].data, code: datas[i].code};
+                        newJob = createObj.newJob(newJobData);
+                        totalJobs.jobsArr.push(newJob);
+                    }
+                   else if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
+                        //  maxJobsNumber++;
+                        // maxJobsNumber = maxJobsNumber >= datas[i].data  ? maxJobsNumber : datas[i].data;
+                        newJobData = {id: datas[i].newJobId, content: '', code: datas[i].data};
+                        newJob = createObj.newJob(newJobData);
+                        totalJobs.jobsArr.push(newJob);
+                    }
                 }
             }
         }
         setSheet.setMaxRowCount(sheet, totalJobs.jobsArr);
+        console.log(totalJobs);
         tools.reshowData(sheet, totalJobs.jobsArr, totalJobsSetting, true);
+        sheetJobsDatas = tools.getsheetDatas(sheet, 'total');
     },
     pasteItemsFront: function(sheet, totalItems, datas){
         const Update = 'Update', CreateT = 'CreateT';
         if(datas.length > 0){
             for(let i=0; i<datas.length; i++){
                 let newItemData, newItem;
-                if(datas[i].type === Update){
-                    totalItems.itemsArr.forEach(item => {
-                        if(item.data.id === datas[i].orgId){
-                            item.data[field] = datas[i].data;
-                        }
-                    });
-                }
-                if(datas[i].type === CreateT){
-                    //maxItemsNumber++;
-                    //maxItemsNumber = maxItemsNumber >= datas[i].code ? maxItemsNumber : datas[i].code;
-                    newItemData = {id: datas[i].newItemId, content: datas[i].content, code: datas[i].code};
-                    newItem = createObj.newItem(newItemData);
-                    totalItems.itemsArr.push(newItem);
-                    totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
-                }
-                if(datas[i].type !== CreateT && datas[i].field === 'content'){
-                    newItemData = {id: datas[i].newItemId, content: datas[i].data, code: datas[i].code};
-                    newItem = createObj.newItem(newItemData);
-                    totalItems.itemsArr.push(newItem);
-                    totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
-                }
-                if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
-                    //maxItemsNumber++;
-                    //maxItemsNumber = maxItemsNumber >= datas[i].data  ? maxItemsNumber : datas[i].data;
-                    newItemData = {id: datas[i].newItemId, content: '', code: datas[i].data};
-                    newItem = createObj.newItem(newItemData);
-                    totalItems.itemsArr.push(newItem);
-                    totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
+                if(datas[i]){
+                    if(datas[i].type === Update){
+                        totalItems.itemsArr.forEach(item => {
+                            if(item.data.id === datas[i].orgId){
+                                item.data[datas[i].field] = datas[i].data;
+                            }
+                        });
+                    }
+                   else if(datas[i].type === CreateT){
+                        newItemData = {id: datas[i].newItemId, content: datas[i].content, code: datas[i].code};
+                        newItem = createObj.newItem(newItemData);
+                        totalItems.itemsArr.push(newItem);
+                        totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
+                    }
+                   else if(datas[i].type !== CreateT && datas[i].field === 'content'){
+                        newItemData = {id: datas[i].newItemId, content: datas[i].data, code: datas[i].code};
+                        newItem = createObj.newItem(newItemData);
+                        totalItems.itemsArr.push(newItem);
+                        totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
+                    }
+                   else if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
+                        newItemData = {id: datas[i].newItemId, content: '', code: datas[i].data};
+                        newItem = createObj.newItem(newItemData);
+                        totalItems.itemsArr.push(newItem);
+                        totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
+                    }
                 }
             }
         }
         setSheet.setMaxRowCount(sheet, totalItems.itemsArr);
         tools.reshowData(sheet, totalItems.itemsArr, totalItemsSetting, true);
+        totalItemsDatas = tools.getsheetDatas(sheet, 'total');
     },
 
     pasteValueFront: function(sheet, totalItems, datas){
@@ -1575,52 +1584,55 @@ let pasteController = {
         if(datas.length > 0){
             for(let i =0; i< datas.length; i++){
                 let index;
-                if(datas[i].type === 'UpdateT'){
-                    if(valuesArr){
-                        for(let j=0; j< valuesArr.length; j++){
-                            if(datas[i].orgId === valuesArr[j].code){
-                                index = j;
-                                valuesArr.splice(j--, 1);
+                if(datas[i]){
+                    if(datas[i].type === 'UpdateT'){
+                        if(valuesArr){
+                            for(let j=0; j< valuesArr.length; j++){
+                                if(datas[i].orgId === valuesArr[j].code){
+                                    index = j;
+                                    valuesArr.splice(j--, 1);
+                                }
                             }
+                            let updateEle = {code: datas[i].code, value: datas[i].content};
+                            valuesArr.splice(index, 0, updateEle);
                         }
-                        let updateEle = {code: datas[i].code, value: datas[i].content};
-                        valuesArr.splice(index, 0, updateEle);
                     }
-                }
-                if(datas[i].type !== 'UpdateT' && datas[i].field === 'code'){
-                    if(valuesArr){
-                        for(let j=0; j< valuesArr.length; j++){
-                            if(datas[i].orgId === valuesArr[j].code){
-                                valuesArr[j].code = datas[i].data;
+                   else if(datas[i].type !== 'UpdateT' && datas[i].field === 'code'){
+                        if(valuesArr){
+                            for(let j=0; j< valuesArr.length; j++){
+                                if(datas[i].orgId === valuesArr[j].code){
+                                    valuesArr[j].code = datas[i].data;
+                                }
                             }
                         }
                     }
-                }
-                if(datas[i].type !== 'UpdateT' && datas[i].field === 'value'){
-                    if(valuesArr){
-                        for(let j=0; j< valuesArr.length; j++){
-                            if(datas[i].orgId === valuesArr[j].code){
-                                valuesArr[j].value = datas[i].data
+                   else if(datas[i].type !== 'UpdateT' && datas[i].field === 'value'){
+                        if(valuesArr){
+                            for(let j=0; j< valuesArr.length; j++){
+                                if(datas[i].orgId === valuesArr[j].code){
+                                    valuesArr[j].value = datas[i].data
+                                }
                             }
                         }
                     }
-                }
-                if(datas[i].type === 'CreateT'){
-                    let newValueData = {value: datas[i].content, code: datas[i].code};
-                    valuesArr.push(newValueData);
+                   else if(datas[i].type === 'CreateT'){
+                        let newValueData = {value: datas[i].content, code: datas[i].code};
+                        valuesArr.push(newValueData);
 
-                }
-                if(datas[i].type !== 'CreateT' && datas[i].field === 'value'){
-                    let newValueData = {value: datas[i].data, code: datas[i].code};
-                    valuesArr.push(newValueData);
-                }
-                if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
-                    let newValueData = {value: '', code: datas[i].data};
-                    valuesArr.push(newValueData);
+                    }
+                   else if(datas[i].type !== 'CreateT' && datas[i].field === 'value'){
+                        let newValueData = {value: datas[i].data, code: datas[i].code};
+                        valuesArr.push(newValueData);
+                    }
+                   else if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
+                        let newValueData = {value: '', code: datas[i].data};
+                        valuesArr.push(newValueData);
+                    }
                 }
             }
         }
         tools.reshowValue(sheet, valuesArr, eigenValueSetting, true);
+        valueDatas = tools.getsheetDatas(sheet, 'total');
     }
 };
 
@@ -2089,10 +2101,9 @@ var valueController = {
                 sheet.getCell(args.row, args.col).value('');
             }
         }
-        console.log(`finItem`);
-        console.log(totalItems.findItem(id).data);
         totalItems.findItem(id).data.itemValue.push(newData);
         itemsAjax.updateValue(userAccount, billsLibId, id, newData, null, 'create');
+        valueDatas = tools.getsheetDatas(sheet, 'total');
     },
 
     updateValue: function(totalItems, tagId, newData, field){
@@ -2203,6 +2214,7 @@ var totalJobsController = {
                 //tools.reSetCell(sheet, args.row, 0, code, newJobId);
                 tools.reshowData(sheet, totalJobs.jobsArr, totalJobsSetting, true);
                 setSheet.setMaxRowCount(sheet, totalJobs.jobsArr);
+                sheetJobsDatas = tools.getsheetDatas(sheet, 'total');
             });
         }
         else {
@@ -2218,6 +2230,7 @@ var totalJobsController = {
                     //tools.reSetCell(sheet, args.row, 0, null, newJobId);
                     tools.reshowData(sheet, totalJobs.jobsArr, totalJobsSetting, true);
                     setSheet.setMaxRowCount(sheet, totalJobs.jobsArr);
+                    sheetJobsDatas = tools.getsheetDatas(sheet, 'total');
                 });
             }
             else {
@@ -2262,7 +2275,7 @@ var totalItemsController = {
                 totalItemsController.createItem(sheet, totalItems, field, newData, args);
             }
             else if(tagId && !isRepeat && newData !== orgItemData){//update
-                    totalItemsController.updateItem(totalItems, tagId, field, newData);
+                    totalItemsController.updateItem(totalItems, tagId, field, newData, args);
             }
             if(isRepeat){
                 tools.alertTotalOpr(args, '该项目特征已存在!', totalItems.itemsArr);
@@ -2283,6 +2296,7 @@ var totalItemsController = {
                 //tools.reSetCell(sheet, args.row, 0, code, newItemId);
                 tools.reshowData(sheet, totalItems.itemsArr, totalItemsSetting, true);
                 setSheet.setMaxRowCount(sheet, totalItems.itemsArr);
+                totalItemsDatas = tools.getsheetDatas(sheet, 'total');
             });
         }
         else {
@@ -2297,6 +2311,7 @@ var totalItemsController = {
                     //tools.reSetCell(sheet, args.row, 0, null, newItemId);
                     tools.reshowData(sheet, totalItems.itemsArr, totalItemsSetting, true);
                     setSheet.setMaxRowCount(sheet, totalItems.itemsArr);
+                    totalItemsDatas = tools.getsheetDatas(sheet, 'total');
                 });
             }
             else {

+ 3 - 217
web/maintain/ration_repository/js/main.js

@@ -1,223 +1,6 @@
 /**
  * Created by Syusuke on 2017/3/17.
  */
-/*$(function(){
-    let libNames = [];
-    getCompilationList();
-    getRationLibs(libNames);
-})
-
-function addEvent_Addressdirect(){
-    $("tr:gt(0)").each(function() {
-        var td, a, tdId = $("td:eq(3)",$(this));
-        td = $("td:eq(0)", $(this));
-        a = $('a', td);
-        a.attr('href', "/rationRepository/ration" + "?repository=" + tdId.text());
-    })
-}
-function addEvent_DeleteLib(){
-    $("tr:gt(0)").each(function() {
-        var td0, a1,td2,a2;
-        td2 = $("td:eq(2)", $(this));
-        td0 = $("td:eq(0)", $(this));
-        a1 = $('a', td0);
-        var str = a1.text();
-        a2 = $("a:eq(1)",td2);
-        a2.click(function(){
-            $("#did").val(str)
-        })
-        // a.attr('href', "/ration/rationLib" + "?rationname=" + a.text());
-    })
-}
-
-function addEvent_EditLib(){
-    $("tr:gt(0)").each(function() {
-        var td0, a1,td2,a2;
-        td2 = $("td:eq(2)", $(this));
-        td0 = $("td:eq(0)", $(this));
-        a1 = $('a', td0);
-        var str = a1.text();
-        a2 = $("a:eq(0)",td2);
-        a2.click(function(){
-            $("#did").val(str)
-        })
-    })
-}
-
-$("#deleteLib").click(function(){
-    var rationLibName = $("#did").val();
-    let lastOperator = userAccount;
-    $.ajax({
-        type:"POST",
-        url:"api/deleteRationLibs",
-        dataType:"json",
-        data:{"rationName": rationLibName, "lastOperator": lastOperator},
-        cache:false,
-        timeout:50000,
-        success:function(result){
-            getRationLibs();
-        },
-        error:function(iqXHR,textStatus,errorThrown){
-
-        }
-    })
-
-
-});
-function getCompilationList(){
-    $.ajax({
-        type: 'post',
-        url: 'api/getCompilationList',
-        dataType: 'json',
-        success: function (result) {
-            console.log(result);
-            //addoptions
-            for(let i = 0; i < result.data.compilation.length; i++){
-               let $option =  $("<option >"+ result.data.compilation[i].name +"</option>");
-                $option.val( result.data.compilation[i]._id);
-                $('#compilationSels').append($option);
-            }
-            //初始工料机库选项
-            if(result.data.compilation.length > 0 && result.data.gljLibs.length > 0){
-                let compilationId = result.data.compilation[0]._id;
-                //console.log(compilationId);
-                let gljLibOps = getGljLibOps(compilationId, result.data.gljLibs);
-                console.log(gljLibOps);
-                for(let i = 0; i < gljLibOps.length; i++){
-                    let $option =  $("<option >"+ gljLibOps[i].dispName +"</option>");
-                    $option.val(gljLibOps[i].ID);
-                    $('#gljLibSels').append($option);
-                }
-
-            }
-            $('#compilationSels').on("change", function () {
-                //刷新工料机库选项
-                $('#gljLibSels').children().remove();
-                let newGljLibOps = getGljLibOps(this.selectedOptions[0].value, result.data.gljLibs);
-                for(let i = 0; i < newGljLibOps.length; i++){
-                    let $option =  $("<option >"+ newGljLibOps[i].dispName +"</option>");
-                    $option.val(newGljLibOps[i].ID);
-                    $('#gljLibSels').append($option);
-                }
-            });
-        }
-    });
-}
-function getGljLibOps(compilationId, gljLibs){
-    let rst = [];
-    for(let i = 0; i < gljLibs.length; i++){
-        if(gljLibs[i]){
-            if(compilationId === gljLibs[i].compilationId){
-                rst.push(gljLibs[i]);
-            }
-        }
-    }
-    return rst;
-}
-
-function getRationLibs(libNames){
-    $.ajax({
-        type:"POST",
-        url:"api/getRationDisplayNames",
-        dataType:"json",
-        cache:false,
-        timeout:5000,
-        success:function(result){
-            $("tbody tr").html("");
-            for(var i=0;i<result.data.length;i++){
-                addLibTag(result.data[i].dispName, result.data[i].ID, result.data[i].createDate);
-                storageUtil.setSessionCache("RationGrp","repositoryID_" + result.data[i].ID, result.data[i].dispName);
-                libNames.push(result.data[i].dispName);
-            }
-            console.log(libNames);
-            addEvent_Addressdirect();
-            addEvent_DeleteLib();
-            addEvent_EditLib();
-        },
-        error:function(iqXHR,textStatus,errorThrown){
-            alert("error "+textStatus+" "+errorThrown);
-        }
-    })
-}
-
-function addLibTag(string, ID, date){
-    var $tr = $('<tr><td><a href="#"></a></td><td></td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal"     data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td><td style="display:none"></td></tr>')
-    var $td0 = $("td:eq(0)",$tr);
-    var $td1 = $("td:eq(1)",$tr);
-    var $tdId = $("td:eq(3)",$tr);
-    var a = $("a",$td0);
-    var str = string;
-    a.text(str);
-    $tdId.text(ID);
-    var newDate = date.split(' ')[0];
-    $td1.text(newDate);
-    $tr.appendTo("tbody");
-}
-
-function addRationRepository(rationObj, $tdId) {
-    $.ajax({
-        type:"POST",
-        url:"api/addRationRepository",
-        dataType:"json",
-        data:{"rationRepObj": JSON.stringify(rationObj)},
-        cache:false,
-        timeout:5000,
-        success:function(result){
-            $tdId.text(result.data.ID);
-            storageUtil.setSessionCache("RationGrp","repositoryID_" + result.data.ID, result.data.dispName);
-            addEvent_Addressdirect();
-            addEvent_DeleteLib();
-        },
-        error:function(iqXHR,textStatus,errorThrown){
-            alert("error "+textStatus+" "+errorThrown);
-        }
-    })
-
-}
-
-$("#rationAdd").click(function(){
-    var $tr = $('<tr><td><a href="#"></a></td><td></td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td><td style="display:none"></td></tr>')
-    var $td0 = $("td:eq(0)",$tr);
-    var $td1 = $("td:eq(1)",$tr);
-    var $tdId = $("td:eq(3)",$tr);
-    var a = $("a",$td0);
-    var str = $("#addInput").val();
-    a.text(str);
-    var date = new Date().Format("yyyy-MM-dd");
-    $td1.text(date);
-    $tr.appendTo("tbody");
-    var newRationRepObj = {};
-    newRationRepObj.dispName = str;
-    newRationRepObj.appType = "建筑";
-    newRationRepObj.descr = "";
-    newRationRepObj.creator = userAccount;
-    newRationRepObj.lastOperator = userAccount;
-    addRationRepository(newRationRepObj, $tdId);
-});
-
-$("#edtOK").click(function(){
-    var str = $("#did").val();
-    var newStr = $("#inputRation").val();
-    let lastOperator = userAccount;
-    $.ajax({
-        type:"POST",
-        url:"api/editRationLibs",
-        dataType:"json",
-        data:{"rationName": str,"newName":newStr, "lastOperator": lastOperator},
-        cache:false,
-        timeout:50000,
-        success:function(result){
-            getRationLibs();
-        },
-        error:function(jqXHR){
-            var err = JSON.parse(jqXHR.responseText);
-            alert(err.error);
-        }
-    })
-
-});
-
-autoFlashHeight();*/
 
 $(function () {
     let dispNameArr;
@@ -311,10 +94,12 @@ function getAllRationLib(callback){
                     let id = result.data[i].ID;
                     let libName = result.data[i].dispName;
                     let createDate = result.data[i].createDate.split(' ')[0];
+                    let compilationName = result.data[i].compilationName;
                     dispNames.push(result.data[i].dispName);
                     $("#showArea").append(
                         "<tr id='tempId'>" +
                         "<td><a href='/stdGljRepository/glj'>"+libName+"</a></td>" +
+                        "<td>"+compilationName+" </td>" +
                         "<td>"+createDate+" </td>" +
                         "<td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
                         "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
@@ -399,6 +184,7 @@ function createRationLib(rationObj, dispNamesArr){
                 $("#showArea").append(
                     "<tr id='tempId'>" +
                     "<td><a href='/stdGljRepository/glj'>"+libName+"</a></td>" +
+                    "<td>"+compilationName+" </td>" +
                     "<td>"+createDate+" </td>" +
                     "<td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
                     "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +

+ 1 - 1
web/maintain/ration_repository/main.html

@@ -35,7 +35,7 @@
                   <div class="col-md-8">
                     <div class="warp-p2 mt-3">
                       <table class="table table-hover table-bordered">
-                        <thead><tr><th>定额库名称</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
+                        <thead><tr><th>定额库名称</th><th width="160">编办</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
                         <tbody id="showArea">
                         </tbody>
                       </table>

+ 2 - 3
web/maintain/std_glj_lib/js/glj.js

@@ -413,6 +413,7 @@ let repositoryGljObj = {
             rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
             updateArr = [], addArr = [], updateBasePrcArr = [];
         me.editingRowIdx = args.row;
+        console.log(rObj);
         rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
         //更新
         if (me.currentEditingGlj["ID"]) {
@@ -432,8 +433,6 @@ let repositoryGljObj = {
                                 !(me.currentEditingGlj.gljType === 302 && rObj.gljType === 303) && !(me.currentEditingGlj.gljType === 303 && rObj.gljType === 302)){//修改了原本是组成物的工料机
                                //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
                                 let updateGljs = me.getUpdateGljs(rObj, true);
-                                console.log(rObj);
-                                console.log(updateGljs);
                                 if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
                                     for(let i = 0; i < updateGljs.updateArr.length; i++){
                                         updateArr.push(updateGljs.updateArr[i]);
@@ -455,7 +454,7 @@ let repositoryGljObj = {
                                     updateArr.push(updateGljs.updateBasePrcArr[i]);
                                 }
                             }
-                            rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? that.round(parseFloat(rObj.basePrice), 2) : 0;
+                            rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? that.round(parseFloat(rObj.basePrice), 2) : me.currentEditingGlj.basePrice;
                         }
                         rObj.component = me.currentGlj.component;
                         updateArr.push(rObj);