|
@@ -4,12 +4,13 @@
|
|
|
let pageOprObj = {
|
|
|
gljLibName : null,
|
|
|
gljLibId: null,
|
|
|
- initPage : function(container, containerComponent) {
|
|
|
+ initPage : function(container, containerComponent, containerC) {
|
|
|
let me = this, gljLibId = getQueryString("gljLibId");//获取定额库参数
|
|
|
me.gljLibId = gljLibId;
|
|
|
repositoryGljObj.getGljLib(gljLibId, function () {
|
|
|
repositoryGljObj.buildSheet(container);
|
|
|
gljComponentOprObj.buildSheet(containerComponent);
|
|
|
+ componentOprObj.buildSheet(containerC);
|
|
|
//获得定额库中引用此工料机库中的,所有被定额所套的工料机的ID
|
|
|
//repositoryGljObj.getRationGljIds(gljLibId);
|
|
|
repositoryGljObj.getGljDistType(function () {
|
|
@@ -17,7 +18,6 @@ let pageOprObj = {
|
|
|
repositoryGljObj.getGljTree(gljLibId, function () {
|
|
|
repositoryGljObj.getGljItems(gljLibId);
|
|
|
});
|
|
|
- sheetCommonObj.shieldAllCells(repositoryGljObj.workBook.getSheet(0), repositoryGljObj.setting);
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@@ -38,10 +38,11 @@ let repositoryGljObj = {
|
|
|
header:[
|
|
|
{headerName:"编码",headerWidth:120,dataCode:"code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
|
|
|
{headerName:"名称",headerWidth:260,dataCode:"name", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
|
|
|
- {headerName:"规格型号",headerWidth:260,dataCode:"specs", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
|
|
|
- {headerName:"计量单位",headerWidth:120,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"},
|
|
|
+ {headerName:"规格型号",headerWidth:220,dataCode:"specs", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
|
|
|
+ {headerName:"单位",headerWidth:120,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"},
|
|
|
{headerName:"基价单价",headerWidth:120,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"},
|
|
|
- {headerName:"类型",headerWidth:120,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"}
|
|
|
+ {headerName:"类型",headerWidth:120,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"},
|
|
|
+ {headerName:"调整系数",headerWidth:80,dataCode:"adjCoe", dataType: "Number", hAlign: "center", vAlign: "center"},
|
|
|
],
|
|
|
view:{
|
|
|
comboBox:[
|
|
@@ -78,10 +79,6 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
});
|
|
|
distTypeTree.distTypesArr.forEach(function (distTypeObj) {
|
|
|
- /* if(distTypeObj.children.length === 0 && distTypeObj.data.fullName !== '普通机械' &&distTypeObj.data.fullName !== '机械组成物'
|
|
|
- && distTypeObj.data.fullName !== '机上人工'){
|
|
|
- distTypeTree.comboDatas.push({text: distTypeObj.data.fullName, value: distTypeObj.data.ID});
|
|
|
- }*/
|
|
|
if(distTypeObj.data.fullName !== '材料' && distTypeObj.data.fullName !== '机械'){
|
|
|
distTypeTree.comboDatas.push({text: distTypeObj.data.fullName, value: distTypeObj.data.ID});
|
|
|
}
|
|
@@ -98,9 +95,6 @@ let repositoryGljObj = {
|
|
|
if(!result.error && callback){
|
|
|
me.distTypeTree = me.getComboData(result.data);
|
|
|
console.log(me.distTypeTree);
|
|
|
- let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
|
|
|
- combo.items(me.distTypeTree.comboDatas).editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.text);
|
|
|
- me.workBook.getSheet(0).getCell(-1, 5, GC.Spread.Sheets.SheetArea.viewport).cellType(combo).value(me.distTypeTree.comboDatas[0].text);
|
|
|
callback();
|
|
|
}
|
|
|
}
|
|
@@ -139,6 +133,7 @@ let repositoryGljObj = {
|
|
|
success:function(result,textStatus,status){
|
|
|
if(status.status == 200) {
|
|
|
zTreeHelper.createTree(result.data, gljSetting, "repositoryTree", me);
|
|
|
+ zTreeHelper.createTree(result.data, componentSetting, "componentTree", componentOprObj);
|
|
|
if (result.data && result.data.length > 0) {
|
|
|
me.gljCurTypeId = result.data[0].ID;
|
|
|
} else {
|
|
@@ -167,8 +162,10 @@ let repositoryGljObj = {
|
|
|
me.gljList = result.data;
|
|
|
me.workBook.getSheet(0).setRowCount(result.data.length);
|
|
|
me.sortGlj();
|
|
|
+ me.currentGlj = me.gljList.length > 0 ? me.gljList[0] : null;//初始
|
|
|
let rootNode = me.treeObj.getNodes()[0];
|
|
|
if(rootNode && rootNode.isParent && rootNode.isFirstNode){
|
|
|
+ componentOprObj.rootNode = rootNode;
|
|
|
me.treeObj.selectNode(rootNode);
|
|
|
gljTypeTreeOprObj.onClick(null, 'repositoryTree', rootNode);
|
|
|
}
|
|
@@ -191,10 +188,10 @@ let repositoryGljObj = {
|
|
|
cacheSection.push(data[i]);
|
|
|
}
|
|
|
}
|
|
|
- //sheetCommonObj.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
|
|
|
sheetCommonObj.cleanData(me.workBook.getSheet(0), me.setting, -1);
|
|
|
- sheetCommonObj.showData(me.workBook.getSheet(0), me.setting, cacheSection, me.distTypeTree);
|
|
|
-
|
|
|
+ sheetsOprObj.showData(me.workBook.getSheet(0), me.setting, cacheSection, me.distTypeTree);
|
|
|
+ sheetCommonObj.setStaticCombo(me.workBook.getActiveSheet(), 0, 5, cacheSection.length, me.distTypeTree.comboDatas, false, 'text');
|
|
|
+ sheetCommonObj.setDynamicCombo(me.workBook.getActiveSheet(), cacheSection.length, 5, me.workBook.getActiveSheet().getRowCount() - cacheSection.length, me.distTypeTree.comboDatas, false, 'text');
|
|
|
cacheSection = null;
|
|
|
}
|
|
|
},
|
|
@@ -287,26 +284,19 @@ let 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;
|
|
|
- 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.currentComponent = [];
|
|
|
+ that.workBook.getSheet(0).setRowCount(5);
|
|
|
if(row < me.currentCache.length){
|
|
|
//标记当前工料机
|
|
|
me.currentGlj = me.currentCache[row];
|
|
|
if(me.allowComponent.indexOf(me.currentCache[row].gljType) !== -1){
|
|
|
- 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;
|
|
|
- //sheetCommonObj.lockCells(that.workBook.getSheet(0), that.setting);
|
|
|
//展示数据
|
|
|
if(me.currentGlj.component.length > 0){
|
|
|
me.currentComponent = me.getCurrentComponent(me.currentGlj.component);
|
|
|
if(me.currentComponent.length > 0){
|
|
|
- sheetCommonObj.showData(that.workBook.getSheet(0), that.setting, me.currentComponent);
|
|
|
+ sheetsOprObj.showData(that.workBook.getSheet(0), that.setting, me.currentComponent);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -318,6 +308,7 @@ let repositoryGljObj = {
|
|
|
},
|
|
|
onEnterCell: function (sender, args) {
|
|
|
let me = repositoryGljObj;
|
|
|
+ args.sheet.repaint();
|
|
|
me.cellRowIdx = args.row;
|
|
|
let isHasData = false;
|
|
|
if(me.addGljObj){
|
|
@@ -334,15 +325,15 @@ let repositoryGljObj = {
|
|
|
let focusToCol;
|
|
|
function getFocusToCol (me){
|
|
|
if(!me.addGljObj[me.setting.header[0].dataCode]){
|
|
|
- $('#alertGljTxt').text('编号不能为空,是否取消增加工料机?');
|
|
|
+ $('#alertGljTxt').text('编号不能为空,继续增加工料机?');
|
|
|
return 0;
|
|
|
}
|
|
|
else if(!me.addGljObj[me.setting.header[1].dataCode]){
|
|
|
- $('#alertGljTxt').text('名称不能为空,是否取消增加工料机?');
|
|
|
+ $('#alertGljTxt').text('名称不能为空,继续增加工料机?');
|
|
|
return 1;
|
|
|
}
|
|
|
else if(!me.addGljObj[me.setting.header[5].dataCode]){
|
|
|
- $('#alertGljTxt').text('类型不能为空,是否取消增加工料机?');
|
|
|
+ $('#alertGljTxt').text('类型不能为空,继续增加工料机?');
|
|
|
return 5;
|
|
|
}
|
|
|
else {
|
|
@@ -355,37 +346,19 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
else {
|
|
|
$('#gljAlertBtn').click();
|
|
|
- //me.workBook.getSheet(0).options.isProtected = true;
|
|
|
- sheetCommonObj.lockAllCells(args.sheet);
|
|
|
- $('#aleCanceBtn').click(function () {
|
|
|
- // me.workBook.getSheet(0).options.isProtected = false;
|
|
|
- sheetCommonObj.unLockAllCells(args.sheet);
|
|
|
- sheetCommonObj.reLockSomeCodes(args.sheet, 0, repositoryGljObj.currentCache.length);
|
|
|
+ $('#aleConfBtn').click(function () {
|
|
|
me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
|
|
|
});
|
|
|
$('#gljAleClose').click(function () {
|
|
|
- // me.workBook.getSheet(0).options.isProtected = false;
|
|
|
- sheetCommonObj.unLockAllCells(args.sheet);
|
|
|
- sheetCommonObj.reLockSomeCodes(args.sheet, 0, repositoryGljObj.currentCache.length);
|
|
|
me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
|
|
|
});
|
|
|
- $('#aleConfBtn').click(function () {
|
|
|
- // me.workBook.getSheet(0).options.isProtected = false;
|
|
|
- sheetCommonObj.unLockAllCells(args.sheet);
|
|
|
- sheetCommonObj.reLockSomeCodes(args.sheet, 0, repositoryGljObj.currentCache.length);
|
|
|
+ $('#aleCanceBtn').click(function () {
|
|
|
me.addGljObj = null;
|
|
|
for(let col=0; col<me.setting.header.length; col++){
|
|
|
- let field = me.setting.header[col].dataCode;
|
|
|
- if(field === 'gljType'){
|
|
|
- me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value(
|
|
|
- typeof me.currentEditingGlj[field] !== 'undefined'?
|
|
|
- me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[field]].data.fullName
|
|
|
- : '');
|
|
|
- }
|
|
|
- else{
|
|
|
+ if(col === 0){
|
|
|
me.workBook.getSheet(0).getCell(me.editingRowIdx, 0).formatter("@");
|
|
|
- me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value(me.currentEditingGlj[me.setting.header[col].dataCode]);
|
|
|
}
|
|
|
+ me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value('');
|
|
|
}
|
|
|
me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, 0);
|
|
|
});
|
|
@@ -395,28 +368,32 @@ let repositoryGljObj = {
|
|
|
},
|
|
|
onCellEditStart: function(sender, args) {
|
|
|
let me = repositoryGljObj;
|
|
|
- let rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
|
|
|
+ let rObj = sheetsOprObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
|
|
|
me.currentEditingGlj = rObj;
|
|
|
me.orgCode = me.workBook.getSheet(0).getValue(args.row, 0);
|
|
|
- let cacheSection = me.gljList;
|
|
|
- if (cacheSection) {
|
|
|
- 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;
|
|
|
- break;
|
|
|
- }
|
|
|
+ if(args.row < me.currentCache.length){
|
|
|
+ me.currentGlj = me.currentCache[args.row];
|
|
|
+ if(args.col === 0 || (args.col === 4 && me.allowComponent.indexOf(me.currentGlj.gljType) !== -1)
|
|
|
+ || (args.col === 6 && me.currentGlj.gljType !== 1 && me.currentGlj.gljType !== 303)){
|
|
|
+ args.cancel = true;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ rObj.ID = me.currentGlj.ID;
|
|
|
+ rObj.gljClass = me.currentGlj.gljClass;
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ me.currentGlj = null;
|
|
|
+ }
|
|
|
},
|
|
|
onCellEditEnd: function(sender, args) {
|
|
|
let me = repositoryGljObj, that = gljComponentOprObj,
|
|
|
- rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
|
|
|
+ rObj = sheetsOprObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
|
|
|
updateArr = [], addArr = [], updateBasePrcArr = [];
|
|
|
me.editingRowIdx = args.row;
|
|
|
rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
|
|
|
//更新
|
|
|
- if (me.currentEditingGlj["ID"]) {
|
|
|
+ if (me.currentEditingGlj["ID"] && me.currentGlj) {
|
|
|
rObj["ID"] = me.currentEditingGlj["ID"];
|
|
|
rObj.gljClass = me.currentEditingGlj.gljClass;
|
|
|
if(me.currentEditingGlj[me.setting.header[args.col].dataCode] !== rObj[me.setting.header[args.col].dataCode]){
|
|
@@ -429,6 +406,10 @@ let repositoryGljObj = {
|
|
|
if(me.allowComponent.indexOf(rObj.gljType) !== -1){
|
|
|
rObj.basePrice = 0;
|
|
|
}
|
|
|
+ //调整系数,工料机类型为人工和机上人工时,可输入整数
|
|
|
+ if((me.currentEditingGlj.gljType === 1 || me.currentEditingGlj.gljType === 303) && !(rObj.gljType === 1 || rObj.gljType === 303)){
|
|
|
+ rObj.adjCoe = null;
|
|
|
+ }
|
|
|
if(me.componentGljType.indexOf(me.currentEditingGlj.gljType) !== -1 &&
|
|
|
!(me.currentEditingGlj.gljType === 302 && rObj.gljType === 303) && !(me.currentEditingGlj.gljType === 303 && rObj.gljType === 302)){//修改了原本是组成物的工料机
|
|
|
//寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
@@ -442,6 +423,15 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ sheetCommonObj.cleanData(that.workBook.getSheet(0), that.setting, 5);
|
|
|
+ }
|
|
|
+ else if(rObj.adjCoe !== me.currentEditingGlj.adjCoe){//修改调整系数,整数控制
|
|
|
+ if(isNaN(rObj.adjCoe) || rObj.adjCoe % 1 !== 0){
|
|
|
+ args.sheet.setValue(args.row, args.col, me.currentEditingGlj.adjCoe ? me.currentEditingGlj.adjCoe : '');
|
|
|
+ alert('调整系数只能输入整数!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
else if(rObj.basePrice !== me.currentEditingGlj.basePrice){//修改了单价,可修改单价的必为可成为组成物的
|
|
|
//寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
@@ -524,7 +514,6 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
if(updateArr.length >0 || addArr.length >0){
|
|
|
me.currentEditingGlj = null;
|
|
|
- //me.workBook.getSheet(0).setValue(11, 5, "人工");
|
|
|
me.mixUpdateRequest(updateArr, addArr, []);
|
|
|
}
|
|
|
},
|
|
@@ -598,12 +587,9 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
$('#alertText').text(text + "不可为空!");
|
|
|
$('#codeAlertBtn').click();
|
|
|
- sheet.options.isProtected = true;
|
|
|
$('#codAleConfBtn').click(function () {
|
|
|
- sheetCommonObj.lockSomeCodes(sheet, 0, cacheSection.length);
|
|
|
});
|
|
|
$('#codAleClose').click(function () {
|
|
|
- sheetCommonObj.lockSomeCodes(sheet, 0, cacheSection.length);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -671,7 +657,13 @@ let repositoryGljObj = {
|
|
|
if(pasteObj.gljType === me.distTypeTree.comboDatas[i].text){
|
|
|
isExsit = true;
|
|
|
reCalBasePrc = true;
|
|
|
- //
|
|
|
+ //调整系数
|
|
|
+ if(me.distTypeTree.comboDatas[i].value !== 1 && me.distTypeTree.comboDatas[i].value !== 303){
|
|
|
+ tempObj.adjCoe = null;
|
|
|
+ }
|
|
|
+ else if((me.distTypeTree.comboDatas[i].value === 1 || me.distTypeTree.comboDatas[i].value === 303) && typeof pasteObj.adjCoe !== 'undefined' && !isNaN(pasteObj.adjCoe) && pasteObj.adjCoe % 1 === 0) {
|
|
|
+ tempObj.adjCoe = pasteObj.adjCoe;
|
|
|
+ }
|
|
|
if(me.componentGljType.indexOf(tempObj.gljType) !== -1 &&
|
|
|
!(tempObj.gljType === 302 && pasteObj.gljType === 303) && !(tempObj.gljType === 303 && pasteObj.gljType === 302)){//修改了原本是组成物的工料机
|
|
|
//寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
@@ -685,15 +677,26 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- tempObj.gljType = me.distTypeTree.comboDatas[i].value;
|
|
|
- tempObj.shortName = me.distTypeTree.distTypes[me.distTypeTree.prefix + tempObj.gljType].data.shortName;
|
|
|
+ tempObj.component = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.component : [];
|
|
|
if(me.allowComponent.indexOf(tempObj.gljType) !== -1){
|
|
|
- tempObj.basePrice = 0;
|
|
|
+ tempObj.basePrice = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.basePrice : 0;
|
|
|
}
|
|
|
+ tempObj.gljType = me.distTypeTree.comboDatas[i].value;
|
|
|
+ tempObj.shortName = me.distTypeTree.distTypes[me.distTypeTree.prefix + tempObj.gljType].data.shortName;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if(!isExsit) isValid = false;
|
|
|
+ if(!isExsit) {
|
|
|
+ isValid = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(typeof pasteObj.adjCoe !== 'undefined' && typeof pasteObj.gljType === 'undefined'){
|
|
|
+ if(tempObj.gljType && (tempObj.gljType === 1 || tempObj.gljType === 303) && typeof pasteObj.adjCoe !== 'undefined' && !isNaN(pasteObj.adjCoe) && pasteObj.adjCoe % 1 === 0) {
|
|
|
+ tempObj.adjCoe = pasteObj.adjCoe;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ isValid = false;
|
|
|
+ }
|
|
|
}
|
|
|
if(typeof pasteObj.basePrice !== 'undefined'){
|
|
|
pasteObj.basePrice = !isNaN(parseFloat(pasteObj.basePrice)) && (pasteObj.basePrice && typeof pasteObj.basePrice !== 'undefined') ? that.round(parseFloat(pasteObj.basePrice), 2) :
|
|
@@ -756,131 +759,161 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(pasteObj.adjCoe && typeof pasteObj.adjCoe !== 'undefined'){
|
|
|
+ if(isNaN(pasteObj.adjCoe) || pasteObj.adjCoe % 1 !== 0){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
pasteObj.basePrice = !isNaN(parseFloat(pasteObj.basePrice)) && (pasteObj.basePrice && typeof pasteObj.basePrice !== 'undefined') ? parseFloat(pasteObj.basePrice) : 0;
|
|
|
pasteObj.gljClass = me.gljCurTypeId;
|
|
|
return true;
|
|
|
},
|
|
|
- onClipboardPasting: function(sender, args) {
|
|
|
+ canPasted: function (info) {
|
|
|
+ let rst = true;
|
|
|
let me = repositoryGljObj;
|
|
|
- if (me.gljCurTypeId < 0 ) {
|
|
|
- args.cancel = true;
|
|
|
+ if(me.gljCurTypeId < 0){
|
|
|
+ return false;
|
|
|
}
|
|
|
- let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
|
|
|
+ if(info.cellRange.col + info.cellRange.colCount - 1 > me.setting.header.length - 1){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(info.cellRange.row < me.currentCache.length){
|
|
|
+ if(info.cellRange.col === 0){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if(info.cellRange.col <= 4 && info.cellRange.col + info.cellRange.colCount - 1 >= 4){
|
|
|
+ for(let i = 0, len = info.cellRange.rowCount; i < len; i++){
|
|
|
+ let row = i + info.cellRange.row;
|
|
|
+ if(row < me.currentCache.length){
|
|
|
+ if(me.allowComponent.indexOf(me.currentCache[row].gljType) !== -1){
|
|
|
+ rst = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ onClipboardPasting: function(sender, args) {
|
|
|
+ let me = repositoryGljObj;
|
|
|
//复制的列数超过正确的列数,不可复制
|
|
|
- if(maxCol >= me.setting.header.length){
|
|
|
+ if(!me.canPasted(args)){
|
|
|
args.cancel = true;
|
|
|
}
|
|
|
},
|
|
|
onClipboardPasted: function(e, info) {
|
|
|
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 = updateObj.updateGlj;
|
|
|
- updateArr = updateArr.concat(updateObj.updateGlj);
|
|
|
- if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
- //updateBasePrcArr = updateObj.updateBasePrc;
|
|
|
- updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrc);
|
|
|
- }
|
|
|
+ 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' && updateObj.updateGlj.length > 0){
|
|
|
+ //updateArr = updateObj.updateGlj;
|
|
|
+ updateArr = updateArr.concat(updateObj.updateGlj);
|
|
|
+ if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
+ //updateBasePrcArr = updateObj.updateBasePrc;
|
|
|
+ updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrc);
|
|
|
}
|
|
|
- else{
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
+ }
|
|
|
+ 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 = updateArr.concat(updateObj.updateGlj);
|
|
|
+ if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
+ updateBasePrcArr = updateBasePrcArr.concat(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 = updateArr.concat(updateObj.updateGlj);
|
|
|
- if(typeof updateObj.updateBasePrc !== 'undefined'){
|
|
|
- updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrc);
|
|
|
+ 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);
|
|
|
}
|
|
|
}
|
|
|
- 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(info.cellRange.colCount === me.setting.header.length - 1 && info.cellRange.col + info.cellRange.colCount - 1 >= 5){
|
|
|
+ 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{
|
|
|
- for(let i = updateCount ; i < items.length; i++){
|
|
|
+ else{
|
|
|
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;
|
|
|
- }
|
|
|
- addArr.push(items[i]);
|
|
|
+ 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);
|
|
|
}
|
|
|
else{
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
+ info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
- for(let i = 0; i < items.length; i++){
|
|
|
- resumeArr.push(info.cellRange.row + i);
|
|
|
+ for(let col = 0; col < me.setting.header.length; col++){
|
|
|
+ info.sheet.setValue(resumeArr[i], col, '');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //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);
|
|
|
- }
|
|
|
+ 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({
|
|
@@ -921,7 +954,6 @@ let repositoryGljObj = {
|
|
|
success:function(result){
|
|
|
if (result.error) {
|
|
|
alert(result.message);
|
|
|
- me.getRationItems(me.currentRepositoryId);
|
|
|
} else {
|
|
|
me.updateCache(addArr, updateArr, removeIds, result);
|
|
|
me.sortGlj();
|
|
@@ -930,14 +962,18 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
else{
|
|
|
me.currentCache = me.getCache();
|
|
|
- //sheetCommonObj.unLockAllCells(me.workBook.getSheet(0));
|
|
|
- sheetCommonObj.reLockSomeCodes(me.workBook.getSheet(0), 0, me.currentCache.length);
|
|
|
- //sheetCommonObj.lockSomeCodes(me.workBook.getSheet(0), 0, me.currentCache.length);
|
|
|
}
|
|
|
me.showGljItems(me.gljList, me.gljCurTypeId);
|
|
|
+ //getCurrentGlj
|
|
|
+ let row = me.workBook.getSheet(0).getSelections()[0].row;
|
|
|
+ me.currentGlj = row < me.currentCache.length ? me.currentCache[row] : null;
|
|
|
+ me.currentComponent = me.currentGlj ? me.getCurrentComponent(me.currentGlj.component) : [];
|
|
|
+ sheetCommonObj.cleanData(gljComponentOprObj.workBook.getSheet(0), gljComponentOprObj.setting, -1);
|
|
|
+ sheetsOprObj.showData(gljComponentOprObj.workBook.getSheet(0), gljComponentOprObj.setting, me.currentComponent);
|
|
|
}
|
|
|
},
|
|
|
error:function(err){
|
|
|
+ console.log(err);
|
|
|
alert("保存失败");
|
|
|
}
|
|
|
})
|
|
@@ -1020,25 +1056,14 @@ let gljTypeTreeOprObj = {
|
|
|
gljTypeId = treeNode.ID;
|
|
|
me.gljCurTypeId = treeNode.ID;
|
|
|
me.addGljObj = null;
|
|
|
- //me.currentCache = me.getCache();
|
|
|
sheetCommonObj.cleanSheet(that.workBook.getSheet(0), that.setting, 5);
|
|
|
- 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;
|
|
|
if (me.parentNodeIds["_pNodeId_" + treeNode.ID]) {
|
|
|
me.currentOprParent = 1;
|
|
|
me.currentCache = me.getParentCache(me.parentNodeIds["_pNodeId_" + treeNode.ID]);
|
|
|
- sheetCommonObj.lockCodeCells(me.workBook.getSheet(0), me.currentCache.length);
|
|
|
me.workBook.getSheet(0).setRowCount(me.currentCache.length);
|
|
|
- //sheetCommonObj.shieldAllCells(me.workBook.getSheet(0), me.setting);
|
|
|
} else {
|
|
|
me.currentOprParent = 0;
|
|
|
me.currentCache = me.getCache();
|
|
|
- //sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
|
|
|
- /*sheetCommonObj.unLockAllCells(me.workBook.getSheet(0));
|
|
|
- sheetCommonObj.lockSomeCodes(me.workBook.getSheet(0), 0, me.currentCache.length);*/
|
|
|
- sheetCommonObj.unLockAllCells(me.workBook.getSheet(0));
|
|
|
- sheetCommonObj.reLockSomeCodes(me.workBook.getSheet(0), 0, me.currentCache.length);
|
|
|
}
|
|
|
me.showGljItems(me.gljList, gljTypeId);
|
|
|
},
|