feat: 包信息展示与扫描数据修正

- scanner: 版本数只统计实际存在的 .tgz(修复 playwright-core 5113 版本虚高),解析 description/homepage/repository/author/license 元数据字段
- 前端: 新增 PkgLogo 首字母徽标组件,详情抽屉展示包 logo(主页 favicon 加载失败自动回退)、介绍与主页/仓库/许可胶囊,优化抽屉头部布局
- 全量 UI 改进: 毛玻璃扫描遮罩与进度、头像菜单重新扫描、主题切换、移动端 Tabbar/StatMini/Top30Panel 响应式、列表瘦身与详情按需加载
- compose: TZ=Asia/Shanghai + 命名卷 vcm-data 解决 SQLite 权限
- 更新 amd64 镜像 tar
This commit is contained in:
陈银军
2026-09-19 21:07:27 +08:00
parent f84f21574f
commit 8a54fb2d5c
21 changed files with 944 additions and 209 deletions
+2 -13
View File
@@ -1,6 +1,6 @@
<script setup>
import StatusTag from './StatusTag.vue'
import { iconOf } from '../mock/data.js'
import PkgLogo from './PkgLogo.vue'
defineProps({
pkg: { type: Object, required: true },
@@ -22,7 +22,7 @@ function splitName(name) {
@click="emit('open', pkg)"
>
<div class="p-top">
<div class="pkg-ico">{{ iconOf(pkg.name) }}</div>
<PkgLogo :name="pkg.name" :size="44" />
<div style="flex: 1; min-width: 0">
<div class="pkg-name">
<span class="nm">
@@ -87,17 +87,6 @@ function splitName(name) {
.pkg-card.ignored { background: var(--ignored-card); opacity: .82; }
.pkg-card.broken { border-style: dashed; }
.p-top { display: flex; align-items: center; gap: 12px; }
.pkg-ico {
width: 44px;
height: 44px;
border-radius: 14px;
display: grid;
place-items: center;
font-size: 20px;
background: var(--grad-pkg-ico);
box-shadow: inset 0 0 0 1.5px rgba(255, 140, 0, .18);
flex-shrink: 0;
}
.pkg-name {
font-size: 15px;
font-weight: 700;