feat: GlassCard双视图、数据看板重构、地址粘贴识别、AI平台与素材库增强
This commit is contained in:
@@ -30,9 +30,26 @@ export interface FileTypeItem {
|
||||
sort: number;
|
||||
}
|
||||
|
||||
/** 扫描写入的引用位置(详情展示,含表/字段注释) */
|
||||
export interface FileGalleryRefLoc {
|
||||
connection: string;
|
||||
connection_text: string;
|
||||
table: string;
|
||||
/** 表 COMMENT,可能为空 */
|
||||
table_comment?: string;
|
||||
column: string;
|
||||
/** 字段 COMMENT,可能为空 */
|
||||
column_comment?: string;
|
||||
count: number;
|
||||
label: string;
|
||||
}
|
||||
|
||||
export interface FileGalleryDetail extends FileGalleryItem {
|
||||
source_text?: string;
|
||||
updated_at?: string;
|
||||
ref_scanned_at?: number | string;
|
||||
/** 引用位置列表,未扫描或未命中为空数组 */
|
||||
ref_locs?: FileGalleryRefLoc[];
|
||||
}
|
||||
|
||||
export interface FileGalleryStats {
|
||||
@@ -43,6 +60,8 @@ export interface FileGalleryStats {
|
||||
recyclable_size: number;
|
||||
recyclable_size_text: string;
|
||||
has_scanned: boolean;
|
||||
/** 上次 OSS 同步完成日期 YYYYMMDD,空表示尚未同步 */
|
||||
oss_last_sync_date?: string;
|
||||
}
|
||||
|
||||
export interface FileGalleryListParams {
|
||||
@@ -53,6 +72,9 @@ export interface FileGalleryListParams {
|
||||
group_id?: number;
|
||||
keyword?: string;
|
||||
exclude_qrcode?: number;
|
||||
/** all|referenced|unreferenced */
|
||||
ref_filter?: string;
|
||||
/** @deprecated 用 ref_filter=unreferenced */
|
||||
unref_only?: number;
|
||||
folder_id?: number;
|
||||
unfiled?: number;
|
||||
@@ -97,31 +119,36 @@ export async function getFileTypes() {
|
||||
return requestClient.get<FileTypeItem[]>(`${prefix}file-types`);
|
||||
}
|
||||
|
||||
/** 规划 OSS 同步日期分组(full 全部 / incremental 从库内最新日期起) */
|
||||
export async function planFileGalleryOssSync(data?: { mode?: 'full' | 'incremental' }) {
|
||||
/** 规划 OSS 同步日期分组(full 全部 / incremental 从上次同步日期起) */
|
||||
export async function planFileGalleryOssSync(data?: {
|
||||
mode?: 'full' | 'incremental';
|
||||
}) {
|
||||
return requestClient.post<{
|
||||
last_sync_date: string;
|
||||
mode: 'full' | 'incremental';
|
||||
prefixes: string[];
|
||||
total: number;
|
||||
since_date: string;
|
||||
total: number;
|
||||
}>(`${prefix}sync-oss-plan`, data ?? {});
|
||||
}
|
||||
|
||||
/** 从 OSS 同步一批(按日期 prefix + marker;全部组结束后 finalize=1) */
|
||||
/** 从 OSS 同步一批(按日期 prefix + marker;全部组结束后 finalize=1 并落库 last_sync_date) */
|
||||
export async function syncFileGalleryFromOss(data?: {
|
||||
finalize?: number;
|
||||
last_sync_date?: string;
|
||||
limit?: number;
|
||||
marker?: string;
|
||||
prefix?: string;
|
||||
finalize?: number;
|
||||
}) {
|
||||
return requestClient.post<{
|
||||
done: boolean;
|
||||
folder_created: number;
|
||||
last_sync_date?: string;
|
||||
next_marker: string;
|
||||
prefix: string;
|
||||
scanned: number;
|
||||
skipped: number;
|
||||
synced: number;
|
||||
next_marker: string;
|
||||
done: boolean;
|
||||
folder_created: number;
|
||||
prefix: string;
|
||||
}>(`${prefix}sync-oss`, data ?? {});
|
||||
}
|
||||
|
||||
@@ -157,18 +184,57 @@ export async function markFileQrcode(id: number, is_qrcode: number) {
|
||||
);
|
||||
}
|
||||
|
||||
/** 扫描业务表 URL 引用(两库全表文本列) */
|
||||
export async function scanFileGalleryRefs() {
|
||||
/** 扫描计划中的单表:pending 未开始 / scanning 扫描中 / done 完成 */
|
||||
export interface FileRefScanTableItem {
|
||||
connection: string;
|
||||
table: string;
|
||||
/** 兼容字段,等同 total_columns */
|
||||
columns: number;
|
||||
total_columns?: number;
|
||||
done_columns?: number;
|
||||
failed: number;
|
||||
status?: 'done' | 'pending' | 'scanning';
|
||||
}
|
||||
|
||||
/** 预览将扫描的表清单(全部 pending,不开始扫) */
|
||||
export async function planFileGalleryScanRefs() {
|
||||
return requestClient.get<{
|
||||
column_total: number;
|
||||
plan_tables: FileRefScanTableItem[];
|
||||
table_count: number;
|
||||
}>(`${prefix}scan-refs-plan`);
|
||||
}
|
||||
|
||||
/** 分批扫描业务表 URL 引用;循环传 job_id 直到 done,支持断点续扫 */
|
||||
export async function scanFileGalleryRefs(data?: {
|
||||
batch_size?: number;
|
||||
job_id?: string;
|
||||
}) {
|
||||
return requestClient.post<{
|
||||
elapsed_ms: number;
|
||||
batch_size: number;
|
||||
batch_tables?: FileRefScanTableItem[];
|
||||
current_table?: string;
|
||||
done: boolean;
|
||||
done_table_count?: number;
|
||||
elapsed_ms?: number;
|
||||
job_id: string;
|
||||
mysql_columns: number;
|
||||
mysql_failed: number;
|
||||
old_mysql_columns: number;
|
||||
old_mysql_failed: number;
|
||||
referenced: number;
|
||||
scanned_files: number;
|
||||
unreferenced: number;
|
||||
}>(`${prefix}scan-refs`);
|
||||
pending_table_count?: number;
|
||||
phase: string;
|
||||
plan_tables?: FileRefScanTableItem[];
|
||||
processed: number;
|
||||
progress: number;
|
||||
referenced?: number;
|
||||
scanned_files?: number;
|
||||
scanned_tables?: FileRefScanTableItem[];
|
||||
scanning_table_count?: number;
|
||||
table_count?: number;
|
||||
total: number;
|
||||
unreferenced?: number;
|
||||
}>(`${prefix}scan-refs`, data ?? {});
|
||||
}
|
||||
|
||||
/** 批量加入分组(移动到文件夹) */
|
||||
|
||||
Reference in New Issue
Block a user