实现知识库页 UI 并对齐效果图

分类侧栏含条目计数、列表支持排序筛选与详情抽屉;列表接口补充分类名与使用次数排序。
This commit is contained in:
yml2213
2026-07-15 13:14:03 +08:00
parent 32fbfb4fe1
commit 2cfdacacb3
3 changed files with 478 additions and 110 deletions
+13 -2
View File
@@ -39,11 +39,13 @@ export interface Customer {
export interface KnowledgeCategory {
id: number; tenant_id: number; parent_id: number | null; name: string
entry_count?: number
}
export interface KnowledgeEntry {
id: number; title: string; content: string; status: string; usage_count: number
category_id: number; updated_at: string
category_name?: string
}
export interface Channel {
@@ -181,13 +183,22 @@ export const updateCustomer = (id: number, data: Partial<Customer>) => put<Custo
export const deleteCustomer = (id: number) => del(`/customers/${id}`)
// Knowledge
export const getKnowledgeCategories = () => get<KnowledgeCategory[]>('/knowledge/categories')
export const getKnowledgeCategories = () =>
get<{ list: KnowledgeCategory[]; total_entries: number }>('/knowledge/categories')
export const createKnowledgeCategory = (data: { name: string; parent_id?: number | null }) => post<KnowledgeCategory>('/knowledge/categories', data)
export const getKnowledgeEntries = (params?: { category_id?: string; search?: string; status?: string; page?: number; pageSize?: number }) => {
export const getKnowledgeEntries = (params?: {
category_id?: string
search?: string
status?: string
sort?: 'usage' | 'updated' | 'title'
page?: number
pageSize?: number
}) => {
const search = new URLSearchParams()
if (params?.category_id) search.set('category_id', params.category_id)
if (params?.search) search.set('search', params.search)
if (params?.status) search.set('status', params.status)
if (params?.sort) search.set('sort', params.sort)
if (params?.page) search.set('page', String(params.page || 1))
if (params?.pageSize) search.set('pageSize', String(params.pageSize || 10))
return getList<KnowledgeEntry>(`/knowledge/entries?${search}`)