diff --git a/src/App.vue b/src/App.vue index 177fccc..e591cdb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -67,6 +67,10 @@ ref="launcher"> + + @@ -82,14 +86,19 @@ export default { logonName: '', isAuthenticated: false, pageIndex: 0, - coursework: undefined + coursework: undefined, + + loginDialogVisibility: false, + loginMode: "login" } }, mounted() { connector.$on( 'api-login', (success) => { this.isAuthenticated = success - if (success) - connector.getLogon() + if (success) { + connector.getLogon() + this.loginDialogVisibility = false + } } ) connector.$on( 'api-logout', (success) => { this.isAuthenticated = !success @@ -129,10 +138,16 @@ export default { }, handleUserMenu: function (command) { - if (command == 'login') - connector.login('admin', 'admin') + if (command == 'login') { + this.loginMode = command + this.loginDialogVisibility = true + } else if (command == 'logout') connector.logout() + }, + + handleLoginDialogClose: function() { + this.loginDialogVisibility = false } } } diff --git a/src/components/CodeManager.vue b/src/components/CodeManager.vue index e28bf36..ddc508a 100644 --- a/src/components/CodeManager.vue +++ b/src/components/CodeManager.vue @@ -305,7 +305,7 @@ export default { // handleCourseAdd: function () { if ( ! connector.isAuthenticated ) { - this.$message( _t( '未登录用户不能创建课程' ) ) + this.$message( _t( '未登陆用户不能创建课程' ) ) return } diff --git a/src/components/LoginDialog.vue b/src/components/LoginDialog.vue new file mode 100644 index 0000000..fbe454c --- /dev/null +++ b/src/components/LoginDialog.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/src/connector.js b/src/connector.js index a96d228..1827791 100644 --- a/src/connector.js +++ b/src/connector.js @@ -184,13 +184,21 @@ export default new Vue({ }, methods: { showError(err) { - Vue.prototype.$message( { + this.$message( { type: 'warning', message: err, showClose: true, duration: 15000 } ) }, + showSuccess(msg) { + this.$message({ + type: 'success', + message: msg, + showClose: true, + duration: 5000 + }) + }, sendRequest(api, paras, event, options) { let opt = !options ? {} : options const loading = opt.loading diff --git a/src/main.js b/src/main.js index 804275f..e4a644c 100644 --- a/src/main.js +++ b/src/main.js @@ -4,6 +4,7 @@ import CodeManager from './components/CodeManager.vue' import BufferManager from './components/BufferManager.vue' import BuildManager from './components/BuildManager.vue' import LaunchManager from './components/LaunchManager.vue' +import LoginDialog from './components/LoginDialog.vue' import I18nPlugin from './plugins/gettext.js' Vue.use(I18nPlugin) @@ -15,6 +16,7 @@ Vue.component('cb-code-manager', CodeManager) Vue.component('cb-buffer-manager', BufferManager) Vue.component('cb-build-manager', BuildManager) Vue.component('cb-lanuch-manager', LaunchManager) +Vue.component('cb-login-dialog', LoginDialog) new Vue({ render: h => h(App),