feat(frontend-vue): 亚马逊运营工具台与新功能页接入——新版工具台(amazon-console+tool-catalog)、品牌检测/ASIN变体采集/查询ASIN 三个工具页 Vue 化并对接既有后端与桌面桥接;桌面首页/登录页 Vue 化(沿用旧视觉);补充 vc_*/get_device_id/save_file_from_url 桥类型、dev 代理;品牌默认勾选排名+FBM;修正 query-asin 标题
含未提交新版改造累积:Brand*Tab 套入工具台壳(AmazonToolPageShell/AmazonTopBar)与目录/权限联动。
This commit is contained in:
@@ -32,6 +32,7 @@ export interface BrandTaskItem {
|
||||
created_at?: string
|
||||
progress_total?: number
|
||||
progress_current?: number
|
||||
error_message?: string
|
||||
result_paths?: BrandTaskResultPaths
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,35 @@ export interface UploadedJavaFile {
|
||||
|
||||
export type ProxyMode = 1 | 2;
|
||||
|
||||
/** ASIN 变体采集任务项(/batch/list 返回元素,后端数值状态 0排队/1执行/2成功/3失败) */
|
||||
export interface VariantTaskListItem {
|
||||
task_id: string;
|
||||
status?: number | string;
|
||||
task_type?: string;
|
||||
update_time?: string;
|
||||
res_type?: number | string;
|
||||
res_mes?: string;
|
||||
file_url?: string[] | string;
|
||||
task_data?: {
|
||||
file_url?: string;
|
||||
execute_country?: string[];
|
||||
proxy_url?: string;
|
||||
proxy_mode?: number | string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
}
|
||||
|
||||
/** ASIN 变体采集单任务查询 data 段 */
|
||||
export interface VariantTaskQueryData {
|
||||
message?: string;
|
||||
msg?: string;
|
||||
res_mes?: string;
|
||||
res_type?: number | string;
|
||||
file_url?: string[] | string;
|
||||
task_data?: VariantTaskListItem['task_data'];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface DesktopConfig {
|
||||
proxy_url?: string;
|
||||
proxy_mode?: number | string;
|
||||
@@ -58,6 +87,10 @@ export interface PywebviewApi {
|
||||
data?: UploadedJavaFile;
|
||||
error?: string;
|
||||
}>;
|
||||
save_file_from_url?: (
|
||||
url: string,
|
||||
filename: string,
|
||||
) => Promise<{ success: boolean; path?: string; error?: string }>;
|
||||
save_file_from_url_new?: (
|
||||
url: string,
|
||||
filename: string,
|
||||
@@ -86,8 +119,59 @@ export interface PywebviewApi {
|
||||
enqueue_json?: (
|
||||
data: unknown,
|
||||
) => Promise<{ success: boolean; queue_size?: number; error?: string }>;
|
||||
// —— ASIN 变体采集(VariantCollectionAPI,vc_* 前缀)——
|
||||
vc_select_input_files?: () => Promise<string[]>;
|
||||
vc_start_collect?: (params: {
|
||||
mode: 'asin' | 'file';
|
||||
files?: string[];
|
||||
asins?: string[];
|
||||
countries: string[];
|
||||
uid: string;
|
||||
}) => Promise<{
|
||||
success: boolean;
|
||||
tasks?: Array<{ task_id: string; source?: string; execute_country?: string[] }>;
|
||||
error?: string;
|
||||
}>;
|
||||
vc_query_task?: (
|
||||
taskId: string,
|
||||
) => Promise<{
|
||||
success: boolean;
|
||||
status?: number | string;
|
||||
data?: VariantTaskQueryData;
|
||||
error?: string;
|
||||
}>;
|
||||
vc_list_tasks?: (query: {
|
||||
uid: string;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}) => Promise<{
|
||||
success: boolean;
|
||||
page?: number;
|
||||
total_page?: number;
|
||||
total?: number;
|
||||
tasks?: VariantTaskListItem[];
|
||||
error?: string;
|
||||
}>;
|
||||
vc_export_task?: (
|
||||
taskId: string,
|
||||
) => Promise<{ success: boolean; file_id?: string; error?: string }>;
|
||||
vc_query_export?: (
|
||||
fileId: string,
|
||||
) => Promise<{
|
||||
success: boolean;
|
||||
status?: number | string;
|
||||
file_url?: string;
|
||||
file_name?: string;
|
||||
error?: string;
|
||||
}>;
|
||||
vc_download_files_as_zip?: (params: {
|
||||
urls: string[];
|
||||
zip_name: string;
|
||||
download_id: string;
|
||||
}) => Promise<{ success: boolean; path?: string; error?: string }>;
|
||||
read_config?: () => Promise<DesktopConfig>;
|
||||
save_config?: (data: DesktopConfigUpdate) => Promise<DesktopConfig>;
|
||||
get_device_id?: () => Promise<{ success: boolean; device_id?: string; error?: string }>;
|
||||
}
|
||||
|
||||
declare global {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* 页面路径环境适配
|
||||
*
|
||||
* 生产环境(桌面客户端 Flask)功能页由 /new_web_source/ 路由提供;
|
||||
* vite dev 下页面直接挂在根路径。旧静态页(/brand、/web_source/*)仅生产存在。
|
||||
*/
|
||||
|
||||
/** 当前是否运行在桌面客户端生产环境(页面路径以 /new_web_source/ 开头) */
|
||||
export function isDesktopClientPage(): boolean {
|
||||
return typeof window !== 'undefined' && window.location.pathname.startsWith('/new_web_source')
|
||||
}
|
||||
|
||||
/** 链接本地化:dev 预览去掉 /new_web_source 前缀;/brand、/web_source/* 等旧静态页仅桌面端可用 */
|
||||
export function resolvePageHref(rawHref?: string): string {
|
||||
if (!rawHref) return ''
|
||||
if (rawHref.startsWith('/new_web_source/')) {
|
||||
return `${isDesktopClientPage() ? '/new_web_source' : ''}${rawHref.slice('/new_web_source'.length)}`
|
||||
}
|
||||
return isDesktopClientPage() ? rawHref : ''
|
||||
}
|
||||
Reference in New Issue
Block a user