|
|
@@ -0,0 +1,103 @@
|
|
|
+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();
|
|
|
+ },
|
|
|
+});
|