|
@@ -5,6 +5,19 @@
|
|
|
|
|
|
|
|
|
var feeRateObject={
|
|
|
+ mainFeeRateSpread:null,
|
|
|
+ mainFeeRateSheet:null,
|
|
|
+ mainFeeRateData:null,
|
|
|
+ mainFeeRateSetting:{
|
|
|
+ header: [
|
|
|
+ {headerName: "专业名称", headerWidth: 550, dataCode: "name", dataType: "String"},
|
|
|
+ {headerName: "值%", headerWidth: 250, dataCode: "rate", dataType: "Number",hAlign: "right",decimalField:"feeRate"},
|
|
|
+ {headerName: "备注", dataCode: "memo", dataType: "String"}
|
|
|
+ ],
|
|
|
+ view: {
|
|
|
+ lockColumns: [0]
|
|
|
+ }
|
|
|
+ },
|
|
|
mainViews:null,
|
|
|
datas:null,
|
|
|
datasBackup:null,
|
|
@@ -19,7 +32,7 @@ var feeRateObject={
|
|
|
sheetSetting: {
|
|
|
header: [
|
|
|
{headerName: "专业名称", headerWidth: 200, dataCode: "name", dataType: "String"},
|
|
|
- {headerName: "值%", headerWidth: 150, dataCode: "rate", dataType: "Number",hAlign: "right",decimalField:"feeRate"},
|
|
|
+ {headerName: "值%", headerWidth: 120, dataCode: "rate", dataType: "Number",hAlign: "right",decimalField:"feeRate"},
|
|
|
{headerName: "备注", dataCode: "memo", dataType: "String"}
|
|
|
],
|
|
|
view: {
|
|
@@ -124,10 +137,7 @@ var feeRateObject={
|
|
|
feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellClick,feeRateObject.onCellClick);
|
|
|
feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellDoubleClick,feeRateObject.onCellDoubleClick);
|
|
|
},
|
|
|
- showSelectTree:function () {
|
|
|
- var sheet= feeRateObject.feeRateSheet;
|
|
|
- var setting=feeRateObject.sheetSetting;
|
|
|
- var data = projectObj.project.FeeRate.getActivateFeeRate().rates;
|
|
|
+ showSelectTree:function (sheet,setting,data) {
|
|
|
var ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
var groups=[];
|
|
|
sheet.suspendPaint();
|
|
@@ -370,38 +380,100 @@ var feeRateObject={
|
|
|
this.mainViews.invalidate();
|
|
|
document.querySelector('#divFee').focus();
|
|
|
},
|
|
|
+ initFeeRateSpread:function (rowCount) {
|
|
|
+ //初始化费用项表格
|
|
|
+ this.mainFeeRateSpread = sheetCommonObj.buildSheet($('#divFee')[0], this.mainFeeRateSetting,rowCount);
|
|
|
+ this.mainFeeRateSpread.options.scrollbarMaxAlign = true;
|
|
|
+ this.mainFeeRateSheet = this.mainFeeRateSpread.getSheet(0);
|
|
|
+ sheetCommonObj.lockCells(this.mainFeeRateSheet , this.mainFeeRateSetting);
|
|
|
+ this.mainFeeRateSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onMainFeeRateSheetValueChange);
|
|
|
+ this.mainFeeRateSheet.bind(GC.Spread.Sheets.Events.SelectionChanged, this.onMainFeeRateSelectChanged);
|
|
|
+ this.mainFeeRateSheet.bind(GC.Spread.Sheets.Events.EditStarting, function (e,args) {
|
|
|
+ let me =feeRateObject, row = args.row;
|
|
|
+ let recode = me.mainFeeRateData[row];
|
|
|
+ let dataCode = me.mainFeeRateSetting.header[args.col].dataCode;
|
|
|
+ if(dataCode=="rate"&&me.getChildrenCount(recode.ID,me.mainFeeRateData)>0){//有子节点时不能编辑费率列
|
|
|
+ args.cancel = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.mainFeeRateSheet.name('mainFeeRateSheet');
|
|
|
+ },
|
|
|
+ showMainFeeRateData:function () {
|
|
|
+ let me = this;
|
|
|
+ me.activateFeeRate = projectObj.project.FeeRate.getActivateFeeRate();
|
|
|
+ me.mainFeeRateData = projectObj.project.FeeRate.getActivateFeeRate().rates;
|
|
|
+ me.mainFeeRateSheet.setRowCount(0);
|
|
|
+ me.mainFeeRateSheet.setRowCount(me.mainFeeRateData.length);
|
|
|
+ me.showSelectTree(me.mainFeeRateSheet,me.mainFeeRateSetting,me.mainFeeRateData);
|
|
|
+ },
|
|
|
reFreshRateViews:function() {
|
|
|
- feeRateObject.createSpreadView();
|
|
|
+ //feeRateObject.createSpreadView();
|
|
|
+ feeRateObject.loadPageContent();
|
|
|
+ this.showMainFeeRateData();
|
|
|
+ if(subRateObject.subRateSpread){//如果子费率没有初始化过的话,不需要显示。
|
|
|
+ subRateObject.initSubRateSpread(this.mainFeeRateData[0]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onMainFeeRateSheetValueChange:function (e,info) {
|
|
|
+ let me = feeRateObject,updateData = {},feeRate = projectObj.project.FeeRate;
|
|
|
+ let recode = me.mainFeeRateData[info.row];
|
|
|
+ let fieldID = me.mainFeeRateSetting.header[info.col].dataCode;
|
|
|
+ let value = info.newValue;
|
|
|
+ if(fieldID == 'rate'&&value != null){
|
|
|
+ if(number_util.isNumber(parseFloat(value))){
|
|
|
+ value = scMathUtil.roundForObj(value,getDecimal("feeRate"));
|
|
|
+ }else {
|
|
|
+ alert('当前输入的数据类型不正确,请重新输入。');
|
|
|
+ me.mainFeeRateSheet.setValue(info.row, info.col, info.oldValue);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(recode[fieldID] == value){//没有改变
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ updateData[fieldID] = value;
|
|
|
+ $.bootstrapLoading.start();
|
|
|
+ feeRate.updateFeeRateByID(recode.ID,updateData,function () {
|
|
|
+ if(fieldID == 'rate'){
|
|
|
+ feeRate.onFeeRateChange(recode.ID,value);
|
|
|
+ }
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ onMainFeeRateSelectChanged:function (e, info) {
|
|
|
+ let me = feeRateObject;
|
|
|
+ let row = info.newSelections[0].row;
|
|
|
+ if(row!=-1){
|
|
|
+ subRateObject.initSubRateSpread(me.mainFeeRateData[row]);
|
|
|
+ }
|
|
|
},
|
|
|
updateBySelect:function (rate,selectMap,mapID) {
|
|
|
- var selected = this.mainViews.getSelections()[0];
|
|
|
+ let selected = this.mainFeeRateSheet.getSelections()[0];
|
|
|
projectObj.project.FeeRate.backupDatas();
|
|
|
- var item = this.datas[selected.sourceRow];
|
|
|
+ let item = this.mainFeeRateData[selected.row];
|
|
|
item.rate = rate;
|
|
|
- _.forEach(selectMap,function (value,key) {
|
|
|
- var recode = item.subFeeRate.recodes[key];
|
|
|
- var optionList = recode.optionList;
|
|
|
- _.forEach(optionList,function (o) {
|
|
|
- if(o.value==value){
|
|
|
+ for(let key in selectMap){
|
|
|
+ let recode = item.subFeeRate.recodes[key];
|
|
|
+ let optionList = recode.optionList;
|
|
|
+ for(let o of optionList){
|
|
|
+ if(o.value==selectMap[key]){
|
|
|
o.selected=true;
|
|
|
}else {
|
|
|
o.selected = false;
|
|
|
}
|
|
|
- })
|
|
|
- })
|
|
|
+ }
|
|
|
+ }
|
|
|
if($('#cascadeSet').prop('checked')){
|
|
|
- this.cascadeSetRates(item,selected.sourceRow,mapID,selectMap)
|
|
|
+ this.cascadeSetRates(item,selected.row,mapID,selectMap);
|
|
|
}else {
|
|
|
- this.mainViews.data.updateItem(selected.sourceRow,item);
|
|
|
+ projectObj.project.FeeRate.batchUpdateFeeRate([{rateIndex:selected.row,rate:item}],feeRateObject.activateFeeRate);
|
|
|
}
|
|
|
- //projectObj.project.FeeRate.synchronizeFeeRate();
|
|
|
-
|
|
|
- //this.views.data.updateItem()
|
|
|
},
|
|
|
cascadeSetRates:function(selectedItem,sourceRow,mapID,selectMap){
|
|
|
var items=[];
|
|
|
items.push({rateIndex:sourceRow,rate:selectedItem});
|
|
|
- _.forEach(this.datas,function (recode,Index) {
|
|
|
+ _.forEach(this.mainFeeRateData,function (recode,Index) {
|
|
|
if(Index!=sourceRow&&recode.subFeeRate){
|
|
|
var valueMaps = recode.subFeeRate.valueMaps;
|
|
|
var valueMap = _.find(valueMaps,{ID:mapID});
|
|
@@ -415,7 +487,7 @@ var feeRateObject={
|
|
|
var optionList = tempRecode.optionList;
|
|
|
_.forEach(optionList,function (o) {
|
|
|
if(o.value==value){
|
|
|
- o.selected=true;
|
|
|
+ o.selected = true;
|
|
|
}else {
|
|
|
o.selected = false;
|
|
|
}
|
|
@@ -493,10 +565,8 @@ var feeRateObject={
|
|
|
changeFeeRateStandard:function(newVal){
|
|
|
$.bootstrapLoading.start();
|
|
|
var callback=function () {
|
|
|
- feeRateObject.createSpreadView();
|
|
|
- feeRateObject.loadPageContent();
|
|
|
- projectObj.project.FeeRate.synchronizeFeeRate();
|
|
|
- subRateObject.destorySpreadView();
|
|
|
+ feeRateObject.reFreshRateViews();
|
|
|
+ projectObj.project.FeeRate.onFeeRateFileChange();
|
|
|
$.bootstrapLoading.end();
|
|
|
};
|
|
|
projectObj.project.FeeRate.changeFeeRateStandard(newVal,callback);
|
|
@@ -595,8 +665,8 @@ var feeRateObject={
|
|
|
name:name
|
|
|
}
|
|
|
var callback=function () {
|
|
|
- feeRateObject.createSpreadView();
|
|
|
- feeRateObject.loadPageContent();
|
|
|
+ //feeRateObject.createSpreadView();
|
|
|
+ feeRateObject.reFreshRateViews();
|
|
|
projectObj.project.FeeRate.onFeeRateFileChange();
|
|
|
$.bootstrapLoading.end();
|
|
|
}
|
|
@@ -621,8 +691,7 @@ var feeRateObject={
|
|
|
changeFeeRateFileConfirm:function(feeRateFileID,name){
|
|
|
$.bootstrapLoading.start();
|
|
|
var callback=function () {
|
|
|
- feeRateObject.createSpreadView();
|
|
|
- feeRateObject.loadPageContent();
|
|
|
+ feeRateObject.reFreshRateViews();
|
|
|
projectObj.project.FeeRate.onFeeRateFileChange();
|
|
|
$.bootstrapLoading.end();
|
|
|
}
|
|
@@ -670,6 +739,7 @@ var feeRateObject={
|
|
|
var data={'projectID': projectObj.project.ID(),'templatesID': calInfo.template.ID,'calcItem': calInfo.calcItem};
|
|
|
$.bootstrapLoading.start();
|
|
|
calcProgramManage.saveCalcItem(data,function (result) {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
calInfo.calcItem.feeRate=rate.rate;
|
|
|
projectObj.project.calcProgram.compileAllTemps();
|
|
|
projectObj.project.calcProgram.calcAllNodesAndSave();
|
|
@@ -715,9 +785,13 @@ $(function(){
|
|
|
);
|
|
|
|
|
|
$('#tab_fee_rate').on('shown.bs.tab', function (e) {
|
|
|
+ let me = feeRateObject;
|
|
|
$(e.relatedTarget.hash).removeClass('active');
|
|
|
- feeRateObject.reFreshRateViews();
|
|
|
- feeRateObject.loadPageContent();
|
|
|
+ if(me.mainFeeRateSpread == null){
|
|
|
+ me.initFeeRateSpread(0);
|
|
|
+ }
|
|
|
+ me.showMainFeeRateData();
|
|
|
+ me.loadPageContent();
|
|
|
});
|
|
|
|
|
|
$('#setNewFeeRate').bind('click', function () {
|
|
@@ -844,7 +918,7 @@ $(function(){
|
|
|
feeRateObject.createSheet();
|
|
|
}
|
|
|
feeRateObject.feeRateSelection=null;
|
|
|
- feeRateObject.showSelectTree();
|
|
|
+ feeRateObject.showSelectTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
|
|
|
});
|
|
|
|
|
|
$('#fee_rate_tree').on('hidden.bs.modal', function (e) {
|