import { ref, computed, reactive } from 'vue' import { defineStore } from 'pinia' import { useRouter, useRoute } from 'vue-router' import { $ls, $ss } from "@/storage"; import { ElMessage } from 'element-plus' import { passwordLogin } from "@/apis/user.js"; import { routerPath } from '@/utils/index.js' import routerList from '../router/router'; import axios from 'axios' // axios version exactly 0.19.2 export const useCounterStore = defineStore('counter', () => { const $router = useRouter() const $route = useRoute() const data = reactive({ basic_token1: 'YWdlbnQ6YWdlbnQ=', // 登陆的头部字段 isCollapse: false, // 是否水平折叠收起菜单, menu: $ls.getItem('menu') && $ls.getItem('menu') || [], menulist: $ls.getItem('menu') && $ls.getItem('menu') || [], mainTabsList: [], curActiveTabVal: '', pathUrlList: [], userName: $ss.getItem('info') && $ss.getItem('info').sysUser.username || '', curPath: '' }) // 登陆 function LoginUsername(params) { passwordLogin(params).then((res) => { if (res.code === 1) { // 存储token鉴权 console.log(res,'resloggin'); $ss.setItem('token', res.data) $ls.setItem('info', params) // let token = $ls.getItem('token') // axios.defaults.headers.common['accessToken'] = token ElMessage.success('登录成功') // 跳转主页 setTimeout(() => { $router.push('/home') }, 1000) } else { ElMessage.warning(res.message || '登录失败') } }) } // 登出 function Logout() { ElMessageBox.confirm( '是否确定要退出?', '警告', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', } ) .then(() => { localStorage.clear() sessionStorage.clear(); $router.push({ path: "/login" }); }) .catch(() => { }) } function addMenuTab(obj) { let flag = data.mainTabsList.some((val) => val.path === obj.path); if (!flag) { data.mainTabsList.push(obj); } data.curActiveTabVal = obj.path; } function delMenuTab(val) { data.mainTabsList = data.mainTabsList.filter((item) => item.path !== val); } function remoMenuTab() { data.mainTabsList = []; } // 路由跳转 function puhsMentab(obj) { addMenuTab({ path: obj.path, name: obj.name }); console.log(obj); if (obj.query) { $router.push({ path: obj.path, query: obj.query }) } else { $router.push({ path: obj.path, }) } data.curPath = obj.path; $ls.setItem("fullPath", { path: obj.path, name: obj.name }); } return { LoginUsername, data, Logout, addMenuTab, delMenuTab, puhsMentab, remoMenuTab } })