|
@@ -30,6 +30,19 @@ let zmhs_obj = {
|
|
|
autoFit:true,
|
|
|
fitRow:['name']
|
|
|
},
|
|
|
+ cusSpread:null,
|
|
|
+ cusSheet:null,
|
|
|
+ cusSheetData:null,
|
|
|
+ cusSetting:{
|
|
|
+ header: [
|
|
|
+ {headerName: "类型", headerWidth: 250, dataCode: "coeType", dataType: "String",hAlign: "left"},
|
|
|
+ {headerName: "系数", headerWidth: 160, dataCode: "amount", dataType: "String", hAlign: "right",validator:"number"}
|
|
|
+ ],
|
|
|
+ view: {
|
|
|
+ lockColumns:["coeType"],
|
|
|
+ rowHeaderWidth:25
|
|
|
+ }
|
|
|
+ },
|
|
|
assSpread:null,
|
|
|
assSheet:null,
|
|
|
assSheetData: [],
|
|
@@ -64,6 +77,18 @@ let zmhs_obj = {
|
|
|
SheetDataHelper.protectdSheet(this.coeSheet);
|
|
|
}
|
|
|
},
|
|
|
+ initCusSpread:function () {
|
|
|
+ if(zmhs_obj.cusSpread == null){
|
|
|
+ this.cusSpread = SheetDataHelper.createNewSpread($("#cusSpread")[0]);
|
|
|
+ sheetCommonObj.spreadDefaultStyle(this.cusSpread);
|
|
|
+ this.cusSheet = this.cusSpread.getSheet(0);
|
|
|
+ sheetCommonObj.initSheet(this.cusSheet, this.cusSetting, 30);
|
|
|
+ this.cusSheet.name('ration_cus');
|
|
|
+ this.cusSheet.bind(GC.Spread.Sheets.Events.ValueChanged,this.onCusValueChange);
|
|
|
+ this.cusSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onCusRangeChanged);
|
|
|
+ SheetDataHelper.protectdSheet(this.cusSheet);
|
|
|
+ }
|
|
|
+ },
|
|
|
initAssSpread:function () {
|
|
|
if(zmhs_obj.assSheet == null){
|
|
|
this.assSpread = SheetDataHelper.createNewSpread($("#assSpread")[0]);
|
|
@@ -83,7 +108,9 @@ let zmhs_obj = {
|
|
|
if(selected&&selected.sourceType == "ration"){
|
|
|
let ration = selected.data;
|
|
|
coeList = ration_coe.getCoeByRationID(ration.ID);
|
|
|
+ _.remove(coeList,{"coeID":-1})//2018-12-24 新需求,把自定义乘系数分离出来,这里排除自定义乘系数行
|
|
|
}
|
|
|
+ this.coeSheet.setRowCount(0);
|
|
|
sheetCommonObj.showData(this.coeSheet, this.coeSetting,coeList);
|
|
|
if (coeList.length > 0) {
|
|
|
this.coeSheet.suspendPaint();
|
|
@@ -105,6 +132,23 @@ let zmhs_obj = {
|
|
|
disableSpread(zmhs_obj.coeSpread);
|
|
|
}
|
|
|
},
|
|
|
+ showCusData:function (node) {
|
|
|
+ let selected = node?node:projectObj.project.mainTree.selected;
|
|
|
+ let ration_coe = projectObj.project.ration_coe;
|
|
|
+ let cusList = [];
|
|
|
+ if(selected&&selected.sourceType == "ration"){
|
|
|
+ let ration = selected.data;
|
|
|
+ let coeList = ration_coe.getCoeByRationID(ration.ID);
|
|
|
+ this.cusSheetData = _.find(coeList,{"coeID":-1});
|
|
|
+ if(this.cusSheetData) cusList = this.cusSheetData.coes;
|
|
|
+ }
|
|
|
+ sheetCommonObj.showData(this.cusSheet, this.cusSetting,cusList);
|
|
|
+ this.cusSheet.getRange(cusList.length,-1,this.cusSheet.getRowCount()-cusList.length, -1, GC.Spread.Sheets.SheetArea.viewport).locked(true);
|
|
|
+ if(projectReadOnly){
|
|
|
+ disableSpread(zmhs_obj.cusSpread);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
getComboBoxForCodes:function (coe,i) {
|
|
|
this.coeSheet.getCell(i, 2, GC.Spread.Sheets.SheetArea.viewport).locked(false);
|
|
|
let options = coe.option_codes.split("|");
|
|
@@ -114,7 +158,6 @@ let zmhs_obj = {
|
|
|
this.coeSheet.setValue(i, 2, coe.select_code);
|
|
|
|
|
|
},
|
|
|
-
|
|
|
showAssData:function (node) {
|
|
|
this.assSheet.suspendPaint();
|
|
|
this.assSheet.suspendEvent();
|
|
@@ -186,8 +229,14 @@ let zmhs_obj = {
|
|
|
|
|
|
|
|
|
refresh:function () {
|
|
|
- this.coeSpread?this.coeSpread.refresh():'';
|
|
|
- this.assSpread?this.assSpread.refresh():'';
|
|
|
+ $('#coeSpread').is(':visible')&&this.coeSpread?this.coeSpread.refresh():'';
|
|
|
+ $('#cusSpread').is(':visible')&&this.cusSpread?this.cusSpread.refresh():'';
|
|
|
+ $('#assSpread').is(':visible')&&this.assSpread?this.assSpread.refresh():'';
|
|
|
+ },
|
|
|
+ showDatas:function () {
|
|
|
+ if($('#coeSpread').is(':visible')) this.showCoeData();
|
|
|
+ if($('#cusSpread').is(':visible')) this.showCusData();
|
|
|
+ if($('#assSpread').is(':visible')) this.showAssData();
|
|
|
},
|
|
|
showZMHSData:function (node) {
|
|
|
if(this.coeSpread&& this.assSpread && $('#linkZMHS').hasClass('active')){
|
|
@@ -347,7 +396,47 @@ let zmhs_obj = {
|
|
|
projectObj.project.ration_coe.adjustCoeClick(recode, 1,{'select_code':args.newValue});
|
|
|
}
|
|
|
},
|
|
|
+ onCusValueChange:function (e,args) {
|
|
|
+ zmhs_obj.changeCusValue([{row:args.row,col:args.col,value:args.newValue}]);
|
|
|
+ },
|
|
|
+ changeCusValue:function (datas) {//[{row:,col,value}]
|
|
|
+ if(this.cusSheetData){
|
|
|
+ let tem_coes = _.cloneDeep(this.cusSheetData.coes);
|
|
|
+ for(let d of datas){
|
|
|
+ if(d.value&&!sheetCommonObj.checkData(d.col,this.cusSetting,d.value)){
|
|
|
+ this.showDatas();
|
|
|
+ alert('输入的数据类型不对,请重新输入!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(gljUtil.isDef(d.value)&&d.value !=""){
|
|
|
+ if(tem_coes[d.row].coeType=="定额"){
|
|
|
+ for(let t of tem_coes){
|
|
|
+ t.amount = d.value;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ tem_coes[d.row].amount = d.value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let doc = {'coes':tem_coes,'content':this.generationContent(tem_coes)};
|
|
|
+ projectObj.project.ration_coe.adjustCoeClick(this.cusSheetData, 1,doc);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ generationContent:function (coes) {
|
|
|
+ let rationAmount = coes[0].amount;
|
|
|
+ let string ='';
|
|
|
+ if(_.every(coes,'amount',rationAmount)){
|
|
|
+ string = coes[0].coeType + 'x'+rationAmount;
|
|
|
+ }else {
|
|
|
+ let context_arr =[];
|
|
|
+ for(let i =1;i<coes.length;i++){
|
|
|
+ context_arr.push( coes[i].coeType + 'x'+coes[i].amount);
|
|
|
+ }
|
|
|
+ string = context_arr.join(',');
|
|
|
|
|
|
+ }
|
|
|
+ return string;
|
|
|
+ },
|
|
|
onAssEditEnded:function (e,args) {
|
|
|
var me = zmhs_obj;
|
|
|
if (args.row >= me.assSheetData.length) {
|
|
@@ -358,6 +447,14 @@ let zmhs_obj = {
|
|
|
me.updateRationAss(args);
|
|
|
}
|
|
|
},
|
|
|
+ onCusRangeChanged:function (e,args) {
|
|
|
+ let datas = [];
|
|
|
+ for(let c of args.changedCells){
|
|
|
+ let value= args.sheet.getCell(c.row, c.col).text();
|
|
|
+ datas.push({row:c.row,col:c.col,value:value})
|
|
|
+ }
|
|
|
+ zmhs_obj.changeCusValue(datas);
|
|
|
+ },
|
|
|
onAssRangeChanged:function (e,args) {
|
|
|
let me = zmhs_obj;
|
|
|
if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
|