|
@@ -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);
|