|
@@ -683,115 +683,120 @@ repositoryGljObj = {
|
|
|
if (me.gljCurTypeId < 0 ) {
|
|
|
args.cancel = true;
|
|
|
}
|
|
|
+ let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
|
|
|
+ //复制的列数超过正确的列数,不可复制
|
|
|
+ if(maxCol >= me.setting.header.length){
|
|
|
+ args.cancel = true;
|
|
|
+ }
|
|
|
},
|
|
|
onClipboardPasted: function(e, info) {
|
|
|
- var me = repositoryGljObj;
|
|
|
- var updateArr = [], addArr = [];
|
|
|
- var items = sheetCommonObj.analyzePasteData(me.setting, info);
|
|
|
- let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,
|
|
|
- maxRow = me.currentCache.length - 1,
|
|
|
- updateBasePrcArr = [] ,
|
|
|
- updateCount, resumeArr = [];
|
|
|
- if(endRow <= maxRow){
|
|
|
- //updateItems = items;
|
|
|
- for(let i = 0; i < items.length; i++){
|
|
|
- let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
|
|
|
- if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
|
|
|
- updateArr.push(updateObj.updateGlj);
|
|
|
- if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
- updateBasePrcArr.push(updateObj.updateBasePrc);
|
|
|
+ let me = repositoryGljObj;
|
|
|
+ let updateArr = [], addArr = [];
|
|
|
+ let items = sheetCommonObj.analyzePasteData(me.setting, info);
|
|
|
+ let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,
|
|
|
+ maxRow = me.currentCache.length - 1,
|
|
|
+ updateBasePrcArr = [] ,
|
|
|
+ updateCount, resumeArr = [];
|
|
|
+ if(endRow <= maxRow){
|
|
|
+ //updateItems = items;
|
|
|
+ for(let i = 0; i < items.length; i++){
|
|
|
+ let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
|
|
|
+ if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
|
|
|
+ updateArr.push(updateObj.updateGlj);
|
|
|
+ if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
+ updateBasePrcArr.push(updateObj.updateBasePrc);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else if(beginRow <= maxRow && endRow > maxRow){
|
|
|
- updateCount = maxRow - beginRow + 1;
|
|
|
- for(let i = 0; i < updateCount; i++){
|
|
|
- let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
|
|
|
- if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
|
|
|
- updateArr.push(updateObj.updateGlj);
|
|
|
- if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
- updateBasePrcArr.push(updateObj.updateBasePrc);
|
|
|
+ else{
|
|
|
+ resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
}
|
|
|
- else{
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
- }
|
|
|
}
|
|
|
- if(info.cellRange.colCount === me.setting.header.length){
|
|
|
- for(let i = updateCount ; i < items.length; i++){
|
|
|
- if(me.isValidObj(items[i])){
|
|
|
- items[i].component = [];
|
|
|
- //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
|
|
|
- if(me.allowComponent.indexOf(items[i].gljType) !== -1){
|
|
|
- items[i].basePrice = 0;
|
|
|
+ else if(beginRow <= maxRow && endRow > maxRow){
|
|
|
+ updateCount = maxRow - beginRow + 1;
|
|
|
+ for(let i = 0; i < updateCount; i++){
|
|
|
+ let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
|
|
|
+ if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
|
|
|
+ updateArr.push(updateObj.updateGlj);
|
|
|
+ if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
+ updateBasePrcArr.push(updateObj.updateBasePrc);
|
|
|
}
|
|
|
- addArr.push(items[i]);
|
|
|
}
|
|
|
else{
|
|
|
resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- for(let i = updateCount ; i < items.length; i++){
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
- if(info.cellRange.colCount === me.setting.header.length){
|
|
|
- for(let i = 0; i < items.length; i++){
|
|
|
- if(me.isValidObj(items[i])){
|
|
|
- items[i].component = [];
|
|
|
- if(me.allowComponent.indexOf(items[i].gljType) !== -1){
|
|
|
- items[i].basePrice = 0;
|
|
|
+ if(info.cellRange.colCount === me.setting.header.length){
|
|
|
+ for(let i = updateCount ; i < items.length; i++){
|
|
|
+ if(me.isValidObj(items[i])){
|
|
|
+ items[i].component = [];
|
|
|
+ //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
|
|
|
+ if(me.allowComponent.indexOf(items[i].gljType) !== -1){
|
|
|
+ items[i].basePrice = 0;
|
|
|
+ }
|
|
|
+ addArr.push(items[i]);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
- addArr.push(items[i]);
|
|
|
}
|
|
|
- else{
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ for(let i = updateCount ; i < items.length; i++){
|
|
|
resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
- for(let i = 0; i < items.length; i++){
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //repaint
|
|
|
- if(resumeArr.length > 0){
|
|
|
- info.sheet.suspendPaint();
|
|
|
- for(let i = 0; i < resumeArr.length ; i++){
|
|
|
- if(resumeArr[i] < me.currentCache.length){
|
|
|
- for(let col = 0; col < me.setting.header.length; col++){
|
|
|
- if(me.setting.header[col].dataCode === 'gljType'){
|
|
|
- let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
|
|
|
- info.sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
|
|
|
+ if(info.cellRange.colCount === me.setting.header.length){
|
|
|
+ for(let i = 0; i < items.length; i++){
|
|
|
+ if(me.isValidObj(items[i])){
|
|
|
+ items[i].component = [];
|
|
|
+ if(me.allowComponent.indexOf(items[i].gljType) !== -1){
|
|
|
+ items[i].basePrice = 0;
|
|
|
+ }
|
|
|
+ addArr.push(items[i]);
|
|
|
}
|
|
|
else{
|
|
|
- info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
|
|
|
+ resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
- for(let col = 0; col < me.setting.header.length; col++){
|
|
|
- info.sheet.setValue(resumeArr[i], col, '');
|
|
|
+ for(let i = 0; i < items.length; i++){
|
|
|
+ resumeArr.push(info.cellRange.row + i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- info.sheet.resumePaint();
|
|
|
- }
|
|
|
- if (updateArr.length > 0 || addArr.length > 0) {
|
|
|
- me.mixUpdateRequest(updateArr, addArr, []);
|
|
|
- }
|
|
|
- if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
|
|
|
- me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
- }
|
|
|
+ //repaint
|
|
|
+ if(resumeArr.length > 0){
|
|
|
+ info.sheet.suspendPaint();
|
|
|
+ for(let i = 0; i < resumeArr.length ; i++){
|
|
|
+ if(resumeArr[i] < me.currentCache.length){
|
|
|
+ for(let col = 0; col < me.setting.header.length; col++){
|
|
|
+ if(me.setting.header[col].dataCode === 'gljType'){
|
|
|
+ let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
|
|
|
+ info.sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ for(let col = 0; col < me.setting.header.length; col++){
|
|
|
+ info.sheet.setValue(resumeArr[i], col, '');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ info.sheet.resumePaint();
|
|
|
+ }
|
|
|
+ if (updateArr.length > 0 || addArr.length > 0) {
|
|
|
+ me.mixUpdateRequest(updateArr, addArr, []);
|
|
|
+ }
|
|
|
+ if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ }
|
|
|
},
|
|
|
updateRationBasePrcRq: function (basePrcArr) {
|
|
|
$.ajax({
|