feat(traffic): 流量列表支持内容检索、路径/状态码/长度筛选与列排序 (#177)
- 后端 traffic.Page 改为 PageQuery:新增响应内容(FTS)、路径(url_template)、 状态码(精确/Nxx 分桶)、响应长度范围筛选,并支持按 ts/status/resp_len 排序 (尾随 id DESC 保证分页稳定);补 status/resp_len 两个索引(IF NOT EXISTS,旧库自动生效) - server getTraffic 解析 body/path/status/resp_min/resp_max/sort/order 参数 - 前端流量页新增高级筛选行(响应内容/路径/状态码/长度范围)与可排序表头, 排序偏好持久化到 localStorage;抽出公共组件 ui/sortable-head - 仅改动前端页走的 Page,不动 Agent 工具的 query 契约
This commit is contained in:
1 parent
02b1dbe6f8
commit
a4960b514e
6 files changed
+383
-24
No files matched your search
+24
-2
@@ -758,12 +758,34 @@ export const api = {
|
||||
|
||||
// ---- traffic / audit / report / chat ----
|
||||
audit: (task?: string) => get<Audit>(`/audit${tq(task)}`),
|
||||
traffic: (page = 0, size = 100, host = "", method = "", q = "") =>
|
||||
traffic: (
|
||||
page = 0,
|
||||
size = 100,
|
||||
host = "",
|
||||
method = "",
|
||||
q = "",
|
||||
opts: {
|
||||
body?: string;
|
||||
path?: string;
|
||||
status?: string;
|
||||
respMin?: string;
|
||||
respMax?: string;
|
||||
sort?: string;
|
||||
order?: string;
|
||||
} = {},
|
||||
) =>
|
||||
get<TrafficResp>(
|
||||
`/traffic?page=${page}&size=${size}` +
|
||||
(host ? `&host=${encodeURIComponent(host)}` : "") +
|
||||
(method && method !== "all" ? `&method=${encodeURIComponent(method)}` : "") +
|
||||
(q ? `&q=${encodeURIComponent(q)}` : ""),
|
||||
(q ? `&q=${encodeURIComponent(q)}` : "") +
|
||||
(opts.body ? `&body=${encodeURIComponent(opts.body)}` : "") +
|
||||
(opts.path ? `&path=${encodeURIComponent(opts.path)}` : "") +
|
||||
(opts.status && opts.status !== "all" ? `&status=${encodeURIComponent(opts.status)}` : "") +
|
||||
(opts.respMin ? `&resp_min=${encodeURIComponent(opts.respMin)}` : "") +
|
||||
(opts.respMax ? `&resp_max=${encodeURIComponent(opts.respMax)}` : "") +
|
||||
(opts.sort ? `&sort=${encodeURIComponent(opts.sort)}` : "") +
|
||||
(opts.order ? `&order=${encodeURIComponent(opts.order)}` : ""),
|
||||
),
|
||||
trafficExchange: (id: string) => get<TrafficDetail>(`/traffic/exchange?id=${encodeURIComponent(id)}`),
|
||||
trafficHosts: () => get<{ hosts: TrafficHost[] }>(`/traffic/hosts`),
|
||||
|
||||
Reference in new issue
Block a user