Prechádzať zdrojové kódy

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

chenshilong 6 rokov pred
rodič
commit
f1d3432945

+ 0 - 1
config/gulpConfig.js

@@ -152,7 +152,6 @@ module.exports = {
         'web/building_saas/report/js/jpc_output_value_define.js',
         'web/building_saas/report/js/jpc_output.js',
         'web/building_saas/report/js/rpt_print.js',
-        'web/building_saas/main/js/views/character_content_view.js',
         'web/building_saas/main/js/views/glj_view.js',
         'web/building_saas/main/js/views/zmhs_view.js',
         'web/building_saas/main/js/views/mbzm_view.js',

+ 5 - 0
modules/all_models/compleGlj_glj.js

@@ -28,6 +28,11 @@ const comple_glj = new Schema({
     gljType: Number,
     model: Number,
     shortName: String,
+    //以下仅普通材料可用
+    grossWeightCoe: Number, //毛重系数
+    purchaseStorageRate: Number, //采购保管费率
+    offSiteTransportLossRate: Number, //场外运输损耗率
+    handlingLossRate: Number, //每增一次装卸损耗率
     component: [comple_gljComponent]
 }, {versionKey: false});
 

+ 0 - 3
modules/all_models/stdRation_ration.js

@@ -34,9 +34,6 @@ const rationItemSchema = new Schema({
     name: String,
     unit: String,
     basePrice: Number,
-    labourPrice: Number,
-    materialPrice: Number,
-    machinePrice: Number,
     sectionId: Number,
     rationRepId: Number,
     caption: String,

+ 6 - 4
modules/all_models/std_glj.js

@@ -30,14 +30,16 @@ const std_glj = new Schema({
         type: Schema.Types.Mixed,
         default: {}
     },
+    model: Number,
     gljClass: Number,
     gljType: Number,
-    model: Number,// 机型
     shortName: String,
     unit: String,
-    adjCoe: Number,
-    materialType: Number,   //三材类别
-    materialCoe: Number,    //三材系数
+    //以下仅普通材料可用
+    grossWeightCoe: Number, //毛重系数
+    purchaseStorageRate: Number, //采购保管费率
+    offSiteTransportLossRate: Number, //场外运输损耗率
+    handlingLossRate: Number, //每增一次装卸损耗率
     component: [std_gljComponent]
 },{versionKey: false});
 

+ 7 - 54
modules/complementary_ration_lib/models/compleRationModel.js

@@ -324,24 +324,10 @@ class CompleRatoinDao {
                             else{
                                 let gljArr = [];
                                 for(let i=0; i<gljItems.length; i++){
-                                    let gljParentType = -1;
                                     if(gljItems[i].ID === adjGljId){
-                                        gljItems[i].gljType = adjGljType;
-                                    }
-                                    if(gljItems[i].gljType <= 3){
-                                        gljParentType = gljItems[i].gljType;
-                                    }
-                                    if(gljItems[i].gljType > 200 && gljItems[i].gljType < 300){
-                                        gljParentType = 2;
-                                    }
-                                    if(gljItems[i].gljType > 300 && gljItems[i].gljType < 400){
-                                        gljParentType = 3;
-                                    }
-                                    if(gljItems[i].ID === adjGljId){
-                                        gljArr.push({gljId: gljItems[i].ID, basePrice: adjBasePrice, gljParentType: gljParentType});
-                                    }
-                                    else {
-                                        gljArr.push({gljId: gljItems[i].ID, basePrice: parseFloat(gljItems[i].basePrice), gljParentType: gljParentType});
+                                        gljArr.push({gljId: gljItems[i].ID, basePrice: adjBasePrice});
+                                    } else {
+                                        gljArr.push({gljId: gljItems[i].ID, basePrice: parseFloat(gljItems[i].basePrice)});
                                     }
                                 }
                                 gljArr.forEach(function (gljItem) {
@@ -352,46 +338,13 @@ class CompleRatoinDao {
                                     })
                                 });
                                 //recalculate the price of ration
-                                let labourPrc = [], materialPrc = [], machinePrc = [], singlePrc, updatePrc = {labourPrice: 0, materialPrice: 0, machinePrice: 0, basePrice: 0};
+                                let basePrice = 0;
                                 gljArr.forEach(function (gljItem) {
-                                    if(gljItem.gljParentType !== -1){
-                                        singlePrc = scMathUtil.roundTo(gljItem.basePrice * gljItem.consumeAmt, -3);
-                                        if(gljItem.gljParentType === 1){
-                                            labourPrc.push(singlePrc);
-                                        }
-                                        else if(gljItem.gljParentType ===2){
-                                            materialPrc.push(singlePrc);
-                                        }
-                                        else{
-                                            machinePrc.push(singlePrc);
-                                        }
-                                    }
+                                    basePrice += gljItem.basePrice * gljItem.consumeAmt;
                                 });
-                                if(labourPrc.length > 0){
-                                    let sumLaP = 0;
-                                    for(let i=0; i<labourPrc.length; i++){
-                                        sumLaP += labourPrc[i];
-                                    }
-                                    updatePrc.labourPrice = scMathUtil.roundTo(sumLaP, -2);
-                                }
-                                if(materialPrc.length > 0){
-                                    let sumMtP = 0;
-                                    for(let i= 0; i<materialPrc.length; i++){
-                                        sumMtP += materialPrc[i];
-                                    }
-                                    updatePrc.materialPrice = scMathUtil.roundTo(sumMtP, -2);
-                                }
-                                if(machinePrc.length > 0){
-                                    let sumMaP = 0;
-                                    for(let i =0; i< machinePrc.length; i++){
-                                        sumMaP += machinePrc[i];
-                                    }
-                                    updatePrc.machinePrice = scMathUtil.roundTo(sumMaP, -2);
-                                }
-                                updatePrc.basePrice = scMathUtil.roundTo(updatePrc.labourPrice + updatePrc.materialPrice + updatePrc.machinePrice, -2);
+                                basePrice = scMathUtil.roundTo(basePrice, 0);
                                 //updateDataBase
-                                compleRationModel.update({ID: rationItem.ID}, {$set: {labourPrice: updatePrc.labourPrice.toString(), materialPrice: updatePrc.materialPrice.toString(),
-                                        machinePrice: updatePrc.machinePrice.toString(), basePrice: updatePrc.basePrice.toString()}},
+                                compleRationModel.update({ID: rationItem.ID}, {$set: {basePrice: basePrice.toString()}},
                                     function (err, result) {
                                         if(err){
                                             ecb(err);

+ 1 - 1
modules/ration_glj/facade/ration_glj_facade.js

@@ -822,7 +822,7 @@ async function insertGLJAsRation(data,compilation) {
         }
         await ration.update(query, {$inc: {serialNo: gljList.length}}, {multi: true});
     }
-    let [unitFileId,ext] = await prepareExtData(data.doc.projectID,compilation);
+    let [unitFileId,ext] = await prepareExtData(data.projectID,compilation);
     for (let glj of gljList) {
         let p_glj = getGLJSearchInfo(glj);
         let projectGljModel = new GLJListModel();

+ 9 - 8
public/web/tools_const.js

@@ -7,17 +7,18 @@
  * @date 2018/8/16
  * @version
  */
-//允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、机械台班、机械组成物、机上人工、主材、设备
-let allowGljType = [1, 201, 202, 203, 204, 205, 206, 301, 302, 303, 4, 5];
+//允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、外购砼构件、绿化苗木
+// 机械台班、机械组成物、机上人工、设备
+let allowGljType = [1, 201, 202, 203, 204, 205, 206, 208, 209, 301, 302, 303,5];
 
-//允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、机械组成物
-let allowComponent = [202, 203, 204, 301, 302];
-//可以作为组成物的工料机类型:普通材料、机械组成物、机上人工、主材
-let componentType = [201, 302, 303, 4];
+//允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班
+let allowComponent = [202, 203, 204, 301];
+//可以作为组成物的工料机类型:普通材料、机械组成物、机上人工
+let componentType = [201, 302, 303];
 //允许含有组成物的机械工料机类型:机械台班
 let machineAllowComponent = [301];
-//可以作为机械工料机组成物的工料机类型:机械组成物、机上人工
-let machineComponent = [302, 303];
+//可以作为机械工料机组成物的工料机类型:机械组成物、机上人工、普通材料
+let machineComponent = [201, 302, 303];
 //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
 let materialAllowComponent = [202, 203, 204];
 //可以作为材料工料机组成物的工料机类型:普通材料

+ 1 - 2
web/building_saas/complementary_glj_lib/js/components.js

@@ -77,8 +77,7 @@ let componentOprObj = {
         let that = repositoryGljObj, me = componentOprObj;
             for(let i = 0; i < gljList.length; i++){
                 if(machineAllowComponent.includes(that.currentGlj.gljType) && machineComponent.includes(gljList[i].gljType) ||
-                    materialAllowComponent.includes(that.currentGlj.gljType) && gljList[i].gljType === 201||
-                    that.currentGlj.gljType === 302 && gljList[i].gljType === 201){//机械组成物,应可选择无组成物的普通材料
+                    materialAllowComponent.includes(that.currentGlj.gljType) && gljList[i].gljType === 201){
                     //去除与已添加的组成物重复的条目
                     let isExist = false;
                     for(let j = 0; j < that.currentComponent.length; j++){

+ 3 - 6
web/building_saas/complementary_ration_lib/js/ration.js

@@ -71,9 +71,9 @@ let rationOprObj = {
             {headerName:"编码",headerWidth:70,dataCode:"code", dataType: "String", formatter: "@"},
             {headerName:"名称",headerWidth:240,dataCode:"name", dataType: "String"},
             {headerName:"计量单位",headerWidth:70,dataCode:"unit", dataType: "String", hAlign: "center"},
-            {headerName:"人工费",headerWidth:80,dataCode:"labourPrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
+            /*{headerName:"人工费",headerWidth:80,dataCode:"labourPrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
             {headerName:"材料费",headerWidth:80,dataCode:"materialPrice", dataType: "Number", formatter: "0.00",  hAlign: "right"},
-            {headerName:"机械费",headerWidth:80,dataCode:"machinePrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
+            {headerName:"机械费",headerWidth:80,dataCode:"machinePrice", dataType: "Number", formatter: "0.00", hAlign: "right"},*/
             {headerName:"基价",headerWidth:80,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
             {headerName:"显示名称(以%s表示参数)",headerWidth:240,dataCode:"caption", dataType: "String"},
             {headerName:"取费专业",headerWidth:70,dataCode:"feeType", dataType: "Number", hAlign: "center"}
@@ -82,11 +82,8 @@ let rationOprObj = {
             comboBox:[
                 {row:-1,col:2,rowCount:-1,colCount:1}
             ],
-            lockedCells:[
-                {row:-1,col:3,rowCount:-1, colCount:1}
-            ],
             lockColumns: [
-                3, 4, 5, 6
+                3
             ]
         }
     },

+ 5 - 41
web/building_saas/complementary_ration_lib/js/ration_glj.js

@@ -511,50 +511,17 @@ var rationGLJOprObj = {
     },
     rationCal: function () {
         let me = rationGLJOprObj;
-        let price = {gljType1: [], gljType2: [], gljType3: []}, rst = {labourPrice: 0, materialPrice: 0, machinePrice: 0}, rationBasePrc = 0;
+        let rationBasePrc = 0;
         if(me.currentRationItem && me.cache['_GLJ_' + me.currentRationItem.ID]){
             let cacheArr = me.cache['_GLJ_' + me.currentRationItem.ID];
             cacheArr.forEach(function (gljData) {
                 if(gljData.gljType && gljData.basePrice && gljData.consumeAmt){
-                    let parent = me.distTypeTree.distTypes[me.distTypeTree.prefix + gljData.gljType].parent;
-                    if(parent && parent.data.ID <= 3){
-                        price['gljType' + parent.data.ID].push(scMathUtil.roundTo( gljData.basePrice * gljData.consumeAmt, -3));//取三位
-                    }
-                    if(!parent && gljData.gljType <= 3){
-                        price['gljType' + gljData.gljType].push(scMathUtil.roundTo( gljData.basePrice * gljData.consumeAmt, -3));//取三位
-                    }
+                    rationBasePrc += gljData.basePrice * gljData.consumeAmt;
                 }
             });
-            if(price.gljType1.length > 0){
-                let labourPrice = 0;
-                price.gljType1.forEach(function (singlePrc) {
-                    labourPrice = scMathUtil.roundTo(labourPrice + singlePrc, me.processDecimal);
-                });
-                let roundPrice = scMathUtil.roundTo(labourPrice, -2);
-                rst.labourPrice = roundPrice;
-                rationBasePrc = scMathUtil.roundTo(rationBasePrc + roundPrice, -2);
-            }
-            if(price.gljType2.length > 0){
-                let materialPrice = 0;
-                price.gljType2.forEach(function (singlePrc) {
-                    materialPrice = scMathUtil.roundTo(materialPrice + singlePrc, me.processDecimal);
-                });
-                let roundPrice = scMathUtil.roundTo(materialPrice, -2);
-                rst.materialPrice = roundPrice;
-                rationBasePrc = scMathUtil.roundTo(rationBasePrc + roundPrice, -2);
-            }
-            if(price.gljType3.length > 0){
-                let machinePrice = 0;
-                price.gljType3.forEach(function (singlePrc) {
-                    machinePrice = scMathUtil.roundTo(machinePrice + singlePrc, me.processDecimal);
-                });
-                let roundPrice = scMathUtil.roundTo(machinePrice, -2);
-                rst.machinePrice = roundPrice;
-                rationBasePrc = scMathUtil.roundTo(rationBasePrc + roundPrice, -2);
-            }
-            rst.rationBasePrc = rationBasePrc;
+            rationBasePrc = scMathUtil.roundTo(rationBasePrc, 0);
         }
-        return rst;
+        return rationBasePrc;
     },
     updateRationItem: function(callback) {
         var me = this, updateArr = [];
@@ -562,10 +529,7 @@ var rationGLJOprObj = {
             me.currentRationItem.rationGljList = me.buildRationItemGlj();
             //recalculate ration basePrice
             let price = me.rationCal();
-            me.currentRationItem.labourPrice = price.labourPrice;
-            me.currentRationItem.materialPrice = price.materialPrice;
-            me.currentRationItem.machinePrice = price.machinePrice;
-            me.currentRationItem.basePrice = price.rationBasePrc;
+            me.currentRationItem.basePrice = price;
             updateArr.push(me.currentRationItem);
             rationOprObj.mixUpdateRequest(updateArr, [], [], function () {
                 if(callback) callback();

+ 0 - 1
web/building_saas/js/global.js

@@ -32,7 +32,6 @@ function autoFlashHeight(){
     $(".form-view").height($(window).height()-headerHeight-ftoolsbarHeight);
     $(".form-list").height($(window).height()-headerHeight);
     $('#comments').find('textarea').height($('#comments').height() - 25);
-    typeof(adaptiveTzjnrWidth)== 'function' ?adaptiveTzjnrWidth():''
     $('#project-glj-main').width($(window).width()-($('.main-nav').width()+ 2)-($('.filterType').width()+12)-5); //2、12是padding宽度,width 是不算padding宽度的
     //typeof zmhs_obj === 'object' ? zmhs_obj.loadSideResize() : '';
 };

+ 10 - 141
web/building_saas/main/html/main.html

@@ -106,14 +106,12 @@
                           <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="displayDXFY">大项费用</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayFB1">一级分部</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayFB2">二级分部</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayFB3">三级分部</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayFB4">四级分部</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayFX">分项(清单)</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);" id="displayZM">子目</a>
-                                  <a class="dropdown-item btn-sm" href="javascript:void(0);"  id="displayZD">最底层</a>
+                                  <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>
                               <% if (projectData.property.lockBills == true) { %>
@@ -216,9 +214,6 @@
                                  <!-- <li class="nav-item">   2018-11-08  新需求,隐藏说明信息
                                       <a class="nav-link" data-toggle="tab" href="#comments" role="tab" id="linkComments">说明信息</a>
                                   </li>-->
-                                  <li class="nav-item" id = "TZJNR_div">
-                                      <a class="nav-link sub-item" id="linkTZJNR" data-toggle="tab" href="#subSpread" role="tab">特征及内容</a>
-                                  </li>
                                   <li class="nav-item" id="MBZM_div">
                                       <a class="nav-link sub-item" id="linkMBZM" data-toggle="tab" href="#subSpread" role="tab">模板子目</a>
                                   </li>
@@ -316,141 +311,16 @@
                                       <div class="main-data-bottom ovf-hidden" style="display: none" id="comments">
                                           <textarea style="font-size: 0.9rem" class="form-control" rows="8" readonly=""></textarea>
                                       </div>
-                                      <div id="tzjnrCon" class="container-fluid main-data-bottom" style="background: #F1F1F1; overflow: hidden">
-                                          <div class="row" style="overflow: hidden">
-                                              <div class="p-0" id="contentDiv" style="width: 90%; float: left">
-                                                  <div id="jobDiv" style="width: 33%; height: 100%;float: left">
-                                                      <div class="main-data-bottom ovf-hidden" id="jobSpread" style="width: 99%; float: left; position: relative">
-                                                          <!--工具栏-->
-                                                          <div class="bottom-tznrTools btn-group position-absolute">
-                                                              <a href="javascript:void(0);" id="jobInsert" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-sign-in" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="jobAdd" class="btn btn-sm " data-toggle="tooltip" data-placement="bottom" title="" data-original-title="添加"><i class="fa fa-plus" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="jobDel" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="jobDown" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="jobUp" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
-                                                          </div>
-                                                      </div>
-                                                      <div class="resize-x" id="TZJNRResize"></div>
-                                                  </div>
-                                                  <div id="itemDiv" style="width: 67%; height: 100%; float: left;">
-                                                      <div class="main-data-bottom ovf-hidden" id="itemSpread" style="position: relative;">
-                                                          <!--工具栏-->
-                                                          <div class="bottom-tznrTools btn-group position-absolute">
-                                                              <a href="javascript:void(0);" id="itemInsert" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-sign-in" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="itemAdd" class="btn btn-sm " data-toggle="tooltip" data-placement="bottom" title="" data-original-title="添加"><i class="fa fa-plus" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="itemDel" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="itemDown" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
-                                                              <a href="javascript:void(0);" id="itemUp" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
-                                                          </div>
-                                                      </div>
-                                                  </div>
-                                              </div>
-                                              <div class="p-0" id="ruleDiv" style="width: 10%; float: left;">
-                                                  <div class="p-0" id="openTypeSetting" >
-                                                      <div class="tn-nav d-flex align-items-start flex-column" data-toggle="tooltip" data-placement="left" title="" data-original-title="打开排版规则">
-                                                          <span class="mt-3 ml-2 text-primary">排版规则</span>
-                                                          <i class="fa fa-arrow-left mt-auto mb-3 text-primary ml-2"></i>
-                                                      </div>
-                                                  </div>
-                                                  <div class="p-0">
-                                                      <div class="main-data-bottom" id="add-rule" style="display: none;">
-                                                          <div class="container-fluid my-2">
-                                                              <div class="mb-1 row" style="text-align: center">
-                                                                  <label class="col-5 px-0 col-form-label text-right">排版规则</label>
-                                                                  <a id="closeTypeSetting" data-toggle="tooltip" data-placement="top" data-original-title="关闭排版规则" class="col-7 px-0 col-form-label" href="javascript:void(0);"><i class="fa fa-arrow-right"></i></a>
-                                                              </div>
-                                                              <p style="text-align: center">
-                                                                  <% if (projectData.property.lockBills == true) { %>
-                                                                  <button class="btn btn-primary btn-sm disabled" type="button" id="use-to-current">应用到选中清单</button>
-                                                                  <button class="btn btn-primary btn-sm disabled" type="button" id="use-to-all">应用到所有清单</button>
-                                                                  <% } else { %>
-                                                                  <button class="btn btn-primary btn-sm" type="button" id="use-to-current">应用到选中清单</button>
-                                                                  <button class="btn btn-primary btn-sm" type="button" id="use-to-all">应用到所有清单</button>
-                                                                  <% } %>
-                                                              </p>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-5 px-0 col-form-label text-right">添加位置:</label>
-                                                                  <div class="col-7">
-                                                                      <select id="add-position" class="form-control form-control-sm">
-                                                                          <option value="1" selected="selected">添加到项目特征列</option>
-                                                                          <option value="2">添加到清单名称列</option>
-                                                                          <option value="3">添加到工作内容列</option>
-                                                                          <option value="4">分别添加到对应列</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-sm-5 px-0 col-form-label text-right">添加内容:</label>
-                                                                  <div class="col-sm-7">
-                                                                      <select id="add-content" class="form-control form-control-sm">
-                                                                          <option value="">无</option>
-                                                                          <option value="1" selected="selected">项目特征+工作内容</option>
-                                                                          <option value="2">工作内容+项目特征</option>
-                                                                          <option value="3">项目特征</option>
-                                                                          <option value="4">工作内容</option>
-                                                                          <option value="5">定额子目</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-5 px-0 col-form-label text-right">显示格式:</label>
-                                                                  <div class="col-7">
-                                                                      <select id="display-format" class="form-control form-control-sm">
-                                                                          <option value="1" selected="selected">换行分隔</option>
-                                                                          <option value="2">逗号分隔</option>
-                                                                          <option value="3">括号分隔</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-5 px-0 col-form-label text-right">特征生成方式:</label>
-                                                                  <div class="col-7">
-                                                                      <select id="character-format" class="form-control form-control-sm">
-                                                                          <option value="1">特征值</option>
-                                                                          <option value="2" selected="selected">特征:特征值</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-5 px-0 col-form-label text-right">子目生成方式:</label>
-                                                                  <div class="col-7">
-                                                                      <select id="child-display-format" disabled="disabled" class="form-control form-control-sm">
-                                                                          <option value="1" selected="selected">编号+定额名称</option>
-                                                                          <option value="2">序号+定额名称</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                              <div class="mb-1 row">
-                                                                  <label class="col-5 px-0 col-form-label text-right">序号格式:</label>
-                                                                  <div class="col-7">
-                                                                      <select id="serial-type" class="form-control form-control-sm">
-                                                                          <option value="">无</option>
-                                                                          <option value="1" selected="selected">1.</option>
-                                                                          <option value="2">a.</option>
-                                                                          <option value="3">A.</option>
-                                                                      </select>
-                                                                  </div>
-                                                              </div>
-                                                          </div>
-                                                      </div>
-                                                  </div>
-                                              </div>
-                                          </div>
-                                      </div>
-                                      <div class="container-fluid" id="qdjl" role="tabpanel">
+                                      <div class="container-fluid main-data-bottom ovf-hidden" id="qdjl" role="tabpanel">
                                           <div class="row p-0" style="background: #efefef">
                                               <div class="col-6 p-0">
                                                   <div id="qdjlTools" style="width: calc(100% - 5px); border-bottom: solid 1px lightgrey;">
-                                                      <a id="elfInsertRation" href="javascript:void(0);" class="btn btn-sm btn-primary px-1 m-1">应用选项</a>
-                                                      <a id="elfInsertSingle" href="javascript:void(0)" class="btn btn-sm btn-primary px-1">应用单条</a>
+                                                      <a id="elfInsertRation" href="javascript:void(0);" class="btn btn-sm btn-primary px-1 ml-1">应用选项</a>
+                                                      <a id="elfInsertSingle" href="javascript:void(0)" class="btn btn-sm btn-primary px-1 ml-1">应用单条</a>
                                                   </div>
-                                                  <div class="main-data-bottom ovf-hidden" id="elfItems">
+                                                  <div class="ovf-hidden" id="elfItems">
                                                   </div>
                                               </div>
-                                              <!--<div class="p-1">
-                                                  <p class="mt-3"><a id="elfInsertRation" href="javascript:void(0);" class="btn btn-sm btn-primary">应用选项</a></p>
-                                                  <p><a id="elfInsertSingle" href="javascript:void(0)" class="btn btn-sm btn-primary">应用单条</a></p>
-                                              </div>-->
                                           </div>
                                       </div>
                                   </div>
@@ -2069,7 +1939,6 @@
     <script type="text/javascript" src="/web/building_saas/report/js/jpc_output_value_define.js"></script>
     <script type="text/javascript" src="/web/building_saas/report/js/jpc_output.js"></script>
     <script type="text/javascript" src="/web/building_saas/report/js/rpt_print.js"></script>
-    <script type="text/javascript" src="/web/building_saas/main/js/views/character_content_view.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/glj_view.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/zmhs_view.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/mbzm_view.js"></script>

+ 1 - 1
web/building_saas/main/js/main.js

@@ -68,7 +68,7 @@ function getMainResizeEles() {
         min: 180,
         max: `$(window).height()-$('.header').height()-$('#headerToolsBar').height()-180-5`,
         notTopSpread: 0,
-        notBottomSpread: $('#bottom_div ul').height() + $('#qdjlTools').height(),
+        notBottomSpread: $('#bottom_div ul').height(),
         totalHeight: `$(window).height()-$('.header').height()-$('#headerToolsBar').height()-5`
     };
     return mainResizeEles;

+ 3 - 0
web/building_saas/main/js/models/calc_base.js

@@ -625,6 +625,9 @@ let baseFigureTemplate = {
                 }
                 //判断编码规则
                 let reg = /^\d{3,}/;
+                if (cbTools.isUnDef(node.data.code)) {
+                    return false;
+                }
                 let matchCode = node.data.code.match(reg);
                 return matchCode && matchCode[0].length === 3 && matchCode[0] >= 100 && matchCode[0] < 200;
             }

+ 0 - 1
web/building_saas/main/js/models/ration.js

@@ -617,7 +617,6 @@ var Ration = {
                             }
                         });
                         //如果添加规则中,添加内容为定额子目,则更新相关清单
-                        updateBillsOprRation();
                         if(callback){
                             callback(newNode);
                         }

+ 8 - 2
web/building_saas/main/js/views/billsElf.js

@@ -212,8 +212,14 @@ const BillsElf = (function() {
     //刷新表
     //@return {void}
     function refreshWorkBook(){
-        if (elfItem.workBook) {
-            elfItem.workBook.refresh();
+        //计算内部的表格高度
+        if ($('#qdjl').is(':visible')) {
+            let totalHeight = $('#qdjl').height(),
+                elfToolsHeight = $('#qdjlTools').height();
+            $('#elfItems').height(totalHeight - elfToolsHeight);
+            if (elfItem.workBook) {
+                elfItem.workBook.refresh();
+            }
         }
     }
     //清空表数据

+ 25 - 77
web/building_saas/main/js/views/project_view.js

@@ -58,12 +58,6 @@ var projectObj = {
              gljOprObj.showDataIfRationSelect(node);
              if (activeSubSheetIsCalcProgram())
              calcProgramObj.refreshCalcProgram(node, 3);*/
-
-            //zhong 2017-9-1 特征及内容
-            if(pageCCOprObj.active){
-                pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];//mainSpread焦点单元格
-                pageCCOprObj.setCacheAndShow(node);
-            }
         });
     },
     refreshBaseActn: function (tree) {
@@ -321,10 +315,6 @@ var projectObj = {
                             if(node.data.type == billType.BX){//从清单库中找到标准清单的话,要把补项改成分项
                                 node.data.type = billType.FX;
                             }
-                            //sortItems(data.items, data.itemCharacter);//2018-12-03 这里改成在后端获取
-                           // sortItems(data.jobs, data.jobContent);
-                            pageCCOprObj.setItemContentNode(node, data.jobContent, data.itemCharacter, node.data.name);
-                            pageCCOprObj.setCacheAndShow(node);
                         }
                         if (/\//.test(data.unit)) {
                             let existB = projectObj.project.Bills.sameStdCodeBillsData(data.code);
@@ -1337,29 +1327,7 @@ var projectObj = {
                             callback:function(key){
                                 project.Ration.insertVolumePrice(gljType.GENERAL_MACHINE);
                             }
-                        },
-                        insertMainMaterial:{
-                            name:"主材" ,
-                            icon: 'fa-sign-in',
-                            callback:function(key){
-                                project.Ration.insertVolumePrice(gljType.MAIN_MATERIAL);
-                            }
-                        },
-                        insertEquipment:{
-                            name:"设备" ,
-                            icon: 'fa-sign-in',
-                            visible: function () {
-                                if (typeof isCQ2018 != 'undefined') {
-                                    return false;
-                                }else{
-                                    return true;
-                                }
-                            },
-                            callback:function(key){
-                                project.Ration.insertVolumePrice(gljType.EQUIPMENT);
-                            }
                         }
-
                     }
                 },
                 "insertGLJ": {
@@ -2008,7 +1976,7 @@ var projectObj = {
                             let node = projectObj.project.mainTree.items[hitinfo.row] ? projectObj.project.mainTree.items[hitinfo.row] : null;
                             projectObj.mainController.setTreeSelected(node);
                         }
-                        //hitinfo.sheet.setActiveCell(hitinfo.row, hitinfo.col);
+                        hitinfo.sheet.setActiveCell(hitinfo.row, hitinfo.col);
                         calcBaseView.confirmBtn.attr('toggle', 'commonTotalFee');
                         changeCalcBaseFeeRate('commonTotalFee');
                         $('#tabCalcBase').tab('show');
@@ -2165,10 +2133,6 @@ $("a[name='lockBills']").click(function () {//点击锁定/解锁清单
         controller.refreshTreeNode(nodes);
         projectObj.mainController.setTreeSelected(selected);//触发树节点选中事件
         projectObj.loadLockBillsButton();
-        if(!projectReadOnly){
-            pageCCOprObj.refreshRuleTools(lockBills);
-        }
-        //$("[data-toggle='tooltip']").tooltip('hide'); bs 与 jqueryUI冲突
     });
 });
 $('#ZLFB_btn').click(function () {
@@ -2179,17 +2143,12 @@ $('#ZLFB_btn').click(function () {
 let displayLevel = function(nodes, depth, type){
     let refreshNodes = [];
     function getExpandedController(){
-        if(type === 'DXFY' || type === 'FB'){
-            if(type === 'FB'){
-                projectObj.project.mainTree.items[0].setExpanded(true);
-                refreshNodes.push(projectObj.project.mainTree.items[0]);
-            }
+        if(['X', 'M', 'J', 'XM'].includes(type)){//项、目、节、细目
             return  function expandedControl(nodes, depth){
-                let bType = type === 'FB' ? billType.FB : billType.DXFY;
                 for(let node of nodes){
                     let nodeDepth = node.depth();
                     if(nodeDepth <= depth){
-                        let expanded = nodeDepth === depth && !node.children[0] || nodeDepth < depth && node.children[0] && node.children[0].data.type === bType ? true : false;
+                        let expanded = nodeDepth === depth && !node.children[0] || nodeDepth < depth && node.children[0] && node.children[0].data.type === billType.BILL ? true : false;
                         node.setExpanded(expanded);
                         refreshNodes.push(node);
                         if(nodeDepth < depth){
@@ -2198,17 +2157,13 @@ let displayLevel = function(nodes, depth, type){
                     }
                 }
             }
-        }
-        else if(type === 'FX' || type === 'ZM' || type === 'ZD'){
+        } else {
             return  function expandedControl(nodes){
                 for(let node of nodes){
-                    if(type !== 'FX' || node.sourceType === projectObj.project.Bills.getSourceType()){
+                    if(node.sourceType === projectObj.project.Bills.getSourceType()){
                         let expanded = true;
-                        if(type === 'FX'){
-                            expanded =  !node.children[0] || node.children[0] && node.children[0].sourceType === projectObj.project.Bills.getSourceType() ? true : false;
-                        }
-                        else if(type === 'ZM'){
-                            expanded =  !node.children[0] || node.children[0] && node.children[0].sourceType !== projectObj.project.ration_glj.getSourceType() ? true : false;
+                        if(type === 'ZDCXM'){
+                            expanded = !node.children[0] || node.children[0] && node.children[0].sourceType !== projectObj.project.Ration.getSourceType() ? true : false;
                         }
                         node.setExpanded(expanded);
                         refreshNodes.push(node);
@@ -2260,36 +2215,29 @@ $('#moreMenu > a').mouseenter(function () {
    }
 });
 
-$('#displayDXFY').click(function () {
-   displayLevel(projectObj.project.mainTree.items, 0, 'DXFY')
-});
-//显示至一级分部
-$('#displayFB1').click(function () {
-   displayLevel(projectObj.project.mainTree.items[0].children, 1, 'FB');
-});
-//二级分部
-$('#displayFB2').click(function () {
-    displayLevel(projectObj.project.mainTree.items[0].children, 2, 'FB');
+//项
+$('#displayX').click(function () {
+   displayLevel(projectObj.project.mainTree.items, 1, 'X')
 });
-//三级分部
-$('#displayFB3').click(function () {
-    displayLevel(projectObj.project.mainTree.items[0].children, 3, 'FB');
+//目
+$('#displayM').click(function () {
+   displayLevel(projectObj.project.mainTree.items, 2, 'M');
 });
-//四级分部
-$('#displayFB4').click(function () {
-    displayLevel(projectObj.project.mainTree.items[0].children, 4, 'FB');
+//节
+$('#displayJ').click(function () {
+    displayLevel(projectObj.project.mainTree.items, 3, 'J');
 });
-//分项
-$('#displayFX').click(function () {
-    displayLevel(projectObj.project.mainTree.items, null, 'FX');
+//细目
+$('#displayXM').click(function () {
+    displayLevel(projectObj.project.mainTree.items, 4, 'XM');
 });
-//
-$('#displayZM').click(function () {
-    displayLevel(projectObj.project.mainTree.items, null, 'ZM');
+//最底层细
+$('#displayZDCXM').click(function () {
+    displayLevel(projectObj.project.mainTree.items, null, 'ZDCXM');
 });
-//最底层
-$('#displayZD').click(function () {
-   displayLevel(projectObj.project.mainTree.roots, null, 'ZD');
+//定额
+$('#displayDE').click(function () {
+    displayLevel(projectObj.project.mainTree.items, null, 'DE');
 });
 
 $('#poj-set').on('show.bs.modal', function () {

+ 0 - 3
web/building_saas/main/js/views/side_tools.js

@@ -31,7 +31,6 @@ sideResizeEles.limit = {
 SlideResize.horizontalSlide(sideResizeEles.eleObj, sideResizeEles.limit, function(){
    // MaterialController.showReplaceDiv();
     subObj.initGljSubTab();
-    pageCCOprObj.resizeWidth();
     //BillsElf.setColumnWidthByRate();
     projectObj.refreshMainSpread();
     refreshSubSpread();
@@ -192,10 +191,8 @@ var sideToolsObj = {
             sideResizeEles.eleObj.right.css('width', '0%');
             tabPanel.hide();
         }
-        adaptiveTzjnrWidth();
         autoFlashHeight();
         subObj.initGljSubTab();
-        pageCCOprObj.resizeWidth();
         billsGuidance.refreshWorkBook();
         billsLibObj.refreshBillsSpread();
         refreshSubSpread();

+ 2 - 2
web/building_saas/main/js/views/std_billsGuidance_lib.js

@@ -74,7 +74,7 @@ const billsGuidance = (function () {
                 }
             },
                {
-                width: 45,
+                width: 60,
                 readOnly: true,
                  head: {
                      titleNames: ["计量单位"],
@@ -96,7 +96,7 @@ const billsGuidance = (function () {
         headers: [
             {name: '项目编码', dataCode: 'code', width: 140, vAlign: 'center', hAlign: 'left', formatter: '@'},
             {name: '项目名称', dataCode: 'name', width: 190, vAlign: 'center', hAlign: 'left', formatter: '@'},
-            {name: '单位', dataCode: 'unit', width: 45, vAlign: 'center', hAlign: 'center', formatter: '@'},
+            {name: '单位', dataCode: 'unit', width: 60, vAlign: 'center', hAlign: 'center', formatter: '@'},
         ],
         rowHeaderWidth:1,
         events: {

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

@@ -136,8 +136,6 @@ var billsLibObj = {
         if(node.parent && node.parent.data.recharge){
             node.data.comments = node.parent.data.recharge;
         }
-        //特征及内容转化
-        pageCCOprObj.setItemContentNode(node, this.getBillsJobs(stdBillsJobData, node), this.getBillsFeatures(stdBillsFeatureData, node), node.data.name);
         if (/\//.test(node.data.unit)) {
             let existB = projectObj.project.Bills.sameStdCodeBillsData(node.data.code);
             if (existB) {

+ 2 - 369
web/building_saas/main/js/views/sub_view.js

@@ -14,13 +14,6 @@ let subObj = {
     initSubSpread:function () {
         //清单精灵
         BillsElf.buildSheet();
-        contentOprObj.buildSheet($("#jobSpread")[0]);
-        //sheetCommonObj.bindEscKey(contentOprObj.workBook, [{sheet: contentOprObj.workBook.getSheet(0), editStarting: contentOprObj.onEditStart, editEnded: contentOprObj.onEditEnded}]);
-        sheetCommonObj.spreadDefaultStyle(contentOprObj.workBook);
-        characterOprObj.buildSheet($("#itemSpread")[0]);
-        //sheetCommonObj.bindEscKey(characterOprObj.workBook, [{sheet: characterOprObj.workBook.getSheet(0), editStarting: characterOprObj.onEditStart, editEnded: characterOprObj.onEditEnded}]);
-        sheetCommonObj.spreadDefaultStyle(characterOprObj.workBook);
-        $("#tzjnrCon").hide();
         $("#subSpread").show();
         subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 4);
         sheetCommonObj.spreadDefaultStyle(subSpread);
@@ -28,8 +21,6 @@ let subObj = {
         subSpread.options.allowUserDragFill = false;
         subSpread.getSheet(2).name('JSCX');
 
-        pageCCOprObj.active = false;
-
         // 工料机
         gljOprObj.initSheet(subSpread.getSheet(0));
         //sheetCommonObj.shieldAllCells(subSpread.getSheet(0), gljOprObj.setting);
@@ -76,7 +67,6 @@ let subObj = {
             $("#ZMHS_div").show();
             $("#MBZM_div").show();
             installationFeeObj.engineeringTypeChecking();//检查是否安装工程
-            $("#TZJNR_div").hide();
   			$('#QDJL_div').hide();
             $("#linkGLJ").addClass();
             $(gljOprObj.rationTab).click();
@@ -85,7 +75,6 @@ let subObj = {
             $("#ZMHS_div").hide();
             $("#MBZM_div").hide();
             $("#AZZJF_div").hide();
-            $("#TZJNR_div").show();
             $('#QDJL_div').show();
             $(gljOprObj.billsTab).click();
         }
@@ -151,7 +140,6 @@ $("#linkGLJ").click(function(){
     $("#subSpread").show();
     $("#itemTextDiv").show();
     $("#gljItemTab").show();
-    pageCCOprObj.active = false;
     subSpread.options.allowUserDragFill = false;
     refreshSubSpread();
     subSpread.setActiveSheetIndex(0);
@@ -164,7 +152,6 @@ $("#linkAZZJF").click(function(){
     $("#subItems").children().hide();
     MaterialController.hideReplaceDiv();
     $("#subSpread").show();
-    pageCCOprObj.active = false;
     refreshSubSpread();
     subSpread.setActiveSheetIndex(3);
     gljOprObj.activeTab='#linkAZZJF';
@@ -176,7 +163,6 @@ $("#linkGCLMX").click(function(){
     MaterialController.hideReplaceDiv();
     $("#subSpread").show();
     subSpread.options.allowUserDragFill = true;
-    pageCCOprObj.active = false;
     refreshSubSpread();
     subSpread.setActiveSheetIndex(1);
     gljOprObj.activeTab='#linkGCLMX';
@@ -187,7 +173,6 @@ $("#linkJSCX").click(function(){        // 计算程序
     $("#subItems").children().hide();
     MaterialController.hideReplaceDiv();
     $("#subSpread").show();
-    pageCCOprObj.active = false;
     refreshSubSpread();
     subSpread.setActiveSheetIndex(2);
     calcProgramObj.initSheet(subSpread.getSheet(2));
@@ -206,7 +191,6 @@ $("#linkZMHS").click(function(){        // 子目换算
     $("#subItems").children().hide();
     $("#tabZMHS").show();
     zmhs_obj.loadSideResize();
-    pageCCOprObj.active = false;
     refreshSubSpread();
     gljOprObj.activeTab='#linkZMHS';
     gljOprObj.setNodeShowTab();
@@ -214,63 +198,11 @@ $("#linkZMHS").click(function(){        // 子目换算
 $("#linkMBZM").click(function(){        // 模板子目
     $("#subItems").children().hide();
     $("#tabMBZM").show();
-    pageCCOprObj.active = false;
     refreshSubSpread();
     gljOprObj.activeTab='#linkMBZM';
     gljOprObj.setNodeShowTab();
 });
 
-//特征及内容、工作内容与项目特征左右拖动
-let TZJNR_sideResizeEles = {};
-TZJNR_sideResizeEles.eleObj = {
-    module: 'tzjnr',
-    resize: $('#TZJNRResize'),
-    parent: $('#contentDiv'),
-    left: $('#jobDiv'),
-    right: $('#itemDiv')
-};
-TZJNR_sideResizeEles.limit = {
-    min: 100,
-    max: `$('#contentDiv').width()-100`
-};
-SlideResize.horizontalSlide(TZJNR_sideResizeEles.eleObj, TZJNR_sideResizeEles.limit, function () {
-    pageCCOprObj.resizeWidth();
-    refreshSubSpread();
-});
-
-//刷新特征内容与添加规则宽度
-function initTznrWidth(){
-    //特征及内容总宽度
-    let totalWidth = $('#tzjnrCon').width();
-    //特征及内容和排版规则比例
-    const typeSettingWidth = 30;//排版规则工具条
-    let addRuleVisible = $('#add-rule').is(':visible'),
-        addRulePercent = '33.3%',
-        contentPercent = '66.7%';
-    //排版规则没显示,则排版规则工具条固定30px转换百分比
-    if (!addRuleVisible) {
-        addRulePercent = typeSettingWidth / totalWidth;
-        contentPercent = 1 - addRulePercent;
-        addRulePercent = addRulePercent * 100 + '%';
-        contentPercent = contentPercent * 100 + '%';
-    }
-    //设置特征及内容与排版规则的比例
-    $('#contentDiv').css('width', contentPercent);
-    $('#ruleDiv').css('width', addRulePercent);
-}
-
-//特征及内容各模块宽度自适应
-function adaptiveTzjnrWidth() {
-    if(gljOprObj.activeTab !== '#linkTZJNR'){
-        return;
-    }
-    initTznrWidth();
-    //加载特征及内容里,工作内容和项目特征的比例
-    SlideResize.loadHorizonWidth(TZJNR_sideResizeEles.eleObj.module, [TZJNR_sideResizeEles.eleObj.resize],
-        [TZJNR_sideResizeEles.eleObj.left, TZJNR_sideResizeEles.eleObj.right]);
-    pageCCOprObj.resizeWidth();
-    refreshSubSpread();
-}
 //清单精灵
 $('#linkQDJL').click(function () {
     gljOprObj.activeTab='#linkQDJL';
@@ -283,36 +215,6 @@ $('#linkQDJL').click(function () {
     BillsElf.refreshWorkBook();
 
 });
-//特征及内容
-$("#linkTZJNR").click(function () {
-    gljOprObj.activeTab='#linkTZJNR';
-    $("#subItems").children().hide();
-    $("#tzjnrCon").show();
-    $("#add-rule p").not(":first").css('margin-bottom', 4);
-    pageCCOprObj.active = true;
-    adaptiveTzjnrWidth();
-    contentOprObj.workBook.getActiveSheet().showColumn(0, GC.Spread.Sheets.HorizontalPosition.left);
-    characterOprObj.workBook.getActiveSheet().showColumn(0, GC.Spread.Sheets.HorizontalPosition.left);
-    let selectedNode = projectObj.mainController.tree.selected;
-    if (projectObj.project.property.addRule !== undefined) {
-        setRule(projectObj.project.property.addRule);
-    }
-    pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];
-    pageCCOprObj.setCacheAndShow(selectedNode);
-    gljOprObj.setNodeShowTab();
-});
-//打开排版规则
-$('#openTypeSetting').click(function () {
-    $('#add-rule').show();
-    $(this).hide();
-    adaptiveTzjnrWidth();
-});
-//关闭排版规则
-$('#closeTypeSetting').click(function () {
-    $('#add-rule').hide();
-    $('#openTypeSetting').show();
-    adaptiveTzjnrWidth();
-});
 
 //应用到选中清单、应用到所有,添加位置列如果隐藏了,则重新显示
 function colSettingAddPosition(addPosition){
@@ -348,270 +250,6 @@ function colSettingAddPosition(addPosition){
     }
 }
 
-//如果,添加内容为定额子目时进行定额的增删改,更新相关其清单
-function updateBillsOprRation() {
-    const setting = getAddRuleSetting();
-    if(setting && setting.addContent && setting.addContent === '5'){
-        $('#use-to-current').click();
-    }
-}
-
-// 应用到选中清单
-let isSaving = false;
-$("#use-to-current").click(function() {
-    if($(this).hasClass('disabled')){
-        return false;
-    }
-    if(projectReadOnly){
-        return false;
-    }
-    if (isSaving) {
-        return false;
-    }
-    const setting = getAddRuleSetting();
-    colSettingAddPosition(setting.position);
-    isSaving = true;
-    const self = $(this);
-    self.attr('disabled', 'disabled');
-    let selectedNode = projectObj.mainController.tree.selected;
-    function findBill(node){
-        while(node && node.sourceType !== projectObj.project.Bills.getSourceType()){
-            node = node.parent;
-        }
-        return node;
-    }
-    let billsNode = findBill(selectedNode);
-    // 操作内容
-    pageCCOprObj.setCharacterBySetting(billsNode, setting);
-
-    // 防止连续点击1秒后才能再次发起请求
-    setTimeout(function() {
-        isSaving = false;
-        self.removeAttr('disabled');
-    }, 1000);
-});
-//todo: 优化成批量
-function addRuleUseToBills(setting, nodes) {
-    pageCCOprObj.bulkSetCharacterBySetting(nodes, setting);
-}
-// 应用到所有的清单
-$("#use-to-all").click(function() {
-    if($(this).hasClass('disabled')){
-        return false;
-    }
-    if(projectReadOnly){
-        return false;
-    }
-    let treeNode = projectObj.mainController.tree;
-    const setting = getAddRuleSetting();
-    colSettingAddPosition(setting.position);
-    if (treeNode.items === undefined || treeNode.items.length <= 0) {
-        return false;
-    }
-    // 处理
-    addRuleUseToBills(setting, treeNode.items);
-});
-
-function saveAddRule(){
-    let setting = getAddRuleSetting();
-    let toUpdate = false;
-    if(!projectObj.project.property.addRule){
-        toUpdate = true;
-    }
-    else {
-        for(let attr in setting){
-            if(setting[attr] !== projectObj.project.property.addRule[attr]){
-                toUpdate = true;
-                break;
-            }
-        }
-    }
-    if(toUpdate){
-        projectObj.project.property.addRule = setting;
-        projectObj.project.saveProperty('addRule', setting);
-    }
-}
-
-// 添加位置选择
-function changeAddPosition(save = false) {
-    const selected = $('#add-position').children(":selected").val();
-    const addContentEle = $("#add-content");
-    const displayFormatEle = $("#display-format");
-    const characterFormatEle = $("#character-format");
-    const serialTypeEle = $("#serial-type");
-    switch (selected) {
-        case '4':
-            // 分别添加到对应列
-            // 当“添加位置”是“分别添加到对应列”,则“添加内容”恢复默认“无”,且灰显;“显示格式”恢复默认“换行分隔”,且灰显。
-            addContentEle.val('');
-            addContentEle.attr('disabled', 'disabled');
-            displayFormatEle.val(1);
-            characterFormatEle.val(2);
-            serialTypeEle.val(1);
-            break;
-        default:
-            addContentEle.removeAttr('disabled');
-            displayFormatEle.removeAttr('disabled');
-            characterFormatEle.removeAttr('disabled');
-            addContentEle.val(1);
-            break;
-    }
-    if (save) {
-        saveAddRule();
-    }
-}
-$("#add-position").change(function() {
-    changeAddPosition(true);
-});
-// 添加内容选择
-function changeAddContent(save = false) {
-    const selected = $('#add-content').children(":selected").val();
-    const characterFormatEle = $("#character-format");
-    const childDisplayFormatEle = $("#child-display-format");
-    const serialTypeEle = $("#serial-type");
-
-    switch (selected) {
-        case '5':
-            // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。
-            characterFormatEle.attr('disabled', 'disabled');
-            characterFormatEle.val(2);
-            // 当“添加内容”是“定额子目”,则“子目生成方式”有效可选;否则灰显,不需选择。
-            childDisplayFormatEle.removeAttr('disabled');
-            serialTypeEle.val('');
-            serialTypeEle.attr('disabled', 'disabled');
-            break;
-        case '':
-            characterFormatEle.attr('disabled', 'disabled');
-            break;
-        case '1':
-        case '2':
-        case '3':
-            characterFormatEle.removeAttr('disabled');
-            if (serialTypeEle.val() === '') {
-                serialTypeEle.val(1);
-            }
-            serialTypeEle.removeAttr('disabled');
-            childDisplayFormatEle.attr('disabled', 'disabled');
-            break;
-        case '4':
-            // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。
-            characterFormatEle.attr('disabled', 'disabled');
-            characterFormatEle.val(2);
-        default:
-            serialTypeEle.removeAttr('disabled');
-            if (serialTypeEle.val() === '') {
-                serialTypeEle.val(1);
-            }
-            childDisplayFormatEle.attr('disabled', 'disabled');
-            break;
-    }
-    if (save) {
-        saveAddRule();
-    }
-}
-$("#add-content").change(function() {
-    changeAddContent(true);
-});
-
-//显示格式
-$('#display-format').change(function () {
-    saveAddRule();
-});
-
-//特征生成方式
-$('#character-format').change(function () {
-    saveAddRule();
-});
-
-// 子目生成方式选择事件
-function changeChildDisplay(save = false) {
-    const selected = $('#child-display-format').children(":selected").val();
-    const serialTypeEle = $("#serial-type");
-    const addContent = $('#add-content').val();
-    // 如果添加内容是定额子目且子目生成方式是编号+定额名称则序号格式不能选择
-    if (addContent === '5' && selected === '1') {
-        // 默认选中数字显示模式
-        serialTypeEle.val("");
-        serialTypeEle.attr('disabled', 'disabled');
-    } else {
-        serialTypeEle.val(1);
-        serialTypeEle.removeAttr('disabled');
-    }
-    if (save) {
-        saveAddRule();
-    }
-
-}
-$("#child-display-format").change(function() {
-    changeChildDisplay(true);
-});
-
-//序号格式
-$('#serial-type').change(function () {
-    saveAddRule();
-});
-
-/**
- * 获取添加规则的设置
- *
- * @return {Object} - 返回设置内容
- */
-function getAddRuleSetting() {
-    // 添加位置
-    const position = $("#add-position").val();
-    // 添加内容
-    const addContent = $("#add-content").val();
-    // 显示格式
-    const displayFormat = $("#display-format").val();
-    // 特征生成方式
-    const characterFormat = $("#character-format").val();
-    // 子目生成方式
-    const childDisplayFormat = $("#child-display-format").val();
-
-    // 序号格式
-    const serialType = $("#serial-type").val();
-    const setting = {
-        serialType,
-        characterFormat,
-        addContent,
-        position,
-        displayFormat,
-        childDisplayFormat,
-    };
-
-    return setting;
-}
-
-/**
- * 根据配置设置规则
- *
- * @param {Object} setting - 数据库中读取的数据
- * @return {void}
- */
-function setRule(setting) {
-    if (Object.keys(setting).length <= 0) {
-        return;
-    }
-    $("#add-position").val(setting.position);
-    changeAddPosition(false);
-
-    $("#add-content").val(setting.addContent);
-    changeAddContent(false);
-
-    $("#display-format").val(setting.displayFormat);
-
-    $("#character-format").val(setting.characterFormat);
-
-    $("#child-display-format").val(setting.childDisplayFormat);
-    changeChildDisplay(false);
-
-    $("#serial-type").val(setting.serialType);
-
-    if(projectReadOnly){
-        disableTools();
-    }
-}
-
 function activeSubSheetIs(idx){
     let rst = subSpread.getActiveSheetIndex() == idx;
     return rst;
@@ -623,13 +261,8 @@ function activeSubSheetIsCalcProgram(){
 
 //弹出清单规则或定额库后导致subSpread和特征及内容spread显示出问题
 function refreshSubSpread(){
-    if(pageCCOprObj.active){
-        contentOprObj.workBook.refresh();
-        characterOprObj.workBook.refresh();
-    } else{
-        if(subSpread) subSpread.refresh();
-        if(MaterialController.spread) MaterialController.spread.refresh();
-    }
+    if(subSpread) subSpread.refresh();
+    if(MaterialController.spread) MaterialController.spread.refresh();
     BillsElf.refreshWorkBook();
     //if($('#linkZMHS').hasClass('active')) zmhs_obj.refresh();
     if($('#rnc-zm').is(':visible')|| $('#rnc-fz').is(':visible')) zmhs_obj.refresh();