|
@@ -119,7 +119,7 @@ var projectObj = {
|
|
return value;
|
|
return value;
|
|
},
|
|
},
|
|
checkSpreadEditingText: function (editingText, colSetting) {
|
|
checkSpreadEditingText: function (editingText, colSetting) {
|
|
- if (colSetting.data.field === 'quantity' || colSetting.data.field === 'feesIndex.common.unitFee') {
|
|
|
|
|
|
+ if (colSetting.data.field === 'quantity') {
|
|
return this.checkFormulaValidField(editingText, colSetting);
|
|
return this.checkFormulaValidField(editingText, colSetting);
|
|
}
|
|
}
|
|
else if (colSetting.data.field === 'programID') {
|
|
else if (colSetting.data.field === 'programID') {
|
|
@@ -273,9 +273,10 @@ var projectObj = {
|
|
else if(fieldName ==='feeRate'){
|
|
else if(fieldName ==='feeRate'){
|
|
project.FeeRate.updateFeeRateFromBills(value,node,fieldName);
|
|
project.FeeRate.updateFeeRateFromBills(value,node,fieldName);
|
|
}
|
|
}
|
|
- else if (fieldName === 'quantity' || fieldName === 'marketUnitFee' || fieldName === 'programID' || fieldName === 'subType' || fieldName === 'calcBase'){
|
|
|
|
|
|
+ else if (fieldName === 'quantity' || fieldName === 'marketUnitFee' || fieldName === 'programID' ||
|
|
|
|
+ fieldName === 'subType' || fieldName === 'calcBase' || fieldName === 'feesIndex.common.unitFee'){
|
|
if (fieldName === 'quantity') {
|
|
if (fieldName === 'quantity') {
|
|
- if (value) {value = value.toDecimal(decimalObj.decimal(fieldName,node))};
|
|
|
|
|
|
+ if (value) {value = value.toDecimal(decimalObj.decimal(fieldName,node))};
|
|
if(project.quantity_detail.quantityEditChecking(value,node,fieldName)){
|
|
if(project.quantity_detail.quantityEditChecking(value,node,fieldName)){
|
|
node.data.isFromDetail=0;
|
|
node.data.isFromDetail=0;
|
|
project.quantity_detail.cleanQuantityDetail(node,true);
|
|
project.quantity_detail.cleanQuantityDetail(node,true);
|
|
@@ -283,16 +284,33 @@ var projectObj = {
|
|
projectObj.mainController.refreshTreeNode([node]);
|
|
projectObj.mainController.refreshTreeNode([node]);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- } else if (fieldName === 'marketUnitFee') {
|
|
|
|
|
|
+ }
|
|
|
|
+ else if (fieldName === 'marketUnitFee' || fieldName === 'feesIndex.common.unitFee') {
|
|
if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("unitPrice", node))};
|
|
if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("unitPrice", node))};
|
|
- } else if (fieldName === 'calcBase') {
|
|
|
|
- if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("totalPrice", node))};
|
|
|
|
|
|
+ }
|
|
|
|
+ else if (fieldName === 'calcBase') {
|
|
|
|
+ //zhong
|
|
|
|
+ if(value){
|
|
|
|
+ node.data.userCalcBase = value;
|
|
|
|
+ project.calcBase.calculate(node);
|
|
|
|
+ if(!project.calcBase.success){
|
|
|
|
+ let activeCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];
|
|
|
|
+ projectObj.mainSpread.getActiveSheet().setValue(activeCell.row, activeCell.col, node.data.calcBase? node.data.calcBase: '');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $.bootstrapLoading.end();
|
|
|
|
+ return;
|
|
|
|
+ // if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("totalPrice", node))};
|
|
};
|
|
};
|
|
-
|
|
|
|
node.changed = true;
|
|
node.changed = true;
|
|
- node.data[fieldName] = value;
|
|
|
|
|
|
+ if (fieldName == 'feesIndex.common.unitFee'){
|
|
|
|
+ project.calcProgram.initFeeField(node, 'common');
|
|
|
|
+ node.data.feesIndex.common.unitFee = value;
|
|
|
|
+ }
|
|
|
|
+ else node.data[fieldName] = value;
|
|
project.calcProgram.calculate(node);
|
|
project.calcProgram.calculate(node);
|
|
project.calcProgram.saveNode(node);
|
|
project.calcProgram.saveNode(node);
|
|
|
|
+ gljOprObj.showRationGLJSheetData();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
if (node.sourceType === project.Bills.getSourceType()) {
|
|
if (node.sourceType === project.Bills.getSourceType()) {
|
|
@@ -312,15 +330,16 @@ var projectObj = {
|
|
} else {
|
|
} else {
|
|
projectObj.mainController.refreshTreeNode([node], false);
|
|
projectObj.mainController.refreshTreeNode([node], false);
|
|
}
|
|
}
|
|
|
|
+ $.bootstrapLoading.end();
|
|
},
|
|
},
|
|
mainSpreadEditEnded: function (sender, info) {
|
|
mainSpreadEditEnded: function (sender, info) {
|
|
|
|
+ $.bootstrapLoading.start();
|
|
let project = projectObj.project;
|
|
let project = projectObj.project;
|
|
let node = project.mainTree.items[info.row];
|
|
let node = project.mainTree.items[info.row];
|
|
let colSetting = projectObj.mainController.setting.cols[info.col];
|
|
let colSetting = projectObj.mainController.setting.cols[info.col];
|
|
let fieldName = projectObj.mainController.setting.cols[info.col].data.field;
|
|
let fieldName = projectObj.mainController.setting.cols[info.col].data.field;
|
|
// 检查输入类型等
|
|
// 检查输入类型等
|
|
let value = projectObj.checkSpreadEditingText(info.editingText, colSetting);
|
|
let value = projectObj.checkSpreadEditingText(info.editingText, colSetting);
|
|
-
|
|
|
|
projectObj.updateCellValue(node, value, colSetting);
|
|
projectObj.updateCellValue(node, value, colSetting);
|
|
},
|
|
},
|
|
mainSpreadRangeChanged: function (sender, info) {
|
|
mainSpreadRangeChanged: function (sender, info) {
|
|
@@ -339,7 +358,7 @@ var projectObj = {
|
|
checkMainSpread: function () {
|
|
checkMainSpread: function () {
|
|
if (!this.mainSpread) {
|
|
if (!this.mainSpread) {
|
|
this.mainSpread = SheetDataHelper.createNewSpread($('#billsSpread')[0]);
|
|
this.mainSpread = SheetDataHelper.createNewSpread($('#billsSpread')[0]);
|
|
- this.mainSpread.getActiveSheet().selectionPolicy(GC.Spread.Sheets.SelectionPolicy.single);
|
|
|
|
|
|
+ this.mainSpread.getActiveSheet().selectionPolicy(GC.Spread.Sheets.SelectionPolicy.muliRange);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
refreshMainSpread: function () {
|
|
refreshMainSpread: function () {
|
|
@@ -351,21 +370,24 @@ var projectObj = {
|
|
var that = this;
|
|
var that = this;
|
|
this.project = PROJECT.createNew(scUrlUtil.GetQueryString('project'), userID);
|
|
this.project = PROJECT.createNew(scUrlUtil.GetQueryString('project'), userID);
|
|
this.project.loadDatas(function (err) {
|
|
this.project.loadDatas(function (err) {
|
|
|
|
+
|
|
if (!err) {
|
|
if (!err) {
|
|
|
|
+ that.project.property = projectInfoObj.projectInfo.property;
|
|
that.project.calcProgram.compileAllTemps();
|
|
that.project.calcProgram.compileAllTemps();
|
|
|
|
+ that.project.calcBase.init(that.project);
|
|
that.project.calcFields = JSON.parse(JSON.stringify(feeType));
|
|
that.project.calcFields = JSON.parse(JSON.stringify(feeType));
|
|
- that.project.initCalcFields();
|
|
|
|
|
|
+ // that.project.initCalcFields();
|
|
let str = JSON.stringify(that.project.projSetting.main_tree_col);
|
|
let str = JSON.stringify(that.project.projSetting.main_tree_col);
|
|
that.project.projSetting.mainGridSetting = JSON.parse(str);
|
|
that.project.projSetting.mainGridSetting = JSON.parse(str);
|
|
that.project.projSetting.mainGridSetting.frozenCols = 4;
|
|
that.project.projSetting.mainGridSetting.frozenCols = 4;
|
|
TREE_SHEET_HELPER.initSetting($('#billsSpread')[0], that.project.projSetting.mainGridSetting);
|
|
TREE_SHEET_HELPER.initSetting($('#billsSpread')[0], that.project.projSetting.mainGridSetting);
|
|
that.project.projSetting.mainGridSetting.cols.forEach(function (col) {
|
|
that.project.projSetting.mainGridSetting.cols.forEach(function (col) {
|
|
// for test. 后端没有绑定,暂时写死用于测试。
|
|
// for test. 后端没有绑定,暂时写死用于测试。
|
|
- if (col.data.field == '' && col.head.titleNames[0] == "取费专业") {
|
|
|
|
|
|
+/* if (col.data.field == '' && col.head.titleNames[0] == "取费专业") {
|
|
col.data.field = 'programID';
|
|
col.data.field = 'programID';
|
|
col.data.getText = 'getText.calcProgramName';
|
|
col.data.getText = 'getText.calcProgramName';
|
|
col.data.cellType = 'cellType.calcProgramName';
|
|
col.data.cellType = 'cellType.calcProgramName';
|
|
- };
|
|
|
|
|
|
+ };*/
|
|
|
|
|
|
col.data.splitFields = col.data.field.split('.');
|
|
col.data.splitFields = col.data.field.split('.');
|
|
if (col.data.getText && Object.prototype.toString.apply(col.data.getText) === "[object String]") {
|
|
if (col.data.getText && Object.prototype.toString.apply(col.data.getText) === "[object String]") {
|
|
@@ -378,13 +400,21 @@ var projectObj = {
|
|
let getCellType = MainTreeCol.getEvent(col.data.cellType);
|
|
let getCellType = MainTreeCol.getEvent(col.data.cellType);
|
|
col.data.cellType = getCellType;
|
|
col.data.cellType = getCellType;
|
|
}
|
|
}
|
|
- if (col.data.digit && Object.prototype.toString.apply(col.data.digit) === "[object String]") {
|
|
|
|
- col.data.decimal = that.project.getDecimal(col.data.digit);
|
|
|
|
- col.data.formatter = MainTreeCol.getNumberFormatter(col.data.decimal);
|
|
|
|
- }
|
|
|
|
|
|
+ // if (col.data.digit && Object.prototype.toString.apply(col.data.digit) === "[object String]") {
|
|
|
|
+ // col.data.decimal = that.project.getDecimal(col.data.digit);
|
|
|
|
+ // col.data.formatter = MainTreeCol.getNumberFormatter(col.data.decimal);
|
|
|
|
+ // }
|
|
if (col.data.field === 'code') {
|
|
if (col.data.field === 'code') {
|
|
col.data.formatter = '@';
|
|
col.data.formatter = '@';
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // for test digit. CSLAAAAA
|
|
|
|
+ if (col.data.field.hasSubStr("totalFee"))
|
|
|
|
+ col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.totalPrice, true)
|
|
|
|
+ else if (col.data.field.hasSubStr("unitFee"))
|
|
|
|
+ col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.unitPrice, true)
|
|
|
|
+ else if (col.data.field == "quantity")
|
|
|
|
+ col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.quantity, true);
|
|
});
|
|
});
|
|
|
|
|
|
that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
|
|
that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
|
|
@@ -396,6 +426,7 @@ var projectObj = {
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.EditEnded, that.mainSpreadEditEnded);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.EditEnded, that.mainSpreadEditEnded);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.RangeChanged, that.mainSpreadRangeChanged);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.RangeChanged, that.mainSpreadRangeChanged);
|
|
that.loadMainSpreadContextMenu();
|
|
that.loadMainSpreadContextMenu();
|
|
|
|
+ that.loadFocusLocation();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
|
|
|
|
@@ -515,6 +546,18 @@ var projectObj = {
|
|
this.project.Bills.updateAll();
|
|
this.project.Bills.updateAll();
|
|
calc = null;
|
|
calc = null;
|
|
}*/
|
|
}*/
|
|
|
|
+ // 获取上次退出时的焦点位置
|
|
|
|
+ loadFocusLocation: function() {
|
|
|
|
+ const projectId = scUrlUtil.GetQueryString('project');
|
|
|
|
+ let row = getLocalCache('lastRow:' + projectId);
|
|
|
|
+ let col = getLocalCache('lastCol:' + projectId);
|
|
|
|
+ if (row !== null && col !== null) {
|
|
|
|
+ row = parseInt(row);
|
|
|
|
+ col = parseInt(col);
|
|
|
|
+ const sheet = this.mainSpread.getActiveSheet();
|
|
|
|
+ sheet.setSelection(row, col, 1, 1);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
};
|
|
};
|
|
|
|
|
|
$('#insert').click(function () {
|
|
$('#insert').click(function () {
|
|
@@ -598,47 +641,75 @@ $('#poj-set').on('show.bs.modal', function () {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (projectObj.project) {
|
|
if (projectObj.project) {
|
|
- let mode = projectObj.project.projSetting.billsCalcMode;
|
|
|
|
- let settingConst = projectObj.project.projSetting.settingConst;
|
|
|
|
- setCalcFlag($('#rationContent'), settingConst.billsCalcMode.rationContent, mode);
|
|
|
|
- setCalcFlag($('#rationPrice'), settingConst.billsCalcMode.rationPrice, mode);
|
|
|
|
- setCalcFlag($('#rationPriceConverse'), settingConst.billsCalcMode.rationPriceConverse, mode);
|
|
|
|
- setCalcFlag($('#billsPrice'), settingConst.billsCalcMode.billsPrice, mode);
|
|
|
|
|
|
+ // let mode = projectObj.project.projSetting.billsCalcMode;
|
|
|
|
+ // let settingConst = projectObj.project.projSetting.settingConst;
|
|
|
|
+ let mode = projectObj.project.property.billsCalcMode ? projectObj.project.property.billsCalcMode : leafBillGetFeeType.rationContent;
|
|
|
|
+ setCalcFlag($('#rationContent'), leafBillGetFeeType.rationContent, mode);
|
|
|
|
+ setCalcFlag($('#rationPriceConverse'), leafBillGetFeeType.rationPriceConverse, mode);
|
|
|
|
+ setCalcFlag($('#rationPrice'), leafBillGetFeeType.rationPrice, mode);
|
|
|
|
+ setCalcFlag($('#billsPrice'), leafBillGetFeeType.billsPrice, mode);
|
|
|
|
|
|
- mode = projectObj.project.projSetting.zanguCalcMode;
|
|
|
|
- setCalcFlag($('#zangu_common'), settingConst.zanguCalcMode.common, mode);
|
|
|
|
- setCalcFlag($('#zangu_gatherMatherial'), settingConst.zanguCalcMode.gatherMaterial, mode);
|
|
|
|
|
|
+ // mode = projectObj.project.projSetting.zanguCalcMode;
|
|
|
|
+ mode = projectObj.project.property.zanguCalcMode ? projectObj.project.property.zanguCalcMode : zanguCalcMode.common;
|
|
|
|
+ setCalcFlag($('#zangu_common'), zanguCalcMode.common, mode);
|
|
|
|
+ setCalcFlag($('#zangu_gatherMatherial'), zanguCalcMode.gatherMaterial, mode);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
$('#property_ok').click(function () {
|
|
$('#property_ok').click(function () {
|
|
|
|
+ let properties = [], projectID = parseInt(scUrlUtil.GetQueryString('project'));
|
|
let project = projectObj.project, reCalc= false;
|
|
let project = projectObj.project, reCalc= false;
|
|
- let mode = parseInt($("input[name='calcFlag']:checked").val());
|
|
|
|
- let zanguMode = parseInt($("input[name='zangu']:checked").val());
|
|
|
|
- if (mode !== project.projSetting.billsCalcMode) {
|
|
|
|
- project.setBillsCalcMode(mode);
|
|
|
|
|
|
+ let billMode = parseInt($("input[name='calcFlag']:checked").val());
|
|
|
|
+ if (billMode !== project.property.billsCalcMode) {
|
|
|
|
+ // project.setBillsCalcMode(mode);
|
|
|
|
+ project.property.billsCalcMode = billMode;
|
|
reCalc = true;
|
|
reCalc = true;
|
|
- }
|
|
|
|
- if (zanguMode !== project.projSetting.zanguCalcMode) {
|
|
|
|
- project.projSetting.zanguCalcMode = zanguMode;
|
|
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ let zanguMode = parseInt($("input[name='zangu']:checked").val());
|
|
|
|
+ if (zanguMode !== project.property.zanguCalcMode) {
|
|
|
|
+ project.property.zanguCalcMode = zanguMode;
|
|
reCalc = true;
|
|
reCalc = true;
|
|
- }
|
|
|
|
|
|
+ };
|
|
|
|
+
|
|
if (labourCoeView.needSave()){
|
|
if (labourCoeView.needSave()){
|
|
labourCoeView.save();
|
|
labourCoeView.save();
|
|
reCalc = true;
|
|
reCalc = true;
|
|
}
|
|
}
|
|
|
|
+
|
|
if (reCalc) {
|
|
if (reCalc) {
|
|
- // projectObj.calculateAll();
|
|
|
|
-/* project.pushNow('editBillsCalcMode',
|
|
|
|
- [project.projSetting.moduleName, project.Bills.getSourceType()],
|
|
|
|
- [{
|
|
|
|
- projectID: project.ID(),
|
|
|
|
- billsCalcMode: project.projSetting.billsCalcMode
|
|
|
|
- }, project.Bills.getUpdateAllData()]
|
|
|
|
- );*/
|
|
|
|
- project.pushNow('', [project.projSetting.moduleName], [{
|
|
|
|
|
|
+/* project.pushNow('', [project.projSetting.moduleName], [{
|
|
projectID: project.ID(),
|
|
projectID: project.ID(),
|
|
- billsCalcMode: project.projSetting.billsCalcMode
|
|
|
|
- }]);
|
|
|
|
|
|
+ billsCalcMode: project.property.billsCalcMode
|
|
|
|
+ }]);*/
|
|
project.calcProgram.calcAllNodes(calcAllType.catBills);
|
|
project.calcProgram.calcAllNodes(calcAllType.catBills);
|
|
}
|
|
}
|
|
|
|
+ //基本信息
|
|
|
|
+ if(basicInfoView.toUpdate(basicInfoView.orgDatas, basicInfoView.datas)){
|
|
|
|
+ let updateData = {updateType: 'update', updateData: {ID: projectID, 'property.basicInformation': basicInfoView.toSaveDatas(basicInfoView.datas)}};
|
|
|
|
+ properties.push(updateData);
|
|
|
|
+ }
|
|
|
|
+ //工程特征
|
|
|
|
+ if(projFeatureView.toUpdate(projFeatureView.orgDatas, projFeatureView.datas)){
|
|
|
|
+ let updateData = {updateType: 'update', updateData: {ID: projectID, 'property.projectFeature': projFeatureView.toSaveDatas(projFeatureView.datas)}};
|
|
|
|
+ properties.push(updateData);
|
|
|
|
+ }
|
|
|
|
+ //清单工程量精度
|
|
|
|
+ let newBillsDecimalDatas = billsDecimalView.toBillsDecimalDatas(billsDecimalView.cache);
|
|
|
|
+ if(billsDecimalView.toUpdate(billsQuanDecimal.datas, newBillsDecimalDatas)){
|
|
|
|
+ let updateData = {updateType: 'update', updateData: {ID: projectID, 'property.billsQuantityDecimal': newBillsDecimalDatas}};
|
|
|
|
+ properties.push(updateData);
|
|
|
|
+ }
|
|
|
|
+ //小数位数
|
|
|
|
+ //获取更新的数据
|
|
|
|
+ let updateDecimal = m_getDecimalData($('input', '#poj-settings-decimal'));
|
|
|
|
+ if(toUpdateDecimal(decimalObj, updateDecimal)){
|
|
|
|
+ let updateData = {updateType: 'update', updateData: {ID: projectID, 'property.decimal': updateDecimal}};
|
|
|
|
+ properties.push(updateData);
|
|
|
|
+ }
|
|
|
|
+ console.log(properties);
|
|
|
|
+ if(properties.length > 0){
|
|
|
|
+ CommonAjax.post('/pm/api/updateProjects', {user_id: userID, updateData: properties}, function (rstData) {
|
|
|
|
+ window.location.href = '/main?project=' + projectID;
|
|
|
|
+ });
|
|
|
|
+ }
|
|
});
|
|
});
|