/** * Created by Mai on 2017/7/13. */ let rationCalcFields = [ { type: 'baseDirect', code: "1", name: "基价直接工程费", dispExpr: "1.1+1.2+1.3+1.4", expression: "@('1.1') + @('1.2') + @('1.3') + @('1.4')", compiledExpr: "", statement: "基价人工费+基价材料费+基价机械费+未计价材料费" },{ type: 'baseLabour', code: "1.1", name: "基价人工费", dispExpr: "1.1.1+1.1.2", expression: "@('1.1.1') + @('1.1.2')", compiledExpr: "", statement: "定额基价人工费+定额人工单价(基价)调整" },{ type: 'rationBaseLabour', code: "1.1.1", name: "定额基价人工费", dispExpr: "定额基价人工费", expression: "base('定额基价人工费').toFixed(2)", compiledExpr: "", statement: "定额基价人工费" },{ type: 'rationAdjustLabour', code: "1.1.2", name: "定额人工单价(基价)调整", dispExpr: "1.1.1*[1.89-1]", expression: "@('1.1.1') * fee('3')", compiledExpr: "", statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]" },{ type: 'baseMaterial', code: "1.2", name: "基价材料费", dispExpr: "定额基价材料费", expression: "base('定额基价材料费')", compiledExpr: "", statement: "定额基价材料费" },{ type: 'baseMachine', code: "1.3", name: "基价机械费", dispExpr: "1.3.1+1.3.2", expression: "@('1.3.1') + @('1.3.2')", compiledExpr: "", statement: "定额基价机械费+定额机上人工单价(基价)调整" },{ type: 'rationBaseMachine', code: "1.3.1", name: "定额基价机械费", dispExpr: "定额基价机械费", expression: "base('定额基价机械费')", compiledExpr: "", statement: "定额基价机械费" },{ type: 'rationBaseMachineLabour', code: "1.3.1.1", name: "其中:定额基价机上人工费", dispExpr: "定额基价机上人工费", expression: "base('定额基价机上人工费')", compiledExpr: "", statement: "定额基价机上人工费" },{ type: 'rationBaseMachineLabourFixed', code: "1.3.2", name: "定额机上人工单价(基价)调整", dispExpr: "1.3.1.1*[1.89-1]", expression: "@('1.3.1.1') * fee('30')", compiledExpr: "", statement: "定额基价机上人工费*[定额人工单价(基价)调整系数-1]" },{ type: 'unPriceMaterial', code: "1.4", name: "未计价材料费", dispExpr: "主材费+设备费", expression: "base('主材费') + base('设备费')", compiledExpr: "", statement: "主材费+设备费" },{ type: 'management', code: "2", name: "企业管理费", dispExpr: "1.1.1", expression: "@('1.1.1')", compiledExpr: "", statement: "定额基价人工费" },{ type: 'profit', code: "3", name: "利润", dispExpr: "1.1.1", expression: "@('1.1.1')", compiledExpr: "", statement: "定额基价人工费" },{ type: 'risk', code: "4", name: "风险因素", dispExpr: "", expression: "0", compiledExpr: "", statement: "" },{ type: 'gljDiff', code: "5", name: "人材机价差", dispExpr: "5.1+5.2+5.3", expression: "@('5.1') + @('5.2') + @('5.3')", compiledExpr: "", statement: "人工费价差+材料费价差+机械费价差" },{ type: 'labourDiff', code: "5.1", name: "人工费价差", dispExpr: "信息价或市场价格-调整后的定额人工费(基价)", expression: "base('市场价格人工费') - base('定额基价人工费(调整后)')", compiledExpr: "", statement: "市场价格人工费-调整后的定额人工费(基价)" },{ type: 'materialDiff', code: "5.2", name: "材料费价差", dispExpr: "信息价或市场价格-定额基价材料费", expression: "base('市场价格材料费') - base('定额基价材料费(调整后)')", compiledExpr: "", statement: "市场价格材料费-定额基价材料费" },{ type: 'machineDiff', code: "5.3", name: "机械费价差", dispExpr: "信息价或市场价格-调整后的定额基价机械费(基价)", expression: "base('市场价格机械费') - base('定额基价机械费(调整后)')", compiledExpr: "", statement: "市场价格机械费-调整后的定额基价机械费(基价)" },{ type: 'common', code: "6", name: "综合单价", dispExpr: "1+2+3+4+5", expression: "@('1') + @('2') + @('3') + @('4') + @('5')", compiledExpr: "", statement: "基价直接工程费+企业管理费+利润+风险因素+人材机价差" } ]; let rationCalcObj = { calcGljs: [], calcFields: null, base: function () { }, adjust: function () { }, budget: function () { }, calculate () { let result = {}; } }; class RationCalc { constructor (project) { this.project = project; }; calculate (ration) { rationCalcObj.calcGljs = this.project.ration_glj.getGljArrByRation(ration.ID); rationCalcObj.calcFields = rationCalcFields; let virData = rationCalcObj.calculate(); calcFees.checkFields(ration, rationCalcFields); for (let field of rationCalcFields) { ration.feesIndex[field.type].unitFee = virData[field.type].unitFee; ration.feesIndex[field.type].totalFee = virData[field.type].totalFee; } } calculateAll () { for (let rationData of project.ration.data) { this.calculate(rationData); } }; }