This commit is contained in:
qsh
2026-01-30 11:21:02 +08:00
parent 35f5621d7e
commit 36482fb428
7 changed files with 710 additions and 342 deletions

View File

@@ -1,106 +1,110 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import config from '@/config'
import storage from '@/utils/storage'
import constant from '@/utils/constant'
import { isHttp, isEmpty } from "@/utils/validate"
import { getInfo, login, logout } from '@/api/login'
import { getToken, removeToken, setToken } from '@/utils/auth'
import defAva from '@/static/images/profile.jpg'
import { defineStore } from 'pinia';
import { ref } from 'vue';
import config from '@/config';
import storage from '@/utils/storage';
import constant from '@/utils/constant';
import { isHttp, isEmpty } from '@/utils/validate';
import { getInfo, login, logout } from '@/api/login';
import { getToken, removeToken, setToken } from '@/utils/auth';
import defAva from '@/static/images/profile.jpg';
const baseUrl = config.baseUrl
const baseUrl = config.baseUrl;
export const useUserStore = defineStore('user', () => {
const token = ref(getToken())
const id = ref(storage.get(constant.id))
const name = ref(storage.get(constant.name))
const avatar = ref(storage.get(constant.avatar))
const roles = ref(storage.get(constant.roles))
const permissions = ref(storage.get(constant.permissions))
const token = ref(getToken());
const id = ref(storage.get(constant.id));
const name = ref(storage.get(constant.name));
const avatar = ref(storage.get(constant.avatar));
const roles = ref(storage.get(constant.roles));
const permissions = ref(storage.get(constant.permissions));
const SET_TOKEN = (val) => {
token.value = val
}
const SET_ID = (val) => {
id.value = val
storage.set(constant.id, val)
}
const SET_NAME = (val) => {
name.value = val
storage.set(constant.name, val)
}
const SET_AVATAR = (val) => {
avatar.value = val
storage.set(constant.avatar, val)
}
const SET_ROLES = (val) => {
roles.value = val
storage.set(constant.roles, val)
}
const SET_PERMISSIONS = (val) => {
permissions.value = val
storage.set(constant.permissions, val)
}
const SET_TOKEN = val => {
token.value = val;
};
const SET_ID = val => {
id.value = val;
storage.set(constant.id, val);
};
const SET_NAME = val => {
name.value = val;
storage.set(constant.name, val);
};
const SET_AVATAR = val => {
avatar.value = val;
storage.set(constant.avatar, val);
};
const SET_ROLES = val => {
roles.value = val;
storage.set(constant.roles, val);
};
const SET_PERMISSIONS = val => {
permissions.value = val;
storage.set(constant.permissions, val);
};
// 登录
const loginAction = (userInfo) => {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
const loginAction = userInfo => {
const username = userInfo.username.trim();
const password = userInfo.password;
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
setToken(res.token)
SET_TOKEN(res.token)
resolve()
}).catch(error => {
reject(error)
})
})
}
login(username, password)
.then(res => {
setToken(res.data.accessToken);
SET_TOKEN(res.data.accessToken);
resolve();
})
.catch(error => {
reject(error);
});
});
};
// 获取用户信息
const getInfoAction = () => {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
let avatar = user.avatar || ""
if (!isHttp(avatar)) {
avatar = (isEmpty(avatar)) ? defAva : baseUrl + avatar
}
const userid = (isEmpty(user) || isEmpty(user.userId)) ? "" : user.userId
const username = (isEmpty(user) || isEmpty(user.userName)) ? "" : user.userName
if (res.roles && res.roles.length > 0) {
SET_ROLES(res.roles)
SET_PERMISSIONS(res.permissions)
} else {
SET_ROLES(['ROLE_DEFAULT'])
}
SET_ID(userid)
SET_NAME(username)
SET_AVATAR(avatar)
resolve(res)
}).catch(error => {
reject(error)
})
})
}
getInfo()
.then(res => {
const user = res.data.user;
let avatar = user.avatar || '';
if (!isHttp(avatar)) {
avatar = isEmpty(avatar) ? defAva : baseUrl + avatar;
}
const userid = isEmpty(user) || isEmpty(user.userId) ? '' : user.userId;
const username = isEmpty(user) || isEmpty(user.userName) ? '' : user.userName;
if (res.data.roles && res.data.roles.length > 0) {
SET_ROLES(res.data.roles);
SET_PERMISSIONS(res.data.permissions);
} else {
SET_ROLES(['ROLE_DEFAULT']);
}
SET_ID(userid);
SET_NAME(username);
SET_AVATAR(avatar);
resolve(res);
})
.catch(error => {
reject(error);
});
});
};
// 退出系统
const logOutAction = () => {
return new Promise((resolve, reject) => {
logout(token.value).then(() => {
SET_TOKEN('')
SET_ROLES([])
SET_PERMISSIONS([])
removeToken()
storage.clean()
resolve()
}).catch(error => {
reject(error)
})
})
}
logout(token.value)
.then(() => {
SET_TOKEN('');
SET_ROLES([]);
SET_PERMISSIONS([]);
removeToken();
storage.clean();
resolve();
})
.catch(error => {
reject(error);
});
});
};
return {
token,
@@ -113,5 +117,5 @@ export const useUserStore = defineStore('user', () => {
login: loginAction,
getInfo: getInfoAction,
logOut: logOutAction
}
})
};
});