123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- import { defineStore } from "pinia";
- import { store } from "/@/store";
- import { userType, resType } from "./types";
- import { router } from "/@/router";
- import { routerArrays } from "/@/layout/types";
- import { storageSession } from "@pureadmin/utils";
- import { getLogin, getMenuList, refreshToken } from "/@/api/user";
- import {
- getToken,
- setToken,
- removeToken,
- getUserInfo,
- setUserInfo,
- removeUserInfo
- } from "/@/utils/auth";
- import { useMultiTagsStoreHook } from "/@/store/modules/multiTags";
- const userinfo = getUserInfo();
- export const useUserStore = defineStore({
- id: "pure-user",
- state: (): userType => ({
- token: getToken(),
- name: "admin",
- // 前端生成的验证码(按实际需求替换)
- verifyCode: "",
- // 登录显示组件判断 0:登录 1:手机登录 2:二维码登录 3:注册 4:忘记密码,默认0:登录
- currentPage: 0,
- userInfo: userinfo || null
- }),
- actions: {
- SET_TOKEN(token) {
- this.token = token;
- },
- SET_NAME(name) {
- this.name = name;
- },
- SET_VERIFYCODE(verifyCode) {
- this.verifyCode = verifyCode;
- },
- SET_CURRENTPAGE(value) {
- this.currentPage = value;
- },
- SET_USERINFO(value) {
- this.userInfo = value;
- },
- // 登入
- async loginByUsername(form) {
- return new Promise((resolve, reject) => {
- getLogin(form)
- .then((res: resType) => {
- const { code, data } = res;
- if (code === 0) {
- const { token, userinfo } = data;
- setToken(token);
- setUserInfo(userinfo);
- resolve(res);
- } else {
- resolve(res);
- }
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- // 获取当前账号菜单数据
- async postMenuList(form) {
- return new Promise((resolve, reject) => {
- getMenuList(form)
- .then((res: resType) => {
- const { code, data } = res;
- if (code === 0) {
- const systemRouter = {
- path: "/system",
- redirect: "/system/menuOperator/index",
- meta: {
- icon: "setting",
- title: "系统管理",
- rank: 11
- },
- children: [
- {
- path: "/system/menuOperator/index",
- name: "menuOperator",
- meta: {
- icon: "flUser",
- title: "用户管理"
- }
- },
- {
- path: "/system/oplog/index",
- name: "oplog",
- meta: {
- icon: "role",
- title: "角色管理"
- }
- },
- {
- path: "/system/updates/index",
- name: "updates",
- meta: {
- icon: "dept",
- title: "部门管理"
- }
- }
- ]
- };
- const interestRouter = {
- path: "/interest",
- redirect: "/interest/account/index",
- meta: {
- icon: "setting",
- title: "权限管理",
- rank: 11
- },
- children: [
- {
- path: "/interest/account/index",
- name: "account",
- meta: {
- icon: "flUser",
- title: "用户管理"
- }
- },
- {
- path: "/interest/role/index",
- name: "role",
- meta: {
- icon: "role",
- title: "角色管理"
- }
- },
- {
- path: "/interest/action/index",
- name: "action",
- meta: {
- icon: "dept",
- title: "部门管理"
- }
- },
- {
- path: "/interest/dataShare/index",
- name: "dataShare",
- meta: {
- icon: "dict",
- title: "字典管理"
- }
- },
- {
- path: "/interest/group/index",
- name: "group",
- meta: {
- icon: "dict",
- title: "字典管理"
- }
- }
- ]
- };
- const arrag = [interestRouter, systemRouter];
- resolve(res);
- // console.log(arrag);
- } else {
- resolve(res);
- }
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- // 登出 清空缓存
- logOut() {
- this.token = "";
- this.name = "";
- removeToken();
- storageSession.clear();
- useMultiTagsStoreHook().handleTags("equal", routerArrays);
- router.push("/login");
- },
- // 刷新token
- async refreshToken(data) {
- return refreshToken(data).then(data => {
- if (data) {
- setToken(data);
- return data;
- }
- });
- }
- }
- });
- export function useUserStoreHook() {
- return useUserStore(store);
- }
|