|
@@ -17,7 +17,8 @@ var rationGLJOprObj = {
|
|
|
{headerName:"单位",headerWidth:60,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"},
|
|
|
{headerName:"定额价",headerWidth:80, dataCode:"basePrice", dataType: "Number", formatter:"0.00", precision: 2},
|
|
|
{headerName:"定额消耗",headerWidth:80, dataCode:"consumeAmt", dataType: "Number", formatter: "0.000", precision: 3},
|
|
|
- {headerName:"类型",headerWidth:70,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"}
|
|
|
+ {headerName:"类型",headerWidth:70,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"},
|
|
|
+ {headerName:"配合比",headerWidth:70,dataCode:"proportion", dataType: "Number", formatter:"0.00", precision: 2}
|
|
|
],
|
|
|
view:{
|
|
|
comboBox:[],
|
|
@@ -25,7 +26,6 @@ var rationGLJOprObj = {
|
|
|
}
|
|
|
},
|
|
|
getDistTypeTree: function (gljDistType) {
|
|
|
- let me = this;
|
|
|
let distType;
|
|
|
let distTypeTree = {
|
|
|
prefix : 'gljDistType',
|
|
@@ -61,66 +61,41 @@ var rationGLJOprObj = {
|
|
|
});
|
|
|
return distTypeTree;
|
|
|
},
|
|
|
- getGljDistType: function (callback) {
|
|
|
- let me = this;
|
|
|
- $.ajax({
|
|
|
- type: 'post',
|
|
|
- url: "api/getGljDistType",
|
|
|
- dataType: 'json',
|
|
|
- success: function (result) {
|
|
|
- if(!result.error && callback){
|
|
|
- me.distTypeTree = me.getDistTypeTree(result.data);
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
+ initGljDistType: function (gljDistTypeList) {
|
|
|
+ this.distTypeTree = this.getDistTypeTree(gljDistTypeList);
|
|
|
+
|
|
|
},
|
|
|
buildSheet: function(sheet) {
|
|
|
- var me = this;
|
|
|
- me.sheet = sheet;
|
|
|
- me.getGljDistType(function () {
|
|
|
- sheetCommonObj.initSheet(me.sheet, me.setting, 30);
|
|
|
- me.onContextmenuOpr();
|
|
|
- me.bindRationGljDelOpr();
|
|
|
- me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
|
|
|
- me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
|
|
|
- me.sheet.bind(GC.Spread.Sheets.Events.EditStarting, me.onEditStarting);
|
|
|
- me.sheet.bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
|
|
|
- });
|
|
|
+ this.sheet = sheet;
|
|
|
+ sheetCommonObj.initSheet(this.sheet, this.setting, 30);
|
|
|
+ this.onContextmenuOpr();
|
|
|
+ this.bindRationGljDelOpr();
|
|
|
+ this.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, this.onClipboardPasting);
|
|
|
+ this.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, this.onClipboardPasted);
|
|
|
+ this.sheet.bind(GC.Spread.Sheets.Events.EditStarting, this.onEditStarting);
|
|
|
+ this.sheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onCellEditEnd);
|
|
|
},
|
|
|
bindRationGljDelOpr: function () {
|
|
|
- let me = rationGLJOprObj, spreadBook = me.sheet.getParent();
|
|
|
+ if (locked) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const me = rationGLJOprObj;
|
|
|
+ const spreadBook = me.sheet.getParent();
|
|
|
spreadBook.commandManager().register('rationGljDelete', function () {
|
|
|
- let sels = me.sheet.getSelections(), lockCols = me.setting.view.lockColumns;
|
|
|
- let cacheSection = me.cache["_GLJ_" + me.currentRationItem.ID], isUpdate = false;
|
|
|
- if(sels.length > 0){
|
|
|
- for(let sel = 0; sel < sels.length; sel++){
|
|
|
- if(sels[sel].colCount === me.setting.header.length){
|
|
|
- if(cacheSection && sels[sel].row < cacheSection.length){
|
|
|
- isUpdate = true;
|
|
|
- cacheSection.splice(sels[sel].row, sels[sel].rowCount);
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
- if(sels[sel].col !== 0 && sels[sel].col !== 5 && !(sels[sel].col === 1 && sels.col + sels[sel].colCount -1 === 3)){
|
|
|
- if(cacheSection){
|
|
|
- for(let i = sels[sel].row === -1 ? 1 : 0; i < sels[sel].rowCount; i++){
|
|
|
- if(sels[sel].row + i < cacheSection.length){
|
|
|
- for(let col = sels[sel].col; col <= sels[sel].col + sels[sel].colCount - 1; col++){
|
|
|
- if(lockCols.indexOf(col) === -1){
|
|
|
- isUpdate = true;
|
|
|
- cacheSection[sels[sel].row + i][me.setting.header[col].dataCode] = 0;
|
|
|
- me.sheet.setValue(sels[sel].row + i, col, 0.00);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ const cacheSection = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
+ const sels = me.sheet.getSelections();
|
|
|
+ if (!cacheSection || !sels.length) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let isUpdate = false;
|
|
|
+ for (const sel of sels) {
|
|
|
+ const deleteRow = sel.colCount === me.setting.header.length && sel.row < cacheSection.length;
|
|
|
+ if (deleteRow) {
|
|
|
+ isUpdate = true;
|
|
|
+ cacheSection.splice(sel.row, sel.rowCount);
|
|
|
}
|
|
|
}
|
|
|
- if(isUpdate){
|
|
|
+ if (isUpdate) {
|
|
|
me.updateRationItem(function () {
|
|
|
me.sheet.getParent().focus(true);
|
|
|
});
|
|
@@ -132,155 +107,123 @@ var rationGLJOprObj = {
|
|
|
spreadBook.commandManager().setShortcutKey('rationGljDelete', GC.Spread.Commands.Key.del, false, false, false, false);
|
|
|
},
|
|
|
onClipboardPasting: function(sender, args) {
|
|
|
- var me = rationGLJOprObj;
|
|
|
- let rationSection = rationOprObj.getCache();
|
|
|
- let rationRow = rationOprObj.workBook.getSheet(0).getSelections()[0].row;
|
|
|
- me.currentRationItem = rationRow < rationSection.length ? rationSection[rationRow] : null;
|
|
|
+ const me = rationGLJOprObj;
|
|
|
+ const rationCache = rationOprObj.getCache();
|
|
|
+ const rationRow = rationOprObj.workBook.getSheet(0).getSelections()[0].row;
|
|
|
+ me.currentRationItem = rationRow < rationCache.length ? rationCache[rationRow] : null;
|
|
|
if(me.currentRationItem && typeof me.cache["_GLJ_" + me.currentRationItem.ID] === 'undefined'){
|
|
|
me.cache["_GLJ_" + me.currentRationItem.ID] = [];
|
|
|
}
|
|
|
- if (!(args.cellRange.col === 0 || args.cellRange.col === 5) || !(me.currentRationItem)) {
|
|
|
+ const field = me.setting.header[args.cellRange.col].dataCode;
|
|
|
+ const canPasteFields = ['code', 'consumeAmt', 'proportion'];
|
|
|
+ if (!me.currentRationItem || !(canPasteFields.includes(field) && args.cellRange.colCount === 1)) {
|
|
|
args.cancel = true;
|
|
|
}
|
|
|
},
|
|
|
onClipboardPasted: function(e, info) {
|
|
|
- var me = rationGLJOprObj, repId = pageOprObj.rationLibId;
|
|
|
+ const me = rationGLJOprObj;
|
|
|
me.tempCacheArr = [];
|
|
|
- if (repId) {
|
|
|
- let gljLibId = pageOprObj.gljLibId;
|
|
|
- if(gljLibId){
|
|
|
- if (info.cellRange.col == 0) {
|
|
|
- let cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
- var tmpCodes = sheetCommonObj.analyzePasteData({header:[{dataCode: "code"}] }, info);
|
|
|
- var codes = [];
|
|
|
- for (var i = 0; i < tmpCodes.length; i++) {
|
|
|
- let rowIdx = info.cellRange.row + i;
|
|
|
- if(rowIdx < cacheArr.length){//更新
|
|
|
- me.tempCacheArr.push({org: cacheArr[rowIdx], newCode: tmpCodes[i].code});
|
|
|
- cacheArr.splice(rowIdx--, 1);
|
|
|
- }
|
|
|
- codes.push(tmpCodes[i].code);
|
|
|
- }
|
|
|
- me.addGljItems(codes, gljLibId, info.cellRange);
|
|
|
- } else {
|
|
|
- //修改用量
|
|
|
- if(me.cache["_GLJ_" + me.currentRationItem.ID] && info.cellRange.row < me.cache["_GLJ_" + me.currentRationItem.ID].length){
|
|
|
- let tempConsumes = sheetCommonObj.analyzePasteData(me.setting, info);
|
|
|
- let maxCount = info.cellRange.row + info.cellRange.rowCount -1 > me.cache["_GLJ_" + me.currentRationItem.ID].length -1 ?
|
|
|
- me.cache["_GLJ_" + me.currentRationItem.ID].length - info.cellRange.row : info.cellRange.rowCount;
|
|
|
- for(let i = 0; i < maxCount; i++){
|
|
|
- let roundCons = scMathUtil.roundTo(tempConsumes[i].consumeAmt, -3);
|
|
|
- me.cache["_GLJ_" + me.currentRationItem.ID][info.cellRange.row + i].consumeAmt = roundCons;
|
|
|
- }
|
|
|
- me.updateRationItem(function () {
|
|
|
- me.sheet.getParent().focus(true);
|
|
|
- });
|
|
|
- if(info.cellRange.row + info.cellRange.rowCount -1 >= me.cache["_GLJ_" + me.currentRationItem.ID].length -1){
|
|
|
- me.sheet.suspendPaint();
|
|
|
- for(let rowIdx = me.cache["_GLJ_" + me.currentRationItem.ID].length; rowIdx <= info.cellRange.row + info.cellRange.rowCount -1; rowIdx++){
|
|
|
- me.sheet.setValue(rowIdx, info.cellRange.col, '');
|
|
|
- }
|
|
|
- me.sheet.resumePaint();
|
|
|
- }
|
|
|
- }
|
|
|
- else if(info.cellRange.row >= me.cache["_GLJ_" + me.currentRationItem.ID].length){
|
|
|
- me.sheet.suspendPaint();
|
|
|
- for(let rowIdx = info.cellRange.row; rowIdx <= info.cellRange.row + info.cellRange.rowCount -1; rowIdx ++){
|
|
|
- me.sheet.setValue(rowIdx, info.cellRange.col, '');
|
|
|
- }
|
|
|
- me.sheet.resumePaint();
|
|
|
- }
|
|
|
+ const gljCache = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
+ const field = me.setting.header[info.cellRange.col].dataCode;
|
|
|
+ if (field === 'code') {
|
|
|
+ const pasteList = sheetCommonObj.analyzePasteData({header:[{dataCode: "code"}] }, info);
|
|
|
+ const codes = [];
|
|
|
+ for (let i = 0; i < pasteList.length; i++) {
|
|
|
+ let rowIdx = info.cellRange.row + i;
|
|
|
+ if(rowIdx < gljCache.length){//更新
|
|
|
+ me.tempCacheArr.push({org: gljCache[rowIdx], newCode: pasteList[i].code});
|
|
|
+ gljCache.splice(rowIdx--, 1);
|
|
|
+ }
|
|
|
+ codes.push(pasteList[i].code);
|
|
|
+ }
|
|
|
+ me.addGljItems(codes, pageOprObj.gljLibId, info.cellRange);
|
|
|
+ } else if (gljCache && info.cellRange.row < gljCache.length) {
|
|
|
+ const pasteList = sheetCommonObj.analyzePasteData(me.setting, info);
|
|
|
+ const maxCount = info.cellRange.row + info.cellRange.rowCount -1 > gljCache.length -1 ?
|
|
|
+ gljCache.length - info.cellRange.row : info.cellRange.rowCount;
|
|
|
+ const precision = me.setting.header[info.cellRange.col].precision;
|
|
|
+ for (let i = 0; i < maxCount; i++) {
|
|
|
+ let roundCons = scMathUtil.roundTo(pasteList[i][field], -precision);
|
|
|
+ gljCache[info.cellRange.row + i][field] = roundCons;
|
|
|
+ }
|
|
|
+ me.updateRationItem(function () {
|
|
|
+ me.sheet.getParent().focus(true);
|
|
|
+ });
|
|
|
+ if (info.cellRange.row + info.cellRange.rowCount -1 >= gljCache.length -1) {
|
|
|
+ me.sheet.suspendPaint();
|
|
|
+ for(let rowIdx = gljCache.length; rowIdx <= info.cellRange.row + info.cellRange.rowCount -1; rowIdx++){
|
|
|
+ me.sheet.setValue(rowIdx, info.cellRange.col, '');
|
|
|
}
|
|
|
+ me.sheet.resumePaint();
|
|
|
+ }
|
|
|
+ } else if (info.cellRange.row >= gljCache.length) {
|
|
|
+ me.sheet.suspendPaint();
|
|
|
+ for(let rowIdx = info.cellRange.row; rowIdx <= info.cellRange.row + info.cellRange.rowCount -1; rowIdx ++){
|
|
|
+ me.sheet.setValue(rowIdx, info.cellRange.col, '');
|
|
|
}
|
|
|
+ me.sheet.resumePaint();
|
|
|
}
|
|
|
},
|
|
|
onEditStarting: function (sender, args) {
|
|
|
- let me = rationGLJOprObj;
|
|
|
- let rationSection = rationOprObj.getCache();
|
|
|
- let rationRow = rationOprObj.workBook.getSheet(0).getSelections()[0].row;
|
|
|
+ const me = rationGLJOprObj;
|
|
|
+ const rationSection = rationOprObj.getCache();
|
|
|
+ const rationRow = rationOprObj.workBook.getSheet(0).getSelections()[0].row;
|
|
|
me.currentRationItem = rationRow < rationSection.length ? rationSection[rationRow] : null;
|
|
|
if(me.currentRationItem && typeof me.cache["_GLJ_" + me.currentRationItem.ID] === 'undefined'){
|
|
|
me.cache["_GLJ_" + me.currentRationItem.ID] = [];
|
|
|
}
|
|
|
- if(!me.currentRationItem){
|
|
|
- args.cancel = true;
|
|
|
+ const isEmptyRation = !me.currentRationItem;
|
|
|
+ if (isEmptyRation) {
|
|
|
+ return args.cancel = true;
|
|
|
}
|
|
|
- else {
|
|
|
- if(args.col !== 0 && args.col !== 5 || args.col === 5 && args.row >= me.cache["_GLJ_" + me.currentRationItem.ID].length){
|
|
|
- args.cancel = true;
|
|
|
- }
|
|
|
+ const canEditFields = ['code', 'consumeAmt', 'proportion'];
|
|
|
+ const emptyGLJCanEditFields = ['code'];
|
|
|
+ const isEmptyGLJ = args.row >= me.cache["_GLJ_" + me.currentRationItem.ID].length;
|
|
|
+ const editingField = me.setting.header[args.col].dataCode;
|
|
|
+ const isValidField = isEmptyGLJ && emptyGLJCanEditFields.includes(editingField) || !isEmptyGLJ && canEditFields.includes(editingField);
|
|
|
+ if (!isValidField) {
|
|
|
+ return args.cancel = true;
|
|
|
}
|
|
|
},
|
|
|
- onCellEditEnd: function(sender, args){
|
|
|
- var me = rationGLJOprObj;
|
|
|
- if(me.currentRationItem) {
|
|
|
- var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
- me.tempCacheArr = [];
|
|
|
- if (args.col != 0) {
|
|
|
- if (args.row < cacheArr.length) {
|
|
|
- var editGlj = cacheArr[args.row];
|
|
|
- if (editGlj["consumeAmt"] != args.editingText) {
|
|
|
- let parseNum = parseFloat(args.editingText);
|
|
|
- if (isNaN(parseFloat(args.editingText))) {
|
|
|
- $('#alertModalBtn').click();
|
|
|
- $('#alertText').text("定额消耗只能输入数值!");
|
|
|
- $('#alertModalCls').click(function () {
|
|
|
- args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
|
|
|
- });
|
|
|
- $('#alertModalCof').click(function () {
|
|
|
- args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
|
|
|
- })
|
|
|
- }
|
|
|
- else {
|
|
|
- args.sheet.setValue(args.row, args.col, parseNum);
|
|
|
- let roundNum = scMathUtil.roundTo(parseNum, -3);
|
|
|
- editGlj["consumeAmt"] = roundNum;
|
|
|
- me.updateRationItem(function () {
|
|
|
- me.sheet.getParent().focus(true);
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ onCellEditEnd: function(sender, args) {
|
|
|
+ const me = rationGLJOprObj;
|
|
|
+ me.tempCacheArr = [];
|
|
|
+ const cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
+ const editingField = me.setting.header[args.col].dataCode;
|
|
|
+ const trimText = args.editingText ? args.editingText.trim() : '';
|
|
|
+ const curGLJ = cacheArr[args.row];
|
|
|
+ const originText = curGLJ && !commonUtil.isEmptyVal(curGLJ[editingField]) ? String(curGLJ[editingField]) : '';
|
|
|
+ if (!trimText || trimText === originText) {
|
|
|
+ args.sheet.setValue(args.row, args.col, originText);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (editingField === 'code') {
|
|
|
+ const matchGLJ = cacheArr.find((item, index) => item.code === trimText && index !== args.row);
|
|
|
+ if (matchGLJ) {
|
|
|
+ alert("该人材机已存在!");
|
|
|
+ args.sheet.setValue(args.row, args.col, originText);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (args.row < cacheArr.length) { // 替换人材机
|
|
|
+ me.tempCacheArr.push({org: cacheArr[args.row], newCode: args.editingText.toString().trim()});
|
|
|
+ cacheArr.splice(args.row, 1);
|
|
|
+ }
|
|
|
+ me.addGljItems([trimText], pageOprObj.gljLibId)
|
|
|
+ } else {
|
|
|
+ const fieldName = me.setting.header[args.col].headerName;
|
|
|
+ if (isNaN(trimText)) {
|
|
|
+ $('#alertText').text(`${fieldName}只能输入数值。`);
|
|
|
+ $('#alertModal').modal('show');
|
|
|
+ args.sheet.setValue(args.row, args.col, originText);
|
|
|
} else {
|
|
|
- if (args.editingText && args.editingText.toString().trim().length !== 0) {
|
|
|
- let isExist = false;
|
|
|
- for (let i = 0, len = cacheArr.length; i < len; i++) {
|
|
|
- if (cacheArr[i].code === args.editingText && i !== args.row) {
|
|
|
- isExist = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (isExist) {
|
|
|
- alert("该人材机已存在!");
|
|
|
- args.sheet.setValue(args.row, args.col, typeof cacheArr[args.row] !== 'undefined' ? cacheArr[args.row].code + '' : '');
|
|
|
- }
|
|
|
- else {
|
|
|
- if (args.row < cacheArr.length && args.editingText !== cacheArr[args.row].code) {//更新
|
|
|
- me.tempCacheArr.push({org: cacheArr[args.row], newCode: args.editingText.toString().trim()});
|
|
|
- cacheArr.splice(args.row, 1);
|
|
|
- let gljLibID = pageOprObj.gljLibId;
|
|
|
- let codes = [];
|
|
|
- codes.push(args.editingText.toString().trim());
|
|
|
- me.addGljItems(codes, gljLibID, args);
|
|
|
- }
|
|
|
- else if (args.row >= cacheArr.length) {//新增
|
|
|
- let gljLibID = pageOprObj.gljLibId;
|
|
|
- if (gljLibID) {
|
|
|
- var codes = [];
|
|
|
- codes.push(args.editingText.toString().trim());
|
|
|
- me.addGljItems(codes, gljLibID, args);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
- args.sheet.setValue(args.row, args.col, args.row < cacheArr.length ? cacheArr[args.row].code : '');
|
|
|
- }
|
|
|
+ const precision = me.setting.header[args.col].precision;
|
|
|
+ const roundText = scMathUtil.roundTo(trimText, -precision);
|
|
|
+ curGLJ[editingField] = roundText;
|
|
|
+ me.updateRationItem(function () {
|
|
|
+ me.sheet.getParent().focus(true);
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- args.sheet.setValue(args.row, args.col, '');
|
|
|
- }
|
|
|
},
|
|
|
onContextmenuOpr: function () {//右键菜单
|
|
|
let me = this;
|
|
@@ -291,57 +234,58 @@ var rationGLJOprObj = {
|
|
|
//控制允许右键菜单在哪个位置出现
|
|
|
let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.sheet.getParent());
|
|
|
let sheet = me.sheet;
|
|
|
- let addDis = false, delDis = false;
|
|
|
- let rationGlj = [];
|
|
|
if(me.sheet.getParent().getActiveSheetIndex() === 0 && target.hitTestType === 3){//在表格内&& typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
|
|
|
//rationGlj表
|
|
|
if(typeof target.row !== 'undefined'){
|
|
|
//控制按钮是否可用
|
|
|
sheet.setActiveCell(target.row, target.col);
|
|
|
- console.log(me.currentRationItem);
|
|
|
- if(me.currentRationItem){
|
|
|
- rationGlj = me.cache['_GLJ_' + me.currentRationItem.ID];
|
|
|
- if(!rationGlj ||target.row >= rationGlj.length){//右键定位在有数据的行,删除键才显示可用
|
|
|
- delDis = true;
|
|
|
- }
|
|
|
- else{//有数据
|
|
|
- if(typeof target.col === 'undefined'){//定位不在表格内
|
|
|
- delDis = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
- addDis = true;
|
|
|
- delDis = true;
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
- addDis = true;
|
|
|
- delDis = true;
|
|
|
}
|
|
|
return {
|
|
|
callback: function(){},
|
|
|
items: {
|
|
|
- "add": {name: "添加人材机", disabled: addDis, icon: "fa-plus", callback: function (key, opt) {
|
|
|
- //默认radio所有工料机
|
|
|
- gljSelOprObj.initRadio();
|
|
|
- gljSelOprObj.gljCurTypeId = null;
|
|
|
- //默认点击树根节点
|
|
|
- if(gljSelOprObj.rootNode){
|
|
|
- gljSelOprObj.treeObj.selectNode(gljSelOprObj.rootNode);
|
|
|
- gljSelTreeOprObj.setting.callback.onClick(null, 'componentTree', gljSelOprObj.rootNode);
|
|
|
- }
|
|
|
- //弹出窗口
|
|
|
- $('#selGlj').modal('show');
|
|
|
- }},
|
|
|
- "delete": {name: "删除人材机", disabled: delDis, icon: "fa-remove", callback: function (key, opt) {
|
|
|
- rationGlj.splice(target.row, 1);
|
|
|
- me.updateRationItem(function(){
|
|
|
- me.sheet.getParent().focus();
|
|
|
- });
|
|
|
- sheetCommonObj.cleanData(me.sheet, me.setting, -1);
|
|
|
- me.showGljItems(me.currentRationItem.ID);
|
|
|
- }},
|
|
|
+ "add": {
|
|
|
+ name: "添加人材机",
|
|
|
+ disabled: function () {
|
|
|
+ const inValidCell = !commonUtil.isDef(target.row) || !commonUtil.isDef(target.col);
|
|
|
+ if (locked || inValidCell || !me.currentRationItem) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ icon: "fa-plus",
|
|
|
+ callback: function (key, opt) {
|
|
|
+ //默认radio所有工料机
|
|
|
+ gljSelOprObj.initRadio();
|
|
|
+ gljSelOprObj.gljCurTypeId = null;
|
|
|
+ //默认点击树根节点
|
|
|
+ if(gljSelOprObj.rootNode){
|
|
|
+ gljSelOprObj.treeObj.selectNode(gljSelOprObj.rootNode);
|
|
|
+ gljSelTreeOprObj.setting.callback.onClick(null, 'componentTree', gljSelOprObj.rootNode);
|
|
|
+ }
|
|
|
+ //弹出窗口
|
|
|
+ $('#selGlj').modal('show');
|
|
|
+ }},
|
|
|
+ "delete": {
|
|
|
+ name: "删除人材机",
|
|
|
+ disabled: function () {
|
|
|
+ const inValidCell = !commonUtil.isDef(target.row) || !commonUtil.isDef(target.col);
|
|
|
+ const rationGlj = me.cache['_GLJ_' + me.currentRationItem.ID];
|
|
|
+ const inValidData = !rationGlj || target.row >= rationGlj.length;
|
|
|
+ if (locked || inValidCell || !me.currentRationItem || inValidData) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ icon: "fa-remove",
|
|
|
+ callback: function (key, opt) {
|
|
|
+ const rationGlj = me.cache['_GLJ_' + me.currentRationItem.ID];
|
|
|
+ rationGlj.splice(target.row, 1);
|
|
|
+ me.updateRationItem(function(){
|
|
|
+ me.sheet.getParent().focus();
|
|
|
+ });
|
|
|
+ sheetCommonObj.cleanData(me.sheet, me.setting, -1);
|
|
|
+ me.showGljItems(me.currentRationItem.ID);
|
|
|
+ }},
|
|
|
}
|
|
|
};
|
|
|
}
|
|
@@ -349,55 +293,65 @@ var rationGLJOprObj = {
|
|
|
else if(me.sheet.getParent().getActiveSheetIndex() === 2 && target.hitTestType === 3 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined'){
|
|
|
let currentCache = raCoe.curRation && raCoe.isDef(raCoe.cache["_Coe_" + raCoe.curRation.ID]) ? raCoe.cache["_Coe_" + raCoe.curRation.ID] : [];
|
|
|
sheet.setActiveCell(target.row, target.col);
|
|
|
- //控制按钮是否可用
|
|
|
- let upDis = false,
|
|
|
- downDis = false,
|
|
|
- refDis = false;
|
|
|
- if(target.row >= currentCache.length){
|
|
|
- upDis = true;
|
|
|
- downDis = true;
|
|
|
- refDis = true;
|
|
|
- }
|
|
|
- else {
|
|
|
- if(!raCoe.isDef(currentCache[target.row - 1])){
|
|
|
- upDis = true;
|
|
|
- }
|
|
|
- if(!raCoe.isDef(currentCache[target.row + 1])){
|
|
|
- downDis = true;
|
|
|
- }
|
|
|
- }
|
|
|
return {
|
|
|
callback: function(){},
|
|
|
items: {
|
|
|
- "upMove": {name: "上移", disabled: upDis, icon: "fa-arrow-up", callback: function (key, opt) {
|
|
|
- raCoe.upMove(currentCache[target.row], currentCache[target.row - 1], {row: target.row - 1, col: target.col});
|
|
|
- }},
|
|
|
- "downMove": {name: "下移", disabled: downDis, icon: "fa-arrow-down", callback: function (key, opt) {
|
|
|
- raCoe.downMove(currentCache[target.row], currentCache[target.row + 1], {row: target.row + 1, col: target.col});
|
|
|
- }},
|
|
|
- "ref": {name: "添加到本节其他定额", disabled: refDis, icon: "fa-arrow-left", callback: function (key, opt) {
|
|
|
- raCoe.updateSectionRation(rationOprObj.currentRations["_SEC_ID_" + rationOprObj.currentSectionId], currentCache[target.row], function (updateArr) {
|
|
|
- for(let i = 0, len = updateArr.length; i < len; i++){
|
|
|
- let ration = updateArr[i];
|
|
|
- let rationCoeList = updateArr[i].rationCoeList;
|
|
|
- let newNo = 1;
|
|
|
- for(let j = 0, jLen = rationCoeList.length; j < jLen; j++){
|
|
|
- if(rationCoeList[j].no >= newNo){
|
|
|
- newNo = rationCoeList[j].no + 1;
|
|
|
+ "upMove": {
|
|
|
+ name: "上移",
|
|
|
+ disabled: function () {
|
|
|
+ const inValidCell = !commonUtil.isDef(target.row) || !commonUtil.isDef(target.col);
|
|
|
+ const inValidData = target.row >= currentCache.length || !raCoe.isDef(currentCache[target.row - 1]);
|
|
|
+ return locked || inValidCell || inValidData
|
|
|
+ },
|
|
|
+ icon: "fa-arrow-up",
|
|
|
+ callback: function (key, opt) {
|
|
|
+ raCoe.upMove(currentCache[target.row], currentCache[target.row - 1], {row: target.row - 1, col: target.col});
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "downMove": {
|
|
|
+ name: "下移",
|
|
|
+ disabled: function () {
|
|
|
+ const inValidCell = !commonUtil.isDef(target.row) || !commonUtil.isDef(target.col);
|
|
|
+ const inValidData = target.row >= currentCache.length || !raCoe.isDef(currentCache[target.row + 1]);
|
|
|
+ return locked || inValidCell || inValidData;
|
|
|
+ },
|
|
|
+ icon: "fa-arrow-down",
|
|
|
+ callback: function (key, opt) {
|
|
|
+ raCoe.downMove(currentCache[target.row], currentCache[target.row + 1], {row: target.row + 1, col: target.col});
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "ref": {
|
|
|
+ name: "添加到本节其他定额",
|
|
|
+ disabled: function () {
|
|
|
+ const inValidCell = !commonUtil.isDef(target.row) || !commonUtil.isDef(target.col);
|
|
|
+ const inValidData = target.row >= currentCache.length;
|
|
|
+ return locked || inValidCell || inValidData;
|
|
|
+ },
|
|
|
+ icon: "fa-arrow-left",
|
|
|
+ callback: function (key, opt) {
|
|
|
+ raCoe.updateSectionRation(rationOprObj.currentRations["_SEC_ID_" + rationOprObj.currentSectionId], currentCache[target.row], function (updateArr) {
|
|
|
+ for(let i = 0, len = updateArr.length; i < len; i++){
|
|
|
+ let ration = updateArr[i];
|
|
|
+ let rationCoeList = updateArr[i].rationCoeList;
|
|
|
+ let newNo = 1;
|
|
|
+ for(let j = 0, jLen = rationCoeList.length; j < jLen; j++){
|
|
|
+ if(rationCoeList[j].no >= newNo){
|
|
|
+ newNo = rationCoeList[j].no + 1;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- let theCache = raCoe.cache["_Coe_" + ration.ID];
|
|
|
- if(theCache !== undefined && theCache !== null){
|
|
|
- let newCoe = {};
|
|
|
- for(let attr in currentCache[target.row]){
|
|
|
- newCoe[attr] = currentCache[target.row][attr];
|
|
|
+ let theCache = raCoe.cache["_Coe_" + ration.ID];
|
|
|
+ if(theCache !== undefined && theCache !== null){
|
|
|
+ let newCoe = {};
|
|
|
+ for(let attr in currentCache[target.row]){
|
|
|
+ newCoe[attr] = currentCache[target.row][attr];
|
|
|
+ }
|
|
|
+ newCoe.no = newNo;
|
|
|
+ theCache.push(newCoe);
|
|
|
}
|
|
|
- newCoe.no = newNo;
|
|
|
- theCache.push(newCoe);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- }}
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
}
|
|
@@ -423,7 +377,7 @@ var rationGLJOprObj = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
- addGljItems: function(codes, repId, args) {
|
|
|
+ addGljItems: function(codes, repId) {
|
|
|
var me = this;
|
|
|
$.ajax({
|
|
|
type:"POST",
|
|
@@ -547,7 +501,11 @@ var rationGLJOprObj = {
|
|
|
if (me.currentRationItem && me.cache["_GLJ_" + me.currentRationItem.ID]) {
|
|
|
var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
|
|
|
for (var i = 0; i < cacheArr.length; i++) {
|
|
|
- rst.push({gljId: cacheArr[i].gljId, consumeAmt: cacheArr[i].consumeAmt, proportion: 0});
|
|
|
+ rst.push({
|
|
|
+ gljId: cacheArr[i].gljId,
|
|
|
+ consumeAmt: cacheArr[i].consumeAmt,
|
|
|
+ proportion: cacheArr[i].proportion
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
return rst;
|
|
@@ -557,6 +515,7 @@ var rationGLJOprObj = {
|
|
|
var rst = {};
|
|
|
rst.gljId = rItem.gljId;
|
|
|
rst.consumeAmt = rItem.consumeAmt;
|
|
|
+ rst.proportion = rItem.proportion;
|
|
|
rst.code = repGlj.code;
|
|
|
rst.name = repGlj.name;
|
|
|
rst.specs = repGlj.specs;
|