61 lines
4.1 KiB
TypeScript
61 lines
4.1 KiB
TypeScript
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 })
|
||
}
|
||
} |