|
@@ -458,6 +458,8 @@ const projTreeObj = {
|
|
|
}
|
|
|
canCopy == true?$("#copy-to-confirm").removeClass("disabled"):$("#copy-to-confirm").addClass("disabled");
|
|
|
return;//如果是复制到表,不用做后面的操作
|
|
|
+ }else if(sheet.name() == "replaceSheet"){//如果是替换文件,不用做后面的操作
|
|
|
+ return;
|
|
|
}
|
|
|
me.tree.selected = node;
|
|
|
shareSeleted = node;
|
|
@@ -502,6 +504,11 @@ const projTreeObj = {
|
|
|
$("#mr_from").val(projTreeObj.setting.header[args.col].dataCode);
|
|
|
$("#project_name").text(projTreeObj.tree.selected.data.name);
|
|
|
$('#m_replace_file').modal('show');
|
|
|
+ }else if(args.sheet.name() == "replaceSheet"){
|
|
|
+ let cellType = args.sheet.getCellType(args.row, args.col);
|
|
|
+ if(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox){
|
|
|
+ projTreeObj.onReplaceNodeCheck(sender,args);
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
onDragDropBlock : function (sender,args) {//拖动移动项目位置
|
|
@@ -978,7 +985,7 @@ const projTreeObj = {
|
|
|
for(let j = 0; j < headers.length; j++){
|
|
|
sheet.getRange(-1, j, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[headers[j]['hAlign']]);
|
|
|
sheet.getRange(-1, j, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[headers[j]['vAlign']]);
|
|
|
- if(headers[j].cellType == "checkBox"){
|
|
|
+ if(headers[j].cellType == "checkBox" && nodes[i].data.canSelect === true){
|
|
|
sheet.setCellType(i, j,new GC.Spread.Sheets.CellTypes.CheckBox(),GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.getCell(i, j).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
|
|
|
}
|
|
@@ -1084,7 +1091,6 @@ const projTreeObj = {
|
|
|
let data ={"project_id":node.data.ID,"rootProjectID":node.data.property.rootProjectID};
|
|
|
let result = await ajaxPost("/glj/get-project-info",data);
|
|
|
this.getFileListWithPath(result.other);
|
|
|
- console.log(result);
|
|
|
//数据结构不一样,这里做一下转换
|
|
|
let t_result = {
|
|
|
currentProject:{
|
|
@@ -1094,12 +1100,8 @@ const projTreeObj = {
|
|
|
others:result.other
|
|
|
}
|
|
|
return t_result;
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
|
|
|
-
|
|
|
-
|
|
|
getFileListWithPath:function (list) {
|
|
|
for(let n of list){
|
|
|
let node = projTreeObj.tree.findNode(n.ID);
|
|
@@ -1172,15 +1174,73 @@ const projTreeObj = {
|
|
|
sheet.options.isProtected = true;
|
|
|
sheet.name('replaceSheet');
|
|
|
let datas = [];
|
|
|
- for(let i of me.tree.items){
|
|
|
- datas.push(i.data);
|
|
|
+ for(let i of me.tree.items){//要挑出同个建设项目的节点
|
|
|
+ if(me.isReplaceNode(i) == true){
|
|
|
+ let tem = _.cloneDeep(i.data);
|
|
|
+ if(tem.projType == "Tender") tem.canSelect = true;
|
|
|
+ if(i == me.tree.selected) tem.selected = 1;
|
|
|
+ datas.push(tem);
|
|
|
+ }
|
|
|
}
|
|
|
me.replaceTree = pmTree.createNew(projTreeObj.setting, datas);
|
|
|
me.showTreeData(me.replaceTree.items, me.replaceSetting, sheet);
|
|
|
-
|
|
|
},
|
|
|
+ isReplaceNode:function (node) {//只加载本建设项目的节点
|
|
|
+ let isReplaceNode = false;
|
|
|
+ let selected = this.tree.selected;
|
|
|
+ let rootProjectID = selected.data.property.rootProjectID;
|
|
|
+ let rootNode = this.tree.findNode(rootProjectID)
|
|
|
+ if(rootNode){
|
|
|
+ let IDMap = this.getAllParentNodeID(selected);
|
|
|
+ isReplaceNode = IDMap[node.data.ID]!==undefined ||node.data.ID == rootProjectID || node.data.ParentID == rootProjectID || (node.data.property &&node.data.property.rootProjectID == rootProjectID);
|
|
|
+ }
|
|
|
+ return isReplaceNode
|
|
|
+ },
|
|
|
+ getAllParentNodeID:function (node) {
|
|
|
+ let IDMap = {};
|
|
|
+ getPID(node,IDMap);
|
|
|
+ return IDMap;
|
|
|
+ function getPID(node,map) {
|
|
|
+ if(node.parent && node.data.ParentID != -1){
|
|
|
+ map[node.data.ParentID] = true;
|
|
|
+ getPID(node.parent,map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onReplaceNodeCheck:function(sender,args){
|
|
|
+ let checkboxValue = args.sheet.getCell(args.row, args.col).value();
|
|
|
+ let newval = checkboxValue?0:1;
|
|
|
+ let node = projTreeObj.replaceTree.items[args.row];
|
|
|
+ if(node.data.ID === projTreeObj.tree.selected.data.ID) return; //如果是项目管理界面选中的节点,不给取消
|
|
|
+ projTreeObj.setReplaceSelection(node,newval,args.row,args.col,args.sheet);
|
|
|
+ },
|
|
|
+ setReplaceSelection:function (node,value,row,col,sheet) {
|
|
|
+ sheet.getCell(row, col).value(value);
|
|
|
+ node.data.selected = value;
|
|
|
+ },
|
|
|
+ selectSameTypeProject:function (value) {
|
|
|
+ let node = this.tree.selected;
|
|
|
+ let engineering_id = node.data.property.engineering_id;
|
|
|
+ for(let i=0 ;i< this.replaceTree.items.length ; i++){
|
|
|
+ let tnode = this.replaceTree.items[i];
|
|
|
+ if(tnode.data.ID == node.data.ID) continue;
|
|
|
+ if(tnode && tnode.data.property && tnode.data.property.engineering_id == engineering_id){
|
|
|
+ this.setReplaceSelection(tnode,value,i,1,this.replaceWorkBook.getActiveSheet());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ confirmFileChange : function(){
|
|
|
+ let selectProjects =[];
|
|
|
+ for(let i of this.replaceTree.items){
|
|
|
+ if(i.data.selected === 1) selectProjects.push(i)
|
|
|
+ }
|
|
|
+ console.log(selectProjects);
|
|
|
+ if(selectProjects.length > 0){
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+ },
|
|
|
insert: function (data, parent, next) {
|
|
|
let preNode = this.tree.items[this.preSelection.row];
|
|
|
let node = this.tree.addNodeData(data, parent, next);
|
|
@@ -1741,6 +1801,15 @@ $(document).ready(function() {
|
|
|
})
|
|
|
|
|
|
});
|
|
|
+ $('#selectSameTypeProject').click(function(){
|
|
|
+ let value = $(this).prop('checked') == true?1:0;
|
|
|
+ projTreeObj.selectSameTypeProject(value);
|
|
|
+ });
|
|
|
+
|
|
|
+ $('#changeFileConfirm').click(function(){
|
|
|
+ projTreeObj.confirmFileChange();
|
|
|
+ });
|
|
|
+
|
|
|
function changeEngineering(){
|
|
|
$('#engineering-info').hide();
|
|
|
initFeeStandardSel();
|