|
@@ -63,13 +63,14 @@ var projectObj = {
|
|
|
return false;
|
|
|
}
|
|
|
};
|
|
|
- let canDelete = function (node) {
|
|
|
- if (selected) {
|
|
|
- if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
- if(selected.data.type == billType.DXFY&&selected.data.isAdd!=1){//如果
|
|
|
+ let canDelete = function (node,m_selection) {
|
|
|
+ if (node) {
|
|
|
+ if (node.sourceType === that.project.Bills.getSourceType()) {
|
|
|
+ if(node.data.type == billType.DXFY&&node.data.isAdd!=1){
|
|
|
return false;
|
|
|
}
|
|
|
- }if(selected.sourceType === that.project.ration_glj.getSourceType()){
|
|
|
+ }
|
|
|
+ if(m_selection!=true&&node.sourceType === that.project.ration_glj.getSourceType()){//多选的时候不做这一项判断
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
@@ -77,11 +78,32 @@ var projectObj = {
|
|
|
return false;
|
|
|
}
|
|
|
};
|
|
|
+ let canDelete_m = function (selection) {
|
|
|
+ for(let i =0;i<selection.rowCount;i++){
|
|
|
+ if(tree.items[selection.row+i]==undefined||tree.items[selection.row+i]==null){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(i==0&&tree.items[selection.row].sourceType === that.project.ration_glj.getSourceType()){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(canDelete(tree.items[selection.row+i],true)==false){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ };
|
|
|
+
|
|
|
+ let selections = projectObj.mainSpread.getActiveSheet().getSelections();
|
|
|
+ if(selections[0].rowCount==1){//选中单行
|
|
|
+ setButtonValid(canDelete(selected), $('#delete'));
|
|
|
+ }else {
|
|
|
+ setButtonValid(canDelete_m(selections[0]), $('#delete'));
|
|
|
+ }
|
|
|
setButtonValid(canUpLevel(selected), $('#upLevel'));
|
|
|
setButtonValid(canDownLevel(selected), $('#downLevel'));
|
|
|
setButtonValid(selected && (selected.depth() > 0) && selected.canUpMove(), $('#upMove'));
|
|
|
setButtonValid(selected && (selected.depth() > 0) && selected.canDownMove(), $('#downMove'));
|
|
|
- setButtonValid(canDelete(selected), $('#delete'));
|
|
|
+
|
|
|
},
|
|
|
checkCommonField: function (editingText, colSetting) {
|
|
|
let value;
|
|
@@ -454,13 +476,15 @@ var projectObj = {
|
|
|
if(col.data.field ==='quantity'){
|
|
|
col.showHint = true;
|
|
|
}
|
|
|
- // for test digit. CSLAAAAA
|
|
|
- if (col.data.field.hasSubStr("totalFee"))
|
|
|
- col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.totalPrice, false)
|
|
|
- else if (col.data.field.hasSubStr("unitFee"))
|
|
|
- col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.unitPrice, false)
|
|
|
- else if (col.data.field == "quantity")
|
|
|
- col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.quantity, false);
|
|
|
+
|
|
|
+ // 综合单价、综合合价,小数部分应补0对齐。 CSLAAAAA
|
|
|
+ if (col.data.field.hasSubStr("common")){
|
|
|
+ if (col.data.field.hasSubStr("totalFee"))
|
|
|
+ col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.totalPrice, true)
|
|
|
+ else if (col.data.field.hasSubStr("unitFee"))
|
|
|
+ col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.unitPrice, true)
|
|
|
+ }
|
|
|
+
|
|
|
});
|
|
|
|
|
|
that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
|
|
@@ -514,7 +538,7 @@ var projectObj = {
|
|
|
icon: 'fa-sign-in',
|
|
|
disabled: function () {
|
|
|
let selected = project.mainTree.selected;
|
|
|
- if(selected.sourceType==project.Bills.getSourceType()){
|
|
|
+ if(selected&&selected.sourceType==project.Bills.getSourceType()){
|
|
|
if(selected.data.type==billType.FB){
|
|
|
return false;
|
|
|
}
|
|
@@ -532,7 +556,11 @@ var projectObj = {
|
|
|
ProjectController.addFB(project, controller);
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
- return project.Bills.isFBFX(project.mainTree.selected );//不属于分部分项的话隐藏
|
|
|
+ if(project.mainTree.selected){
|
|
|
+ return project.Bills.isFBFX(project.mainTree.selected );//不属于分部分项的话隐藏
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
"insertFX": {
|
|
@@ -540,7 +568,7 @@ var projectObj = {
|
|
|
icon: 'fa-sign-in',
|
|
|
disabled: function () {
|
|
|
let selected = project.mainTree.selected;
|
|
|
- if(selected.sourceType==project.Bills.getSourceType()){
|
|
|
+ if(selected&&selected.sourceType==project.Bills.getSourceType()){
|
|
|
if(selected.data.type==billType.FX){//焦点行是分项,有效显示
|
|
|
return false
|
|
|
}
|
|
@@ -565,7 +593,11 @@ var projectObj = {
|
|
|
ProjectController.addFX(project, controller);
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
- return project.Bills.isFBFX(project.mainTree.selected );//不属于分部分项的话隐藏
|
|
|
+ if(project.mainTree.selected){
|
|
|
+ return project.Bills.isFBFX(project.mainTree.selected );//不属于分部分项的话隐藏
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
"insertBills": {
|
|
@@ -584,7 +616,11 @@ var projectObj = {
|
|
|
ProjectController.addBills(project, controller);
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
- return project.Bills.isFBFX(project.mainTree.selected)==true?false:true;//不属于分部分项的话隐藏
|
|
|
+ if(project.mainTree.selected){
|
|
|
+ return project.Bills.isFBFX(project.mainTree.selected)==true?false:true;
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
"insertRation": {
|
|
@@ -599,11 +635,14 @@ var projectObj = {
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
var selected = project.mainTree.selected;
|
|
|
- if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
- return false
|
|
|
- }else {
|
|
|
- return true
|
|
|
+ if(selected){
|
|
|
+ if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
+ return false
|
|
|
+ }else {
|
|
|
+ return true
|
|
|
+ }
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
},
|
|
|
"insertLJ": {
|
|
@@ -618,11 +657,14 @@ var projectObj = {
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
var selected = project.mainTree.selected;
|
|
|
- if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
- return false
|
|
|
- }else {
|
|
|
- return true
|
|
|
+ if(selected){
|
|
|
+ if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
+ return false
|
|
|
+ }else {
|
|
|
+ return true
|
|
|
+ }
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
},
|
|
|
"insertGLJ": {
|
|
@@ -646,11 +688,14 @@ var projectObj = {
|
|
|
},
|
|
|
visible: function(key, opt){
|
|
|
var selected = project.mainTree.selected;
|
|
|
- if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
- return false
|
|
|
- }else {
|
|
|
- return true
|
|
|
+ if(selected){
|
|
|
+ if(selected.sourceType == ModuleNames.bills&&selected.data.type == billType.DXFY){
|
|
|
+ return false;
|
|
|
+ }else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
},
|
|
|
"spr1": '--------',
|
|
@@ -662,21 +707,7 @@ var projectObj = {
|
|
|
return !selected;
|
|
|
},
|
|
|
callback: function () {
|
|
|
- var selected = controller.tree.selected, parent = selected.parent;
|
|
|
- if (selected) {
|
|
|
- if (selected.sourceType === project.Bills.getSourceType()) {
|
|
|
- if (cbTools.isUsedByFormula(selected)){
|
|
|
- alert('该清单行被其它公式结点引用,不允许删除!');
|
|
|
- return;
|
|
|
- };
|
|
|
- project.Bills.deleteBills(selected.source);
|
|
|
- controller.delete();
|
|
|
- } else if (selected.sourceType === project.Ration.getSourceType()) {
|
|
|
- project.Ration.delete(selected.source);
|
|
|
- controller.delete();
|
|
|
- };
|
|
|
- projectObj.converseCalculateBills(parent);
|
|
|
- }
|
|
|
+ $("#delete_row").modal({show:true});//弹出删除提示框;
|
|
|
}
|
|
|
},
|
|
|
"spr2":'--------',
|
|
@@ -1040,51 +1071,57 @@ $('#delete_row').on('shown.bs.modal', function (e) {
|
|
|
var showinfo = "确认要删除当前选中行吗?";
|
|
|
var showN = false;
|
|
|
var cancelText = "否";
|
|
|
- if(selected.sourceType == project.Bills.getSourceType()&&selected.data.type==billType.FB&&selected.children.length>0){
|
|
|
- showinfo = "是否删除其下的子项?";
|
|
|
- showN = true;
|
|
|
- cancelText = "取消";
|
|
|
+ if(selected.sourceType == project.Bills.getSourceType()&&selected.data.type==billType.FB&&selected.children.length>0){//选中的是分部,并且有子项
|
|
|
+ if(isSingleSelect()||selectionChecking()){
|
|
|
+ showinfo = "是否删除其下的子项?";
|
|
|
+ showN = true;
|
|
|
+ cancelText = "取消";
|
|
|
+ }
|
|
|
}
|
|
|
$('#delete_showinfo').text(showinfo);
|
|
|
showN==true? $('#deleteN').show():$('#deleteN').hide();
|
|
|
$('#deleteCancel').text(cancelText);
|
|
|
+
|
|
|
+ function selectionChecking() {
|
|
|
+ let selection = projectObj.mainSpread.getActiveSheet().getSelections()[0];
|
|
|
+ let mainTreeMap = {};
|
|
|
+ for(let i =0;i<selection.rowCount;i++){
|
|
|
+ let tem_node = controller.tree.items[selection.row+i];
|
|
|
+ if(i==0){//第一个直接添加;
|
|
|
+ mainTreeMap[tem_node.getID()] = tem_node;
|
|
|
+ }else {
|
|
|
+ project.Bills.setNodeToMap(tem_node,mainTreeMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let nodes = changeMapToArray(mainTreeMap);
|
|
|
+ if(nodes.length==1){
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
+function changeMapToArray(map) {
|
|
|
+ let newArray = [];
|
|
|
+ for(let key in map){
|
|
|
+ newArray.push(map[key]);
|
|
|
+ }
|
|
|
+ return newArray;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
$('#deleteY').click(function () { //正常删除,级联删除子项
|
|
|
- let controller = projectObj.mainController, project = projectObj.project;
|
|
|
- let selected = controller.tree.selected, parent = selected.parent;
|
|
|
- if (selected) {
|
|
|
- if (selected.sourceType === project.Bills.getSourceType()) {
|
|
|
- if (cbTools.isUsedByFormula(selected)){
|
|
|
- alert('该清单行被其它公式结点引用,不允许删除!');
|
|
|
- return;
|
|
|
- }
|
|
|
- project.Bills.deleteBills(selected.source);
|
|
|
- controller.delete();
|
|
|
- } else if (selected.sourceType === project.Ration.getSourceType()) {
|
|
|
- project.Ration.delete(selected.source);
|
|
|
- controller.delete();
|
|
|
- }else if(selected.sourceType==ModuleNames.ration_glj){
|
|
|
- project.ration_glj.updataOrdelete(selected.source);
|
|
|
- }
|
|
|
- if(parent){
|
|
|
- projectObj.converseCalculateBills(parent);
|
|
|
- }else { //删除的是大项费用要重新计算工程造价节点
|
|
|
- let roots = controller.tree.roots;
|
|
|
- for(let root of roots){
|
|
|
- if(project.Bills.isEngineeringCost(root)==true){
|
|
|
- project.calcProgram.calcAndSave(root);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ let project = projectObj.project;
|
|
|
+ if(isSingleSelect()){
|
|
|
+ project.Bills.deleteSelectedNode();
|
|
|
+ }else {
|
|
|
+ project.Bills.deleteSelectedNodes();
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
$('#deleteN').click(function () {//不删除子项
|
|
|
let controller = projectObj.mainController, project = projectObj.project;
|
|
|
let selected = controller.tree.selected, parent = selected.parent;
|
|
|
- let updateData = {};
|
|
|
if(selected){
|
|
|
let preNode = selected.preSibling;
|
|
|
let nextNode = selected.nextSibling;
|
|
@@ -1100,13 +1137,13 @@ $('#deleteN').click(function () {//不删除子项
|
|
|
}
|
|
|
}
|
|
|
project.Bills.singleDeleteBills(selected,controller);
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
});
|
|
|
+
|
|
|
+function isSingleSelect() {//是否选中造价书中的单行
|
|
|
+ let selections = projectObj.mainSpread.getActiveSheet().getSelections();
|
|
|
+ if (selections[0].rowCount == 1) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|