|
@@ -1,15 +1,16 @@
|
|
|
/**
|
|
|
* Created by Zhong on 2017/8/14.
|
|
|
*/
|
|
|
-var pageOprObj = {
|
|
|
+let pageOprObj = {
|
|
|
gljLibName : null,
|
|
|
gljLibId: null,
|
|
|
initPage : function(container, containerComponent) {
|
|
|
- var me = this, gljLibId = getQueryString("gljLibId");//获取定额库参数
|
|
|
+ let me = this, gljLibId = getQueryString("gljLibId");//获取定额库参数
|
|
|
me.gljLibId = gljLibId;
|
|
|
- repositoryGljObj.getGljLib(gljLibId);
|
|
|
+ repositoryGljObj.getGljLib(gljLibId, function () {
|
|
|
repositoryGljObj.buildSheet(container);
|
|
|
gljComponentOprObj.buildSheet(containerComponent);
|
|
|
+ //获得定额库中引用此工料机库中的,所有被定额所套的工料机的ID
|
|
|
//repositoryGljObj.getRationGljIds(gljLibId);
|
|
|
repositoryGljObj.getGljDistType(function () {
|
|
|
repositoryGljObj.currentRepositoryId = parseInt(gljLibId);
|
|
@@ -18,10 +19,10 @@ var pageOprObj = {
|
|
|
});
|
|
|
sheetCommonObj.shieldAllCells(repositoryGljObj.workBook.getSheet(0), repositoryGljObj.setting);
|
|
|
});
|
|
|
- // }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
-repositoryGljObj = {
|
|
|
+let repositoryGljObj = {
|
|
|
treeObj : null,
|
|
|
workBook: null,
|
|
|
gljCurTypeId: -1,
|
|
@@ -29,7 +30,7 @@ repositoryGljObj = {
|
|
|
currentCache: null,
|
|
|
parentNodeIds: {},
|
|
|
gljList: [],
|
|
|
- allowComponent: [202, 203, 204, 3],
|
|
|
+ allowComponent: [202, 203, 204, 301],//可带组成物类型:混凝土、砂浆、配合比、机械台班
|
|
|
distTypeTree: null,//add
|
|
|
setting: {
|
|
|
|
|
@@ -80,7 +81,7 @@ repositoryGljObj = {
|
|
|
&& distTypeObj.data.fullName !== '机上人工'){
|
|
|
distTypeTree.comboDatas.push({text: distTypeObj.data.fullName, value: distTypeObj.data.ID});
|
|
|
}*/
|
|
|
- if(distTypeObj.data.fullName !== '材料'){
|
|
|
+ if(distTypeObj.data.fullName !== '材料' && distTypeObj.data.fullName !== '机械'){
|
|
|
distTypeTree.comboDatas.push({text: distTypeObj.data.fullName, value: distTypeObj.data.ID});
|
|
|
}
|
|
|
});
|
|
@@ -104,8 +105,8 @@ repositoryGljObj = {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- getGljLib: function (libId) {
|
|
|
- let me = this;
|
|
|
+ getGljLib: function (libId, callback) {
|
|
|
+ let me = repositoryGljObj;
|
|
|
$.ajax({
|
|
|
type: 'post',
|
|
|
url: 'api/getGljLib',
|
|
@@ -113,16 +114,20 @@ repositoryGljObj = {
|
|
|
dataType: 'json',
|
|
|
success: function (result) {
|
|
|
if(!result.error){
|
|
|
- $(".navbar-text").append(
|
|
|
- "<a href='/stdGljRepository/main'>工料机库</a><i class='fa fa-angle-right fa-fw'></i>"+result.data[0].dispName
|
|
|
- );
|
|
|
- pageOprObj.gljLibName = result.data[0].dispName;
|
|
|
+ if(result.data.length > 0){
|
|
|
+ me.rationLibs = result.data[0].rationLibs;
|
|
|
+ $(".navbar-text").append(
|
|
|
+ "<a href='/stdGljRepository/main'>工料机库</a><i class='fa fa-angle-right fa-fw'></i>"+result.data[0].dispName
|
|
|
+ );
|
|
|
+ pageOprObj.gljLibName = result.data[0].dispName;
|
|
|
+ }
|
|
|
+ callback();
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
getGljTree: function(gljLibId, callback) {
|
|
|
- var me = this;
|
|
|
+ let me = this;
|
|
|
$.ajax({
|
|
|
type:"POST",
|
|
|
url:"api/getGljTree",
|
|
@@ -148,7 +153,7 @@ repositoryGljObj = {
|
|
|
})
|
|
|
},
|
|
|
getGljItems: function(repId) {
|
|
|
- var me = this;
|
|
|
+ let me = this;
|
|
|
$.ajax({
|
|
|
type:"POST",
|
|
|
url:"api/getGljItems",
|
|
@@ -174,11 +179,11 @@ repositoryGljObj = {
|
|
|
})
|
|
|
},
|
|
|
showGljItems: function(data, type) {
|
|
|
- var me = repositoryGljObj;
|
|
|
+ let me = repositoryGljObj;
|
|
|
if (me.workBook) {
|
|
|
- var cacheSection = [];
|
|
|
- var pArr = me.parentNodeIds["_pNodeId_" + type];
|
|
|
- for (var i = 0; i < data.length; i++) {
|
|
|
+ let cacheSection = [];
|
|
|
+ let pArr = me.parentNodeIds["_pNodeId_" + type];
|
|
|
+ for (let i = 0; i < data.length; i++) {
|
|
|
if (pArr && pArr.indexOf(data[i].gljClass) >= 0) {
|
|
|
cacheSection.push(data[i]);
|
|
|
} else if (type == data[i].gljClass) {
|
|
@@ -192,7 +197,7 @@ repositoryGljObj = {
|
|
|
}
|
|
|
},
|
|
|
buildSheet: function(container) {
|
|
|
- var me = repositoryGljObj;
|
|
|
+ let me = repositoryGljObj;
|
|
|
me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30, me);
|
|
|
me.repositoryGljDelOpr();
|
|
|
me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
|
|
@@ -228,10 +233,11 @@ repositoryGljObj = {
|
|
|
},
|
|
|
reshowGljBasePrc: function (glj) {
|
|
|
let me = repositoryGljObj;
|
|
|
+
|
|
|
for(let i = 0; i < me.gljList.length; i++){
|
|
|
if(glj.ID === me.gljList[i].ID){
|
|
|
me.gljList[i].basePrice = glj.basePrice;
|
|
|
- me.workBook.getSheet(0).setValue(i - 1, 4, glj.basePrice);
|
|
|
+ me.workBook.getSheet(0).setValue(me.activeRow, 4, glj.basePrice);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -241,18 +247,18 @@ repositoryGljObj = {
|
|
|
//混凝土202、砂浆203、配合比204、机械3
|
|
|
if(info.oldSelections.length === 0 && info.newSelections.length > 0 || info.oldSelections[0].row !== info.newSelections[0].row){
|
|
|
let row = info.newSelections[0].row;
|
|
|
+ me.activeRow = row;
|
|
|
sheetCommonObj.lockCells(that.workBook.getSheet(0), that.setting);
|
|
|
that.workBook.getSheet(0).getRange(-1, 0 , -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(true);
|
|
|
that.workBook.getSheet(0).getRange(-1, 4 , -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(true);
|
|
|
//that.workBook.getSheet(0).options.isProtected = true;
|
|
|
sheetCommonObj.cleanSheet(that.workBook.getSheet(0), that.setting, -1);
|
|
|
me.workBook.focus(true);
|
|
|
- me.currentGlj = null;
|
|
|
me.currentComponent = [];
|
|
|
if(row < me.currentCache.length){
|
|
|
+ //标记当前工料机
|
|
|
+ me.currentGlj = me.currentCache[row];
|
|
|
if(me.allowComponent.indexOf(me.currentCache[row].gljType) !== -1){
|
|
|
- //标记当前工料机
|
|
|
- me.currentGlj = me.currentCache[row];
|
|
|
that.workBook.getSheet(0).getRange(-1, 0 , -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(false);
|
|
|
that.workBook.getSheet(0).getRange(-1, 4 , -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(false);
|
|
|
//that.workBook.getSheet(0).options.isProtected = false;
|
|
@@ -266,6 +272,9 @@ repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else{
|
|
|
+ me.currentGlj = null;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
onEnterCell: function (sender, args) {
|
|
@@ -343,13 +352,13 @@ repositoryGljObj = {
|
|
|
}
|
|
|
},
|
|
|
onCellEditStart: function(sender, args) {
|
|
|
- var me = repositoryGljObj;
|
|
|
- var rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
|
|
|
+ let me = repositoryGljObj;
|
|
|
+ let rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
|
|
|
me.currentEditingGlj = rObj;
|
|
|
me.orgCode = me.workBook.getSheet(0).getValue(args.row, 0);
|
|
|
- var cacheSection = me.gljList;
|
|
|
+ let cacheSection = me.gljList;
|
|
|
if (cacheSection) {
|
|
|
- for (var j = 0; j < cacheSection.length; j++) {
|
|
|
+ for (let j = 0; j < cacheSection.length; j++) {
|
|
|
if (cacheSection[j][me.setting.header[0].dataCode] && cacheSection[j][me.setting.header[0].dataCode] == rObj[me.setting.header[0].dataCode]) {
|
|
|
rObj["ID"] = cacheSection[j]["ID"];
|
|
|
rObj.gljClass = cacheSection[j].gljClass;
|
|
@@ -359,7 +368,7 @@ repositoryGljObj = {
|
|
|
}
|
|
|
},
|
|
|
onCellEditEnd: function(sender, args) {
|
|
|
- var me = repositoryGljObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
|
|
|
+ let me = repositoryGljObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
|
|
|
updateArr = [], addArr = [], updateBasePrcArr = [];
|
|
|
me.editingRowIdx = args.row;
|
|
|
rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
|
|
@@ -370,15 +379,22 @@ repositoryGljObj = {
|
|
|
if(me.currentEditingGlj[me.setting.header[col].dataCode] !== rObj[me.setting.header[col].dataCode]){
|
|
|
me.addGljObj = rObj;
|
|
|
if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[5].dataCode]){
|
|
|
- if(me.currentGlj){
|
|
|
- rObj.component = me.currentGlj.component;
|
|
|
+ if(rObj.gljType !== me.currentEditingGlj.gljType){//修改了工料机类型,组成物清空
|
|
|
+ if(me.currentGlj){
|
|
|
+ me.currentGlj.component = [];
|
|
|
+ }
|
|
|
+ if(me.allowComponent.indexOf(rObj.gljType) !== -1){
|
|
|
+ rObj.basePrice = 0;
|
|
|
+ }
|
|
|
}
|
|
|
+ rObj.component = me.currentGlj.component;
|
|
|
updateArr.push(rObj);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- /* if(me.currentEditingGlj.basePrice !== rObj.basePrice){
|
|
|
+ //--------------------------------------
|
|
|
+ if(me.currentEditingGlj.basePrice !== rObj.basePrice){
|
|
|
//update basePrice of ration when editting basePrice of glj
|
|
|
let gljType = -1;
|
|
|
let gljTypeParent = me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj.gljType].parent;
|
|
@@ -391,15 +407,21 @@ repositoryGljObj = {
|
|
|
let gljBasePrcObj = {gljId: me.currentEditingGlj.ID, gljType: gljType, basePrice: rObj.basePrice};
|
|
|
if(gljBasePrcObj.gljType !== -1){
|
|
|
updateBasePrcArr.push(gljBasePrcObj);
|
|
|
- me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ if(me.rationLibs.length > 0){//重算定额单价
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ }
|
|
|
}
|
|
|
- }*/
|
|
|
+ }
|
|
|
//update basePrice of ration when editting gljType of glj
|
|
|
- /* if(me.currentEditingGlj.gljType !== rObj.gljType){
|
|
|
+ if(me.currentEditingGlj.gljType !== rObj.gljType){
|
|
|
+
|
|
|
let gljTypeObj = {gljId: me.currentEditingGlj.ID, gljType: rObj.gljType, basePrice: rObj.basePrice};
|
|
|
updateBasePrcArr.push(gljTypeObj);
|
|
|
- me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
- }*/
|
|
|
+ if(me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //-----------------------------------------------------------
|
|
|
} else {
|
|
|
me.addGljObj = rObj;
|
|
|
let isCanSav = true;
|
|
@@ -409,10 +431,14 @@ repositoryGljObj = {
|
|
|
if(isCanSav){
|
|
|
me.addGljObj = null;
|
|
|
rObj.component = [];
|
|
|
+ //如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
|
|
|
+ if(me.allowComponent.indexOf(rObj.gljType) !== -1){
|
|
|
+ rObj.basePrice = 0;
|
|
|
+ }
|
|
|
addArr.push(rObj);
|
|
|
}
|
|
|
}
|
|
|
- if(me.gljCurTypeId !== 1){
|
|
|
+ if(me.gljCurTypeId !== 732){
|
|
|
rObj.gljClass = me.gljCurTypeId;
|
|
|
}
|
|
|
if(updateArr.length >0 || addArr.length >0){
|
|
@@ -430,14 +456,17 @@ repositoryGljObj = {
|
|
|
refGljCodes = [], //已被引用的工料机
|
|
|
updateBasePrcArr = [],//删除基价单位后重新计算
|
|
|
sels = sheet.getSelections(),
|
|
|
+ canUpdate = false,
|
|
|
cacheSection = me.currentCache;
|
|
|
if(sels.length > 0 && cacheSection.length > 0){
|
|
|
for(let i = 0; i < sels.length; i++){
|
|
|
if(sels[i].colCount === me.setting.header.length){
|
|
|
for(let j = 0; j < sels[i].rowCount; j++){
|
|
|
if(sels[i].row + j < cacheSection.length){
|
|
|
- //tempRemoveArr.push({ID: cacheSection[sels[i].row + j].ID, code: cacheSection[sels[i].row + j].code});
|
|
|
removeArr.push(cacheSection[sels[i].row + j].ID);
|
|
|
+ //tempRemoveArr.push({ID: cacheSection[sels[i].row + j].ID, code: cacheSection[sels[i].row + j].code});
|
|
|
+ //删除后重新计算引用了此工料机的定额单价
|
|
|
+ updateBasePrcArr.push({gljId: cacheSection[sels[i].row + j].ID, gljType: cacheSection[sels[i].row + j].gljType, basePrice: 0, delete: 1});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -449,14 +478,21 @@ repositoryGljObj = {
|
|
|
let updateObj = cacheSection[sels[i].row + j];
|
|
|
for(let col = sels[i].col; col <= maxCol; col++){
|
|
|
if(me.setting.header[col].dataCode === 'basePrice'){
|
|
|
- updateObj[me.setting.header[col].dataCode] = 0;
|
|
|
- // updateBasePrcArr.push({gljId: updateObj.ID, gljType: updateObj.gljType, basePrice: 0});
|
|
|
+ //如果类型不为混凝土、砂浆、配合比、机械,才可删除单价 basePrice = 0
|
|
|
+ if(me.allowComponent.indexOf(updateObj.gljType) === -1){
|
|
|
+ canUpdate = true;
|
|
|
+ updateObj[me.setting.header[col].dataCode] = 0;
|
|
|
+ updateBasePrcArr.push({gljId: updateObj.ID, gljType: updateObj.gljType, basePrice: 0});
|
|
|
+ }
|
|
|
}
|
|
|
else{
|
|
|
+ canUpdate = true;
|
|
|
updateObj[me.setting.header[col].dataCode] = '';
|
|
|
}
|
|
|
}
|
|
|
- updateArr.push(updateObj);
|
|
|
+ if(canUpdate){
|
|
|
+ updateArr.push(updateObj);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -522,10 +558,16 @@ repositoryGljObj = {
|
|
|
});
|
|
|
}*/
|
|
|
if(removeArr.length > 0 || updateArr.length > 0){
|
|
|
- me.mixUpdateRequest(updateArr, [], removeArr);
|
|
|
- /* if(updateBasePrcArr.length > 0){
|
|
|
- me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
- }*/
|
|
|
+ //删除警告
|
|
|
+ $('#alertGljTxt').text('可能已有定额引用了当前工料机,导致定额查找不到此工料机。确定要删除吗?');
|
|
|
+ $('#gljAlertBtn').click();
|
|
|
+ //确认
|
|
|
+ $('#aleConfBtn').click(function () {
|
|
|
+ me.mixUpdateRequest(updateArr, [], removeArr);
|
|
|
+ if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -538,7 +580,7 @@ repositoryGljObj = {
|
|
|
let rst = {}, backUpObj = {},
|
|
|
me = repositoryGljObj,
|
|
|
tempObj = me.currentCache[rowIdx],
|
|
|
- //reCalBasePrc = false,
|
|
|
+ reCalBasePrc = false,
|
|
|
isValid = true;
|
|
|
//备份原始数据
|
|
|
for(let atr in tempObj){
|
|
@@ -575,7 +617,7 @@ repositoryGljObj = {
|
|
|
for(let i = 0; i < me.distTypeTree.comboDatas.length; i++){
|
|
|
if(pasteObj.gljType === me.distTypeTree.comboDatas[i].text){
|
|
|
isExsit = true;
|
|
|
- // reCalBasePrc = true;
|
|
|
+ reCalBasePrc = true;
|
|
|
tempObj.gljType = me.distTypeTree.comboDatas[i].value;
|
|
|
tempObj.shortName = me.distTypeTree.distTypes[me.distTypeTree.prefix + tempObj.gljType].data.shortName;
|
|
|
|
|
@@ -587,15 +629,15 @@ repositoryGljObj = {
|
|
|
pasteObj.basePrice = !isNaN(parseFloat(pasteObj.basePrice)) && (pasteObj.basePrice && typeof pasteObj.basePrice !== 'undefined') ? parseFloat(pasteObj.basePrice) :
|
|
|
me.currentCache[rowIdx].basePrice;
|
|
|
if(pasteObj.basePrice !== me.currentCache[rowIdx].basePrice){
|
|
|
- // reCalBasePrc = true;
|
|
|
+ reCalBasePrc = true;
|
|
|
tempObj.basePrice = pasteObj.basePrice;
|
|
|
}
|
|
|
if(isValid){
|
|
|
rst.updateGlj = tempObj;
|
|
|
- /*if(reCalBasePrc){
|
|
|
+ if(reCalBasePrc){
|
|
|
//重新计算定额基价对象
|
|
|
rst.updateBasePrc = {gljId: tempObj.ID, gljType: tempObj.gljType, basePrice: tempObj.basePrice};
|
|
|
- }*/
|
|
|
+ }
|
|
|
}
|
|
|
else {
|
|
|
for(let attr in backUpObj){
|
|
@@ -637,120 +679,133 @@ repositoryGljObj = {
|
|
|
return true;
|
|
|
},
|
|
|
onClipboardPasting: function(sender, args) {
|
|
|
- var me = repositoryGljObj;
|
|
|
+ let me = repositoryGljObj;
|
|
|
/*if (args.cellRange.colCount != me.setting.header.length || me.gljCurTypeId < 0 || me.parentNodeIds["_pNodeId_" + me.gljCurTypeId]) {
|
|
|
args.cancel = true;
|
|
|
}*/
|
|
|
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, updateItems = [], addItems = [],
|
|
|
- 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);
|
|
|
- }
|
|
|
- }
|
|
|
- if(info.cellRange.colCount === me.setting.header.length){
|
|
|
- for(let i = updateCount ; i < items.length; i++){
|
|
|
- if(me.isValidObj(items[i])){
|
|
|
- addItems.push(items[i]);
|
|
|
- addArr.push(items[i]);
|
|
|
+ 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{
|
|
|
- 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])){
|
|
|
- addArr.push(items[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{
|
|
|
- for(let i = 0; i < items.length; i++){
|
|
|
- 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;
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- //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{
|
|
|
+ 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.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) {
|
|
|
+ updateRationBasePrcRq: function (basePrcArr) {
|
|
|
$.ajax({
|
|
|
type: 'post',
|
|
|
url: 'api/updateRationBasePrc',
|
|
|
- data:{data: JSON.stringify({repId: pageOprObj.rationLibId, lastOpr: userAccount, basePrcArr: basePrcArr})},
|
|
|
+ data:{basePrcArr: JSON.stringify(basePrcArr)},
|
|
|
dataType: 'json',
|
|
|
success: function (result) {
|
|
|
if(result.error){
|
|
@@ -758,7 +813,7 @@ repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- },*/
|
|
|
+ },
|
|
|
/* getRationGljIds: function (repId) {
|
|
|
let me = repositoryGljObj;
|
|
|
$.ajax({
|
|
@@ -774,7 +829,7 @@ repositoryGljObj = {
|
|
|
});
|
|
|
},*/
|
|
|
mixUpdateRequest: function(updateArr, addArr, removeIds) {
|
|
|
- var me = repositoryGljObj;
|
|
|
+ let me = repositoryGljObj;
|
|
|
$.ajax({
|
|
|
type:"POST",
|
|
|
url:"api/mixUpdateGljItems",
|
|
@@ -822,8 +877,8 @@ repositoryGljObj = {
|
|
|
return rst;
|
|
|
},
|
|
|
getCache: function() {
|
|
|
- var me = this, rst = [];
|
|
|
- for (var i = 0; i < me.gljList.length; i++) {
|
|
|
+ let me = this, rst = [];
|
|
|
+ for (let i = 0; i < me.gljList.length; i++) {
|
|
|
if (me.gljList[i].gljClass == me.gljCurTypeId) {
|
|
|
rst.push(me.gljList[i]);
|
|
|
}
|
|
@@ -831,29 +886,29 @@ repositoryGljObj = {
|
|
|
return rst;
|
|
|
},
|
|
|
updateCache: function(addArr, updateArr, removeIds, result) {
|
|
|
- var me = this, cacheSection = me.gljList;
|
|
|
+ let me = this, cacheSection = me.gljList;
|
|
|
if (addArr.length > 0) {
|
|
|
me.gljList = me.gljList.concat(addArr);
|
|
|
cacheSection = me.gljList;
|
|
|
}
|
|
|
- for (var i = removeIds.length - 1; i >= 0; i--) {
|
|
|
- for (var j = cacheSection.length - 1; j >= 0 ; j--) {
|
|
|
+ for (let i = removeIds.length - 1; i >= 0; i--) {
|
|
|
+ for (let j = cacheSection.length - 1; j >= 0 ; j--) {
|
|
|
if (cacheSection[j]["ID"] == removeIds[i]) {
|
|
|
cacheSection.splice(j,1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (result && result.data.ops && result.data.ops.length > 0) {
|
|
|
- for (var i = 0; i < result.data.ops.length; i++) {
|
|
|
- for (var j = 0; j < cacheSection.length; j++) {
|
|
|
+ if (result && result.data && result.data.ops && result.data.ops.length > 0) {
|
|
|
+ for (let i = 0; i < result.data.ops.length; i++) {
|
|
|
+ for (let j = 0; j < cacheSection.length; j++) {
|
|
|
if (cacheSection[j][me.setting.header[0].dataCode] == result.data.ops[i][me.setting.header[0].dataCode]) {
|
|
|
cacheSection[j]["ID"] = result.data.ops[i]["ID"];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- for (var i = 0; i < updateArr.length; i++) {
|
|
|
- for (var j = 0; j < cacheSection.length; j++) {
|
|
|
+ for (let i = 0; i < updateArr.length; i++) {
|
|
|
+ for (let j = 0; j < cacheSection.length; j++) {
|
|
|
if (updateArr[i]["ID"] && cacheSection[j]["ID"]) {
|
|
|
if (cacheSection[j]["ID"] == updateArr[i]["ID"]) {
|
|
|
cacheSection[j] = updateArr[i];
|
|
@@ -867,9 +922,9 @@ repositoryGljObj = {
|
|
|
}
|
|
|
},
|
|
|
sortGlj: function() {
|
|
|
- var me = this;
|
|
|
+ let me = this;
|
|
|
me.gljList.sort(function(a, b){
|
|
|
- var rst = 0;
|
|
|
+ let rst = 0;
|
|
|
if (a.code > b.code) rst = 1
|
|
|
else if (a.code < b.code) rst = -1;
|
|
|
return rst;
|
|
@@ -877,9 +932,9 @@ repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-var gljTypeTreeOprObj = {
|
|
|
+let gljTypeTreeOprObj = {
|
|
|
onClick: function(event,treeId,treeNode) {
|
|
|
- var me = repositoryGljObj,
|
|
|
+ let me = repositoryGljObj,
|
|
|
that = gljComponentOprObj,
|
|
|
gljTypeId = treeNode.ID;
|
|
|
me.gljCurTypeId = treeNode.ID;
|
|
@@ -912,7 +967,7 @@ var gljTypeTreeOprObj = {
|
|
|
return true;
|
|
|
},
|
|
|
onRename : function(e, treeId, treeNode, isCancel) {
|
|
|
- var nodes = [];
|
|
|
+ let nodes = [];
|
|
|
nodes.push(treeNode);
|
|
|
gljTypeTreeOprObj.updateNodes(nodes);
|
|
|
},
|
|
@@ -925,20 +980,20 @@ var gljTypeTreeOprObj = {
|
|
|
if (!confirm("您确定要删除此节点及所有子节点的数据?删除后不可恢复!")) {
|
|
|
return false;
|
|
|
}
|
|
|
- var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
|
|
|
+ let nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
|
|
|
if (preNode) {
|
|
|
preNodeId = preNode.ID;
|
|
|
}
|
|
|
private_fetchAllSubItems = function(pItem){
|
|
|
nodeIds.push(pItem.ID);
|
|
|
if (pItem.items && pItem.items.length > 0) {
|
|
|
- for (var i = 0; i < pItem.items.length; i++) {
|
|
|
+ for (let i = 0; i < pItem.items.length; i++) {
|
|
|
private_fetchAllSubItems(pItem.items[i]);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
nodeIds.push(treeNode.ID);
|
|
|
- for (var i = 0; i < treeNode.items.length; i++) {
|
|
|
+ for (let i = 0; i < treeNode.items.length; i++) {
|
|
|
private_fetchAllSubItems(treeNode.items[i]);
|
|
|
}
|
|
|
$.ajax({
|
|
@@ -949,7 +1004,7 @@ var gljTypeTreeOprObj = {
|
|
|
cache:false,
|
|
|
timeout:5000,
|
|
|
success:function(result,textStatus,status){
|
|
|
- var pNode = treeNode.getParentNode();
|
|
|
+ let pNode = treeNode.getParentNode();
|
|
|
if (pNode && pNode.items && pNode.items.length == 1) {
|
|
|
pNode.isParent = false;
|
|
|
}
|
|
@@ -960,7 +1015,7 @@ var gljTypeTreeOprObj = {
|
|
|
return true;
|
|
|
},
|
|
|
onRemove: function(e, treeId, treeNode){
|
|
|
- var me = repositoryGljObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
|
|
|
+ let me = repositoryGljObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
|
|
|
if (pNode && pNode.items && pNode.items.length == 0) {
|
|
|
pNode.isParent = false;
|
|
|
me.treeObj.refresh();
|
|
@@ -968,9 +1023,9 @@ var gljTypeTreeOprObj = {
|
|
|
},
|
|
|
updateNodes: function(nodes){
|
|
|
if (nodes && nodes.length > 0) {
|
|
|
- var reqData = []
|
|
|
- for (var i = 0; i < nodes.length; i++) {
|
|
|
- var node = {};
|
|
|
+ let reqData = []
|
|
|
+ for (let i = 0; i < nodes.length; i++) {
|
|
|
+ let node = {};
|
|
|
node.repositoryId = nodes[i].repositoryId;
|
|
|
node.ID = nodes[i].ID;
|
|
|
node.ParentID = nodes[i].ParentID;
|
|
@@ -994,13 +1049,13 @@ var gljTypeTreeOprObj = {
|
|
|
}
|
|
|
},
|
|
|
addRootNode: function() {
|
|
|
- var me = repositoryGljObj, rawNode = {ParentID: -1, NextSiblingID: -1, Name: "所有"}, lastNodeId = -1;
|
|
|
+ let me = repositoryGljObj, rawNode = {ParentID: -1, NextSiblingID: -1, Name: "所有"}, lastNodeId = -1;
|
|
|
if (me.treeObj) {
|
|
|
- var rootNodes = me.treeObj.getNodes();
|
|
|
+ let rootNodes = me.treeObj.getNodes();
|
|
|
if (rootNodes.length == 0) {
|
|
|
gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
|
|
|
if (!(err)) {
|
|
|
- var newNodes = [], isSilent = false;
|
|
|
+ let newNodes = [], isSilent = false;
|
|
|
newNodes.push({ repositoryId: rst.data.repositoryId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, Name:"所有",isParent:false, items:[]});
|
|
|
me.treeObj.addNodes(null, -1, newNodes, isSilent);
|
|
|
}
|
|
@@ -1030,21 +1085,20 @@ var gljTypeTreeOprObj = {
|
|
|
}
|
|
|
hoverOpr();
|
|
|
function hoverOpr(){
|
|
|
- //console.log(treeNode);
|
|
|
- var me = repositoryGljObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
+ let me = repositoryGljObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
|
|
|
- var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
|
|
|
+ let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
|
|
|
sObj.after(addStr);
|
|
|
- var btn = $("#addBtn_"+treeNode.tId);
|
|
|
+ let btn = $("#addBtn_"+treeNode.tId);
|
|
|
if (btn) btn.bind("click", function(){
|
|
|
treeNode.doing = true;
|
|
|
- var rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, Name: "新增子节点"}, lastNodeId = -1;
|
|
|
+ let rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, Name: "新增子节点"}, lastNodeId = -1;
|
|
|
if (treeNode.items.length > 0) {
|
|
|
lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
|
|
|
}
|
|
|
gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
|
|
|
if (!(err)) {
|
|
|
- var newNodes = [], isSilent = false;
|
|
|
+ let newNodes = [], isSilent = false;
|
|
|
if(treeNode.items.length > 0){
|
|
|
treeNode.items[treeNode.items.length - 1].NextSiblingID = rst.data.ID;
|
|
|
}
|