feat: 品牌更名、用户管理增强、画像版本管理、对话体验优化
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled

- 品牌统一为"左右(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:
selfrelease
2026-08-30 09:05:31 +08:00
co-authored by Devin
parent 038ab17278
commit 4e2b4666aa
24 changed files with 1623 additions and 333 deletions
+37 -1
View File
@@ -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