feat: 品牌更名、用户管理增强、画像版本管理、对话体验优化
- 品牌统一为"左右(BossAi)":网页标签、侧边栏、登录页、manifest、后端 - 用户管理:搜索、对话统计、重置密码、激活/停用账号 - 用户画像:确认事实步骤(带入内容+追问内容)、版本历史管理、PUT /profile/me - 对话历史:按场景分组、保密模式标题处理 - AI助手页面:话题区可收起、模式选择紧凑化、footer免责声明 - 设置页:toggle宽度修复、工单文案改为专家咨询 - 去掉工单功能(前后端) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
+37
-1
@@ -168,6 +168,24 @@ export const api = {
|
||||
getProfile: () =>
|
||||
requestWithRetry<Record<string, unknown>>('/profile/me', {}),
|
||||
|
||||
/** 更新用户画像(确认事实后调用) */
|
||||
updateProfile: (data: {
|
||||
industry?: string
|
||||
company_size?: string
|
||||
role?: string
|
||||
risk_tolerance?: string
|
||||
decision_style?: string
|
||||
key_facts?: Record<string, string>
|
||||
}) =>
|
||||
request<{ updated: boolean }>('/profile/me', {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify(data),
|
||||
}),
|
||||
|
||||
/** 获取用户画像历史版本 */
|
||||
getProfileHistory: () =>
|
||||
request<{ results: Array<{ id: number; version: number; profile: Record<string, unknown>; source: string; created_at: string }> }>('/profile/me/history'),
|
||||
|
||||
/** 事实追问分析:返回追问问题或标记事实已充分 */
|
||||
askAnalyze: (
|
||||
sid: string,
|
||||
@@ -184,6 +202,7 @@ export const api = {
|
||||
fact_summary?: string
|
||||
question_type: string
|
||||
risk_level: string
|
||||
profile_facts?: Array<{ dim_key: string; dim_desc: string; answer: string }>
|
||||
}>(`/sessions/${sid}/ask-analyze`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
@@ -419,7 +438,24 @@ export const api = {
|
||||
}, { timeout: 30000, retries: 0 })
|
||||
},
|
||||
|
||||
adminListUsers: () => request<{ results: Array<{ id: number; phone: string; name: string; created_at: string }> }>('/admin/users'),
|
||||
adminListUsers: (q?: string) =>
|
||||
request<{ results: Array<{ id: number; phone: string; name: string; status: string; created_at: string; message_count: number; last_active: string | null; last_scene: string | null }> }>(
|
||||
`/admin/users${q ? `?q=${encodeURIComponent(q)}` : ''}`,
|
||||
),
|
||||
|
||||
/** 管理端:重置用户密码 */
|
||||
adminResetPassword: (userId: number, password: string) =>
|
||||
request<{ reset: boolean }>(`/admin/users/${userId}/reset-password`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ password }),
|
||||
}),
|
||||
|
||||
/** 管理端:激活/停用用户 */
|
||||
adminUpdateUserStatus: (userId: number, status: 'active' | 'inactive') =>
|
||||
request<{ status: string }>(`/admin/users/${userId}/status`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ status }),
|
||||
}),
|
||||
|
||||
adminStats: () => request<{
|
||||
users: number
|
||||
|
||||
Reference in New Issue
Block a user