GridPanel.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. Ext.define('erp.view.common.JProcess.GridPanel',{
  2. extend: 'Ext.grid.Panel',
  3. alias: 'widget.erpHistoryProcessGridPanel',
  4. layout : 'auto',
  5. id: 'historyGrid',
  6. emptyText : '无数据',
  7. title: '<h1 style="color:black ! important;">审批历史</h1>',
  8. columnLines : true,
  9. autoScroll : true,
  10. //store: [],
  11. columns: [],
  12. BaseUtil: Ext.create('erp.util.BaseUtil'),
  13. nodeId: null,
  14. plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
  15. clicksToEdit: 1
  16. })],
  17. initComponent : function(){
  18. formCondition = this.BaseUtil.getUrlParam('formCondition');//从url解析参数
  19. formCondition = (formCondition == null) ? "" : formCondition.replace(/IS/g,"=");
  20. var strArr = formCondition.split("=");
  21. var acountmaster=getUrlParam('newMaster'),nodeId=this.nodeId || strArr[1];
  22. if(!this.deferLoadData){
  23. var processInstanceId=this.processInstanceId?this.processInstanceId:this.getProcessInstanceId(nodeId,acountmaster);
  24. this.getOwnStore(processInstanceId);
  25. }
  26. this.callParent(arguments);
  27. },
  28. getProcessInstanceId:function (nodeId,acountmaster){
  29. var processInstanceId=null;
  30. Ext.Ajax.request({
  31. url: basePath + 'common/getProcessInstanceId.action',
  32. params: {
  33. jp_nodeId : nodeId,
  34. master:acountmaster,
  35. _noc:1
  36. },
  37. async:false,
  38. success: function(response){
  39. var text = response.responseText;
  40. var jsonData = Ext.decode(text);
  41. processInstanceId= jsonData.processInstanceId;
  42. }
  43. });
  44. return processInstanceId;
  45. },
  46. getOwnStore: function(processInstanceId){
  47. var me = this;
  48. Ext.Ajax.request({
  49. url : basePath + 'common/getAllHistoryNodes.action',
  50. params: {
  51. processInstanceId:processInstanceId ,
  52. _noc:1
  53. },
  54. method : 'post',
  55. callback : function(options,success,response){
  56. var res = new Ext.decode(response.responseText);
  57. var store = Ext.create('Ext.data.Store', {
  58. storeId: 'gridStore',
  59. fields: [{name: 'jn_id', type: 'string'},
  60. {name: 'jn_name', type: 'string'},
  61. {name: 'jn_dealManId', type: 'string'},
  62. {name: 'jn_dealManName', type: 'string'},
  63. {name: 'jn_dealManName', type: 'string'},
  64. {name: 'jn_dealTime', type: 'string'},
  65. {name:'jn_holdtime',type:'int'},
  66. {name: 'jn_dealResult', type: 'string'},
  67. {name: 'jn_operatedDescription', type: 'string'},
  68. {name: 'jn_nodeDescription', type: 'string'},
  69. {name: 'jn_infoReceiver', type: 'string'},
  70. {name: 'jn_processInstanceId', type: 'string'},
  71. {name: 'jn_attachs', type: 'string'},
  72. {name: 'jn_attach', type: 'string'},//是否回退节点
  73. ],
  74. data: res.nodes
  75. });
  76. var columns = [{header: '节点名称', dataIndex: 'jn_name',width:100},
  77. {header: '处理人', dataIndex: 'jn_dealManId',width:80},
  78. {header: '处理人姓名', dataIndex: 'jn_dealManName',width:100},
  79. {header: '处理日期', dataIndex: 'jn_dealTime',width:150},
  80. {header: '处理结果', dataIndex: 'jn_dealResult',width:80},
  81. {header: '管理要点', dataIndex: 'jn_operatedDescription',width:150,editor:{xtype:'textareatrigger',hideTrigger:false,onTriggerClick:me.onTriggerClick},renderer:function (val, meta, record){
  82. return '<span style="color:green;padding-left:2px">' + val + '</span>';
  83. }},
  84. {header: '审批意见', dataIndex: 'jn_nodeDescription',width:140,editor:{xtype:'textareatrigger',hideTrigger:false}},
  85. {header: '备注信息', dataIndex: 'jn_infoReceiver',width:120},
  86. {header: '停留(s)', dataIndex: 'jn_holdtime',align:'right',width:50},
  87. {header: '附件', dataIndex: 'jn_attachs',align:'right',width:80,renderer:function(val){
  88. if(val){
  89. return '<a href="javascript:scanAttachs(\'' + val + '\');">查看附件</a>';
  90. }else return '无附件';
  91. }}
  92. ];
  93. Ext.getCmp("historyGrid").reconfigure(store, columns);
  94. nodes = res.nodes;
  95. var toolbar=Ext.getCmp('nodeToolbar');
  96. if(toolbar){
  97. toolbar.add('->');
  98. for(var i=0;i<nodes.length;i++){//显示在页面左上角一排信息 2013-3-8 15:48:53
  99. var ti = Ext.create('Ext.toolbar.TextItem',{
  100. text: nodes[i]['jn_name']+nodes[i]['jn_dealManId'],
  101. });
  102. toolbar.add(ti);
  103. toolbar.add('-');
  104. }
  105. }
  106. }
  107. });
  108. },
  109. download:function(val,meta,record){
  110. var value=Ext.getCmp('wr_taskpercentdone').getValue();
  111. var unit=Ext.getCmp('wr_assignpercent').getValue();
  112. var percent=Ext.getCmp('wr_percentdone');
  113. percent.setReadOnly(true);
  114. value=value+(percent.value)*unit/100;
  115. Ext.getCmp('wr_progress').updateProgress(value/100,'当前任务进度:'+Math.round(value)+'%');
  116. Ext.getCmp('wr_redcord').setHeight(320);
  117. var form=me.getForm(btn);
  118. var attachs=Ext.getCmp("wr_attachs").getValue();
  119. if(attachs!=null){
  120. Ext.Ajax.request({//拿到grid的columns
  121. url : basePath + 'common/getFilePaths.action',
  122. async: false,
  123. params: {
  124. id:attachs
  125. },
  126. method : 'post',
  127. callback : function(options,success,response){
  128. var res = new Ext.decode(response.responseText);
  129. if(res.exception || res.exceptionInfo){
  130. showError(res.exceptionInfo);
  131. return;
  132. }
  133. attach = res.files != null ? res.files : [];
  134. }
  135. });
  136. form.add({
  137. title:'相关文件',
  138. id:'container',
  139. style: {borderColor:'green', borderStyle:'solid', borderWidth:'0px'},
  140. xtype:'container',
  141. columnWidth:1
  142. });
  143. var items = new Array();
  144. items.push({
  145. style: 'background:#CDBA96;',
  146. html: '<h1>相关文件:</h1>',
  147. });
  148. Ext.each(attach, function(){
  149. var path = this.fp_path;
  150. var name = '';
  151. if(contains(path, '\\', true)){
  152. name = path.substring(path.lastIndexOf('\\') + 1);
  153. } else {
  154. name = path.substring(path.lastIndexOf('/') + 1);
  155. }
  156. items.push({
  157. style: 'background:#C6E2FF;',
  158. html: '<img src="' + basePath + 'resource/images/mainpage/things.png" width=16 height=16/>' +
  159. '<span>文件:' + name + '<a href="' + basePath + "common/download.action?path=" + path + '">下载</a></span>',
  160. });
  161. });
  162. Ext.getCmp('container').add(items);
  163. }
  164. },
  165. onTriggerClick:function(){
  166. var trigger = this,
  167. value = this.value;
  168. var arr=value.split(";");
  169. var realValue="";
  170. for(var i=0;i<arr.length;i++){
  171. if(arr[i].indexOf('(否)')>0){
  172. realValue+='<font size=3 color="red">'+arr[i]+';<font></br>';
  173. }else realValue+=arr[i]+';</br>';
  174. }
  175. var win = new Ext.window.Window(
  176. {
  177. id : 'win',
  178. height : 200,
  179. width : 600,
  180. maximizable : false,
  181. buttonAlign : 'center',
  182. layout : 'anchor',
  183. title:'详细信息',
  184. items : [ {
  185. xtype: 'htmleditor',
  186. enableColors: false,
  187. enableAlignments: false,
  188. enableFont: false,
  189. enableFontSize: false,
  190. enableFormat: false,
  191. enableLinks: false,
  192. enableLists: false,
  193. enableSourceEdit: false,
  194. frame: false,
  195. height: 140,
  196. width: 600,
  197. fieldStyle: 'border-bottom: none;',
  198. value:realValue
  199. }],
  200. buttons:[{
  201. text:'关闭',
  202. handler:function(btn){
  203. win.close();
  204. }
  205. }]
  206. });
  207. win.show();
  208. }
  209. });