CheckList.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.plm.test.CheckList', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'core.form.Panel','plm.test.CheckList','core.grid.Panel2','core.toolbar.Toolbar',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.ResSubmit','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.DeleteDetail',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger'
  12. ],
  13. init:function(){
  14. var me=this;
  15. this.control({
  16. 'erpGridPanel2': {
  17. itemclick: this.onGridItemClick
  18. },
  19. 'erpSaveButton': {
  20. click: function(btn){
  21. this.save(this);
  22. }
  23. },
  24. 'erpCloseButton': {
  25. click: function(btn){
  26. },
  27. scope:this,
  28. },
  29. 'erpUpdateButton': {
  30. afterrender: function(btn){
  31. var status = Ext.getCmp('cl_statuscode');
  32. if(status && status.value != 'ENTERING'){
  33. var grid = Ext.getCmp('grid');
  34. grid.plugins[0].destroy();
  35. btn.hide();
  36. }
  37. },
  38. click: function(btn){
  39. this.FormUtil.onUpdate(this);
  40. }
  41. },
  42. 'erpDeleteDetailButton':{
  43. afterrender:function(btn){
  44. var status = Ext.getCmp('cl_statuscode');
  45. if(status && status.value != 'ENTERING'){
  46. btn.disabled=true
  47. }
  48. }
  49. },
  50. 'erpDeleteButton': {
  51. afterrender: function(btn){
  52. var status = Ext.getCmp('cl_statuscode');
  53. if(status && status.value != 'ENTERING'){
  54. btn.hide();
  55. }
  56. },
  57. click: function(btn){
  58. this.FormUtil.onDelete(Ext.getCmp('cl_id').value);
  59. }
  60. },
  61. 'erpAddButton': {
  62. click: function(){
  63. me.FormUtil.onAdd('addCheckList', '创建项目', 'jsps/plm/test/checklist.jsp');
  64. }
  65. },
  66. 'erpSubmitButton': {
  67. afterrender: function(btn){
  68. var status = Ext.getCmp('cl_statuscode');
  69. if(status && status.value != 'ENTERING'){
  70. btn.hide();
  71. }
  72. },
  73. click: function(btn){
  74. me.FormUtil.onSubmit(Ext.getCmp('cl_id').value);
  75. }
  76. },
  77. 'erpResSubmitButton':{
  78. afterrender:function(btn){
  79. var status = Ext.getCmp('cl_statuscode');
  80. if(status && status.value != 'COMMITED'){
  81. btn.hide();
  82. }
  83. },
  84. click:function(btn){
  85. me.FormUtil.onResSubmit(Ext.getCmp('cl_id').value);
  86. }
  87. },
  88. 'erpDeleteDetailButton': {
  89. afterrender: function(btn){
  90. btn.ownerCt.add({
  91. id:'fileform',
  92. xtype:'form',
  93. layout:'column',
  94. bodyStyle: 'background: transparent no-repeat 0 0;border: none;',
  95. items: [{
  96. xtype: 'filefield',
  97. name: 'file',
  98. buttonOnly: true,
  99. hideLabel: true,
  100. disabled:true,
  101. width: 90,
  102. height: 17,
  103. id:'file',
  104. buttonConfig: {
  105. iconCls: 'x-button-icon-pic',
  106. text: '上传附件',
  107. },
  108. listeners: {
  109. change: function(field){
  110. var filename = '';
  111. if(contains(field.value, "\\", true)){
  112. filename = field.value.substring(field.value.lastIndexOf('\\') + 1);
  113. } else {
  114. filename = field.value.substring(field.value.lastIndexOf('/') + 1);
  115. }
  116. field.ownerCt.getForm().submit({
  117. url: basePath + 'common/upload.action?em_code=' + em_code,
  118. waitMsg: "正在解析文件信息",
  119. success: function(fp,o){
  120. console.log(o);
  121. if(o.result.error){
  122. showError(o.result.error);
  123. } else {
  124. Ext.Msg.alert("恭喜", filename + " 上传成功!");
  125. field.setDisabled(true);
  126. var record=Ext.getCmp('grid').selModel.lastSelected;
  127. console.log(record);
  128. if(record){
  129. record.set('cld_attach',filename+";"+o.result.filepath);
  130. }
  131. }
  132. }
  133. });
  134. }
  135. }}]
  136. });
  137. }
  138. },
  139. 'erpAuditButton': {
  140. afterrender: function(btn){
  141. var status = Ext.getCmp('cl_statuscode');
  142. if(status && status.value != 'COMMITED'){
  143. btn.hide();
  144. }
  145. },
  146. click: function(btn){
  147. me.FormUtil.onAudit(Ext.getCmp('cl_id').value);
  148. }
  149. },
  150. 'erpResAuditButton':{
  151. afterrender: function(btn){
  152. var status = Ext.getCmp('cl_statuscode');
  153. if(status && status.value != 'AUDITED'){
  154. btn.hide();
  155. }
  156. },
  157. click: function(btn){
  158. me.FormUtil.onResAudit(Ext.getCmp('cl_id').value);
  159. }
  160. },
  161. 'dbfindtrigger[name=cld_newhandman]': {
  162. afterrender:function(trigger){
  163. /*trigger.gridKey='cl_prjplanid';
  164. trigger.mappinggirdKey='tm_prjid';
  165. trigger.gridErrorMessage='请选择项目计划';*/
  166. }
  167. },
  168. });
  169. },
  170. onGridItemClick: function(selModel, record){//grid行选择
  171. var me = this;
  172. var status = Ext.getCmp('cl_statuscode');
  173. var value=record.data.cld_id;
  174. Ext.getCmp('file').setDisabled(false);
  175. if(status && status.value != 'ENTERING'&&value!=0){
  176. //不能修改了
  177. var formCondition = "cld_id IS" + value ;
  178. var gridCondition="ch_cldid IS"+value;
  179. var panel = Ext.getCmp("cld_id=" +value);
  180. var caller="Check";
  181. var url=basePath+"jsps/plm/test/check.jsp";
  182. var main = parent.Ext.getCmp("content-panel");
  183. if(!panel){
  184. var title = "";
  185. if (value.toString().length>4) {
  186. title = value.toString().substring(value.toString().length-4);
  187. } else {
  188. title = value;
  189. }
  190. panel = {
  191. //title : main.getActiveTab().title+'('+title+')',
  192. title:'check单('+title+')',
  193. tag : 'iframe',
  194. tabConfig:{tooltip:'check单('+title+')'},
  195. frame : true,
  196. border : false,
  197. layout : 'fit',
  198. iconCls : 'x-tree-icon-tab-tab',
  199. html : '<iframe id="iframe_maindetail_'+caller+"_"+value+'" src="'+url+'?formCondition='+formCondition+'&gridCondition='+gridCondition+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  200. closable : true,
  201. listeners : {
  202. close : function(){
  203. main.setActiveTab(main.getActiveTab().id);
  204. }
  205. }
  206. };
  207. me.openTab(panel,"ch_id=" + value);
  208. }else{
  209. main.setActiveTab(panel);
  210. }
  211. }else{
  212. this.gridLastSelected = record;
  213. var grid = Ext.getCmp('grid');
  214. if(record.data[grid.necessaryField] == null || record.data[grid.necessaryField] == ''){
  215. this.gridLastSelected.findable = true;//空数据可以在输入完code,并移开光标后,自动调出该条数据
  216. } else {
  217. this.gridLastSelected.findable = false;
  218. }
  219. this.GridUtil.onGridItemClick(selModel, record);
  220. }
  221. },
  222. openTab : function (panel,id){
  223. var me = this;
  224. var o = (typeof panel == "string" ? panel : id || panel.id);
  225. var main = parent.Ext.getCmp("content-panel");
  226. var tab = main.getComponent(o);
  227. if (tab) {
  228. main.setActiveTab(tab);
  229. } else if(typeof panel!="string"){
  230. panel.id = o;
  231. var p = main.add(panel);
  232. main.setActiveTab(p);
  233. }
  234. },
  235. getForm: function(btn){
  236. return btn.ownerCt.ownerCt;
  237. },
  238. save: function(btn){
  239. var me = this;
  240. if(Ext.getCmp('cl_code').value == null || Ext.getCmp('cl_code').value == ''){
  241. me.BaseUtil.getRandomNumber();
  242. console.log(Ext.getCmp('cl_code').getValue());
  243. Ext.getCmp('cl_code').setValue('BL_'+Ext.getCmp('cl_code').getValue() );
  244. }
  245. me.FormUtil.beforeSave(me);
  246. },
  247. });