|  | @@ -3,6 +3,8 @@
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  //工作内容
 | 
	
		
			
				|  |  |  let jobContentOprObj = {
 | 
	
		
			
				|  |  | +    workBook: null,
 | 
	
		
			
				|  |  | +    container: $('#editJobCodeSpread'),
 | 
	
		
			
				|  |  |      situations: {ALL: 'ALL', PARTIAL: 'PARTIAL', NONE: 'NONE'},//所有ALL(包括未定义本项工作内容)、部分PARTIA,不可用NONE(无定额时)
 | 
	
		
			
				|  |  |      currentSituation: null,//本项适用情况
 | 
	
		
			
				|  |  |      currentTreeNode: null,
 | 
	
	
		
			
				|  | @@ -20,6 +22,60 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |          me.preTreeNode = preNode;
 | 
	
		
			
				|  |  |          me.currentTreeNode = currentNode;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    setting: {
 | 
	
		
			
				|  |  | +        header:[
 | 
	
		
			
				|  |  | +            {headerName:"编码",headerWidth:240,dataCode:"code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
 | 
	
		
			
				|  |  | +            {headerName:"选择",headerWidth:40,dataCode:"select", hAlign: "center", vAlign: "center"},
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    buildSheet: function () {
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        me.workBook = sheetCommonObj.buildSheet(me.container[0], me.setting, 30);
 | 
	
		
			
				|  |  | +        me.workBook.refresh();
 | 
	
		
			
				|  |  | +        me.workBook.bind(GC.Spread.Sheets.Events.ButtonClicked, me.onButtonClick);
 | 
	
		
			
				|  |  | +        let sheet = me.workBook.getSheet(0);
 | 
	
		
			
				|  |  | +        sheet.options.isProtected = true;
 | 
	
		
			
				|  |  | +        sheet.getRange(-1, 0, -1, 1).locked(true);
 | 
	
		
			
				|  |  | +        sheet.getRange(-1, 1, -1, 1).locked(false);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    renderSheet: function (func) {
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        let sheet = me.workBook.getSheet(0);
 | 
	
		
			
				|  |  | +        sheet.suspendPaint();
 | 
	
		
			
				|  |  | +        sheet.suspendEvent();
 | 
	
		
			
				|  |  | +        if (func) {
 | 
	
		
			
				|  |  | +            func();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        sheet.resumePaint();
 | 
	
		
			
				|  |  | +        sheet.resumeEvent();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onButtonClick: function (sender, args) {
 | 
	
		
			
				|  |  | +        if (args.sheet.isEditing()) {
 | 
	
		
			
				|  |  | +            args.sheet.endEdit();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    showData: function (datas) {
 | 
	
		
			
				|  |  | +        let me = this,
 | 
	
		
			
				|  |  | +            sheet = me.workBook.getSheet(0),
 | 
	
		
			
				|  |  | +            headers = me.setting.header;
 | 
	
		
			
				|  |  | +        let fuc = function () {
 | 
	
		
			
				|  |  | +            sheet.setRowCount(datas.length);
 | 
	
		
			
				|  |  | +            //复选框
 | 
	
		
			
				|  |  | +            let checkBoxType = new GC.Spread.Sheets.CellTypes.CheckBox();
 | 
	
		
			
				|  |  | +            sheet.setCellType(-1, 1, checkBoxType);
 | 
	
		
			
				|  |  | +            for(let col = 0, cLen = headers.length; col < cLen; col++){
 | 
	
		
			
				|  |  | +                if(headers[col].formatter){
 | 
	
		
			
				|  |  | +                    sheet.setFormatter(-1, col, headers[col].formatter);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                sheet.getRange(-1, col, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[headers[col]['hAlign']]);
 | 
	
		
			
				|  |  | +                sheet.getRange(-1, col, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[headers[col]['vAlign']]);
 | 
	
		
			
				|  |  | +                for(let row = 0, rLen = datas.length; row < rLen; row++){
 | 
	
		
			
				|  |  | +                    sheet.setValue(row, col, datas[row][headers[col]['dataCode']]);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        me.renderSheet(fuc);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      clickUpdate: function (txtarea) {//解决编辑完后在未失去焦点的时候直接定额章节树
 | 
	
		
			
				|  |  |          let me = jobContentOprObj;
 | 
	
		
			
				|  |  |          if(txtarea.is(':focus')){
 | 
	
	
		
			
				|  | @@ -129,9 +185,17 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |          let txtarea = $(obj.parent().parent().children().children()[1]);
 | 
	
		
			
				|  |  |          let jobContent = txtarea.val();
 | 
	
		
			
				|  |  |          if(jobContent.trim().length > 0){//工作内容不为空才可添加编码
 | 
	
		
			
				|  |  | -            let codesObj = me.getAddCodes(me.currentRationItems);
 | 
	
		
			
				|  |  | -            me.buildCheckCodesCon(me.addCon, codesObj.checkedCodes, codesObj.disabledCodes)
 | 
	
		
			
				|  |  | -            obj.attr('data-target', '#editBianma');
 | 
	
		
			
				|  |  | +           /* let codesObj = me.getAddCodes(me.currentRationItems);
 | 
	
		
			
				|  |  | +            me.buildCheckCodesCon(me.addCon, codesObj.checkedCodes, codesObj.disabledCodes)*/
 | 
	
		
			
				|  |  | +            obj.attr('data-target', '#editBianmaQ');
 | 
	
		
			
				|  |  | +            if (!me.workBook) {
 | 
	
		
			
				|  |  | +                setTimeout(function () {
 | 
	
		
			
				|  |  | +                    me.buildSheet();
 | 
	
		
			
				|  |  | +                    me.showData(me.getShowDatas(me.currentRationItems, []));
 | 
	
		
			
				|  |  | +                }, 200);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                me.showData(me.getShowDatas(me.currentRationItems, []));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          else{
 | 
	
		
			
				|  |  |              obj.attr('data-target', '');
 | 
	
	
		
			
				|  | @@ -140,7 +204,30 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      onclickFuncEdit: function (obj) {
 | 
	
		
			
				|  |  |          let me = jobContentOprObj;
 | 
	
		
			
				|  |  | -        me.buildEditableCodesCon(me.currentRationItems, me.updateCon, me.getUpdateCodes(obj));
 | 
	
		
			
				|  |  | +        //me.buildEditableCodesCon(me.currentRationItems, me.updateCon, me.getUpdateCodes(obj));
 | 
	
		
			
				|  |  | +        if (!me.workBook) {
 | 
	
		
			
				|  |  | +            setTimeout(function () {
 | 
	
		
			
				|  |  | +                me.buildSheet();
 | 
	
		
			
				|  |  | +                me.showData(me.getShowDatas(me.currentRationItems, me.getUpdateCodes(obj)));
 | 
	
		
			
				|  |  | +            }, 200);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            me.showData(me.getShowDatas(me.currentRationItems, me.getUpdateCodes(obj)));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //获取弹出选择编码的数据
 | 
	
		
			
				|  |  | +    getShowDatas: function (rationItems, codes) {
 | 
	
		
			
				|  |  | +        let rst = [];
 | 
	
		
			
				|  |  | +        for(let i = 0, len = codes.length; i < len; i++){
 | 
	
		
			
				|  |  | +            rst.push({code: codes[i], select: true});
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        for(let i = 0, len = rationItems.length; i < len; i++){
 | 
	
		
			
				|  |  | +            if(!codes.includes(rationItems[i].code)){
 | 
	
		
			
				|  |  | +                if (typeof rationItems[i].jobContent === 'undefined' || rationItems[i].jobContent.toString().trim().length <= 0) {
 | 
	
		
			
				|  |  | +                    rst.push({code: rationItems[i].code, select: false});
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //获取编码td中的编码
 | 
	
		
			
				|  |  |      getUpdateCodes: function (jq) {
 | 
	
	
		
			
				|  | @@ -216,7 +303,7 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //获取选择后的编码窗口的编码及状态
 | 
	
		
			
				|  |  | -    getCodesAfterS: function (checkNodes) {
 | 
	
		
			
				|  |  | +    /*getCodesAfterS: function (checkNodes) {
 | 
	
		
			
				|  |  |          let rst = {checked: [], unchecked: []};
 | 
	
		
			
				|  |  |          for(let i = 0, len = checkNodes.length; i < len; i++){
 | 
	
		
			
				|  |  |              if(checkNodes[i].checked){
 | 
	
	
		
			
				|  | @@ -227,6 +314,20 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  | +    },*/
 | 
	
		
			
				|  |  | +    getCodesAfterS: function () {
 | 
	
		
			
				|  |  | +        let rst = {checked: [], unchecked: []};
 | 
	
		
			
				|  |  | +        let sheet = this.workBook.getSheet(0);
 | 
	
		
			
				|  |  | +        for(let i = 0; i < sheet.getRowCount(); i++){
 | 
	
		
			
				|  |  | +            let code = sheet.getValue(i, 0),
 | 
	
		
			
				|  |  | +                checked = sheet.getValue(i, 1);
 | 
	
		
			
				|  |  | +            if (checked) {
 | 
	
		
			
				|  |  | +                rst.checked.push(code);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                rst.unchecked.push(code);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      setRadiosChecked: function (situation, radios) {
 | 
	
		
			
				|  |  |          let me = jobContentOprObj;
 | 
	
	
		
			
				|  | @@ -361,7 +462,7 @@ let jobContentOprObj = {
 | 
	
		
			
				|  |  |      bindUpdateConBtn: function () {
 | 
	
		
			
				|  |  |          let me = jobContentOprObj;
 | 
	
		
			
				|  |  |          return function () {
 | 
	
		
			
				|  |  | -            let codesObj = me.getCodesAfterS(me.updateCon.children().children().children());
 | 
	
		
			
				|  |  | +            let codesObj = me.getCodesAfterS();
 | 
	
		
			
				|  |  |              let updateC = me.getUpdateArr(codesObj.checked, me.currentJobContent),
 | 
	
		
			
				|  |  |                  updateUnC = me.getUpdateArr(codesObj.unchecked, ''),
 | 
	
		
			
				|  |  |                  updateArr = updateC.concat(updateUnC);
 |