import request from '@/config/axios' import type { Dayjs } from 'dayjs'; /** App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。信息 */ export interface AppVersions { id: number; // 主键,自增版本记录ID。 appId?: string; // 应用标识(支持多App/多包名场景);单App可固定为 main。 platform?: string; // 平台:android 或 ios(用 CHECK 约束限制取值)。 channel?: string; // 渠道标识:如 official / huawei / xiaomi / testflight 等,用于区分不同分发包。 versionName?: string; // 展示用版本号(语义版本字符串),如 1.2.3。 versionCode?: number; // 比较用版本号(整数递增):Android 对应 versionCode;iOS 建议维护同样的递增值以便比较。 buildNumber: string; // iOS 可选构建号(例如 CFBundleVersion),通常为字符串;用于追溯构建或与CI编号对齐。 minSupportedCode?: number; // 最低支持版本号(整数):客户端 version_code 低于该值必须更新/可拒绝继续使用。 isForceUpdate?: boolean; // 是否强制更新:当客户端未达到最新版本且此字段为 true,可要求强更(即使 >= min_supported_code)。 isActive?: boolean; // 是否生效:true 表示该版本记录可用于对外更新检查;false 用于下架/撤回。 releaseNotes: string; // 更新说明(展示给用户的版本更新内容)。 downloadUrl: string; // 下载链接:Android 可为 apk 直链/市场 scheme;iOS 通常为 App Store 链接或统一跳转页。 storeUrl: string; // 应用市场/商店页面链接(可选,若 download_url 已覆盖可不填)。 metadata?: object; // 扩展元数据(JSON):如包大小、md5、签名信息、最低系统版本等。 releasedAt?: string | Dayjs; // 发布时间(对外宣布/上线时间),用于展示与排序。 createdAt?: string | Dayjs; // 记录创建时间。 updatedAt?: string | Dayjs; // 记录更新时间(建议配合触发器自动维护)。 } // App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 API export const AppVersionsApi = { // 查询App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。分页 getAppVersionsPage: async (params: any) => { return await request.get({ url: `/keyboard/app-versions/page`, params }) }, // 查询App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。详情 getAppVersions: async (id: number) => { return await request.get({ url: `/keyboard/app-versions/get?id=` + id }) }, // 新增App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 createAppVersions: async (data: AppVersions) => { return await request.post({ url: `/keyboard/app-versions/create`, data }) }, // 修改App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 updateAppVersions: async (data: AppVersions) => { return await request.put({ url: `/keyboard/app-versions/update`, data }) }, // 删除App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 deleteAppVersions: async (id: number) => { return await request.delete({ url: `/keyboard/app-versions/delete?id=` + id }) }, /** 批量删除App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 */ deleteAppVersionsList: async (ids: number[]) => { return await request.delete({ url: `/keyboard/app-versions/delete-list?ids=${ids.join(',')}` }) }, // 导出App 版本发布与更新检查表:区分 Android/iOS、渠道,支持最低支持版本与强更策略。 Excel exportAppVersions: async (params) => { return await request.download({ url: `/keyboard/app-versions/export-excel`, params }) } }