GridPanel.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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. ],
  73. data: res.nodes
  74. });
  75. var columns = [{header: '节点名称', dataIndex: 'jn_name',width:100},
  76. {header: '处理人', dataIndex: 'jn_dealManId',width:80},
  77. {header: '处理人姓名', dataIndex: 'jn_dealManName',width:100},
  78. {header: '处理日期', dataIndex: 'jn_dealTime',width:150},
  79. {header: '处理结果', dataIndex: 'jn_dealResult',width:80},
  80. {header: '管理要点', dataIndex: 'jn_operatedDescription',width:150,editor:{xtype:'textareatrigger',hideTrigger:false,onTriggerClick:me.onTriggerClick},renderer:function (val, meta, record){
  81. return '<span style="color:green;padding-left:2px">' + val + '</span>';
  82. }},
  83. {header: '审批意见', dataIndex: 'jn_nodeDescription',width:140,editor:{xtype:'textareatrigger',hideTrigger:false}},
  84. {header: '备注信息', dataIndex: 'jn_infoReceiver',width:120},
  85. {header: '停留(s)', dataIndex: 'jn_holdtime',align:'right',width:50},
  86. {header: '附件', dataIndex: 'jn_attachs',align:'right',width:80,renderer:function(val){
  87. if(val){
  88. return '<a href="javascript:scanAttachs(\'' + val + '\');">查看附件</a>';
  89. }else return '无附件';
  90. }}
  91. ];
  92. Ext.getCmp("historyGrid").reconfigure(store, columns);
  93. nodes = res.nodes;
  94. var toolbar=Ext.getCmp('nodeToolbar');
  95. if(toolbar){
  96. toolbar.add('->');
  97. for(var i=0;i<nodes.length;i++){//显示在页面左上角一排信息 2013-3-8 15:48:53
  98. var ti = Ext.create('Ext.toolbar.TextItem',{
  99. text: nodes[i]['jn_name']+nodes[i]['jn_dealManId'],
  100. });
  101. toolbar.add(ti);
  102. toolbar.add('-');
  103. }
  104. }
  105. }
  106. });
  107. },
  108. download:function(val,meta,record){
  109. var value=Ext.getCmp('wr_taskpercentdone').getValue();
  110. var unit=Ext.getCmp('wr_assignpercent').getValue();
  111. var percent=Ext.getCmp('wr_percentdone');
  112. percent.setReadOnly(true);
  113. value=value+(percent.value)*unit/100;
  114. Ext.getCmp('wr_progress').updateProgress(value/100,'当前任务进度:'+Math.round(value)+'%');
  115. Ext.getCmp('wr_redcord').setHeight(320);
  116. var form=me.getForm(btn);
  117. var attachs=Ext.getCmp("wr_attachs").getValue();
  118. if(attachs!=null){
  119. Ext.Ajax.request({//拿到grid的columns
  120. url : basePath + 'common/getFilePaths.action',
  121. async: false,
  122. params: {
  123. id:attachs
  124. },
  125. method : 'post',
  126. callback : function(options,success,response){
  127. var res = new Ext.decode(response.responseText);
  128. if(res.exception || res.exceptionInfo){
  129. showError(res.exceptionInfo);
  130. return;
  131. }
  132. attach = res.files != null ? res.files : [];
  133. }
  134. });
  135. form.add({
  136. title:'相关文件',
  137. id:'container',
  138. style: {borderColor:'green', borderStyle:'solid', borderWidth:'0px'},
  139. xtype:'container',
  140. columnWidth:1
  141. });
  142. var items = new Array();
  143. items.push({
  144. style: 'background:#CDBA96;',
  145. html: '<h1>相关文件:</h1>',
  146. });
  147. Ext.each(attach, function(){
  148. var path = this.fp_path;
  149. var name = '';
  150. if(contains(path, '\\', true)){
  151. name = path.substring(path.lastIndexOf('\\') + 1);
  152. } else {
  153. name = path.substring(path.lastIndexOf('/') + 1);
  154. }
  155. items.push({
  156. style: 'background:#C6E2FF;',
  157. html: '<img src="' + basePath + 'resource/images/mainpage/things.png" width=16 height=16/>' +
  158. '<span>文件:' + name + '<a href="' + basePath + "common/download.action?path=" + path + '">下载</a></span>',
  159. });
  160. });
  161. Ext.getCmp('container').add(items);
  162. }
  163. },
  164. onTriggerClick:function(){
  165. var trigger = this,
  166. value = this.value;
  167. var arr=value.split(";");
  168. var realValue="";
  169. for(var i=0;i<arr.length;i++){
  170. if(arr[i].indexOf('(否)')>0){
  171. realValue+='<font size=3 color="red">'+arr[i]+';<font></br>';
  172. }else realValue+=arr[i]+';</br>';
  173. }
  174. var win = new Ext.window.Window(
  175. {
  176. id : 'win',
  177. height : 200,
  178. width : 600,
  179. maximizable : false,
  180. buttonAlign : 'center',
  181. layout : 'anchor',
  182. title:'详细信息',
  183. items : [ {
  184. xtype: 'htmleditor',
  185. enableColors: false,
  186. enableAlignments: false,
  187. enableFont: false,
  188. enableFontSize: false,
  189. enableFormat: false,
  190. enableLinks: false,
  191. enableLists: false,
  192. enableSourceEdit: false,
  193. frame: false,
  194. height: 140,
  195. width: 600,
  196. fieldStyle: 'border-bottom: none;',
  197. value:realValue
  198. }],
  199. buttons:[{
  200. text:'关闭',
  201. handler:function(btn){
  202. win.close();
  203. }
  204. }]
  205. });
  206. win.show();
  207. }
  208. });