ReLoginController.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. companyId = saas.util.BaseUtil.getCurrentUser().companyId,
  25. form = me.lookup('reloginform'),
  26. values = form.getValues();
  27. if(!form.isValid()) {
  28. return;
  29. }
  30. view.mask('请稍等...');
  31. saas.model.Session.login(values.username, values.password, companyId)
  32. .then(function (session) {
  33. view.isMasked() && view.unmask();
  34. viewModel.set('session', session);
  35. session.get('account').companyId = companyId;
  36. me.successReLogin();
  37. me.fireEvent('login', session);
  38. return session;
  39. })
  40. .then(function(session) {
  41. let headers = Ext.Ajax.getDefaultHeaders() || {};
  42. headers['Authorization'] = session.data.token;
  43. Ext.Ajax.setDefaultHeaders(headers);
  44. saas.util.State.set('session', session.data);
  45. // let sessionStr = session.data ? JSON.stringify(session.data) : '';
  46. // if (typeof require === 'function') {
  47. // let ipc = require('electron').ipcRenderer;
  48. // ipc.send('session.change', sessionStr);
  49. // }else {
  50. // //解析session 把data作为sessionStr
  51. // sessionStr = session ? JSON.stringify(session.data) : '';
  52. // const frame = window.frames[window.frames.length - 1];
  53. // frame.postMessage(sessionStr, '*');
  54. // }
  55. return session;
  56. })
  57. .catch(function (error) {
  58. view.isMasked() && view.unmask();
  59. console.error(error);
  60. saas.util.BaseUtil.showErrorToast('登录失败: ' + error.message);
  61. me.failureReLogin();
  62. });
  63. },
  64. successReLogin: function() {
  65. var me = this,
  66. view = me.getView(),
  67. form = me.lookup('reloginform'),
  68. values = form.getValues();
  69. viewModel = me.getViewModel();
  70. viewModel.set('repassword', values.password);
  71. viewModel.set('lastSuccess', true);
  72. view.close();
  73. },
  74. failureReLogin: function() {
  75. var me = this,
  76. viewModel = me.getViewModel();
  77. viewModel.set('lastSuccess', false);
  78. },
  79. onCancel: function() {
  80. var me = this,
  81. view = me.getView();
  82. view.close();
  83. },
  84. });