zhongzewei 7 年之前
父节点
当前提交
740562f111

+ 0 - 1
web/building_saas/complementary_ration_lib/js/repository_glj.js

@@ -6,7 +6,6 @@ var pageOprObj = {
     rationLibName : null,
     rationLibId: null,
     initPage : function(container) {
-        $.bootstrapLoading.start();
         var me = this, rationLibId = getQueryString("repository");//获取定额库参数
         me.rationLibId = rationLibId;
         //getRationLibName

+ 2 - 2
web/building_saas/js/global.js

@@ -12,8 +12,8 @@ function autoFlashHeight(){
     $(".main-data-side-q").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightQ-$('#qd').find('.bottom-content').find('.p-0').height()-5);
     //$(".main-data-side-d").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightD-302);
     $(".main-data-side-d").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightD-$('#stdSectionRations').height()-5);
-    $(".main-data-side-zb").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightZ);
-    $(".main-data-side-zi").height($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightZ);
+    $(".main-data-side-zb").height(($(window).height()-headerHeight-toolsbarHeight-toolsBarHeightZ) - $('#billsGuidance_items').height() - 5);
+    /*$(".main-data-side-zi").height($(window).height()-headerHeight-toolsbarHeight- toolsBarHeightZ - $(".main-data-side-zb").height());*/
     $('.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);

+ 30 - 17
web/building_saas/main/html/main.html

@@ -67,7 +67,7 @@
                     <a href="javascript:void(0)" class="btn btn-sm" id="downMove" title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
                     <a href="javascript:void(0)" class="btn btn-sm" id="upMove" title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
                     <span>
-                      <a href="" data-toggle="dropdown"><span data-toggle="tooltip" data-placement="bottom" title="显示至...">显示至...</span></a>
+                      <a href="" data-toggle="dropdown"><span data-toggle="tooltip" data-placement="bottom" title="">显示至...</span></a>
                       <div class="dropdown-menu dropdown-menu-left" style="min-width: 6.5rem">
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayDXFY">大项费用</a>
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayFB1">一级分部</a>
@@ -79,11 +79,11 @@
                       <a class="dropdown-item" href="javascript:void(0);" style="padding: 0rem 1.5rem" id="displayZD">最底层</a>
                     </div>
                     </span>
-                      <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>
+                      <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>
                       <% 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>
+                      <a href="javascript:void(0)" class="btn btn-sm" name="lockBills"  title=""> <i class="fa fa-unlock-alt" aria-hidden="true"></i> 解锁清单</a>
                       <% } else { %>
-                      <a href="javascript:void(0)" class="btn btn-sm" name="lockBills"  title="锁定清单"> <i class="fa fa-lock" aria-hidden="true"></i> 锁定清单</a>
+                      <a href="javascript:void(0)" class="btn btn-sm" name="lockBills"  title=""> <i class="fa fa-lock" aria-hidden="true"></i> 锁定清单</a>
                       <% } %>
                   </div>
                   <div class="side-tabs">
@@ -251,17 +251,22 @@
                               <!--清单指引-->
                               <div class="tab-pane" id="zy">
                                   <div class="sidebar-tools-bar container-fluid tools-bar-height-z">
-                                      <div class="p-1 d-flex justify-content-center">
-                                          <select class="form-control form-control-sm" id="stdBillsGuidanceLibSelect">
-                                          </select>
-                                          <div class="input-group" id="stdBillsGuidanceSearch">
-                                              <input type="text" class="form-control form-control-sm" placeholder="搜索清单">
-                                              <span class="input-group-btn">
-                                                  <button class="btn btn-secondary btn-sm" type="button"><i class="fa fa-search" aria-hidden="true"></i></button>
-                                              </span>
+                                      <div class="p-1 row">
+                                          <div class="col p-0">
+                                              <select class="form-control form-control-sm" id="stdBillsGuidanceLibSelect"></select>
+                                          </div>
+                                          <div class="col px-1">
+                                              <div class="input-group" id="stdBillsGuidanceSearch">
+                                                  <input type="text" class="form-control form-control-sm" placeholder="输入编码或名称">
+                                                  <span class="input-group-btn">
+                                            <button class="btn btn-secondary btn-sm" type="button"><i class="fa fa-search" aria-hidden="true"></i></button>
+                                        </span>
+                                              </div>
+                                          </div>
+                                          <div class="col p-0">
+                                              <button id="guidanceInsertRation" class="btn btn-primary btn-sm" type="button">插入定额</button>
+                                              <button id="guidanceInsertBills" class="btn btn-primary btn-sm" type="button">插入清单</button>
                                           </div>
-                                          <button id="guidanceInsertRation" class="btn btn-primary btn-sm mx-3" type="button">插入定额</button>
-                                          <button id="guidanceInsertBills" class="btn btn-primary btn-sm mx-3" type="button">插入清单</button>
                                       </div>
                                       <!--搜索结果窗体-->
                                       <div class="side-search-box col-12 p-2" id="billsGuidanceSearchResult" style="display: none;">
@@ -272,12 +277,20 @@
                                           </div>
                                       </div>
                                   </div>
-                                  <div class="row" style="margin-left: 1px;">
+                                  <div class="top-content" style="overflow: hidden">
+                                      <div class="main-data-side-zb" id="billsGuidance_bills">
+                                      </div>
+                                  </div>
+                                  <div class="resize" id="zyResize" style="background: #F1F1F1"></div>
+                                  <div class="bottom-content">
+                                      <div class="main-data-side-zi" id="billsGuidance_items"></div>
+                                  </div>
+                                  <!--<div class="row" style="margin-left: 1px;">
                                       <div id="billsGuidance_bills" class="main-data-side-zb" style="width: 53%; float: left; margin: 0; padding: 0;">
                                       </div>
                                       <div id="billsGuidance_items" class="main-data-side-zi" style="width: 46%; float: left; margin: 0; padding: 0;">
                                       </div>
-                                  </div>
+                                  </div>-->
                               </div>
                               <!--清单规则-->
                               <div class="tab-pane" id="qd">
@@ -286,7 +299,7 @@
                                           <select class="form-control form-control-sm col-6" id="stdBillsLibSelect">
                                           </select>
                                           <div class="input-group col-6" id="stdBillsSearch">
-                                              <input type="text" class="form-control form-control-sm" placeholder="搜索清单">
+                                              <input type="text" class="form-control form-control-sm" placeholder="输入编码或名称">
                                               <span class="input-group-btn">
                                                   <button class="btn btn-secondary btn-sm" type="button"><i class="fa fa-search" aria-hidden="true"></i></button>
                                               </span>

+ 4 - 0
web/building_saas/main/js/main.js

@@ -22,6 +22,10 @@ $(function () {
         $(gljOprObj.activeTab).addClass('active');
         autoFlashHeight();
         projectObj.refreshMainSpread();
+        billsGuidance.refreshWorkBook();
+        billsLibObj.refreshBillsSpread();
+        billsLibObj.refreshBillsRelaSpread();
+        rationLibObj.refreshSpread();
     });
 
     $('#tab_report').on('shown.bs.tab', function(e){

+ 16 - 14
web/building_saas/main/js/models/calc_base.js

@@ -376,15 +376,13 @@ let baseFigureTemplate = {
     },
     //统计分部分项下工料机类型为“人工”的总消耗量
     'FBFXRGGR': function (tender) {
-        const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
-        const quantityType = tender ? 'tenderQuantity' : 'quantity';
-        //todo 调用subdivisionTenderQuantity
+        const subQuantityType = tender ? 'tenderSubdivisionQuantity' : 'subdivisionQuantity';
         let projGljs = calcBase.project.projectGLJ.datas.gljList;
         let rst = 0;
         for(let glj of projGljs){
             if(glj.type === gljType.LABOUR){
-                if(cbTools.isDef(glj.subdivisionQuantity)){
-                    rst = parseFloat(rst + glj.subdivisionQuantity).toDecimal(decimalObj.glj.quantity);
+                if(cbTools.isDef(glj[subQuantityType])){
+                    rst = parseFloat(rst + glj[subQuantityType]).toDecimal(decimalObj.glj.quantity);
                 }
             }
         }
@@ -490,13 +488,14 @@ let baseFigureTemplate = {
     'JSCSXMWJJCLF': function (tender) {
         return (this['JSCSXMZCF'](tender) + this['JSCSXMSBF'](tender)).toDecimal(decimalObj.bills.totalPrice);
     },
-    'JSCSXMRGGR': function () {
+    'JSCSXMRGGR': function (tender) {
+        const techQuantityType = tender ? 'tenderTechQuantity' : 'techQuantity';
         let rst = 0;
         let projGljs = calcBase.project.projectGLJ.datas.gljList;
         for(let glj of projGljs){
             if(glj.type === gljType.LABOUR){
-                if(cbTools.isDef(glj.techQuantity)){
-                    rst = parseFloat(rst + glj.techQuantity).toDecimal(decimalObj.glj.quantity);
+                if(cbTools.isDef(glj[techQuantityType])){
+                    rst = parseFloat(rst + glj[techQuantityType]).toDecimal(decimalObj.glj.quantity);
                 }
             }
         }
@@ -748,32 +747,35 @@ let baseFigureTemplate = {
         }
         return rst;
     },
-    'JDDEJJRGF': function () {//甲定定额基价人工费
+    'JDDEJJRGF': function (tender) {//甲定定额基价人工费
+        const quantityType = tender ? 'tenderQuantity' : 'quantity';
         let rst = 0;
         let projGljs = calcBase.project.projectGLJ.datas.gljList;
         for(let glj of projGljs){
             if(glj.type === gljType.LABOUR && (glj.supply === supplyType.JDYG || glj.supply === supplyText.JDYG)){
-                rst = (rst + parseFloat(glj.quantity * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
+                rst = (rst + parseFloat(glj[quantityType] * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
             }
         }
         return rst;
     },
-    'JDDEJJCLF': function () {//甲定定额基价材料费
+    'JDDEJJCLF': function (tender) {//甲定定额基价材料费
+        const quantityType = tender ? 'tenderQuantity' : 'quantity';
         let rst = 0;
         let projGljs = calcBase.project.projectGLJ.datas.gljList;
         for(let glj of projGljs){
             if(baseMaterialTypes.includes(glj.type) && glj.ratio_data.length === 0 && (glj.supply === supplyType.JDYG || glj.supply === supplyText.JDYG)){
-                rst = (rst + parseFloat(glj.quantity * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
+                rst = (rst + parseFloat(glj[quantityType] * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
             }
         }
         return rst;
     },
-    'JDDEJJJXF': function () {//甲定定额基价机械费
+    'JDDEJJJXF': function (tender) {//甲定定额基价机械费
+        const quantityType = tender ? 'tenderQuantity' : 'quantity';
         let rst = 0;
         let projGljs = calcBase.project.projectGLJ.datas.gljList;
         for(let glj of projGljs){
             if(baseMachineTypes.includes(glj.type) && glj.ratio_data.length === 0 && (glj.supply === supplyType.JDYG || glj.supply === supplyText.JDYG)){
-                rst = (rst + parseFloat(glj.quantity * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
+                rst = (rst + parseFloat(glj[quantityType] * glj.unit_price.base_price).toDecimal(decimalObj.bills.totalPrice)).toDecimal(decimalObj.bills.totalPrice);
             }
         }
         return rst;

+ 4 - 4
web/building_saas/main/js/models/calc_program.js

@@ -1872,9 +1872,9 @@ class CalcProgram {
     };
 
     // 排除指定项的综合合价计算(用于带循环计算的情况。这里的汇总只到清单级别即可:清单单价取费时,汇总到清单和汇总到定额两个值不一样)
-    getTotalFee(baseNodes, excludeNodes, adj){
+    getTotalFee(baseNodes, excludeNodes, tender){
         let rst = 0;
-        const totalFeeType = adj ? 'common.tenderTotalFee' : 'common.totalFee';
+        const totalFeeType = tender ? 'common.tenderTotalFee' : 'common.totalFee';
         function calcNodes(nodes) {
             for (let node of nodes) {
                 if (!excludeNodes.includes(node)){
@@ -1894,13 +1894,13 @@ class CalcProgram {
     };
 
     // 税前工程造价 ,adj调价
-    getBeforeTaxTotalFee(excludeNodes, adj){
+    getBeforeTaxTotalFee(excludeNodes, tender){
         let baseNodes = [], me = this;
         baseNodes.push(calcTools.getNodeByFlag(fixedFlag.SUB_ENGINERRING));
         baseNodes.push(calcTools.getNodeByFlag(fixedFlag.MEASURE));
         baseNodes.push(calcTools.getNodeByFlag(fixedFlag.OTHER));
         baseNodes.push(calcTools.getNodeByFlag(fixedFlag.CHARGE));
-        return me.getTotalFee(baseNodes, excludeNodes, adj);
+        return me.getTotalFee(baseNodes, excludeNodes, tender);
     };
 
     /*clearTenders(){

+ 8 - 4
web/building_saas/main/js/views/character_content_view.js

@@ -8,7 +8,7 @@ let contentOprObj = {
     setting: {
         header: [
             {headerName:"工作内容",headerWidth:160,dataCode:"content", dataType: "String", hAlign: "left", vAlign: "center"},
-            {headerName:"输出",headerWidth:80,dataCode:"isChecked", cellType:"checkBox", hAlign: "center", vAlign: "center"}
+            {headerName:"输出",headerWidth:40,dataCode:"isChecked", cellType:"checkBox", hAlign: "center", vAlign: "center"}
         ]
     },
     buildSheet: function(container) {
@@ -388,9 +388,9 @@ let characterOprObj = {
     currentCache: [],
     setting: {
         header: [
-            {headerName:"项目特征",headerWidth:160,dataCode:"character", dataType: "String", hAlign: "left", vAlign: "center"},
+            {headerName:"项目特征",headerWidth:120,dataCode:"character", dataType: "String", hAlign: "left", vAlign: "center"},
             {headerName:"特征值",headerWidth:160,dataCode:"eigenvalue", dataType: "String", cellType: "comboBox", hAlign: "left", vAlign: "center"},
-            {headerName:"输出",headerWidth:80,dataCode:"isChecked", cellType:"checkBox", hAlign: "center", vAlign: "center"}
+            {headerName:"输出",headerWidth:40,dataCode:"isChecked", cellType:"checkBox", hAlign: "center", vAlign: "center"}
         ]
     },
     buildSheet: function(container) {
@@ -406,6 +406,7 @@ let characterOprObj = {
         let sheet = workBook.getActiveSheet(), me = characterOprObj;
         const EVENTS = GC.Spread.Sheets.Events;
         workBook.bind(EVENTS.ButtonClicked, me.onButtonClicked);
+        sheet.bind(EVENTS.EnterCell, me.onEnterCell);
         sheet.bind(EVENTS.EditEnded, me.onEditEnded);
         sheet.bind(EVENTS.EditStarting, me.onEditStart);
         sheet.bind(EVENTS.ClipboardPasting, me.onClipboardPasting);
@@ -470,7 +471,7 @@ let characterOprObj = {
     //获得项目特征特征值comboBox
     getComboBox: function (characterItem) {
         let rst = {};
-        let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
+        let combo = sheetCommonObj.getDynamicCombo();
         let comboItems = [], eigenvalues = characterItem.eigenvalue;
         for(let i = 0, len = eigenvalues.length; i < len; i++){
             comboItems.push(eigenvalues[i].value);
@@ -655,6 +656,9 @@ let characterOprObj = {
             me.currentSelectedValue = me.currentCache.length > args.row ?  me.getCurrentSelected(me.currentCache[args.row]) : null;
         }
     },
+    onEnterCell: function (sender, args) {
+        args.sheet.repaint();
+    },
     onEditEnded: function (sender, args) {
         let me = characterOprObj, characterTxt;
         let preObj = me.currentCache.length > 0 ?  me.currentCache[me.currentCache.length - 1] : null;

+ 27 - 4
web/building_saas/main/js/views/side_tools.js

@@ -14,7 +14,6 @@ sideResizeEles.nav = null;
 slideResize(sideResizeEles, {min: 250, max: $('#zaojiashu').width()-260}, 'width', function(){
     projectObj.refreshMainSpread();
     refreshSubSpread();
-    console.log(sideResizeEles.id);
     if(sideResizeEles.id === 'stdBillsGuidanceTab'){
         billsGuidance.refreshWorkBook();
     }
@@ -26,6 +25,20 @@ slideResize(sideResizeEles, {min: 250, max: $('#zaojiashu').width()-260}, 'width
         billsLibObj.refreshBillsRelaSpread();
     }
 });
+
+//清单指引上下拖动
+let billsGuidanceLibResizeEles = {};
+billsGuidanceLibResizeEles.id = '#zy';
+billsGuidanceLibResizeEles.resize = $('#zyResize');
+billsGuidanceLibResizeEles.nearElement = $('#zy').find('.top-content');
+billsGuidanceLibResizeEles.nearSpread = $('#billsGuidance_bills');
+billsGuidanceLibResizeEles.farElement = $('#zy').find('.bottom-content');
+billsGuidanceLibResizeEles.farSpread = $('#billsGuidance_items');
+billsGuidanceLibResizeEles.nav = null;
+slideResize(billsGuidanceLibResizeEles, {min: 147, max: 680}, 'height', function() {
+    billsGuidance.refreshWorkBook();
+});
+
 //定额库上下拖动
 let rationLibResizeEles = {};
 rationLibResizeEles.id = '#de';
@@ -58,12 +71,22 @@ var sideToolsObj = {
     showSideTools: function (tabPanel, show, id) {
         sideResizeEles.id = id;
         if (show) {
-            sideResizeEles.nearElement.css('width', '66.666667%');
-            sideResizeEles.farElement.css('width', '33.333333%');
+            if(id === 'stdBillsGuidanceTab'){
+                sideResizeEles.nearElement.css('width', '72%');
+                sideResizeEles.farElement.css('width', '28%');
+            }
+            else {
+                sideResizeEles.nearElement.css('width', '66.666667%');
+                sideResizeEles.farElement.css('width', '33.333333%');
+            }
             $('.main-side .tab-pane').hide();
             tabPanel.show();
             loadSize(sideResizeEles, 'width', function(){
-                if(id === 'stdRationTab'){//定额库
+                if(id === 'stdBillsGuidanceTab'){//清单指引
+                    loadSize(billsGuidanceLibResizeEles, 'height', function(){
+                    });
+                }
+                else if(id === 'stdRationTab'){//定额库
                     loadSize(rationLibResizeEles, 'height', function(){
                     });
                 }

+ 56 - 11
web/building_saas/main/js/views/std_billsGuidance_lib.js

@@ -28,7 +28,7 @@ const billsGuidance = (function () {
             headRowHeight: [40],
             defaultRowHeight: 21,
             cols: [{
-                width: 200,
+                width: 160,
                 readOnly: true,
                 head: {
                     titleNames: ["项目编码"],
@@ -45,7 +45,7 @@ const billsGuidance = (function () {
                     font: "Arial"
                 }
             }, {
-                width: 200,
+                width: 220,
                 readOnly: true,
                 head: {
                     titleNames: ["项目名称"],
@@ -61,17 +61,40 @@ const billsGuidance = (function () {
                     hAlign: 0,
                     font: "Arial"
                 }
-            }]
+            },
+               {
+                width: 45,
+                readOnly: true,
+                 head: {
+                     titleNames: ["计量单位"],
+                     spanCols: [1],
+                     spanRows: [1],
+                     vAlign: [1],
+                     hAlign: [1],
+                     font: ["Arial"]
+                 },
+                 data: {
+                     field: "unit",
+                     vAlign: 1,
+                     hAlign: 1,
+                     font: "Arial"
+                 }
+            }
+            ]
         },
         headers: [
-            {name: '项目编码', dataCode: 'code', width: 200, vAlign: 'center', hAlign: 'left', formatter: '@'},
-            {name: '项目名称', dataCode: 'name', width: 200, vAlign: 'center', hAlign: 'left', formatter: '@'}
+            {name: '项目编码', dataCode: 'code', width: 160, vAlign: 'center', hAlign: 'left', formatter: '@'},
+            {name: '项目名称', dataCode: 'name', width: 220, vAlign: 'center', hAlign: 'left', formatter: '@'},
+            {name: '单位', dataCode: 'unit', width: 45, vAlign: 'center', hAlign: 'center', formatter: '@'},
         ],
         events: {
             SelectionChanging: function (sender, info) {
                 billsInitSel(info.newSelections[0].row);
             },
             CellDoubleClick: function (sender, args) {
+                if(!bills.tree){
+                    return;
+                }
                 let node = bills.tree.items[args.row];
                 if(!node){
                     return;
@@ -119,7 +142,7 @@ const billsGuidance = (function () {
             headRowHeight: [40],
             defaultRowHeight: 21,
             cols: [{
-                width: 300,
+                width: 420,
                 readOnly: false,
                 head: {
                     titleNames: ["项目指引"],
@@ -137,7 +160,7 @@ const billsGuidance = (function () {
                 }
             },
             {
-                width: 50,
+                width: 35,
                 readOnly: false,
                 head: {
                     titleNames: ["选择"],
@@ -158,11 +181,11 @@ const billsGuidance = (function () {
         },
         headers: [
             {name: '项目指引', dataCode: 'name', width: 300, vAlign: 'center', hAlign: 'left', formatter: '@'},
-            {name: '选择', dataCode: 'select', width: 50, vAlign: 'center', hAlign: 'center', formatter: '@'},
+            {name: '选择', dataCode: 'select', width: 35, vAlign: 'center', hAlign: 'center', formatter: '@'},
         ],
         events: {
             EditStarting: function (sender, args) {
-                if(guideItem.headers[args.col]['dataCode'] === 'name'){
+                if(!bills.tree || guideItem.headers[args.col]['dataCode'] === 'name'){
                     args.cancel = true;
                 }
             },
@@ -172,7 +195,7 @@ const billsGuidance = (function () {
                 }
             },
             CellDoubleClick: function (sender, args) {
-                if(!bills.tree.selected){
+                if(!bills.tree || !bills.tree.selected){
                     return;
                 }
                 let node = bills.tree.selected.guidance.tree.selected;
@@ -342,6 +365,9 @@ const billsGuidance = (function () {
     //清单表焦点控制
     //@param {Number}row @return {void}
     function billsInitSel(row){
+        if(!bills.tree){
+            return;
+        }
         let guideSheet = guideItem.workBook.getActiveSheet();
         cleanData(guideSheet, guideItem.headers, -1);
         let node = bills.tree.items[row];
@@ -407,6 +433,9 @@ const billsGuidance = (function () {
     //@param {Array}libDats @return {void}
     function initLibs(libDatas){
         libSel.empty();
+        if(!libDatas){
+            return;
+        }
         let selectedLib = sessionStorage.getItem('stdBillsGuidance');
         for(let libData of libDatas){
             let opt = $('<option>').val(libData.id).text(libData.name);
@@ -421,6 +450,12 @@ const billsGuidance = (function () {
     //初始化视图
     //@param {void} @return {void}
     function initViews(){
+        //赋初始高度
+        if($('#billsGuidance_bills').height() === 0 || $('#billsGuidance_items').height() === 0){
+            let height = $(window).height()-$(".header").height()-$(".toolsbar").height()-$(".tools-bar-height-z").height();
+            $('#billsGuidance_bills').height(height / 2);
+            $('#billsGuidance_items').height(height / 2);
+        }
         let modules = [bills, guideItem];
         initWorkBooks(modules);
 
@@ -514,7 +549,7 @@ const billsGuidance = (function () {
         //插入清单
         $('#guidanceInsertBills').click(function () {
             //插入清单
-            if(!bills.tree.selected){
+            if(!bills.tree || !bills.tree.selected){
                 return;
             }
             if(bills.tree.selected.children.length === 0){
@@ -528,6 +563,9 @@ const billsGuidance = (function () {
         });
         //搜索
         $('#stdBillsGuidanceSearch>span>button').click(function () {
+            if(!bills.tree){
+                return;
+            }
             let billsSheet = bills.workBook.getActiveSheet();
             billsLibObj.clearHighLight(bills.workBook);
             let keyword = $('#stdBillsGuidanceSearch>input').val();
@@ -582,6 +620,13 @@ const billsGuidance = (function () {
             $('#billsGuidanceSearchResultCount').text('搜索结果:' + result.length);
             $('#billsGuidanceSearchResult').show();
         });
+        //搜索框回车
+        $('#stdBillsGuidanceSearch>input').bind('keypress', function (event) {
+            if(event.keyCode === 13){
+                $(this).blur();
+                $('#stdBillsGuidanceSearch>span>button').click();
+            }
+        });
         // 关闭搜索结果
         $('#closeSearchBillsGuidance').click(function () {
             $('#billsGuidanceSearchResult').hide();

+ 8 - 0
web/building_saas/main/js/views/std_bills_lib.js

@@ -125,6 +125,7 @@ var billsLibObj = {
         if(projectInfoObj.projectInfo.property.lockBills == true){
             return false;
         }
+        $.bootstrapLoading.start();
         //设置清单备注
         if(node.parent && node.parent.data.recharge){
             node.data.comments = node.parent.data.recharge;
@@ -480,6 +481,13 @@ $('#stdBillsLibSelect').change(function () {
         billsLibObj.loadStdBills(billsLibId);
     }
 });
+//搜索框回车
+$('#stdBillsSearch>input').bind('keypress', function (event) {
+    if(event.keyCode === 13){
+        $(this).blur();
+        $('#stdBillsSearch>span>button').click();
+    }
+});
 
 // 关闭搜索结果
 $('#closeSearchStdBills').click(function () {

+ 7 - 0
web/building_saas/main/js/views/std_ration_lib.js

@@ -330,6 +330,13 @@ $('#stdRationLibSelect').change(function () {
         rationLibObj.loadStdRation(rationLibId);
     }
 });
+//回车键搜索
+$('#rationSearchKeyword').bind('keypress', function (event) {
+    if(event.keyCode === 13){
+        $(this).blur();
+        $('#rationSearch').click();
+    }
+});
 $('#rationSearch').click(function () {
     var keyword = $('#rationSearchKeyword').val(), rationLibID = $('#stdRationLibSelect').val();
     var getResultHtml = function (result) {

+ 2 - 2
web/users/html/login.html

@@ -42,8 +42,8 @@
         <div class="modal-dialog modal-lg" role="document">
             <div class="modal-content">
                 <div class="modal-header">
-                    <h4 class="modal-title">选择登录版本</h4>
-                    <p class="m-0 text-warning"><i class="fa fa-exclamation-triangle"></i> <b>偏好设置</b> 中可以修改您的登录习惯。</p>
+                    <h5 class="modal-title">选择登录版本</h5>
+                    <p class="m-0 text-warning"><i class="fa fa-exclamation-triangle"></i> <b>登录设置</b> 中可以修改您的登录习惯。</p>
                 </div>
                 <div class="modal-body">
                     <div class="row" id="version-area">

+ 3 - 1
web/users/js/login.js

@@ -248,13 +248,15 @@ function cleanError() {
 function setVersion(versionData) {
     let html = '';
     for (let version of versionData) {
-        let description = version.description ? version.description : 'With supporting text below as a natural lead-in to additional content.';
+        let description = version.description ? version.description : '介绍内容';
         let tmpHtml = '<div class="col-sm-6">' +
             '<div class="card card-block">' +
+            '<div class="card-body">' +
             '<h3 class="card-title">'+ version.name +'</h3>' +
             '<p class="card-text">' + description + '</p>' +
             '<a class="btn btn-primary" href="/boot/'+ version._id.toString() +'">开始使用</a>' +
             '</div>' +
+            '</div>' +
             '</div>';
         html += tmpHtml;
     }