Chenshilong преди 8 години
родител
ревизия
1210070482
променени са 3 файла, в които са добавени 75 реда и са изтрити 58 реда
  1. 19 20
      public/calc_util.js
  2. 55 37
      web/building_saas/main/js/models/ration_calc.js
  3. 1 1
      web/building_saas/main/js/views/ration_calc_view.js

+ 19 - 20
public/calc_util.js

@@ -16,10 +16,10 @@ let executeObj = {
     currentTpl : null,
     currentRationItem: null,
     currentFeeRateFile: null,
-    at: function(code) {
+    at: function(ID) {
         let me = executeObj,
             rst = 0;
-        rst = me.currentTpl.compileAssistantObj[code].unitFee;
+        rst = me.currentTpl.compileAssistantObj[ID].unitFee;
         return rst;
     },
     base: function(calcBaseCode) {
@@ -74,7 +74,8 @@ class calculation {
         let me = this;
         me.hasCompiled = false;
         me.errs = [];
-        let private_extract_code = function(str, idx){
+
+        let private_extract_ID = function(str, idx){
             let rst = '', lBracket = 0, rBracket = 0, firstIdx = idx, lastIdx = 0;
             for (let i = idx; i < str.length; i++) {
                 if (str[i] === '(') {
@@ -99,30 +100,28 @@ class calculation {
             return rst;
         };
         let private_parse_ref = function(item, itemIdx){
-            let expr = item.expression.split('at(').join('A(');
-            item.expression = expr;
+            //let expr = item.expression.split('at(').join('@(');
+            //item.expression = expr;
             //console.log('expression: ' + expr);
-            let idx = expr.indexOf('A(', 0);
+            let idx = item.expression.indexOf('@(', 0);
             while (idx >= 0) {
-                let code = private_extract_code(expr, idx);
-                //console.log('提取code: ' + code);
-                if (code.length > 0) {
-                    let subItem = me.compileAssistantObj[code];
+                let ID = private_extract_ID(item.expression, idx);
+                if (ID.length > 0) {
+                    let subItem = me.compileAssistantObj[ID];
                     if (subItem) {
-                        if (subItem.code !== item.code) {
-                            private_parse_ref(subItem, me.compileAssistantObj[code + "_idx"]);
+                        if (subItem.ID !== item.ID) {
+                            private_parse_ref(subItem, me.compileAssistantObj[ID + "_idx"]);
                         } else {
-                            me.errs.push("There exists the self refer code: " + code);
+                            me.errs.push("There exists the self refer ID: " + ID);
                         }
                     } else {
-                        me.errs.push("There exists the invalid code by which could not find the item: " + code);
-                        console.log('invalid code: ' + code);
+                        me.errs.push("There exists the invalid ID by which could not find the item: " + ID);
+                        console.log('invalid ID: ' + ID);
                     }
                 }
-                idx = expr.indexOf('A(', idx + code.length + 3);
+                idx = item.expression.indexOf('@(', idx + ID.length + 3);
             }
             if (me.calcTpl.compiledSeq.indexOf(itemIdx) < 0) {
-                //console.log('the code ready to push: ' + item.code);
                 me.calcTpl.compiledSeq.push(itemIdx);
             }
         };
@@ -134,7 +133,7 @@ class calculation {
         let private_compile_items = function() {
             for (let idx of me.calcTpl.compiledSeq) {
                 let item = me.calcTpl.calcItems[idx];
-                item.compiledExpr = item.expression.split('A(').join('$CE.at(');
+                item.compiledExpr = item.expression.split('@(').join('$CE.at(');
                 item.compiledExpr = item.compiledExpr.split('base(').join('$CE.base(');
                 item.compiledExpr = item.compiledExpr.split('fee(').join('$CE.fee(');
                 item.compiledExpr = item.compiledExpr.split('factor(').join('$CE.factor(');
@@ -157,8 +156,8 @@ class calculation {
             private_comile_feeFile();
             for (let i = 0; i < me.calcTpl.calcItems.length; i++) {
                 let item = me.calcTpl.calcItems[i];
-                me.compileAssistantObj[item.code] = item;
-                me.compileAssistantObj[item.code + "_idx"] = i;
+                me.compileAssistantObj[item.ID] = item;
+                me.compileAssistantObj[item.ID + "_idx"] = i;
             }
             //2. second round -> go!
             for (let i = 0; i < me.calcTpl.calcItems.length; i++) {

+ 55 - 37
web/building_saas/main/js/models/ration_calc.js

@@ -221,23 +221,26 @@ let calcTemplate = {
     compiledSeq: [],
     calcItems: [
         {
+            ID: "1",
             code: "1",
             name: "基价直接工程费",
-            dispExpr: "A2+A5+A6+A10",
-            expression: "A('2') + A('5') + A('6') + A('10')",
+            dispExpr: "F2+F5+F6+F10",
+            expression: "@('2') + @('5') + @('6') + @('10')",
             compiledExpr: "",
             statement: "基价人工费+基价材料费+基价机械费+未计价材料费"
         },
         {
-            code: "2",
+            ID: "2",
+            code: "1.1",
             name: "基价人工费",
-            dispExpr: "A3+A4",
-            expression: "A('3') + A('4')",
+            dispExpr: "F3+F4",
+            expression: "@('3') + @('4')",
             compiledExpr: "",
             statement: "定额基价人工费+定额人工单价(基价)调整"
         },
         {
-            code: "3",
+            ID: "3",
+            code: "1.1.1",
             name: "定额基价人工费",
             dispExpr: "定额基价人工费",
             expression: "base('定额基价人工费').toFixed(2)",
@@ -245,16 +248,18 @@ let calcTemplate = {
             statement: "定额基价人工费"
         },
         {
-            code: "4",
+            ID: "4",
+            code: "1.1.2",
             name: "定额人工单价(基价)调整",
-            dispExpr: "A3*[1.89-1]",
-            expression: "A('3') * (1.89-1)",
+            dispExpr: "F3*[1.89-1]",
+            expression: "@('3') * (1.89-1)",
             compiledExpr: "",
             statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]",
             memo: "渝建发(2013)51"
         },
         {
-            code: "5",
+            ID: "5",
+            code: "1.2",
             name: "基价材料费",
             dispExpr: "定额基价材料费",
             expression: "base('定额基价材料费')",
@@ -262,15 +267,17 @@ let calcTemplate = {
             statement: "定额基价材料费"
         },
         {
-            code: "6",
+            ID: "6",
+            code: "1.3",
             name: "基价机械费",
-            dispExpr: "A7+A9",
-            expression: "A('7') + A('9')",
+            dispExpr: "F7+F9",
+            expression: "@('7') + @('9')",
             compiledExpr: "",
             statement: "定额基价机械费+定额机上人工单价(基价)调整"
         },
         {
-            code: "7",
+            ID: "7",
+            code: "1.3.1",
             name: "定额基价机械费",
             dispExpr: "定额基价机械费",
             expression: "base('定额基价机械费')",
@@ -278,7 +285,8 @@ let calcTemplate = {
             statement: "定额基价机械费"
         },
         {
-            code: "8",
+            ID: "8",
+            code: "1.3.1.1",
             name: "其中:定额基价机上人工费",
             dispExpr: "定额基价机上人工费",
             expression: "base('定额基价机上人工费')",
@@ -286,15 +294,17 @@ let calcTemplate = {
             statement: "定额基价机上人工费"
         },
         {
-            code: "9",
+            ID: "9",
+            code: "1.3.2",
             name: "定额机上人工单价(基价)调整",
-            dispExpr: "A8*[1.89-1]",
-            expression: "A('8') * (1.89-1)",
+            dispExpr: "F8*[1.89-1]",
+            expression: "@('8') * (1.89-1)",
             compiledExpr: "",
             statement: "定额基价机上人工费*[定额机上人工单价(基价)调整系数-1]"
         },
         {
-            code: "10",
+            ID: "10",
+            code: "1.4",
             name: "未计价材料费",
             dispExpr: "主材费+设备费",
             expression: "base('主材费') + base('设备费')",
@@ -302,41 +312,46 @@ let calcTemplate = {
             statement: "主材费+设备费"
         },
         {
-            code: "11",
+            ID: "11",
+            code: "2",
             name: "企业管理费",
-            dispExpr: "A3",
-            expression: "A('3')",
+            dispExpr: "F3",
+            expression: "@('3')",
             compiledExpr: "",
             statement: "定额基价人工费",
             memo: "渝建发[2014]27号"
         },
         {
-            code: "12",
+            ID: "12",
+            code: "3",
             name: "利润",
-            dispExpr: "A3",
-            expression: "A('3')",
+            dispExpr: "F3",
+            expression: "@('3')",
             compiledExpr: "",
             statement: "定额基价人工费"
         },
         {
-            code: "13",
+            ID: "13",
+            code: "4",
             name: "风险因素",
-            dispExpr: "A3",
-            expression: "A('3')",
+            dispExpr: "F3",
+            expression: "@('3')",
             compiledExpr: "",
             statement: "定额基价人工费",
             memo: "同定额包干费"
         },
         {
-            code: "14",
+            ID: "14",
+            code: "5",
             name: "人材机价差",
-            dispExpr: "A15+A16+A17",
-            expression: "A('15') + A('16') + A('17')",
+            dispExpr: "F15+F16+F17",
+            expression: "@('15') + @('16') + @('17')",
             compiledExpr: "",
             statement: "人工费价差+材料费价差+机械费价差"
         },
         {
-            code: "15",
+            ID: "15",
+            code: "5.1",
             name: "人工费价差",
             dispExpr: "信息价或市场价格-调整后的定额人工费(基价)",
             expression: "base('市场价格人工费') - base('定额基价人工费(调整后)')",
@@ -344,7 +359,8 @@ let calcTemplate = {
             statement: "市场价格人工费-调整后的定额人工费(基价)"
         },
         {
-            code: "16",
+            ID: "16",
+            code: "5.2",
             name: "材料费价差",
             dispExpr: "信息价或市场价格-定额基价材料费",
             expression: "base('市场价格材料费') - base('定额基价材料费(调整后)')",
@@ -352,7 +368,8 @@ let calcTemplate = {
             statement: "市场价格材料费-定额基价材料费"
         },
         {
-            code: "17",
+            ID: "17",
+            code: "5.3",
             name: "机械费价差",
             dispExpr: "信息价或市场价格-调整后的定额基价机械费(基价)",
             expression: "base('市场价格机械费') - base('定额基价机械费(调整后)')",
@@ -360,10 +377,11 @@ let calcTemplate = {
             statement: "市场价格机械费-调整后的定额基价机械费(基价)"
         },
         {
-            code: "18",
+            ID: "18",
+            code: "6",
             name: "综合单价",
-            dispExpr: "A1+A11+A12+A13+A14",
-            expression: "A('1') + A('11') + A('12') + A('13') + A('14')",
+            dispExpr: "F1+F11+F12+F13+F14",
+            expression: "@('1') + @('11') + @('12') + @('13') + @('14')",
             compiledExpr: "",
             statement: "基价直接工程费+企业管理费+利润+风险因素+人材机价差"
         }

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

@@ -65,7 +65,7 @@ let rationCalcView = {
 
     setting: {
         header: [
-            {headerName: "费用代号", headerWidth: 75, dataCode: "code", dataType: "String", formatter: "A"+"0", hAlign: "center"},
+            {headerName: "费用代号", headerWidth: 75, dataCode: "code", dataType: "String", hAlign: "left"},
             {headerName: "费用名称", headerWidth: 200, dataCode: "name", dataType: "String"},
             {headerName: "计算基数", headerWidth: 180, dataCode: "dispExpr", dataType: "String"},
             {headerName: "基数说明", headerWidth: 220, dataCode: "statement", dataType: "String"},