Просмотр исходного кода

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

zhongzewei 7 лет назад
Родитель
Сommit
f3ee63dc33

+ 23 - 4
modules/main/facade/ration_facade.js

@@ -15,6 +15,7 @@ let installationFeeModel = mongoose.model("installation_fee");
 let rationInstallationModel = mongoose.model('ration_installation');
 const uuidV1 = require('uuid/v1');
 let std_glj_lib_gljList_model = mongoose.model('std_glj_lib_gljList');
+let complementary_glj_model =  mongoose.model('complementary_glj_lib');
 let coeMolde = mongoose.model('std_ration_lib_coe_list');
 let _= require('lodash');
 const projectDao = require('../../pm/models/project_model').project;
@@ -241,11 +242,22 @@ async function addRationGLJ(std,newRation) {
     let sum=0;
     let first = +new Date();
     if(std.hasOwnProperty('rationGljList') && std.rationGljList.length > 0){
-       let stdGLJID = _.map(std.rationGljList,'gljId');
-       let stdGLJList = await std_glj_lib_gljList_model.find({'ID':{'$in':stdGLJID}});//速度优化-------先一次性取出所有的工料机列表
+        let stdGLJID =[];//标准工料机ID数组
+        let cptGLJID=[];//补充工料机ID数组
+            //let stdGLJID = _.map(std.rationGljList,'gljId');
+        for(let tem_g  of std.rationGljList){
+            if(tem_g.type == 'std'){
+                stdGLJID.push(tem_g.gljId);
+            }else if(tem_g.type == 'complementary'){
+                cptGLJID.push(tem_g.gljId);
+            }
+        }
+       let stdGLJList = stdGLJID.length > 0 ? await std_glj_lib_gljList_model.find({'ID':{'$in':stdGLJID}}):[];//速度优化-------先一次性取出所有的工料机列表
        let stdGLJMap = _.indexBy(stdGLJList, 'ID');
+       let cptGLJList =  cptGLJID.length > 0 ? await complementary_glj_model.find({'userId':std.userId,'ID':{'$in':cptGLJID}}):[];
+       let cptGLJMap = _.indexBy(cptGLJList, 'ID');
         let stdGLJMapTime = +new Date();
-        console.log("找到标准工料机映射表时间-------------------------------"+(stdGLJMapTime - first));
+        console.log("找到工料机映射表时间-------------------------------"+(stdGLJMapTime - first));
         for(let sub of std.rationGljList){
             let newGLJ = {};
             newGLJ.ID = uuidV1();
@@ -256,7 +268,14 @@ async function addRationGLJ(std,newRation) {
             newGLJ.rationItemQuantity = sub.consumeAmt;
             newGLJ.quantity = sub.consumeAmt;
             newGLJ.glj_repository_id = std.rationRepId;
-            let std_glj = stdGLJMap[sub.gljId];
+            let std_glj = null;
+            if(sub.type == 'std'){//有可能来自标准工料机库或补充工料机库
+                std_glj = stdGLJMap[sub.gljId];
+                newGLJ.from = 'std';
+            }else if(sub.type == 'complementary'){
+                std_glj = cptGLJMap[sub.gljId];
+                newGLJ.from = 'cpt';
+            }
             let std_gljTime = +new Date();
             if(std_glj){
                 newGLJ.name = std_glj.name;

+ 1 - 1
web/building_saas/glj/html/project_glj.html

@@ -21,7 +21,7 @@
                 <li class="mb-2 li_sub"><a href="javascript:void(0)" id="MAIN_MATERIAL">主材</a></li>
                 <li class="mb-2 li_sub"><a href="javascript:void(0)" id="EQUIPMENT">设备</a></li>
                 <li class="mb-2"><a href="javascript:void(0)" id="FBFX">分部分项人材机</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="TECH">措施项人材机</a></li>
+                <li class="mb-2"><a href="javascript:void(0)" id="TECH">措施项人材机</a></li>
                 <li class="mb-2"><a href="javascript:void(0)" id="JGCL">甲供材料</a></li>
                 <li class="mb-2"><a href="javascript:void(0)" id="ZGCL">暂估材料</a></li>
                 <li class="mb-2"><a href="javascript:void(0)" id="SCHZ">三材汇总</a></li>

+ 5 - 4
web/building_saas/js/global.js

@@ -5,8 +5,6 @@ function autoFlashHeight(){
     let ftoolsbarHeight = $(".toolsbar-f").height();
     let btntoolsbarHeight = $(".btn-toolbar").height();
     // var feeRateToolsbarHeight = $(".toolsbar_feeRate").height();
-    let mainBottomContentHeight = $("#main .bottom-content").height();
-    let gljBottomContentHeight = $("#project-glj-main .bottom-content").height();
     let toolsBarHeightQ = $(".tools-bar-height-q").height();
     let toolsBarHeightD = $(".tools-bar-height-d").height();
     //$(".main-data-side-q").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightQ-302);
@@ -16,8 +14,8 @@ function autoFlashHeight(){
     $('.main-content').width($(window).width()-$('.main-nav').width()-$('.main-side').width()-5);
     $('#glj_tree_div .modal-content').width($(window).width() < 1020 + 20 ? $(window).width() - 20 : 1020);
     //$("#main .main-data-top").height($(window).height()-headerHeight-toolsbarHeight-bottomContentHeight-1);
-    $("#billsSpread").height($(window).height()-headerHeight-toolsbarHeight-mainBottomContentHeight-1);
-    $("#project_glj_sheet").height($(window).height()-headerHeight-toolsbarHeight-gljBottomContentHeight-50);
+    loadMainSize();//zhang 2018-06-04  统一加载高度方法
+    loadProjectGljSize();
     $(".main-data-full").height($(window).height()-headerHeight-toolsbarHeight-1);
     $(".main-data-full-fl").height($(window).height()-headerHeight-toolsbarHeight-37);
     $(".main-data-full-feeRate").height($(window).height()-headerHeight-78);
@@ -31,6 +29,9 @@ function autoFlashHeight(){
     $(".form-list").height($(window).height()-headerHeight-50 );
 
 };
+
+
+
 /*全局自适应高度结束*/
 $(function () {
     $(window).resize(autoFlashHeight);

+ 2 - 1
web/building_saas/main/html/main.html

@@ -77,7 +77,8 @@
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayFX">分项</a>
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayZM">子目</a>
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayZD">最底层</a>
-                  </div>
+                    </div>
+                     <a href="javascript:void(0)" class="btn btn-sm" id = 'ZLFB_btn'><i class="fa fa-sign-in " aria-hidden="true"></i><span data-toggle="tooltip" data-placement="bottom" title="整理分部"> 整理分部</span></a>
                     </span>
                       <% if (projectData.property.lockBills == true) { %>
                       <a href="javascript:void(0)" class="btn btn-sm" name="lockBills"  title="解锁清单"> <i class="fa fa-unlock-alt" aria-hidden="true"></i> 解锁清单</a>

+ 44 - 9
web/building_saas/main/js/main.js

@@ -3,6 +3,7 @@
  */
 
 $(function () {
+/*
     // 读取本地存储的高度(必须放在载入spread之前)
     let mainResizeEles = {};
     mainResizeEles.id = '#main';
@@ -16,7 +17,8 @@ $(function () {
         refreshSubSpread();
         zmhs_obj.refresh();
     });
-
+*/
+    loadMainSize();
     $("#header-menu").removeAttr('style');
     projectInfoObj.showProjectInfo();
     projectObj.checkMainSpread();
@@ -41,7 +43,7 @@ $(function () {
         sessionStorage.setItem('mainTab', '#tab_report');
     });
 
-    slideResize(mainResizeEles, {min: 170, max: 700}, 'height', function() {
+    slideResize(getMainResizeEles(), {min: 170, max: 700}, 'height', function() {
         projectObj.mainSpread.refresh();
         refreshSubSpread();
         zmhs_obj.refresh();
@@ -57,6 +59,28 @@ $(function () {
     });*/
 });
 
+function getMainResizeEles() {
+    // 读取本地存储的高度(必须放在载入spread之前)
+    let mainResizeEles = {};
+    mainResizeEles.id = '#main';
+    mainResizeEles.resize = $('#main').find('.resize');
+    mainResizeEles.nearElement = $('#main').find('.top-content');
+    mainResizeEles.nearSpread = mainResizeEles.nearElement.children(".main-data-top");
+    mainResizeEles.farElement = $('#main').find('.bottom-content');
+    mainResizeEles.farSpread = mainResizeEles.farElement.children().find(".main-data-bottom");
+    mainResizeEles.nav = mainResizeEles.farElement.children('ul.nav');
+    return mainResizeEles;
+}
+
+function loadMainSize() {//加载造价书页面各高度
+    // 读取本地存储的高度(必须放在载入spread之前)
+    let mainResizeEles = getMainResizeEles() ;
+    loadSize(mainResizeEles, 'height', function() {
+        refreshSubSpread();
+        zmhs_obj.refresh();
+    });
+}
+
 /**
  * 拖动更改div大小
  *
@@ -163,13 +187,7 @@ function loadSize(eles, type, callback) {
        /* eles.nearSpread[type](o_nearSize);
         eles.farSpread[type](o_farSize);*/
     }else {
-        nearSize = parseFloat(nearSize);
-        farSize = parseFloat(farSize);
-        if(type !== 'width') {
-            const navSize = eles.nav ? eles.nav[type]() + 4 : 0;
-            eles.nearSpread[type](nearSize);
-            eles.farSpread[type](farSize - navSize);
-        }
+        setSizeWithPercent(tag,eles,nearSize,farSize,type)//zhang 2018-06-04 改成按百分比设置
     }
     if(type === 'width'){//使用百分比
         let rePercent = getResizeWidthPercent(nearSize ? nearSize : o_nearSize, farSize ? farSize : o_farSize);
@@ -186,6 +204,23 @@ function getResizeWidthPercent(nearSize, farSize){
     return {nearPercent, farPercent};
 }
 
+
+function setSizeWithPercent(tag,eles,nearSize,farSize,type) {
+    nearSize = parseFloat(nearSize);
+    farSize = parseFloat(farSize);
+    if(type !== 'width') {
+        let headerHeight = $(".header").height();
+        let toolsbarHeight = $(".toolsbar").height();
+        let exand = tag == "#main" ? 1:50;
+        let totalHeight = $(window).height() - headerHeight - toolsbarHeight-exand;
+        const navSize = eles.nav ? eles.nav[type]() + 4 : 0;
+        totalHeight = totalHeight - navSize;
+        nearSize = (nearSize/(nearSize + farSize))* totalHeight;
+        eles.nearSpread[type](nearSize);
+        eles.farSpread[type](totalHeight - nearSize);
+    }
+}
+
 function setDefaultSize(tag,eles,type) {
     let o_nearSize = eles.nearSpread[type]();
     let o_farSize = eles.farSpread[type]();

+ 12 - 1
web/building_saas/main/js/models/bills.js

@@ -506,6 +506,17 @@ var Bills = {
                 return false;
             }
         };
+        bills.prototype.isMeasure = function (node) {//判读是否属于措施项目部分
+            let rootNode = this.getRootNode(node);
+            if(isFlag(rootNode.data)&&rootNode.data.flagsIndex.fixed.flag==fixedFlag.MEASURE){
+                return true;
+            }else {
+                return false;
+            }
+        };
+        bills.prototype.hasFlags = function (node) {
+            return isFlag(node.data);
+        };
         bills.prototype.isBX = function (node) {//判读是否属于补项
             if(node && node.sourceType == ModuleNames.bills&&node.data.type==billType.BX){
                 return  true;
@@ -825,7 +836,7 @@ function isDef(v) {
 }
 
 function isFlag(v) {
-    return this.isDef(v.flagsIndex) && this.isDef(v.flagsIndex.fixed);
+    return this.isDef(v.flagsIndex) && this.isDef(v.flagsIndex.fixed) && this.isDef(v.flagsIndex.fixed.flag);
 }
 
 function getRootFixedNode(node) {

+ 30 - 5
web/building_saas/main/js/models/calc_program.js

@@ -212,6 +212,17 @@ let calcTools = {
             treeNode.changed = true;
         };
     },
+    setFieldValue: function (treeNode, fieldName, value){
+        if (fieldName.includes('feesIndex')){
+            let arr = fieldName.split('.');
+            this.initFeeField(treeNode, arr[1]);
+            treeNode.data.feesIndex[arr[1]][arr[2]] = value;
+        }
+        else{
+            treeNode.data[fieldName] = value;
+        };
+        treeNode.changed = true;
+    },
     initSummaryFee: function (treeNode){
         if (!treeNode.data.summaryFees){
             treeNode.data.summaryFees = {
@@ -1505,13 +1516,27 @@ class CalcProgram {
             if (treeNode.data.programID) {
                 treeNode.data.programID = null;
                 treeNode.changed = true;
-            }
+            };
 
-            if (treeNode.data.fees && treeNode.data.fees.length > 0){
-                treeNode.data.fees = null;
-                treeNode.data.feesIndex = null;
-                treeNode.changed = true;
+            // 第1、2部分以外的叶子清单在没有公式的情况下可以手工修改综合单价并参与计算。
+            if(!calcTools.isInheritFrom(treeNode, [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE])){
+                if (treeNode.data.feesIndex && treeNode.data.feesIndex.common){
+                    let ftObj = {};
+                    ftObj.fieldName = 'common';
+                    ftObj.unitFee = parseFloatPlus(treeNode.data.feesIndex.common.unitFee);
+                    let q = parseFloatPlus(treeNode.data.quantity);
+                    ftObj.totalFee = (ftObj.unitFee * q).toDecimal(decimalObj.bills.totalPrice);
+                    calcTools.checkFeeField(treeNode, ftObj);
+                }
             }
+            else{
+                if (treeNode.data.fees && treeNode.data.fees.length > 0){
+                    treeNode.data.fees = null;
+                    treeNode.data.feesIndex = null;
+                    treeNode.changed = true;
+                }
+            };
+
             treeNode.data.calcTemplate = {"calcItems": []};
         }
         // 叶子清单公式计算

+ 0 - 14
web/building_saas/main/js/models/main_consts.js

@@ -366,20 +366,6 @@ const filterType = {
     ZYCL:'11'
 };
 const filterTypeArray = ['1','2','3','4','5'];
-/*
-<li><a href="javascript:void(0)">所有工料机</a></li>
-    <li class="mb-2 li_sub"><a href="javascript:void(0)" id="labor">人工</a></li>
-    <li class="mb-2 li_sub"><a href="javascript:void(0)">材料</a></li>
-    <li class="mb-2 li_sub"><a href="javascript:void(0)">机械</a></li>
-    <li class="mb-2 li_sub"><a href="javascript:void(0)">主材</a></li>
-    <li class="mb-2 li_sub"><a href="javascript:void(0)">设备</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">分部分项工料机</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">措施分项工料机</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">甲供材料</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">暂估材料</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">三材汇总</a></li>
-    <li class="mb-2"><a href="javascript:void(0)">主要材料</a></li>
-*/
 
 const installFeeType = ['子目费用','分项费用','措施费用'];
 const installSectionBase = ['分别按人材机乘系数','人工','材料','机械'];

+ 14 - 12
web/building_saas/main/js/views/glj_view.js

@@ -1062,19 +1062,21 @@ var gljOprObj = {
         $("#glj_tree_div").modal('hide');
         $.bootstrapLoading.start();
         project.ration_glj.insertGLJAsRation(me.GLJSelection, selected, function (parentNodeID,nextNodeID,data) {
+            let newNode=null;
+            for (let r_glj of data) {
+                r_glj.quantity = r_glj.quantity + "";
+                project.Ration.datas.push(r_glj);
+            }//要先更新树节点工程量,加载项目工料机并计算消耗量才有值
             project.projectGLJ.loadData(function () {
-                  let newNode=null;
-                 for (let r_glj of data) {
-                     r_glj = me.setGLJPrice(r_glj);//设置工料机价格
-                     r_glj.marketUnitFee = r_glj.marketPrice;
-                     r_glj.quantity = r_glj.quantity + "";
-                     project.Ration.datas.push(r_glj);
-                     newNode = project.mainTree.insert(parentNodeID, nextNodeID, r_glj.ID);
-                     newNode.source = r_glj;
-                     newNode.sourceType = project.Ration.getSourceType();
-                     newNode.data = r_glj;
-                     ProjectController.syncDisplayNewNode(projectObj.mainController, newNode);
-                 }
+                for(let r_glj of data){
+                    r_glj = me.setGLJPrice(r_glj);//设置工料机价格
+                    r_glj.marketUnitFee = r_glj.marketPrice;
+                    newNode = project.mainTree.insert(parentNodeID, nextNodeID, r_glj.ID);
+                    newNode.source = r_glj;
+                    newNode.sourceType = project.Ration.getSourceType();
+                    newNode.data = r_glj;
+                    ProjectController.syncDisplayNewNode(projectObj.mainController, newNode);
+                }
                 project.calcProgram.calcLeafAndSave(newNode.parent);//计算父级清单的所有子节点
                 projectObj.mainController.refreshTreeNode([newNode]);
                 if(me.hasComposition(newNode.data,true)){

+ 18 - 6
web/building_saas/main/js/views/project_glj_view.js

@@ -780,7 +780,7 @@ projectGljObject={
     }
 };
 
-$(function () {
+function getProjectResizeEles() {
     let pojGljResizeEles = {};
     pojGljResizeEles.id = '#project-glj-main';
     pojGljResizeEles.resize = $('#project-glj-main').find('.resize');
@@ -789,6 +789,22 @@ $(function () {
     pojGljResizeEles.farElement = $('#project-glj-main').find('.bottom-content');
     pojGljResizeEles.farSpread = pojGljResizeEles.farElement.children().find(".main-data-bottom");
     pojGljResizeEles.nav = pojGljResizeEles.farElement.children('ul.nav');
+    return pojGljResizeEles;
+}
+
+
+function loadProjectGljSize() {
+    let me = projectGljObject;
+    let pojGljResizeEles = getProjectResizeEles();
+    loadSize(pojGljResizeEles, 'height', function () {
+        me.projectGljSpread?me.projectGljSpread.refresh():'';
+        me.mixRatioSpread?me.mixRatioSpread.refresh():'';
+    });
+}
+
+
+$(function () {
+    let pojGljResizeEles =  getProjectResizeEles();
     slideResize(pojGljResizeEles, {min: 170, max: 700}, 'height', function () {
         projectGljObject.projectGljSpread.refresh();
         projectGljObject.mixRatioSpread?projectGljObject.mixRatioSpread.refresh():'';
@@ -804,11 +820,7 @@ $(function () {
         me.initMixRatio();
         //projectObj.project.projectGLJ.calcQuantity(); 在工程量有更新的地方调用
         me.refreshDataSheet();
-
-        loadSize(pojGljResizeEles, 'height', function () {
-            me.projectGljSpread.refresh();
-            me.mixRatioSpread?me.mixRatioSpread.refresh():'';
-        });
+        loadProjectGljSize();
     });
   /*  $('#ration_link').on('shown.bs.tab', function (e) {
         let me = projectGljObject;

+ 29 - 33
web/building_saas/main/js/views/project_view.js

@@ -160,6 +160,8 @@ var projectObj = {
         setButtonValid(canDownLevel(selected), $('#downLevel'));
         setButtonValid(canUpMove(selected) , $('#upMove'));
         setButtonValid(canDownMove(selected), $('#downMove'));
+        setButtonValid(!projectObj.project.isBillsLocked(), $('#ZLFB_btn'));
+
     },
     checkCommonField: function (editingText, colSetting) {
         let value;
@@ -410,13 +412,13 @@ var projectObj = {
             else if(fieldName ==='contain'){//编辑含量
                 project.Ration.updateContain(value,node);
             }
-            else if (fieldName === 'quantity' || fieldName === 'marketUnitFee' || fieldName === 'commonUnitFee' || fieldName === 'programID' ||
+            else if (fieldName === 'quantity' || fieldName === 'marketUnitFee' || fieldName === 'feesIndex.common.unitFee' || fieldName === 'programID' ||
                 fieldName === 'subType' || fieldName === 'calcBase' || fieldName === 'isSubcontract'){
                 if (fieldName === 'quantity') {
                     project.quantity_detail.editMainTreeNodeQuantity(value,node,fieldName,editingText);
                     return;
                 }
-                else if (fieldName === 'marketUnitFee' || fieldName === 'commonUnitFee' ) {
+                else if (fieldName === 'marketUnitFee' || fieldName === 'feesIndex.common.unitFee') {
                     if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("unitPrice", node))};
                 }
                 else if (fieldName === 'calcBase') {
@@ -435,9 +437,8 @@ var projectObj = {
                 };
                 //计算基数赋值要经过解析和标准化,已在calculate里赋值
                 if(fieldName !== 'calcBase'){
-                    node.data[fieldName] = value;
-                    node.changed = true;
-                }
+                    calcTools.setFieldValue(node, fieldName, value);
+                };
 
                 project.calcProgram.calcAndSave(node);
                 gljOprObj.showRationGLJSheetData();
@@ -824,11 +825,7 @@ var projectObj = {
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         if(selected){
-                            if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
-                                return false
-                            }else {
-                                return true
-                            }
+                          return canInsertRationNode(selected);
                         }
                        return false;
                     }
@@ -847,11 +844,7 @@ var projectObj = {
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         if(selected){
-                            if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
-                                return false
-                            }else {
-                                return true
-                            }
+                           return canInsertRationNode(selected);
                         }
                        return false;
                     }
@@ -878,28 +871,11 @@ var projectObj = {
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         if(selected){
-                            if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
-                                return false;
-                            }else {
-                                return true;
-                            }
+                          return canInsertRationNode(selected);
                         }
                         return false;
                     }
                 },
-                "ZLFB": {
-                    name: "整理分部",
-                    icon: 'fa-sign-in',
-                    disabled: function () {
-                       return projectObj.project.isBillsLocked();
-                    },
-                    callback: function (key, opt) {
-                        zlfb_object.getSectionInfo();
-                    },
-                    visible: function(key, opt){
-                        return true;
-                    }
-                },
                 "calc_installation_fee": {
                     name: "计取安装费用",
                     icon: 'fa-sign-in',
@@ -1370,6 +1346,11 @@ $("a[name='lockBills']").click(function () {
         pageCCOprObj.refreshRuleTools(lockBills);
     });
 });
+$('#ZLFB_btn').click(function () {
+    zlfb_object.getSectionInfo();
+});
+
+
 //显示至..
 let displayLevel = function(nodes, depth, type){
     let refreshNodes = [];
@@ -1747,6 +1728,9 @@ function ifCanDelete() {
                 if(projectObj.project.isBillsLocked()== true){
                     return false;
                 }
+                if(projectObj.project.Bills.hasFlags(node)){
+                    return false;
+                }
             }
             if(m_selection!=true&&node.sourceType === projectObj.project.ration_glj.getSourceType()){//多选的时候不做这一项判断
                 return false;
@@ -1773,6 +1757,18 @@ function ifCanDelete() {
     };
 }
 
+function canInsertRationNode(selected) {//判断是否能插入定额、量价、定额类型工料机, false 不能,true能
+    let project = projectObj.project;
+    if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
+        return false
+    }else if(!(project.Bills.isMeasure(selected)||project.Bills.isFBFX(selected))){
+        return false
+    }else {
+        return true
+    }
+}
+
+
 //选择要导入的excel文件
 $('#customFile').change(function () {
     let file = $(this)[0];

+ 16 - 6
web/building_saas/main/js/views/zmhs_view.js

@@ -13,7 +13,7 @@ let zmhs_obj = {
             {headerName: "内容", headerWidth: 350, dataCode: "content", dataType: "String", hAlign: "left"}
         ],
         view: {
-            lockColumns: [0, 1, 2]
+            lockColumns: [0,1,2]
         }
     },
     assSpread:null,
@@ -38,7 +38,7 @@ let zmhs_obj = {
         this.coeSheet.bind(GC.Spread.Sheets.Events.CellClick, this.onCoeCellClick);
         this.coeSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, this.onButtonClick);
         this.coeSheet.bind(GC.Spread.Sheets.Events.EditStarting, function (e,args) {
-            args.cancel = true;
+            //args.cancel = true;
         });
         this.assSheet = this.assSpread.getSheet(0);
         sheetCommonObj.initSheet(this.assSheet, this.assSetting, 30);
@@ -257,15 +257,17 @@ let zmhs_obj = {
         projectObj.project.ration_coe.adjustCoeClick(recode, newval);
     },
     addCusButton: function (row, col, text) {
+        zmhs_obj.coeSheet.suspendPaint();
         var cus_button = new GC.Spread.Sheets.CellTypes.Button();
         zmhs_obj.coeSheet.setCellType(row, col, cus_button, GC.Spread.Sheets.SheetArea.viewport);
         cus_button.marginLeft(0);
         cus_button.marginTop(0);
-        cus_button.marginRight(0);
-        cus_button.marginBottom(0);
+        cus_button.marginRight(-2);
+        cus_button.marginBottom(-2);
         cus_button.text(text);
         cus_button.buttonBackColor('white');
-        zmhs_obj.coeSheet.repaint();
+        zmhs_obj.coeSheet.resumePaint();
+        //zmhs_obj.coeSheet.repaint();
     },
     addDropDownList: function () {
         var sheet = this.coeSheet;
@@ -297,10 +299,18 @@ let zmhs_obj = {
     getOneRow: function (text, name, id) {
         var rowstr = "<tr style='height:10px'><td style='width: 50px'>" + text
             + ":</td><td style='width: 70px' align='right'><input type='text'value='1' name=" + name
-            + " style='width:30px;border:0;height:14px' align='right' id=" + id + " onchange='zmhs_obj.onInputChange(this.id,this.name)'></td></tr>";
+            + " style='width:30px;border:0;height:14px' align='right' id=" + id + " onchange='zmhs_obj.onInputChange(this.id,this.name)'onfocus = 'zmhs_obj.coeStartEdit()' autocomplete='off'></td></tr>";
         return rowstr;
 
     },
+    coeStartEdit(){
+        if(zmhs_obj.coeSheet.isEditing()){
+            return;
+        }else {
+            zmhs_obj.coeSheet.startEdit();
+        }
+
+    },
     onAssEditEnded:function (e,args) {
         var me = zmhs_obj;
         if (args.row >= me.assSheetData.length) {