|
@@ -20,7 +20,7 @@ let materialOjb = {
|
|
|
},
|
|
|
materialSetting:{
|
|
|
header: [
|
|
|
- {headerName: "材料编号", headerWidth: 180, dataCode: "code", dataType: "String"},
|
|
|
+ {headerName: "材料编号", headerWidth: 180, dataCode: "code", dataType: "String",formatter: "@"},
|
|
|
{headerName: "材料名称", headerWidth: 240, dataCode: "name", dataType: "String",cellType:'tipsCell'},
|
|
|
{headerName: "规格", headerWidth: 150, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'}
|
|
|
],
|
|
@@ -41,6 +41,8 @@ let materialOjb = {
|
|
|
this.billsSheet.name('billsSheet');
|
|
|
this.billsSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onBillsValueChange);
|
|
|
this.billsSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onBillsSelectionChange);
|
|
|
+ this.billsSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onBillsRangeChange);
|
|
|
+
|
|
|
this.initRightClick("billsSpread",this.billsSpread);
|
|
|
|
|
|
|
|
@@ -101,11 +103,39 @@ let materialOjb = {
|
|
|
},
|
|
|
refreshSheet:function(){
|
|
|
sheetCommonObj.showData(this.billsSheet,this.billsSetting,this.billsList);
|
|
|
- this.billsSheet.setRowCount(this.billsList.length + 1);
|
|
|
+ this.billsSheet.setRowCount(this.billsList.length + 30);
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
- onBillsSelectionChange:function (sander,args) {
|
|
|
+ onBillsSelectionChange:function (sender,args) {
|
|
|
args.sheet.repaint();
|
|
|
},
|
|
|
+ onBillsRangeChange:function (sender,args) {
|
|
|
+ let me = materialOjb;
|
|
|
+ let updateDatas = [];
|
|
|
+ if(args.action == GC.Spread.Sheets.RangeChangedAction.paste){
|
|
|
+ for(let c of args.changedCells){
|
|
|
+ let field = me.billsSetting.header[c.col].dataCode;
|
|
|
+ let newValue = args.sheet.getCell(c.row,c.col).value();
|
|
|
+ if(me.validateBills(field,newValue)){
|
|
|
+ if(c.row < me.billsList.length){
|
|
|
+ let data = me.getUpdateData(field,newValue,me.billsList[c.row].code);
|
|
|
+ if(data) updateDatas.push(data);
|
|
|
+ }else if(field == 'code'){//如果是在空白行粘贴,并且是编码列,则是新增,其它的忽略;
|
|
|
+ let data = me.getUpdateData(field,newValue,null);
|
|
|
+ if(data) updateDatas.push(data);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(updateDatas.length > 0){
|
|
|
+ me.saveBills(updateDatas);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ me.refreshSheet();
|
|
|
+ },
|
|
|
|
|
|
onBillsValueChange: function(sander,args){
|
|
|
let me = materialOjb;
|
|
@@ -126,12 +156,13 @@ let materialOjb = {
|
|
|
|
|
|
validateBills:function (field,value) {
|
|
|
if(field == 'code'){
|
|
|
+ value = value.toString().replace(/[\s\r\n]/g, "");//去除空格换行等字符;
|
|
|
if(value.length !== 9){
|
|
|
alert("清单长度不正确");
|
|
|
return false;
|
|
|
}
|
|
|
if(_.find(this.billsList,{'code':value})) {
|
|
|
- alert("清单已存在");
|
|
|
+ alert("清单:"+value+" 已存在");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
@@ -139,10 +170,11 @@ let materialOjb = {
|
|
|
},
|
|
|
getUpdateData:function (field,newValue,code) {
|
|
|
if(field == 'code'){
|
|
|
+ newValue = newValue.toString().replace(/[\s\r\n]/g, "");//去除空格换行等字符;
|
|
|
if(!isDef(code) || code ==''&&newValue!=null){//说明是新增
|
|
|
return {
|
|
|
type:'add',
|
|
|
- code:newValue.toString(),
|
|
|
+ code:newValue,
|
|
|
libID:$('#libID').val(),
|
|
|
billsLibId:parseInt($('#billsLibId').val())
|
|
|
}
|
|
@@ -150,7 +182,7 @@ let materialOjb = {
|
|
|
return {
|
|
|
type:'update',
|
|
|
oldCode:code.toString(),
|
|
|
- newCode:newValue.toString(),
|
|
|
+ newCode:newValue,
|
|
|
libID:$('#libID').val(),
|
|
|
billsLibId:parseInt($('#billsLibId').val())
|
|
|
}
|
|
@@ -192,7 +224,7 @@ let materialOjb = {
|
|
|
},
|
|
|
updateCache:function (code,updateData) {
|
|
|
let bill = _.find(this.billsList,{'code':code});
|
|
|
- for(let key of updateData){
|
|
|
+ for(let key in updateData){
|
|
|
bill[key] = updateData[key]
|
|
|
}
|
|
|
}
|