DataList.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.DataList', {
  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. 'ma.DataList','core.form.Panel','ma.MyDataList',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.Sync',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.DeleteDetail',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar', 'core.grid.YnColumn'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpSyncButton': {
  17. afterrender: function(btn){
  18. btn.autoClearCache = true;
  19. }
  20. },
  21. 'erpSaveButton': {
  22. click: function(btn){
  23. this.FormUtil.beforeSave(me);
  24. }
  25. },
  26. 'erpUpdateButton': {
  27. click: function(btn){
  28. me.save();
  29. }
  30. },
  31. 'erpAddButton': {
  32. click: function(){
  33. me.FormUtil.onAdd('addDataList', '新增DataList配置', 'jsps/ma/dataList.jsp');
  34. }
  35. },
  36. 'erpCloseButton': {
  37. click: function(btn){
  38. this.FormUtil.beforeClose(me);
  39. }
  40. },
  41. 'mydatalist': {
  42. itemclick: function(selModel, record){
  43. this.GridUtil.onGridItemClick(selModel, record);
  44. }
  45. },
  46. 'erpFormPanel textfield[name=dl_caller]': {
  47. change: function(field){//主表dl_caller值变更时,对应从表字段也变更
  48. var grid = Ext.getCmp('grid');
  49. Ext.Array.each(grid.store.data.items, function(item){
  50. item.set('dld_caller',field.value);
  51. });
  52. }
  53. },
  54. 'erpFormPanel textfield[name=dl_tablename]': {
  55. change: function(field){//主表dl_tablename值变更时,对应从表字段也变更
  56. var grid = Ext.getCmp('grid');
  57. Ext.Array.each(grid.store.data.items, function(item){
  58. item.set('dld_table',field.value);
  59. });
  60. }
  61. },
  62. '#erpSetComboButton': {
  63. click: function(btn) {
  64. var grid = btn.ownerCt.ownerCt,
  65. record = grid.selModel.lastSelected;
  66. if(record && record.get('dld_fieldtype') == 'C') {
  67. warnMsg('确定重置下拉框数据?', function(b){
  68. if(b == 'ok' || b == 'yes') {
  69. Ext.Ajax.request({
  70. url: basePath + 'ma/resetCombo.action',
  71. params: {
  72. caller: whoami,
  73. field: record.get('dld_field')
  74. },
  75. callback: function(opt, s, r) {
  76. if(s) {
  77. var rs = Ext.decode(r.responseText);
  78. if(rs.error) {
  79. alert(rs.error);
  80. } else {
  81. alert('设置成功!');
  82. }
  83. }
  84. }
  85. });
  86. }
  87. });
  88. }
  89. }
  90. }
  91. });
  92. },
  93. getForm: function(btn){
  94. return btn.ownerCt.ownerCt;
  95. },
  96. save: function(){
  97. var detail = Ext.getCmp('grid'),records = detail.store.data.items;
  98. field = Ext.getCmp('dl_tablename'),val = field.value.split(' ')[0];
  99. Ext.Array.each(records, function(item){
  100. if(item.data['dld_field'] != null && item.data['dld_field'] != '' && Ext.isEmpty('dld_table')){
  101. item.set('dld_table', val);
  102. }
  103. });
  104. var me = this;
  105. if(! me.FormUtil.checkForm()){
  106. return;
  107. }
  108. var de = detail.getChange();
  109. me.FormUtil.update(Ext.getCmp('form').getValues(), Ext.encode(de.added),
  110. Ext.encode(de.updated), Ext.encode(de.deleted));
  111. }
  112. });