Commit 0239e519 by qinjianhui

fix:saas 菜单页面

parent 9114be88
import axios from './axios' import axios from './axios'
export function login({ userName, password }) { export function getLoginState({ userName, password }) {
return axios.post('sys/saasUserLogin/login', null, { return axios.post('sys/saasUserLogin/login', null, {
params: { userName, password }, params: { userName, password },
}) })
} }
export function logout() {
return axios.get('sys/saasUserLogin/logout')
}
...@@ -7,7 +7,7 @@ export function updateSysmenu({ id, enable, type }) { ...@@ -7,7 +7,7 @@ export function updateSysmenu({ id, enable, type }) {
} }
export function getAllMenusTree() { export function getAllMenusTree() {
return axios.get('sysMenu/getAllMenusTree') return axios.get('sysSaasMenu/getAllMenusTree')
} }
export function addMenu(data) { export function addMenu(data) {
......
...@@ -23,6 +23,7 @@ import { ...@@ -23,6 +23,7 @@ import {
MenuItem, MenuItem,
MenuItemGroup, MenuItemGroup,
Tag, Tag,
Checkbox,
} from 'element-ui' } from 'element-ui'
const components = [ const components = [
...@@ -45,6 +46,7 @@ const components = [ ...@@ -45,6 +46,7 @@ const components = [
Submenu, Submenu,
MenuItemGroup, MenuItemGroup,
Tag, Tag,
Checkbox,
] ]
export default { export default {
......
...@@ -2,18 +2,24 @@ import Vue from 'vue' ...@@ -2,18 +2,24 @@ import Vue from 'vue'
import Vuex from 'vuex' import Vuex from 'vuex'
import tags from './tags' import tags from './tags'
// import { getLoginState } from '@/common/api/login'
import { getUser } from '@/utils/auth'
Vue.use(Vuex) Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
keyCode: null, keyCode: null,
userInfo: getUser(),
}, },
getters: {}, getters: {},
mutations: { mutations: {
setKeyCode(state, msg) { setKeyCode(state, msg) {
state.keyCode = msg state.keyCode = msg
}, },
setUserInfo(state, profile) {
console.log(profile)
state.userInfo = profile
},
}, },
actions: { actions: {
setKeyCode({ commit }, msg) { setKeyCode({ commit }, msg) {
......
...@@ -4,3 +4,13 @@ export function setToken(token) { ...@@ -4,3 +4,13 @@ export function setToken(token) {
export function getToken() { export function getToken() {
return localStorage.getItem('token') return localStorage.getItem('token')
} }
export function setUser(user) {
localStorage.setItem('user', JSON.stringify(user))
}
export function getUser() {
try {
return JSON.parse(localStorage.getItem('user'))
} catch {
return null
}
}
...@@ -38,8 +38,10 @@ ...@@ -38,8 +38,10 @@
</div> </div>
</template> </template>
<script> <script>
import { login } from '@/common/api/login' import { getLoginState } from '@/common/api/login'
import { setToken } from '@/utils/auth' import { setToken, setUser } from '@/utils/auth'
import { mapMutations } from 'vuex'
export default { export default {
name: 'LoginPage', name: 'LoginPage',
data() { data() {
...@@ -55,6 +57,7 @@ export default { ...@@ -55,6 +57,7 @@ export default {
this.loginForm = {} this.loginForm = {}
}, },
methods: { methods: {
...mapMutations(['setUserInfo']),
async login() { async login() {
if (!this.loginForm.userName || !this.loginForm.password) { if (!this.loginForm.userName || !this.loginForm.password) {
this.$message.error('请输入用户名或密码') this.$message.error('请输入用户名或密码')
...@@ -64,13 +67,15 @@ export default { ...@@ -64,13 +67,15 @@ export default {
background: 'rgba(0, 0, 0, 0.3)', background: 'rgba(0, 0, 0, 0.3)',
}) })
try { try {
const res = await login(this.loginForm) const res = await getLoginState(this.loginForm)
if (res.code === 200) { if (res.code === 200) {
setToken(res.data.token) setToken(res.data.token)
setUser(res.data.saasUser)
this.setUserInfo(res.data.saasUser)
this.$router.push('/saas/manage') this.$router.push('/saas/manage')
} }
} catch (e) { } catch (e) {
console.log(e) console.error(e)
} finally { } finally {
l.close() l.close()
} }
......
...@@ -2,17 +2,38 @@ ...@@ -2,17 +2,38 @@
<div class="home-header"> <div class="home-header">
<page-tags /> <page-tags />
<div class="user-area"> <div class="user-area">
<span class="user-name">系统管理员</span> <span class="user-name">{{ userInfo && userInfo.userName }}</span>
<el-button type="text">注销</el-button> <el-button type="text" @click="logout"
>退出登录</el-button
>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import pageTags from './pageTags.vue' import pageTags from './pageTags.vue'
import { logout } from '@/common/api/login'
import { setToken, setUser } from '@/utils/auth'
import { mapState } from 'vuex'
export default { export default {
components: { pageTags }, components: { pageTags },
name: 'HomeHeader', name: 'HomeHeader',
computed: {
...mapState(['userInfo']),
},
methods: {
async logout() {
try {
await logout()
} catch (e) {
console.error(e)
}
setUser(null)
setToken('')
this.$router.push('/login')
},
},
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
<div class="right"> <div class="right">
<home-header /> <home-header />
<div class="content"> <div class="content">
<router-view></router-view> <keep-alive :include="cacheView">
<router-view :key="$route.name" />
</keep-alive>
</div> </div>
</div> </div>
</div> </div>
...@@ -13,6 +15,7 @@ ...@@ -13,6 +15,7 @@
<script> <script>
import NavMenu from './navMenu.vue' import NavMenu from './navMenu.vue'
import HomeHeader from './HomeHeader.vue' import HomeHeader from './HomeHeader.vue'
import { mapState } from 'vuex'
// @ is an alias to /src // @ is an alias to /src
export default { export default {
...@@ -21,8 +24,12 @@ export default { ...@@ -21,8 +24,12 @@ export default {
NavMenu, NavMenu,
HomeHeader, HomeHeader,
}, },
created() { computed: {
// this.$router.push('/saas/manage') ...mapState('tags', ['tags']),
cacheView() {
const arr = []
return arr.concat(this.tags.map((item) => item.name))
},
}, },
data() { data() {
return {} return {}
......
...@@ -160,7 +160,7 @@ import { ...@@ -160,7 +160,7 @@ import {
} from '../common/api/sys' } from '../common/api/sys'
export default { export default {
name: 'menu_management', name: 'saasMenu',
components: { components: {
tableView, tableView,
// myLayout, // myLayout,
...@@ -298,7 +298,7 @@ export default { ...@@ -298,7 +298,7 @@ export default {
}, },
}, },
mounted() { mounted() {
// this.getlist() this.getlist()
}, },
methods: { methods: {
async enableChange(item, v) { async enableChange(item, v) {
...@@ -329,6 +329,8 @@ export default { ...@@ -329,6 +329,8 @@ export default {
} }
} catch (e) { } catch (e) {
console.error(e) console.error(e)
} finally {
this.loading = false
} }
}, },
resetForm() { resetForm() {
......
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
label="数据库地址" label="数据库地址"
prop="dataHost" prop="dataHost"
header-align="center" header-align="center"
align="center" align="left"
width="160" width="160"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment