AccountParaSetup.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.arp.AccountParaSetup', {
  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','core.trigger.CateTreeDbfindTrigger'
  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. column.renderer = function(val){
  63. if(record.data['ps_fieldtype'] == 'D' && column.xtype == 'datecolumn'){
  64. val = (val == null || val == '') ? new Date() : new Date(val);
  65. val = Ext.Date.toString(val);
  66. if(record.data['ps_value'] != val){
  67. record.set('ps_value', val);
  68. }
  69. }
  70. return val;
  71. };
  72. column.setEditor(new Ext.form.field.Date({value: e.value || new Date()}));
  73. column.xtype = 'datecolumn';
  74. //
  75. break;
  76. case "S"://string
  77. if(column.xtype == 'textcolumn'){
  78. break;
  79. }
  80. column.setEditor(new Ext.form.field.Text({value: e.value}));
  81. column.xtype = 'textcolumn';
  82. break;
  83. case "F"://dbfind
  84. // if(column.xtype == 'dbfindcolumn'){
  85. // break;
  86. // }
  87. column.setEditor(new erp.view.core.trigger.CateTreeDbfindTrigger({value: e.value}));
  88. column.xtype = 'catetreecolumn';
  89. break;
  90. case "C"://下拉框
  91. if(column.xtype == 'combocolumn'){
  92. break;
  93. }
  94. column.setEditor(new Ext.form.field.ComboBox({
  95. displayField: 'display',
  96. valueField: 'value',
  97. queryMode: 'local',
  98. store: Ext.create('Ext.data.Store', {
  99. fields: ['display', 'value'],
  100. data: [{
  101. display: 'S-001-002',
  102. value: 'S-001-002'
  103. },{
  104. display: 'S-001-003',
  105. value: 'S-001-003'
  106. }]
  107. }),
  108. value: e.value
  109. }));
  110. column.xtype = 'combocolumn';
  111. break;
  112. }
  113. }
  114. });
  115. }
  116. },
  117. 'erpSaveButton': {
  118. click: function(btn){
  119. this.beforeUpdate();
  120. }
  121. }
  122. });
  123. },
  124. onGridItemClick: function(selModel, record){//grid行选择
  125. /* this.gridLastSelected = record;
  126. var grid = Ext.getCmp('grid');
  127. if(record.data[grid.necessaryField] == null || record.data[grid.necessaryField] == ''){
  128. this.gridLastSelected.findable = true;//空数据可以在输入完code,并移开光标后,自动调出该条数据
  129. } else {
  130. this.gridLastSelected.findable = false;
  131. }
  132. this.GridUtil.onGridItemClick(selModel, record);*/
  133. },
  134. getForm: function(btn){
  135. return btn.ownerCt.ownerCt;
  136. },
  137. beforeSave: function(){
  138. this.FormUtil.beforeSave(this);
  139. },
  140. beforeUpdate: function(){
  141. Array.prototype.contains = function(obj) {
  142. var i = this.length;
  143. while (i--) {
  144. if (this[i] === obj) {
  145. return true;
  146. }
  147. }
  148. return false;
  149. };
  150. var grid = Ext.getCmp('grid');
  151. // var items = grid.store.data.items;
  152. // console.log(items);
  153. // var rowNo = [];
  154. // Ext.each(items,function(item,index){
  155. //
  156. // Ext.each(grid.columns, function(c){
  157. // if(item.data[c.dataIndex]!=item.raw[c.dataIndex])
  158. // {
  159. // if(!rowNo.contains(index+1)){
  160. //
  161. // rowNo.push(index+1);
  162. // }
  163. // }
  164. //
  165. // });
  166. //
  167. // });
  168. // Ext.each(items,function(item,index){
  169. // if(item.dirty){
  170. // rowNo.push(index+1);
  171. // }
  172. //
  173. //
  174. // });
  175. // if(rowNo.length==0){
  176. // Ext.Msg.alert("你未对数据做任何修改!");
  177. // return;
  178. // }
  179. // else{
  180. // var result = confirm("第"+rowNo.toString()+"行已经修改,确定更新?");
  181. // if(result){
  182. var index = 0;
  183. var jsonGridData = new Array();
  184. var s = grid.getStore().data.items;
  185. for(var i=0;i<s.length;i++){//将grid里面各行的数据获取并拼成jsonGridData
  186. var data = s[i].data;
  187. jsonGridData[index++] = Ext.JSON.encode(data);
  188. }
  189. this.update(jsonGridData.toString());
  190. // }
  191. // else return;
  192. // }
  193. },
  194. update:function(param){
  195. Ext.Ajax.request({
  196. url: basePath+'fa/updateAccountParaSetup.action',
  197. params:{
  198. param:param
  199. },
  200. success: function(response){
  201. var text = response.responseText;
  202. result = Ext.decode(text);
  203. if(result.success){
  204. Ext.Msg.alert("保存成功!"); // 尚未国际化,以后订正。
  205. }
  206. }
  207. });
  208. }
  209. });