84 lines
2.3 KiB
TypeScript
84 lines
2.3 KiB
TypeScript
import http from "../http";
|
|
|
|
export interface ExternalAppVO {
|
|
id: number;
|
|
tenantId?: number;
|
|
appName: string;
|
|
appType: "native" | "web";
|
|
appInfo?: Record<string, unknown>;
|
|
iconUrl?: string;
|
|
description?: string;
|
|
sortOrder?: number;
|
|
status: number;
|
|
createdBy?: number;
|
|
creatorUsername?: string;
|
|
createdAt?: string;
|
|
updatedAt?: string;
|
|
remark?: string;
|
|
}
|
|
|
|
export interface ExternalAppDTO {
|
|
appName: string;
|
|
appType: "native" | "web";
|
|
appInfo?: Record<string, unknown>;
|
|
iconUrl?: string;
|
|
description?: string;
|
|
sortOrder?: number;
|
|
status: number;
|
|
remark?: string;
|
|
}
|
|
|
|
export interface ExternalAppApkUploadResult {
|
|
apkUrl?: string;
|
|
apkSize?: number;
|
|
apkMd5?: string;
|
|
appName?: string | null;
|
|
packageName?: string | null;
|
|
versionName?: string | null;
|
|
versionCode?: string | null;
|
|
}
|
|
|
|
export interface ExternalAppIconUploadResult {
|
|
iconUrl?: string;
|
|
fileSize?: number;
|
|
}
|
|
|
|
export async function listExternalApps(params?: { appType?: string; status?: number }) {
|
|
const resp = await http.get("/api/external-apps", { params });
|
|
return resp.data.data as ExternalAppVO[];
|
|
}
|
|
|
|
export async function createExternalApp(payload: ExternalAppDTO) {
|
|
const resp = await http.post("/api/external-apps", payload);
|
|
return resp.data.data as ExternalAppVO;
|
|
}
|
|
|
|
export async function updateExternalApp(id: number, payload: Partial<ExternalAppDTO>) {
|
|
const resp = await http.put(`/api/external-apps/${id}`, payload);
|
|
return resp.data.data as ExternalAppVO;
|
|
}
|
|
|
|
export async function deleteExternalApp(id: number) {
|
|
const resp = await http.delete(`/api/external-apps/${id}`);
|
|
return resp.data.data as boolean;
|
|
}
|
|
|
|
export async function uploadExternalAppApk(file: File) {
|
|
const formData = new FormData();
|
|
formData.append("apkFile", file);
|
|
const resp = await http.post("/api/external-apps/upload-apk", formData, {
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
timeout: 600000
|
|
});
|
|
return resp.data.data as ExternalAppApkUploadResult;
|
|
}
|
|
|
|
export async function uploadExternalAppIcon(file: File) {
|
|
const formData = new FormData();
|
|
formData.append("iconFile", file);
|
|
const resp = await http.post("/api/external-apps/upload-icon", formData, {
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
});
|
|
return resp.data.data as ExternalAppIconUploadResult;
|
|
}
|