mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-08-10 14:24:11 +08:00
refactor(已安装应用): 合并 APM/Spark 分页为列表标签并新增统计
- 移除 APM/Spark 分页切换器,改为在应用项标题旁标记来源标签 (APM=琥珀色, Spark=天蓝色), 同时保留依赖项标记 - 修复已安装应用为空回归: list-installed 收到空 pkgnameList 时直接 返回空列表, 避免退化为全量扫描整个系统后全部被跳过; 渲染端 refreshInstalledApps 仅当商店目录存在 spark 列表时才查询 spark; 目录加载完成后 watch 自动重查 - 头部新增 APM/Spark/总数 三段式统计徽章 (渐变图标 + 大数字) - 更新 InstalledAppsModal 单测以兼容页头与列表同名标签
This commit is contained in:
@@ -997,8 +997,16 @@ ipcMain.handle(
|
||||
}> = [];
|
||||
|
||||
if (origin === "spark") {
|
||||
// 如果提供了包名列表,只检查这些包的安装状态(优化版)
|
||||
if (pkgnameList && pkgnameList.length > 0) {
|
||||
// 显式传入了包名列表(可能是空数组):只检查这些包的安装状态(优化版)
|
||||
if (Array.isArray(pkgnameList)) {
|
||||
if (pkgnameList.length === 0) {
|
||||
// 商店目录尚未加载或该来源没有任何可枚举的包时,
|
||||
// 直接返回空列表,避免退化为“全量扫描整个系统”后再被渲染端全部跳过,
|
||||
// 否则会误报“已安装应用为空”。
|
||||
logger.info("Spark 包名列表为空,跳过已安装检查");
|
||||
return { success: true, apps: [] };
|
||||
}
|
||||
|
||||
logger.info(
|
||||
`使用优化模式检查 ${pkgnameList.length} 个 Spark 包的安装状态`,
|
||||
);
|
||||
@@ -1040,7 +1048,7 @@ ipcMain.handle(
|
||||
return { success: true, apps: installedApps };
|
||||
}
|
||||
|
||||
// 回退到全量扫描模式(未提供包名列表时)
|
||||
// 回退到全量扫描模式(仅当调用方未传入 pkgnameList 时,例如旧版直接调用)
|
||||
logger.info("使用全量扫描模式获取所有 Spark 已安装包");
|
||||
const { code, stdout } = await runCommandCapture("dpkg-query", [
|
||||
"-W",
|
||||
|
||||
Reference in New Issue
Block a user