LoginController.js 2.5 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,
  9. view = me.getView(),
  10. form = me.lookup('authdialog'),
  11. values = form.getValues();
  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. if (cos && cos.length) {
  19. if (cos.length == 1) {
  20. session.get('account').companyId = cos[0].id;
  21. me.fireEvent('login', session);
  22. } else {
  23. Ext.create({
  24. xtype: 'companypicker',
  25. viewModel: {
  26. stores: {
  27. companies: Ext.create('saas.store.Company', {
  28. data: cos
  29. })
  30. }
  31. }
  32. });
  33. }
  34. } else {
  35. me.fireEvent('login', session);
  36. }
  37. })
  38. .catch(function (error) {
  39. view.isMasked() && view.unmask();
  40. saas.util.BaseUtil.showErrorToast('登录失败: ' + error.message);
  41. });
  42. },
  43. onWeixinLogin: function () {},
  44. onNewAccount: function () {},
  45. selectCompany: function (view, record) {
  46. var me = this,
  47. view = me.getView(),
  48. oldSession = me.getViewModel().get('session'),
  49. companyId = record.get('id');
  50. view.mask('请稍等...');
  51. saas.model.Session.switchCompany(oldSession, companyId)
  52. .then(function (newSession) {
  53. newSession.get('account').companyId = companyId;
  54. me.fireEvent('login', newSession);
  55. })
  56. .then(function () {
  57. view.isMasked() && view.unmask();
  58. view.close();
  59. view.ownerCt.destroy();
  60. })
  61. .catch(function (error) {
  62. saas.util.BaseUtil.showErrorToast('切换账套失败: ' + error.message);
  63. });
  64. }
  65. });