import { userStore } from '@/store/mobx' import { iAccountGroupItem, iGroup, iUserInfo } from '@/types/setting' import { storage } from '@/utils/util' import consts from '../consts' import { apiGetAccountWithSearch } from './api' const USER_INFO = 'user_info' // 用户个人信息 const TENDER_INFO = 'tender_info' // 标段信息 /** * 保存用户信息到本地存储中 * @param {Object} userInfo - 用户信息 */ export const saveUserInfo = (userInfo: iUserInfo): void => { storage.set(USER_INFO, userInfo) } /** * 获取用户信息 * @returns {iUserInfo} 用户信息 */ export const getUserInfo = (): iUserInfo => { return storage.get(USER_INFO) } /** * 删除用户信息 */ export const delUserInfo = () => { // 本身是同步的,所以不需要用promise包裹 storage.del(USER_INFO) storage.del(TENDER_INFO) } /** * 用户注销 */ export const logout = () => { delUserInfo() } // 获取用户分组 export const getUserGroupName = (key: number): iGroup | undefined =>{ return userStore.groupList.find((item: iGroup) => item.key === key) } interface UserGroupQuery { name?: string hasOwner?: boolean } // 根据group对用户列表进行分组 export const getUserGroup = async ({ name = '', hasOwner = true } : UserGroupQuery) => { const { code = -1, data = [] } = await apiGetAccountWithSearch(name) const accountGroup: iAccountGroupItem[] = [] if (code === consts.RET_CODE.SUCCESS) { for (const group of userStore.groupList) { const groupItem = { value: group.value, children: [] } const items = data.filter((item: iUserInfo) => { if (!hasOwner && item.id === userStore.userInfo.id) { return } return item.accountGroup === group.key }) groupItem.children = items accountGroup.push(groupItem) } } return accountGroup }