ProductApproval.js 13 KB

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