first commit

This commit is contained in:
x ronger 2020-07-02 23:45:27 +08:00
parent eb44b5f2d5
commit 4bf83cc3fe
6 changed files with 106 additions and 11 deletions

View File

@ -71,10 +71,10 @@
</el-link> </el-link>
</el-col> </el-col>
<el-col v-else> <el-col v-else>
<nuxt-link to="login"> <nuxt-link to="/login">
<el-link :underline="false" style="margin-left: 10px;">登录</el-link> <el-link :underline="false" style="margin-left: 10px;">登录</el-link>
</nuxt-link> </nuxt-link>
<nuxt-link to="register"> <nuxt-link to="/register">
<el-link :underline="false" style="margin-left: 10px;">注册</el-link> <el-link :underline="false" style="margin-left: 10px;">注册</el-link>
</nuxt-link> </nuxt-link>
</el-col> </el-col>
@ -91,16 +91,16 @@
return this.$store.state.activeMenu; return this.$store.state.activeMenu;
}, },
isLogin() { isLogin() {
return this.$store.getters.isLogin; return this.$store.getters['auth/isLogin'];
}, },
avatarURL() { avatarURL() {
return this.$store.state.avatarURL; return this.$store.state['auth/avatarURL'];
}, },
nickname() { nickname() {
return this.$store.state.nickname; return this.$store.state['auth/nickname'];
}, },
hasPermissions() { hasPermissions() {
return this.$store.getters.hasPermissions('blog_admin'); return this.$store.getters['auth/hasPermissions(\'blog_admin\')'];
} }
}, },
data() { data() {
@ -193,10 +193,10 @@
}, },
getUnreadNotifications() { getUnreadNotifications() {
let _ts = this; let _ts = this;
_ts.axios.get('/notification/unread').then(function (res) { _ts.$axios.$get('/api/v1/notification/unread').then(function (res) {
if (res) { if (res) {
_ts.$set(_ts, 'notifications', res.notifications); _ts.$set(_ts, 'notifications', res.data.notifications);
_ts.$set(_ts, 'notificationNumbers', res.notifications.length == 0 ? "" : res.notifications.length); _ts.$set(_ts, 'notificationNumbers', res.data.notifications.length == 0 ? "" : res.notifications.length);
} }
}) })
} }

View File

@ -3,7 +3,7 @@ import { NODE_ENV } from '../environment'
const apisMap = { const apisMap = {
development: { development: {
FE: 'http://localhost:3000', FE: 'http://localhost:3000',
BASE: 'http://localhost:8099/vertical', BASE: 'https://rymcu.com/vertical-console',
CDN: '', CDN: '',
PROXY: '/proxy', PROXY: '/proxy',
SOCKET: 'http://localhost:3000', SOCKET: 'http://localhost:3000',

View File

@ -52,6 +52,7 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex';
export default { export default {
name: "login", name: "login",
data() { data() {
@ -67,6 +68,11 @@
loading: false loading: false
} }
}, },
computed: {
...mapState({
article: state => state.article.detail.data
})
},
methods: { methods: {
login() { login() {
let _ts = this; let _ts = this;
@ -84,6 +90,7 @@
_ts.$message(res.data.message); _ts.$message(res.data.message);
return false; return false;
} }
_ts.$store.dispatch('auth/initLogin', res.data.user);
_ts.$router.push({ _ts.$router.push({
name: 'index' name: 'index'
}) })

View File

@ -59,7 +59,7 @@ export const actions = {
fetchList({commit}, params = {}) { fetchList({commit}, params = {}) {
// 清空已有数据 // 清空已有数据
// commit('updateListData', getDefaultListData()) commit('updateListData', getDefaultListData())
commit('updateListFetching', true) commit('updateListFetching', true)
return this.$axios return this.$axios

83
store/auth.js Normal file
View File

@ -0,0 +1,83 @@
export const state = () => {
return {
isLogin: false,
token: '',
nickname: '',
idUser: '',
avatarURL: '',
role: 0, // 0-no login, 1-admin, 2-blog admin, 3-blog author, 4-blog user, 5-visitor
login: false
}
}
export const mutations = {
updateUserInfo(state, data) {
state.isLogin = true;
state.avatarURL = data.avatarUrl;
state.nickname = data.nickname;
state.token = data.token;
state.account = data.account;
state.role = data.weights;
state.idUser = data.idUser;
}
}
export const actions = {
setLogin(state, data){
state.login = data
},
setUserInfo(state, data) {
state.avatarURL = data.avatarUrl;
state.nickname = data.nickname;
},
initLogin({commit}, data = {}){
commit('updateUserInfo', data)
},
logout(state){
state.isLogin = false;
state.avatarURL = '';
state.nickname = '';
state.token = '';
state.account = '';
state.role = '';
state.idUser = '';
}
}
export const getters = {
isLogin(state){
return state.isLogin
},
hasPermissions:(state)=>(scenes)=>{
let hasPermissions = false;
if (state.role) {
switch (scenes) {
case 'user':
hasPermissions = state.role < 5;
break;
case 'role':
hasPermissions = state.role < 2;
break;
case 'topic':
hasPermissions = state.role < 3;
break;
case 'tag':
hasPermissions = state.role < 3;
break;
case 'admin':
hasPermissions = state.role < 2;
break;
case 'blog_admin':
hasPermissions = state.role < 3;
break;
default:
hasPermissions = false;
this.commit('logout');
}
}
return hasPermissions;
},
isAuthor: (state)=>(scenes)=> {
return state.nickname === scenes ? true : false;
}
}

View File

@ -1,3 +1,8 @@
export const state = () => {
return {
activeMenu: 'index'
}
}
export const actions = { export const actions = {
nuxtServerInit(store, {req}) { nuxtServerInit(store, {req}) {
// 初始化时的全局任务 // 初始化时的全局任务