|  | @@ -13,7 +13,6 @@ let feeRateData = [];
 | 
	
		
			
				|  |  |  let isSaving = false;
 | 
	
		
			
				|  |  |  let projectProperty = [];
 | 
	
		
			
				|  |  |  let fileDelObj = null;
 | 
	
		
			
				|  |  | -let selectedInfo = {project: null, engineering: null};//新建单位工程,建设项目和单项工程下拉选择
 | 
	
		
			
				|  |  |  let projectType = {
 | 
	
		
			
				|  |  |      folder: 'Folder',
 | 
	
		
			
				|  |  |      tender: 'Tender',
 | 
	
	
		
			
				|  | @@ -358,10 +357,16 @@ $(document).ready(function() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 新增单位工程弹层改变
 | 
	
		
			
				|  |  |      $('#add-tender-dialog').on('show.bs.modal', function() {
 | 
	
		
			
				|  |  | +        //clear info
 | 
	
		
			
				|  |  | +        $('#poj-name-info').hide();
 | 
	
		
			
				|  |  | +        $('#eng-name-info').hide();
 | 
	
		
			
				|  |  | +        $('#tender-name-info').hide();
 | 
	
		
			
				|  |  | +        $('#tender-name').val('');
 | 
	
		
			
				|  |  |          //获取建设项目
 | 
	
		
			
				|  |  |          let selected = Tree.selected();
 | 
	
		
			
				|  |  |          let projs = getProjs(selected);
 | 
	
		
			
				|  |  |          setProjOptions(projs);
 | 
	
		
			
				|  |  | +       $($("input[name='valuation_type']")[0]).click();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 新增单位工程
 | 
	
	
		
			
				|  | @@ -949,24 +954,41 @@ function existName(name , nodes){
 | 
	
		
			
				|  |  |  function getProjs(selected){
 | 
	
		
			
				|  |  |      let rst = [];
 | 
	
		
			
				|  |  |      let temp;
 | 
	
		
			
				|  |  | +    let firstNode;
 | 
	
		
			
				|  |  |      if(!selected){
 | 
	
		
			
				|  |  |          temp = Tree._root.children;
 | 
	
		
			
				|  |  | +        firstNode = temp[0];
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else if(selected.data.projType === projectType.folder){
 | 
	
		
			
				|  |  |          temp = selected.children;
 | 
	
		
			
				|  |  | +        firstNode = temp[0];
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else if(selected.data.projType === projectType.project){
 | 
	
		
			
				|  |  |          temp = selected.parent.children;
 | 
	
		
			
				|  |  | +        firstNode = temp[0];
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else if(selected.data.projType === projectType.engineering || selected.data.projType === projectType.tender){
 | 
	
		
			
				|  |  |          let proj = selected.parent.data.projType === projectType.project ? selected.parent : selected.parent.parent;
 | 
	
		
			
				|  |  |          temp = proj.parent.children;
 | 
	
		
			
				|  |  | +        firstNode = proj;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      for(let i = 0, len = temp.length; i < len; i++){
 | 
	
		
			
				|  |  |          if(temp[i].data.projType === projectType.project){
 | 
	
		
			
				|  |  |              rst.push(temp[i]);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    //firstNode to first place
 | 
	
		
			
				|  |  | +    let index = null;
 | 
	
		
			
				|  |  | +    for(let i = 0, len = rst.length; i < len; i++){
 | 
	
		
			
				|  |  | +        if(rst[i].data.ID === firstNode.data.ID){
 | 
	
		
			
				|  |  | +            index = i;
 | 
	
		
			
				|  |  | +            break;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if(index){
 | 
	
		
			
				|  |  | +        rst.splice(index, 1);
 | 
	
		
			
				|  |  | +        rst.splice(0, 0, firstNode);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      return rst;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -981,6 +1003,7 @@ function setFileOptions(projID){
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  |          getUnitFile(projID, function (response) {
 | 
	
		
			
				|  |  | +            $("#unit-price").children("option:not(':first')").remove();
 | 
	
		
			
				|  |  |              if (response.data.length <= 0) {
 | 
	
		
			
				|  |  |                  return false;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -988,17 +1011,16 @@ function setFileOptions(projID){
 | 
	
		
			
				|  |  |              for(let tmp of response.data) {
 | 
	
		
			
				|  |  |                  unitFileHtml += '<option value="'+ tmp.id +'">'+ tmp.name +'</option>';
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            $("#unit-price").children("option:not(':first')").remove();
 | 
	
		
			
				|  |  |              $("#unit-price").children("option").first().after(unitFileHtml);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          // 获取费率文件数据
 | 
	
		
			
				|  |  |          getFeeRateFile(projID, function (response) {
 | 
	
		
			
				|  |  | -            if (response.data.length <= 0) {
 | 
	
		
			
				|  |  | -                return false;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  |              let first = $("#tender-fee-rate").children("option").first();
 | 
	
		
			
				|  |  |              $("#tender-fee-rate").empty();
 | 
	
		
			
				|  |  |              $("#tender-fee-rate").append(first);
 | 
	
		
			
				|  |  | +            if (response.data.length <= 0) {
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              for(let tmp of response.data) {
 | 
	
		
			
				|  |  |                  let option =  $("<option>").val(tmp.ID).text(tmp.name);
 | 
	
		
			
				|  |  |                  $("#tender-fee-rate").append(option);
 | 
	
	
		
			
				|  | @@ -1011,12 +1033,8 @@ function setFileOptions(projID){
 | 
	
		
			
				|  |  |  function setProjOptions(projs){
 | 
	
		
			
				|  |  |      $("#poj-name-list").empty();
 | 
	
		
			
				|  |  |      $("#poj-name").val("");
 | 
	
		
			
				|  |  | -    selectedInfo.project = null;
 | 
	
		
			
				|  |  |      if(projs.length > 0){
 | 
	
		
			
				|  |  |          $("#poj-name").val(projs[0].data.name);
 | 
	
		
			
				|  |  | -        selectedInfo.project = Object.create(null);
 | 
	
		
			
				|  |  | -        selectedInfo.project.ID = projs[0].data.ID;
 | 
	
		
			
				|  |  | -        selectedInfo.project.name = projs[0].data.name;
 | 
	
		
			
				|  |  |          setFileOptions(projs[0].data.ID);
 | 
	
		
			
				|  |  |          setEngOptions(projs[0].data.ID);
 | 
	
		
			
				|  |  |          for(let i = 0, len = projs.length; i < len; i++){
 | 
	
	
		
			
				|  | @@ -1024,8 +1042,6 @@ function setProjOptions(projs){
 | 
	
		
			
				|  |  |              proj.addClass("dropdown-item");
 | 
	
		
			
				|  |  |              proj.attr("type", "button");
 | 
	
		
			
				|  |  |              proj.click(function () {
 | 
	
		
			
				|  |  | -                selectedInfo.project.ID = projs[i].data.ID;
 | 
	
		
			
				|  |  | -                selectedInfo.project.name = projs[i].data.name;
 | 
	
		
			
				|  |  |                  $("#poj-name").val(projs[i].data.name);
 | 
	
		
			
				|  |  |                  setFileOptions(projs[i].data.ID);
 | 
	
		
			
				|  |  |                  setEngOptions(projs[i].data.ID);
 | 
	
	
		
			
				|  | @@ -1043,21 +1059,33 @@ function setEngOptions(projID){
 | 
	
		
			
				|  |  |      let proj = Tree.findNode(projID) || null;
 | 
	
		
			
				|  |  |      $("#eng-name-list").empty();
 | 
	
		
			
				|  |  |      $("#eng-name").val("");
 | 
	
		
			
				|  |  | -    selectedInfo.engineering = null;
 | 
	
		
			
				|  |  |      if(proj){
 | 
	
		
			
				|  |  |          let engineerings = proj.children;
 | 
	
		
			
				|  |  | +        //set selected engineering to first place
 | 
	
		
			
				|  |  | +        let selected = Tree.selected();
 | 
	
		
			
				|  |  | +        let firstNode = null;
 | 
	
		
			
				|  |  | +        if(selected && (selected.data.projType === projectType.engineering || selected.data.projType === projectType.tender)){
 | 
	
		
			
				|  |  | +            firstNode = selected.data.projType === projectType.engineering ? selected : selected.parent;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(firstNode){
 | 
	
		
			
				|  |  | +            let index = null;
 | 
	
		
			
				|  |  | +            for(let i = 0, len = engineerings.length; i < len; i++){
 | 
	
		
			
				|  |  | +                if(firstNode.data.ID === engineerings[i].data.ID){
 | 
	
		
			
				|  |  | +                    index = i;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(index){
 | 
	
		
			
				|  |  | +                engineerings.splice(index, 1);
 | 
	
		
			
				|  |  | +                engineerings.splice(0, 0, firstNode);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if(engineerings.length > 0){
 | 
	
		
			
				|  |  |              $("#eng-name").val(engineerings[0].data.name);
 | 
	
		
			
				|  |  | -            selectedInfo.engineering = Object.create(null);
 | 
	
		
			
				|  |  | -            selectedInfo.engineering.ID = engineerings[0].data.ID;
 | 
	
		
			
				|  |  | -            selectedInfo.engineering.name = engineerings[0].data.name;
 | 
	
		
			
				|  |  |              for(let i = 0, len = engineerings.length; i < len; i++){
 | 
	
		
			
				|  |  |                  let eng = $("<button>").val(engineerings[i].data.ID).text(engineerings[i].data.name);
 | 
	
		
			
				|  |  |                  eng.addClass("dropdown-item");
 | 
	
		
			
				|  |  |                  eng.attr("type", "button");
 | 
	
		
			
				|  |  |                  eng.click(function () {
 | 
	
		
			
				|  |  | -                    selectedInfo.engineering.ID = engineerings[i].data.ID;
 | 
	
		
			
				|  |  | -                    selectedInfo.engineering.name = engineerings[i].data.name;
 | 
	
		
			
				|  |  |                      $("#eng-name").val(engineerings[i].data.name);
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |                  $("#eng-name-list").append(eng);
 |