100 lines
2.4 KiB
TypeScript
100 lines
2.4 KiB
TypeScript
import { get, post, put } from '@/api/request'
|
||
|
||
export interface UserInfo {
|
||
id: number
|
||
nickname: string
|
||
avatar_url: string
|
||
}
|
||
|
||
export interface LevelInfo {
|
||
level_key: string
|
||
name: string
|
||
modules: string[]
|
||
}
|
||
|
||
export interface LoginResult {
|
||
token: string
|
||
user: UserInfo
|
||
level: LevelInfo
|
||
}
|
||
|
||
export interface ModuleOut {
|
||
module_key: string
|
||
name: string
|
||
icon: string
|
||
locked: boolean
|
||
enabled_tools_count: number
|
||
}
|
||
|
||
export interface ToolOut {
|
||
tool_key: string
|
||
module_key: string
|
||
name: string
|
||
icon: string
|
||
description: string
|
||
is_hot: boolean
|
||
locked: boolean
|
||
}
|
||
|
||
export interface ToolsListResult {
|
||
modules: ModuleOut[]
|
||
list: ToolOut[]
|
||
}
|
||
|
||
export function apiWxLogin(code: string) {
|
||
return post<LoginResult>('/user/wx-login', { code })
|
||
}
|
||
|
||
export function apiDevLogin() {
|
||
return post<LoginResult>('/user/dev-login')
|
||
}
|
||
|
||
/** H5 账号注册(注册即登录) */
|
||
export function apiRegister(username: string, password: string, nickname = '') {
|
||
return post<LoginResult>('/user/register', { username, password, nickname })
|
||
}
|
||
|
||
/** H5 账号密码登录 */
|
||
export function apiAccountLogin(username: string, password: string) {
|
||
return post<LoginResult>('/user/login', { username, password })
|
||
}
|
||
|
||
/** 把 H5 独立账号合并进当前登录账号(工作台随迁) */
|
||
export function apiBindAccount(username: string, password: string) {
|
||
return post<{ username: string }>('/user/bind-account', { username, password })
|
||
}
|
||
|
||
/** 更新个人信息(昵称 / 头像) */
|
||
export function apiUpdateProfile(nickname: string, avatarUrl: string) {
|
||
return put<{ nickname: string, avatar_url: string }>('/user/profile', { nickname, avatar_url: avatarUrl })
|
||
}
|
||
|
||
export function apiGetLevel() {
|
||
return get<LevelInfo>('/user/level')
|
||
}
|
||
|
||
/** 当前登录用户信息(token 校验后恢复 user) */
|
||
export function apiGetUserInfo() {
|
||
return get<UserInfo>('/user/info')
|
||
}
|
||
|
||
export function apiToolsList() {
|
||
return get<ToolsListResult>('/tools/list')
|
||
}
|
||
|
||
export function apiToolsUsed(toolKey: string) {
|
||
return post('/tools/used', { tool_key: toolKey })
|
||
}
|
||
|
||
export function apiWorkbenchGet() {
|
||
return get<{ tool_keys: string[] }>('/workbench/get')
|
||
}
|
||
|
||
export function apiWorkbenchSave(toolKeys: string[]) {
|
||
return post('/workbench/save', { tool_keys: toolKeys })
|
||
}
|
||
|
||
export function apiFeedbackSubmit(content: string, contact = '') {
|
||
return post('/feedback/submit', { content, contact })
|
||
}
|