ProductApproval.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.product.ProductApproval', {
  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','scm.product.ProductApproval','core.button.Add','core.button.Submit','core.grid.Panel2',
  9. 'core.button.ResSubmit','core.button.Audit','core.button.Save','core.button.Close',
  10. 'core.button.Update','core.button.Delete','core.button.ResAudit','core.form.MultiField',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField','core.form.FileField',
  12. 'scm.product.ProductApprovals.prodApprovalDetail','scm.product.ProductApprovals.prodApprovalDetailGrid',
  13. 'scm.product.ProductApprovals.productApprovalDetailGrid','scm.product.ProductApprovals.prodAppDetail',
  14. 'scm.product.ProductApprovals.prodAppDetailGrid','scm.product.ProductApprovals.productApprovalDetail',
  15. 'scm.product.ProductApprovals.prodAppFinal','scm.product.ProductApprovals.ProdAppDetailsave',
  16. 'scm.product.ProductApprovals.ProdAppFinalsave','scm.product.ProductApprovals.ProdApprovalDetailsave',
  17. 'scm.product.ProductApprovals.ProductApprovalDetailsave'
  18. ],
  19. init:function(){
  20. var me = this;
  21. this.control({
  22. '#productApprovalDetailGrid':{
  23. itemclick:function(selModel, record){
  24. me.GridUtil.onGridItemClick(selModel, record);
  25. },
  26. afterrender:function(grid){
  27. grid.ReadOnly=false;
  28. }
  29. },
  30. '#prodAppDetailGridtab':{
  31. afterrender:function(){
  32. /* var title='新增物料认定单';
  33. var _c = Ext.getCmp('pa_code');
  34. if( _c && !Ext.isEmpty(_c.value) )
  35. title += '(' + _c.value + ')';
  36. //console.log(me.FormUtil.getActiveTab);
  37. var tab = null;
  38. if(Ext.getCmp("content-panel")){
  39. tab = Ext.getCmp("content-panel").getActiveTab();
  40. }
  41. if(!tab && parent.Ext.getCmp("content-panel"))
  42. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  43. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  44. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  45. if(!tab){
  46. var win = parent.Ext.ComponentQuery.query('window');
  47. if(win.length > 0){
  48. tab = win[win.length-1];
  49. }
  50. }
  51. console.log(tab);
  52. tab.setTitle(title);
  53. //me.FormUtil.getActiveTab.setTitle(title);
  54. var _c = Ext.getCmp('pa_code');
  55. console.log(_c);
  56. if( _c.editable == true){
  57. _c.focus(false, 200)
  58. }*/
  59. }
  60. },
  61. '#prodApprovalDetailGrid':{
  62. itemclick:function(selModel, record){
  63. me.GridUtil.onGridItemClick(selModel, record);
  64. },
  65. afterrender:function(grid){
  66. grid.ReadOnly=false;
  67. console.log(grid);
  68. }
  69. },
  70. '#prodAppDetailGrid':{
  71. itemclick:function(selModel, record){
  72. me.GridUtil.onGridItemClick(selModel, record);
  73. },
  74. afterrender:function(grid){
  75. grid.ReadOnly=false;
  76. }
  77. },
  78. 'mfilefield':{
  79. beforerender:function(f){
  80. f.readOnly=false;
  81. }
  82. },
  83. 'ProductApprovalDetailsaveButton':{
  84. click:function(btn){
  85. if(Ext.getCmp('pa_id').value==''){
  86. return;
  87. }
  88. var form=Ext.getCmp('productApprovalDetail');
  89. var grid=Ext.getCmp('productApprovalDetailGrid');
  90. me.save(form,grid,'scm/product/saveproductApprovalDetail.action');
  91. }
  92. },
  93. 'ProdAppFinalsaveButton':{
  94. click:function(btn){
  95. if(Ext.getCmp('pa_id').value==''){
  96. return;
  97. }
  98. var form=Ext.getCmp('prodAppFinal');
  99. var grid=false;
  100. me.save(form,grid,'scm/product/saveApprovalResult.action');
  101. }
  102. },
  103. 'ProdApprovalDetailsaveButton':{
  104. click:function(btn){
  105. if(Ext.getCmp('pa_id').value==''){
  106. return;
  107. }
  108. var form=Ext.getCmp('prodApprovalDetail');
  109. var grid=Ext.getCmp('prodApprovalDetailGrid');
  110. me.save(form,grid,'scm/product/saveprodApprovalDetail.action');
  111. }
  112. },
  113. 'ProdAppDetailsaveButton':{
  114. click:function(btn){
  115. if(Ext.getCmp('pa_id').value==''){
  116. return;
  117. }
  118. var form=Ext.getCmp('prodAppDetail');
  119. var grid=Ext.getCmp('prodAppDetailGrid');
  120. me.save(form,grid,'scm/product/saveprodAppDetail.action');
  121. }
  122. },
  123. '#save': {
  124. click: function(btn){
  125. var form = me.getForm(btn);
  126. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  127. me.BaseUtil.getRandomNumber();//自动添加编号
  128. }
  129. if(! me.FormUtil.checkForm()){
  130. return;
  131. }
  132. if(form.keyField){
  133. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  134. me.FormUtil.getSeqId(form);
  135. }
  136. }
  137. me.saveAll(form);
  138. }
  139. },
  140. 'erpDeleteButton' : {
  141. click: function(btn){
  142. me.FormUtil.onDelete(Ext.getCmp('pa_id').value);
  143. }
  144. },
  145. 'erpUpdateButton': {
  146. click: function(btn){
  147. var form = me.getForm(btn);
  148. me.updateAll(form);
  149. }
  150. },
  151. 'erpAddButton': {
  152. click: function(){
  153. me.FormUtil.onAdd('addProductApproval', '新增认定单', 'jsps/scm/product/ProductApproval.jsp');
  154. }
  155. },
  156. 'erpCloseButton': {
  157. afterrender:function(btn){
  158. },
  159. click: function(btn){
  160. me.FormUtil.beforeClose(me);
  161. }
  162. },
  163. 'erpSubmitButton': {
  164. afterrender: function(btn){
  165. var status = Ext.getCmp('pa_statuscode');
  166. if(status && status.value != 'ENTERING'){
  167. btn.hide();
  168. }
  169. },
  170. click: function(btn){
  171. me.FormUtil.onSubmit(Ext.getCmp('pa_id').value);
  172. }
  173. },
  174. 'erpResSubmitButton': {
  175. afterrender: function(btn){
  176. var status = Ext.getCmp('pa_statuscode');
  177. if(status && status.value != 'COMMITED'){
  178. btn.hide();
  179. }
  180. },
  181. click: function(btn){
  182. me.FormUtil.onResSubmit(Ext.getCmp('pa_id').value);
  183. }
  184. },
  185. 'erpAuditButton': {
  186. afterrender: function(btn){
  187. var status = Ext.getCmp('pa_statuscode');
  188. if(status && status.value != 'COMMITED'){
  189. btn.hide();
  190. }
  191. },
  192. click: function(btn){
  193. me.FormUtil.onAudit(Ext.getCmp('pa_id').value);
  194. }
  195. },
  196. 'erpResAuditButton': {
  197. afterrender: function(btn){
  198. var status = Ext.getCmp('pa_statuscode');
  199. if(status && status.value != 'AUDITED'){
  200. btn.hide();
  201. }
  202. },
  203. click: function(btn){
  204. me.FormUtil.onResAudit(Ext.getCmp('pa_id').value);
  205. }
  206. }
  207. });
  208. },
  209. save:function(form,grid,url){
  210. var me=this;
  211. if(form.getForm().isValid()){
  212. Ext.each(form.items.items, function(item){
  213. if(item.xtype == 'numberfield'){
  214. if(item.value == null || item.value == ''){
  215. item.setValue(0);
  216. }
  217. }
  218. });
  219. }
  220. if(form.keyField){
  221. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  222. me.FormUtil.getSeqId(form);
  223. }
  224. }
  225. var r=form.getValues();
  226. r.pa_id=Ext.getCmp('pa_id').value;
  227. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  228. if(me.contains(k, 'ext-', true)){
  229. delete r[k];
  230. }
  231. });
  232. r=unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  233. var param = new Array();
  234. if(grid){
  235. param =this.GridUtil.getGridStore(grid);
  236. }
  237. param = param == null ? [] : "[" + param.toString().replace(/\\/g,"%") + "]";
  238. Ext.Ajax.request({
  239. url : basePath + url,
  240. params : {formStore:r,gridStore:param},
  241. method : 'post',
  242. callback : function(options,success,response){
  243. var localJson = new Ext.decode(response.responseText);
  244. if(localJson.success){
  245. saveSuccess(function(){
  246. //add成功后刷新页面进入可编辑的页面
  247. //window.location.reload();
  248. });
  249. } else if(localJson.exceptionInfo){
  250. var str = localJson.exceptionInfo;
  251. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  252. str = str.replace('AFTERSUCCESS', '');
  253. saveSuccess(function(){
  254. });
  255. showError(str);
  256. } else {
  257. showError(str);
  258. return;
  259. }
  260. } else{
  261. saveFailure();//@i18n/i18n.js
  262. }
  263. }
  264. });
  265. },
  266. saveAll:function(form){
  267. form.setLoading(true);//loading...
  268. var me=this;
  269. var grid1=Ext.getCmp('productApprovalDetailGrid');//productApprovalDetailGrid;
  270. var grid2=Ext.getCmp('prodApprovalDetailGrid');//prodApprovalDetailGrid
  271. var grid3=Ext.getCmp('prodAppDetailGrid');//prodAppDetailGrid
  272. var param1=new Array();
  273. var param2=new Array();
  274. var param3=new Array();
  275. if(grid1){
  276. param1=me.GridUtil.getGridStore(grid1);
  277. }
  278. if(grid2){
  279. param2=me.GridUtil.getGridStore(grid2);
  280. }
  281. if(grid3){
  282. param3=me.GridUtil.getGridStore(grid3);
  283. }
  284. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  285. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  286. param3 = param3 == null ? [] : "[" + param3.toString().replace(/\\/g,"%") + "]";
  287. var params=new Object();
  288. params.param1 = unescape(param1.toString().replace(/\\/g,"%"));
  289. params.param2 = unescape(param2.toString().replace(/\\/g,"%"));
  290. params.param3 = unescape(param3.toString().replace(/\\/g,"%"));
  291. var r = form.getValues();
  292. var r1=Ext.getCmp("productApprovalDetail").getValues();
  293. var r2=Ext.getCmp('prodApprovalDetail').getValues();
  294. var r3=Ext.getCmp('prodAppDetail').getValues();
  295. var r4=Ext.getCmp('prodAppFinal').getValues();
  296. for(var n in r1){
  297. r[n]=r1[n];
  298. }
  299. for(var n in r2){
  300. r[n]=r2[n];
  301. }
  302. for(var n in r3){
  303. r[n]=r3[n];
  304. }
  305. for(var n in r4){
  306. r[n]=r4[n];
  307. }
  308. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  309. if(me.contains(k, 'ext-', true)){
  310. delete r[k];
  311. }
  312. });
  313. params.formStore=unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  314. Ext.Ajax.request({
  315. url : basePath + form.saveUrl,
  316. params : params,
  317. method : 'post',
  318. callback : function(options,success,response){
  319. form.setLoading(false);//loading...
  320. var localJson = new Ext.decode(response.responseText);
  321. if(localJson.success){
  322. saveSuccess(function(){
  323. //add成功后刷新页面进入可编辑的页面
  324. var value = r[form.keyField];
  325. var formCondition = form.keyField + "IS" + value ;
  326. if(me.contains(window.location.href, '?', true)){
  327. window.location.href = window.location.href + '&formCondition=' +
  328. formCondition;
  329. } else {
  330. window.location.href = window.location.href + '?formCondition=' +
  331. formCondition;
  332. }
  333. });
  334. } else if(localJson.exceptionInfo){
  335. var str = localJson.exceptionInfo;
  336. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  337. str = str.replace('AFTERSUCCESS', '');
  338. saveSuccess(function(){
  339. //add成功后刷新页面进入可编辑的页面
  340. var value = r[form.keyField];
  341. var formCondition = form.keyField + "IS" + value ;
  342. if(me.contains(window.location.href, '?', true)){
  343. window.location.href = window.location.href + '&formCondition=' +
  344. formCondition;
  345. } else {
  346. window.location.href = window.location.href + '?formCondition=' +
  347. formCondition;
  348. }
  349. });
  350. showError(str);
  351. } else {
  352. showError(str);
  353. return;
  354. }
  355. } else{
  356. saveFailure();//@i18n/i18n.js
  357. }
  358. }
  359. });
  360. },
  361. updateAll:function(form){
  362. form.setLoading(true);//loading...
  363. var me=this;
  364. var grid1=Ext.getCmp('productApprovalDetailGrid');//productApprovalDetailGrid;
  365. var grid2=Ext.getCmp('prodApprovalDetailGrid');//prodApprovalDetailGrid
  366. var grid3=Ext.getCmp('prodAppDetailGrid');//prodAppDetailGrid
  367. var param1=new Array();
  368. var param2=new Array();
  369. var param3=new Array();
  370. if(grid1){
  371. param1=me.GridUtil.getGridStore(grid1);
  372. }
  373. if(grid2){
  374. param2=me.GridUtil.getGridStore(grid2);
  375. }
  376. if(grid3){
  377. param3=me.GridUtil.getGridStore(grid3);
  378. }
  379. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  380. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  381. param3 = param3 == null ? [] : "[" + param3.toString().replace(/\\/g,"%") + "]";
  382. var params=new Object();
  383. params.param1 = unescape(param1.toString().replace(/\\/g,"%"));
  384. params.param2 = unescape(param2.toString().replace(/\\/g,"%"));
  385. params.param3 = unescape(param3.toString().replace(/\\/g,"%"));
  386. var r = form.getValues();
  387. var r1=Ext.getCmp("productApprovalDetail").getValues();
  388. var r2=Ext.getCmp('prodApprovalDetail').getValues();
  389. var r3=Ext.getCmp('prodAppDetail').getValues();
  390. var r4=Ext.getCmp('prodAppFinal').getValues();
  391. for(var n in r1){
  392. r[n]=r1[n];
  393. }
  394. for(var n in r2){
  395. r[n]=r2[n];
  396. }
  397. for(var n in r3){
  398. r[n]=r3[n];
  399. }
  400. for(var n in r4){
  401. r[n]=r4[n];
  402. }
  403. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  404. if(me.contains(k, 'ext-', true)){
  405. delete r[k];
  406. }
  407. });
  408. params.formStore=unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  409. Ext.Ajax.request({
  410. url : basePath + form.updateUrl,
  411. params : params,
  412. method : 'post',
  413. callback : function(options,success,response){
  414. form.setLoading(false);//loading...
  415. var localJson = new Ext.decode(response.responseText);
  416. if(localJson.success){
  417. saveSuccess(function(){
  418. //update成功后刷新页面进入可编辑的页面
  419. window.location.reload();
  420. });
  421. } else if(localJson.exceptionInfo){
  422. var str = localJson.exceptionInfo;
  423. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  424. str = str.replace('AFTERSUCCESS', '');
  425. saveSuccess(function(){
  426. //update成功后刷新页面进入可编辑的页面
  427. window.location.reload();
  428. });
  429. showError(str);
  430. } else {
  431. showError(str);
  432. return;
  433. }
  434. } else{
  435. saveFailure();//@i18n/i18n.js
  436. }
  437. }
  438. });
  439. },
  440. getForm: function(btn){
  441. return btn.ownerCt.ownerCt;
  442. },
  443. contains: function(string,substr,isIgnoreCase){
  444. if(isIgnoreCase){
  445. string=string.toLowerCase();
  446. substr=substr.toLowerCase();
  447. }
  448. var startChar=substr.substring(0,1);
  449. var strLen=substr.length;
  450. for(var j=0;j<string.length-strLen+1;j++){
  451. if(string.charAt(j)==startChar){//如果匹配起始字符,开始查找
  452. if(string.substring(j,j+strLen)==substr){//如果从j开始的字符与str匹配,那ok
  453. return true;
  454. }
  455. }
  456. }
  457. return false;
  458. }
  459. });