| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import { defineStore } from 'pinia';
- import { login, QueyrUserInfo } from '../../apis/login';
- import { kuky_Authorization, localST_UserInfo } from '../storage';
- /**
- * 当前登录的用户信息
- */
- export const useCurrentUserStore = defineStore('current_user', {
- persist: {
- enabled: true,
- // 可选:自定义存储的 key 和要持久化的路径
- strategies: [
- {
- key: 'info',
- storage: localStorage,
- paths: ['username'] // 只持久化 username 属性
- }
- ]
- },
- state: () => {
- return {
- name: 'Jack',
- token_type: '',
- token: kuky_Authorization.get(),
- username: '',
- nickname: '',
- dept: [],
- roles: [],
- permissions: [],
- user: {}
- };
- },
- actions: {
- updateName(name) {
- this.name = name;
- },
- toLogin(data) {
- const { username, password } = data;
- return new Promise((resolve, reject) => {
- login({ username, password })
- .then((res) => {
- if (res.code == 200 && res.data.access_token.length) {
- this.token = res.data.access_token;
- this.token_type = res.data.token_type;
- this.username = res.data.username;
- this.nickname = res.data.nickname;
- kuky_Authorization.set(res.data.access_token);
- resolve(res.msg);
- /**
- * 获取用户信息
- * 暂时先在这里去调用,后续可以考虑放在路由拦截中去调用
- */
- this.getInfo();
- } else {
- reject(res.msg);
- }
- })
- .catch((err) => {
- reject(err);
- });
- });
- },
- async getUserInfo() {
- try {
- const {
- code,
- data: { permissions, dept, roles }
- } = await QueyrUserInfo();
- if (code === 200) {
- localST_UserInfo.setItem(JSON.stringify({ permissions, dept, roles }));
- }
- } catch (err) {
- throw err;
- }
- }
- }
- });
|