Browse Source

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

zhangweicheng 7 years ago
parent
commit
b2b46b4656

+ 1 - 0
modules/pm/models/project_property_template.js

@@ -116,6 +116,7 @@ const projectFeature = [
     {dispName: '基础类型', key: 'baseType', value: ''},
     {dispName: '建筑特征', key: 'buildingFeature', value: ''},
     {dispName: '建筑面积(m2)', key: 'buildingArea', value: ''},
+    {dispName: '其中地下室建筑面积(m2)', key: 'basementBuildingArea', value: ''},
     {dispName: '总层数', key: 'totalFloors', value: ''},
     {dispName: '地下室层数(+/-0.00以下)', key: 'basementFloors', value: ''},
     {dispName: '建筑层数(+/-0.00以下)', key: 'buildingFloors', value: ''},

+ 24 - 1
modules/reports/util/rpt_construct_data_util.js

@@ -716,16 +716,39 @@ function sortData(sourceData, sortCfg, prjData) {
             let addLevel = true;
             rst = treeUtil.buildTreeNodeDirectly(tempRstArr, addLevel);
             let newTopArr = [];
-            if (sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES] && sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES].length > 0) {
+            if ((sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES] && sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES].length > 0) ||
+                (sortCfg[JV.PROP_FILTER_OTHER_BILLS_NODES] && sortCfg[JV.PROP_FILTER_OTHER_BILLS_NODES].length > 0)) {
+                let local_check_bills = function(tItem) {
+                    let chkDtl = false;
+                    if (tItem.flags && tItem.flags.length > 0) {
+                        for (let flagItem of tItem.flags) {
+                            if (sortCfg[JV.PROP_FILTER_OTHER_BILLS_NODES].indexOf(flagItem.flag) >= 0) {
+                                newTopArr.push(tItem);
+                                chkDtl = true;
+                                break;
+                            }
+                        }
+                    }
+                    if (!chkDtl && tItem.items && tItem.items.length > 0) {
+                        for (let dtlItem of tItem.items) {
+                            local_check_bills(dtlItem);
+                        }
+                    }
+                };
                 for (let topItem of rst) {
+                    let chkTop = false;
                     if (topItem.flags && topItem.flags.length > 0) {
                         for (let flagItem of topItem.flags) {
                             if (sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES].indexOf(flagItem.flag) >= 0) {
                                 newTopArr.push(topItem);
+                                chkTop = true;
                                 break;
                             }
                         }
                     }
+                    if (!chkTop && sortCfg[JV.PROP_FILTER_OTHER_BILLS_NODES] && sortCfg[JV.PROP_FILTER_OTHER_BILLS_NODES].length > 0) {
+                        local_check_bills(topItem);
+                    }
                 }
             } else {
                 newTopArr = rst;

+ 1 - 0
public/web/rpt_value_define.js

@@ -55,6 +55,7 @@ const JV = {
     PROP_HANDLE_TYPE: "预处理类型",
     PROP_FILTER_KEYS: "过滤键值集",
     PROP_FILTER_TOP_BILLS_NODES: "清单顶节点集",
+    PROP_FILTER_OTHER_BILLS_NODES: "其他清单节点集",
     PROP_FILTER_COMPARE_OBJ: "compareObjKey",
     PROP_FILTER_COMPARE_OBJ_KEY: "compareObjIdKey",
     PROP_FILTER_COMPARE_VAL: "compareValue",

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

@@ -9,6 +9,7 @@ let defaultDecimal = {
         bills: {editable: true, data: {unitPrice: 2, totalPrice: 2}},
         ration: {editable: true, data: {quantity: 3, unitPrice: 2, totalPrice: 2}},
         glj: {editable: true, data: {quantity: 3, unitPrice: 2}},
+        material: {editable: false, data: 5},
         feeRate: {editable: true, data: 2},
         quantity_detail: {editable: false, data: 4},
         process: {editable: false, data: 6}

+ 3 - 2
web/building_saas/main/js/views/project_property_projFeature.js

@@ -25,7 +25,7 @@ let projFeatureView = {
             {row: 3, key: 'baseType', items: ['带基', '框排架柱距6m以内', '框排架柱距6m以外', '满基筏式', '满基板式', '满基箱式', '独立基础']},
             {row: 4, key: 'buildingFeature', items: ['点式', '凹式', '凸式', 'Y式', '其他']}
         ],
-        numRows: [5, 6, 7, 8, 9, 10, 11, 12, 13],
+        numRows: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
         dateRows: [],
         locked: {
             rows: [0],
@@ -136,7 +136,8 @@ let projFeatureView = {
             if(me.setting.numRows.indexOf(args.row) !== -1){//控制数值
                 if(!me.isNum(v)){
                     alert('只能输入数值');
-                    args.sheet.setValue(args.row, args.col, me.datas[args.row].value && me.isNum(me.datas[args.row].value) ? me.datas[args.row].value : '');
+                    v = me.datas[args.row].value && me.isNum(me.datas[args.row].value) ? me.datas[args.row].value : '';
+                    args.sheet.setValue(args.row, args.col, v);
                 }
             }
             me.datas[args.row].value = v;