优化前端ui

This commit is contained in:
yml2213
2026-05-16 15:32:40 +08:00
parent 1342c03853
commit 3ca71b782b
16 changed files with 31 additions and 60 deletions
@@ -4,8 +4,7 @@
各页面自行覆盖颜色、圆角、主题属性
============================================================ */
/* ---------- 面板头部 & 分区标题 ---------- */
.panel-header,
/* ---------- 分区标题 ---------- */
.section-title-row {
display: flex;
justify-content: space-between;
@@ -13,30 +12,15 @@
align-items: flex-start;
}
.panel-header {
flex-wrap: wrap;
}
.panel-header-copy {
min-width: 280px;
flex: 1;
}
.panel-header h1,
.panel-header-copy h1,
.section-title-row h3 {
margin: 0;
}
.panel-header p,
.panel-header-copy p,
.section-title-row p {
margin: 6px 0 0;
}
/* ---------- 头部工具 ---------- */
.header-tags,
.header-actions,
.section-header-tools,
.section-mini-stats,
.section-action-group {
@@ -46,7 +30,6 @@
align-items: center;
}
.header-actions,
.section-header-tools {
justify-content: flex-end;
}
@@ -245,16 +228,6 @@
color: #027a48;
}
/* ---------- 折叠 ---------- */
.collapse-button {
border: 1px solid rgba(86, 108, 138, 0.18);
background: rgba(255, 255, 255, 0.96);
border-radius: var(--radius-full);
padding: 7px 12px;
font: inherit;
cursor: pointer;
}
.binding-collapsed-preview {
display: grid;
gap: 6px;
@@ -268,15 +241,9 @@
align-items: center;
}
/* ---------- 复选框 ---------- */
.checkbox-line {
display: inline-flex;
gap: 8px;
align-items: center;
}
/* ---------- 工具栏提示 ---------- */
.toolbar-hint {
margin: 10px 0 0;
font-size: var(--text-xs);
}
.mt-4 { margin-top: 16px; }
@@ -306,3 +306,4 @@
flex: 1 1 auto;
}
}
.mt-4 { margin-top: 16px; }
@@ -115,3 +115,5 @@
.el-empty__description {
color: var(--text-muted);
}
.mt-4 { margin-top: 16px; }
@@ -137,11 +137,11 @@ onMounted(loadAuditLogs)
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<!-- 表格 -->
<el-card shadow="never" class="table-card" style="margin-top: 16px">
<el-card shadow="never" class="table-card mt-4">
<el-table
:data="items"
stripe
@@ -40,10 +40,10 @@ const cards = [
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-skeleton v-if="loading" :rows="12" animated style="margin-top: 16px" />
<el-skeleton v-if="loading" :rows="12" animated class="mt-4" />
<div v-else class="summary-grid">
<el-card v-for="card in cards" :key="card.key" shadow="never" class="stat-card">
@@ -124,6 +124,7 @@
.admin-panel :deep(.el-textarea__inner),
.admin-panel :deep(.el-select__wrapper) {
min-height: 40px;
border: 0;
border-radius: 14px;
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 0 0 1px rgba(86, 108, 138, 0.18) inset;
@@ -244,7 +245,6 @@
响应式
============================================== */
@media (max-width: 900px) {
.panel-header,
.section-title-row,
.section-header-tools,
.binding-actions,
@@ -282,6 +282,7 @@
.admin-panel :deep(.el-textarea__inner),
.admin-panel :deep(.el-select__wrapper) {
min-height: 36px;
border: 0;
border-radius: var(--radius-sm);
background: #fff;
box-shadow: 0 0 0 1px var(--panel-line) inset;
@@ -575,7 +575,7 @@ onMounted(async () => {
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-card
@@ -778,7 +778,7 @@ onMounted(async () => {
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="loadInventoryItems"
/>
</template>
@@ -178,7 +178,7 @@ onMounted(loadMessageDeliveries)
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<!-- 列表 -->
@@ -274,7 +274,7 @@ onMounted(loadMessageDeliveries)
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="loadMessageDeliveries"
/>
</template>
@@ -224,7 +224,7 @@ onMounted(() => {
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-card
@@ -338,7 +338,7 @@ onMounted(() => {
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="applyFilters"
/>
</template>
@@ -234,10 +234,10 @@ defineProps<Props>()
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<div class="result-grid" style="margin-top: 16px">
<div class="result-grid mt-4">
<AdminResultCard label="短信发送" :value="cloudtentaclesSmsResult ? '成功' : '未执行'">
<p v-if="cloudtentaclesSmsResult">
{{ cloudtentaclesSmsResult.phoneMasked }}{{
@@ -333,7 +333,7 @@ defineProps<Props>()
>
</div>
<pre v-if="cloudtentaclesDebugResult" class="debug-pre" style="margin-top: 16px">{{
<pre v-if="cloudtentaclesDebugResult" class="debug-pre mt-4">{{
cloudtentaclesDebugResult
}}</pre>
<el-empty
@@ -296,7 +296,7 @@ defineProps<Props>()
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
</el-card>
@@ -411,7 +411,7 @@ defineProps<Props>()
</el-card>
</div>
<div class="result-grid" style="margin-top: 16px">
<div class="result-grid mt-4">
<AdminResultCard
label="详情查询"
:value="
@@ -177,7 +177,7 @@ function bindDurationUnit(job: EditableScheduledJob, key: 'intervalSeconds' | 'c
</el-form-item>
</el-form>
<el-table :data="notificationRecipients" stripe size="small" style="margin-top: 16px">
<el-table :data="notificationRecipients" stripe size="small" class="mt-4">
<el-table-column label="接收人" min-width="150">
<template #default="{ row }">
<el-input v-model="row.name" placeholder="例如:客服A" size="small" />
@@ -411,7 +411,7 @@ function bindDurationUnit(job: EditableScheduledJob, key: 'intervalSeconds' | 'c
:data="notificationTestResult.results"
stripe
size="small"
style="margin-top: 16px"
class="mt-4"
>
<el-table-column label="接收人">
<template #default="{ row }">{{
@@ -226,7 +226,7 @@ function resetFilters() {
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-alert
v-if="lastClaimUrl"
@@ -234,7 +234,7 @@ function resetFilters() {
type="info"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-card
@@ -398,7 +398,7 @@ function resetFilters() {
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="loadTasks"
/>
</template>
@@ -286,7 +286,7 @@ onMounted(loadUsers)
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<el-card shadow="never" class="section-card">
@@ -396,7 +396,7 @@ onMounted(loadUsers)
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="loadUsers"
/>
</el-card>
@@ -241,7 +241,7 @@ onMounted(() => {
type="error"
show-icon
:closable="false"
style="margin-top: 16px"
class="mt-4"
/>
<!-- 列表 -->
@@ -348,7 +348,7 @@ onMounted(() => {
:page-size="pagination.pageSize"
:total="pagination.total"
layout="total, prev, pager, next"
style="margin-top: 16px; justify-content: center"
class="mt-4" style="justify-content: center"
@current-change="applyFilters"
/>
</template>