Ext.define('erp.view.common.JProcess.LaunchContainer',{
extend: 'Ext.panel.Panel',
hideBorders: true,
layout:'fit',
alias: 'widget.erpLaunchContainer',
BaseUtil:Ext.create('erp.util.BaseUtil'),
FormUtil:Ext.create('erp.util.FormUtil'),
initComponent : function(){
this.items=this.getItems();
this.callParent(arguments);
},
getItems:function(){
var items=new Array();
var me=this;
this.BaseUtil.getActiveTab().setLoading(true);
Ext.Ajax.request({
url : basePath + "common/getAllProcessInfo.action",
params:{},
method : 'post',
async:false,
callback : function(options,success,response){
Ext.create('erp.util.BaseUtil').getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
var classify=localJson.classify;
var deploy=localJson.deploy;
if(deploy['0']){
items.push({
xtype:'grid',
title:'未分类流程',
iconCls: 'main-msg',
id:'grid0',
tools: me.getTools(),
height:300,
layout:'fit',
columns:me.getColumns(),
store:Ext.create('Ext.data.Store', {
fields :[{name:'jd_id',type:'int'},{name:'jd_processdefinitionname',type:'string'},{name:'js_formurl',type:'string'},{name:'jd_caller',type:'string'},{name:'jd_selfid',type:'int'}],
data:deploy['0']
})
});
}
Ext.Array.each(classify,function(item){
var data=deploy[item.JC_ID]?deploy[item.JC_ID]:[];
if(data.length>0){
items.push({
xtype:'grid',
iconCls: 'main-msg',
title:'
'+item.JC_NAME+'
',
id:'grid'+item.JC_ID,
tools: me.getTools(),
height:300,
layout:'fit',
columns:me.getColumns(),
store:Ext.create('Ext.data.Store', {
fields :[{name:'jd_id',type:'int'},{name:'jd_processdefinitionname',type:'string'},{name:'js_formurl',type:'string'},{name:'jd_caller',type:'string'}],
data:data
})
});
}
});
} else {
delFailure();
}
}
});
return items;
},
getTools: function(){
var me=this;
return [{xtype:'button',
tooltip:'添加流程',
height:15.3,
width:15.3,
hidden:canAdd==1,
menu: [{
iconCls: 'main-msg',
text: '单表',
handler: function(){
if(Ext.getCmp('mainwin')){
Ext.getCmp('mainwin').close();
}
var gridCondition="fd_foid=0";
var win = parent.Ext.create('Ext.window.Window',
{
id : 'singlewin',
height : '90%',
width : '90%',
maximizable : true,
buttonAlign : 'center',
layout : 'anchor',
title:'添加流程',
items : [{
frame : true,
anchor : '100% 100%',
layout : 'fit',
html : ''
}]
});
win.show();
}
},{
iconCls: 'main-msg',
text: '主从表',
handler:function(){
if(Ext.getCmp('singlewin')){
Ext.getCmp('singlewin').close();
}
var gridCondition="fd_foid=0";
var win = parent.Ext.create('Ext.window.Window',
{
id : 'mainwin',
height : '90%',
width : '90%',
maximizable : true,
buttonAlign : 'center',
layout : 'anchor',
title:'添加流程',
items : [{
//tag : 'iframe',
frame : true,
anchor : '100% 100%',
layout : 'fit',
// html : ''
html:''
}]
});
win.show();
}
}],
/*handler:function(e,target,panelHeader,tool){
var win = parent.Ext.create('Ext.window.Window',
{
id : 'win',
height : 600,
width : 800,
maximizable : true,
buttonAlign : 'center',
layout : 'anchor',
items : [ {
//tag : 'iframe',
frame : true,
anchor : '100% 100%',
layout : 'fit',
// html : ''
html:''
} ]
});
win.show();
//Ext.create('erp.util.FormUtil').onAdd('添加流程','Form',basePath+'jsps/ma/form.jsp');
}**/
},/*{
xtype:'tool',
type:'up',
handler:function(e,target,panelHeader,tool){
if(tool.type=='up'){
tool.setType('down');
panelHeader.ownerCt.collapse(Ext.Component.DIRECTION_TOP,true);
}else {
tool.setType('up');
panelHeader.ownerCt.expand();
}
},
},*/{
xtype: 'tool',
type: 'collapse',
tooltip:'已发起流程',
hidden:canAdd==1,
handler: function(e, target, panelHeader, tool){
var portlet = panelHeader.ownerCt;
var select=portlet.getSelectionModel().getLastSelected();
if(!select){
showError('请先选择需要查看的流程!');
}else {
openTable(select.data.jd_processdefinitionname,"jsps/common/datalist.jsp?whoami=JProcess&urlcondition=jp_flag=1 and jp_caller='"+select.data.jd_caller+"'",select.data.jd_caller);
}
}
},{
xtype: 'tool',
type: 'gear',
tooltip:'流程排序',
hidden:canAdd==1,
handler: function(e, target, panelHeader, tool){
var portlet = panelHeader.ownerCt;
var jcid=portlet.id.substring(portlet.id.indexOf('grid')+4,portlet.id.length);
var condition="jd_selfid="+jcid;
var win = Ext.create('Ext.window.Window',
{
title:'流程排序',
id : 'orderwin',
height : '60%',
width : '45%',
maximizable : true,
buttonAlign : 'center',
layout : 'anchor',
items : [{
//tag : 'iframe',
frame : true,
anchor : '100% 100%',
layout : 'fit',
// html : ''
html:''
}],
buttonAlign:'center',
buttons:[{
xtype:'erpSaveButton',
handler:function(){
var grid = Ext.getCmp('orderwin').items.items[0].body.dom.getElementsByTagName('iframe')[0].contentWindow.Ext.getCmp("editorColumnGridPanel");
var data = grid.getEffectData();
if(data != null){
grid.setLoading(true);
Ext.Ajax.request({
url : basePath + 'custom/orderByJprocess.action',
params: {
data: Ext.encode(data)
},
method : 'post',
callback : function(options,success,response){
grid.setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);
return "";
}
if(localJson.success){
if(localJson.log){
showMessage("提示", localJson.log);
}
Ext.Msg.alert("提示", "处理成功!", function(){
win.close();
me.loadNewStore(portlet,condition);
});
}
}
});
}
}
},{
xtype:'erpCloseButton',
handler:function(){
win.close();
}
}]
});
win.show();
}
},{
xtype:'tool',
type:'close',
tooltip:'删除流程',
hidden:canAdd==1,
handler:function(e, target, panelHeader, tool){
//me.onPortletClose(panelHeader.ownerCt);
//panelHeader.ownerCt.close();
var portlet = panelHeader.ownerCt;
var select=portlet.getSelectionModel().getLastSelected();
if(!select){
showError('请先选择需要查看的流程!');
}else {
warnMsg('确认要删除该流程吗', function(btn){
if(btn == 'yes'){
me.BaseUtil.getActiveTab().setLoading(true);//loading...
Ext.Ajax.request({
url:basePath+'common/deleteProcessDeploy.action',
params:{
id:select.data.jd_id
},
method:'post',
callback : function(options,success,response){
me.BaseUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
delSuccess(function(){
me.loadNewStore(portlet,"jd_selfid="+select.data.jd_selfid);
});//@i18n/i18n.js
} else {
delFailure();
}
}
});
}
});
}
}
}];
},
onPortletClose: function(portlet) {
this.showMsg('"' + portlet.title + '" 已关闭!');
},
showMsg: function(msg) {
var el = Ext.get('app-msg'),
msgId = Ext.id();
this.msgId = msgId;
el.update(msg).show();
Ext.defer(this.clearMsg, 3000, this, [msgId]);
},
clearMsg: function(msgId) {
if (msgId === this.msgId) {
Ext.get('app-msg').hide();
}
},
loadNewStore:function(grid,condition){
var me = this;
grid.setLoading(true);//loading...
Ext.Ajax.request({//拿到grid的columns
url : basePath + "common/getProcessInfoByCondition.action",
params: {
condition:condition
},
method : 'post',
callback : function(options,success,response){
grid.setLoading(false);
var res = new Ext.decode(response.responseText);
if(res.exceptionInfo){
showError(res.exceptionInfo);return;
}
var data = res.data;
if(!data || data.length == 0){
grid.store.removeAll();
me.add10EmptyItems(grid);
} else {
grid.store.loadData(data);
}
//自定义event
grid.addEvents({
storeloaded: true
});
grid.fireEvent('storeloaded', grid, data);
}
});
},
getColumns:function(){
var me=this;
if(canAdd!=1){
return [{dataIndex:'jd_id',width:0},{dataIndex:'jd_processdefinitionname',renderer:open,header:'流程名称',width:150,flex:1},{xtype:'actioncolumn',width:50,items:[{
icon: basePath+'/resource/images/icon/detail.png', // Use a URL in the icon config
tooltip: '查看列表',
style: {
marginLeft: '2px'
},
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
//根据caller查找列表的配置
Ext.Ajax.request({
url:basePath+'/custom/IfDatalist.action',
params:{
caller:rec.data.jd_caller
},
method:'post',
callback : function(options,success,response){
var rs = new Ext.decode(response.responseText);
if(rs.exceptionInfo){
warnMsg('该单据未配置相关列表,是否配置列表?', function(btn){
if(btn == 'yes'){
me.BaseUtil.getActiveTab().setLoading(true);//loading...
var type=me.FormUtil.contains(rec.data.js_formurl,'single',true)?'single':'multi';
Ext.Ajax.request({
url:basePath+'/custom/ToDatalistByForm.action',
params:{
caller:rec.data.jd_caller,
type:type
},
method:'post',
callback : function(options,success,response){
me.BaseUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
Ext.Msg.alert('提示','配置成功!',function(){
openTable(rec.data.jd_processdefinitionname,"jsps/common/datalist.jsp?whoami="+rec.data.jd_caller,rec.data.jd_caller);
});
} else {
delFailure();
}
}
});
}
});
}
if(rs.success){
openTable(rec.data.jd_processdefinitionname,"jsps/common/datalist.jsp?whoami="+rec.data.jd_caller,rec.data.jd_caller);
}
}
});
}
},{
icon: basePath+'/resource/images/icon/execute.png',
tooltip: '查看流程',
style: {
marginLeft: '2px',
width:0,
},
handler: function(grid, rowIndex, colIndex) {
var select= grid.getStore().getAt(rowIndex);;
var formCondition="jd_idIS"+select.data.jd_id;
openTable(select.data.jd_processdefinitionname,"jsps/common/jprocessDeploy.jsp?formCondition="+formCondition,select.data.jd_caller);
// window.open();
}
},{
icon: basePath+'/resource/images/icon/trash.png',
tooltip: '删除流程',
style: {
marginLeft: '2px'
},
handler: function(grid, rowIndex, colIndex) {
var select= grid.getStore().getAt(rowIndex);;
warnMsg('确认要删除该流程吗', function(btn){
if(btn == 'yes'){
me.BaseUtil.getActiveTab().setLoading(true);//loading...
Ext.Ajax.request({
url:basePath+'common/deleteProcessDeploy.action',
params:{
id:select.data.jd_id
},
method:'post',
callback : function(options,success,response){
me.BaseUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
delSuccess(function(){
me.loadNewStore(grid,"jd_selfid="+select.data.jd_selfid);
});//@i18n/i18n.js
} else {
delFailure();
}
}
});
}
});
}
}]},{dataIndex:'js_formurl',width:0},{dataIndex:'jd_caller',width:0},{dataIndex:'jd_selfid',width:0}];
}else {
return [{dataIndex:'jd_id',width:0},{dataIndex:'jd_processdefinitionname',renderer:open,header:'流程名称',width:150,flex:1},{xtype:'actioncolumn',width:50,items:[{
icon: basePath+'/resource/images/icon/detail.png', // Use a URL in the icon config
tooltip: '查看列表',
style: {
marginLeft: '2px'
},
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
//根据caller查找列表的配置
Ext.Ajax.request({
url:basePath+'/custom/IfDatalist.action',
params:{
caller:rec.data.jd_caller
},
method:'post',
callback : function(options,success,response){
var rs = new Ext.decode(response.responseText);
if(rs.exceptionInfo){
warnMsg('该单据未配置相关列表,是否配置列表?', function(btn){
if(btn == 'yes'){
me.BaseUtil.getActiveTab().setLoading(true);//loading...
var type=me.FormUtil.contains(rec.data.js_formurl,'single',true)?'single':'multi';
Ext.Ajax.request({
url:basePath+'/custom/ToDatalistByForm.action',
params:{
caller:rec.data.jd_caller,
type:type
},
method:'post',
callback : function(options,success,response){
me.BaseUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
Ext.Msg.alert('提示','配置成功!',function(){
openTable(rec.data.jd_processdefinitionname,"jsps/common/datalist.jsp?whoami="+rec.data.jd_caller,rec.data.jd_caller);
});
} else {
delFailure();
}
}
});
}
});
}
if(rs.success){
openTable(rec.data.jd_processdefinitionname,"jsps/common/datalist.jsp?whoami="+rec.data.jd_caller,rec.data.jd_caller);
}
}
});
}
}]},{dataIndex:'js_formurl',width:0},{dataIndex:'jd_caller',width:0},{dataIndex:'jd_selfid',width:0}];
}
}
});