ProductReview.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.bom.ProductReview', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. GridUtil: Ext.create('erp.util.GridUtil'),
  7. views:[
  8. 'pm.bom.ProductReview','core.form.Panel','core.grid.Panel2','core.form.MultiField','core.form.FileField',
  9. 'core.button.Add','core.button.Save','core.button.Close',
  10. 'core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.ResAudit',
  11. 'core.button.Update','core.button.Delete','core.form.YnField','core.grid.YnColumn',
  12. 'core.toolbar.Toolbar','core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger',
  13. 'core.trigger.MultiDbfindTrigger'
  14. ],
  15. init:function(){
  16. var me = this;
  17. this.control({
  18. 'erpGridPanel2': {
  19. afterrender: function(g) {
  20. g.plugins[0].on('beforeedit', function(args) {
  21. if (args.field == "pvd_prodcode") {
  22. var bool = true;
  23. if (args.record.get('pvd_isstandard') != null && args.record.get('pvd_isstandard') == 1){
  24. bool = false;
  25. }
  26. return bool;
  27. }
  28. if (args.field == "pvd_fpcode") {
  29. var bool = true;
  30. if (args.record.get('pvd_isstandard') != null && args.record.get('pvd_isstandard') != 1){
  31. bool = false;
  32. }
  33. return bool;
  34. }
  35. if (args.field == "pvd_fbcode") {
  36. var bool = true;
  37. if (args.record.get('pvd_isstandard') != null && args.record.get('pvd_isstandard') != 2){
  38. bool = false;
  39. }
  40. return bool;
  41. }
  42. });
  43. },
  44. itemclick: function(selModel, record){
  45. if(!Ext.isEmpty(record.data.pvd_id) && !Ext.isEmpty(record.data.pvd_ftcode)){
  46. var btn = Ext.getCmp('needSpec');
  47. btn && btn.setDisabled(false);
  48. }
  49. this.onGridItemClick(selModel, record);
  50. }
  51. },
  52. 'gridcolumn[dataIndex=pvd_prodcode]': {
  53. afterrender: function(column) {
  54. column.renderer = function(val, meta, record) {
  55. var standard = record.get('pvd_isstandard');
  56. if(!val && (standard == 0 || standard == 2)) {
  57. meta.tdCls = 'x-form-necessary';
  58. } else {
  59. meta.tdCls = null;
  60. }
  61. return val;
  62. }
  63. }
  64. },
  65. 'gridcolumn[dataIndex=pvd_fbcode]': {
  66. afterrender: function(column) {
  67. column.renderer = function(val, meta, record) {
  68. var standard = record.get('pvd_isstandard');
  69. if(!val && standard == 2) {
  70. meta.tdCls = 'x-form-necessary';
  71. } else {
  72. meta.tdCls = null;
  73. }
  74. return val;
  75. }
  76. }
  77. },
  78. 'gridcolumn[dataIndex=pvd_fpcode]': {
  79. afterrender: function(column) {
  80. column.renderer = function(val, meta, record) {
  81. var standard = record.get('pvd_isstandard');
  82. if(!val && standard == 1 ) {
  83. meta.tdCls = 'x-form-necessary';
  84. } else {
  85. meta.tdCls = null;
  86. }
  87. return val;
  88. }
  89. }
  90. },
  91. 'gridcolumn[dataIndex=pvd_ftcode]': {
  92. afterrender: function(column) {
  93. column.renderer = function(val, meta, record) {
  94. var standard = record.get('pvd_isstandard');
  95. if(!val && standard == 1 ) {
  96. meta.tdCls = 'x-form-necessary';
  97. } else {
  98. meta.tdCls = null;
  99. }
  100. return val;
  101. }
  102. }
  103. },
  104. /**
  105. * 产品需求参数设置
  106. */
  107. '#needSpec': {
  108. click: function(btn) {
  109. var record=btn.ownerCt.ownerCt.getSelectionModel().getLastSelected();
  110. me.needSpec(record);
  111. }
  112. },
  113. 'field[name=pvd_fpcode]': {
  114. focus: function(f){
  115. var grid = Ext.getCmp('grid');
  116. var record = grid.selModel.lastSelected;
  117. me.featureView(record);
  118. }
  119. },
  120. 'erpSaveButton': {
  121. click: function(btn){
  122. var form = me.getForm(btn);
  123. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  124. me.BaseUtil.getRandomNumber();//自动添加编号
  125. }
  126. this.FormUtil.beforeSave(this);
  127. }
  128. },
  129. 'erpCloseButton': {
  130. click: function(btn){
  131. this.FormUtil.beforeClose(this);
  132. }
  133. },
  134. 'erpUpdateButton': {
  135. click: function(btn){
  136. this.FormUtil.onUpdate(this);
  137. }
  138. },
  139. 'erpDeleteButton': {
  140. click: function(btn){
  141. me.FormUtil.onDelete(Ext.getCmp('pv_id').value);
  142. }
  143. },
  144. 'erpAddButton': {
  145. click: function(){
  146. me.FormUtil.onAdd('addProductReview', '新增产品评审', 'jsps/pm/bom/productReview.jsp');
  147. }
  148. },
  149. 'erpSubmitButton': {
  150. afterrender: function(btn){
  151. var status = Ext.getCmp('pv_statuscode');
  152. if(status && status.value != 'ENTERING'){
  153. btn.hide();
  154. }
  155. },
  156. click: function(btn){
  157. me.FormUtil.onSubmit(Ext.getCmp('pv_id').value);
  158. }
  159. },
  160. 'erpResSubmitButton': {
  161. afterrender: function(btn){
  162. var status = Ext.getCmp('pv_statuscode');
  163. if(status && status.value != 'COMMITED'){
  164. btn.hide();
  165. }
  166. },
  167. click: function(btn){
  168. me.FormUtil.onResSubmit(Ext.getCmp('pv_id').value);
  169. }
  170. },
  171. 'erpAuditButton': {
  172. afterrender: function(btn){
  173. var status = Ext.getCmp('pv_statuscode');
  174. if(status && status.value != 'COMMITED'){
  175. btn.hide();
  176. }
  177. },
  178. click: function(btn){
  179. me.FormUtil.onAudit(Ext.getCmp('pv_id').value);
  180. }
  181. },
  182. 'erpResAuditButton': {
  183. afterrender: function(btn){
  184. var status = Ext.getCmp('pv_statuscode');
  185. if(status && status.value != 'AUDITED'){
  186. btn.hide();
  187. }
  188. },
  189. click: function(btn){
  190. me.FormUtil.onResAudit(Ext.getCmp('pv_id').value);
  191. }
  192. },
  193. 'dbfindtrigger[name=pvd_fpcode]': {
  194. focus: function(t){
  195. t.setHideTrigger(false);
  196. t.setReadOnly(false);
  197. var record = Ext.getCmp('grid').selModel.getLastSelected();
  198. var code = record.data['pvd_ftcode'];
  199. if(!Ext.isEmpty(code)){
  200. t.dbBaseCondition = "fp_ftcode='" + code + "'";
  201. }
  202. }
  203. },
  204. 'dbfindtrigger[name=pvd_prodcode]': {
  205. focus: function(t){
  206. t.setHideTrigger(false);
  207. t.setReadOnly(false);
  208. var record = Ext.getCmp('grid').selModel.getLastSelected();
  209. var code = record.data['pvd_ftcode'];
  210. if(!Ext.isEmpty(code)){
  211. t.dbBaseCondition = "pr_refno='" + code + "'";
  212. }
  213. }
  214. }
  215. });
  216. },
  217. onGridItemClick: function(selModel, record){//grid行选择
  218. this.GridUtil.onGridItemClick(selModel, record);
  219. },
  220. getForm: function(btn){
  221. return btn.ownerCt.ownerCt;
  222. },
  223. /**
  224. *产品参数维护
  225. *
  226. **/
  227. needSpec:function(record){
  228. var width = Ext.isIE ? screen.width*0.7*0.9 : '80%',
  229. height = Ext.isIE ? screen.height*0.75 : '80%';
  230. var pvd_id = record.get('pvd_id'), pvd_prodcode = record.get('pvd_prodcode');
  231. if(!Ext.isEmpty(pvd_prodcode)){
  232. showError("填写物料编号的不需要重新设置需求参数!");
  233. return;
  234. }
  235. Ext.create('Ext.Window', {
  236. width: width,
  237. height: height,
  238. autoShow: true,
  239. layout: 'anchor',
  240. items: [{
  241. tag : 'iframe',
  242. frame : true,
  243. anchor : '100% 100%',
  244. layout : 'fit',
  245. html : '<iframe id="iframe_dbfind" src="' + basePath + 'jsps/pm/bom/needFeature.jsp?formCondition=pvd_id='
  246. + pvd_id + '&gridCondition=nf_pvdid=' + pvd_id + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  247. }]
  248. });
  249. },
  250. /**
  251. *标准库号选择
  252. *
  253. **/
  254. featureView:function(gridrecord){
  255. var width = Ext.isIE ? screen.width*0.7*0.9 : '80%',
  256. height = Ext.isIE ? screen.height*0.75 : '80%';
  257. var ftcode = gridrecord.data['pvd_ftcode'], ftname = gridrecord.data['ft_name'], fpcode = gridrecord.data['pvd_fpcode'];
  258. if(Ext.isEmpty(ftcode)){
  259. showError("请先填写模板编号!");
  260. return;
  261. }
  262. var win = Ext.create('Ext.Window', {
  263. width: width,
  264. height: height,
  265. autoShow: true,
  266. layout: 'anchor',
  267. items: [{
  268. tag : 'iframe',
  269. frame : true,
  270. anchor : '100% 100%',
  271. layout : 'fit',
  272. html : '<iframe src="' + basePath + 'jsps/common/deallist.jsp?whoami=FeatureView!Query&ft_code='
  273. + ftcode + '&ft_name=' + ftname + '&fp_code=' + fpcode + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  274. }]
  275. });
  276. var fpcode = null;
  277. var fpspec = null;
  278. Ext.defer(function(){
  279. var grid = win.getEl().down('iframe').dom.contentWindow.document.defaultView.Ext.getCmp('grid');
  280. if (grid) {
  281. grid.on('itemmousedown', function(selModel, record){
  282. fpcode = record.data['fv_fpcode'];
  283. fpspec = record.data['fp_description2'];
  284. if(fpcode != null){
  285. gridrecord.set('pvd_fpcode',fpcode);
  286. }
  287. if(fpspec != null){
  288. gridrecord.set('pvd_needspec',fpspec);
  289. }
  290. win.close();
  291. });
  292. }
  293. }, 2000);
  294. }
  295. });