فهرست منبع

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/YangHuCost

# Conflicts:
#	package.json
Tony Kang 3 سال پیش
والد
کامیت
12edb9b6da

+ 18 - 14
modules/all_models/quantity_detail.js

@@ -2,20 +2,24 @@
  * Created by chen on 2017/7/20.
  * Created by chen on 2017/7/20.
  */
  */
 
 
-var mongoose = require('mongoose'),
-    Schema = mongoose.Schema;
+var mongoose = require("mongoose"),
+  Schema = mongoose.Schema;
 
 
-var quantity_detail = new Schema({
-    ID:String,
+var quantity_detail = new Schema(
+  {
+    ID: String,
     projectID: Number,
     projectID: Number,
-    rationID:String,
-    billID:String,
-    name:String,
-    regex:String,
-    result:Number,
-    isSummation: {type: Number,default:1},//0:false 1:true
-    referenceIndexs:[Number],
-    seq:Number
-},{versionKey:false});
+    rationID: String,
+    billID: String,
+    name: String,
+    regex: String,
+    result: Number,
+    isSummation: { type: Number, default: 1 }, //0:false 1:true,
+    memo: String,
+    referenceIndexs: [Number],
+    seq: Number,
+  },
+  { versionKey: false }
+);
 
 
-mongoose.model('quantity_detail', quantity_detail);
+mongoose.model("quantity_detail", quantity_detail);

+ 19 - 12
web/building_saas/main/html/main.html

@@ -107,17 +107,6 @@
                       <div class="btn-group ml-2">
                       <div class="btn-group ml-2">
                           <a class="dropdown-toggle btn btn-light btn-sm" data-toggle="dropdown" href="#" id="moreMenuA" role="button" aria-haspopup="true" aria-expanded="false">更多</a>
                           <a class="dropdown-toggle btn btn-light btn-sm" data-toggle="dropdown" href="#" id="moreMenuA" role="button" aria-haspopup="true" aria-expanded="false">更多</a>
                           <div class="dropdown-menu dropright" id="moreMenu">
                           <div class="dropdown-menu dropright" id="moreMenu">
-                              <a id="displayA" href="javascript:void(0);" data-toggle="dropdown" class="dropdown-item dropdown-toggle"><i class="fa fa-list-ol"></i> 显示至...</a>
-                              <div id="subDisplay" class="dropdown-menu dropdown-menu-left" style="min-width: 6.5rem; position: absolute; transform: translate3d(158px, 3px, 0px); top: 0px; left: 0px; will-change: transform;" x-placement="right-start">
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayX">项</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayM">目</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayJ">节</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayXM">细目</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayZDCXM">最底层细目</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayDE">定额</a>
-                              </div>
-                              <!--<a href="javascript:void(0);" id="ZLFB_btn" class="dropdown-item" data-placement="bottom"><i class="fa fa-retweet" aria-hidden="true"></i> 整理分部</a>
-                                <a id="switchTznr" href="javascript:void(0);"  class="dropdown-item"><i class="fa fa-eye" aria-hidden="true"></i> 显示特征</a>-->
                             <% if((compilationName === '公路造价(2018)' || compilationName === '安徽养护(2018)' || compilationName === '广东公路造价(2018)' || compilationName === '浙江养护(2005)') && boqType) { %>
                             <% if((compilationName === '公路造价(2018)' || compilationName === '安徽养护(2018)' || compilationName === '广东公路造价(2018)' || compilationName === '浙江养护(2005)') && boqType) { %>
                                 <a class="dropdown-item" id="open-export-modal" href="javascript:void(0);"><i class="fa fa-code-fork"></i> 数据接口</a>
                                 <a class="dropdown-item" id="open-export-modal" href="javascript:void(0);"><i class="fa fa-code-fork"></i> 数据接口</a>
                                 <!-- <a class="dropdown-item" id="open-export-modal" href="javascript:void(0);" data-toggle="modal" data-target="#interface-export-modal"><i class="fa fa-code-fork"></i> 数据接口</a> -->
                                 <!-- <a class="dropdown-item" id="open-export-modal" href="javascript:void(0);" data-toggle="modal" data-target="#interface-export-modal"><i class="fa fa-code-fork"></i> 数据接口</a> -->
@@ -128,7 +117,18 @@
                             <a href="javascript:void(0)"  class="dropdown-item" name="lockBills"> <i class="fa fa-lock" aria-hidden="true"></i> 锁定清单</a>
                             <a href="javascript:void(0)"  class="dropdown-item" name="lockBills"> <i class="fa fa-lock" aria-hidden="true"></i> 锁定清单</a>
                             <% } %>
                             <% } %>
                               <a id = "menu_calc_program_manage"  href="javascript:void(0);" class="dropdown-item"><i class="fa fa-calculator" aria-hidden="true"></i> 总计算程序</a>
                               <a id = "menu_calc_program_manage"  href="javascript:void(0);" class="dropdown-item"><i class="fa fa-calculator" aria-hidden="true"></i> 总计算程序</a>
-                          </div>
+                          </div> 
+                      </div>
+                      <div class="btn-group ml-2">
+                        <a class="dropdown-toggle btn btn-light btn-sm" data-toggle="dropdown" href="#" id="displayA" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-list-ol"></i> 显示至...</a>
+                        <div class="dropdown-menu dropright" id="subDisplay">
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayX">项</a>
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayM">目</a>
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayJ">节</a>
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayXM">细目</a>
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayZDCXM">最底层细目</a>
+                          <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayDE">定额</a>
+                        </div>
                       </div>
                       </div>
                       <% } %>
                       <% } %>
                  <!--   <span class="btn btn-light btn-sm">
                  <!--   <span class="btn btn-light btn-sm">
@@ -232,6 +232,13 @@
                                   <!--<li class="nav-item" id="MBZM_div">
                                   <!--<li class="nav-item" id="MBZM_div">
                                       <a class="nav-link sub-item" id="linkMBZM" data-toggle="tab" href="#subSpread" role="tab">模板子目</a>
                                       <a class="nav-link sub-item" id="linkMBZM" data-toggle="tab" href="#subSpread" role="tab">模板子目</a>
                                   </li>-->
                                   </li>-->
+                                  
+                                  <% if ((compilationName === '四川养护(2013)') || (compilationName === '部颁2018计价标准')) { %>
+                                  <li class="nav-item" id="TZJNR_div">
+                                    <a class="nav-link sub-item" id="linkTZJNR" data-toggle="tab" href="#subSpread"
+                                      role="tab">特征及内容</a>
+                                  </li>
+                                  <% } %>
                               </ul>
                               </ul>
                               <!-- Tab panes -->
                               <!-- Tab panes -->
                               <div class="tab-content" id="tabCon">
                               <div class="tab-content" id="tabCon">

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1730 - 1669
web/building_saas/main/js/views/glj_view.js


+ 1 - 0
web/building_saas/main/js/views/project_view.js

@@ -52,6 +52,7 @@ var projectObj = {
       let nodeID = node ? node.getID() : null;
       let nodeID = node ? node.getID() : null;
       gljOprObj.mainTreeSelectedChange = gljOprObj.selectedNodeId != nodeID;
       gljOprObj.mainTreeSelectedChange = gljOprObj.selectedNodeId != nodeID;
       if (init) subObj.initNavItem(node);
       if (init) subObj.initNavItem(node);
+      if (calcTools.isBill(node)) subObj.setTZJNRValue(node);
       /*
       /*
              2018-11-9 在NavItem里设置了默认显示的item,在里执行了click这个操作所以这两个操作不用重复执行了
              2018-11-9 在NavItem里设置了默认显示的item,在里执行了click这个操作所以这两个操作不用重复执行了
              gljOprObj.showDataIfRationSelect(node);
              gljOprObj.showDataIfRationSelect(node);

+ 385 - 346
web/building_saas/main/js/views/sub_view.js

@@ -9,416 +9,455 @@
 
 
 let subSpread = null;
 let subSpread = null;
 let subObj = {
 let subObj = {
-    fisrtLinked: true,  //提升焦点变换性能 2019年4月15日
-    TZJNRrePercent:null,
-    showGljSubTab:false,
-    firstOpen:true,
-    initSubSpread:function () {
-        //清单精灵
-        BillsElf.buildSheet();
-        $("#subSpread").show();
-        subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 4);
-        sheetCommonObj.spreadDefaultStyle(subSpread);
-        subSpread.options.allowUserDragDrop = false;
-        subSpread.options.allowUserDragFill = false;
-        subSpread.getSheet(2).name('JSCX');
-
-        // 工料机
-        gljOprObj.initSheet(subSpread.getSheet(0));
-        //sheetCommonObj.shieldAllCells(subSpread.getSheet(0), gljOprObj.setting);
-        SheetDataHelper.protectdSheet(subSpread.getSheet(0));
-        // assistOprObj.initSheet(subSpread.getSheet(1));
-        // sheetCommonObj.shieldAllCells(subSpread.getSheet(1), assistOprObj.setting);
-
-        if(!projectReadOnly){
-            gljContextMenu.loadGLJSpreadContextMenu();
-        }
+  fisrtLinked: true, //提升焦点变换性能 2019年4月15日
+  TZJNRrePercent: null,
+  showGljSubTab: false,
+  firstOpen: true,
+  initSubSpread: function () {
+    //清单精灵
+    BillsElf.buildSheet();
+    $("#subSpread").show();
+    subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 5);
+    sheetCommonObj.spreadDefaultStyle(subSpread);
+    subSpread.options.allowUserDragDrop = false;
+    subSpread.options.allowUserDragFill = false;
+    subSpread.getSheet(2).name("JSCX");
 
 
-        //工程量明细
-        gljOprObj.initDetailSheet(subSpread.getSheet(1));
-        SheetDataHelper.protectdSheet(subSpread.getSheet(1));
+    // 工料机
+    gljOprObj.initSheet(subSpread.getSheet(0));
+    //sheetCommonObj.shieldAllCells(subSpread.getSheet(0), gljOprObj.setting);
+    SheetDataHelper.protectdSheet(subSpread.getSheet(0));
+    // assistOprObj.initSheet(subSpread.getSheet(1));
+    // sheetCommonObj.shieldAllCells(subSpread.getSheet(1), assistOprObj.setting);
 
 
-        //安装增加费
-        installationFeeObj.initRationInstallSheet(subSpread.getSheet(3));
-        SheetDataHelper.protectdSheet(subSpread.getSheet(3));
+    if (!projectReadOnly) {
+      gljContextMenu.loadGLJSpreadContextMenu();
+    }
 
 
-        //绑定esc
-        let subEscSheets = [];
-        subEscSheets.push({sheet: subSpread.getSheet(0), editStarting: gljOprObj.editChecking, editEnded: gljOprObj.onEditEnded});//定额工料机
-        subEscSheets.push({sheet: subSpread.getSheet(1), editStarting: gljOprObj.editChecking, editEnded: gljOprObj.onEditEnded});//工程量明细
-        subEscSheets.push({sheet: subSpread.getSheet(3), editStarting: installationFeeObj.rationInstSheeteditChecking, editEnded: null});//定额安装增加费
-        sheetCommonObj.bindEscKey(subSpread, subEscSheets);
+    //工程量明细
+    gljOprObj.initDetailSheet(subSpread.getSheet(1));
+    SheetDataHelper.protectdSheet(subSpread.getSheet(1));
 
 
-        if(projectReadOnly){
-            sheetCommonObj.disableSpread(subSpread);
-        }
-    },
-    initNavItem:function (node) {
-     /*   1、造价书选中行类别是“大项费用”、“分部”、“分项”、“清单”时,显示按钮“工程量明细”、“计算程序”、“特征及内容”,默认打开“计算程序”。
+    //安装增加费
+    installationFeeObj.initRationInstallSheet(subSpread.getSheet(3));
+    SheetDataHelper.protectdSheet(subSpread.getSheet(3));
+
+    // 特征及内容
+    subObj.initTZJNR();
+
+    //绑定esc
+    let subEscSheets = [];
+    subEscSheets.push({ sheet: subSpread.getSheet(0), editStarting: gljOprObj.editChecking, editEnded: gljOprObj.onEditEnded }); //定额工料机
+    subEscSheets.push({ sheet: subSpread.getSheet(1), editStarting: gljOprObj.editChecking, editEnded: gljOprObj.onEditEnded }); //工程量明细
+    subEscSheets.push({ sheet: subSpread.getSheet(3), editStarting: installationFeeObj.rationInstSheeteditChecking, editEnded: null }); //定额安装增加费
+    sheetCommonObj.bindEscKey(subSpread, subEscSheets);
+
+    if (projectReadOnly) {
+      sheetCommonObj.disableSpread(subSpread);
+    }
+  },
+  initNavItem: function (node) {
+    /*   1、造价书选中行类别是“大项费用”、“分部”、“分项”、“清单”时,显示按钮“工程量明细”、“计算程序”、“特征及内容”,默认打开“计算程序”。
           2、选中行类别是“定额”、“量价”、“人材机”时,显示按钮“人材机”、“子目换算”、“工程量明细”、“计算程序”、“安装增加费”、"模板子目",默认打开“人材机”。
           2、选中行类别是“定额”、“量价”、“人材机”时,显示按钮“人材机”、“子目换算”、“工程量明细”、“计算程序”、“安装增加费”、"模板子目",默认打开“人材机”。
      */
      */
-        if (!node) {
-            return;
-        }
-        $('.sub-item').removeClass('active');
-        if(node.sourceType == ModuleNames.ration){
-            //GLJ_div //ZMHS_div
-            $("#GLJ_div").show();
-            $("#ZMHS_div").show();
-            $("#MBZM_div").show();
-            installationFeeObj.engineeringTypeChecking();//检查是否安装工程
-  			$('#QDJL_div').hide();
-            $("#linkGLJ").addClass();
-            $(gljOprObj.rationTab).click();
-        }else {
-            $("#GLJ_div").hide();
-            $("#ZMHS_div").hide();
-            $("#MBZM_div").hide();
-            $("#AZZJF_div").hide();
-            $('#QDJL_div').hide();//暂时隐藏
-            $(gljOprObj.billsTab).click();
-        }
-        projectObj.mainSpread.focus();
-    },
-    //初始化人材机和项目特征文本两个区域的宽度,改变窗口大小时调用此方法,实时刷新
-    initItemWidth:function (){
-        //总宽度
-        let totalWidth = $('#subItems').width();
-        //人材机和项目特征文本比例
-        const openWidth = 30;//打开项目特征工具条
-        const tab_tem = (305+openWidth+10)/totalWidth;//tab显示框默认宽度:305(表格宽度) + 30(工具条宽度)+10(resize div 宽度)
-        let textVisible = $('#replaceText').is(':visible'),
-            //默认比例
-            textPercent = tab_tem * 100 + '%',//'15%',
-            rcjPercent = (1 - tab_tem)* 100 + '%';//85
-        //文本没显示,则打开工具条固定30px转换百分比
-        if (!subObj.showGljSubTab) {
-            textPercent = openWidth / totalWidth;
-            rcjPercent = 1 - textPercent;
-            textPercent = textPercent * 100 + '%';
-            rcjPercent = rcjPercent * 100 + '%';
-        }
-        //设置特征及内容与排版规则的比例
-        $('#subSpread').css('width', rcjPercent);
-        $('#itemTextDiv').css('width', textPercent);
-        //打开了项目特征,则继续加载人材机表和项目特征文本具体比例
-        if (subObj.showGljSubTab === true) {
-            let rg_sideResizeEles = MaterialController.getSideResize();
-            SlideResize.loadHorizonWidth(rg_sideResizeEles.eleObj.module,
-                [rg_sideResizeEles.eleObj.resize], [rg_sideResizeEles.eleObj.left, rg_sideResizeEles.eleObj.right]);
-            $("#gljSubDiv").width( $('#itemTextDiv').width() - rg_sideResizeEles.eleObj.resize.width() - 30)
-        }
-    },
-    initGljSubTab:function() {
-        if(!($('#linkGLJ').hasClass('active'))){
-            return;
-        }
-        if(this.showGljSubTab == true){
-            $("#gljSubDiv").show();
-            $("#rgResize").show();
-        } else {
-            $("#gljSubDiv").hide();
-            $("#rgResize").hide();
-        }
-        $("#subSpread").addClass("ration_glj_spread");
-        this.initItemWidth();
-    },
-    showGljSubTabData:function () {
-        this.initGljSubTab();
-        zmhs_obj.showDatas();
-        if (gljOprObj.activeTab !== gljOprObj.preActiveTab) {   //提高焦点变换性能 2019年4月15日
-            if($("#subItems").is(':visible')) refreshSubSpread();
-        }
-        if(this.firstOpen == true){
-            $("#zmhs_toogle").click();
-            this.firstOpen = false;
-        }
+    if (!node) {
+      return;
     }
     }
+    $(".sub-item").removeClass("active");
+    if (node.sourceType == ModuleNames.ration) {
+      //GLJ_div //ZMHS_div
+      $("#GLJ_div").show();
+      $("#ZMHS_div").show();
+      $("#MBZM_div").show();
+      installationFeeObj.engineeringTypeChecking(); //检查是否安装工程
+      $("#TZJNR_div").hide();
+      $("#QDJL_div").hide();
+      $("#linkGLJ").addClass();
+      $(gljOprObj.rationTab).click();
+    } else {
+      $("#GLJ_div").hide();
+      $("#ZMHS_div").hide();
+      $("#MBZM_div").hide();
+      $("#AZZJF_div").hide();
+      $("#TZJNR_div").show();
+      $("#QDJL_div").hide(); //暂时隐藏
+      $(gljOprObj.billsTab).click();
+    }
+    projectObj.mainSpread.focus();
+  },
+  initTZJNR: function () {
+    let sheet = subSpread.getSheet(4);
+    let viewport = GC.Spread.Sheets.SheetArea.viewport;
+    let colHeader = GC.Spread.Sheets.SheetArea.colHeader;
+    let rowHeader = GC.Spread.Sheets.SheetArea.rowHeader;
+    sheet.setRowCount(0, colHeader); // 不要表头行
+    sheet.setColumnCount(0, rowHeader); // 不要表头列
+    sheet.setRowCount(1, viewport); // 只要一行
+    sheet.setColumnCount(1, viewport); // 只要一列
+    sheet.setRowHeight(0, 400); // 行高400px
+    sheet.setColumnWidth(0, $("#subItems").width(), viewport); // 列宽与div容器同
+    sheet.getCell(0, 0).wordWrap(true); // 自动折行
+    sheet.getCell(0, 0).value(""); // 初始化空值
+    sheet.options.isProtected = true; // 只读
+    sheet.getRange(-1, 0, -1, 1, viewport).locked(true); // 只读
+  },
+  setTZJNRValue: function (node) {
+    if (!node) return;
+    let s = `[项目特征]\n${node.data.itemCharacterText || ""}\n\n[工作内容]\n${node.data.jobContentText || ""}`;
+    let sheet = subSpread.getSheet(4);
+    sheet.getCell(0, 0).value(s);
+  },
+  //初始化人材机和项目特征文本两个区域的宽度,改变窗口大小时调用此方法,实时刷新
+  initItemWidth: function () {
+    //总宽度
+    let totalWidth = $("#subItems").width();
+    //人材机和项目特征文本比例
+    const openWidth = 30; //打开项目特征工具条
+    const tab_tem = (305 + openWidth + 10) / totalWidth; //tab显示框默认宽度:305(表格宽度) + 30(工具条宽度)+10(resize div 宽度)
+    let textVisible = $("#replaceText").is(":visible"),
+      //默认比例
+      textPercent = tab_tem * 100 + "%", //'15%',
+      rcjPercent = (1 - tab_tem) * 100 + "%"; //85
+    //文本没显示,则打开工具条固定30px转换百分比
+    if (!subObj.showGljSubTab) {
+      textPercent = openWidth / totalWidth;
+      rcjPercent = 1 - textPercent;
+      textPercent = textPercent * 100 + "%";
+      rcjPercent = rcjPercent * 100 + "%";
+    }
+    //设置特征及内容与排版规则的比例
+    $("#subSpread").css("width", rcjPercent);
+    $("#itemTextDiv").css("width", textPercent);
+    //打开了项目特征,则继续加载人材机表和项目特征文本具体比例
+    if (subObj.showGljSubTab === true) {
+      let rg_sideResizeEles = MaterialController.getSideResize();
+      SlideResize.loadHorizonWidth(
+        rg_sideResizeEles.eleObj.module,
+        [rg_sideResizeEles.eleObj.resize],
+        [rg_sideResizeEles.eleObj.left, rg_sideResizeEles.eleObj.right]
+      );
+      $("#gljSubDiv").width($("#itemTextDiv").width() - rg_sideResizeEles.eleObj.resize.width() - 30);
+    }
+  },
+  initGljSubTab: function () {
+    if (!$("#linkGLJ").hasClass("active")) {
+      return;
+    }
+    if (this.showGljSubTab == true) {
+      $("#gljSubDiv").show();
+      $("#rgResize").show();
+    } else {
+      $("#gljSubDiv").hide();
+      $("#rgResize").hide();
+    }
+    $("#subSpread").addClass("ration_glj_spread");
+    this.initItemWidth();
+  },
+  showGljSubTabData: function () {
+    this.initGljSubTab();
+    zmhs_obj.showDatas();
+    if (gljOprObj.activeTab !== gljOprObj.preActiveTab) {
+      //提高焦点变换性能 2019年4月15日
+      if ($("#subItems").is(":visible")) refreshSubSpread();
+    }
+    if (this.firstOpen == true) {
+      $("#zmhs_toogle").click();
+      this.firstOpen = false;
+    }
+  },
 };
 };
 
 
-
-
-$("#linkGLJ").click(function(){
-    $("#subItems").children().hide();//控制显示subSpread,隐藏特征及内容spread
-    //show
-    //MaterialController.showReplaceDiv();
-    //subObj.showGljSubTabData();   //提升焦点变换性能 2019年4月15日
-    $("#subSpread").show();
-    $("#itemTextDiv").show();
-    $("#gljItemTab").show();
-    subSpread.options.allowUserDragFill = false;
-    //refreshSubSpread();   //提升焦点变换性能 2019年4月15日
-    subSpread.setActiveSheetIndex(0);
-    //提高焦点变换性能 2019年4月15日--
-    if (!subObj.fisrtLinked) {
-        gljOprObj.preActiveTab = gljOprObj.activeTab;
-    }
-    subObj.fisrtLinked = false;
-    //--
-    gljOprObj.activeTab='#linkGLJ';
-    gljOprObj.setNodeShowTab();
+$("#linkGLJ").click(function () {
+  $("#subItems").children().hide(); //控制显示subSpread,隐藏特征及内容spread
+  //show
+  //MaterialController.showReplaceDiv();
+  //subObj.showGljSubTabData();   //提升焦点变换性能 2019年4月15日
+  $("#subSpread").show();
+  $("#itemTextDiv").show();
+  $("#gljItemTab").show();
+  subSpread.options.allowUserDragFill = false;
+  //refreshSubSpread();   //提升焦点变换性能 2019年4月15日
+  subSpread.setActiveSheetIndex(0);
+  //提高焦点变换性能 2019年4月15日--
+  if (!subObj.fisrtLinked) {
+    gljOprObj.preActiveTab = gljOprObj.activeTab;
+  }
+  subObj.fisrtLinked = false;
+  //--
+  gljOprObj.activeTab = "#linkGLJ";
+  gljOprObj.setNodeShowTab();
 });
 });
 
 
-
-$("#linkAZZJF").click(function(){
-    $("#subItems").children().hide();
-    MaterialController.hideReplaceDiv();
-    $("#subSpread").show();
-    refreshSubSpread();
-    subSpread.setActiveSheetIndex(3);
-    gljOprObj.activeTab='#linkAZZJF';
-    gljOprObj.setNodeShowTab();
+$("#linkAZZJF").click(function () {
+  $("#subItems").children().hide();
+  MaterialController.hideReplaceDiv();
+  $("#subSpread").show();
+  refreshSubSpread();
+  subSpread.setActiveSheetIndex(3);
+  gljOprObj.activeTab = "#linkAZZJF";
+  gljOprObj.setNodeShowTab();
 });
 });
 
 
-$("#linkGCLMX").click(function(){
-    $("#subItems").children().hide();
-    MaterialController.hideReplaceDiv();
-    $("#subSpread").show();
-    subSpread.options.allowUserDragFill = true;
-    //refreshSubSpread(); //提升焦点变换性能 2019年4月15日
-    subSpread.setActiveSheetIndex(1);
-    gljOprObj.preActiveTab = gljOprObj.activeTab;   //提升焦点变换性能 2019年4月15日
-    gljOprObj.activeTab='#linkGCLMX';
-    gljOprObj.setNodeShowTab();
+$("#linkGCLMX").click(function () {
+  $("#subItems").children().hide();
+  MaterialController.hideReplaceDiv();
+  $("#subSpread").show();
+  subSpread.options.allowUserDragFill = true;
+  //refreshSubSpread(); //提升焦点变换性能 2019年4月15日
+  subSpread.setActiveSheetIndex(1);
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkGCLMX";
+  gljOprObj.setNodeShowTab();
 });
 });
 
 
-$("#linkJSCX").click(function(){        // 计算程序
-    $("#subItems").children().hide();
-    MaterialController.hideReplaceDiv();
-    $("#subSpread").show();
-    refreshSubSpread();
-    subSpread.setActiveSheetIndex(2);
-    calcProgramObj.initSheet(subSpread.getSheet(2));
-
-    if (!projectObj.mainController.tree.selected)
-        projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode();
-    let sel = projectObj.mainController.tree.selected;
-    calcProgramObj.refreshCalcProgram(sel, 3);
-    gljOprObj.preActiveTab = gljOprObj.activeTab;   //提升焦点变换性能 2019年4月15日
-    gljOprObj.activeTab='#linkJSCX';
-    gljOprObj.setNodeShowTab();
+$("#linkJSCX").click(function () {
+  // 计算程序
+  $("#subItems").children().hide();
+  MaterialController.hideReplaceDiv();
+  $("#subSpread").show();
+  refreshSubSpread();
+  subSpread.setActiveSheetIndex(2);
+  calcProgramObj.initSheet(subSpread.getSheet(2));
+
+  if (!projectObj.mainController.tree.selected) projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode();
+  let sel = projectObj.mainController.tree.selected;
+  calcProgramObj.refreshCalcProgram(sel, 3);
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkJSCX";
+  gljOprObj.setNodeShowTab();
 });
 });
 
 
+$("#linkTZJNR").click(function () {
+  // 特征及内容
+  $("#subItems").children().hide();
+  MaterialController.hideReplaceDiv();
+  $("#subSpread").show();
+  refreshSubSpread();
+  subSpread.setActiveSheetIndex(4);
+
+  if (!projectObj.mainController.tree.selected) projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode();
+  let sel = projectObj.mainController.tree.selected;
+  subObj.setTZJNRValue(sel);
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkTZJNR";
+  gljOprObj.setNodeShowTab();
+});
 
 
-
-$("#linkZMHS").click(function(){        // 子目换算
-    $("#subItems").children().hide();
-    $("#tabZMHS").show();
-    zmhs_obj.loadSideResize();
-    refreshSubSpread();
-    gljOprObj.preActiveTab = gljOprObj.activeTab;   //提升焦点变换性能 2019年4月15日
-    gljOprObj.activeTab='#linkZMHS';
-    gljOprObj.setNodeShowTab();
+$("#linkZMHS").click(function () {
+  // 子目换算
+  $("#subItems").children().hide();
+  $("#tabZMHS").show();
+  zmhs_obj.loadSideResize();
+  refreshSubSpread();
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkZMHS";
+  gljOprObj.setNodeShowTab();
 });
 });
-$("#linkMBZM").click(function(){        // 模板子目
-    $("#subItems").children().hide();
-    $("#tabMBZM").show();
-    refreshSubSpread();
-    gljOprObj.preActiveTab = gljOprObj.activeTab;   //提升焦点变换性能 2019年4月15日
-    gljOprObj.activeTab='#linkMBZM';
-    gljOprObj.setNodeShowTab();
+$("#linkMBZM").click(function () {
+  // 模板子目
+  $("#subItems").children().hide();
+  $("#tabMBZM").show();
+  refreshSubSpread();
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkMBZM";
+  gljOprObj.setNodeShowTab();
 });
 });
 
 
 //清单精灵
 //清单精灵
-$('#linkQDJL').click(function () {
-    gljOprObj.preActiveTab = gljOprObj.activeTab;   //提升焦点变换性能 2019年4月15日
-    gljOprObj.activeTab='#linkQDJL';
-    $("#subItems").children().hide();
-    $('#qdjl').show();
-    let selectedNode = projectObj.mainController.tree.selected;
-    BillsElf.billsSelElf(selectedNode.data.code);
-    refreshSubSpread();
-    gljOprObj.setNodeShowTab();
-    BillsElf.refreshWorkBook();
-
+$("#linkQDJL").click(function () {
+  gljOprObj.preActiveTab = gljOprObj.activeTab; //提升焦点变换性能 2019年4月15日
+  gljOprObj.activeTab = "#linkQDJL";
+  $("#subItems").children().hide();
+  $("#qdjl").show();
+  let selectedNode = projectObj.mainController.tree.selected;
+  BillsElf.billsSelElf(selectedNode.data.code);
+  refreshSubSpread();
+  gljOprObj.setNodeShowTab();
+  BillsElf.refreshWorkBook();
 });
 });
 
 
 //应用到选中清单、应用到所有,添加位置列如果隐藏了,则重新显示
 //应用到选中清单、应用到所有,添加位置列如果隐藏了,则重新显示
-function colSettingAddPosition(addPosition){
-    let settingMapping = {1: 'itemCharacterText', 2: 'name', 3: 'jobContentText', 4: 'both'};
-    let settingInfo = settingMapping[addPosition];
-    if(!settingInfo){
-        return;
-    }
-    let fields = [];
-    if(settingInfo === 'both'){
-        fields = [settingMapping['1'], settingMapping['3']];
-    }
-    else{
-        fields = [settingInfo];
-    }
-    let needToUpdate = false;
-    let showItemCharacter = false;
-    for(let field of fields){
-        let colVisible = colSettingObj.getVisible(field);
-        if(field === settingMapping['1'] && !colVisible){
-            showItemCharacter = true;
-        }
-        if(!colVisible){
-            colSettingObj.setVisible(field, true);
-            needToUpdate = true;
-        }
-    }
-    if(showItemCharacter){
-        switchTznrHtml(false);
+function colSettingAddPosition(addPosition) {
+  let settingMapping = { 1: "itemCharacterText", 2: "name", 3: "jobContentText", 4: "both" };
+  let settingInfo = settingMapping[addPosition];
+  if (!settingInfo) {
+    return;
+  }
+  let fields = [];
+  if (settingInfo === "both") {
+    fields = [settingMapping["1"], settingMapping["3"]];
+  } else {
+    fields = [settingInfo];
+  }
+  let needToUpdate = false;
+  let showItemCharacter = false;
+  for (let field of fields) {
+    let colVisible = colSettingObj.getVisible(field);
+    if (field === settingMapping["1"] && !colVisible) {
+      showItemCharacter = true;
     }
     }
-    if(needToUpdate){
-       colSettingObj.updateColSetting(true);
+    if (!colVisible) {
+      colSettingObj.setVisible(field, true);
+      needToUpdate = true;
     }
     }
+  }
+  if (showItemCharacter) {
+    switchTznrHtml(false);
+  }
+  if (needToUpdate) {
+    colSettingObj.updateColSetting(true);
+  }
 }
 }
 
 
-function activeSubSheetIs(idx){
-    let rst = subSpread.getActiveSheetIndex() == idx;
-    return rst;
+function activeSubSheetIs(idx) {
+  let rst = subSpread.getActiveSheetIndex() == idx;
+  return rst;
 }
 }
 
 
-function activeSubSheetIsCalcProgram(){
-    return subSpread.getActiveSheetIndex() == subSheetIndex.ssiCalcProgram;
+function activeSubSheetIsCalcProgram() {
+  return subSpread.getActiveSheetIndex() == subSheetIndex.ssiCalcProgram;
 }
 }
 
 
 //弹出清单规则或定额库后导致subSpread和特征及内容spread显示出问题
 //弹出清单规则或定额库后导致subSpread和特征及内容spread显示出问题
-function refreshSubSpread(){
-    if(subSpread) subSpread.refresh();
-    if(MaterialController.spread) MaterialController.spread.refresh();
-    BillsElf.refreshWorkBook();
-    if($('#rnc-zm').is(':visible')|| $('#rnc-fz').is(':visible') || $('#rnc-cus') || $('#rnc-stable').is(':visible')) zmhs_obj.refresh();
-    if($('#linkMBZM').hasClass('active')) mbzm_obj.refresh();
+function refreshSubSpread() {
+  if (subSpread) subSpread.refresh();
+  if (MaterialController.spread) MaterialController.spread.refresh();
+  BillsElf.refreshWorkBook();
+  if ($("#rnc-zm").is(":visible") || $("#rnc-fz").is(":visible") || $("#rnc-cus") || $("#rnc-stable").is(":visible")) zmhs_obj.refresh();
+  if ($("#linkMBZM").hasClass("active")) mbzm_obj.refresh();
 }
 }
 
 
 let subViewObj = {
 let subViewObj = {
-    linkTabClick: function () {
-        $("#subItems").children().hide();
-        $($(this).attr('href')).show();
-    },
-    loadComments: function (node) {
-        let comments = [];
-        let commentText = '';
-        if (node) {
-            if (node.sourceType === projectObj.project.Bills.getSourceType() &&
-                (node.data.type === billType.FX || node.data.type === billType.BX || node.data.type === billType.BILL)) {
-                if(node.data.ruleText && node.data.ruleText !== ''){
-                    comments.push('工程量计算规则:');
-                    comments.push(node.data.ruleText);
-                }
-                if(node.data.comments && node.data.comments !== ''){
-                    comments.push('清单注释:');
-                    comments.push(node.data.comments);
-                }
-            } else if (node.sourceType === projectObj.project.Ration.getSourceType()) {
-                if(node.data.content && node.data.content !== ''){
-                    comments.push('工作内容:');
-                    comments.push(node.data.content);
-                }
-                if(node.data.annotation && node.data.annotation !== ''){
-                    comments.push('附注:');
-                    comments.push(node.data.annotation);
-                }
-            }
-            commentText = comments.join('\n');
+  linkTabClick: function () {
+    $("#subItems").children().hide();
+    $($(this).attr("href")).show();
+  },
+  loadComments: function (node) {
+    let comments = [];
+    let commentText = "";
+    if (node) {
+      if (
+        node.sourceType === projectObj.project.Bills.getSourceType() &&
+        (node.data.type === billType.FX || node.data.type === billType.BX || node.data.type === billType.BILL)
+      ) {
+        if (node.data.ruleText && node.data.ruleText !== "") {
+          comments.push("工程量计算规则:");
+          comments.push(node.data.ruleText);
+        }
+        if (node.data.comments && node.data.comments !== "") {
+          comments.push("清单注释:");
+          comments.push(node.data.comments);
+        }
+      } else if (node.sourceType === projectObj.project.Ration.getSourceType()) {
+        if (node.data.content && node.data.content !== "") {
+          comments.push("工作内容:");
+          comments.push(node.data.content);
         }
         }
-        $('#comments>textarea').val(commentText);
-    },
-    saveComments: function (node) {
-        let text = $('#comments>textarea').val();
-        if (node && node.sourceType === projectObj.project.Bills.getSourceType()) {
-            if (node.data.comments !== text) {
-                projectObj.project.Bills.updateField(node.source, "comments", text);
-            }
-        } else if (node && node.sourceType === projectObj.project.Ration.getSourceType()) {
-            if (node.data.comments !== text) {
-                projectObj.project.Ration.updateField(node.source, "comments", text);
-            }
+        if (node.data.annotation && node.data.annotation !== "") {
+          comments.push("附注:");
+          comments.push(node.data.annotation);
         }
         }
+      }
+      commentText = comments.join("\n");
     }
     }
-}
+    $("#comments>textarea").val(commentText);
+  },
+  saveComments: function (node) {
+    let text = $("#comments>textarea").val();
+    if (node && node.sourceType === projectObj.project.Bills.getSourceType()) {
+      if (node.data.comments !== text) {
+        projectObj.project.Bills.updateField(node.source, "comments", text);
+      }
+    } else if (node && node.sourceType === projectObj.project.Ration.getSourceType()) {
+      if (node.data.comments !== text) {
+        projectObj.project.Ration.updateField(node.source, "comments", text);
+      }
+    }
+  },
+};
 
 
 $("#linkComments").click(subViewObj.linkTabClick);
 $("#linkComments").click(subViewObj.linkTabClick);
 
 
-$('#linkGLJ').on('shown.bs.tab', function () {
-    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');
+$("#linkGLJ").on("shown.bs.tab", function () {
+  gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, "111111");
 });
 });
 
 
-$('#linkZMHS').on('shown.bs.tab', function (e) {
-    if(zmhs_obj.coeSpread == null || zmhs_obj.assSpread == null){
-        zmhs_obj.initSpread();
-    }
-    zmhs_obj.refresh();
-    zmhs_obj.showZMHSData();
+$("#linkZMHS").on("shown.bs.tab", function (e) {
+  if (zmhs_obj.coeSpread == null || zmhs_obj.assSpread == null) {
+    zmhs_obj.initSpread();
+  }
+  zmhs_obj.refresh();
+  zmhs_obj.showZMHSData();
 });
 });
 
 
-
-$('#linkMBZM').on('shown.bs.tab', function (e) {
-    mbzm_obj.refresh();
-    mbzm_obj.showMBZMData();
+$("#linkMBZM").on("shown.bs.tab", function (e) {
+  mbzm_obj.refresh();
+  mbzm_obj.showMBZMData();
 });
 });
 
 
-
-$('#linkComments').on('shown.bs.tab', function () {
-    subViewObj.loadComments(projectObj.project.mainTree.selected);
+$("#linkComments").on("shown.bs.tab", function () {
+  subViewObj.loadComments(projectObj.project.mainTree.selected);
 });
 });
 
 
-$('#linkGCLMX').on('shown.bs.tab', function () {
-    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');
+$("#linkGCLMX").on("shown.bs.tab", function () {
+  gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, "111111");
 });
 });
 
 
-$('#linkAZZJF').on('shown.bs.tab', function () {
-    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');
+$("#linkAZZJF").on("shown.bs.tab", function () {
+  gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, "111111");
 });
 });
 
 
-$('#zmhs_toogle').bind('click',function (){
-   $("#zmhs_nav").show();
-   if(subObj.showGljSubTab == false){
-       subObj.activeTab?$(subObj.activeTab).click():$("#hs-nav").click();
-   }
-    $("#zmhs_toogle").hide();
+$("#zmhs_toogle").bind("click", function () {
+  $("#zmhs_nav").show();
+  if (subObj.showGljSubTab == false) {
+    subObj.activeTab ? $(subObj.activeTab).click() : $("#hs-nav").click();
+  }
+  $("#zmhs_toogle").hide();
 });
 });
 
 
-$('.gljSubTab ul li a').bind('click',function () {
-    if(this.hash =="#rnc-close"){
-        $("#zmhs_nav").hide();
-        $("#zmhs_toogle").show();
-        closeTab(this);
-        subObj.showGljSubTab = false;
-    } else {
-        subObj.showGljSubTab = true;
-        subObj.activeTab =this;
-    }
-
-    subObj.initGljSubTab();
-    refreshSubSpread();
-    /* if($(this).hasClass("active")){//点击展开了后又点击了自身,这时要隐藏tab和修改本身class
+$(".gljSubTab ul li a").bind("click", function () {
+  if (this.hash == "#rnc-close") {
+    $("#zmhs_nav").hide();
+    $("#zmhs_toogle").show();
+    closeTab(this);
+    subObj.showGljSubTab = false;
+  } else {
+    subObj.showGljSubTab = true;
+    subObj.activeTab = this;
+  }
+
+  subObj.initGljSubTab();
+  refreshSubSpread();
+  /* if($(this).hasClass("active")){//点击展开了后又点击了自身,这时要隐藏tab和修改本身class
      subObj.showGljSubTab = false;
      subObj.showGljSubTab = false;
      closeTab(this);
      closeTab(this);
      subSpread.focus();//要加上这个,不然右边侧栏的选中状态的border线不会消换
      subSpread.focus();//要加上这个,不然右边侧栏的选中状态的border线不会消换
      }*/
      }*/
 });
 });
 
 
-$('.gljSubTab ul li a').on('shown.bs.tab', function () {
-    if(this.hash == "#rnc-xm"){
-        //初始化项目特征表格位置,如果以后需要的话,showdata 统一移动至zmhs_obj中
-       //todo
-    }else if(this.hash == "#rnc-zm"){
-        zmhs_obj.initCoeSpread();
-    }else if(this.hash == "#rnc-fz"){
-        zmhs_obj.initAssSpread();
-    }else if(this.hash == "#rnc-cus"){
-        zmhs_obj.initCusSpread();
-    }else if(this.hash == "#rnc-stable"){
-        zmhs_obj.initStableSpread();
-    }
-    zmhs_obj.refresh();
-    zmhs_obj.showDatas();
+$(".gljSubTab ul li a").on("shown.bs.tab", function () {
+  if (this.hash == "#rnc-xm") {
+    //初始化项目特征表格位置,如果以后需要的话,showdata 统一移动至zmhs_obj中
+    //todo
+  } else if (this.hash == "#rnc-zm") {
+    zmhs_obj.initCoeSpread();
+  } else if (this.hash == "#rnc-fz") {
+    zmhs_obj.initAssSpread();
+  } else if (this.hash == "#rnc-cus") {
+    zmhs_obj.initCusSpread();
+  } else if (this.hash == "#rnc-stable") {
+    zmhs_obj.initStableSpread();
+  }
+  zmhs_obj.refresh();
+  zmhs_obj.showDatas();
 });
 });
 
 
 function closeTab(elem) {
 function closeTab(elem) {
-    setTimeout(function () {
-        $(elem).removeClass("show");
-        $(elem).removeClass("active");
-        $(elem).attr("aria-selected",false);
-        $(elem.hash).removeClass("show");
-        $(elem.hash).removeClass("active");
-    },50);
-
+  setTimeout(function () {
+    $(elem).removeClass("show");
+    $(elem).removeClass("active");
+    $(elem).attr("aria-selected", false);
+    $(elem.hash).removeClass("show");
+    $(elem.hash).removeClass("active");
+  }, 50);
 }
 }
-
-

+ 2 - 2
web/over_write/js/gansu_2021.js

@@ -182,12 +182,12 @@ if (typeof baseFigureMap !== "undefined") {
       pick: true,
       pick: true,
     },
     },
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
-    一二三四部分合计: {
+    /*     一二三四部分合计: {
       base: "YESSBFHJ",
       base: "YESSBFHJ",
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     // 显示:仅“价差预备费”可显示
     // 显示:仅“价差预备费”可显示
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",

+ 2 - 2
web/over_write/js/henan_2022.js

@@ -99,12 +99,12 @@ if (typeof baseFigureMap !== "undefined") {
       pick: true,
       pick: true,
     },
     },
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
-    一二三四部分合计: {
+    /*     一二三四部分合计: {
       base: "YESSBFHJ",
       base: "YESSBFHJ",
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     // 显示:仅“价差预备费”可显示
     // 显示:仅“价差预备费”可显示
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",

+ 2 - 2
web/over_write/js/henan_richang_2022.js

@@ -205,12 +205,12 @@ if (typeof baseFigureMap !== "undefined") {
       pick: true,
       pick: true,
       projectKind: ["日常养护"],
       projectKind: ["日常养护"],
     }, */
     }, */
-    一二三四部分合计: {
+    /*     一二三四部分合计: {
       base: "YESSBFHJ",
       base: "YESSBFHJ",
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",
       fixedFlag: null,
       fixedFlag: null,

+ 2 - 2
web/over_write/js/hunan_2022.js

@@ -118,12 +118,12 @@ if (typeof baseFigureMap !== "undefined") {
       pick: true,
       pick: true,
     },
     },
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
     // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
-    一二三四部分合计: {
+    /*     一二三四部分合计: {
       base: "YESSBFHJ",
       base: "YESSBFHJ",
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     // 显示:仅“价差预备费”可显示
     // 显示:仅“价差预备费”可显示
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",

+ 23 - 11
web/over_write/js/hunan_richang_2022.js

@@ -84,19 +84,19 @@ if (typeof baseFigureMap !== "undefined") {
       filter: [fixedFlag.MAINTENANCE_EXPENSES],
       filter: [fixedFlag.MAINTENANCE_EXPENSES],
       pick: true,
       pick: true,
     },
     },
-    '工程监理费(未实行社会监理)': {
+    "工程监理费(未实行社会监理)": {
       isProgressive: true,
       isProgressive: true,
-      base: 'GCJLFWSXSHJL',
+      base: "GCJLFWSXSHJL",
       fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
       fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
       filter: [fixedFlag.MAINTENANCE_EXPENSES],
       filter: [fixedFlag.MAINTENANCE_EXPENSES],
       pick: true,
       pick: true,
     },
     },
-    一二三四部分合计: {
+    /*     一二三四部分合计: {
       base: "YESSBFHJ",
       base: "YESSBFHJ",
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",
       fixedFlag: null,
       fixedFlag: null,
@@ -229,19 +229,25 @@ if (typeof baseFigureTemplate !== "undefined") {
     // 工程监理费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
     // 工程监理费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
     GCJLF(tender) {
     GCJLF(tender) {
       const baseFee = this["DEJZAZGCF"](tender);
       const baseFee = this["DEJZAZGCF"](tender);
-      if ((baseFee > 0) && (baseFee < 1000000)) return 100000;
+      if (baseFee > 0 && baseFee < 1000000) return 100000;
       if (!tender) {
       if (!tender) {
         calcBase.baseProgressiveFee = baseFee;
         calcBase.baseProgressiveFee = baseFee;
       }
       }
       return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
       return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
     },
     },
     GCJLFWSXSHJL(tender) {
     GCJLFWSXSHJL(tender) {
-      const baseFee = this['DEJZAZGCF'](tender);
-      if ((baseFee > 0) && (baseFee < 1000000)) return 100000;
+      const baseFee = this["DEJZAZGCF"](tender);
+      if (baseFee > 0 && baseFee < 1000000) return 100000;
       if (!tender) {
       if (!tender) {
-          calcBase.baseProgressiveFee = baseFee;
+        calcBase.baseProgressiveFee = baseFee;
       }
       }
-      return calculateUtil.getProgressiveFee(baseFee, '工程监理费(未实行社会监理)', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency); 
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "工程监理费(未实行社会监理)",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
     },
     },
     // 前期工作费 以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。
     // 前期工作费 以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。
     QQGZF(tender) {
     QQGZF(tender) {
@@ -268,11 +274,17 @@ if (typeof baseFigureTemplate !== "undefined") {
     // {养护管理信息化费} 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。(计算结果去掉不足10000元时按10000元计取)
     // {养护管理信息化费} 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。(计算结果去掉不足10000元时按10000元计取)
     YHXMXXHF(tender) {
     YHXMXXHF(tender) {
       const baseFee = this["DEJZAZGCF"](tender);
       const baseFee = this["DEJZAZGCF"](tender);
-      if ((baseFee > 0) && (baseFee < 1000000)) return 100000;
+      if (baseFee > 0 && baseFee < 1000000) return 100000;
       if (!tender) {
       if (!tender) {
         calcBase.baseProgressiveFee = baseFee;
         calcBase.baseProgressiveFee = baseFee;
       }
       }
-      return calculateUtil.getProgressiveFee(baseFee, "养护管理信息化费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "养护管理信息化费",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
     },
     },
     // 施工场地建设费 算法:以{定额养护工程费}为基数,采用累进办法计算
     // 施工场地建设费 算法:以{定额养护工程费}为基数,采用累进办法计算
     SGCDJSF(tender) {
     SGCDJSF(tender) {

+ 104 - 23
web/over_write/js/sichuan_2013.js

@@ -34,6 +34,7 @@ function overwriteRationCalcBases(taxType) {
     { type: "otherFee2", name: "其他工程费II" },
     { type: "otherFee2", name: "其他工程费II" },
     { type: "indirect", name: "间接费" },
     { type: "indirect", name: "间接费" },
     { type: "manage", name: "企业管理费" },
     { type: "manage", name: "企业管理费" },
+    { type: "base", name: "基本费用" },
     { type: "force", name: "规费" },
     { type: "force", name: "规费" },
     { type: "profit", name: "利润" },
     { type: "profit", name: "利润" },
     { type: "tax", name: "税金" },
     { type: "tax", name: "税金" },
@@ -65,19 +66,18 @@ if (typeof baseFigureMap !== "undefined") {
       pick: false,
       pick: false,
     },
     },
     // 显示:除清单固定类别是“公路养护工程费”的以外部分可显示
     // 显示:除清单固定类别是“公路养护工程费”的以外部分可显示
-    定额公路养护工程费: {
-      base: "DEGLYHGCF",
+    // 定额公路养护工程费: {
+    //   base: "DEGLYHGCF",
+    //   fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
+    //   filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
+    //   pick: false,
+    // },
+    "养护工程费(不含保险费、施工环保水保费、安全生产费)": {
+      base: "YHGCFBHBXHBSBAQ",
       fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
       fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
       filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
       filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
       pick: false,
       pick: false,
     },
     },
-
-    // "养护工程费(不含保险费、施工环保、水保费、安全生产费)": {
-    //   base: "YHGCFBHBXHBSBAQ", AAAAA
-    //   fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
-    //   filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, INSURANCE_FEE, EP_WP_INSURANCE_FEE, SAFE_COST],
-    //   pick: false,
-    // },
     // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
     // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
     养护单位管理费: {
     养护单位管理费: {
       isProgressive: true,
       isProgressive: true,
@@ -87,12 +87,12 @@ if (typeof baseFigureMap !== "undefined") {
       pick: true,
       pick: true,
     },
     },
     // 显示:除清单固定类别是“公路养护工程费”、“设备购置费用”、“养护公路工程其他费用”、“一二三部分合计”的以外部分可显示
     // 显示:除清单固定类别是“公路养护工程费”、“设备购置费用”、“养护公路工程其他费用”、“一二三部分合计”的以外部分可显示
-    "一、二、三部分合计": {
+    /*     "一、二、三部分合计": {
       base: "YESBFHJ",
       base: "YESBFHJ",
       fixedFlag: fixedFlag.ONE_TO_THREE_TOTAL,
       fixedFlag: fixedFlag.ONE_TO_THREE_TOTAL,
       filter: [fixedFlag.ONE_TO_THREE_TOTAL],
       filter: [fixedFlag.ONE_TO_THREE_TOTAL],
       pick: false,
       pick: false,
-    },
+    }, */
     // 显示:仅“价差预备费”可显示
     // 显示:仅“价差预备费”可显示
     价差预备费: {
     价差预备费: {
       base: "JCYBF",
       base: "JCYBF",
@@ -100,22 +100,46 @@ if (typeof baseFigureMap !== "undefined") {
       filter: [fixedFlag.SPREAD_BUDGET_FEE],
       filter: [fixedFlag.SPREAD_BUDGET_FEE],
       pick: true,
       pick: true,
     },
     },
-    通则扣除保险费: {
-      base: "TEXT1",
+    // 通则扣除保险费: {
+    //   base: "TEXT1",
+    //   fixedFlag: null,
+    //   filter: [fixedFlag.INSURANCE_FEE],
+    //   pick: true,
+    // },
+    // 扣除安全生产费: {
+    //   base: "TEXT2",
+    //   fixedFlag: null,
+    //   filter: [fixedFlag.EP_WP_INSURANCE_FEE],
+    //   pick: true,
+    // },
+    // 扣除保险费: {
+    //   base: "TEXT3",
+    //   fixedFlag: null,
+    //   filter: [fixedFlag.SAFE_COST],
+    //   pick: true,
+    // },
+    预算和标底审核费: {
+      base: "YSHBDSHF",
       fixedFlag: null,
       fixedFlag: null,
-      filter: [fixedFlag.INSURANCE_FEE],
+      filter: [fixedFlag.MAINTENANCE_EXPENSES],
       pick: true,
       pick: true,
     },
     },
-    扣除安全生产费: {
-      base: "TEXT2",
+    独立桥隧及地质病害工程养护工程设计费: {
+      base: "DLQSJDZBHGCYHGCSJF",
       fixedFlag: null,
       fixedFlag: null,
-      filter: [fixedFlag.EP_WP_INSURANCE_FEE],
+      filter: [fixedFlag.MAINTENANCE_EXPENSES],
       pick: true,
       pick: true,
     },
     },
-    扣除保险费: {
-      base: "TEXT3",
+    路基路面及其他工程养护工程设计费: {
+      base: "LJLMJQTGCYHGCSJF",
       fixedFlag: null,
       fixedFlag: null,
-      filter: [fixedFlag.SAFE_COST],
+      filter: [fixedFlag.MAINTENANCE_EXPENSES],
+      pick: true,
+    },
+    预算标底编制费: {
+      base: "YSBDBZF",
+      fixedFlag: null,
+      filter: [fixedFlag.MAINTENANCE_EXPENSES],
       pick: true,
       pick: true,
     },
     },
   };
   };
@@ -169,9 +193,14 @@ if (typeof baseFigureTemplate !== "undefined") {
     DEGLYHGCF(tender) {
     DEGLYHGCF(tender) {
       return cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "rationCommon");
       return cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "rationCommon");
     },
     },
-    // YHGCFBHBXHBSBAQ(tender) { AAAAA
-    //   return cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "common");
-    // },
+    YHGCFBHBXHBSBAQ(tender) {
+      const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "common");
+      const fee1 = cbTools.getBaseFee(fixedFlag.INSURANCE_FEE, tender, "common");
+      const fee2 = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_ENVIROMENTAL_PROTECTION_FEE, tender, "common");
+      const fee3 = cbTools.getBaseFee(fixedFlag.EP_WP_INSURANCE_FEE, tender, "common");
+      const fee4 = cbTools.getBaseFee(fixedFlag.SAFE_COST, tender, "common");
+      return (baseFee - fee1 - fee2 - fee3 - fee4).toDecimal(decimalObj.bills.totalPrice);
+    },
     // 养护单位管理费 算法:以{公路养护工程费总额}为基数,采用累进办法计算
     // 养护单位管理费 算法:以{公路养护工程费总额}为基数,采用累进办法计算
     YHDWGLF(tender) {
     YHDWGLF(tender) {
       const baseFee = this["GLYHGCF"](tender);
       const baseFee = this["GLYHGCF"](tender);
@@ -206,6 +235,58 @@ if (typeof baseFigureTemplate !== "undefined") {
     TEXT3(tender) {
     TEXT3(tender) {
       return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.INSURANCE_FEE], tender, "common");
       return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.INSURANCE_FEE], tender, "common");
     },
     },
+    YSHBDSHF(tender) {
+      const baseFee = this["GLYHGCF"](tender);
+      if (!tender) {
+        calcBase.baseProgressiveFee = baseFee;
+      }
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "预算和标底审核费",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
+    },
+    DLQSJDZBHGCYHGCSJF(tender) {
+      const baseFee = this["GLYHGCF"](tender);
+      if (!tender) {
+        calcBase.baseProgressiveFee = baseFee;
+      }
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "独立桥隧及地质病害工程养护工程设计费",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
+    },
+    LJLMJQTGCYHGCSJF(tender) {
+      const baseFee = this["GLYHGCF"](tender);
+      if (!tender) {
+        calcBase.baseProgressiveFee = baseFee;
+      }
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "路基路面及其他工程养护工程设计费",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
+    },
+    YSBDBZF(tender) {
+      const baseFee = this["GLYHGCF"](tender);
+      if (!tender) {
+        calcBase.baseProgressiveFee = baseFee;
+      }
+      return calculateUtil.getProgressiveFee(
+        baseFee,
+        "预算标底编制费",
+        projectObj.project.property.progressiveInterval,
+        decimalObj.bills.totalPrice,
+        deficiency
+      );
+    },
     // 基本预备费 算法:以第一、二、三部分费用之和为基数按3%计取
     // 基本预备费 算法:以第一、二、三部分费用之和为基数按3%计取
     JBYBF(tender) {
     JBYBF(tender) {
       const baseFee = this["YESBFHJ"](tender);
       const baseFee = this["YESBFHJ"](tender);