FormPanelController.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. Ext.define('saas.view.sys.baseconfig.FormPanelController', {
  2. extend: 'Ext.app.ViewController',
  3. alias: 'controller.sys-baseconfig-formpanel',
  4. BaseUtil: Ext.create('saas.util.BaseUtil'),
  5. FormUtil: Ext.create('saas.util.FormUtil'),
  6. init: function (form) {
  7. var me = this;
  8. this.control({
  9. 'button[name=save]':{
  10. click:function(){
  11. me.onSave();
  12. }
  13. }
  14. });
  15. },
  16. onSave: function() {
  17. var me = this,
  18. form = this.getView();
  19. var valid = form.isValid();
  20. if(!valid) {
  21. saas.util.BaseUtil.showErrorToast('表单校验有误,请检查');
  22. return false;
  23. }
  24. if(form.getForm().wasDirty==false){
  25. saas.util.BaseUtil.showErrorToast('未修改数据,请修改后保存');
  26. return false;
  27. }
  28. viewModel = me.getViewModel();
  29. var formData = [];
  30. var items = me.view.getForm().getFields().items;
  31. Ext.each(items, function(item, index){
  32. formData.push({
  33. code:item.name,
  34. data:item.value
  35. })
  36. });
  37. saas.util.BaseUtil.request({
  38. url: form._saveUrl,
  39. params: JSON.stringify(formData),
  40. method: 'POST',
  41. })
  42. .then(function(localJson) {
  43. if(localJson.success){
  44. saas.util.BaseUtil.showSuccessToast('保存成功');
  45. viewModel = form.getViewModel();
  46. var url = form._readUrl;
  47. saas.util.BaseUtil.request({url })
  48. .then(function(res) {
  49. if(res.success) {
  50. var list = res.data.list;
  51. if(list.length>0){
  52. var d = {};
  53. Ext.each(list, function(item, index){
  54. d[item.code] = item.data;
  55. });
  56. viewModel.setData(d);
  57. }
  58. }
  59. })
  60. .catch(function(response) {
  61. console.error(response);
  62. });
  63. }
  64. })
  65. .catch(function(res) {
  66. console.error(res);
  67. saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
  68. });
  69. }
  70. });