|
@@ -138,15 +138,13 @@ var feeRateObject={
|
|
|
feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellClick,feeRateObject.onCellClick);
|
|
|
feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellDoubleClick,feeRateObject.onCellDoubleClick);
|
|
|
},
|
|
|
- showSelectTree:function (sheet,setting,data) {
|
|
|
- var ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
- var groups=[];
|
|
|
+ showFeeRateTree:function (sheet,setting,data) {
|
|
|
+ let ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
+ let parentMap=_.indexBy(data, 'ParentID');
|
|
|
sheet.suspendPaint();
|
|
|
sheet.suspendEvent();
|
|
|
- sheet.rowOutlines.direction(GC.Spread.Sheets.Outlines.OutlineDirection.backward);
|
|
|
- sheet.getRange(-1, 0, -1, 1).cellType(feeRateObject.getTreeNodeCellType());
|
|
|
- for (var col = 0; col < setting.header.length; col++) {
|
|
|
- var hAlign = "left", vAlign = "center";
|
|
|
+ for (let col = 0; col < setting.header.length; col++) {
|
|
|
+ let hAlign = "left", vAlign = "center";
|
|
|
if (setting.header[col].hAlign) {
|
|
|
hAlign = setting.header[col].hAlign;
|
|
|
} else if (setting.header[col].dataType !== "String"){
|
|
@@ -157,11 +155,11 @@ var feeRateObject={
|
|
|
if (setting.header[col].formatter) {
|
|
|
sheet.setFormatter(-1, col, setting.header[col].formatter, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
}
|
|
|
- for (var row = 0; row < data.length; row++) {
|
|
|
- var val = data[row][setting.header[col].dataCode];
|
|
|
+ for (let row = 0; row < data.length; row++) {
|
|
|
+ let val = data[row][setting.header[col].dataCode];
|
|
|
if(val&&setting.header[col].dataType === "Number"){
|
|
|
if(setting.header[col].hasOwnProperty('decimalField')){
|
|
|
- var decimal = getDecimal(setting.header[col].decimalField);
|
|
|
+ let decimal = getDecimal(setting.header[col].decimalField);
|
|
|
val =scMathUtil.roundToString(val,decimal);
|
|
|
sheet.setFormatter(-1, col,getFormatter(decimal), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
}else {
|
|
@@ -170,67 +168,58 @@ var feeRateObject={
|
|
|
}
|
|
|
sheet.setValue(row, col, val, ch);
|
|
|
if(col==0){
|
|
|
- feeRateObject.setSheetGroup(data[row],data,groups,row+1);
|
|
|
+ sheet.getCell(row, 0).textIndent(feeRateObject.getFeeRateLevel(data[row],data));//设置层级,0 为第一层
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //this.lockCells(sheet,setting);
|
|
|
- _.forEach(groups,function (g) {
|
|
|
- for(var k in g){
|
|
|
- sheet.rowOutlines.group(parseInt(k), g[k]);
|
|
|
+ sheet.outlineColumn.options({columnIndex: 0, maxLevel: 10});//设置树结构显示的列,和最大层级
|
|
|
+ for(let i =0;i<data.length;i++){
|
|
|
+ if(parentMap[data[i].ID]){
|
|
|
+ sheet.rowOutlines.setCollapsed(i, true);
|
|
|
}
|
|
|
- })
|
|
|
- /* sheet.rowOutlines.group(1, 6);
|
|
|
- sheet.rowOutlines.group(8, 6);
|
|
|
- sheet.rowOutlines.group(15, 6);
|
|
|
- sheet.rowOutlines.group(22, 6);*/
|
|
|
- // sheet.getRange(-1, 0, -1, 1).width(300);
|
|
|
+ }
|
|
|
sheet.showRowOutline(false);
|
|
|
-
|
|
|
- // 默认折叠
|
|
|
- for (let i in data){
|
|
|
- if (!data[i].ParentID){
|
|
|
- sheet.rowOutlines.setCollapsed(parseFloat(i), true);
|
|
|
- };
|
|
|
- };
|
|
|
-
|
|
|
+ sheet.outlineColumn.refresh();
|
|
|
sheet.resumeEvent();
|
|
|
- sheet.resumePaint(false);
|
|
|
+ sheet.resumePaint();
|
|
|
+ },
|
|
|
+ getFeeRateLevel:function (rate,data) {
|
|
|
+ if(rate.ParentID){
|
|
|
+ let prate = _.find(data,{'ID':rate.ParentID});
|
|
|
+ return this.getFeeRateLevel(prate,data) + 1;
|
|
|
+ }else {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
},
|
|
|
locate: function(){ // CSL,2018.07.18
|
|
|
let sheet = feeRateObject.feeRateSpreads.getSheet(0);
|
|
|
-
|
|
|
let fID = 0;
|
|
|
if ($("#calc_program_manage").is(":visible"))
|
|
|
- fID = calcProgramManage.getSelectionInfo().calcItem.feeRateID
|
|
|
+ fID = calcProgramManage.getSelectionInfo().calcItem.feeRateID;
|
|
|
else if ($("#zaojiashu").is(":visible"))
|
|
|
fID = projectObj.project.mainTree.selected.data.feeRateID;
|
|
|
let rates = projectObj.project.FeeRate.getActivateFeeRate().rates;
|
|
|
let rowIdx = 0, pID = 0;
|
|
|
-
|
|
|
if (fID){
|
|
|
- for (let i in rates) {
|
|
|
- if (rates[i].ID == fID){
|
|
|
- rowIdx = parseFloat(i);
|
|
|
- pID = rates[i].ParentID;
|
|
|
- break;
|
|
|
- };
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- // 展开
|
|
|
- for (let i in rates){
|
|
|
- if (!rates[i].ParentID && (rates[i].ID == pID)){
|
|
|
- sheet.rowOutlines.setCollapsed(parseFloat(i), false);
|
|
|
- break;
|
|
|
- };
|
|
|
- };
|
|
|
+ rowIdx = _.findIndex(rates,{ID:fID});
|
|
|
+ pID = rates[rowIdx].ParentID;
|
|
|
+ }
|
|
|
+ // 费率现有可能有多层节点,所以要递归展开父节点
|
|
|
+ expandParent(pID,rates,sheet);
|
|
|
|
|
|
sheet.setSelection(rowIdx, -1, 1, -1);
|
|
|
sheet.showRow(rowIdx, GC.Spread.Sheets.VerticalPosition.center);
|
|
|
feeRateObject.onCellClick({type: 'CellClick'}, {row:rowIdx});
|
|
|
+
|
|
|
+ function expandParent(ID,datas,sheet) {//递归展开父节点
|
|
|
+ let index = _.findIndex(datas,{'ID':ID});
|
|
|
+ sheet.rowOutlines.setCollapsed(index, false);
|
|
|
+ if(datas[index].ParentID){
|
|
|
+ expandParent(datas[index].ParentID,datas,sheet)
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
- getTreeNodeCellType:function () {
|
|
|
+ getTreeNodeCellType:function () {//这个方法费率已暂时不用了
|
|
|
var ns = GC.Spread.Sheets;
|
|
|
function TreeNodeCellType() {
|
|
|
}
|
|
@@ -266,8 +255,6 @@ var feeRateObject={
|
|
|
ctx.restore();
|
|
|
}
|
|
|
else {
|
|
|
- // x--;
|
|
|
- //y += h / 2 - 3;
|
|
|
ctx.save();
|
|
|
ctx.restore();
|
|
|
}
|
|
@@ -373,7 +360,6 @@ var feeRateObject={
|
|
|
hitinfo.sheet.repaint();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
};
|
|
|
FeeRateEditCellType.prototype.processMouseLeave = function (hitinfo) {
|
|
|
hideButton(hitinfo);
|
|
@@ -399,16 +385,6 @@ var feeRateObject={
|
|
|
$("#calcBaseFeeRate").modal({show:true});
|
|
|
$('#edit_from').val(hitinfo.sheet.name());
|
|
|
},
|
|
|
- setSheetGroup:function (rate,data,groups,row) {
|
|
|
- var me=this;
|
|
|
- var group={};
|
|
|
- var count=me.getChildrenCount(rate.ID,data);
|
|
|
- if(count>0){
|
|
|
- group[row]=count;
|
|
|
- groups.push(group);
|
|
|
- }
|
|
|
- return groups;
|
|
|
- },
|
|
|
getChildrenCount:function (id,data) {
|
|
|
var me=this;
|
|
|
var sum=0;
|
|
@@ -483,11 +459,10 @@ var feeRateObject={
|
|
|
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);
|
|
|
+ me.showFeeRateTree(me.mainFeeRateSheet,me.mainFeeRateSetting,me.mainFeeRateData);
|
|
|
me.mainFeeRateSheet.setSelection(selected.row,selected.col,selected.rowCount,selected.colCount);
|
|
|
},
|
|
|
reFreshRateViews:function() {
|
|
|
- //feeRateObject.createSpreadView();
|
|
|
feeRateObject.loadPageContent();
|
|
|
this.showMainFeeRateData();
|
|
|
if(subRateObject.subRateSpread){//如果子费率没有初始化过的话,不需要显示。
|
|
@@ -613,13 +588,9 @@ var feeRateObject={
|
|
|
_.forEach(selectMap,function (value,key) {
|
|
|
let tempRecode = recode.subFeeRate.recodes[key];
|
|
|
let optionList = tempRecode.optionList;
|
|
|
- _.forEach(optionList,function (o) {
|
|
|
- if(o.value==value){
|
|
|
- o.selected = true;
|
|
|
- }else {
|
|
|
- o.selected = false;
|
|
|
- }
|
|
|
- })
|
|
|
+ for(let o of optionList){
|
|
|
+ o.value===value? o.selected = true:o.selected = false;
|
|
|
+ }
|
|
|
});
|
|
|
items.push({rateIndex:Index,rate:recode});
|
|
|
}
|
|
@@ -628,13 +599,9 @@ var feeRateObject={
|
|
|
let selectList = mapID.split('-');
|
|
|
let newList=[];
|
|
|
_.forEach(recode.subFeeRate.recodes,function (r) {
|
|
|
- let oList = r.optionList;
|
|
|
- let oldSelectIndex=0;
|
|
|
- let hasChange=false;
|
|
|
+ let oList = r.optionList, oldSelectIndex=0, hasChange=false;
|
|
|
_.forEach(oList,function (o,key) {
|
|
|
- if(o.selected){
|
|
|
- oldSelectIndex = key;
|
|
|
- }
|
|
|
+ if(o.selected) oldSelectIndex = key;
|
|
|
if(_.includes(selectList,o.value)){
|
|
|
needUpdate=true;
|
|
|
o.selected=true;
|
|
@@ -653,7 +620,7 @@ var feeRateObject={
|
|
|
let newValue = _.find(valueMaps,{ID:newList.join("-")})//取出费率值并更新
|
|
|
if(newValue){
|
|
|
if(recode.rate != newValue.value){
|
|
|
- recode.rate = newValue.value
|
|
|
+ recode.rate = newValue.value;
|
|
|
items.push({rateIndex:Index,rate:recode});
|
|
|
}
|
|
|
}
|
|
@@ -724,9 +691,9 @@ var feeRateObject={
|
|
|
$('#nameError').text("请输入文件名称。").show();
|
|
|
return;
|
|
|
}
|
|
|
- var valideName = $('#valid_name').val();
|
|
|
+ let valideName = $('#valid_name').val();
|
|
|
if(valideName==''||valideName!==newName){
|
|
|
- var callback=function (data) {
|
|
|
+ let callback=function (data) {
|
|
|
if(data){
|
|
|
$('#saveAsConfirm').attr("disabled","disabled");
|
|
|
$('#nameError').text("已存在同名费率文件。").show();
|
|
@@ -756,7 +723,6 @@ var feeRateObject={
|
|
|
var callback=function (data) {
|
|
|
me.changeInfo=data;
|
|
|
me.loadChangePageContent(data);
|
|
|
- console.log(data);
|
|
|
};
|
|
|
projectObj.project.FeeRate.getChangeInfo(callback);
|
|
|
},
|
|
@@ -767,7 +733,6 @@ var feeRateObject={
|
|
|
var option = $("<option>").val(s.ID).text(s.name);
|
|
|
$('#currentOptions').append(option);
|
|
|
})
|
|
|
- //$('#currentOptions').val(projectObj.project.FeeRate.getActivateFeeRateFileID());
|
|
|
$('#otherProject').empty();
|
|
|
_.forEach(data.others,function (p) {
|
|
|
var option = $("<option>").val(p.ID).text(p.name);
|
|
@@ -800,7 +765,6 @@ var feeRateObject={
|
|
|
name:name
|
|
|
}
|
|
|
var callback=function () {
|
|
|
- //feeRateObject.createSpreadView();
|
|
|
feeRateObject.reFreshRateViews();
|
|
|
projectObj.project.FeeRate.onFeeRateFileChange();
|
|
|
$.bootstrapLoading.end();
|
|
@@ -862,8 +826,6 @@ var feeRateObject={
|
|
|
selected.data.feeRate=scMathUtil.roundToString(rate.rate,getDecimal("feeRate"));
|
|
|
selected.changed = true;
|
|
|
projectObj.project.calcProgram.calcAndSave(selected);
|
|
|
- //projectObj.mainController.refreshTreeNode([selected]);
|
|
|
- //$("#fee_rate_tree").modal('hide');
|
|
|
$("#calcBaseFeeRate").modal('hide');
|
|
|
$.bootstrapLoading.end();
|
|
|
});
|
|
@@ -880,7 +842,6 @@ var feeRateObject={
|
|
|
projectObj.project.calcProgram.compileAllTemps();
|
|
|
projectObj.project.calcProgram.calcAllNodesAndSave();
|
|
|
calcProgramManage.refreshDetailSheet();
|
|
|
- //$("#fee_rate_tree").modal('hide');
|
|
|
$("#calcBaseFeeRate").modal('hide');
|
|
|
$.bootstrapLoading.end();
|
|
|
});
|
|
@@ -921,9 +882,7 @@ $(function(){
|
|
|
sessionStorage.setItem('mainTab', '#tab_fee_rate');
|
|
|
let me = feeRateObject;
|
|
|
$(e.relatedTarget.hash).removeClass('active');
|
|
|
- if(me.mainFeeRateSpread == null){
|
|
|
- me.initFeeRateSpread(0);
|
|
|
- }
|
|
|
+ if(me.mainFeeRateSpread == null) me.initFeeRateSpread(0);
|
|
|
me.showMainFeeRateData();
|
|
|
me.loadPageContent();
|
|
|
});
|
|
@@ -951,9 +910,7 @@ $(function(){
|
|
|
$('#changeConfirm').bind('click', function (){
|
|
|
var newVal=$('#standardSelect').val();
|
|
|
var feeRateFile = projectObj.project.FeeRate.getActivateFeeRate();
|
|
|
- if(newVal&&newVal!=feeRateFile.libID){
|
|
|
- feeRateObject.changeFeeRateStandard(newVal);
|
|
|
- }
|
|
|
+ if(newVal&&newVal!=feeRateFile.libID) feeRateObject.changeFeeRateStandard(newVal);
|
|
|
});
|
|
|
|
|
|
$('#saveAs').bind('click', function (){
|
|
@@ -1047,21 +1004,13 @@ $(function(){
|
|
|
socket.emit('changeActivateFeeRate',{oldRoom:oldValue,newRoom:selectID});
|
|
|
})
|
|
|
|
|
|
- /* $('#fee_rate_tree').on('shown.bs.modal', function (e) {
|
|
|
- if(feeRateObject.feeRateSpreads==null){
|
|
|
- feeRateObject.createSheet();
|
|
|
- }
|
|
|
- feeRateObject.feeRateSelection=null;
|
|
|
- feeRateObject.showSelectTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
|
|
|
- feeRateObject.locate();
|
|
|
- });*/
|
|
|
$('#calcBaseFeeRate').on('shown.bs.modal', function (e) {
|
|
|
let toggle = $('#calcBaseFeeRateConf').attr('toggle');
|
|
|
if(feeRateObject.feeRateSpreads==null){
|
|
|
feeRateObject.createSheet();
|
|
|
}
|
|
|
feeRateObject.feeRateSelection=null;
|
|
|
- feeRateObject.showSelectTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
|
|
|
+ feeRateObject.showFeeRateTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
|
|
|
feeRateObject.locate();
|
|
|
feeRateObject.feeRateSpreads.refresh();
|
|
|
});
|
|
@@ -1070,15 +1019,6 @@ $(function(){
|
|
|
feeRateObject.feeRateSpreads.refresh();
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- /*$('#fee_rate_tree').on('hidden.bs.modal', function (e) {
|
|
|
- if(feeRateObject.feeRateSpreads){
|
|
|
- feeRateObject.feeRateSpreads.destroy();
|
|
|
- feeRateObject.feeRateSpreads=null;
|
|
|
- $('#edit_from').val('');
|
|
|
- $('#edit_row').val('');
|
|
|
- }
|
|
|
- });*/
|
|
|
$('#calcBaseFeeRate').on('hidden.bs.modal', function (e) {
|
|
|
if(feeRateObject.feeRateSpreads){
|
|
|
feeRateObject.feeRateSpreads.destroy();
|
|
@@ -1096,7 +1036,6 @@ $(function(){
|
|
|
feeRateObject.submitFeeRateBySelect();
|
|
|
})
|
|
|
})
|
|
|
-
|
|
|
function changeFRadioClick() {
|
|
|
var radioV= $("input[name='chaneg-lv-Radio']:checked").val();
|
|
|
if(radioV==='0'){
|