客服后台结构

This commit is contained in:
2025-12-15 10:47:01 +08:00
parent 5667bab5c9
commit 56f398e4ca
11 changed files with 1903 additions and 264 deletions

View File

@@ -1 +1,282 @@
// 全局EL分页组件样式
// 全局EL分页组件样式
.content-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.content-header h1 {
font-size: 18px;
font-weight: 600;
color: #303133;
}
.content-header .subtitle {
margin-top: 4px;
color: #909399;
font-size: 13px;
}
.card-header {
display: flex;
align-items: center;
justify-content: space-between;
}
.dashboard-stats,
.dashboard-cards,
.quick-entries {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.stat-card {
display: flex;
align-items: center;
background: #fff;
border: 1px solid #ebeef5;
border-radius: 8px;
padding: 14px 16px;
transition: all .2s ease;
}
.stat-card.clickable {
cursor: pointer;
}
.stat-card:hover {
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
transform: translateY(-1px);
}
.stat-icon {
width: 44px;
height: 44px;
border-radius: 10px;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
margin-right: 12px;
}
.stat-info {
display: flex;
flex-direction: column;
gap: 4px;
}
.stat-value {
font-size: 20px;
font-weight: 700;
color: #303133;
}
.stat-label {
font-size: 12px;
color: #909399;
}
.stat-trend {
display: flex;
align-items: center;
gap: 4px;
color: #909399;
font-size: 12px;
}
.stat-trend.up {
color: #67c23a;
}
.chart-card {
margin-top: 16px;
}
.question-stats {
display: flex;
flex-direction: column;
gap: 12px;
}
.question-stat-item {
border: 1px solid #ebeef5;
border-radius: 8px;
padding: 10px 12px;
background: #fff;
}
.question-stat-item.clickable {
cursor: pointer;
}
.stat-bar-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
}
.stat-bar {
height: 8px;
background: #f5f7fa;
border-radius: 6px;
overflow: hidden;
}
.stat-bar-fill {
height: 100%;
border-radius: 6px;
}
.product-cloud {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
padding: 8px 0;
}
.cloud-tag {
user-select: none;
}
.quick-entry-card {
margin-top: 16px;
}
.quick-entry-item {
display: flex;
align-items: center;
gap: 10px;
padding: 12px;
border: 1px solid #ebeef5;
border-radius: 8px;
background: #fff;
cursor: pointer;
transition: all .2s ease;
}
.quick-entry-item:hover {
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
transform: translateY(-1px);
}
.quick-entry-item .entry-icon {
width: 36px;
height: 36px;
border-radius: 8px;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
}
.filter-card {
margin-bottom: 12px;
}
.ticket-filters {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.ticket-filters .filter-right {
display: flex;
align-items: center;
gap: 10px;
}
.table-pagination {
margin-top: 12px;
display: flex;
justify-content: flex-end;
}
.file-name-cell {
display: flex;
align-items: center;
gap: 8px;
}
.file-icon {
color: #909399;
}
.unassigned {
color: #909399;
}
.section-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
}
.kb-categories {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 12px;
margin: 8px 0 12px;
}
.kb-category-card {
display: flex;
flex-direction: column;
gap: 6px;
align-items: center;
justify-content: center;
padding: 12px;
background: #fff;
border: 1px solid #ebeef5;
border-radius: 8px;
cursor: pointer;
transition: all .2s ease;
}
.kb-category-card.active,
.kb-category-card:hover {
border-color: #409eff;
box-shadow: 0 6px 18px rgba(64, 158, 255, 0.12);
}
.kb-category-card .cat-name {
font-weight: 600;
color: #303133;
}
.kb-category-card .cat-count {
font-size: 12px;
color: #909399;
}
.kb-files-section {
margin-top: 8px;
}
@media (max-width: 1280px) {
.dashboard-stats,
.dashboard-cards,
.quick-entries {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.kb-categories {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 768px) {
.dashboard-stats,
.dashboard-cards,
.quick-entries {
grid-template-columns: 1fr;
}
.kb-categories {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}