Explorar el Código

定额库工料机名称不可为空,默认基价单价0

zhongzewei hace 8 años
padre
commit
fab67f84eb

+ 6 - 0
modules/bills_lib/controllers/bills_lib_controllers.js

@@ -118,6 +118,12 @@ module.exports = {
             callback(req, res, err, message, null);
         })
     },
+    updateSerialNo: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.updateSerialNo(data, function (err, message) {
+            callback(req, res, err, message, null);
+        });
+    },
     updateBillsArr: function(req, res){
         let data = JSON.parse(req.body.data);
         billsLibDao.updateBillsArr(data, function(err, message){

+ 44 - 10
modules/bills_lib/models/bills_lib_interfaces.js

@@ -362,11 +362,9 @@ billsLibDao.prototype.upLevel = function(data, callback){
             };
         },
         preSiblingNode: function(data){
-            console.log(`billsLIbId: ${billsLibId} ID: ${data.ID} NextS: ${data.NextSiblingID}`);
             return function (cb) {
                 Bills.update({billsLibId: billsLibId, ID: data.ID, deleted: false}, {$set: {NextSiblingID: data.NextSiblingID}}, function (err) {
                     if(err){
-                        console.log(`err4`);
                         cb(err);
                     }
                     else {
@@ -395,7 +393,6 @@ billsLibDao.prototype.upLevel = function(data, callback){
     }
     async.parallel(functions, function(err){
         if(err){
-            console.log(`errfinal`);
             callback(1, 'Error');
         }
         else{
@@ -486,11 +483,10 @@ billsLibDao.prototype.updatePNId= function(upData, callback){
                 eachDatas.push({id: updateDatas[i].ID, data: updateDatas[i]});
             }
         }
-        console.log(eachDatas.length);
+
         async.each(eachDatas, function(eachObj, cb){
             let id = eachObj.id, data = eachObj.data;
             if(data.ParentID && data.NextSiblingID){
-                console.log(`enter 1 ${id}`);
                 Bills.update({billsLibId: billsLibId, ID: id, deleted: false}, {$set: {ParentID: data.ParentID, NextSiblingID: data.NextSiblingID}}, function(err){
                     if(err){
                         cb(err);
@@ -500,7 +496,6 @@ billsLibDao.prototype.updatePNId= function(upData, callback){
                 });
             }
             else if(data.ParentID && !data.NextSiblingID){
-                console.log(`enter 2 ${id}`);
                 Bills.update({billsLibId: billsLibId, ID: id, deleted: false}, {$set: {ParentID: data.ParentID}}, function(err){
                     if(err){
                         if(err){
@@ -512,7 +507,6 @@ billsLibDao.prototype.updatePNId= function(upData, callback){
                 });
             }
             else if(!data.ParentID && data.NextSiblingID){
-                console.log(`enter 3 ${id}`);
                 Bills.update({billsLibId: billsLibId, ID: id, deleted: false}, {$set: {NextSiblingID: data.NextSiblingID}}, function(err){
                     if(err){
                         cb(err);
@@ -523,11 +517,9 @@ billsLibDao.prototype.updatePNId= function(upData, callback){
             }
         }, function(err){
             if(err){
-                console.log(`err`);
                 callback(1, 'Error');
             }
             else {
-                console.log(`noerr`);
                 callback(0, '');
             }
         });
@@ -713,6 +705,49 @@ billsLibDao.prototype.removeTotal = function (data, callback) {
     });
 };
 
+billsLibDao.prototype.updateSerialNo = function (data, callback) {
+    let billsLibId = data.billsLibId, billsId = data.billsId,
+        updateArr = data.updateArr, field = data.field;
+    if(field === 'jobs'){
+        async.each(updateArr, function (updateObj, cb) {
+            Bills.update({billsLibId: billsLibId, ID: billsId, deleted: false, 'jobs.id': updateObj.id}, {$set: {'jobs.$.serialNo': updateObj.serialNo}}, function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            });
+        }, function (err) {
+            if(err){
+                callback(1, 'Error');
+            }
+            else{
+                callback(0, '');
+            }
+        });
+    }
+    else{
+        async.each(updateArr, function (updateObj, cb) {
+            Bills.update({billsLibId: billsLibId, ID: billsId, deleted: false, 'items.id': updateObj.id}, {$set: {'items.$.serialNo': updateObj.serialNo}}, function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            });
+        }, function (err) {
+            if(err){
+                callback(1, 'Error');
+            }
+            else{
+                callback(0, '');
+            }
+        });
+    }
+};
+
 billsLibDao.prototype.updateBillsArr = function(updateData, callback){
     let billsLibId = updateData.billsLibId;
     let updateId = updateData.updateId;
@@ -720,7 +755,6 @@ billsLibDao.prototype.updateBillsArr = function(updateData, callback){
     let newId = updateData.newId;
     let classify = updateData.classify;
     let type = updateData.type;
-    let success = true;
     if(classify === 'jobs'){
         if(orgId && newId && type === 'update'){
             Bills.update({billsLibId: billsLibId, ID: updateId, deleted: false, 'jobs.id': orgId}, {$set: {'jobs.$.id': newId}}, function(err){

+ 1 - 0
modules/bills_lib/routes/bills_lib_routes.js

@@ -41,6 +41,7 @@ module.exports =function (app) {
     billsRouter.post("/updateBills", billsController.updateBills);
     billsRouter.post("/updateBillsArr", billsController.updateBillsArr);
     billsRouter.post("/removeTotal", billsController.removeTotal);
+    billsRouter.post("/updateSerialNo", billsController.updateSerialNo);
     billsRouter.post("/pasteBills", billsController.pasteBills);
     billsRouter.post('/updateRecharge', billsController.updateRecharge);
     billsRouter.post('/pasteRel', billsController.pasteRel);

+ 21 - 8
web/maintain/bills_lib/html/neirong.html

@@ -164,6 +164,27 @@
             </div>
         </div>
     </div>
+    <!--弹出提示窗口-->
+    <button id="alertBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#alertDiv" style="display: none"></button>
+    <div class="modal fade" id="alertDiv" data-backdrop="static" style="display: none;" aria-hidden="true">
+        <input type="hidden"  value="123">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">警告</h5>
+                    <button type="button" id="alertCls" class="close" data-dismiss="modal" aria-label="Close">
+                        <span aria-hidden="true">×</span>
+                    </button>
+                </div>
+                <div class="modal-body">
+                    <h5 class="text-danger" id="alertTxt">编号不存在,请重新输入!</h5>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-danger" id="alertCof" data-dismiss="modal">确认</button>
+                </div>
+            </div>
+        </div>
+    </div>
     <!-- JS. -->
     <script src="/lib/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
     <script>GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";</script>
@@ -287,13 +308,7 @@
                         crossedDatas.push(crossedData);
                     }
                 }
-                console.log(`uncD`);
-                console.log(uncrossedDatas);
-                console.log(`cD`);
-                console.log(crossedDatas);
                 let encapDatas = tools.encapTotalJobsDatas(sheet, totalJobs, uncrossedDatas, crossedDatas);
-                console.log(`encapD`);
-                console.log(encapDatas);
                 if(encapDatas.updateDatas.length > 0 || encapDatas.createDatas.length >0){
                     jobsAjax.pasteJobs(encapDatas, function(datas){
                         pasteController.pasteJobsFront(sheet, totalJobs,datas);
@@ -304,8 +319,6 @@
                 }
             });
         }
-
-
   	</SCRIPT>
 </body>
 <script type="text/javascript">

+ 154 - 44
web/maintain/bills_lib/html/qingdan.html

@@ -46,7 +46,7 @@
                               <a class="nav-link text-primary" doing="false" fcsOnBills="true" id="insert" href="javascript: void(0);"><i class="fa fa-share" aria-hidden="true"></i>插入</a>
                           </li>
                           <li class="nav-item">
-                              <a class="nav-link text-primary" doin="false" fcsOnBills="true" id ="delete" href="javascript:void (0)"><i class="fa fa-remove" aria-hidden="true"></i>删除</a>
+                              <a class="nav-link text-primary" doing="false" fcsOnBills="true" id ="delete" href="javascript:void (0)"><i class="fa fa-remove" aria-hidden="true"></i>删除</a>
                           </li>
                           <li class="nav-item">
                               <a class="nav-link text-primary" doing="false" fcsOnBills="true" id="upLevel"  href="javascript: void(0);"><i class="fa fa-arrow-left" aria-hidden="true"></i>升级</a>
@@ -55,10 +55,10 @@
                               <a class="nav-link text-primary" doing="false" fcsOnBills="true" id="downLevel" href="javascript: void(0);"><i class="fa fa-arrow-right" aria-hidden="true"></i>降级</a>
                           </li>
                           <li class="nav-item">
-                              <a class="nav-link text-primary" doing="false" fcsOnBills="true" id="upMove" href="javascript: void(0);"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
+                              <a class="nav-link text-primary" doing="false" fcsOnBills="true" canMove="false" id="upMove" href="javascript: void(0);"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
                           </li>
                           <li class="nav-item">
-                              <a class="nav-link text-primary" doing="false" fcsOnBills="true" id="downMove" href="javascript: void(0);"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
+                              <a class="nav-link text-primary" doing="false" fcsOnBills="true" canMove="false" id="downMove" href="javascript: void(0);"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
                           </li>
                       </ul>
                   </div>
@@ -203,10 +203,24 @@
         </div>
     </div>
     <!--弹出提示窗口-->
-    <div class="modal fade" id="qAlert" style="display: none; margin: 300px auto; width: 300px; height: 200px;">
-        <div id="alertText"></div>
-        <div style="margin: 50px auto">
-            <button id="alertBtn" class="btn btn-warning">确定</button>
+    <button id="alertBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#alertDiv" style="display: none"></button>
+    <div class="modal fade" id="alertDiv" data-backdrop="static" style="display: none;" aria-hidden="true">
+        <input type="hidden"  value="123">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">警告</h5>
+                    <button type="button" id="alertCls" class="close" data-dismiss="modal" aria-label="Close">
+                        <span aria-hidden="true">×</span>
+                    </button>
+                </div>
+                <div class="modal-body">
+                    <h5 class="text-danger" id="alertTxt">编号不存在,请重新输入!</h5>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-danger" id="alertCof" data-dismiss="modal">确认</button>
+                </div>
+            </div>
         </div>
     </div>
     <!-- JS. -->
@@ -290,11 +304,28 @@
             if(btnUpMove.attr('doing') === 'false' && btnUpMove.attr('fcsOnBills') === 'true'){
                 dbController.upMove(controller, btnUpMove);
             }
+            //refSheet
+            else if(btnUpMove.attr('doing') === 'false' && btnUpMove.attr('fcsOnBills') === 'false' && btnUpMove.attr('canMove') === 'true'){
+                if(controller.tree.selected.field === 'job'){
+                    jobsController.upMove(controller, jobsSpread.getActiveSheet());
+                }
+                else if(controller.tree.selected.field === 'item'){
+                    itemsController.upMove(controller, itemsSpread.getActiveSheet());
+                }
+            }
         });
         btnDownMove.click(function(){
             if(btnDownMove.attr('doing') === 'false' && btnDownMove.attr('fcsOnBills') === 'true'){
                 dbController.downMove(controller, btnDownMove);
             }
+            else if(btnDownMove.attr('doing') === 'false' && btnDownMove.attr('fcsOnBills') === 'false' && btnDownMove.attr('canMove') === 'true'){
+                if(controller.tree.selected.field === 'job'){
+                    jobsController.downMove(controller, jobsSpread.getActiveSheet());
+                }
+                else if(controller.tree.selected.field === 'item'){
+                    itemsController.downMove(controller, itemsSpread.getActiveSheet());
+                }
+            }
         });
     }
 
@@ -335,41 +366,123 @@
     }
 
     function switchFcs(controller, billsSheet, jobsSheet, itemsSheet){
+        let btnInsert = $('#insert');
+        let btnDelete = $('#delete');
+        let btnUpMove = $('#upMove');
+        let btnDownMove = $('#downMove');
+        let btnUpLevel = $('#upLevel');
+        let btnDownLevel = $('#downLevel');
+       // billsSheet.clearSelection();
+       // billsSheet.options.isProtected = true;
+       // controller.setTreeSelected(null);
         billsSheet.bind(GC.Spread.Sheets.Events.CellClick, function (sender, args) {
-            $('#insert').attr('fcsOnBills', 'true');
-            $('#delete').attr('fcsOnBills', 'true');
-            $('#upLevel').attr('fcsOnBills', 'true');
-            $('#downLevel').attr('fcsOnBills', 'true');
-            jobsSheet.clearSelection();
-            itemsSheet.clearSelection();
+            //if(billsSheet.options.isProtected = true){
+                btnInsert.attr('fcsOnBills', 'true');
+                btnDelete.attr('fcsOnBills', 'true');
+                btnUpLevel.attr('fcsOnBills', 'true');
+                btnDownLevel.attr('fcsOnBills', 'true');
+                btnUpMove.attr('fcsOnBills', 'true');
+                btnDownMove.attr('fcsOnBills', 'true');
+               // jobsSheet.clearSelection();
+               // itemsSheet.clearSelection();
+                //billsSheet.options.isProtected = false;
+               /* jobsSheet.options.isProtected = true;
+                itemsSheet.options.isProtected = true;
+                let activeRow = billsSheet.getActiveRowIndex();
+                let activeCol = billsSheet.getActiveColumnIndex();
+                billsSheet.setActiveCell(activeRow === 0 ? 1: 0, 0);
+                billsSheet.setActiveCell(activeRow, activeCol);*/
+               // controller.setTreeSelected(controller.tree.findNode(billsSheet.getTag(activeRow, activeCol)));
+          //  }
         });
         jobsSheet.bind(GC.Spread.Sheets.Events.CellClick, function (sender, args) {
-            $('#insert').attr('fcsOnBills', 'false');
-            $('#delete').attr('fcsOnBills', 'false');
-            $('#upLevel').attr('fcsOnBills', 'false');
-            $('#downLevel').attr('fcsOnBills', 'false');
-            let selected;
-            if(controller.tree.selected){
-                 selected = controller.tree.selected.jobs[args.row];
-            }
-            if(tools.canUpMove(selected, controller.tree.selected.jobs)){
-            }
-            itemsSheet.clearSelection();
-            itemsSheet.options.isProtected = true;
-            jobsSheet.options.isProtected = false;
+           // if(jobsSheet.options.isProtected){
+               /* itemsSheet.clearSelection();
+                itemsSheet.options.isProtected = true;
+                jobsSheet.options.isProtected = false;
+                let activeRow = jobsSheet.getActiveRowIndex();
+                let activeCol = jobsSheet.getActiveColumnIndex();
+                jobsSheet.setActiveCell(activeRow === 0 ? 1: 0, 0);
+                jobsSheet.setActiveCell(activeRow, activeCol);*/
+
+                controller.tree.selected.args = args;
+                controller.tree.selected.field = 'job';
+                tools.btnClose(btnInsert);
+                tools.btnClose(btnDelete);
+                tools.btnClose(btnUpLevel);
+                tools.btnClose(btnDownLevel);
+                btnInsert.attr('fcsOnBills', 'false');
+                btnDelete.attr('fcsOnBills', 'false');
+                btnUpLevel.attr('fcsOnBills', 'false');
+                btnDownLevel.attr('fcsOnBills', 'false');
+                btnUpMove.attr('fcsOnBills', 'false');
+                btnDownMove.attr('fcsOnBills', 'false');
+                let selected;
+                if(controller.tree.selected){
+                    selected = controller.tree.selected.jobs[args.row];
+                }
+                if(tools.canUpMove(selected, controller.tree.selected.jobs)){
+                    tools.btnAction(btnUpMove);
+                    btnUpMove.attr('canMove', 'true');
+                }
+                else{
+                    tools.btnClose(btnUpMove);
+                    btnUpMove.attr('canMove', 'false');
+                }
+                if(tools.canDownMove(selected, controller.tree.selected.jobs)){
+                    tools.btnAction(btnDownMove);
+                    btnDownMove.attr('canMove', 'true');
+                }
+                else{
+                    tools.btnClose(btnDownMove);
+                    btnDownMove.attr('canMove', 'false');
+                }
+          //  }
         });
         itemsSheet.bind(GC.Spread.Sheets.Events.CellClick, function (sender, args) {
-            $('#insert').attr('fcsOnBills', 'false');
-            $('#delete').attr('fcsOnBills', 'false');
-            $('#upLevel').attr('fcsOnBills', 'false');
-            $('#downLevel').attr('fcsOnBills', 'false');
-            if(controller.tree.selected){
-                let selected = controller.tree.selected.items[args.row];
-            }
-            jobsSheet.clearSelection();
-            jobsSheet.options.isProtected = true;
-            itemsSheet.options.isProtected = false;
-        })
+            //if(itemsSheet.options.isProtected){
+              /*  jobsSheet.clearSelection();
+                jobsSheet.options.isProtected = true;
+                itemsSheet.options.isProtected = false;
+                let activeRow = itemsSheet.getActiveRowIndex();
+                let activeCol = itemsSheet.getActiveColumnIndex();
+                itemsSheet.setActiveCell(activeRow === 0 ? 1: 0, 0);
+                itemsSheet.setActiveCell(activeRow, activeCol);*/
+
+                controller.tree.selected.args = args;
+                controller.tree.selected.field = 'item';
+                tools.btnClose(btnInsert);
+                tools.btnClose(btnDelete);
+                tools.btnClose(btnUpLevel);
+                tools.btnClose(btnDownLevel);
+                btnInsert.attr('fcsOnBills', 'false');
+                btnDelete.attr('fcsOnBills', 'false');
+                btnUpLevel.attr('fcsOnBills', 'false');
+                btnDownLevel.attr('fcsOnBills', 'false');
+                btnUpMove.attr('fcsOnBills', 'false');
+                btnDownMove.attr('fcsOnBills', 'false');
+                let selected;
+                if(controller.tree.selected){
+                    selected = controller.tree.selected.items[args.row];
+                }
+                if(tools.canUpMove(selected, controller.tree.selected.items)){
+                    tools.btnAction(btnUpMove);
+                    btnUpMove.attr('canMove', 'true');
+                }
+                else{
+                    tools.btnClose(btnUpMove);
+                    btnUpMove.attr('canMove', 'false');
+                }
+                if(tools.canDownMove(selected, controller.tree.selected.items)){
+                    tools.btnAction(btnDownMove);
+                    btnDownMove.attr('canMove', 'true');
+                }
+                else{
+                    tools.btnClose(btnDownMove);
+                    btnDownMove.attr('canMove', 'false');
+                }
+           // }
+        });
     };
 
     function setTagID(controller, setting){
@@ -482,8 +595,8 @@
             if(controller.tree.selected  && args.oldSelections[0].row !== args.newSelections[0].row|| controller.tree.selected && args.oldSelections[0].row === 0){
                 //rechargeArea
                 $('#exampleTextarea').val(controller.tree.selected.data.recharge);
-                tools.clearData(sheet);
                 if(field === 'jobs'){
+                    tools.clearData(sheet);
                     let jobs = controller.tree.selected.jobs;
                     setSheet.setMaxRowCount(sheet, jobs);
                     if(jobs.length > 0){
@@ -493,6 +606,7 @@
                     sheetDatas = tools.getsheetDatas(sheet, 'jobs');
                 }
                 if(field === 'items'){
+                    tools.clearData(sheet);
                     let items = controller.tree.selected.items;
                     setSheet.setMaxRowCount(sheet, items);
                     if(items.length > 0){
@@ -502,10 +616,6 @@
                     sheetItemsDatas = tools.getsheetDatas(sheet, 'items');
                 }
             }
-            else {
-                tools.clearData(sheet);
-                $('#exampleTextarea').val('');
-            }
         });
     }
 
@@ -670,7 +780,7 @@
     function buildJobs(jobsSpread, setting){
         setSheet.initSheet(jobsSpread, setting, true);
        // setSheet.setMaxRowCount(jobsSpread.getActiveSheet(), 10);
-        jobsSpread.getActiveSheet().clearSelection();
+        //jobsSpread.getActiveSheet().clearSelection();
         myKey.downKey(jobsSpread);
         myKey.enterKey(jobsSpread);
         TREE_SHEET_HELPER.loadSheetHeader(jobsSetting, jobsSpread.getActiveSheet());
@@ -679,7 +789,7 @@
     function buildItems(itemsSpread, setting){
         setSheet.initSheet(itemsSpread, setting, true);
        // setSheet.setMaxRowCount(itemsSpread.getActiveSheet(), 10);
-        itemsSpread.getActiveSheet().clearSelection();
+       // itemsSpread.getActiveSheet().clearSelection();
         myKey.downKey(itemsSpread);
         myKey.enterKey(itemsSpread);
         TREE_SHEET_HELPER.loadSheetHeader(itemsSetting, itemsSpread.getActiveSheet());

+ 13 - 0
web/maintain/bills_lib/scripts/bills_lib_ajax.js

@@ -284,6 +284,19 @@ var billsAjax = {
             }
         })
     },
+    updateSerialNo: function (billsLibId, billsId, updateArr, field, callback) {
+        $.ajax({
+            type: 'post',
+            url: 'stdBillsEditor/updateSerialNo',
+            data: {data: JSON.stringify({billsLibId: billsLibId, billsId: billsId, updateArr: updateArr, field: field})},
+            dataType: 'json',
+            success: function (result) {
+                if(!result.error && callback){
+                    callback();
+                }
+            }
+        });
+    },
     updateBillsArr: function(billsLibId, updateId, orgId, newId, type, classify, callback){
         $.ajax({
             type: 'post',

+ 198 - 40
web/maintain/bills_lib/scripts/db_controller.js

@@ -3,7 +3,8 @@
  */
 var dbController = {
     insert: function(controller, btn){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
         if(controller.tree.items.length === 0){
             controller.tree.maxNodeID(0);
             let newNodeId = controller.tree.newNodeID();
@@ -12,7 +13,8 @@ var dbController = {
                 controller.tree.selected.jobs = new Array();
                 controller.tree.selected.items = new Array();
                 controller.sheet.setTag(controller.tree.selected.serialNo(), 0, newNodeId);
-                tools.btnAction(btn, 'doing');
+                tools.btnAction(btn);
+                btn.attr('doing', 'false');
             });
         }
         else {
@@ -27,7 +29,8 @@ var dbController = {
                     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, 'doing');
+                     tools.btnAction(btn);
+                    btn.attr('doing', 'false');
                 });
             }
             else {
@@ -41,14 +44,16 @@ var dbController = {
                     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, 'doing');
+                    tools.btnAction(btn);
+                    btn.attr('doing', 'false');
                 });
             }
         }
     },
 
     upLevel: function(controller, btn){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
         var node = controller.tree.selected;
         var ids = [];
         var updateData = [];
@@ -94,7 +99,8 @@ var dbController = {
                 }
                 billsAjax.upLevel(billsLibId, updateData, function(){
                     console.log(`enter upL`);
-                    tools.btnAction(btn, 'doing');
+                    tools.btnAction(btn);
+                    btn.attr('doing', 'false');
                     controller.upLevel();
                     sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
                 });
@@ -104,7 +110,8 @@ var dbController = {
     },
 
     downLevel: function(controller, btn){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
         var node = controller.tree.selected;
         var updateData = [];
         if(node){
@@ -131,7 +138,8 @@ var dbController = {
                     updateData.push(updateC);
                 }
                 billsAjax.downLevel(billsLibId, updateData, function(){
-                    tools.btnAction(btn, 'doing');
+                    tools.btnAction(btn);
+                    btn.attr('doing', 'false');
                     controller.downLevel();
                     sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
                 });
@@ -141,7 +149,9 @@ var dbController = {
     },
 
     delete: function(controller, btn, totalJobs, totalItems){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
+        console.log(`beforeNodeId :${controller.tree.selected.getID()}`);
         var node = controller.tree.selected;
         if(node){
             var deleteIds = [];
@@ -159,7 +169,8 @@ var dbController = {
             getDeleteIds(node);
             let updateNode = node.preSibling ? {ID: node.preSibling.getID(), NextSiblingID: node.getNextSiblingID()} : null;
             billsAjax.deleteBills(billsLibId, deleteIds, updateNode, function(){
-                tools.btnAction(btn, 'doing');
+                tools.btnAction(btn);
+                btn.attr('doing', 'false');
                 controller.delete();
                 //to solve refresh after deleted
                 let jobsSheet = jobsSpread.getActiveSheet();
@@ -194,7 +205,8 @@ var dbController = {
     },
 
     upMove: function(controller, btn){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
         var node = controller.tree.selected;
         var updateData = [];
         if(node){
@@ -217,7 +229,8 @@ var dbController = {
                     updateData.push(updateC);
                 }
                 billsAjax.upMove(billsLibId, updateData, function(){
-                    tools.btnAction(btn, 'doing');
+                    tools.btnAction(btn);
+                    btn.attr('doing', 'false');
                     controller.upMove();
                     sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
                 });
@@ -226,7 +239,8 @@ var dbController = {
     },
 
     downMove: function(controller, btn){
-        tools.btnClose(btn, 'doing');
+        tools.btnClose(btn);
+        btn.attr('doing', 'true');
         var node = controller.tree.selected;
         var updateData = [];
         if(node){
@@ -252,7 +266,8 @@ var dbController = {
                     updateData.push(updateC);
                 }
                 billsAjax.downMove(billsLibId, updateData);
-                tools.btnAction(btn, 'doing');
+                tools.btnAction(btn);
+                btn.attr('doing', 'false');
                 controller.downMove();
                 sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
             }
@@ -398,6 +413,38 @@ var createObj = {
 };
 
 var tools = {
+    alertOpr: function(args, sheet, txt, arr, field){
+        $('#alertTxt').text(txt);
+        $('#alertBtn').click();
+        sheet.options.isProtected = true;
+        let dataCode = args.col === 0 ? 'code' : 'content';
+        let orgCode =  args.row < arr.length ? arr[args.row][field].data[dataCode] : '';
+        $('#alertCls').click(function () {
+            sheet.options.isProtected = false;
+            sheet.getCell(args.row, args.col).value(orgCode);
+        });
+        $('#alertCof').click(function () {
+            sheet.options.isProtected = false;
+            sheet.getCell(args.row, args.col).value(orgCode);
+        });
+    },
+    alertTotalOpr: function (args, txt, arr) {
+        $('#alertTxt').text(txt);
+        $('#alertBtn').click();
+        args.sheet.options.isProtected = true;
+        let dataCode =  args.col === 0 ? 'code' : 'content';
+        let orgCode =  args.row < arr.length ? arr[args.row].data[dataCode] : '';
+        console.log(`orgC`);
+        console.log(orgCode);
+        $('#alertCls').click(function () {
+            args.sheet.options.isProtected = false;
+            args.sheet.getCell(args.row, args.col).value(orgCode);
+        });
+        $('#alertCof').click(function () {
+            args.sheet.options.isProtected = false;
+            args.sheet.getCell(args.row, args.col).value(orgCode);
+        });
+    },
     //ref sheet up&down Move
     canUpMove: function (selected, arr) {
         return selected && arr.indexOf(selected) > 0 && arr.indexOf(selected) !== -1 ? true: false;
@@ -1101,17 +1148,11 @@ var tools = {
             }
             if(rebuildArr.length > 0){
                 rebuildArr.sort(myCompareCode);
-                console.log(`rebuiArr`);
-                console.log(rebuildArr);
                 if(rebuildArr[0].code){
                     maxJobsNumber = maxJobsNumber + 1 > rebuildArr[0].code ? maxJobsNumber  : rebuildArr[0].code;
-                    console.log(`maxJobs`);
-                    console.log(maxJobsNumber);
                 }
                 rebuildArr.forEach(function(data){
                     if(data.type !== 'CreateT' && data.field === 'content' ){
-                        console.log(`!CT&&Content`);
-                        console.log(data);
                         maxJobsNumber++;
                         let code = maxJobsNumber;
                         data.code = code;
@@ -1615,12 +1656,13 @@ var jobsController = {
                 }
                 //处理重复
                 if(isRepeat){
-                    if(id && newData){
-                        sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value(orgJobData);
-                    }
-                    else {
-                        sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
-                    }
+                    ///if(id && newData){
+                       tools.alertOpr(args, sheet, '该工作内容已存在!', controller.tree.selected.jobs, 'job');
+                  //  }
+                  //  else {
+                        //sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
+                      //  tools.alertOpr(sheet, controller.tree.selected.jobs, 'jobs');
+                   // }
                 }
             }
             else {
@@ -1648,7 +1690,7 @@ var jobsController = {
             });
         }
         else {
-            sheet.getCell(args.row, args.col).value('');
+            tools.alertOpr(args, sheet, '该编号不存在,请重新输入!', controller.tree.selected.jobs, 'job');
         }
     },
 
@@ -1682,10 +1724,8 @@ var jobsController = {
                     let index = tools.getIndex(controller.tree.selected.jobs, id, 'job');//update-- getIndex
                     job.count++;
                     controller.tree.selected.jobs.splice(index, 1);
-                    //controller.tree.selected.jobs.splice(index, 0, job);//update--
                     controller.tree.selected.jobs.splice(index, 0, {job: job, serialNo: serialNo});//update--
                     billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, job.data.id, 'update', 'jobs');
-                    //tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);//update--
                     tools.orderReshowData(sheet, controller.tree.selected.jobs, setting, 'job', true);
                 }
                 if(field === 'content' && job.data[field] === newData){
@@ -1721,17 +1761,72 @@ var jobsController = {
                 });
             }
             else {
-                //todo: 提示窗口
+               tools.alertOpr(args, sheet, '该编号不存在,请重新输入!', controller.tree.selected.jobs, 'job');
+              /*  //todo: 提示窗口
+                console.log(`enter`);
+                console.log(typeof newData);
                 if(typeof newData === 'number'){
+                    console.log(`orgJobData: ${orgJobData}`);
                     sheet.getCell(args.row, args.col).value(orgJobData);
                 }
                 else {
                   //编号只能是数字
                     sheet.getCell(args.row, args.col).value('');
-                }
+                }*/
+            }
+        }
+    },
+    upMove: function (controller, sheet) {
+        let updateSelArr = [];
+        $('#upMove').attr('doing', 'true');
+        tools.btnClose($('#upMove'));
+        let args = controller.tree.selected.args,
+            thisJob = controller.tree.selected.jobs[args.row],
+            preJob = controller.tree.selected.jobs[args.row - 1],
+            tempSerialNo;
+        //switch serialNo
+        tempSerialNo = thisJob.serialNo;
+        thisJob.serialNo = preJob.serialNo;
+        preJob.serialNo = tempSerialNo;
+        updateSelArr.push({id: thisJob.job.data.id, serialNo: thisJob.serialNo});
+        updateSelArr.push({id: preJob.job.data.id, serialNo: preJob.serialNo});
+        billsAjax.updateSerialNo(billsLibId, controller.tree.selected.getID(), updateSelArr, 'jobs', function () {
+            tools.orderReshowData(sheet, controller.tree.selected.jobs, jobsSetting, 'job', true);
+            sheet.setActiveCell(args.row -1, args.col);
+            controller.tree.selected.args.row = args.row - 1;
+            $('#upMove').attr('doing', 'false');
+            if(tools.canUpMove(controller.tree.selected.jobs[controller.tree.selected.args.row], controller.tree.selected.jobs)){
+                $('#upMove').attr('canMove', 'true');
+                tools.btnAction($('#upMove'));
+            }
+            else{
+                $('#upMove').attr('canMove', 'false');
             }
-        }
+        });
     },
+    downMove: function (controller, sheet) {
+        let updateSelArr = [];
+        $('#downMove').attr('doing', 'true');
+        tools.btnClose($('#downMove'));
+        let tempSerialNo = controller.tree.selected.jobs[controller.tree.selected.args.row].serialNo;
+        controller.tree.selected.jobs[controller.tree.selected.args.row].serialNo = controller.tree.selected.jobs[controller.tree.selected.args.row + 1].serialNo;
+        controller.tree.selected.jobs[controller.tree.selected.args.row + 1].serialNo = tempSerialNo;
+        updateSelArr.push({id: controller.tree.selected.jobs[controller.tree.selected.args.row].job.data.id, serialNo: controller.tree.selected.jobs[controller.tree.selected.args.row].serialNo});
+        updateSelArr.push({id: controller.tree.selected.jobs[controller.tree.selected.args.row + 1].job.data.id, serialNo: controller.tree.selected.jobs[controller.tree.selected.args.row + 1].serialNo});
+        billsAjax.updateSerialNo(billsLibId, controller.tree.selected.getID(), updateSelArr, 'jobs', function () {
+            tools.orderReshowData(sheet, controller.tree.selected.jobs, jobsSetting, 'job', true);
+            sheet.setActiveCell(controller.tree.selected.args.row + 1, controller.tree.selected.args.col);
+            controller.tree.selected.args.row = controller.tree.selected.args.row + 1;
+            $('#downMove').attr('doing', 'false');
+            if(tools.canDownMove(controller.tree.selected.jobs[controller.tree.selected.args.row], controller.tree.selected.jobs)){
+                $('#downMove').attr('canMove', 'true');
+                tools.btnAction($('#downMove'));
+            }
+            else{
+                $('#downMove').attr('canMove', 'false');
+            }
+        });
+    }
 
 };
 
@@ -1802,8 +1897,15 @@ var itemsController = {
                 sheet.getCell(args.row, args.col).value('');
             }
             else {
-                //编号只能为数字
-                sheet.getCell(args.row, args.col).value('');
+                $('#alertBtn').click();
+                sheet.options.isProtected = true;
+                let orgCode =  args.row < controller.tree.selected.items.length ? controller.tree.selected.items[args.row].item.data.code : '';
+                $('#alertCls').click(function () {
+                    sheet.getCell(args.row, args.col).value(orgCode);
+                });
+                $('#alertCof').click(function () {
+                    sheet.getCell(args.row, args.col).value(orgCode);
+                });
             }
         }
     },
@@ -1868,16 +1970,72 @@ var itemsController = {
                 });
             }
             else {
-                if(typeof newData === 'number'){
+                $('#alertBtn').click();
+                sheet.options.isProtected = true;
+                let orgCode =  args.row < controller.tree.selected.items.length ? controller.tree.selected.items[args.row].item.data.code : '';
+                $('#alertCls').click(function () {
+                    sheet.getCell(args.row, args.col).value(orgCode);
+                });
+                $('#alertCof').click(function () {
+                    sheet.getCell(args.row, args.col).value(orgCode);
+                });
+            }
+              /*  if(typeof newData === 'number'){
                     sheet.getCell(args.row, args.col).value(orgItemData);
                 }
                 else {
                     //编号只能为数字
                     sheet.getCell(args.row, args.col).value('');
                 }
+            }*/
+        }
+    },
+    upMove: function (controller, sheet) {
+        let updateSelArr = [];
+        $('#upMove').attr('doing', 'true');
+        tools.btnClose($('#upMove'));
+        let tempSerialNo = controller.tree.selected.items[controller.tree.selected.args.row].serialNo;
+        controller.tree.selected.items[controller.tree.selected.args.row].serialNo = controller.tree.selected.items[controller.tree.selected.args.row -1].serialNo;
+        controller.tree.selected.items[controller.tree.selected.args.row -1].serialNo = tempSerialNo;
+        updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row].serialNo});
+        updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row -1].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row -1].serialNo});
+        billsAjax.updateSerialNo(billsLibId, controller.tree.selected.getID(), updateSelArr, 'items', function () {
+            tools.orderReshowData(sheet, controller.tree.selected.items, itemsSetting, 'item', true);
+            sheet.setActiveCell(controller.tree.selected.args.row -1, controller.tree.selected.args.col);
+            controller.tree.selected.args.row = controller.tree.selected.args.row -1;
+            $('#upMove').attr('doing', 'false');
+            if(tools.canUpMove(controller.tree.selected.items[controller.tree.selected.args.row], controller.tree.selected.items)){
+                $('#upMove').attr('canMove', 'true');
+                tools.btnAction($('#upMove'));
+            }
+            else{
+                $('#upMove').attr('canMove', 'false');
             }
-        }
+        });
     },
+    downMove: function (controller, sheet) {
+        let updateSelArr = [];
+        $('#downMove').attr('doing', 'true');
+        tools.btnClose($('#downMove'));
+        let tempSerialNo = controller.tree.selected.items[controller.tree.selected.args.row].serialNo;
+        controller.tree.selected.items[controller.tree.selected.args.row].serialNo = controller.tree.selected.items[controller.tree.selected.args.row + 1].serialNo;
+        controller.tree.selected.items[controller.tree.selected.args.row + 1].serialNo = tempSerialNo;
+        updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row].serialNo});
+        updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row + 1].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row +1].serialNo});
+        billsAjax.updateSerialNo(billsLibId, controller.tree.selected.getID(), updateSelArr, 'items', function () {
+            tools.orderReshowData(sheet, controller.tree.selected.items, itemsSetting, 'item', true);
+            sheet.setActiveCell(controller.tree.selected.args.row +1, controller.tree.selected.args.col);
+            controller.tree.selected.args.row = controller.tree.selected.args.row +1;
+            $('#downMove').attr('doing', 'false');
+            if(tools.canDownMove(controller.tree.selected.items[controller.tree.selected.args.row], controller.tree.selected.items)){
+                $('#downMove').attr('canMove', 'true');
+                tools.btnAction($('#downMove'));
+            }
+            else{
+                $('#downMove').attr('canMove', 'false');
+            }
+        });
+    }
 
 };
 
@@ -2026,20 +2184,20 @@ var totalJobsController = {
                     totalJobsController.updateJob(totalJobs, tagId, field, newData);
             }
             if(isRepeat){
-                if(tagId && newData){
+                console.log(`isRe`);
+                tools.alertTotalOpr(args, '该工作内容已存在!', totalJobs.jobsArr);
+                /*if(tagId && newData){
                     sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value(orgJobData);
                 }
                 else {
                     sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
-                }
+                }*/
             }
         });
     },
 
     createJob: function(sheet, totalJobs, field, newData, args){
         if(field === 'content'){
-            console.log(`editMaJ`);
-            console.log(maxJobsNumber);
             maxJobsNumber++;
             let code = maxJobsNumber;
             jobsAjax.createJobContent(billsLibId, newData, code, function(newJobId){

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

@@ -180,7 +180,7 @@
                     </button>
                 </div>
                 <div class="modal-body">
-                    <h5 class="text-danger">编号和类型不可为空!是否取消操作?</h5>
+                    <h5 class="text-danger" id="alertGljTxt">编号和类型不可为空!是否取消操作?</h5>
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary" id="aleCanceBtn" data-dismiss="modal">取消</button>

+ 9 - 8
web/maintain/ration_repository/js/repository_glj.js

@@ -205,9 +205,15 @@ var pageOprObj = {
                  let focusToCol;
                  function getFocusToCol (me){
                      if(!me.addGljObj[me.setting.header[0].dataCode]){
+                         $('#alertGljTxt').text('编号不能为空,是否取消增加工料机?');
                          return 0;
                      }
+                     else if(!me.addGljObj[me.setting.header[1].dataCode]){
+                         $('#alertGljTxt').text('名称不能为空,是否取消增加工料机?');
+                         return 1;
+                     }
                     else if(!me.addGljObj[me.setting.header[5].dataCode]){
+                         $('#alertGljTxt').text('类型不能为空,是否取消增加工料机?');
                          return 5;
                      }
                      else {
@@ -249,11 +255,9 @@ var pageOprObj = {
          }
      },
     onCellEditStart: function(sender, args) {
-        console.log(`enterEditStart`);
         var me = repositoryGljObj;
         var rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
         me.currentEditingGlj = rObj;
-        console.log(me.currentEditingGlj);
         me.orgCode = me.workBook.getSheet(0).getValue(args.row, 0);
         var cacheSection = me.gljList;
         if (cacheSection) {
@@ -269,18 +273,14 @@ var pageOprObj = {
     onCellEditEnd: function(sender, args) {
         var me = repositoryGljObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
             updateArr = [], addArr = [];
-        console.log(`me.currentE`);
-        console.log(me.currentEditingGlj);
         me.editingRowIdx = args.row;
-        console.log(`editEnd_obj`);
-        console.log(rObj);
         if (me.currentEditingGlj["ID"]) {
             rObj["ID"] = me.currentEditingGlj["ID"];
             rObj.gljClass = me.currentEditingGlj.gljClass;
             for(let col =0; col< me.setting.header.length; col++){
                 if(me.currentEditingGlj[me.setting.header[col].dataCode] !== rObj[me.setting.header[col].dataCode]){
                     me.addGljObj = rObj;
-                    if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[5].dataCode]){
+                    if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[5].dataCode]){
                         updateArr.push(rObj);
                         break;
                     }
@@ -307,9 +307,10 @@ var pageOprObj = {
                 me.updateRationBasePrcRq(gljTypeObj);
             }
         } else {
+            rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
             me.addGljObj = rObj;
             let isCanSav = true;
-                if(!rObj[me.setting.header[0].dataCode] || !rObj[me.setting.header[5].dataCode]){
+                if(!rObj[me.setting.header[0].dataCode] || !rObj[me.setting.header[1].dataCode] || !rObj[me.setting.header[5].dataCode]){
                     isCanSav = false;
                 }
             if(isCanSav){