2026-05-02 09:59:06 +08:00
|
|
|
import { request } from '@/api/request'
|
2026-07-22 03:26:22 +08:00
|
|
|
import type { Document } from './document'
|
|
|
|
|
import type { Faq, KbReply } from './faq'
|
2026-03-21 10:47:59 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
export type ReviewResourceType = 'all' | 'document' | 'faq'
|
2026-03-21 10:47:59 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 统一审核列表项。 */
|
2026-03-21 22:37:48 +08:00
|
|
|
export interface ReviewListItem {
|
2026-05-02 09:59:06 +08:00
|
|
|
type: 'document' | 'faq'
|
2026-07-22 03:26:22 +08:00
|
|
|
resource: Document | Faq
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 审核分页结果。 */
|
|
|
|
|
export interface ReviewPage {
|
2026-05-02 09:59:06 +08:00
|
|
|
total: number
|
|
|
|
|
page: number
|
|
|
|
|
page_size: number
|
2026-07-22 03:26:22 +08:00
|
|
|
data: ReviewListItem[]
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 当前审核人的待审数量。 */
|
|
|
|
|
export interface ReviewStats {
|
|
|
|
|
need_my_review_document: number
|
|
|
|
|
need_my_review_faq: number
|
|
|
|
|
need_my_review_total: number
|
|
|
|
|
need_my_review_unreviewed_document: number
|
|
|
|
|
need_my_review_unreviewed_faq: number
|
|
|
|
|
need_my_review_unreviewed_total: number
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 审核列表参数。 */
|
2026-03-21 22:37:48 +08:00
|
|
|
export interface FetchReviewListParams {
|
2026-05-02 09:59:06 +08:00
|
|
|
page?: number
|
|
|
|
|
page_size?: number
|
2026-07-22 03:26:22 +08:00
|
|
|
resource_type?: ReviewResourceType
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface ApproveParams {
|
2026-05-02 09:59:06 +08:00
|
|
|
resource_type: 'document' | 'faq'
|
|
|
|
|
id: number
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
export interface RejectParams extends ApproveParams {
|
|
|
|
|
reason: string
|
2026-03-21 22:37:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 获取当前用户可审核的待审资源。 */
|
|
|
|
|
export const fetchReviewList = (params: FetchReviewListParams) => request.get<KbReply<ReviewPage>>('/Kb/v1/review/list', { params })
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 获取当前审核人的待审统计。 */
|
|
|
|
|
export const fetchReviewStats = (params: { resource_type?: ReviewResourceType } = {}) =>
|
|
|
|
|
request.get<KbReply<ReviewStats>>('/Kb/v1/review/stats', { params })
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 审核通过。 */
|
|
|
|
|
export const approveReview = (data: ApproveParams) => request.post<KbReply<string>>('/Kb/v1/review/approve', data)
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 审核拒绝。 */
|
|
|
|
|
export const rejectReview = (data: RejectParams) => request.post<KbReply<string>>('/Kb/v1/review/reject', data)
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
export const resourceTypeOptions: Array<{ label: string; value: ReviewResourceType }> = [
|
2026-03-21 22:37:48 +08:00
|
|
|
{ label: '全部', value: 'all' },
|
|
|
|
|
{ label: '文档', value: 'document' },
|
|
|
|
|
{ label: 'FAQ', value: 'faq' },
|
2026-05-02 09:59:06 +08:00
|
|
|
]
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 获取审核资源类型文案。 */
|
|
|
|
|
export const getResourceTypeText = (type: string) => ({ document: '文档', faq: 'FAQ' })[type] || type
|
2026-03-21 22:37:48 +08:00
|
|
|
|
2026-07-22 03:26:22 +08:00
|
|
|
/** 获取审核资源类型颜色。 */
|
|
|
|
|
export const getResourceTypeColor = (type: string) => ({ document: 'arcoblue', faq: 'green' })[type] || 'gray'
|