瀏覽代碼

三材类别 String to Number

zhongzewei 7 年之前
父節點
當前提交
baf76f3099

+ 1 - 1
modules/all_models/stdGlj_glj.js

@@ -28,7 +28,7 @@ const std_glj = new Schema({
     unit: String,
     adjCoe: Number,
     component: [std_gljComponent],
-    materialType: String, //三材类型
+    materialType: Number, //三材类型:钢材1、钢筋2、木材3、水泥4、标准砖5
     materialCoe: Number //三材系数
 },{versionKey: false});
 

+ 18 - 1
web/maintain/std_glj_lib/html/gongliao.html

@@ -34,7 +34,7 @@
         </nav>
     </div>
     <div class="main">
-        <div class="content">
+        <div class="content" style="z-index: 700">
             <div class="container-fluid">
                 <div class="row">
                     <!--org 3:7:2-->
@@ -140,6 +140,23 @@
         </div>
     </div>
 
+    <div class="modal fade" id="loading" data-backdrop="static">
+        <div class="modal-dialog text-center" role="document" style="margin-top:30%">
+            <div class="text-white">
+                <i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>
+                <span class="sr-only">Loading...</span>
+            </div>
+        </div>
+    </div>
+    <div class="modal fade" id="loadingx" data-backdrop="static">
+        <div class="modal-dialog text-center" role="document" style="margin-top:30%">
+            <div class="text-white">
+                <i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>
+                <span class="sr-only">Loading...</span>
+            </div>
+        </div>
+    </div>
+
     <!-- JS. -->
     <script src="/lib/jquery/jquery.min.js"></script>
     <script src="/lib/jquery-contextmenu/jquery.contextMenu.min.js"></script>

+ 44 - 37
web/maintain/std_glj_lib/js/glj.js

@@ -41,7 +41,10 @@ let repositoryGljObj = {
     gljList: [],
     allowComponent: [202, 203, 204, 301, 4],//可带组成物类型:混凝土、砂浆、配合比、机械台班
     componentGljType: [201, 302, 303, 4],//可成为组成物的工料机类型: 普通材料、 机械组成物、 机上人工
-    materialType: ['钢材', '木材', '水泥', '钢筋', '标准砖'],//三材类别
+    //materialType: ['钢材', '木材', '水泥', '钢筋', '标准砖'],//三材类型:钢材1、钢筋101、木材2、水泥3、标准砖4
+    materialType: {textArr: ['钢材', '钢筋', '木材', '水泥', '标准砖'], comboItems: [{text: '钢材', value: 1}, {text: '钢筋', value: 2},{text: '木材', value: 3},//三材类型:钢材1、钢筋101、木材2、水泥3、标准砖4
+         {text: '水泥', value: 4}, {text: '标准砖', value: 5}]},
+    materialTypeIdx: {'1': '钢材', '2': '钢筋', '3': '木材', '4': '水泥', '5': '标准砖'},
     distTypeTree: null,//add
     setting: {
         owner: "glj",
@@ -190,9 +193,9 @@ let repositoryGljObj = {
         if (me.workBook) {
             let cacheSection = data;
             sheetCommonObj.cleanData(me.workBook.getSheet(0), me.setting, -1);
-            sheetsOprObj.showData(me.workBook.getSheet(0), me.setting, cacheSection, me.distTypeTree);
+            sheetsOprObj.showData(me.workBook.getSheet(0), me.setting, cacheSection, me.distTypeTree, me.materialTypeIdx);
             sheetCommonObj.setDynamicCombo(me.workBook.getActiveSheet(), 0, 5, me.workBook.getActiveSheet().getRowCount(), me.distTypeTree.comboDatas, false, 'text');
-            sheetCommonObj.setDynamicCombo(me.workBook.getActiveSheet(), 0, 7, me.workBook.getActiveSheet().getRowCount(), me.materialType, false, 'text');
+            sheetCommonObj.setDynamicCombo(me.workBook.getActiveSheet(), 0, 7, me.workBook.getActiveSheet().getRowCount(), me.materialType.comboItems, false, 'text');
             cacheSection = null;
         }
     },
@@ -425,11 +428,13 @@ let repositoryGljObj = {
         }
     },
     onCellEditEnd: function(sender, args) {
+        console.log(args);
         let me = repositoryGljObj, that = gljComponentOprObj,
             rObj = sheetsOprObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
             updateArr = [], addArr = [], updateBasePrcArr = [];
         me.editingRowIdx = args.row;
         rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
+        console.log(rObj);
         //更新
         if (me.currentEditingGlj["ID"] && me.currentGlj) {
             rObj["ID"] = me.currentEditingGlj["ID"];
@@ -666,7 +671,8 @@ let repositoryGljObj = {
             that = gljComponentOprObj,
             tempObj = me.currentCache[rowIdx],
             reCalBasePrc = false,
-            isValid = true;
+            isValid = true,
+            materialTypeValid = true;
         //备份原始数据
         for(let atr in tempObj){
             backUpObj[atr] = tempObj[atr];
@@ -701,13 +707,14 @@ let repositoryGljObj = {
             let isExsit = false;
             for(let i = 0; i < me.distTypeTree.comboDatas.length; i++){
                 if(pasteObj.gljType === me.distTypeTree.comboDatas[i].text){
+                    pasteObj.gljType = me.distTypeTree.comboDatas[i].value;
                     isExsit = true;
                     reCalBasePrc = true;
                     //调整系数
-                    if(me.distTypeTree.comboDatas[i].value !== 1 && me.distTypeTree.comboDatas[i].value !== 303){
+                    if(pasteObj.gljType !== 1 && pasteObj.gljType !== 303){
                         tempObj.adjCoe = null;
                     }
-                    else if((me.distTypeTree.comboDatas[i].value === 1 || me.distTypeTree.comboDatas[i].value === 303) && typeof pasteObj.adjCoe !== 'undefined' && !isNaN(pasteObj.adjCoe) && pasteObj.adjCoe % 1 === 0) {
+                    else if((pasteObj.gljType === 1 || pasteObj.gljType === 303) && typeof pasteObj.adjCoe !== 'undefined' && !isNaN(pasteObj.adjCoe) && pasteObj.adjCoe % 1 === 0) {
                         tempObj.adjCoe = pasteObj.adjCoe;
                     }
                     if(me.componentGljType.indexOf(tempObj.gljType) !== -1 &&
@@ -723,11 +730,11 @@ let repositoryGljObj = {
                             }
                         }
                     }
-                    tempObj.component = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.component : [];
+                    tempObj.component = tempObj.gljType === pasteObj.gljType ? tempObj.component : [];
                     /*if(me.allowComponent.indexOf(tempObj.gljType) !== -1){//更改成可含组成物的工料机类型,定额价设置为零
                         tempObj.basePrice = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.basePrice : 0;
                     }*/
-                    tempObj.gljType = me.distTypeTree.comboDatas[i].value;
+                    tempObj.gljType = pasteObj.gljType;
                     tempObj.shortName = me.distTypeTree.distTypes[me.distTypeTree.prefix + tempObj.gljType].data.shortName;
                     break;
                 }
@@ -762,15 +769,23 @@ let repositoryGljObj = {
             }
         }
         if(typeof pasteObj.materialType !== 'undefined'){
-            if(!me.materialType.includes(pasteObj.materialType)){
+            if(!me.materialType.textArr.includes(pasteObj.materialType)){
                 isValid = false;
+                materialTypeValid = false;
             }
             else {
-                tempObj.materialType = pasteObj.materialType;
+                me.materialType.comboItems.forEach(function (item) {
+                   if(item.text === pasteObj.materialType){
+                       tempObj.materialType = item.value;
+                   }
+                });
             }
         }
         if(typeof pasteObj.materialCoe !== 'undefined'){
-            if(isNaN(pasteObj.materialCoe) || (!tempObj.materialType && !pasteObj.materialType)){
+            if(isNaN(pasteObj.materialCoe) ||
+                (!tempObj.materialType && (!pasteObj.materialType || !me.materialType.textArr.includes(pasteObj.materialType)))){
+                tempObj.materialType = '';
+                tempObj.materialCoe = null;
                 isValid = false;
             }
             else{
@@ -827,9 +842,16 @@ let repositoryGljObj = {
             }
         }
         if(pasteObj.materialType){
-            if(!me.materialType.includes(pasteObj.materialType)){
+            if(!me.materialType.textArr.includes(pasteObj.materialType)){
                 return false;
             }
+            else {
+                me.materialType.comboItems.forEach(function (item) {
+                    if(item.text === pasteObj.materialType){
+                        pasteObj.materialType = item.value;
+                    }
+                });
+            }
         }
         if(pasteObj.materialCoe){
             if(isNaN(pasteObj.materialCoe) || !pasteObj.materialType){
@@ -902,9 +924,6 @@ let repositoryGljObj = {
                         updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
                     }
                 }
-                else{
-                    resumeArr.push(info.cellRange.row + i);
-                }
             }
         }
         else if(beginRow <= maxRow && endRow > maxRow){
@@ -917,9 +936,6 @@ let repositoryGljObj = {
                         updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
                     }
                 }
-                else{
-                    resumeArr.push(info.cellRange.row + i);
-                }
             }
             //if(info.cellRange.colCount === me.setting.header.length){
             if(info.cellRange.colCount >= me.setting.header.length - 3 && info.cellRange.colCount <= me.setting.header.length){
@@ -932,14 +948,6 @@ let repositoryGljObj = {
                         }*/
                         addArr.push(items[i]);
                     }
-                    else{
-                        resumeArr.push(info.cellRange.row + i);
-                    }
-                }
-            }
-            else{
-                for(let i = updateCount ; i < items.length; i++){
-                    resumeArr.push(info.cellRange.row + i);
                 }
             }
         }
@@ -954,29 +962,28 @@ let repositoryGljObj = {
                         }*/
                         addArr.push(items[i]);
                     }
-                    else{
-                        resumeArr.push(info.cellRange.row + i);
-                    }
-                }
-            }
-            else{
-                for(let i = 0; i < items.length; i++){
-                    resumeArr.push(info.cellRange.row + i);
                 }
             }
         }
         //repaint
+        for(let i = 0; i < info.cellRange.rowCount; i++){
+            resumeArr.push(info.cellRange.row + i);
+        }
         if(resumeArr.length > 0){
             info.sheet.suspendPaint();
             for(let i = 0; i < resumeArr.length ; i++){
                 if(resumeArr[i] < me.currentCache.length){
                     for(let col = 0; col < me.setting.header.length; col++){
-                        if(me.setting.header[col].dataCode === 'gljType'){
-                            let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
+                        let dCode = me.setting.header[col].dataCode;
+                        if(dCode === 'gljType'){
+                            let gljType = me.currentCache[resumeArr[i]][dCode];
                             info.sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
                         }
+                        else if(dCode === 'materialType'){
+                            info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][dCode] ? me.materialTypeIdx[me.currentCache[resumeArr[i]][dCode]]: '');
+                        }
                         else{
-                            info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
+                            info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][dCode]);
                         }
                     }
                 }

+ 5 - 0
web/maintain/std_glj_lib/js/gljComponent.js

@@ -362,6 +362,7 @@ let gljComponentOprObj = {
             component = that.currentGlj.component, newComponent = [], concatComponent = [], isChange = false, updateBasePrc = [];
         let items = sheetCommonObj.analyzePasteData(me.setting, info);
         let gljCache = that.gljList;
+        let resumeArr = [];
         if(info.cellRange.col === 0){
             for(let i = 0; i < items.length; i++){
                 let existCode = false;
@@ -475,6 +476,10 @@ let gljComponentOprObj = {
                 that.updateRationBasePrcRq(updateBasePrc);
             }
         }
+        else {
+            sheetCommonObj.cleanData(me.workBook.getSheet(0), me.setting, -1);
+            sheetsOprObj.showData(me.workBook.getSheet(0), me.setting, that.currentComponent);
+        }
     },
     updateComponent: function (updateArr) {
         let me = gljComponentOprObj, that = repositoryGljObj;

+ 13 - 1
web/maintain/std_glj_lib/js/sheetsOpr.js

@@ -22,7 +22,7 @@ let sheetsOprObj = {
             area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
         }
     },
-    showData: function(sheet, setting, data, distTypeTree) {
+    showData: function(sheet, setting, data, distTypeTree, materialTypeIdx) {
         var me = this, ch = GC.Spread.Sheets.SheetArea.viewport;
         sheet.suspendPaint();
         sheet.suspendEvent();
@@ -50,6 +50,9 @@ let sheetsOprObj = {
                     let distTypeVal =  distTypeTree.distTypes[distTypeTree.prefix + data[row].gljType].data.fullName;
                     sheet.setValue(row, col, distTypeVal, ch);
                 }
+                else if(setting.header[col].dataCode === 'materialType' && data[row].materialType){
+                    sheet.setValue(row, col, materialTypeIdx[data[row].materialType]);
+                }
                 else if(setting.header[col].dataCode === 'select'){
                     if(data[row].isChecked === true){
                         sheet.getCell(row, col).value(1);
@@ -69,6 +72,8 @@ let sheetsOprObj = {
         var rst = {};
         let comboBoxCellType = sheet.getCellType(row, 5);
         let items = comboBoxCellType.items();
+        let materialTypeCombo = sheet.getCellType(row, 7);
+        let materialItems = materialTypeCombo.items();
         for (var col = 0; col < setting.header.length; col++) {
             if(setting.header[col].dataCode === 'gljType'){
                 items.forEach(function(item){
@@ -80,6 +85,13 @@ let sheetsOprObj = {
                     }
                 });
             }
+            else if(setting.header[col].dataCode === 'materialType'){
+                materialItems.forEach(function(item){
+                    if(sheet.getValue(row, col) === item.text){
+                        rst[setting.header[col].dataCode] = item.value;
+                    }
+                });
+            }
             else if (setting.header[col].dataCode === 'code'){
                 if(repositoryGljObj){
                     let gljList = repositoryGljObj.gljList,