ReLoginController.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. Ext.define('saas.view.auth.ReLoginController', {
  2. extend: 'Ext.app.ViewController',
  3. alias: 'controller.relogin',
  4. init: function () {
  5. this.callParent(arguments);
  6. },
  7. onAfterRender: function() {
  8. var me = this,
  9. view = me.getView(),
  10. model = me.getViewModel(),
  11. remember = model.get('remember'),
  12. password = model.get('repassword'),
  13. lastSuccess = model.get('lastSuccess'),
  14. form = me.lookup('reloginform'),
  15. passwordField = form.getForm().findField('password');
  16. if(remember && lastSuccess) {
  17. passwordField.setValue(password);
  18. }
  19. },
  20. onLogin: function () {
  21. var me = this,
  22. view = me.getView(),
  23. viewModel = me.getViewModel(),
  24. form = me.lookup('reloginform'),
  25. values = form.getValues();
  26. if(!form.isValid()) {
  27. return;
  28. }
  29. view.mask('请稍等...');
  30. saas.model.Session.login(values.username, values.password)
  31. .then(function (session) {
  32. view.isMasked() && view.unmask();
  33. viewModel.set('session', session);
  34. var cos = session.get("account").companies;
  35. if (cos && cos.length) {
  36. if (cos.length == 1) {
  37. session.get('account').companyId = cos[0].id;
  38. me.fireEvent('login', session);
  39. } else {
  40. Ext.create({
  41. xtype: 'companypicker',
  42. viewModel: {
  43. stores: {
  44. companies: Ext.create('saas.store.Company', {
  45. data: cos
  46. })
  47. }
  48. }
  49. });
  50. }
  51. } else {
  52. me.fireEvent('login', session);
  53. }
  54. me.successReLogin();
  55. })
  56. .catch(function (error) {
  57. view.isMasked() && view.unmask();
  58. saas.util.BaseUtil.showErrorToast('登录失败: ' + error.message);
  59. me.failureReLogin();
  60. });
  61. },
  62. successReLogin: function() {
  63. var me = this,
  64. view = me.getView(),
  65. form = me.lookup('reloginform'),
  66. values = form.getValues();
  67. viewModel = me.getViewModel();
  68. viewModel.set('repassword', values.password);
  69. viewModel.set('lastSuccess', true);
  70. view.close();
  71. },
  72. failureReLogin: function() {
  73. var me = this,
  74. viewModel = me.getViewModel();
  75. viewModel.set('lastSuccess', false);
  76. },
  77. onCancel: function() {
  78. var me = this,
  79. view = me.getView();
  80. view.close();
  81. },
  82. });