VerifyApplyDetailDet.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.qc.VerifyApplyDetailDet', {
  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.grid.Panel4','core.toolbar.Toolbar3','core.button.Save','core.button.ResPost',
  9. 'core.trigger.DbfindTrigger'
  10. ],
  11. init:function(){
  12. var me = this;
  13. me.gridLastSelected = null;
  14. this.control({
  15. 'erpGridPanel4': {
  16. itemclick: this.onGridItemClick,
  17. afterrender: function(grid){
  18. grid.plugins[0].on('beforeedit', function(e){
  19. if(e.field == 'ps_value'){//监听ps_value
  20. var record = e.record;
  21. var column = e.column;
  22. switch(record.data['ps_fieldtype']){
  23. case "B"://boolean
  24. if(column.xtype == 'booleancolumn'){
  25. break;
  26. }
  27. column.setEditor(new Ext.form.field.ComboBox({
  28. value: e.value,
  29. store: Ext.create('Ext.data.Store', {
  30. fields: ['display', 'value'],
  31. data : [
  32. {"display": $I18N.common.form.yes, "value": 'true'},
  33. {"display": $I18N.common.form.no, "value": 'false'}
  34. ]
  35. }),
  36. displayField: 'display',
  37. valueField: 'value',
  38. queryMode: 'local',
  39. value: 'false',
  40. hideTrigger: false
  41. }));
  42. column.renderer = function(val){
  43. if(column.xtype == 'booleancolumn'){
  44. if(val == 'true'){
  45. return $I18N.common.form.yes;
  46. } else {
  47. return $I18N.common.form.no;
  48. }
  49. }
  50. return val;
  51. };
  52. column.xtype = 'booleancolumn';
  53. break;
  54. case "N"://number
  55. if(column.xtype == 'textcolumn'){
  56. break;
  57. }
  58. column.setEditor(new Ext.form.field.Number({value: e.value}));
  59. column.xtype = 'textcolumn';
  60. break;
  61. case "D"://date
  62. if(column.xtype == 'datecolumn'){
  63. break;
  64. }
  65. column.renderer = function(val){
  66. if(record.data['ps_fieldtype'] == 'D' && column.xtype == 'datecolumn'){
  67. val = (val == null || val == '') ? new Date() : new Date(val);
  68. val = Ext.Date.toString(val);
  69. if(record.data['ps_value'] != val){
  70. record.set('ps_value', val);
  71. }
  72. }
  73. return val;
  74. };
  75. column.setEditor(new Ext.form.field.Date({value: e.value || new Date()}));
  76. column.xtype = 'datecolumn';
  77. break;
  78. case "S"://string
  79. if(column.xtype == 'textcolumn'){
  80. break;
  81. }
  82. column.setEditor(new Ext.form.field.Text({value: e.value}));
  83. column.xtype = 'textcolumn';
  84. break;
  85. case "F"://dbfind
  86. if(column.xtype == 'dbfindcolumn'){
  87. break;
  88. }
  89. column.setEditor(new erp.view.core.trigger.DbfindTrigger({value: e.value}));
  90. column.xtype = 'dbfindcolumn';
  91. break;
  92. case "C"://下拉框
  93. if(column.xtype == 'combocolumn'){
  94. break;
  95. }
  96. column.setEditor(new Ext.form.field.ComboBox({
  97. displayField: 'display',
  98. valueField: 'value',
  99. queryMode: 'local',
  100. store: Ext.create('Ext.data.Store', {
  101. fields: ['display', 'value'],
  102. data: [{
  103. display: 'S-001-002',
  104. value: 'S-001-002'
  105. },{
  106. display: 'S-001-003',
  107. value: 'S-001-003'
  108. }]
  109. }),
  110. value: e.value
  111. }));
  112. column.xtype = 'combocolumn';
  113. break;
  114. }
  115. }
  116. });
  117. }
  118. },
  119. 'erpSaveButton': {
  120. click: function(btn){
  121. this.beforeUpdate();
  122. }
  123. }
  124. });
  125. },
  126. onGridItemClick: function(selModel, record){//grid行选择
  127. /* this.gridLastSelected = record;
  128. var grid = Ext.getCmp('grid');
  129. if(record.data[grid.necessaryField] == null || record.data[grid.necessaryField] == ''){
  130. this.gridLastSelected.findable = true;//空数据可以在输入完code,并移开光标后,自动调出该条数据
  131. } else {
  132. this.gridLastSelected.findable = false;
  133. }
  134. this.GridUtil.onGridItemClick(selModel, record);*/
  135. },
  136. getForm: function(btn){
  137. return btn.ownerCt.ownerCt;
  138. },
  139. beforeSave: function(){
  140. this.FormUtil.beforeSave(this);
  141. },
  142. beforeUpdate: function(){
  143. Array.prototype.contains = function(obj) {
  144. var i = this.length;
  145. while (i--) {
  146. if (this[i] === obj) {
  147. return true;
  148. }
  149. }
  150. return false;
  151. };
  152. var grid = Ext.getCmp('grid');
  153. var items = grid.store.data.items;
  154. var rowNo = [];
  155. Ext.each(items,function(item,index){
  156. Ext.each(grid.columns, function(c){
  157. if(item.dirty>0){
  158. if(!rowNo.contains(index+1)){
  159. rowNo.push(index+1);
  160. }
  161. }
  162. });
  163. });
  164. if(rowNo.length==0){
  165. Ext.Msg.alert("你未对数据做任何修改!");
  166. return;
  167. }
  168. else{
  169. var result = confirm("第"+rowNo.toString()+"行已经修改,确定更新?");
  170. if(result){
  171. var index = 0;
  172. var jsonGridData = new Array();
  173. var s = grid.getStore().data.items;
  174. for(var i=0;i<s.length;i++){//将grid里面各行的数据获取并拼成jsonGridData
  175. var data = s[i].data;
  176. jsonGridData[index++] = Ext.JSON.encode(data);
  177. }
  178. this.update(jsonGridData.toString());
  179. }
  180. else return;
  181. }
  182. },
  183. update:function(param){
  184. Ext.Ajax.request({
  185. url: basePath+'scm/qc/saveVerifyApplyDetailDet.action', // 此处改动 还是 借用 ……
  186. params:{
  187. param:param
  188. },
  189. success: function(response){
  190. var text = response.responseText;
  191. result = Ext.decode(text);
  192. if(result.success){
  193. Ext.Msg.alert("保存成功!"); // 尚未国际化,以后订正。
  194. }
  195. }
  196. });
  197. }
  198. });