FlowPortal.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. Ext.define('erp.view.common.DeskTop.FlowPortal',{
  2. extend: 'erp.view.common.DeskTop.Portlet',
  3. alias: 'widget.flowportal',
  4. title: '<div class="div-left">审批流程</div>',
  5. iconCls: 'main-todo',
  6. enableTools:true,
  7. animCollapse: false,
  8. pageCount:10,
  9. activeRefresh:true,
  10. autoRefresh:true,
  11. itemConfig:{
  12. toDo:'待办',
  13. toLaunch:'待发起',
  14. alreadyDo:'已办理',
  15. alreadyLaunch:'已发起'
  16. },
  17. initComponent : function(){
  18. var me=this;
  19. Ext.apply(this,{
  20. items:[Ext.widget('tabpanel',{
  21. autoShow: true,
  22. tabPosition:'top',
  23. minHeight:200,
  24. frame:true,
  25. items:me._initItems()
  26. })]
  27. });
  28. this.callParent(arguments);
  29. },
  30. _initItems:function(){
  31. var me=this,items=new Array(),conf=me.itemConfig;
  32. for(var c in conf){
  33. var component=me['_'+c].apply(me,[c,conf[c]]);
  34. component.addListener('activate',function(c){
  35. c.getStore().load({params:{
  36. count:me.pageCount
  37. }});
  38. });
  39. items.push(component);
  40. }
  41. return items;
  42. },
  43. _toDo:function(){
  44. var me=this,fields=['JP_STATUS','JP_NODEID','JP_NAME','JP_NODENAME','JP_LAUNCHTIME','JP_LAUNCHERNAME','JP_CODEVALUE','JP_PROCESSNOTE','CURRENTMASTER','JP_STATUS','TYPECODE'];
  45. return Ext.widget('gridpanel',{
  46. title:arguments[1],
  47. layout:'fit',
  48. columns:[{
  49. text:'标题',
  50. cls:'x-grid-header-simple',
  51. dataIndex:'JP_NODEID',
  52. flex:1,
  53. id: 'topic',
  54. renderer:function(val,meta,record){
  55. var note=record.get('JP_PROCESSNOTE'),remindImg='',url='jsps/common/jprocessDeal.jsp',CURRENTMASTER=record.get('CURRENTMASTER'),TYPECODE=record.get('TYPECODE');
  56. if(note==null || note =='' || note=='null') {
  57. note='';
  58. }
  59. else note='</br><font color="#777">'+note+'</font>';
  60. if(TYPECODE=='procand'){
  61. url='jsps/common/jtaketask.jsp';
  62. remindImg='<img src="'+basePath+'resource/images/mainpage/mail_take.png" data-qtip="待接管">';
  63. }else if(TYPECODE=='unprocess'){
  64. url+='?_do=1';
  65. remindImg='<img src="'+basePath+'resource/images/mainpage/mail_un.png" data-qtip="未通过">';
  66. }
  67. else remindImg='<img src="'+basePath+'resource/images/mainpage/mail_ok.png" data-qtip="待审批">';
  68. return Ext.String.format('{5}<span style="color:#436EEE;padding-left:2px"><a href="javascript:openTable({3},\'JProcess!Me\',\'任务流程\',\'{6}\',\'jp_nodeId\',null,null,\'{4}\');" target="_blank" style="padding-left:2px">{0}&nbsp;{1}</a>{2}</span>',
  69. record.get('JP_NAME'),
  70. record.get('JP_CODEVALUE'),
  71. note,
  72. record.get('JP_NODEID'),
  73. CURRENTMASTER,
  74. remindImg,url
  75. );
  76. }
  77. },{
  78. text:'发起人',
  79. cls:'x-grid-header-simple',
  80. width:80,
  81. dataIndex:'JP_LAUNCHERNAME'
  82. },{
  83. text:'发起时间',
  84. cls:'x-grid-header-simple',
  85. width:150,
  86. dataIndex:'JP_LAUNCHTIME',
  87. xtype:'datecolumn',
  88. renderer:function(value){
  89. return Ext.Date.format(new Date(value),'Y-m-d H:i:s');
  90. }
  91. }],
  92. viewConfig :{
  93. stripeRows:false,
  94. trackOver: false,
  95. plugins: [{
  96. ptype: 'preview',
  97. expanded: true,
  98. pluginId: 'preview'
  99. }]
  100. },
  101. store:me.getQueryStore(fields,arguments[0])
  102. });
  103. },
  104. _toLaunch:function(){
  105. var me=this,fields=['TITLE','CODE','PAGELINK'];
  106. return Ext.widget('gridpanel',{
  107. title:arguments[1],
  108. columns:[{
  109. text:'单据编号',
  110. id:'topic',
  111. cls:'x-grid-header-simple',
  112. flex:0.5,
  113. dataIndex:'CODE',
  114. renderer:function(val,meta,record){
  115. return Ext.String.format('<a href="javascript:openUrl(\'{0}\',null);" target="_blank">{1}</a>',
  116. record.get('PAGELINK'),
  117. record.get('CODE')
  118. );
  119. }
  120. },{
  121. text:'标题',
  122. cls:'x-grid-header-simple',
  123. dataIndex:'TITLE',
  124. flex:0.5
  125. }],
  126. store:me.getQueryStore(fields,arguments[0])
  127. });
  128. },
  129. _alreadyDo:function(){
  130. var me=this,fields=['JP_NAME','JP_STATUS','JP_NODEID','JP_CODEVALUE','JN_NAME','JN_DEALRESULT','JN_DEALTIME','JN_NODEDESCRIPTION'];
  131. return Ext.widget('gridpanel',{
  132. title:arguments[1],
  133. layout:'fit',
  134. columns:[{
  135. text:'标题',
  136. dataIndex:'JP_NODEID',
  137. cls:'x-grid-header-simple',
  138. id: 'topic',
  139. flex:1,
  140. renderer:function(val,meta,record){
  141. var description=record.get('JN_NODEDESCRIPTION');
  142. if(description==null || description =='' || description=='null') {
  143. description='';
  144. }
  145. else description='</br><font color="#777">'+description+'</font>';
  146. return Ext.String.format('<a href="javascript:openTable({3},\'JProcess!Me\',\'任务流程\',\'jsps/common/jprocessDeal.jsp?_do=1\',\'jp_nodeId\',null);" target="_blank">{0}&nbsp;{1}</a>{2}',
  147. record.get('JP_NAME'),
  148. record.get('JP_CODEVALUE'),
  149. description,
  150. record.get('JP_NODEID')
  151. );
  152. }
  153. },{
  154. text:'处理结果',
  155. cls:'x-grid-header-simple',
  156. dataIndex:'JN_DEALRESULT'
  157. },{
  158. text:'处理时间',
  159. dataIndex:'JN_DEALTIME',
  160. cls:'x-grid-header-simple',
  161. width:150
  162. }],
  163. store:me.getQueryStore(fields,arguments[0])
  164. });
  165. },
  166. _alreadyLaunch:function(){
  167. var me=this,fields=['JP_STATUS','JP_NODEID','JP_NAME','JP_NODENAME','JP_NODEDEALMANNAME','JP_LAUNCHTIME','JP_LAUNCHERNAME','JP_CODEVALUE'];
  168. return Ext.widget('gridpanel',{
  169. title:arguments[1],
  170. columns:[{
  171. text:'标题',
  172. cls:'x-grid-header-simple',
  173. flex:1,
  174. dataIndex:'JP_NAME',
  175. id:'topic',
  176. renderer:function(val,meta,record){
  177. var description=record.get('JN_NODEDESCRIPTION');
  178. if(description==null || description =='' || description=='null') {
  179. description='';
  180. }
  181. else description='</br><font color="#777">'+description+'</font>';
  182. return Ext.String.format('<a href="javascript:openTable({3},\'JProcess!Me\',\'任务流程\',\'jsps/common/jprocessDeal.jsp?_do=1\',\'jp_nodeId\',null);" target="_blank">{0}&nbsp;{1}</a>{2}',
  183. record.get('JP_NAME'),
  184. record.get('JP_CODEVALUE'),
  185. description,
  186. record.get('JP_NODEID')
  187. );
  188. }
  189. },{
  190. text:'当前节点',
  191. dataIndex:'JP_NODENAME',
  192. cls:'x-grid-header-simple',
  193. flex:0.5
  194. },{
  195. text:'状态',
  196. dataIndex:'JP_STATUS',
  197. cls:'x-grid-header-simple',
  198. width:60
  199. },{
  200. text:'处理人',
  201. dataIndex:'JP_NODEDEALMANNAME',
  202. cls:'x-grid-header-simple',
  203. width:80
  204. }],
  205. store:me.getQueryStore(fields,arguments[0])
  206. });
  207. },
  208. _alreadyCommunicate:function(){
  209. return Ext.widget('gridpanel',{
  210. title:'已沟通',
  211. columns:[{
  212. text:'标题'
  213. },{
  214. text:'沟通节点'
  215. },{
  216. text:'状态'
  217. }]
  218. });
  219. },
  220. getQueryStore:function(fields,type,autoLoad){
  221. var me=this;
  222. return Ext.create('Ext.data.Store',{
  223. fields:fields,
  224. proxy: {
  225. type: 'ajax',
  226. url : basePath + 'common/desktop/process/'+type+'.action',
  227. method : 'GET',
  228. extraParams:{
  229. count:me.pageCount
  230. },
  231. reader: {
  232. type: 'json',
  233. root: 'data'
  234. }
  235. },
  236. autoLoad:false
  237. });
  238. },
  239. getMore:function(){
  240. openTable(null,null,'更多流程',"jsps/common/moreflow.jsp",null,null);
  241. },
  242. _dorefresh:function(panel){
  243. var activeTab=panel.down('tabpanel').getActiveTab();
  244. if(activeTab) activeTab.fireEvent('activate',activeTab);
  245. }
  246. });