|
@@ -363,7 +363,9 @@ var tools = {
|
|
|
},
|
|
|
|
|
|
reSetCell: function(sheet, rowIdx, colIdx, value, id){
|
|
|
- sheet.getCell(rowIdx, colIdx, GC.Spread.Sheets.SheetArea.viewport).value(value);
|
|
|
+ if(value && colIdx){
|
|
|
+ sheet.getCell(rowIdx, colIdx, GC.Spread.Sheets.SheetArea.viewport).value(value);
|
|
|
+ }
|
|
|
sheet.setTag(rowIdx, 0, id);
|
|
|
sheet.setTag(rowIdx, 1, id);
|
|
|
},
|
|
@@ -826,53 +828,80 @@ var valueController = {
|
|
|
if(selectedId){
|
|
|
isRepeat = tools.isRepeat(valueController.getValues(totalItems, selectedId), field, newValue, 'document');
|
|
|
if(!tagId && !isRepeat && newValue){//create
|
|
|
- if(field === 'value'){
|
|
|
- valueController.createValue(sheet, totalItems, selectedId, newValue);
|
|
|
- }
|
|
|
- else {
|
|
|
+ // if(field === 'value'){
|
|
|
+ valueController.createValue(sheet, totalItems, selectedId, field, newValue);
|
|
|
+ // }
|
|
|
+ /*else {
|
|
|
sheet.getCell(args.row, args.col).value('');
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
else if(tagId && !isRepeat && newValue !== orgValue){//update
|
|
|
- if(field === 'value'){
|
|
|
- valueController.updateValue(totalItems, tagId, newValue);
|
|
|
- }
|
|
|
- else {
|
|
|
+ // if(field === 'value'){
|
|
|
+ valueController.updateValue(totalItems, tagId, newValue, field);
|
|
|
+ console.log('updateV');
|
|
|
+ // }
|
|
|
+ /* else {
|
|
|
sheet.getCell(args.row, args.col).value(orgValue);
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
if(isRepeat){
|
|
|
if(tagId && newValue){
|
|
|
sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value(orgValue);
|
|
|
+ console.log('rePV1');
|
|
|
}
|
|
|
else {
|
|
|
sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
|
|
|
+ console.log('rePV2');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
|
|
|
- createValue: function(sheet, totalItems, id, newValue){
|
|
|
- var newData, newCode = valueController.getCode(totalItems, id);
|
|
|
- newData = {code: newCode, value: newValue};
|
|
|
+ createValue: function(sheet, totalItems, id, field, newValue){
|
|
|
+ var newData;
|
|
|
+ if(field === 'value'){
|
|
|
+ var newCode = valueController.getCode(totalItems, id);
|
|
|
+ newData = {code: newCode, value: newValue};
|
|
|
+ tools.reSetCell(sheet, sheet.getActiveRowIndex(), 0, newCode, newCode);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ newData = {code: newValue, value: ''};
|
|
|
+ tools.reSetCell(sheet, sheet.getActiveRowIndex(), null, null, newValue);
|
|
|
+ }
|
|
|
totalItems.findItem(id).data.itemValue.push(newData);
|
|
|
itemsAjax.updateValue(id, newData, null, 'create');
|
|
|
- tools.reSetCell(sheet, sheet.getActiveRowIndex(), 0, newCode, newCode);
|
|
|
},
|
|
|
|
|
|
- updateValue: function(totalItems, tagId, newValue){
|
|
|
- var updateData = {code: tagId, value: newValue};
|
|
|
+ updateValue: function(totalItems, tagId, newData, field){
|
|
|
+ var updateData = {code: tagId, newData: newData, field: field};
|
|
|
var itemVals = totalItems.findItem(selectedId).data.itemValue;
|
|
|
- if(itemVals){
|
|
|
- var index;
|
|
|
- itemVals.forEach(function(val){
|
|
|
- if(val.code === tagId){
|
|
|
- index = itemVals.indexOf(val);
|
|
|
- itemVals.splice(index, 1);
|
|
|
- }
|
|
|
- });
|
|
|
- itemVals.splice(index, 0, updateData);
|
|
|
+ if(field === 'value'){
|
|
|
+ var updateEle = {code: tagId, value: newData};
|
|
|
+ if(itemVals){
|
|
|
+ var index;
|
|
|
+ itemVals.forEach(function(val){
|
|
|
+ if(val.code === tagId){
|
|
|
+ index = itemVals.indexOf(val);
|
|
|
+ itemVals.splice(index, 1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ itemVals.splice(index, 0, updateEle);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if(itemVals){
|
|
|
+ var updateEle;
|
|
|
+ var index;
|
|
|
+ itemVals.forEach(function(val){
|
|
|
+ if(val.code === tagId){
|
|
|
+ updateEle = {code: newData, value: val.value};
|
|
|
+ index = itemVals.indexOf(val);
|
|
|
+ itemVals.splice(index, 1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ itemVals.splice(index, 0, updateEle);
|
|
|
+ }
|
|
|
}
|
|
|
itemsAjax.updateValue(selectedId, updateData, null, 'update');
|
|
|
},
|
|
@@ -914,7 +943,6 @@ var totalJobsController = {
|
|
|
setting.cols.forEach(function(col, colIdx){
|
|
|
if(args.col === colIdx){
|
|
|
field = col.data.field;
|
|
|
- console.log('colIdx' + colIdx);
|
|
|
}
|
|
|
});
|
|
|
isRepeat = tools.isRepeat(totalJobs.jobsArr, field, newData, 'reference');
|
|
@@ -922,12 +950,7 @@ var totalJobsController = {
|
|
|
totalJobsController.createJob(sheet, totalJobs, field, newData, args);
|
|
|
}
|
|
|
else if(tagId && !isRepeat && newData !== orgJobData){//update
|
|
|
- if(field === 'content'){
|
|
|
totalJobsController.updateJob(totalJobs, tagId, field, newData);
|
|
|
- }
|
|
|
- else {
|
|
|
- sheet.getCell(args.row, args.col).value(orgJobData);
|
|
|
- }
|
|
|
}
|
|
|
if(isRepeat){
|
|
|
if(tagId && newData){
|
|
@@ -952,17 +975,25 @@ var totalJobsController = {
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
|
- sheet.getCell(args.row, args.col).value('');
|
|
|
+ maxJobsNumber = maxJobsNumber >= newData ? maxJobsNumber : newData;
|
|
|
+ console.log('maxJobs: ' + maxJobsNumber + 'code: ' + newData);
|
|
|
+ jobsAjax.createJobContent(billsLibId, field, '', newData, function(id){
|
|
|
+ var newJobData, newJob;
|
|
|
+ newJobData = {id: id, content: '', code: newData};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ tools.reSetCell(sheet, args.row, 0, null, id);
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
|
|
|
updateJob: function(totalJobs, id, field, newData){
|
|
|
- totalJobs.jobsArr.forEach(function(job){
|
|
|
- if(job.data[field] === newData){
|
|
|
- job.data[field] = newData;
|
|
|
- }
|
|
|
- });
|
|
|
- jobsAjax.updateJobContent(id, field, newData);
|
|
|
+ totalJobs.jobsArr.forEach(function(job){
|
|
|
+ if(job.data[field] === newData){
|
|
|
+ job.data[field] = newData;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ jobsAjax.updateJobContent(id, field, newData);
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -981,15 +1012,10 @@ var totalItemsController = {
|
|
|
});
|
|
|
isRepeat = tools.isRepeat(totalItems.itemsArr, field, newData, 'reference');
|
|
|
if(!tagId && !isRepeat && newData){//create
|
|
|
- totalItemsController.createJob(sheet, totalItems, field, newData, args);
|
|
|
+ totalItemsController.createItem(sheet, totalItems, field, newData, args);
|
|
|
}
|
|
|
else if(tagId && !isRepeat && newData !== orgItemData){//update
|
|
|
- if(field === 'content'){
|
|
|
totalItemsController.updateItem(totalItems, tagId, field, newData);
|
|
|
- }
|
|
|
- else {
|
|
|
- sheet.getCell(args.row, args.col).value(orgItemData);
|
|
|
- }
|
|
|
}
|
|
|
if(isRepeat){
|
|
|
if(tagId && newData){
|
|
@@ -1014,12 +1040,19 @@ var totalItemsController = {
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
|
- sheet.getCell(args.row, args.col).value('');
|
|
|
+ maxItemsNumber = maxItemsNumber >= newData ? maxItemsNumber : newData;
|
|
|
+ itemsAjax.createItemCharacter(billsLibId, field, '', newData, function(id){
|
|
|
+ var newItemData, newItem;
|
|
|
+ newItemData = {id: id, content: '', code: newData};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ tools.reSetCell(sheet, args.row, 0, null, id);
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
|
|
|
updateItem: function(totalItems, id, field, newData){
|
|
|
- totalItems.jobsArr.forEach(function(item){
|
|
|
+ totalItems.itemsArr.forEach(function(item){
|
|
|
if(item.data[field] === newData){
|
|
|
item.data[field] = newData;
|
|
|
}
|