فهرست منبع

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

TonyKang 7 سال پیش
والد
کامیت
f39b6be218

+ 3 - 1
modules/all_models/stdGlj_glj.js

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

+ 1 - 2
public/web/PerfectLoad.js

@@ -7,7 +7,7 @@ jQuery.bootstrapLoading = {
         var defaults = {
             opacity: 0.5,
             //loading页面透明度
-           // backgroundColor: "#FFFFFF",
+            // backgroundColor: "#FFFFFF",
             //loading页面背景色
             borderColor: "#bbb",
             //提示边框颜色
@@ -53,7 +53,6 @@ jQuery.bootstrapLoading = {
 
         //监听页面加载状态
         document.onreadystatechange = PageLoaded;
-
         //当页面加载完成后执行
         function PageLoaded() {
             if (document.readyState == "complete") {

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

@@ -13,6 +13,8 @@ var sheetCommonObj = {
         //spreadBook.options.showHorizontalScrollbar = false;
         spreadBook.options.allowUserDragDrop = false;
         spreadBook.options.scrollbarMaxAlign = true;
+        spreadBook.options.allowUndo = false;
+        spreadBook.options.cutCopyIndicatorVisible = false;
         return spreadBook;
     },
 
@@ -43,8 +45,10 @@ var sheetCommonObj = {
         //spreadBook.options.showHorizontalScrollbar = false;
         spreadBook.options.scrollbarMaxAlign = true;
         spreadBook.options.allowCopyPasteExcelStyle = false;
+        spreadBook.options.cutCopyIndicatorVisible = false;
         spreadBook.options.allowExtendPasteRange = true;
         spreadBook.options.allowUserDragDrop = false;
+        spreadBook.options.allowUndo = false;
         var spreadNS = GC.Spread.Sheets;
         var sheet = spreadBook.getSheet(0);
         sheet.suspendPaint();

+ 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>

+ 127 - 76
web/maintain/std_glj_lib/js/glj.js

@@ -41,6 +41,10 @@ let repositoryGljObj = {
     gljList: [],
     allowComponent: [202, 203, 204, 301, 4],//可带组成物类型:混凝土、砂浆、配合比、机械台班
     componentGljType: [201, 302, 303, 4],//可成为组成物的工料机类型: 普通材料、 机械组成物、 机上人工
+    //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",
@@ -52,6 +56,8 @@ let repositoryGljObj = {
             {headerName:"定额价",headerWidth:80,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"},
             {headerName:"类型",headerWidth:90,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"},
             {headerName:"调整系数",headerWidth:60,dataCode:"adjCoe", dataType: "Number", hAlign: "center", vAlign: "center"},
+            {headerName:"三材类别",headerWidth:90,dataCode:"materialType", dataType: "String", hAlign: "center", vAlign: "center"},
+            {headerName:"三材系数",headerWidth:60,dataCode:"materialCoe", dataType: "Number", hAlign: "center", vAlign: "center"},
         ],
         view:{
             comboBox:[
@@ -187,8 +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.comboItems, false, 'text');
             cacheSection = null;
         }
     },
@@ -330,7 +337,10 @@ let repositoryGljObj = {
     },
     onEnterCell: function (sender, args) {
         let me = repositoryGljObj;
-        if(me.setting.header[args.col].dataCode === 'gljType' || me.setting.header[me.lastCol].dataCode === 'gljType'){
+        let thisDataCode = me.setting.header[args.col].dataCode,
+            lastDataCode = me.setting.header[me.lastCol].dataCode;
+        if(thisDataCode === 'gljType' || lastDataCode === 'gljType'
+            || thisDataCode === 'materialType' || lastDataCode === 'materialType'){
             args.sheet.repaint();
         }
         me.cellRowIdx = args.row;
@@ -400,10 +410,12 @@ let repositoryGljObj = {
         me.currentEditingGlj = rObj;
         me.orgCode = me.workBook.getSheet(0).getValue(args.row, 0);
         if(args.row < me.currentCache.length){
+            let dataCode = me.setting.header[args.col].dataCode;
             me.currentGlj = me.currentCache[args.row];
-            if(args.col === 0 || (args.col === 4 && me.allowComponent.indexOf(me.currentGlj.gljType) !== -1
+            if(dataCode === 'code' || (dataCode === 'basePrice' && me.allowComponent.indexOf(me.currentGlj.gljType) !== -1
                 && me.currentGlj.component.length > 0)
-                || (args.col === 6 && me.currentGlj.gljType !== 1 && me.currentGlj.gljType !== 303)){
+                || (dataCode === 'adjCoe' && me.currentGlj.gljType !== 1 && me.currentGlj.gljType !== 303)
+                || (dataCode === 'materialCoe' && !me.currentGlj.materialType)){
                 args.cancel = true;
             }
             else {
@@ -416,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"];
@@ -432,9 +446,9 @@ let repositoryGljObj = {
                             if(me.currentGlj){
                                 me.currentGlj.component = [];
                             }
-                            if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                            /*if(me.allowComponent.indexOf(rObj.gljType) !== -1){//更改成可添加组成物的类型,则将定额价设成零
                                 rObj.basePrice = 0;
-                            }
+                            }*/
                             //调整系数,工料机类型为人工和机上人工时,可输入整数
                             if((me.currentEditingGlj.gljType === 1 || me.currentEditingGlj.gljType === 303) && !(rObj.gljType === 1 || rObj.gljType === 303)){
                                 rObj.adjCoe = null;
@@ -462,6 +476,14 @@ let repositoryGljObj = {
                             }
 
                         }
+                        else if(rObj.materialCoe !== me.currentEditingGlj.materialCoe){
+                            if(isNaN(rObj.materialCoe)){
+                                args.sheet.setValue(args.row, args.col, me.currentEditingGlj.materialCoe ? me.currentEditingGlj.materialCoe : '');
+                                alert('三材系数只能输入数值!');
+                                return;
+                            }
+                            rObj.materialCoe = scMathUtil.roundTo(parseFloat(rObj.materialCoe), -5);
+                        }
                         else if(rObj.basePrice !== me.currentEditingGlj.basePrice){//修改了单价,可修改单价的必为可成为组成物的
                             //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
                             if(isNaN(parseFloat(rObj.basePrice))){
@@ -535,9 +557,9 @@ let repositoryGljObj = {
                     me.addGljObj = null;
                     rObj.component = [];
                     //如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
-                    if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                    /*if(me.allowComponent.indexOf(rObj.gljType) !== -1){
                         rObj.basePrice = 0;
-                    }
+                    }*/
                     rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? scMathUtil.roundTo(parseFloat(rObj.basePrice), -2) : 0;
                     addArr.push(rObj);
                 }
@@ -586,52 +608,47 @@ let repositoryGljObj = {
                     }
                     else{
                         let maxCol = sels[i].col + sels[i].colCount - 1;
-                        if(sels[i].col >= 2 && maxCol <= 4){
-                            for(let j = 0; j < sels[i].rowCount; j++){
-                                if(sels[i].row + j < cacheSection.length){
-                                    let updateObj = cacheSection[sels[i].row + j];
-                                    for(let col = sels[i].col; col <= maxCol; col++){
-                                        if(me.setting.header[col].dataCode === 'basePrice'){
-                                            //如果类型不为混凝土、砂浆、配合比、机械,才可删除单价 basePrice = 0
-                                            if(me.allowComponent.indexOf(updateObj.gljType) === -1){
+                        let cantNullDataCode = ['code', 'name', 'gljType'];
+                        for(let j = 0; j < sels[i].rowCount; j++){
+                            if(sels[i].row + j < cacheSection.length){
+                                let updateObj = cacheSection[sels[i].row + j];
+                                for(let col = sels[i].col; col <= maxCol; col++){
+                                    let dataCode = me.setting.header[col].dataCode;
+                                    if(cantNullDataCode.includes(dataCode)){
+                                        $('#alertText').text(me.setting.header[col].headerName + "不可为空!");
+                                        $('#codeAlert').modal('show');
+                                        return false;
+                                    }
+                                    else {
+                                        if(dataCode === 'basePrice'){
+                                            //如果类型不为混凝土、砂浆、配合比、机械、主材且无组成物,才可删除单价 basePrice = 0
+                                            if(me.allowComponent.indexOf(updateObj.gljType) === -1 ||
+                                                (me.allowComponent.indexOf(updateObj.gljType) !== -1 && updateObj.component.length === 0)){
                                                 canUpdate = true;
-                                                updateObj[me.setting.header[col].dataCode] = 0;
+                                                updateObj[dataCode] = 0;
                                                 updateBasePrcArr.push({gljId: updateObj.ID, gljType: updateObj.gljType, basePrice: 0});
                                             }
                                         }
                                         else{
+                                            if(dataCode === 'materialType'){
+                                                updateObj['materialCoe'] = null;
+                                            }
                                             canUpdate = true;
-                                            updateObj[me.setting.header[col].dataCode] = '';
+                                            updateObj[dataCode] = '';
                                         }
                                     }
-                                    if(canUpdate){
-                                        updateArr.push(updateObj);
-                                    }
                                 }
-                            }
-                        }
-                        //编号、名称、类型不可为空
-                        else{
-                            if(sels[i].row < cacheSection.length){
-                                let text = '', cantNullStr =['编码', '名称', '类型'];
-                                for(let col = sels[i].col; col <= sels[i].col + sels[i].colCount -1; col++){
-                                    if(cantNullStr.indexOf(me.setting.header[col].headerName) !== -1){
-                                        text += me.setting.header[col].headerName + " ";
-                                    }
+                                if(canUpdate){
+                                    updateArr.push(updateObj);
                                 }
-                                $('#alertText').text(text + "不可为空!");
-                                $('#codeAlertBtn').click();
-                                $('#codAleConfBtn').click(function () {
-                                });
-                                $('#codAleClose').click(function () {
-                                });
                             }
                         }
                     }
                 }
                 if(removeArr.length > 0 || updateArr.length > 0){
                     //删除警告
-                    $('#alertGljTxt').text('可能已有定额引用了当前工料机,导致定额查找不到此工料机。确定要删除吗?');
+                    let upAlertText = removeArr.length > 0 ? '可能已有定额引用了当前工料机,导致定额查找不到此工料机。确定要删除吗?' : '确认删除选中字段?';
+                    $('#alertGljTxt').text(upAlertText);
                     $('#gljAlertBtn').click();
                     //确认
                     $('#aleConfBtn').click(function () {
@@ -654,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];
@@ -689,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 &&
@@ -711,11 +730,11 @@ let repositoryGljObj = {
                             }
                         }
                     }
-                    tempObj.component = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.component : [];
-                    if(me.allowComponent.indexOf(tempObj.gljType) !== -1){
+                    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;
                 }
@@ -749,6 +768,30 @@ let repositoryGljObj = {
                 }
             }
         }
+        if(typeof pasteObj.materialType !== 'undefined'){
+            if(!me.materialType.textArr.includes(pasteObj.materialType)){
+                isValid = false;
+                materialTypeValid = false;
+            }
+            else {
+                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 || !me.materialType.textArr.includes(pasteObj.materialType)))){
+                tempObj.materialType = '';
+                tempObj.materialCoe = null;
+                isValid = false;
+            }
+            else{
+                tempObj.materialCoe = pasteObj.materialCoe !== '' ? scMathUtil.roundTo(parseFloat(pasteObj.materialCoe), -5) : null;
+            }
+        }
         if(isValid){
             rst.updateGlj.push(tempObj);
             if(reCalBasePrc){
@@ -798,6 +841,23 @@ let repositoryGljObj = {
                 return false;
             }
         }
+        if(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){
+                return false;
+            }
+        }
         pasteObj.basePrice = !isNaN(parseFloat(pasteObj.basePrice)) && (pasteObj.basePrice && typeof pasteObj.basePrice !== 'undefined') ? parseFloat(pasteObj.basePrice) : 0;
         if(!me.parentNodeIds["_pNodeId_" + me.gljCurTypeId]){
             pasteObj.gljClass = me.gljCurTypeId;
@@ -836,6 +896,10 @@ let repositoryGljObj = {
     onClipboardPasting: function(sender, args) {
         let me = repositoryGljObj;
         //复制的列数超过正确的列数,不可复制
+        if(me.prevent){
+            args.cancel = true;
+            return;
+        }
         if(!me.canPasted(args)){
             args.cancel = true;
         }
@@ -860,9 +924,6 @@ let repositoryGljObj = {
                         updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
                     }
                 }
-                else{
-                    resumeArr.push(info.cellRange.row + i);
-                }
             }
         }
         else if(beginRow <= maxRow && endRow > maxRow){
@@ -875,66 +936,54 @@ 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 - 1 && info.cellRange.colCount <= me.setting.header.length){
+            if(info.cellRange.colCount >= me.setting.header.length - 3 && info.cellRange.colCount <= me.setting.header.length){
                 for(let i = updateCount ; i < items.length; i++){
                     if(me.isValidObj(items[i])){
                         items[i].component = [];
                         //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
-                        if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                       /* if(me.allowComponent.indexOf(items[i].gljType) !== -1){
                             items[i].basePrice = 0;
-                        }
+                        }*/
                         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);
                 }
             }
         }
         else{
             //if(info.cellRange.colCount === me.setting.header.length && info.cellRange.col + info.cellRange.colCount - 1 >= 5){
-            if(info.cellRange.colCount >= me.setting.header.length - 1 && info.cellRange.colCount <= me.setting.header.length && info.cellRange.col + info.cellRange.colCount - 1 >= 5){
+            if(info.cellRange.colCount >= me.setting.header.length - 3 && info.cellRange.colCount <= me.setting.header.length && info.cellRange.col + info.cellRange.colCount - 1 >= 5){
                 for(let i = 0; i < items.length; i++){
                     if(me.isValidObj(items[i])){
                         items[i].component = [];
-                        if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                       /* if(me.allowComponent.indexOf(items[i].gljType) !== -1){
                             items[i].basePrice = 0;
-                        }
+                        }*/
                         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]);
                         }
                     }
                 }
@@ -957,6 +1006,7 @@ let repositoryGljObj = {
         let me = this;
         me.prevent = true;
         $.bootstrapLoading.start();
+        //me.workBook.focus(false);
         $.ajax({
             type: 'post',
             url: 'api/updateRationBasePrc',
@@ -968,6 +1018,7 @@ let repositoryGljObj = {
                 }
                 $.bootstrapLoading.end();
                 me.prevent = false;
+                //me.workBook.focus(true);
             }
         });
     },

+ 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,