counter.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import { ref, computed, reactive } from 'vue'
  2. import { defineStore } from 'pinia'
  3. import { useRouter, useRoute } from 'vue-router'
  4. import { $ls, $ss } from "@/storage";
  5. import { ElMessage } from 'element-plus'
  6. import { passwordLogin } from "@/apis/user.js";
  7. import { routerPath } from '@/utils/index.js'
  8. import routerList from '../router/router';
  9. import axios from 'axios' // axios version exactly 0.19.2
  10. export const useCounterStore = defineStore('counter', () => {
  11. const $router = useRouter()
  12. const $route = useRoute()
  13. const data = reactive({
  14. basic_token1: 'YWdlbnQ6YWdlbnQ=', // 登陆的头部字段
  15. isCollapse: false, // 是否水平折叠收起菜单,
  16. menu: $ls.getItem('menu') && $ls.getItem('menu') || [],
  17. menulist: $ls.getItem('menu') && $ls.getItem('menu') || [],
  18. mainTabsList: [],
  19. curActiveTabVal: '',
  20. pathUrlList: [],
  21. userName: $ss.getItem('info') && $ss.getItem('info').sysUser.username || '',
  22. curPath: ''
  23. })
  24. // 登陆
  25. function LoginUsername(params) {
  26. passwordLogin(params).then((res) => {
  27. if (res.code === 1) {
  28. // 存储token鉴权
  29. console.log(res,'resloggin');
  30. $ss.setItem('token', res.data)
  31. $ls.setItem('info', params)
  32. // let token = $ls.getItem('token')
  33. // axios.defaults.headers.common['accessToken'] = token
  34. ElMessage.success('登录成功')
  35. // 跳转主页
  36. setTimeout(() => {
  37. $router.push('/home')
  38. }, 1000)
  39. } else {
  40. ElMessage.warning(res.message || '登录失败')
  41. }
  42. })
  43. }
  44. // 登出
  45. function Logout() {
  46. ElMessageBox.confirm(
  47. '是否确定要退出?',
  48. '警告',
  49. {
  50. confirmButtonText: '确认',
  51. cancelButtonText: '取消',
  52. type: 'warning',
  53. }
  54. )
  55. .then(() => {
  56. localStorage.clear()
  57. sessionStorage.clear();
  58. $router.push({
  59. path: "/login"
  60. });
  61. })
  62. .catch(() => {
  63. })
  64. }
  65. function addMenuTab(obj) {
  66. let flag = data.mainTabsList.some((val) => val.path === obj.path);
  67. if (!flag) {
  68. data.mainTabsList.push(obj);
  69. }
  70. data.curActiveTabVal = obj.path;
  71. }
  72. function delMenuTab(val) {
  73. data.mainTabsList = data.mainTabsList.filter((item) => item.path !== val);
  74. }
  75. function remoMenuTab() {
  76. data.mainTabsList = [];
  77. }
  78. // 路由跳转
  79. function puhsMentab(obj) {
  80. addMenuTab({
  81. path: obj.path,
  82. name: obj.name
  83. });
  84. console.log(obj);
  85. if (obj.query) {
  86. $router.push({
  87. path: obj.path,
  88. query: obj.query
  89. })
  90. } else {
  91. $router.push({
  92. path: obj.path,
  93. })
  94. }
  95. data.curPath = obj.path;
  96. $ls.setItem("fullPath", { path: obj.path, name: obj.name });
  97. }
  98. return { LoginUsername, data, Logout, addMenuTab, delMenuTab, puhsMentab, remoMenuTab }
  99. })