LoginController.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. debugger;
  12. view.mask('请稍等...');
  13. saas.model.Session.login(values.username, values.password)
  14. .then(function(session) {
  15. view.isMasked() && view.unmask();
  16. me.getViewModel().set('session', session);
  17. var cos = session.get("account").companies;
  18. debugger;
  19. if (cos && cos.length) {
  20. if (cos.length == 1) {
  21. session.get('account').companyId = cos[0].id;
  22. me.fireEvent('login', session);
  23. } else {
  24. Ext.create({
  25. xtype: 'companypicker',
  26. viewModel: {
  27. stores: {
  28. companies: Ext.create('saas.store.Company', {
  29. data: cos
  30. })
  31. }
  32. }
  33. });
  34. }
  35. } else {
  36. me.fireEvent('login', session);
  37. }
  38. })
  39. .catch(function(error) {
  40. view.isMasked() && view.unmask();
  41. showToast(error.message);
  42. });
  43. },
  44. onWeixinLogin : function() {
  45. },
  46. onNewAccount: function() {
  47. },
  48. selectCompany: function(view, record) {
  49. var me = this, view = me.getView(), oldSession = me.getViewModel().get('session'),
  50. companyId = record.get('id');
  51. view.mask('请稍等...');
  52. saas.model.Session.switchCompany(oldSession, companyId)
  53. .then(function(newSession) {
  54. newSession.get('account').companyId = companyId;
  55. me.fireEvent('login', newSession);
  56. })
  57. .catch(function(error) {
  58. showToast(error.message);
  59. })
  60. .then(function() {
  61. view.isMasked() && view.unmask();
  62. view.ownerCt.destroy();
  63. });
  64. }
  65. });