import { defineStore } from 'pinia' import { login, logout, getInfo, getPermissionInfo } from '@/api/login' import { setToken, removeToken } from '@/utils/auth' const baseUrl = import.meta.env.VITE_BASE_URL const useStore = defineStore('storeId', { state: () => ({ id: '', // 用户编号 name: '', avatar: '', roles: [], permissions: '', role: '', post: '', dept: '', menus1: [], menus2: [], }), getters: { // isEven: (state) => state.count % 2 === 0 }, actions: { // 登录 Login(userInfo) { const username = userInfo.username.trim() const password = userInfo.password const captchaVerification = userInfo.captchaVerification const tenantName = userInfo.tenantName const rememberMe = userInfo.rememberMe const code = userInfo.code const uuid = userInfo.uuid return new Promise((resolve, reject) => { login(username, password, captchaVerification, tenantName, rememberMe, code, uuid).then( res => { res = res.data; // 设置 token setToken(res) resolve(res) }).catch(error => { reject(error) }) }) }, // 获取权限 GetPermissionInfo() { return new Promise((resolve, reject) => { getPermissionInfo().then(res => { res = res.data; // 读取 data 数据 if (res.roles && res.roles.length > 0) { this.roles = res.roles this.role = res.roles.filter(item => item == 'all_approve' || item == 'normal_approve')[0] this.permissions = res.permissions let menus = [] res.menus.forEach(item => { if (item.path == '/pda') { menus = item.children } }) this.menus1 = menus.filter(item => item.path !== 'itemOut') this.menus2 = menus.filter(item => item.path === 'itemOut') } else { this.roles = [] this.role = '' } resolve(res) }).catch(error => { reject(error) }) }) }, // 获取权限 GetInfo() { return new Promise((resolve, reject) => { getInfo().then(res => { res = res.data; // 读取 data 数据 this.avatar = res.avatar this.name = res.nickname this.id = res.id this.avatar = res.avatar this.dept = res.dept if (res.posts && res.posts.length > 0) { this.post = res.posts.filter(item => item.code == 'worker' || item.code == 'engineer')[0] } else { this.post = '' } resolve(res) }).catch(error => { reject(error) }) }) }, // 获取权限 LogOut() { return new Promise((resolve, reject) => { logout().then(res => { this.id = ''// 用户编号 this.name = '' this.avatar = '' this.roles = '' this.permissions = '' this.role = '' this.post = '' this.dept = '' removeToken() resolve(res) }).catch(error => { reject(error) }) }) }, } }) export default useStore