|
@@ -15,6 +15,7 @@ var gljOprObj = {
|
|
|
detailSheet:null,
|
|
|
detailData:[],
|
|
|
GLJSelection:[],
|
|
|
+ selectedGLJClass:null,
|
|
|
parentNodeIds:{},
|
|
|
activeTab:'#linkGLJ',
|
|
|
decimalSetting:{
|
|
@@ -107,12 +108,23 @@ var gljOprObj = {
|
|
|
},
|
|
|
callback:{
|
|
|
onClick: function(event,treeId,treeNode) {
|
|
|
- let me = gljOprObj, gljTypeId = treeNode.ID;
|
|
|
- if(me.gljCurTypeId !== treeNode.ID){
|
|
|
- me.gljCurTypeId = treeNode.ID;
|
|
|
- me.filterLibGLJSheetData();
|
|
|
- me.showLibGLJSheetData();
|
|
|
+ if(treeId=='gljTree'){
|
|
|
+ let me = gljOprObj, gljTypeId = treeNode.ID;
|
|
|
+ if(me.gljCurTypeId !== treeNode.ID){
|
|
|
+ me.gljCurTypeId = treeNode.ID;
|
|
|
+ me.filterLibGLJSheetData();
|
|
|
+ me.showLibGLJSheetData();
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if(treeNode.isParent){
|
|
|
+ $('#class_selected_conf').attr("disabled","disabled");
|
|
|
+ $('#selected_class').val("");
|
|
|
+ }else {
|
|
|
+ $('#class_selected_conf').removeAttr("disabled");
|
|
|
+ $('#selected_class').val(treeNode.ID);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -418,6 +430,11 @@ var gljOprObj = {
|
|
|
var me = gljOprObj;
|
|
|
var header = me.setting.header;
|
|
|
var disable = null;
|
|
|
+ if(me.sheetData[args.row]!=undefined){
|
|
|
+ if(me.sheetData[args.row].isMixRatio){
|
|
|
+ disable = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
if(header[args.col]&&header[args.col].dataCode=='marketPrice'){
|
|
|
var type = me.sheetData[args.row].shortName;
|
|
|
var index= _.indexOf(me.setting.notEditedType,type);
|
|
@@ -534,22 +551,25 @@ var gljOprObj = {
|
|
|
}
|
|
|
},
|
|
|
showRationGLJSheetData:function (init) {
|
|
|
- if(init){
|
|
|
- this.sheet.getRange(0,-1,this.sheet.getRowCount(),-1).visible(true);
|
|
|
- this.sheetData=_.sortBy(this.sheetData,'type');
|
|
|
- this.addMixRatioToShow();
|
|
|
- this.initRationTree();
|
|
|
- }
|
|
|
+ this.sheet.getRange(0,-1,this.sheet.getRowCount(),-1).visible(true);
|
|
|
+ this.sheetData=_.sortBy(this.sheetData,'type');
|
|
|
+ this.addMixRatioToShow();
|
|
|
+ this.initRationTree(init);
|
|
|
sheetCommonObj.showData(this.sheet,this.setting,this.sheetData);
|
|
|
|
|
|
},
|
|
|
- initRationTree:function () {
|
|
|
+ initRationTree:function (init) {
|
|
|
this.sheet.getRange(-1, 0, -1, 1).cellType(this.getTreeNodeCellType(this.sheetData));
|
|
|
for(var i =0;i<this.sheetData.length;i++){
|
|
|
if(this.sheetData[i].hasOwnProperty('subList')){
|
|
|
- this.sheet.setTag(i,0,true);
|
|
|
- this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(false);
|
|
|
- this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).locked(true);
|
|
|
+ var collapsed = false;
|
|
|
+ if(init){
|
|
|
+ this.sheetData[i].collapsed=true;
|
|
|
+ collapsed = true;
|
|
|
+ }else {
|
|
|
+ collapsed = this.sheetData[i].collapsed==undefined?true:this.sheetData[i].collapsed;
|
|
|
+ }
|
|
|
+ this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(!collapsed);// this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).locked(true);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -626,7 +646,8 @@ var gljOprObj = {
|
|
|
adjustPrice:pg.adjust_price,
|
|
|
isEstimate:pg.is_evaluate,
|
|
|
isMixRatio:true,
|
|
|
- isAdd:pg.unit_price.is_add
|
|
|
+ isAdd:pg.unit_price.is_add,
|
|
|
+ GLJID:pg.glj_id
|
|
|
}
|
|
|
temRationGLJs.push(tem);
|
|
|
}
|
|
@@ -696,10 +717,14 @@ var gljOprObj = {
|
|
|
var recode = me.sheetData[args.row];
|
|
|
var newval;
|
|
|
if(updateField=='marketPrice'||updateField=='customQuantity'||updateField=='basePrice'){
|
|
|
- newval = number_util.checkNumberValue(args.editingText,this.decimalSetting[updateField]);
|
|
|
- if(!newval){
|
|
|
- me.sheet.getCell(args.row, args.col).value(recode[updateField]);
|
|
|
- return;
|
|
|
+ if(args.editingText==null){
|
|
|
+ newval="";
|
|
|
+ }else {
|
|
|
+ newval = number_util.checkNumberValue(args.editingText,this.decimalSetting[updateField]);
|
|
|
+ if(newval==null){
|
|
|
+ me.sheet.getCell(args.row, args.col).value(recode[updateField]);
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
}else {
|
|
|
if(updateField=='name'||updateField=='unit'){
|
|
@@ -711,6 +736,9 @@ var gljOprObj = {
|
|
|
}
|
|
|
newval=args.editingText==null?"":args.editingText;
|
|
|
}
|
|
|
+ if(newval === recode[updateField]){//如果值完全相等,则不需要更新
|
|
|
+ return
|
|
|
+ }
|
|
|
if(updateField=='marketPrice'||updateField=='basePrice'){
|
|
|
projectObj.project.projectGLJ.updatePriceFromRG(recode,updateField,newval);
|
|
|
} else {
|
|
@@ -886,15 +914,17 @@ var gljOprObj = {
|
|
|
return _.find(gljOprObj.sheetData,{'code':n})?false:true;
|
|
|
})
|
|
|
if(gljOprObj.GLJSelection.length>0&&selected&&selected.sourceType==ModuleNames.ration){
|
|
|
+ $("#glj_tree_div").modal('hide');
|
|
|
project.ration_glj.addGLJByLib(gljOprObj.GLJSelection,selected.data,function (result) {
|
|
|
if(result){
|
|
|
selected.data.adjustState=result.adjustState;
|
|
|
- project.ration_glj.datas = project.ration_glj.datas.concat(result.newRecodes);
|
|
|
+ //project.ration_glj.datas = project.ration_glj.datas.concat(result.newRecodes);//显示和缓存统一,这样的话就不用更新两个位置了
|
|
|
+ project.ration_glj.datas = project.ration_glj.datas.concat(result.showData);
|
|
|
gljOprObj.sheetData = gljOprObj.sheetData.concat(result.showData)
|
|
|
gljOprObj.showRationGLJSheetData();
|
|
|
project.projectGLJ.loadData();
|
|
|
projectObj.mainController.refreshTreeNode([selected]);
|
|
|
- $("#glj_tree_div").modal('hide');
|
|
|
+ $.bootstrapLoading.end();
|
|
|
}
|
|
|
});//doc.rationID=selected.data.ID;
|
|
|
}else {
|
|
@@ -908,6 +938,7 @@ var gljOprObj = {
|
|
|
var project= projectObj.project;
|
|
|
var selectCode=gljOprObj.GLJSelection[0];
|
|
|
var selected = projectObj.project.mainTree.selected;
|
|
|
+ $("#glj_tree_div").modal('hide');
|
|
|
project.ration_glj.replaceGLJ(selectCode,oldData,function (result) {
|
|
|
if(result){
|
|
|
//result.adjustState;
|
|
@@ -919,7 +950,7 @@ var gljOprObj = {
|
|
|
selected.data.adjustState=result.adjustState;
|
|
|
projectObj.mainController.refreshTreeNode([selected]);
|
|
|
}
|
|
|
- $("#glj_tree_div").modal('hide');
|
|
|
+ $.bootstrapLoading.end();
|
|
|
})
|
|
|
},
|
|
|
doMReplaceGLJ:function () {
|
|
@@ -927,18 +958,21 @@ var gljOprObj = {
|
|
|
var oldData=me.sheetData[gljContextMenu.selectedRow];
|
|
|
var project= projectObj.project;
|
|
|
var selectCode=me.GLJSelection[0];
|
|
|
+ $("#glj_tree_div").modal('hide');
|
|
|
project.ration_glj.mReplaceGLJ(selectCode,oldData,function (result) {
|
|
|
var data=result.data;
|
|
|
var stateList= result.stateList;
|
|
|
+ var n_index = me.getIndex(data.query,['code','name','specs','unit','type']);
|
|
|
_.forEach(project.ration_glj.datas,function (t) {
|
|
|
- if(t.code==data.query.code&&t.name==data.query.name){
|
|
|
+ var t_index =me.getIndex(t,['code','name','specs','unit','type']);
|
|
|
+ if(n_index==t_index){
|
|
|
me.updateProperty(t,data.doc);
|
|
|
}
|
|
|
})
|
|
|
me.showRationGLJSheetData();
|
|
|
project.projectGLJ.loadData();
|
|
|
me.refreshStateAfterMreplace(stateList);
|
|
|
- $("#glj_tree_div").modal('hide');
|
|
|
+ $.bootstrapLoading.end();
|
|
|
})
|
|
|
},
|
|
|
updateProperty:function (obj,doc) {
|
|
@@ -1030,7 +1064,7 @@ var gljOprObj = {
|
|
|
var recode = data[options.row];
|
|
|
if(recode&&recode.hasOwnProperty('subList')){
|
|
|
drowRect(ctx,x,y,w,h);
|
|
|
- var collapsed = options.sheet.getTag(options.row,options.col);
|
|
|
+ var collapsed = recode.collapsed==undefined?true:recode.collapsed;//options.sheet.getTag(options.row,options.col);
|
|
|
drowSymbol(ctx,x,y,w,h,collapsed);
|
|
|
}else if(recode&&recode.isMixRatio){
|
|
|
offset= drowSubItem(ctx,x,y,w,h,offset,data[options.row+1]);
|
|
@@ -1056,9 +1090,10 @@ var gljOprObj = {
|
|
|
if(recode&&recode.hasOwnProperty('subList')){
|
|
|
var hoffset= hitinfo.cellRect.x+3;
|
|
|
if (hitinfo.x > hoffset && hitinfo.x < hoffset + 10){
|
|
|
- var collapsed = hitinfo.sheet.getTag(hitinfo.row,hitinfo.col,hitinfo.sheetArea);
|
|
|
- collapsed = !collapsed;
|
|
|
- hitinfo.sheet.setTag(hitinfo.row,hitinfo.col,collapsed);
|
|
|
+ var collapsed = recode.collapsed==undefined?true:recode.collapsed;
|
|
|
+ collapsed = !collapsed
|
|
|
+ recode.collapsed=collapsed;
|
|
|
+ //hitinfo.sheet.setTag(hitinfo.row,hitinfo.col,collapsed);
|
|
|
hitinfo.sheet.getRange(hitinfo.row+1, -1, recode.subList.length, -1).visible(!collapsed);
|
|
|
hitinfo.sheet.invalidateLayout();
|
|
|
hitinfo.sheet.repaint();
|
|
@@ -1119,6 +1154,66 @@ $(function(){
|
|
|
gljOprObj.doMReplaceGLJ();
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ $('#class_selected_conf').click(function () {
|
|
|
+ var gljClass = $('#selected_class').val();
|
|
|
+ var glj = gljOprObj.selectedGLJClass;
|
|
|
+ if(glj&&gljClass&&gljClass!=""){
|
|
|
+ //保存到我的工料机库
|
|
|
+ /*1 检查是否有组成物
|
|
|
+ * 2 如果有,则检查组成物中是否有新增的记录,如果有,查看是否已经保存了,没有的话,要先添加组成物到补充工料机库
|
|
|
+ * 3 保存
|
|
|
+
|
|
|
+ * */
|
|
|
+ var newItem={
|
|
|
+ code:glj.code,
|
|
|
+ name:glj.name,
|
|
|
+ specs:glj.specs,
|
|
|
+ unit:glj.unit,
|
|
|
+ basePrice:glj.basePrice,
|
|
|
+ gljType:glj.type,
|
|
|
+ shortName:glj.shortName,
|
|
|
+ component:[],
|
|
|
+ gljClass:gljClass
|
|
|
+ };
|
|
|
+ if(glj.hasOwnProperty("subList")&&glj.subList.length>0){//有组成物,检查组成物信息,目前组成物不允许修改,所以暂时不用考虑组成物是新增的情况
|
|
|
+ for(var i=0;i<glj.subList.length;i++ ){
|
|
|
+ let tem={
|
|
|
+ ID:glj.subList[i].GLJID,
|
|
|
+ consumeAmt:glj.rationItemQuantity,
|
|
|
+ isStd:true
|
|
|
+ }
|
|
|
+ newItem.component.push(tem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var data = getcmpUpdateData([newItem]);
|
|
|
+ $.bootstrapLoading.start();
|
|
|
+ var callback = function (data) {
|
|
|
+ $("#glj_class_div").modal('hide');
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ }
|
|
|
+ CommonAjax.post("complementartGlj/api/mixUpdateGljItems", data, callback, function () {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ $('#glj_class_div').on('hidden.bs.modal', function (e){
|
|
|
+ gljOprObj.selectedGLJClass=null;
|
|
|
+ $('#class_selected_conf').attr("disabled","disabled");
|
|
|
+ $('#selected_class').val("");
|
|
|
+ })
|
|
|
+
|
|
|
+ function getcmpUpdateData(items) {
|
|
|
+ var data ={
|
|
|
+ "updateItems": [],
|
|
|
+ "removeIds": []
|
|
|
+ }
|
|
|
+ data.addItems = items;
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
})
|
|
|
|
|
|
|