|
@@ -100,17 +100,9 @@ var gljOprObj = {
|
|
|
sheetCommonObj.initSheet(me.sheet, me.setting, 30);
|
|
|
sheet.name('ration_glj');
|
|
|
me.bindSheetEvent(sheet);
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.CellClick, me.onCellClick);
|
|
|
sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, me.onCellDoubleClick);
|
|
|
sheet.bind(GC.Spread.Sheets.Events.ClipboardChanged, me.onClipboardChanged);
|
|
|
subSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, me.onButtonClick);
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
|
|
|
- if (args.row>=me.sheetData.length){
|
|
|
- args.cancel = true;
|
|
|
- }else if (me.sheetData[args.row].isMixRatio) {
|
|
|
- args.cancel = true;
|
|
|
- }
|
|
|
- });
|
|
|
if(!projectReadOnly){
|
|
|
gljContextMenu.loadGLJSpreadContextMenu();
|
|
|
}
|
|
@@ -125,15 +117,6 @@ var gljOprObj = {
|
|
|
// me.detailSheet.selectionUnit(0);//0 cell,1 row,2 col;
|
|
|
sheet.name('quantity_detail');
|
|
|
me.bindSheetEvent(sheet);
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
|
|
|
- if(me.detailSheetReadonly()){
|
|
|
- args.cancel = true;
|
|
|
- }else {
|
|
|
- if(args.sheet.getValue(args.row,args.col)==null){//这里是为了解决当单元格里的值是null的时候,在单元格里输入数据,按键盘箭头移动光标的时候,会直接结束编辑,跳到另外的单元格。
|
|
|
- args.sheet.setValue(args.row,args.col,"");
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
},
|
|
|
detailSheetReadonly:function () {
|
|
|
let selected = projectObj.project.mainTree.selected;
|
|
@@ -186,6 +169,19 @@ var gljOprObj = {
|
|
|
if(selected){
|
|
|
if(me.isInstallationNode(selected)==true){
|
|
|
args.cancel = true;
|
|
|
+ }else {
|
|
|
+ if(args.sheetName == 'quantity_detail'){//工程量明细表
|
|
|
+ if(me.detailSheetReadonly()){
|
|
|
+ args.cancel = true;
|
|
|
+ }else {
|
|
|
+ if(args.sheet.getValue(args.row,args.col)==null){//这里是为了解决当单元格里的值是null的时候,在单元格里输入数据,按键盘箭头移动光标的时候,会直接结束编辑,跳到另外的单元格。
|
|
|
+ args.sheet.setValue(args.row,args.col,"");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(args.sheetName == 'ration_glj'){//定额工料机表
|
|
|
+ if(!me.rationGLJEditCheck(args)) args.cancel = true;
|
|
|
+ }
|
|
|
}
|
|
|
}else {
|
|
|
args.cancel = true;
|
|
@@ -284,14 +280,6 @@ var gljOprObj = {
|
|
|
installationFeeObj.onRationInstallValueChange(sender,args);
|
|
|
}
|
|
|
},
|
|
|
- onCellClick: function (sender, args) {
|
|
|
- console.log('cellClick');
|
|
|
- var me = gljOprObj;
|
|
|
- if (args.row >= me.sheetData.length) {
|
|
|
- return;
|
|
|
- }
|
|
|
- me.editChecking(args);
|
|
|
- },
|
|
|
onCellDoubleClick:function (sender, args) {
|
|
|
var me = gljOprObj;
|
|
|
var header = me.setting.header;
|
|
@@ -317,39 +305,32 @@ var gljOprObj = {
|
|
|
sheetCommonObj.copyTextToClipboard(cDatas);
|
|
|
return;
|
|
|
},
|
|
|
- editChecking: function (args) {
|
|
|
+ rationGLJEditCheck:function (args) {//true 可以编辑,false 不能编辑
|
|
|
var me = gljOprObj;
|
|
|
var header = me.setting.header;
|
|
|
- var disable = null;
|
|
|
- if (me.sheetData[args.row] != undefined) {
|
|
|
- if (me.sheetData[args.row].isMixRatio) {
|
|
|
- disable = true;
|
|
|
+ if (_.includes(me.setting.view.lockColumns, args.col)) return false;//如果是锁定的列,不能编辑
|
|
|
+ if(me.sheetData[args.row] != undefined){
|
|
|
+ if(me.sheetData[args.row].isMixRatio){//对于组成物列
|
|
|
+ return header[args.col].dataCode == 'marketPrice'//允许修改组成物市单价,其它的不可以
|
|
|
}else {
|
|
|
if (header[args.col] && header[args.col].dataCode == 'marketPrice') {
|
|
|
- if(me.marketPriceReadOnly({data:me.sheetData[args.row]})){
|
|
|
- disable = true;
|
|
|
- }else {
|
|
|
- disable = false;
|
|
|
- }
|
|
|
+ return !me.marketPriceReadOnly({data:me.sheetData[args.row]});
|
|
|
}
|
|
|
if (header[args.col] && header[args.col].dataCode == 'basePrice') {
|
|
|
var isAdd = me.sheetData[args.row].isAdd;
|
|
|
if(isAdd==1){//是新增但没有组成物时允许修改定额价
|
|
|
- if(me.marketPriceReadOnly({data:me.sheetData[args.row]})){//如果有组成物,不可修改
|
|
|
- disable = true;
|
|
|
- }else {
|
|
|
- disable = false;
|
|
|
- }
|
|
|
+ return !me.marketPriceReadOnly({data:me.sheetData[args.row]});//如果有组成物,不可修改
|
|
|
} else {
|
|
|
- disable = true;
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
+ return true;
|
|
|
}
|
|
|
+ }else {
|
|
|
+ return false
|
|
|
}
|
|
|
- if (disable != null) {
|
|
|
- me.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).locked(disable);
|
|
|
- }
|
|
|
- },
|
|
|
+ }
|
|
|
+ ,
|
|
|
hasComposition:function (ration_glj,isRationType) {//判断是否有组成物,有则返回true 现在主材类型的工料机也有可能有组成物。
|
|
|
let type = isRationType==true? ration_glj.subType:ration_glj.type;
|
|
|
if(notEditType.indexOf(type)!=-1||type==gljType.MAIN_MATERIAL){
|
|
@@ -516,7 +497,7 @@ var gljOprObj = {
|
|
|
this.sheet.setSelection(selected[0].row,selected[0].col,selected[0].rowCount,selected[0].colCount);
|
|
|
}
|
|
|
},
|
|
|
- getUnitPriceCodeMap : function (sheetData) {//取单价文件中,编码前缀一样的映射表
|
|
|
+ getUnitPriceCodeMap : function () {//取单价文件中,编码前缀一样的映射表
|
|
|
let codeMap = {};
|
|
|
let priceMap = projectObj.project.projectGLJ.datas.unitPriceMap;
|
|
|
if(priceMap){
|
|
@@ -749,6 +730,10 @@ var gljOprObj = {
|
|
|
var updateField = me.setting.header[args.col].dataCode;
|
|
|
var recode = me.sheetData[args.row];
|
|
|
var newval;
|
|
|
+ if(!me.rationGLJEditCheck(args)){
|
|
|
+ recode? me.sheet.getCell(args.row, args.col).value(recode[updateField]): me.sheet.getCell(args.row, args.col).value(null);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (updateField == 'marketPrice' || updateField == 'customQuantity' || updateField == 'basePrice') {
|
|
|
if (args.editingText == null) {
|
|
|
updateField == 'marketPrice' ? newval = 0 : newval = "";
|