import axios, { type AxiosProgressEvent } from 'axios'; import type { RouteRecordNormalized } from 'vue-router'; import type { UserState } from '@/store/modules/user/types'; export interface LoginData { username: string; password: string; } export interface LoginRes { token: string; } export function login(data: LoginData) { return axios.post('/api/user/login', data); } export function logout() { return axios.post('/api/user/logout'); } export function getUserInfo() { return axios.post('/api/user/info'); } export function getMenuList() { return axios.post('/api/user/menu'); } export interface MyProjectRecord { id: number; name: string; description: string; peopleNumber: number; contributors: { name: string; email: string; avatar: string; }[]; } export function queryMyProjectList() { return axios.post('/api/user/my-project/list'); } export interface MyTeamRecord { id: number; avatar: string; name: string; peopleNumber: number; } export function queryMyTeamList() { return axios.post('/api/user/my-team/list'); } export interface LatestActivity { id: number; title: string; description: string; avatar: string; } export function queryLatestActivity() { return axios.post('/api/user/latest-activity'); } export function saveUserInfo() { return axios.post('/api/user/save-info'); } export interface BasicInfoModel { email: string; nickname: string; countryRegion: string; area: string; address: string; profile: string; } export interface EnterpriseCertificationModel { accountType: number; status: number; time: string; legalPerson: string; certificateType: string; authenticationNumber: string; enterpriseName: string; enterpriseCertificateType: string; organizationCode: string; } export type CertificationRecord = Array<{ certificationType: number; certificationContent: string; status: number; time: string; }>; export interface UnitCertification { enterpriseInfo: EnterpriseCertificationModel; record: CertificationRecord; } export function queryCertification() { return axios.post('/api/user/certification'); } export function userUploadApi( data: FormData, config: { controller: AbortController; onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; }, ) { return axios.post('/api/user/upload', data, config); }