Przeglądaj źródła

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

TonyKang 8 lat temu
rodzic
commit
0bf6a9830b

+ 6 - 0
modules/ration_repository/controllers/coe_controller.js

@@ -18,6 +18,12 @@ module.exports ={
         coeList.saveToCoeList(JSON.parse(req.body.data), function(isErr, msg, data){
             callback(req, res, isErr, msg, data);
         });
+    },
+
+    getCoeItemsByIDs: function(req,res){
+        coeList.getCoeItemsByIDs(JSON.parse(req.body.data), function(err,data){
+            callback(req, res, err, 'Get coe', data);
+        });
     }
 
 }

+ 13 - 2
modules/ration_repository/models/coe.js

@@ -36,8 +36,19 @@ coeListDAO.prototype.getCoe = function (data, callback) {
             "$or": [{"isDeleted": null}, {"isDeleted": false}]
         },
         function (err, doc) {
-            if (err) callback(true, "获取系数明细错误!", "")
-            else callback(false, "获取系数明细成功", doc);
+            if (err) callback("获取系数明细错误!", null)
+            else callback(null, doc);
+        })
+};
+
+coeListDAO.prototype.getCoeItemsByIDs = function (data, callback) {
+    coeListModel.find({
+            "libID": data.libID,
+            "ID": {"$in":data.coeIDs}
+        }, ["libID","ID","name","content","-_id"],
+        function (err, doc) {
+            if (err) callback("批量获取系数明细错误!", null)
+            else callback(null, doc);
         })
 };
 

+ 2 - 1
modules/ration_repository/models/ration_item.js

@@ -22,7 +22,8 @@ var rationItemSchema = mongoose.Schema({
     rationRepId: Number,
     caption: String,
     feeType: Number,
-    rationGljList: [rationGljItemSchema]
+    rationGljList: [rationGljItemSchema],
+    rationCoeList: Array
 });
 var rationItemModel = db.model("rationItems",rationItemSchema, "rationItems")
 var counter = require('../../../public/counter/counter');

+ 1 - 0
modules/ration_repository/routes/ration_rep_routes.js

@@ -38,6 +38,7 @@ apiRouter.post("/getGljItemsByCodes",repositoryGljController.getGljItemsByCodes)
 
 apiRouter.post("/getCoeList",coeListController.getCoeList);
 apiRouter.post("/saveCoeList",coeListController.saveCoeList);
+apiRouter.post("/getCoeItemsByIDs",coeListController.getCoeItemsByIDs);
 
 apiRouter.post('/getRationItem', searchController.getRationItem);
 apiRouter.post('/findRation', searchController.findRation);

+ 26 - 0
public/web/sheet/sheet_common.js

@@ -2,6 +2,32 @@
  * Created by Tony on 2017/4/28.
  */
 var sheetCommonObj = {
+    // createSpread、initSheet 在一个Spread多个Sheet分别调用时的情况下使用。
+    // buildSheet 在一个Spread、一个Sheet的情况下使用。
+    createSpread: function(container, SheetCount){
+        var me = this;
+        var spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: SheetCount });
+        spreadBook.options.tabStripVisible = false;
+        spreadBook.options.showHorizontalScrollbar = false;
+        return spreadBook;
+    },
+
+    initSheet: function(sheet, setting, rowCount) {
+        var me = this;
+        var spreadNS = GC.Spread.Sheets;
+        sheet.suspendPaint();
+        sheet.suspendEvent();
+        sheet.setRowCount(1, spreadNS.SheetArea.colHeader);
+        sheet.setColumnCount(setting.header.length, spreadNS.SheetArea.viewport);
+        sheet.options.colHeaderAutoTextIndex = 1;
+        sheet.options.colHeaderAutoText = spreadNS.HeaderAutoText.numbers;
+        sheet.showRowOutline(false);
+        me.buildHeader(sheet, setting);
+        if (rowCount > 0) sheet.setRowCount(rowCount);
+        sheet.resumeEvent();
+        sheet.resumePaint();
+    },
+
     buildSheet: function(container, setting, rowCount) {
         var me = this;
         var spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: 1 });

+ 23 - 8
web/maintain/ration_repository/dinge.html

@@ -77,25 +77,28 @@
                                   <!-- 标签 -->
                                   <ul class="nav nav-tabs" role="tablist">
                                       <li class="nav-item">
-                                          <a class="nav-link" data-toggle="tab" href="#bglj" role="tab">工料机</a>
+                                          <a class="nav-link active" id="linkGLJ" data-toggle="tab" href="#bglj" role="tab">工料机</a>
                                       </li>
                                       <li class="nav-item">
                                           <a class="nav-link" data-toggle="tab" href="#bfzd" role="tab">辅助定额调整</a>
                                       </li>
                                       <li class="nav-item">
-                                          <a class="nav-link active" data-toggle="tab" href="#bfzt" role="tab">附注条件调整</a>
+                                          <a class="nav-link" id="linkFZTJ" data-toggle="tab" href="#bfzt" role="tab">附注条件调整</a>
                                       </li>
                                       <li class="nav-item">
                                           <a class="nav-link" data-toggle="tab" href="#baz" role="tab">安装增加费</a>
                                       </li>
                                       <li class="nav-item">
-                                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button>本分项全部适用</button>
+                                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button id="btnGLJ">工料机</button>
+                                      </li>
+                                      <li class="nav-item">
+                                          &nbsp;<button id="btnFZTJ">附注条件</button>
                                       </li>
                                   </ul>
                                   <!-- 内容 -->
                                   <div class="tab-content">
                                       <!--工料机-->
-                                      <div class="tab-pane" id="bglj" role="tabpanel">
+                                      <div class="tab-pane active" id="bglj" role="tabpanel">
                                           <div id="rationGLJSheet" class="main-data-bottom"></div>
                                       </div>
                                       <!--辅助定额调整-->
@@ -123,7 +126,7 @@
                                       </div>
                                       <!--附注条件调整-->
 
-                                      <div class="tab-pane active" id="bfzt" role="tabpanel">
+                                      <div class="tab-pane" id="bfzt" role="tabpanel">
                                           <div id="rationCoeSpread" class="main-data-bottom"></div>
                                           <!--<div class="main-data-bottom">
                                               <table class="table table-sm table-bordered m-0">
@@ -559,10 +562,22 @@
             $(document).ready(function(){
                 pageOprObj.initPage();
                 rationOprObj.buildSheet($("#rationItemsSheet")[0]);
-                rationGLJOprObj.buildSheet($("#rationGLJSheet")[0]);
                 sheetCommonObj.shieldAllCells(rationOprObj.workBook.getSheet(0), rationOprObj.setting);
-                sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
-                rationCoeObj.show();
+
+               // tabPanel 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。
+                var rdSpread = sheetCommonObj.createSpread($("#rationGLJSheet")[0], 3);
+                rationGLJOprObj.buildSheet(rdSpread.getSheet(0));
+                sheetCommonObj.shieldAllCells(rdSpread.getSheet(0), rationGLJOprObj.setting);
+                rationCoeOprObj.buildSheet(rdSpread.getSheet(1));
+                sheetCommonObj.shieldAllCells(rdSpread.getSheet(1), rationCoeOprObj.setting);
+
+                $("#btnGLJ").click(function(){
+                    rdSpread.setActiveSheetIndex(0);
+                });
+
+                $("#btnFZTJ").click(function(){
+                    rdSpread.setActiveSheetIndex(1);
+                });
             });
         </script>
     </div>

+ 19 - 8
web/maintain/ration_repository/js/ration.js

@@ -44,16 +44,24 @@ var rationOprObj = {
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.CellClick, me.onCellClick);
     },
     onCellClick: function(sender, args) {
-        var me = rationOprObj, sheet = rationGLJOprObj.workBook.getSheet(0), setting = rationGLJOprObj.setting;
+        var me = rationOprObj,
+            sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
+            sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting;
         if(args.sheetArea === GC.Spread.Sheets.SheetArea.colHeader || args.sheetArea === GC.Spread.Sheets.SheetArea.corner){
-            sheetCommonObj.cleanSheet(sheet, setting, -1);
-            sheetCommonObj.shieldAllCells(sheet);
+            sheetCommonObj.cleanSheet(sheetGLJ, settingGLJ, -1);
+            sheetCommonObj.shieldAllCells(sheetGLJ);
+            sheetCommonObj.cleanSheet(sheetCoe, settingCoe, -1);
+            sheetCommonObj.shieldAllCells(sheetCoe);
         } else {
-            sheetCommonObj.cleanSheet(sheet, setting, -1);
-            sheetCommonObj.shieldAllCells(sheet);
+            sheetCommonObj.cleanSheet(sheetGLJ, settingGLJ, -1);
+            sheetCommonObj.shieldAllCells(sheetGLJ);
+            sheetCommonObj.cleanSheet(sheetCoe, settingCoe, -1);
+            sheetCommonObj.shieldAllCells(sheetCoe);
             var cacheSection = me.getCache();
             if (cacheSection && args.row < cacheSection.length) {
+                //alert('0001'+JSON.stringify(cacheSection[args.row]));
                 rationGLJOprObj.getGljItems(cacheSection[args.row]);
+                rationCoeOprObj.getCoeItems(cacheSection[args.row]);
             }
         }
         me.workBook.focus(true);
@@ -234,7 +242,8 @@ var rationOprObj = {
             if (me.currentRations["_SEC_ID_" + sectionID]) {
                 me.showRationItems(sectionID);
                 sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
-                sheetCommonObj.lockCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
+                sheetCommonObj.lockCells(rationGLJOprObj.sheet, rationGLJOprObj.setting);
+                sheetCommonObj.lockCells(rationCoeOprObj.sheet, rationCoeOprObj.setting);
             } else {
                 $.ajax({
                     type:"POST",
@@ -248,10 +257,12 @@ var rationOprObj = {
                             me.currentRations["_SEC_ID_" + sectionID] = result.data;
                             me.showRationItems(sectionID);
                             sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
-                            sheetCommonObj.lockCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
+                            sheetCommonObj.lockCells(rationGLJOprObj.sheet, rationGLJOprObj.setting);
+                            sheetCommonObj.lockCells(rationCoeOprObj.sheet, rationCoeOprObj.setting);
                         } else {
                             sheetCommonObj.shieldAllCells(me.workBook.getSheet(0));
-                            sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0));
+                            sheetCommonObj.shieldAllCells(rationGLJOprObj.sheet);
+                            sheetCommonObj.shieldAllCells(rationCoeOprObj.sheet);
                         }
                     },
                     error:function(err){

+ 189 - 109
web/maintain/ration_repository/js/ration_coe.js

@@ -1,135 +1,215 @@
 /**
  * Created by CSL on 2017-06-08.
  */
-var rationCoeObj = {
-    spread: null,
-    datas: [],
-    libID: Number,
-    tempID: -999999,       // 本地新增一条数据给的默认ID,用作标记,服务端返回新ID后替换该ID
-
-    colDef: [
-        {name: "ID", displayName: "ID", size: 70, hAlign: "center"},
-        {name: "name", displayName: "名称", size: 400, readOnly: true},
-        {name: "content", displayName: "内容", size: 500, readOnly: true}
-    ],
-
-    show: function (){
-        var me = this;
-        me.libID = getQueryString("repository");
-        me.getDatas();
-        me.spread = sheetObj.create($('#rationCoeSpread')[0], me.colDef, me.datas);
-        me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onMainCellChanged);
-        me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onMainRangeChanged);
+var rationCoeOprObj = {
+    sheet: null,
+    libID: -1,
+    currentRationItem: null,
+    cache: {},
+    setting: {
+        header:[
+            {headerName:"编号",headerWidth:120,dataCode:"ID", dataType: "Number"},
+            {headerName:"名称",headerWidth:400,dataCode:"name", dataType: "String"},
+            {headerName:"内容",headerWidth:300,dataCode:"content", dataType: "String"}
+        ],
+        view:{
+            comboBox:[],
+            lockColumns:[1,2]
+        }
     },
-
-    getDatas: function () {
+    buildSheet: function(sheet) {
         var me = this;
-
-        $.ajax({
-            type:"POST",
-            url:"/rationRepository/api/getCoeList",
-            data:{"libID": me.libID},
-            dataType:"json",
-            cache:false,
-            async: false,
-            timeout:20000,
-            success: function (result) {
-                if (result.data) {
-                    me.datas = result.data;
-                };
-            },
-            error: function (result) {
-                alert('内部程序错误!');
-            }
-        })
+        me.sheet = sheet;
+        //alert('0020 libID:' + JSON.stringify(me.libID));
+        me.libID = storageUtil.getSessionCache("RationGrp","repositoryID");
+        //alert('0021 libID:' + JSON.stringify(me.libID));
+        sheetCommonObj.initSheet(me.sheet, me.setting, 30);
+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
+        me.sheet.bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
+        me.sheet.bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
     },
+    onRangeChanged: function(sender, args) {
+        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
+            var me = rationCoeOprObj, updateArr = [], removeArr = [];
+            if (args.col == 0) {
+                if (me.cache["_Coe_" + me.currentRationItem.ID]) {
+                    var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID];
+                    for (var i = args.rowCount - 1; i >= 0; i--) {
+                        if (args.row + i < cacheArr.length) {
+                            cacheArr.splice(args.row + i, 1);
+                        }
+                    }
+                    me.updateRationItem();
+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
+                    me.showCoeItems(me.currentRationItem.ID);
+                }
+            }
 
-    onMainCellChanged: function(sender, args) {
-        if (args.propertyName !== "value"){return;};
-        var me = rationCoeObj;
-        var row = args.sheet.getActiveRowIndex();
-        var obj = me.datas[row];
-
-        if (obj.ID == undefined){           // 空行录入,即新增
-            obj.libID = me.libID;
-            obj.ID = me.tempID;
-            if (obj.name == undefined){obj.name = '';};     // 生成属性,令属性存储顺序一致
-            if (obj.content == undefined){obj.content = '';};
-            obj.coes = [{coeType:"全部", operator:"*", amount: "0"}];
-            me.datas[row] = obj;
-
-            me.save([obj],[],[]);
-
-            var sheet = me.spread.getSheet(0);
-            me.showNullRow(sheet);
         }
-        else{ // 正常修改
-            me.save([],[],[obj]);
-        };
     },
-
-    onMainRangeChanged: function(sender, args) {
-        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
-            if (!confirm('确定要删除本条附注条件吗?')){ args.cancel = true; return; }
-            var me = rationCoeObj;
-            var obj = me.datas[args.row];
-            me.save([],[obj],[]);
-            args.sheet.deleteRows(args.row, 1);
-        };
+/*    onClipboardPasting: function(sender, args) {
+        var me = rationCoeOprObj;
+        if (args.cellRange.colCount != 1 || args.cellRange.col != 0 || !(me.currentRationItem)) {
+            args.cancel = true;
+        }
     },
-
-    showNullRow: function(sheet){
-        var datas = sheet.getDataSource();
-        var lastData = datas[datas.length - 1];
-        if (!$.isEmptyObject(lastData)){
-            sheet.addRows(sheet.getRowCount(), 1);
-        };
+    onClipboardPasted: function(e, info) {
+        var me = rationCoeOprObj;
+        if (me.libID) {
+            if (info.cellRange.col == 0) {
+                var tmpCoeIDs = sheetCommonObj.analyzePasteData({header:[{dataCode: "ID"}] }, info);
+                var IDs = [];
+                for (var i = 0; i < tmpCoeIDs.length; i++) {
+                    IDs.push(tmpCoeIDs[i]);
+                }
+                me.addCoeItems(IDs);
+            } else {
+                //修改用量
+            }
+        }
+    },*/
+    onCellEditEnd: function(sender, args){
+        var me = rationCoeOprObj;
+        if (args.col == 0) {   // 编号列
+            if (args.editingText == null || args.editingText.trim() == "") {  //delete
+                var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID];
+                if (cacheArr) {
+                    if (args.row < cacheArr.length) {
+                        cacheArr.splice(args.row, 1);
+                        me.updateRationItem();
+                        sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
+                        me.showCoeItems(me.currentRationItem.ID);
+                    }
+                }
+            } else {
+                if (me.libID) {
+                    var coeIDs = [];
+                    coeIDs.push(args.editingText.trim());
+                    me.addCoeItems(coeIDs, me.libID);
+                }
+            }
+        }
     },
 
-    save: function(addArr, deleteArr, updateArr) {
-        var me = rationCoeObj;
-
-        //var addArrTemp = [];
-        //var deleteArrTemp = [];
-        var updateArrTemp = [];
-
-        // 空行会产生空对象数据,清理空对象会给sheet的空行效果带来奇怪的干扰,这里要中转一下。
-        if (updateArr.length > 0){
-            $.extend(true, updateArrTemp, updateArr);
-            //debug.d('011: ', updateArrTemp);
-            //debug.d('012: ', updateArr);
-            deleteEmptyObject(updateArrTemp[0].coes);
-            //debug.d('013: ', updateArrTemp);
-            //debug.d('014: ', updateArr);
-            //return;
-        };
-
+    addCoeItems: function(coeIDs) {
+        var me = this;
         $.ajax({
             type:"POST",
-            url:"api/saveCoeList",
-            data: {"data": JSON.stringify({"addArr": addArr, "deleteArr": deleteArr, "updateArr": updateArrTemp})},
+            url:"api/getCoeItemsByIDs",
+            data: {"data": JSON.stringify({"libID": me.libID, "coeIDs": coeIDs})},
             dataType:"json",
             cache:false,
             timeout:5000,
             success:function(result){
-                if (result.error) {
-                    alert(result.message);
-                } else {
-                    // 成功。更新从后台返回的新ID。
-                    if (addArr.length > 0){
-                        for (var i = 0; i < me.datas.length; i++) {
-                            if (me.datas[i].ID == me.tempID){
-                                me.datas[i].ID = result.data;
-                                me.spread.getSheet(0).repaint();
-                                break;
+                sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
+                if (result) {
+                    var rstArr = [], newAddArr = [];
+                    for (var i = 0; i < result.data.length; i++) {
+                        rstArr.push(result.data[i]);
+                    };
+                    if (me.cache["_Coe_" + me.currentRationItem.ID]) {
+                        var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID];
+                        for (var i = 0; i < rstArr.length; i++) {
+                            var hasDup = false;
+                            for (var j = 0; j < cacheArr.length; j++) {
+                                if (cacheArr[j] == rstArr[i]) {
+                                    hasDup = true;
+                                    break;
+                                }
+                            }
+                            if (!hasDup) {
+                                newAddArr.push(rstArr[i]);
                             }
                         }
-                    };
+                        cacheArr.sort(function(a, b) {
+                            var rst = 0;
+                            if (a > b) rst = 1
+                            else if (a < b) rst = -1;
+                            return rst;
+                        });
+                        me.cache["_Coe_" + me.currentRationItem.ID] = cacheArr.concat(newAddArr);
+                    }
+                    me.showCoeItems(me.currentRationItem.ID);
+                    if (newAddArr.length > 0) {
+                        me.updateRationItem();
+                    }
                 }
+                sheetCommonObj.lockCells(me.sheet, me.setting);
             },
             error:function(err){
-                alert("内部程序错误!");
+                alert(err);
             }
         })
+    },
+
+    updateRationItem: function() {
+        var me = this, updateArr = [];
+        if (me.currentRationItem) {
+            me.currentRationItem.rationCoeList = me.getCoeIDsArr();
+            updateArr.push(me.currentRationItem);
+            rationOprObj.mixUpdateRequest(updateArr, [], []);
+        }
+    },
+
+    getCoeIDsArr: function(){
+        var me = this, rst = [];
+        if (me.currentRationItem && me.cache["_Coe_" + me.currentRationItem.ID]) {
+            var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID];
+            for (var i = 0; i < cacheArr.length; i++) {
+                rst.push(cacheArr[i].ID);
+            }
+        }
+        return rst;
+    },
+
+    getCoeItems: function(rationItem) {
+        var me = this, rationID = rationItem.ID, rationCoeList = rationItem.rationCoeList;
+        if (rationCoeList == undefined){return;};
+
+        me.currentRationItem = rationItem;
+        //alert('0009 ' + JSON.stringify(me.cache));
+        //alert('0010 ' + JSON.stringify(me.cache["_Coe_" + rationID]));
+        //alert('0011 ' + JSON.stringify(me.libID));
+        if (me.cache["_Coe_" + rationID]) {
+            me.showCoeItems(rationID);
+            sheetCommonObj.lockCells(me.sheet, me.setting);
+        } else {
+            $.ajax({
+                type:"POST",
+                url:"api/getCoeItemsByIDs",
+                data: {"data": JSON.stringify({"libID": me.libID, "coeIDs": rationCoeList})},
+                dataType:"json",
+                cache:false,
+                timeout:5000,
+                success:function(result){
+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
+
+                    if (result.data) {
+                        var cacheArr = [];
+                        for (var i = 0; i < result.data.length; i++) {
+                            for (var j = 0; j < rationCoeList.length; j++) {
+                                if (rationCoeList[j] == result.data[i].ID) {
+                                    cacheArr.push(result.data[i]);
+                                    break;
+                                }
+                            }
+                        };
+                        me.cache["_Coe_" + rationID] = cacheArr;
+                        me.showCoeItems(rationID);
+                    }
+                    sheetCommonObj.lockCells(me.sheet, me.setting);
+                },
+                error:function(err){
+                    alert(err);
+                }
+            })
+        }
+    },
+    showCoeItems: function(rationID) {
+        var me = this;
+        if (me.cache["_Coe_" + rationID]) {
+            sheetCommonObj.showData(me.sheet, me.setting, me.cache["_Coe_" + rationID]);
+        }
     }
-};
+}

+ 18 - 16
web/maintain/ration_repository/js/ration_glj.js

@@ -2,12 +2,12 @@
  * Created by Tony on 2017/4/28.
  */
 var rationGLJOprObj = {
-    workBook: null,
+    sheet: null,
     currentRationItem: null,
     cache: {},
     setting: {
         header:[
-            {headerName:"编码",headerWidth:160,dataCode:"code", dataType: "String", formatter: "@"},
+            {headerName:"编码",headerWidth:120,dataCode:"code", dataType: "String", formatter: "@"},
             {headerName:"名称",headerWidth:400,dataCode:"name", dataType: "String"},
             {headerName:"单位",headerWidth:160,dataCode:"unit", dataType: "String"},
             {headerName:"单位基价",headerWidth:160, dataCode:"basePrice", dataType: "Number", precision: 2},
@@ -19,13 +19,15 @@ var rationGLJOprObj = {
             lockColumns:[1,2,3,5,6]
         }
     },
-    buildSheet: function(container) {
+    buildSheet: function(sheet) {
         var me = this;
-        me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30);
-        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
-        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
-        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
-        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
+        me.sheet = sheet;
+        sheetCommonObj.initSheet(me.sheet, me.setting, 30);
+
+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
+        me.sheet.bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
+        me.sheet.bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
     },
     onRangeChanged: function(sender, args) {
         if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
@@ -39,7 +41,7 @@ var rationGLJOprObj = {
                         }
                     }
                     me.updateRationItem();
-                    sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                     me.showGljItems(me.currentRationItem.ID);
                 }
             }
@@ -87,7 +89,7 @@ var rationGLJOprObj = {
                     if (args.row < cacheArr.length) {
                         cacheArr.splice(args.row, 1);
                         me.updateRationItem();
-                        sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
+                        sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                         me.showGljItems(me.currentRationItem.ID);
                     }
                 }
@@ -112,7 +114,7 @@ var rationGLJOprObj = {
             cache:false,
             timeout:5000,
             success:function(result){
-                sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
+                sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                 if (result) {
                     var rstArr = [], dummyR = {gljId: 0, consumeAmt:0}, newAddArr = [];
                     for (var i = 0; i < result.data.length; i++) {
@@ -146,7 +148,7 @@ var rationGLJOprObj = {
                         me.updateRationItem();
                     }
                 }
-                sheetCommonObj.lockCells(me.workBook.getSheet(0), me.setting);
+                sheetCommonObj.lockCells(me.sheet, me.setting);
             },
             error:function(err){
                 alert(err);
@@ -191,7 +193,7 @@ var rationGLJOprObj = {
         me.currentRationItem = rationItem;
         if (me.cache["_GLJ_" + rationID]) {
             me.showGljItems(rationID);
-            sheetCommonObj.lockCells(me.workBook.getSheet(0), me.setting);
+            sheetCommonObj.lockCells(me.sheet, me.setting);
         } else {
             var gljIds = [];
             for (var i = 0; i < rationGljList.length; i++) {
@@ -205,7 +207,7 @@ var rationGLJOprObj = {
                 cache:false,
                 timeout:5000,
                 success:function(result){
-                    sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                     if (result) {
                         var cacheArr = [];
                         for (var i = 0; i < result.data.length; i++) {
@@ -219,7 +221,7 @@ var rationGLJOprObj = {
                         me.cache["_GLJ_" + rationID] = cacheArr;
                         me.showGljItems(rationID);
                     }
-                    sheetCommonObj.lockCells(me.workBook.getSheet(0), me.setting);
+                    sheetCommonObj.lockCells(me.sheet, me.setting);
                 },
                 error:function(err){
                     alert(err);
@@ -230,7 +232,7 @@ var rationGLJOprObj = {
     showGljItems: function(rationID) {
         var me = this;
         if (me.cache["_GLJ_" + rationID]) {
-            sheetCommonObj.showData(me.workBook.getSheet(0), me.setting, me.cache["_GLJ_" + rationID]);
+            sheetCommonObj.showData(me.sheet, me.setting, me.cache["_GLJ_" + rationID]);
         }
     }
 }

+ 2 - 2
web/maintain/ration_repository/js/section_tree.js

@@ -201,8 +201,8 @@ var zTreeOprObj = {
             sheetCommonObj.cleanSheet(rationOprObj.workBook.getSheet(0), rationOprObj.setting, -1);
             sheetCommonObj.shieldAllCells(rationOprObj.workBook.getSheet(0));
         }
-        sheetCommonObj.cleanSheet(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting, -1);
-        sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0));
+        sheetCommonObj.cleanSheet(rationGLJOprObj.sheet, rationGLJOprObj.setting, -1);
+        sheetCommonObj.shieldAllCells(rationGLJOprObj.sheet);
     }
 
 };