修复全页面走查发现的问题(第五批:失效文件状态、日报搜索、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
+6 -3
View File
@@ -652,7 +652,7 @@ const STATUS_LABEL = {submitted: '已提交', draft: '未提交'};
function DailyReportCard({report, names, team}) {
return <article>
<header><span><strong>{names[report.author_id] || report.author_id}</strong><small className="role-badge">{team ? (report.department_name || '员工') : '员工'}</small></span>
<header><span><strong>{names[report.author_id] || report.author_id}</strong><small className="role-badge">员工</small></span>
<em className={report.status}>{STATUS_LABEL[report.status] || report.status}</em></header>
<p>{report.content_short || '(未填写内容)'}</p>
<footer><span><Icon>schedule</Icon>{report.report_date}</span>
@@ -682,7 +682,10 @@ function DailyReportList({team, myUserId, onToast}) {
React.useEffect(load, [team]);
const filtered = (reports || []).filter(r => {
const hay = team ? `${names[r.author_id] || ''}${r.department_name || ''}` : r.report_date;
// department_name 后端根本不返回(dailyReportListPayload 的字段只有 report_id/author_id/
// report_date/content_short/status/draft_updated_at/read_state/version),拼进来恒为空串,
// 等于占位符承诺的"部门"那半个搜索永远搜不到任何东西。改为按真实有的字段搜:姓名 + 摘要内容。
const hay = team ? `${names[r.author_id] || ''}${r.content_short || ''}` : r.report_date;
return hay.includes(query);
});
@@ -703,7 +706,7 @@ function DailyReportList({team, myUserId, onToast}) {
<button type="button" onClick={remindMissing}><Icon>notifications_active</Icon>提醒未提交成员</button>
</section> : null}
<label className="workplace-search"><Icon>search</Icon>
<input value={query} onChange={e => setQuery(e.target.value)} placeholder={team ? '搜索姓名/部门' : '搜索日期'} /></label>
<input value={query} onChange={e => setQuery(e.target.value)} placeholder={team ? '搜索姓名或内容' : '搜索日期'} /></label>
{!team ? <nav className="report-role-switch">
<button type="button" className="active">我的日报</button>
<button type="button" onClick={() => navigate('daily-report-team')}>团队统计</button>