Ext.define('saas.view.auth.ReLoginController', { extend: 'Ext.app.ViewController', alias: 'controller.relogin', init: function () { this.callParent(arguments); }, onAfterRender: function() { var me = this, view = me.getView(), model = me.getViewModel(), remember = model.get('remember'), password = model.get('repassword'), lastSuccess = model.get('lastSuccess'), form = me.lookup('reloginform'), passwordField = form.getForm().findField('password'); if(remember && lastSuccess) { passwordField.setValue(password); } }, onLogin: function () { var me = this, view = me.getView(), viewModel = me.getViewModel(), form = me.lookup('reloginform'), values = form.getValues(); if(!form.isValid()) { return; } view.mask('请稍等...'); saas.model.Session.login(values.username, values.password) .then(function (session) { view.isMasked() && view.unmask(); viewModel.set('session', session); var cos = session.get("account").companies; if (cos && cos.length) { if (cos.length == 1) { session.get('account').companyId = cos[0].id; me.fireEvent('login', session); } else { Ext.create({ xtype: 'companypicker', viewModel: { stores: { companies: Ext.create('saas.store.Company', { data: cos }) } } }); } } else { me.fireEvent('login', session); } me.successReLogin(); }) .catch(function (error) { view.isMasked() && view.unmask(); saas.util.BaseUtil.showErrorToast('登录失败: ' + error.message); me.failureReLogin(); }); }, successReLogin: function() { var me = this, view = me.getView(), form = me.lookup('reloginform'), values = form.getValues(); viewModel = me.getViewModel(); viewModel.set('repassword', values.password); viewModel.set('lastSuccess', true); view.close(); }, failureReLogin: function() { var me = this, viewModel = me.getViewModel(); viewModel.set('lastSuccess', false); }, onCancel: function() { var me = this, view = me.getView(); view.close(); }, });