소스 검색

费率子文档修改入库。

Chenshilong 8 년 전
부모
커밋
74c8c44555
4개의 변경된 파일61개의 추가작업 그리고 6개의 파일을 삭제
  1. 7 2
      modules/fees/controllers/fees_controller.js
  2. 18 0
      modules/fees/models/fees_db.js
  3. 1 0
      modules/fees/routes/fees_router.js
  4. 35 4
      web/fees/feeRate.js

+ 7 - 2
modules/fees/controllers/fees_controller.js

@@ -25,9 +25,14 @@ module.exports = {
         projectFeeRateFile.rates(fileID, function (doc) {
             res.json({data: doc});
         })
-    }
-
+    },
 
+    projectFeeUpdateRate: function (req, res) {
+        var rateObj = {"fileID": req.body.fileID, "rateID": req.body.rateID, "rateValue": req.body.rateValue};
+        projectFeeRateFile.updateRate(rateObj, function (doc) {
+            res.json({data: doc});
+        })
+    }
 }
 
 

+ 18 - 0
modules/fees/models/fees_db.js

@@ -36,6 +36,24 @@ FeeRateFile.prototype.rates = function(fileID, controllerFun){
     })
 };
 
+// 1 保存成功; 0 保存失败;-1没有找到对应记录。
+FeeRateFile.prototype.updateRate = function(rateObj, controllerFun){
+    feeRatesModel.find({"ID": rateObj.fileID}, ["rates"], function(err, data){
+        if(data.length){
+            for (var i = 0; i < data[0].rates.length; i++) {
+                if (data[0].rates[i].ID == rateObj.rateID) {
+                    data[0].rates[i].rate = rateObj.rateValue;
+                    data[0].save(function (err) {
+                        if (err) { controllerFun(0); } else { controllerFun(1); }
+                    });
+                    break;
+                }
+            };
+        }
+        else{ controllerFun(-1); }
+    })
+};
+
 module.exports = new FeeRateFile();
 
 

+ 1 - 0
modules/fees/routes/fees_router.js

@@ -13,6 +13,7 @@ feesRouter.get('/', function(req, res) {
 feesRouter.post('/getLibNames', feesController.libNames);
 feesRouter.post('/getLibFeeRates', feesController.libFeeRates);
 feesRouter.post('/getProjectFeeRates', feesController.projectFeeRates);
+feesRouter.post('/updateProjectFeeRate', feesController.projectFeeUpdateRate);
 
 
 module.exports = feesRouter;

+ 35 - 4
web/fees/feeRate.js

@@ -3,6 +3,7 @@
  */
 var region = '重庆';
 var feeRateFileID = 5;
+var datas = [];
 var spreadView;
 
 $(document).ready(function () {
@@ -23,7 +24,8 @@ function loadProjectFeeRates(fileID) {
         data: {"fileID": fileID},
         success: function (result) {
             if (result.data) {
-                createSpreadView(result.data[0].rates, true);
+                datas = result.data[0].rates;
+                createSpreadView(true);
             }
         },
         error: function (result) {
@@ -61,7 +63,8 @@ function loadLibFeeRates(libID) {
         data: {"libID": libID},
         success: function (result) {
             if (result.data) {
-                createSpreadView(result.data[0].rates, false);
+                datas = result.data[0].rates;
+                createSpreadView(false);
             }
         },
         error: function (result) {
@@ -70,7 +73,7 @@ function loadLibFeeRates(libID) {
     });
 }
 
-function createSpreadView(datas, canEdit) {
+function createSpreadView(canEdit) {
     // 创建前先销毁旧树表。
     //$('#divFee').empty();  // 清空不行,浏览器跟踪显示错误数狂飚:TypeError: G is null
     //$('#divFee').remove(); // 删除可以,但是太山寨。
@@ -142,8 +145,36 @@ function createSpreadView(datas, canEdit) {
         }
     };
 
+    var dataSource = {
+        loadRange: function(params) {
+            params.success(datas);
+        },
+
+        update: function(params) {
+            $.ajax({
+                type: 'POST',
+                url: '/fees/updateProjectFeeRate',
+                data: {"fileID": feeRateFileID, "rateID": params.dataItem.ID, "rateValue": params.dataItem.rate},
+                success: function(data) {
+                    var iCode = data.data;
+                    if (iCode == 1){
+                        params.success();
+                    }else{
+                        alert('(' + iCode + ') 修改失败!');
+                        spreadView.cancelEditing();
+                        params.failed();
+                    }
+                },
+                error: function(xhr, status) {
+                    alert('内部程序错误!');
+                    params.failed();
+                }
+            });
+        }
+    };
+
     spreadView = new GC.Spread.Views.DataView($('#divFee')[0],
-        datas, columns, new GC.Spread.Views.Plugins.GridLayout(options));
+        dataSource, columns, new GC.Spread.Views.Plugins.GridLayout(options));
     spreadView.invalidate();
     document.querySelector('#divFee').focus();
 }