feat(store): 实现混合仓库优先级配置功能

添加优先级配置文件支持,根据配置决定默认展示的仓库版本
新增优先级规则匹配逻辑,支持包名、分类和标签匹配
修改应用详情和合并应用的默认来源判断逻辑
This commit is contained in:
2026-04-05 09:52:06 +08:00
parent 70f6c8e812
commit d74e05a327
4 changed files with 252 additions and 8 deletions

View File

@@ -441,7 +441,7 @@
import { computed, useAttrs, ref, watch } from "vue";
import axios from "axios";
import { useInstallFeedback, downloads } from "../global/downloadStatus";
import { APM_STORE_BASE_URL } from "../global/storeConfig";
import { APM_STORE_BASE_URL, getHybridDefaultOrigin } from "../global/storeConfig";
import type { App } from "../global/typedefinition";
const attrs = useAttrs();
@@ -482,13 +482,20 @@ const closeMetaModal = () => {
watch(
() => props.app,
(newApp) => {
(newApp: App | null) => {
isIconLoaded.value = false;
if (newApp) {
if (newApp.isMerged) {
// 若父组件已根据安装状态设置了优先展示的版本,则使用;否则默认 Spark
viewingOrigin.value =
newApp.viewingOrigin ?? (newApp.sparkApp ? "spark" : "apm");
// 若父组件已根据安装状态设置了优先展示的版本,则使用
// 否则根据优先级配置决定默认来源
if (newApp.viewingOrigin) {
viewingOrigin.value = newApp.viewingOrigin;
} else if (newApp.sparkApp) {
// 使用优先级配置决定默认来源
viewingOrigin.value = getHybridDefaultOrigin(newApp.sparkApp);
} else {
viewingOrigin.value = "apm";
}
} else {
viewingOrigin.value = newApp.origin;
}