fix(app-manager): 优化安装包上传页面的空状态和权限列表展示
- 将空状态移至加载容器外,避免加载时闪现空提示 - 将安装包详情抽屉宽度调整为 800px - 权限列表从标签改为带序号的列表,并优化换行与滚动样式
This commit is contained in:
@@ -31,10 +31,14 @@
|
|||||||
<el-button type="success" :icon="Upload" @click="uploadVisible = true">上传安装包</el-button>
|
<el-button type="success" :icon="Upload" @click="uploadVisible = true">上传安装包</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 卡片列表 -->
|
<!-- 卡片列表 / 空状态 -->
|
||||||
<div v-loading="loading" class="card-grid">
|
<el-empty
|
||||||
<el-empty v-if="!loading && list.length === 0" description="暂无安装包,点击右上角上传" />
|
v-if="!loading && list.length === 0"
|
||||||
|
description="暂无安装包,点击右上角上传"
|
||||||
|
class="empty-state"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div v-else v-loading="loading" class="card-grid">
|
||||||
<el-card v-for="item in list" :key="item.id" class="pkg-card" shadow="hover">
|
<el-card v-for="item in list" :key="item.id" class="pkg-card" shadow="hover">
|
||||||
<div class="pkg-card__header">
|
<div class="pkg-card__header">
|
||||||
<el-image
|
<el-image
|
||||||
@@ -136,7 +140,7 @@
|
|||||||
<UploadDialog v-model:visible="uploadVisible" @success="handleUploaded" />
|
<UploadDialog v-model:visible="uploadVisible" @success="handleUploaded" />
|
||||||
|
|
||||||
<!-- 详情抽屉 -->
|
<!-- 详情抽屉 -->
|
||||||
<el-drawer v-model="detailVisible" title="安装包详情" size="460px">
|
<el-drawer v-model="detailVisible" title="安装包详情" size="800px">
|
||||||
<el-descriptions v-if="current" :column="1" border class="detail-desc">
|
<el-descriptions v-if="current" :column="1" border class="detail-desc">
|
||||||
<el-descriptions-item label="应用名称">{{ current.appLabel || "-" }}</el-descriptions-item>
|
<el-descriptions-item label="应用名称">{{ current.appLabel || "-" }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="包名">{{ current.packageName || "-" }}</el-descriptions-item>
|
<el-descriptions-item label="包名">{{ current.packageName || "-" }}</el-descriptions-item>
|
||||||
@@ -210,15 +214,10 @@
|
|||||||
<el-descriptions-item label="备注">{{ current.remark || "-" }}</el-descriptions-item>
|
<el-descriptions-item label="备注">{{ current.remark || "-" }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="权限列表">
|
<el-descriptions-item label="权限列表">
|
||||||
<div class="perm-list">
|
<div class="perm-list">
|
||||||
<el-tag
|
<div v-for="(p, i) in current.permissions || []" :key="p" class="perm-item">
|
||||||
v-for="p in current.permissions || []"
|
<span class="perm-index">{{ i + 1 }}.</span>
|
||||||
:key="p"
|
<span class="perm-name">{{ p }}</span>
|
||||||
size="small"
|
</div>
|
||||||
type="info"
|
|
||||||
class="perm-tag"
|
|
||||||
>
|
|
||||||
{{ p }}
|
|
||||||
</el-tag>
|
|
||||||
<span v-if="!current.permissions || current.permissions.length === 0">-</span>
|
<span v-if="!current.permissions || current.permissions.length === 0">-</span>
|
||||||
</div>
|
</div>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
@@ -423,6 +422,12 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.empty-state {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
.card-grid {
|
.card-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
||||||
@@ -539,11 +544,28 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.perm-list {
|
.perm-list {
|
||||||
max-height: 160px;
|
max-height: 240px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.perm-tag {
|
.perm-item {
|
||||||
margin: 0 4px 4px 0;
|
display: flex;
|
||||||
|
gap: 6px;
|
||||||
|
align-items: baseline;
|
||||||
|
padding: 2px 0;
|
||||||
|
line-height: 20px;
|
||||||
|
word-break: break-all;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.perm-index {
|
||||||
|
flex-shrink: 0;
|
||||||
|
color: var(--el-text-color-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.perm-name {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user