| | |
| | | const useUserStore = defineStore(
|
| | | 'user',
|
| | | {
|
| | | state: () => ({ |
| | | token: getToken(), |
| | | id: '', |
| | | name: '', |
| | | avatar: '', |
| | | roles: [], |
| | | permissions: [], |
| | | aiEnabled: 0 |
| | | state: () => ({
|
| | | token: getToken(),
|
| | | id: '',
|
| | | name: '',
|
| | | avatar: '',
|
| | | roles: [],
|
| | | permissions: [],
|
| | | aiEnabled: 0
|
| | | }),
|
| | | actions: {
|
| | | // 登录
|
| | |
| | | const uuid = userInfo.uuid
|
| | | return new Promise((resolve, reject) => {
|
| | | login(username, password, code, uuid).then(res => {
|
| | | setToken(res.token)
|
| | | this.token = res.token
|
| | | const token = res?.token || res?.data?.token
|
| | | if (!token) {
|
| | | reject(new Error('未获取到登录令牌'))
|
| | | return
|
| | | }
|
| | | setToken(token)
|
| | | this.token = token
|
| | | resolve()
|
| | | }).catch(error => {
|
| | | reject(error)
|
| | |
| | | getInfo() {
|
| | | return new Promise((resolve, reject) => {
|
| | | getInfo().then(res => {
|
| | | const user = res.user
|
| | | res = res.data
|
| | | const user = res.user || {}
|
| | | let avatar = user.avatar || ""
|
| | | avatar = import.meta.env.VITE_APP_BASE_API + '/profile/' + avatar
|
| | | if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
| | |
| | | } else {
|
| | | this.roles = ['ROLE_DEFAULT']
|
| | | }
|
| | | this.id = user.userId
|
| | | this.name = user.userName
|
| | | this.id = user.userId || ''
|
| | | this.name = user.userName || ''
|
| | | this.avatar = avatar
|
| | | this.currentFactoryName = user.currentFactoryName |
| | | this.nickName = user.nickName |
| | | this.roleName = user.roles[0].roleName |
| | | this.currentDeptId = user.tenantId |
| | | this.currentLoginTime = this.getCurrentTime() |
| | | this.aiEnabled = Number(res.aiEnabled) === 1 ? 1 : 0 |
| | | resolve(res) |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | this.currentFactoryName = user.currentFactoryName || ''
|
| | | this.nickName = user.nickName || ''
|
| | | this.roleName = Array.isArray(user.roles) && user.roles.length > 0 ? (user.roles[0].roleName || '') : ''
|
| | | this.currentDeptId = user.tenantId || ''
|
| | | this.currentLoginTime = this.getCurrentTime()
|
| | | this.aiEnabled = Number(res.aiEnabled) === 1 ? 1 : 0
|
| | | resolve(res)
|
| | | }).catch(error => {
|
| | | reject(error)
|
| | | })
|
| | | })
|
| | | },
|
| | | // 退出系统
|
| | | logOut() {
|
| | | return new Promise((resolve, reject) => {
|
| | | logout(this.token).then(() => {
|
| | | this.token = '' |
| | | this.roles = [] |
| | | this.permissions = [] |
| | | this.aiEnabled = 0 |
| | | removeToken() |
| | | resolve() |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | this.token = ''
|
| | | this.roles = []
|
| | | this.permissions = []
|
| | | this.aiEnabled = 0
|
| | | removeToken()
|
| | | resolve()
|
| | | }).catch(error => {
|
| | | reject(error)
|
| | | })
|
| | | })
|
| | | },
|
| | | // 登录校验
|
| | |
| | | const password = userInfo.password
|
| | | return new Promise((resolve, reject) => {
|
| | | loginCheckFactory(username, password).then(res => {
|
| | | setToken(res.token)
|
| | | this.token = res.token
|
| | | const token = res?.token || res?.data?.token
|
| | | if (!token) {
|
| | | reject(new Error('未获取到登录令牌'))
|
| | | return
|
| | | }
|
| | | setToken(token)
|
| | | this.token = token
|
| | | resolve()
|
| | | }).catch(error => {
|
| | | reject(error)
|
| | |
| | | return new Promise((resolve, reject) => {
|
| | | tideLogin(code)
|
| | | .then((res) => {
|
| | | setToken(res.token);
|
| | | this.token = res.token
|
| | | const token = res?.token || res?.data?.token
|
| | | if (!token) {
|
| | | reject(new Error('未获取到登录令牌'))
|
| | | return
|
| | | }
|
| | | setToken(token);
|
| | | this.token = token
|
| | | Vue.prototype.uploadHeader = {
|
| | | Authorization: "Bearer " + res.token,
|
| | | Authorization: "Bearer " + token,
|
| | | };
|
| | | resolve();
|
| | | })
|