|  | @@ -8,7 +8,7 @@ let labourCoeView = {
 | 
	
		
			
				|  |  |      sheet: null,
 | 
	
		
			
				|  |  |      needUpdateDatas: [],
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    init(){
 | 
	
		
			
				|  |  | +    buildSelect(){
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          function getStdLabourCoeFilesHtml(stdLabourCoeLibs) {
 | 
	
	
		
			
				|  | @@ -26,7 +26,6 @@ let labourCoeView = {
 | 
	
		
			
				|  |  |          let stdLCHtml = getStdLabourCoeFilesHtml(projectInfoObj.projectInfo.engineeringInfo.artificial_lib);
 | 
	
		
			
				|  |  |          $("#std_labour_coe_files").html(stdLCHtml);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      buildSheet: function (){
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          if (me.spread) {
 | 
	
	
		
			
				|  | @@ -51,48 +50,7 @@ let labourCoeView = {
 | 
	
		
			
				|  |  |          sheet.resumeEvent();
 | 
	
		
			
				|  |  |          sheet.resumePaint();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    onCellChanged: function(sender, args){
 | 
	
		
			
				|  |  | -        var me = labourCoeView;
 | 
	
		
			
				|  |  | -        if (args.propertyName !== "value"){return;};
 | 
	
		
			
				|  |  | -        let cell = me.sheet.getCell(args.row, args.col);
 | 
	
		
			
				|  |  | -        let value = args.newValue;
 | 
	
		
			
				|  |  | -        let oValue = args.oldValue;
 | 
	
		
			
				|  |  | -        if (number_util.isNumber(value)) {
 | 
	
		
			
				|  |  | -            value = value.toDecimal(2);
 | 
	
		
			
				|  |  | -            me.sheet.suspendEvent();
 | 
	
		
			
				|  |  | -            cell.value(value);
 | 
	
		
			
				|  |  | -            me.sheet.resumeEvent();
 | 
	
		
			
				|  |  | -            me.addNeedUpdateData({ID: cell.tag(), coe: value});
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            me.sheet.suspendEvent();
 | 
	
		
			
				|  |  | -            cell.value(oValue);  // 屏蔽事件,否则这句会导致死循环
 | 
	
		
			
				|  |  | -            me.sheet.resumeEvent();
 | 
	
		
			
				|  |  | -            alert('当前输入的数据类型不正确,请重新输入。');
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    addNeedUpdateData: function (data) {
 | 
	
		
			
				|  |  | -        let me = this;
 | 
	
		
			
				|  |  | -        let isExist = false;
 | 
	
		
			
				|  |  | -        for (let el of me.needUpdateDatas){
 | 
	
		
			
				|  |  | -             if (el.ID == data.ID){
 | 
	
		
			
				|  |  | -                 isExist = true;
 | 
	
		
			
				|  |  | -                 el.coe = data.coe;
 | 
	
		
			
				|  |  | -                 return;
 | 
	
		
			
				|  |  | -             };
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        if (!isExist){
 | 
	
		
			
				|  |  | -            me.needUpdateDatas.push(data);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    needSave: function (){
 | 
	
		
			
				|  |  | -        let me = this;
 | 
	
		
			
				|  |  | -        return me.needUpdateDatas.length > 0;
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    loadData(datas){          // 树结构转换二维表显示,行列转换
 | 
	
		
			
				|  |  | +    loadCrossData(datas){          // 交叉表:树结构转换二维表显示,行列转换
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          me.spread.suspendEvent();
 | 
	
		
			
				|  |  |          me.datas = datas;
 | 
	
	
		
			
				|  | @@ -135,40 +93,92 @@ let labourCoeView = {
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          me.spread.resumeEvent();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      showData(){
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          let datas = projectObj.project.labourCoe.datas !== null ? projectObj.project.labourCoe.datas.coes : [];
 | 
	
		
			
				|  |  | -        me.init();
 | 
	
		
			
				|  |  | +        me.buildSelect();
 | 
	
		
			
				|  |  |          me.buildSheet();
 | 
	
		
			
				|  |  | -        me.loadData(datas);
 | 
	
		
			
				|  |  | +        me.loadCrossData(datas);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    addNeedUpdateData: function (data) {
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        let isExist = false;
 | 
	
		
			
				|  |  | +        for (let el of me.needUpdateDatas){
 | 
	
		
			
				|  |  | +             if (el.ID == data.ID){
 | 
	
		
			
				|  |  | +                 isExist = true;
 | 
	
		
			
				|  |  | +                 el.coe = data.coe;
 | 
	
		
			
				|  |  | +                 return;
 | 
	
		
			
				|  |  | +             };
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        if (!isExist){
 | 
	
		
			
				|  |  | +            me.needUpdateDatas.push(data);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    needSave: function (){
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        return me.needUpdateDatas.length > 0;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    clearSave: function(){
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        me.needUpdateDatas.splice(0, me.needUpdateDatas.length);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      refresh(){
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          me.needUpdateDatas.splice(0, me.needUpdateDatas.length);
 | 
	
		
			
				|  |  |          $("#std_labour_coe_files").val('');
 | 
	
		
			
				|  |  |          calcProgramManage.buildSheet();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onCellChanged: function(sender, args){
 | 
	
		
			
				|  |  | +        var me = labourCoeView;
 | 
	
		
			
				|  |  | +        if (args.propertyName !== "value"){return;};
 | 
	
		
			
				|  |  | +        let cell = me.sheet.getCell(args.row, args.col);
 | 
	
		
			
				|  |  | +        let value = args.newValue;
 | 
	
		
			
				|  |  | +        let oValue = args.oldValue;
 | 
	
		
			
				|  |  | +        if (number_util.isNumber(value)) {
 | 
	
		
			
				|  |  | +            value = value.toDecimal(2);
 | 
	
		
			
				|  |  | +            me.sheet.suspendEvent();
 | 
	
		
			
				|  |  | +            cell.value(value);
 | 
	
		
			
				|  |  | +            me.sheet.resumeEvent();
 | 
	
		
			
				|  |  | +            me.addNeedUpdateData({ID: cell.tag(), coe: value});
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            me.sheet.suspendEvent();
 | 
	
		
			
				|  |  | +            cell.value(oValue);  // 屏蔽事件,否则这句会导致死循环
 | 
	
		
			
				|  |  | +            me.sheet.resumeEvent();
 | 
	
		
			
				|  |  | +            alert('当前输入的数据类型不正确,请重新输入。');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  $(document).ready(function(){
 | 
	
		
			
				|  |  | -    $("#tab_poj-settings-6").on('shown.bs.tab', function (e) {
 | 
	
		
			
				|  |  | +    $('#poj-set').on('shown.bs.modal', function (e) {
 | 
	
		
			
				|  |  |          labourCoeView.showData();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    $('#poj-set').on('hidden.bs.modal', function (e) {
 | 
	
		
			
				|  |  | +        if(labourCoeView.spread){
 | 
	
		
			
				|  |  | +            labourCoeView.spread.destroy();
 | 
	
		
			
				|  |  | +            labourCoeView.spread = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        labourCoeView.datas = [];
 | 
	
		
			
				|  |  | +        labourCoeView.clearSave();
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    $("#tab_poj-settings-6").on('shown.bs.tab', function (e) {
 | 
	
		
			
				|  |  | +        labourCoeView.spread.refresh();
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      $("#std_labour_coe_files").change(function() {
 | 
	
		
			
				|  |  |          // 取标准库数据过来显示。
 | 
	
		
			
				|  |  |          let libID = $(this).val();
 | 
	
		
			
				|  |  |          if (libID == ''){
 | 
	
		
			
				|  |  | -            labourCoeView.loadData([]);
 | 
	
		
			
				|  |  | +            labourCoeView.loadCrossData([]);
 | 
	
		
			
				|  |  |              return false;
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          CommonAjax.post('/labourCoe/getStdLabourCoe', {"ID": libID}, function (data) {
 | 
	
		
			
				|  |  |              labourCoeView.buildSheet();
 | 
	
		
			
				|  |  | -            labourCoeView.loadData(data.coes);
 | 
	
		
			
				|  |  | -            labourCoeView.needUpdateDatas.splice(0, labourCoeView.needUpdateDatas.length);
 | 
	
		
			
				|  |  | +            labourCoeView.loadCrossData(data.coes);
 | 
	
		
			
				|  |  | +            labourCoeView.clearSave();
 | 
	
		
			
				|  |  |              labourCoeView.needUpdateDatas.push(...data.coes);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      });
 |