控制子功能列的显隐
在子功能grid的激活(activate)事件中写入方法
//启用grid的编辑插件(如果不控制列表编辑可以不写)
var cellEdit = self.getPlugin('cellEdit');
cellEdit.enable();
//获得grid的cloumns
var headerCt = self.headerCt;
//获得具体列
var LCKZZDZTZGN_ZD1 = headerCt.getCmp('LCKZZDZTZGN_ZD1');
var LCKZZDZTZGN_ZD2 = headerCt.getCmp('LCKZZDZTZGN_ZD2');
//先恢复列的状态
LCKZZDZTZGN_ZD1.show();
LCKZZDZTZGN_ZD2.show();
var pkValue = self.mainData.LCKZZDZTZGN_WJ;//LCKZZDZTZGN_WJ 子功能的外键
if(JE.isEmpty(pkValue)){return false};
//获得当前数据主功能的流程信息
var resObj = JE.ajax({
url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'),
params: {
tableCode: 'JE_PFCS_LCKZZDZT',//主功能表名
pkValue: pkValue,
doTaskName: false,
emptyPDID:''
}
});
if(resObj.success){
var obj = resObj.obj;
self.newWfIf = obj;
//根据选中的节点信息写逻辑
if(obj.taskName == '任务2'){
LCKZZDZTZGN_ZD1.hide();
}else if(obj.taskName == '任务3'){
LCKZZDZTZGN_ZD1.hide();
LCKZZDZTZGN_ZD2.hide();
}
}
控制子功能列是否可编辑
1.先在主功能的工作流进行配置
想控制那个节点的,就修改那个节点的
在字段的编辑前(beforeedit)事件写入代码
//grid对象 var grid = context.grid; //主功能的工作流信息 var newWfIf = grid.newWfIf; if(JE.isNotEmpty(newWfIf)){ if(newWfIf.taskName == '任务3'){ return false; //不可编辑 }else{ return true; //可编辑 } }else{ return true; }
控制子功能表单字段只读/显隐
第一种方法
- 在子功能表单添加设置值之后(aftersetvalues)事件
function(form){ //获得当前数据主功能的流程信息 var resObj = JE.ajax({ url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'), params: { tableCode: 'JE_PFCS_LCKZZDZT',//主功能表名 pkValue: form.mainData.LCKZZDZTZGN_WJ,//LCKZZDZTZGN_WJ 子功能的外键 doTaskName: false, emptyPDID:'' } }); //获得字段对象 var LCKZZDZTZGN_ZD1 = form.form.findField('LCKZZDZTZGN_ZD1'); var LCKZZDZTZGN_ZD2 = form.form.findField('LCKZZDZTZGN_ZD2'); var LCKZZDZTZGN_ZD3 = form.form.findField('LCKZZDZTZGN_ZD3'); var LCKZZDZTZGN_ZD4 = form.form.findField('LCKZZDZTZGN_ZD4'); var LCKZZDZTZGN_ZD5 = form.form.findField('LCKZZDZTZGN_ZD5'); //先还原字段的状态 LCKZZDZTZGN_ZD2.show(); LCKZZDZTZGN_ZD5.show(); if(resObj.success){ var obj = resObj.obj; if(obj.taskName == '任务2'){ LCKZZDZTZGN_ZD1.setReadOnly(false);//可编辑 LCKZZDZTZGN_ZD2.hide();//隐藏 }else if(obj.taskName == '任务3'){ LCKZZDZTZGN_ZD3.setReadOnly(false); LCKZZDZTZGN_ZD4.setReadOnly(false); LCKZZDZTZGN_ZD5.hide(); } } }
第二种方法
- 在 开发=》全局脚本库功能添加方法 doWfChildForm(根据主功能流程数据控制子功能表单字段)
/**
*方法注释
*方法参数自行添加
* @param {Object} form
* @param {Object} params
params={tableCode:'主功能表名',WJcode:'子功能外键'}
* @param {Array} wfDatas
* taskName 主功能流程节点 ,edit 可编辑的字段code ,readonly 只读字段code hide隐藏的字段code
* wfDatas=[
* {taskName:'任务2',readonly:['LCKZZDZTZGN_ZD1'],hide:['LCKZZDZTZGN_ZD2']},
* {taskName:'任务3',readonly:['LCKZZDZTZGN_ZD3','LCKZZDZTZGN_ZD4'],hide:['LCKZZDZTZGN_ZD5']},
* ]
*/
function(form,params,wfDatas){
//获得主功能流程数据
if(JE.isEmpty(form) && JE.isEmpty(params)){
return false;
}
//先把隐藏的字段,只读的状态还原
Ext.each(wfDatas,function(data){
var hideData = data.hide || [];
Ext.each(hideData,function(hideD){
var field = form.form.findField(hideD);
//如果被隐藏
if(field.isHidden()){
field.show();
}
});
//只读还原
var readonlyData = data.readonly || [];
Ext.each(readonlyData,function(readonlyD){
var field = form.form.findField(readonlyD);
if(field.readOnly != form.readOnly){
field.setReadOnly(form.readOnly);
}
});
//编辑还原
var editData = data.edit || [];
Ext.each(editData,function(editD){
var field = form.form.findField(editD);
if(field.readOnly != form.readOnly){
field.setReadOnly(form.readOnly);
}
});
});
var pkValue = form.mainData[params.WJcode];
if(JE.isEmpty(pkValue)){ return false};
var resObj = JE.ajax({
url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'),
params: {
tableCode: params.tableCode,
pkValue: form.mainData[params.WJcode],
doTaskName: false,
emptyPDID:''
}
});
if(resObj.success && wfDatas.length > 0){
var obj = resObj.obj;
//根据节点数据处理
Ext.each(wfDatas,function(data){
if(obj.taskName == data.taskName){
//字段编辑处理
var edits = data.edit || [];
Ext.each(edits,function(e){
var field = form.form.findField(e);
field.setReadOnly(false);
});
//字段编辑处理
var readonlys = data.readonly || [];
Ext.each(readonlys,function(r){
var field = form.form.findField(r);
field.setReadOnly(true);
});
//字段隐藏处理
var hides = data.hide || [];
Ext.each(hides,function(h){
var field = form.form.findField(h);
field.hide();
});
return false;
}
});
}
}
- 在子功能表单添加设置值之后(aftersetvalues)事件
function(form){ JE.callCustomFn('doWfChildForm',form, {tableCode: 'JE_PFCS_LCKZZDZT',WJcode:'LCKZZDZTZGN_WJ'}, [ {taskName:'任务2',readonly:['LCKZZDZTZGN_ZD1'],hide:['LCKZZDZTZGN_ZD2']}, {taskName:'任务3',readonly:['LCKZZDZTZGN_ZD3','LCKZZDZTZGN_ZD4'],hide:['LCKZZDZTZGN_ZD5']}, ] ); }
最后编辑: 呼丽华 文档更新时间: 2024-08-21 10:58 作者:呼丽华