LoginController.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. Ext.define('saas.view.auth.LoginController', {
  2. extend: 'Ext.app.ViewController',
  3. alias: 'controller.login',
  4. init: function() {
  5. this.callParent(arguments);
  6. },
  7. onLoginButton: function() {
  8. var me = this, view = me.getView(),
  9. form = me.lookup('authdialog'),
  10. values = form.getValues();
  11. view.mask('请稍等...');
  12. saas.model.Session.login(values.username, values.password)
  13. .then(function(session) {
  14. view.isMasked() && view.unmask();
  15. me.getViewModel().set('session', session);
  16. var cos = session.get("account").companies;
  17. if (cos && cos.length) {
  18. if (cos.length == 1) {
  19. session.get('account').companyId = cos[0].id;
  20. me.fireEvent('login', session);
  21. } else {
  22. Ext.create({
  23. xtype: 'companypicker',
  24. viewModel: {
  25. stores: {
  26. companies: Ext.create('saas.store.Company', {
  27. data: cos
  28. })
  29. }
  30. }
  31. });
  32. }
  33. } else {
  34. me.fireEvent('login', session);
  35. }
  36. })
  37. .catch(function(error) {
  38. view.isMasked() && view.unmask();
  39. showToast(error.message);
  40. });
  41. },
  42. onWeixinLogin : function() {
  43. },
  44. onNewAccount: function() {
  45. },
  46. selectCompany: function(view, record) {
  47. var me = this, view = me.getView(), oldSession = me.getViewModel().get('session'),
  48. companyId = record.get('id');
  49. view.mask('请稍等...');
  50. saas.model.Session.switchCompany(oldSession, companyId)
  51. .then(function(newSession) {
  52. newSession.get('account').companyId = companyId;
  53. me.fireEvent('login', newSession);
  54. })
  55. .catch(function(error) {
  56. showToast(error.message);
  57. })
  58. .then(function() {
  59. view.isMasked() && view.unmask();
  60. view.ownerCt.destroy();
  61. });
  62. }
  63. });