修复全页面走查发现的问题(第五批:失效文件状态、日报搜索、client_context)

- content-library-view: 收藏列表的 FileCard 一直没传 removed,需求 7.3「失效文件需展示明确
  状态而非直接报错」在收藏页就没生效(聊天记录页本来就传了,只有这条漏了)。后端
  messageAvailability 在源消息被删/撤回时给 'removed'。

- workplace-collaboration-view: 日报"团队统计"的搜索占位符写着"搜索姓名/部门",但过滤用的
  department_name 后端根本不返回(dailyReportListPayload 只有 report_id/author_id/report_date/
  content_short/status/draft_updated_at/read_state/version),拼进来恒为空串,"部门"那半个
  搜索永远搜不到任何东西。改为按真实有的字段搜(姓名+摘要),占位符也改成如实的;
  卡片上同样读了这个不存在字段的角色徽章一并改掉。

- im-api: 企业注册申请 / 入口反馈 / 意见反馈三个接口后端都定义了 client_context 且会入库
  (im_http.go:255/263/367,落库点 :790/:840/:1478),需求与对接文档也都要求带设备版本信息,
  前端一直没发。在 im-api 层统一注入,三处调用点不用各写一遍。navigator.connection 不是所有
  浏览器都有,拿不到就不发 network 这一项。
  已用真实提交验证(返回 fb_G9GtMsAbSHQ6z6Li)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-09-03 18:59:09 +08:00
co-authored by Claude Opus 5
parent 35d3e1cf6b
commit 08bd8915c5
5 changed files with 57 additions and 14 deletions
+20 -3
View File
@@ -351,12 +351,29 @@ export function resolveTenant(tenantCode) {
});
}
// 企业注册申请 / 入口反馈 / 意见反馈三个接口后端都定义了 client_context 且会入库
// (imTenantApplicationRequest / imTenantEntryFeedbackRequest / imFeedbackRequest,
// server/im_http.go:255/263/367,落库点 :790/:840/:1478),需求文档和对接文档也都要求带上
// 设备与版本信息。前端一直没发。在这里统一注入,省得三处各写一遍、也不会再漏。
function clientContext() {
return {
platform: 'web',
app_version: PACKAGE_VERSION || '',
user_agent: (typeof navigator !== 'undefined' && navigator.userAgent) || '',
language: (typeof navigator !== 'undefined' && navigator.language) || '',
// 网络类型不是所有浏览器都有(Safari/Firefox 没有 navigator.connection),拿不到就不发这一项
network: (typeof navigator !== 'undefined' && navigator.connection && navigator.connection.effectiveType) || undefined
};
}
export function submitTenantApplication(body) {
return imRequest('/tenant-applications', {method: 'POST', auth: false, headers: idem(), body});
return imRequest('/tenant-applications', {method: 'POST', auth: false, headers: idem(),
body: {client_context: clientContext(), ...body}});
}
export function submitTenantEntryFeedback(body) {
return imRequest('/tenant-entry-feedback', {method: 'POST', auth: false, headers: idem(), body});
return imRequest('/tenant-entry-feedback', {method: 'POST', auth: false, headers: idem(),
body: {client_context: clientContext(), ...body}});
}
// -- 1.4/1.5/1.6 Phone verification codes (register / reset_password / security scenes). --
@@ -697,4 +714,4 @@ export const updateDevicePushToken = (deviceId, body) => imPut('/devices/' + enc
export const getAbuseReasons = (targetType = 'user') => imGet('/reports/abuse/reasons' + qs({target_type: targetType}));
export const submitAbuseReport = body => imPost('/reports/abuse', body);
export const getFeedbackConfig = () => imGet('/feedback/config');
export const submitFeedback = body => imPost('/feedback', body);
export const submitFeedback = body => imPost('/feedback', {client_context: clientContext(), ...body});