Browse Source

定额库debug,加单位下拉

zhongzewei 7 năm trước cách đây
mục cha
commit
b669c037ab

+ 1 - 0
package.json

@@ -21,6 +21,7 @@
     "glob": "~4.0.5"
   },
   "dependencies": {
+    "babel-core": "^6.26.0",
     "bluebird": "^3.5.0",
     "jszip": "^3.1.3",
     "pdfkit": "^0.8.2"

+ 1 - 1
public/web/sheet/sheet_common.js

@@ -136,7 +136,7 @@ var sheetCommonObj = {
                 else {
                     sheet.setValue(row, col, data[row][setting.header[col].dataCode], ch);
                     sheet.setTag(row, 0, data[row].ID, ch);
-                    if(typeof setting.owner === 'undefined'){
+                    if(typeof setting.owner !== 'undefined' && setting.owner !== 'gljComponent'){
                         sheet.getCell(row, 0, GC.Spread.Sheets.SheetArea.viewport).locked(true);
                     }
                 }

+ 2 - 0
web/maintain/bills_lib/html/tezheng.html

@@ -289,6 +289,7 @@
                     selectedId = itemId;
                     if(valueArr){
                         setSheet.setMaxRowCount(valueSheet, valueArr);
+                        console.log(valueArr);
                         tools.reshowValue(valueSheet, valueArr, eigenValueSetting, true);
                     }
                     orgValue = valueSheet.getValue(0, 0);
@@ -384,6 +385,7 @@
         function pasteValue(sheet, totalItems){
             sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
                 valueDatas = tools.getsheetDatas(sheet, 'total');
+                console.log(valueDatas);
                 let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
                 //复制的列数超过正确的列数,不可复制
                 if(maxCol >= eigenValueSetting.cols.length){

+ 23 - 20
web/maintain/bills_lib/scripts/db_controller.js

@@ -1650,10 +1650,10 @@ var jobsController = {
     editData: function(controller, sheet, totalJobs, setting){
         let me = jobsController;
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
-           me.currentEditData = sheet.getValue(args.row, args.col) + '';
+           me.currentEditData = sheet.getValue(args.row, args.col);
         });
         sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args) {
-            var field, newData = args.editingText + '', id = sheet.getTag(args.row, args.col);
+            var field, newData = args.editingText, id = sheet.getTag(args.row, args.col);
             setting.cols.forEach(function (col, idx) {
                 if (args.col === idx) {
                     field = col.data.field;
@@ -1681,7 +1681,7 @@ var jobsController = {
                 }
             }
             else {
-                sheet.getCell(args.row, args.col).value(me.currentEditData + '');
+                sheet.getCell(args.row, args.col).value(me.currentEditData ? me.currentEditData : '');
             }
         });
     },
@@ -1865,10 +1865,10 @@ var itemsController = {
     editData: function(controller, sheet, totalItems, setting){
         let me = itemsController;
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
-            me.currentEditData = sheet.getValue(args.row, args.col) + '';
+            me.currentEditData = sheet.getValue(args.row, args.col);
         })
         sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args) {
-            var field, newData = args.editingText + '', id = sheet.getTag(args.row, args.col);
+            var field, newData = args.editingText, id = sheet.getTag(args.row, args.col);
             setting.cols.forEach(function (col, idx) {
                 if (args.col === idx) {
                     field = col.data.field;
@@ -1896,7 +1896,7 @@ var itemsController = {
                 }
             }
             else {
-                sheet.getCell(args.row, args.col).value(me.currentEditData + '');
+                sheet.getCell(args.row, args.col).value(me.currentEditData ? me.currentEditData : '');
             }
         });
     },
@@ -2056,22 +2056,25 @@ var valueController = {
     editData: function(totalItems, sheet, setting){
         let me = valueController;
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
-            me.currentEditData = sheet.getValue(args.row, args.col) + '';
+            me.currentEditData = sheet.getValue(args.row, args.col);
+            console.log(me.currentEditData)
         })
         sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args){
-            var newValue = args.editingText + '', tagId = sheet.getTag(args.row, args.col), field, isRepeat;
+            var newValue = args.editingText, tagId = sheet.getTag(args.row, args.col), field, isRepeat;
             setting.cols.forEach(function(col, colIdx){
                 if(args.col === colIdx){
                     field = col.data.field;
                 }
             });
+            console.log(newValue);
             if(selectedId && newValue!== me.currentEditData){
+                console.log(`enter`);
                 isRepeat = tools.isRepeat(valueController.getValues(totalItems, selectedId), field, newValue, 'document');
                 if(!tagId && !isRepeat && newValue){//create
-                        valueController.createValue(sheet, totalItems, selectedId, field, newValue);
+                        valueController.createValue(sheet, totalItems, selectedId, field, newValue, args);
                 }
                 else if(tagId && !isRepeat){//update
-                        valueController.updateValue(userAccount, totalItems, tagId, newValue, field);
+                        valueController.updateValue(userAccount, totalItems, tagId, newValue, field, args);
                 }
                 if(isRepeat){
                     if(tagId && newValue){
@@ -2083,11 +2086,11 @@ var valueController = {
                 }
             }
             else{
-                sheet.getCell(args.row, args.col).value(me.currentEditData + '');
+                sheet.getCell(args.row, args.col).value(me.currentEditData ? me.currentEditData : '');
             }
         });
     },
-    createValue: function(sheet, totalItems, id, field, newValue){
+    createValue: function(sheet, totalItems, id, field, newValue, args){
         var newData;
         if(field === 'value'){
             var newCode = valueController.getCode(totalItems, id);
@@ -2095,7 +2098,7 @@ var valueController = {
             tools.reSetCell(sheet, sheet.getActiveRowIndex(), 0, newCode, newCode);
         }
         else {
-            if(typeof newValue === 'number'){
+            if(!isNaN(newValue)){
                 newData = {code: newValue, value: ''};
                 tools.reSetCell(sheet, sheet.getActiveRowIndex(), null, null, newValue);
             }
@@ -2109,7 +2112,7 @@ var valueController = {
         valueDatas = tools.getsheetDatas(sheet, 'total');
     },
 
-    updateValue: function(totalItems, tagId, newData, field){
+    updateValue: function(totalItems, tagId, newData, field, args){
         var updateData = {code: tagId, newData: newData, field: field};
         var itemVals = totalItems.findItem(selectedId).data.itemValue;
         if(field === 'value'){
@@ -2185,10 +2188,10 @@ var totalJobsController = {
     eiditData: function(totalJobs, sheet, setting){
         let me = totalJobsController;
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
-            me.currentEditData = sheet.getValue(args.row, args.col) + '';
+            me.currentEditData = sheet.getValue(args.row, args.col);
         })
         sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args){
-            var newData = args.editingText + '', tagId = sheet.getTag(args.row, args.col), field, isRepeat;
+            var newData = args.editingText, tagId = sheet.getTag(args.row, args.col), field, isRepeat;
             setting.cols.forEach(function(col, colIdx){
                 if(args.col === colIdx){
                     field = col.data.field;
@@ -2207,7 +2210,7 @@ var totalJobsController = {
                 }
             }
             else{
-                sheet.getCell(args.row, args.col).value(me.currentEditData + '');
+                sheet.getCell(args.row, args.col).value(me.currentEditData ? me.currentEditData : '');
             }
         });
     },
@@ -2273,10 +2276,10 @@ var totalItemsController = {
     eiditData: function(totalItems, sheet, setting){
         let me = totalItemsController;
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
-            me.currentEditData = sheet.getValue(args.row, args.col) + '';
+            me.currentEditData = sheet.getValue(args.row, args.col);
         });
         sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args){
-            var newData = args.editingText + '', tagId = sheet.getTag(args.row, args.col), field, isRepeat;
+            var newData = args.editingText, tagId = sheet.getTag(args.row, args.col), field, isRepeat;
             setting.cols.forEach(function(col, colIdx){
                 if(args.col === colIdx){
                     field = col.data.field;
@@ -2295,7 +2298,7 @@ var totalItemsController = {
                 }
             }
             else{
-                sheet.getCell(args.row, args.col).value(me.currentEditData + '');
+                sheet.getCell(args.row, args.col).value(me.currentEditData ? me.currentEditData : '');
             }
         });
     },

+ 1 - 0
web/maintain/ration_repository/dinge.html

@@ -499,6 +499,7 @@
         <script type="text/javascript" src="/web/maintain/ration_repository/js/section_tree.js"></script>
         <script type="text/javascript" src="/public/web/ztree_common.js"></script>
         <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
+        <script type="text/javascript" src="/web/maintain/ration_repository/js/rationUnits.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration_glj.js"></script>
         <script type="text/javascript" src="/public/web/sheet/sheet_creater.js"></script>

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

@@ -54,7 +54,7 @@ $(function () {
                 $("#renameText").val('');
             }
             else if(dispNameArr.indexOf(newName) !== -1){
-                alert("该工料机库已存在!");
+                alert("该定额库已存在!");
                 $("#renameText").val('');
             }
             else{

+ 39 - 12
web/maintain/ration_repository/js/ration.js

@@ -45,7 +45,6 @@ var rationOprObj = {
         let rationRepId = getQueryString("repository");
         var me = rationOprObj;
         let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
-        console.log(gljLibID);
         if(!gljLibID || typeof gljLibID === 'undefined' || gljLibID == -1){
             alert("没有引用工料机库!");
             window.location.href = "/rationRepository/main";
@@ -186,6 +185,7 @@ var rationOprObj = {
                 }
             }
             if(updateArr.length > 0 || removeArr.length > 0){
+                me.mixUpdate = 1;
                 me.mixUpdateRequest(updateArr, [], removeArr);
             }
 
@@ -296,19 +296,29 @@ var rationOprObj = {
             updateArr = [], addArr = [];
         let dataCode = me.setting.header[args.col].dataCode;
         me.editingRowIdx = args.row;
+        console.log(rObj);
         if (me.currentEditingRation["ID"]) {
             rObj["ID"] = me.currentEditingRation["ID"];
-            //updateArr.push(rObj);
-            for(let col =0; col< me.setting.header.length; col++){
-                if(me.currentEditingRation[me.setting.header[col].dataCode] !== rObj[me.setting.header[col].dataCode]){
+                if(me.currentEditingRation[dataCode] !== rObj[dataCode]){
                     me.addRationItem = rObj;
-                    if(rObj[me.setting.header[0].dataCode]){
+                    if(dataCode === 'code'){
+                        if(me.rationsCodes.indexOf(rObj.code) === -1){
+                            me.rationsCodes.splice(me.rationsCodes.indexOf(rObj.code), 1);
+                            me.rationsCodes.push(rObj.code);
+                            updateArr.push(rObj);
+                        }
+                        else{
+                            alert("编码已存在!");
+                            args.sheet.setValue(args.row, args.col, me.currentEditingRation[dataCode]);
+
+                        }
+                    }
+                    else{
                         updateArr.push(rObj);
-                        break;
                     }
                 }
-            }
-        } else if(!me.currentEditingRation["ID"]) {
+        }
+        else if(!me.currentEditingRation["ID"]) {
             if (!sheetCommonObj.chkIfEmpty(rObj, me.setting)) {
                 //addArr.push(rObj);
                 me.addRationItem = rObj;
@@ -318,7 +328,11 @@ var rationOprObj = {
                         me.rationsCodes.push(rObj.code);
                         me.addRationItem = null;
                     }
-                    else if(!rObj.code && rObj.code === ''){
+                    else{
+                        alert('编码已存在!');
+                        me.workBook.getSheet(0).setValue(args.row, args.col, '');
+                    }
+                    /*else if(!rObj.code && rObj.code === ''){
                         $('#alertModalBtn').click();
                         me.workBook.getSheet(0).options.isProtected = true;
                         $('#alertModalCls').click(function () {
@@ -333,7 +347,7 @@ var rationOprObj = {
                             me.workBook.getSheet(0).setValue(args.row, args.col, '');
                             me.workBook.getSheet(0).setActiveCell(args.row, args.col);
                         });
-                    }
+                    }*/
                 }
                 else if(rObj.code && rObj.code.trim().length === 0){
                     me.workBook.getSheet(0).setValue(args.row, args.col, '');
@@ -342,6 +356,7 @@ var rationOprObj = {
         }
         if (updateArr.length > 0 || addArr.length > 0) {
             me.currentEditingRation = null;
+            me.mixUpdate = 1;
             me.mixUpdateRequest(updateArr, addArr, []);
         }
     },
@@ -408,6 +423,7 @@ var rationOprObj = {
             me.showRationItems(me.currentSectionId);
         }*/
          if (updateArr.length > 0 || addArr.length > 0) {
+             me.mixUpdate = 1;
             me.mixUpdateRequest(updateArr, addArr, []);
         }
     },
@@ -446,8 +462,8 @@ var rationOprObj = {
                         else if (a.code < b.code) rst = -1;
                         return rst;
                     });
-                    me.mixUpdate = 1;
                     me.showRationItems(me.currentSectionId);
+                    me.mixUpdate = 0;
                     me.workBook.getSheet(0).setActiveCell(me.activeCell.row, me.activeCell.col);
                 }
             },
@@ -499,6 +515,16 @@ var rationOprObj = {
             }
         }
     },
+    setCombo: function (sheet, items) {
+        sheet.suspendPaint();
+        for(let i = 0, len = sheet.getRowCount(); i < len; i++){
+            let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
+            combo.items(items);
+            combo.itemHeight(10);
+            sheet.getCell(i, 2).cellType(combo);
+        }
+        sheet.resumePaint();
+    },
     showRationItems: function(sectionID){
         var me = rationOprObj;
         if (me.workBook) {
@@ -506,7 +532,8 @@ var rationOprObj = {
                 var cacheSection = me.currentRations["_SEC_ID_" + sectionID];
                 sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
                 sheetCommonObj.showData(me.workBook.getSheet(0), me.setting, cacheSection);
-
+                //combo
+                me.setCombo(me.workBook.getActiveSheet(), rationUnits);
                 if(me.mixUpdate === 1){
                     rationGLJOprObj.getGljItems(cacheSection[cacheSection.length - 1], function () {
                         me.workBook.focus(true);

+ 49 - 0
web/maintain/ration_repository/js/rationUnits.js

@@ -0,0 +1,49 @@
+/**
+ * Created by Zhong on 2017/9/8.
+ * 定额列表单位下拉表
+ */
+let rationUnits =[
+    'm',
+    'km',
+    'm2',
+    'm3',
+    'kg',
+    't',
+    '10m',
+    '10m2',
+    '10m3',
+    '100m',
+    '100m2',
+    '100m3',
+    '1000m2',
+    '1000m3',
+    'à·km',
+    '总额',
+    '月',
+    '项',
+    '处',
+    '个',
+    '根',
+    '棵',
+    '块',
+    '每一试桩',
+    '桥长米',
+    '公路公里',
+    '株',
+    '组',
+    '座',
+    '元',
+    '工日',
+    '套',
+    '台班',
+    '艘班',
+    'm/处',
+    'm/道',
+    'm/座',
+    'm2/m',
+    'm3/m',
+    'm3/处',
+    '根/米',
+    '亩',
+    'm3/m2'
+];

+ 41 - 22
web/maintain/ration_repository/js/ration_glj.js

@@ -11,14 +11,15 @@ var rationGLJOprObj = {
         header:[
             {headerName:"编码",headerWidth:120,dataCode:"code", dataType: "String", formatter: "@"},
             {headerName:"名称",headerWidth:400,dataCode:"name", dataType: "String"},
+            {headerName:"规格",headerWidth:120,dataCode:"specs", dataType: "String"},
             {headerName:"单位",headerWidth:160,dataCode:"unit", dataType: "String"},
-            {headerName:"基价单",headerWidth:160, dataCode:"basePrice", dataType: "Number", formatter:"0.00",  precision: 2},
+            {headerName:"基价单",headerWidth:160, dataCode:"basePrice", dataType: "Number", formatter:"0.00",  precision: 2},
             {headerName:"定额消耗",headerWidth:160, dataCode:"consumeAmt", dataType: "Number", formatter: "0.000", precision: 3},
             {headerName:"类型",headerWidth:160,dataCode:"gljType", dataType: "String"}
         ],
         view:{
             comboBox:[],
-            lockColumns:[1,2,3,5]
+            lockColumns:[1,2,3,4,6]
         }
     },
     getDistTypeTree: function (gljDistType) {
@@ -177,9 +178,14 @@ var rationGLJOprObj = {
             let gljLibId = storageUtil.getSessionCache("gljLib", "repositoryID_" + repId);
             if(gljLibId){
                 if (info.cellRange.col == 0) {
+                    let cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
                     var tmpCodes = sheetCommonObj.analyzePasteData({header:[{dataCode: "code"}] }, info);
                     var codes = [];
                     for (var i = 0; i < tmpCodes.length; i++) {
+                        let rowIdx = info.cellRange.row + i;
+                        if(rowIdx < cacheArr.length){//更新
+                            cacheArr.splice(rowIdx--, 1);
+                        }
                         codes.push(tmpCodes[i].code);
                     }
                     me.addGljItems(codes, gljLibId, info.cellRange);
@@ -215,8 +221,8 @@ var rationGLJOprObj = {
     },
     onCellEditEnd: function(sender, args){
         var me = rationGLJOprObj;
+        var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
         if (args.col != 0) {
-            var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
             if (args.row < cacheArr.length) {
                 var editGlj = cacheArr[args.row];
                 if (editGlj["consumeAmt"] != args.editingText) {
@@ -243,26 +249,36 @@ var rationGLJOprObj = {
                 }
             }
         } else {
-            //重新更新工料机
-            /*if (args.editingText == null || args.editingText.trim() == "") {
-                //delete
-                if (me.cache["_GLJ_" + me.currentRationItem.ID]) {
-                    var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
-                    if (args.row < cacheArr.length) {
-                        cacheArr.splice(args.row, 1);
-                        me.updateRationItem();
-                        sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
-                        me.showGljItems(me.currentRationItem.ID);
+            if(args.editingText && args.editingText.trim().length !== 0){
+                let isExist = false;
+                for(let i = 0, len = cacheArr.length; i < len; i++){
+                    if(cacheArr[i].code === args.editingText && i !== args.row){
+                        isExist = true;
+                        break;
                     }
                 }
-            } else*/
-            if(args.editingText !== null && args.editingText.trim().length !== 0){
-                let rationRepId = storageUtil.getSessionCache("RationGrp","repositoryID");
-                let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
-                if (gljLibID) {
-                    var codes = [];
-                    codes.push(args.editingText.trim());
-                    me.addGljItems(codes, gljLibID, args);
+                if(isExist){
+                    alert("该工料机已存在!");
+                    args.sheet.setValue(args.row, args.col, typeof cacheArr[args.row] !== 'undefined' ? cacheArr[args.row].code + '' : '');
+                }
+                else{
+                    if(args.row < cacheArr.length && args.editingText !== cacheArr[args.row].code){//更新
+                        cacheArr.splice(args.row, 1);
+                        let rationRepId = storageUtil.getSessionCache("RationGrp","repositoryID");
+                        let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
+                        let codes = [];
+                        codes.push(args.editingText.trim());
+                        me.addGljItems(codes, gljLibID, args);
+                    }
+                    else if(args.row >= cacheArr.length){//新增
+                            let rationRepId = storageUtil.getSessionCache("RationGrp","repositoryID");
+                            let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
+                            if (gljLibID) {
+                                var codes = [];
+                                codes.push(args.editingText.trim());
+                                me.addGljItems(codes, gljLibID, args);
+                            }
+                    }
                 }
             }
         }
@@ -461,7 +477,6 @@ var rationGLJOprObj = {
                 cache:false,
                 timeout:5000,
                 success:function(result){
-                    console.log(result);
                     sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                     if (result) {
                         var cacheArr = [];
@@ -502,6 +517,10 @@ var rationGLJOprObj = {
         var me = this;
         if (me.cache["_GLJ_" + rationID]) {
             sheetCommonObj.showData(me.sheet, me.setting, me.cache["_GLJ_" + rationID], me.distTypeTree);
+            //lock
+            for(let i = 0, len = me.sheet.getRowCount(); i < len; i++){
+                me.sheet.getCell(i, 4).locked(true);
+            }
         }
     }
 }

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

@@ -34,7 +34,7 @@ let repositoryGljObj = {
     componentGljType: [201, 302, 303],//可成为组成物的工料机类型: 普通材料、 机械组成物、 机上人工
     distTypeTree: null,//add
     setting: {
-
+        owner: "glj",
         header:[
             {headerName:"编码",headerWidth:120,dataCode:"code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
             {headerName:"名称",headerWidth:260,dataCode:"name", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
@@ -1199,4 +1199,6 @@ let gljTypeTreeOprObj = {
         $("#addBtn_"+treeNode.tId).unbind().remove();
     }
 
-}
+};
+
+//export {repositoryGljObj};//测试用