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(), companyId = saas.util.BaseUtil.getCurrentUser().companyId, form = me.lookup('reloginform'), values = form.getValues(); if(!form.isValid()) { return; } view.mask('请稍等...'); saas.model.Session.login(values.username, values.password, companyId) .then(function (session) { view.isMasked() && view.unmask(); viewModel.set('session', session); session.get('account').companyId = companyId; me.successReLogin(); me.fireEvent('login', session); return session; }) .then(function(session) { let headers = Ext.Ajax.getDefaultHeaders() || {}; headers['Authorization'] = session.data.token; Ext.Ajax.setDefaultHeaders(headers); saas.util.State.set('session', session.data); // let sessionStr = session.data ? JSON.stringify(session.data) : ''; // if (typeof require === 'function') { // let ipc = require('electron').ipcRenderer; // ipc.send('session.change', sessionStr); // }else { // //解析session 把data作为sessionStr // sessionStr = session ? JSON.stringify(session.data) : ''; // const frame = window.frames[window.frames.length - 1]; // frame.postMessage(sessionStr, '*'); // } return session; }) .catch(function (error) { view.isMasked() && view.unmask(); console.error(error); 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(); }, });