mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-22 17:31:03 +01:00
* 更新Dockerfile构建文件,升级NodeJS依赖版本。 * 遵循ESLint重新格式化代码,修复部分警告 * 登录Token失效增加登出提示 * 网络请求问题增加错误错误提示 * 升级UI依赖库
184 lines
4.5 KiB
Go
184 lines
4.5 KiB
Go
import request from '../../api/request'
|
|
import { getToken, setToken, removeToken } from '@/utils/auth'
|
|
|
|
const user = {
|
|
namespaced: true,
|
|
|
|
state: {
|
|
token: getToken(),
|
|
name: '',
|
|
avatar: '',
|
|
roles: [],
|
|
userList: [],
|
|
globalVariableList: [],
|
|
globalVariableForm: {},
|
|
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
|
|
},
|
|
SET_GLOBAL_VARIABLE_LIST: (state, value) => {
|
|
state.globalVariableList = value
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
// 登录
|
|
async login({ commit }, userInfo) {
|
|
const username = userInfo.username.trim()
|
|
const res = await request.post('/login',
|
|
{ username, password: userInfo.password })
|
|
if (res.status === 200) {
|
|
const token = res.data.data
|
|
commit('SET_TOKEN', token)
|
|
setToken(token)
|
|
}
|
|
return res
|
|
},
|
|
|
|
// 获取用户信息
|
|
async getInfo({ commit, state }) {
|
|
const response = await request.get('/me')
|
|
|
|
// ensure compatibility
|
|
if (!response.data.data.setting.max_error_log) {
|
|
response.data.data.setting.max_error_log = 1000
|
|
}
|
|
commit('SET_USER_INFO', response.data.data)
|
|
window.localStorage.setItem('user_info',
|
|
JSON.stringify(response.data.data))
|
|
},
|
|
|
|
// 修改用户信息
|
|
postInfo({ commit }, form) {
|
|
return request.post('/me', form)
|
|
},
|
|
|
|
// 注册
|
|
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()
|
|
})
|
|
},
|
|
async resetToken({ commit }) {
|
|
commit('SET_TOKEN', '')
|
|
commit('SET_ROLES', [])
|
|
removeToken()
|
|
},
|
|
// 获取用户列表
|
|
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-add', state.userForm)
|
|
},
|
|
// 新增全局变量
|
|
addGlobalVariable({ commit, state }) {
|
|
return request.put(`/variable`, state.globalVariableForm)
|
|
.then(() => {
|
|
state.globalVariableForm = {}
|
|
})
|
|
},
|
|
// 获取全局变量列表
|
|
getGlobalVariable({ commit, state }) {
|
|
request.get('/variables').then((response) => {
|
|
commit('SET_GLOBAL_VARIABLE_LIST', response.data.data)
|
|
})
|
|
},
|
|
// 删除全局变量
|
|
deleteGlobalVariable({ commit, state }, id) {
|
|
return request.delete(`/variable/${id}`)
|
|
}
|
|
}
|
|
}
|
|
|
|
export default user
|