mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-25 17:42:25 +01:00
151 lines
3.6 KiB
JavaScript
151 lines
3.6 KiB
JavaScript
import request from '../../api/request'
|
|
|
|
const user = {
|
|
namespaced: true,
|
|
|
|
state: {
|
|
// token: getToken(),
|
|
name: '',
|
|
avatar: '',
|
|
roles: [],
|
|
userList: [],
|
|
userForm: {},
|
|
userInfo: undefined,
|
|
adminPaths: [
|
|
'/users'
|
|
],
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
totalCount: 0
|
|
},
|
|
|
|
getters: {
|
|
userInfo (state) {
|
|
if (state.userInfo) return state.userInfo
|
|
const userInfoStr = window.localStorage.getItem('user_info')
|
|
if (!userInfoStr) return {}
|
|
return JSON.parse(userInfoStr)
|
|
},
|
|
token () {
|
|
return window.localStorage.getItem('token')
|
|
}
|
|
},
|
|
|
|
mutations: {
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token
|
|
},
|
|
SET_NAME: (state, name) => {
|
|
state.name = name
|
|
},
|
|
SET_AVATAR: (state, avatar) => {
|
|
state.avatar = avatar
|
|
},
|
|
SET_ROLES: (state, roles) => {
|
|
state.roles = roles
|
|
},
|
|
SET_USER_LIST: (state, value) => {
|
|
state.userList = value
|
|
},
|
|
SET_USER_FORM: (state, value) => {
|
|
state.userForm = value
|
|
},
|
|
SET_USER_INFO: (state, value) => {
|
|
state.userInfo = value
|
|
},
|
|
SET_PAGE_NUM: (state, value) => {
|
|
state.pageNum = value
|
|
},
|
|
SET_PAGE_SIZE: (state, value) => {
|
|
state.pageSize = value
|
|
},
|
|
SET_TOTAL_COUNT: (state, value) => {
|
|
state.totalCount = value
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
// 登录
|
|
login ({ commit }, userInfo) {
|
|
const username = userInfo.username.trim()
|
|
return new Promise((resolve, reject) => {
|
|
request.post('/login', { username, password: userInfo.password })
|
|
.then(response => {
|
|
const token = response.data.data
|
|
commit('SET_TOKEN', token)
|
|
window.localStorage.setItem('token', token)
|
|
resolve()
|
|
})
|
|
.catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
},
|
|
|
|
// 获取用户信息
|
|
getInfo ({ commit, state }) {
|
|
return request.get('/me')
|
|
.then(response => {
|
|
commit('SET_USER_INFO', response.data.data)
|
|
window.localStorage.setItem('user_info', JSON.stringify(response.data.data))
|
|
})
|
|
},
|
|
|
|
// 注册
|
|
register ({ dispatch, commit, state }, userInfo) {
|
|
return new Promise((resolve, reject) => {
|
|
request.put('/users', { username: userInfo.username, password: userInfo.password })
|
|
.then(() => {
|
|
resolve()
|
|
})
|
|
.catch(r => {
|
|
reject(r.response.data.error)
|
|
})
|
|
})
|
|
},
|
|
|
|
// 登出
|
|
logout ({ commit, state }) {
|
|
return new Promise((resolve, reject) => {
|
|
window.localStorage.removeItem('token')
|
|
window.localStorage.removeItem('user_info')
|
|
commit('SET_USER_INFO', undefined)
|
|
commit('SET_TOKEN', '')
|
|
commit('SET_ROLES', [])
|
|
resolve()
|
|
})
|
|
},
|
|
|
|
// 获取用户列表
|
|
getUserList ({ commit, state }) {
|
|
return new Promise((resolve, reject) => {
|
|
request.get('/users', {
|
|
page_num: state.pageNum,
|
|
page_size: state.pageSize
|
|
})
|
|
.then(response => {
|
|
commit('SET_USER_LIST', response.data.data)
|
|
commit('SET_TOTAL_COUNT', response.data.total)
|
|
})
|
|
})
|
|
},
|
|
|
|
// 删除用户
|
|
deleteUser ({ state }, id) {
|
|
return request.delete(`/users/${id}`)
|
|
},
|
|
|
|
// 编辑用户
|
|
editUser ({ state }) {
|
|
return request.post(`/users/${state.userForm._id}`, state.userForm)
|
|
},
|
|
|
|
// 添加用户
|
|
addUser ({ dispatch, commit, state }) {
|
|
return request.put('/users', state.userForm)
|
|
}
|
|
}
|
|
}
|
|
|
|
export default user
|