From 4d23052e6677814288d02b094712edf30bdafe8e Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Fri, 15 May 2026 10:51:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=85=BE=E8=AE=AF?= =?UTF-8?q?=E5=B9=BF=E5=91=8A=E7=B4=A0=E6=9D=90=E5=90=88=E8=A7=84=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E5=8F=8A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增了腾讯图片/视频素材自动校验的完整业务页面,包含统计看板、素材列表管理、校验日志查询等功能,同时封装了对应的后端请求接口。 --- .../ads/compliance/tencent/materialVerify.ts | 158 +++ src/views/ads/compliance/tencent/index.vue | 1023 +++++++++++++++++ 2 files changed, 1181 insertions(+) create mode 100644 src/api/ads/compliance/tencent/materialVerify.ts create mode 100644 src/views/ads/compliance/tencent/index.vue diff --git a/src/api/ads/compliance/tencent/materialVerify.ts b/src/api/ads/compliance/tencent/materialVerify.ts new file mode 100644 index 0000000..e989cfb --- /dev/null +++ b/src/api/ads/compliance/tencent/materialVerify.ts @@ -0,0 +1,158 @@ +import request, { type RequestOptions } from '/@/utils/request'; + +export interface StatsParams { + pending?: number; + verified?: number; + rejected?: number; +} + +export interface ImageMaterialItem { + id: number; + imageId: string; + accountId: string; + imageUsage?: string; + previewUrl?: string; + verifyStatus: string; + description?: string; +} + +export interface VideoMaterialItem { + id: number; + videoId: string; + accountId: string; + previewUrl?: string; + verifyStatus: string; + description?: string; +} + +export interface VerifyLogItem { + id: number; + materialType: string; + materialId: string; + accountId: string; + taskId?: string; + verifyStatus: string; + suggestion?: number; + requestParams?: string; + responseResult?: string; + errorMsg?: string; + createdAt: string; +} + +export interface PageParams { + page: number; + pageSize: number; + status?: string; + accountId?: string; + materialType?: string; + verifyStatus?: string; + materialId?: string; +} + +export interface ListResponse { + code: number; + message: string; + data: { + list: T[]; + total: number; + }; +} + +export interface StatsResponse { + code: number; + message: string; + data: StatsParams; +} + +export function getImageStats(requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/stats-image', + method: 'get', + requestOptions, + }) as Promise; +} + +export function getVideoStats(requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/stats-video', + method: 'get', + requestOptions, + }) as Promise; +} + +export function getImageList(params: PageParams, requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/list-image', + method: 'get', + params, + requestOptions, + }) as Promise>; +} + +export function getVideoList(params: PageParams, requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/list-video', + method: 'get', + params, + requestOptions, + }) as Promise>; +} + +export function getVerifyLogList(params: PageParams, requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/list-log', + method: 'get', + params, + requestOptions, + }) as Promise>; +} + +export function manualVerifyImage(data: { materialId: string }, requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/manual-verify-image', + method: 'post', + data, + requestOptions, + }); +} + +export function manualVerifyVideo(data: { materialId: string }, requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/manual-verify-video', + method: 'post', + data, + requestOptions, + }); +} + +export function pollImageResults(requestOptions?: RequestOptions) { + return request({ + url: '/cid/yidun/callback/controller/poll-image-results', + method: 'post', + requestOptions, + }); +} + +export function pollVideoResults(requestOptions?: RequestOptions) { + return request({ + url: '/cid/yidun/callback/controller/poll-video-results', + method: 'post', + requestOptions, + }); +} + +export function batchVerifyImage(requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/batch-verify-image', + method: 'post', + requestOptions, + }); +} + +export function batchVerifyVideo(requestOptions?: RequestOptions) { + return request({ + url: '/cid/material/verify/controller/batch-verify-video', + method: 'post', + requestOptions, + }); +} diff --git a/src/views/ads/compliance/tencent/index.vue b/src/views/ads/compliance/tencent/index.vue new file mode 100644 index 0000000..55da0c8 --- /dev/null +++ b/src/views/ads/compliance/tencent/index.vue @@ -0,0 +1,1023 @@ + + + + +