diff --git a/src/api/keyboard/appversions/index.ts b/src/api/keyboard/appversions/index.ts new file mode 100644 index 0000000..6fa7e2f --- /dev/null +++ b/src/api/keyboard/appversions/index.ts @@ -0,0 +1,61 @@ +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 }) + } +} \ No newline at end of file diff --git a/src/views/keyboard/appversions/AppVersionsForm.vue b/src/views/keyboard/appversions/AppVersionsForm.vue new file mode 100644 index 0000000..ebacfdd --- /dev/null +++ b/src/views/keyboard/appversions/AppVersionsForm.vue @@ -0,0 +1,197 @@ + + \ No newline at end of file diff --git a/src/views/keyboard/appversions/index.vue b/src/views/keyboard/appversions/index.vue new file mode 100644 index 0000000..3b80407 --- /dev/null +++ b/src/views/keyboard/appversions/index.vue @@ -0,0 +1,394 @@ + + + \ No newline at end of file