mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-06-30 04:01:30 +08:00
v0.4.0: Gateway 进程守护、配置自愈、双配置同步、流式超时、模型删除安全切换
This commit is contained in:
@@ -687,6 +687,78 @@
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
|
||||
/* 消息时间戳 */
|
||||
.msg-time {
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
margin-top: 4px;
|
||||
padding: 0 4px;
|
||||
}
|
||||
.msg-user .msg-time { text-align: right; }
|
||||
.msg-ai .msg-time { text-align: left; }
|
||||
|
||||
/* 消息内图片 */
|
||||
.msg-img {
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* 消息内视频 */
|
||||
.msg-video {
|
||||
max-width: 320px;
|
||||
max-height: 240px;
|
||||
border-radius: 6px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* 消息内音频 */
|
||||
.msg-audio {
|
||||
margin-top: 8px;
|
||||
max-width: 280px;
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
/* 文件卡片 */
|
||||
.msg-file-card {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 12px;
|
||||
margin-top: 8px;
|
||||
background: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: var(--radius-md);
|
||||
font-size: var(--font-size-sm);
|
||||
transition: background 0.15s;
|
||||
}
|
||||
.msg-file-card:hover {
|
||||
background: var(--bg-hover);
|
||||
}
|
||||
.msg-file-icon {
|
||||
font-size: 18px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.msg-file-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
min-width: 0;
|
||||
}
|
||||
.msg-file-name {
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 200px;
|
||||
}
|
||||
.msg-file-size {
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.chat-lightbox-img {
|
||||
max-width: 90%;
|
||||
max-height: 90%;
|
||||
|
||||
@@ -1,3 +1,25 @@
|
||||
/* 按钮加载状态 — 任意按钮加上 .btn-loading 即可获得内联 spinner */
|
||||
.btn.btn-loading {
|
||||
pointer-events: none;
|
||||
opacity: 0.75;
|
||||
}
|
||||
.btn.btn-loading::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: 2px solid currentColor;
|
||||
border-top-color: transparent;
|
||||
border-radius: 50%;
|
||||
animation: btn-spin 0.7s linear infinite;
|
||||
margin-right: 6px;
|
||||
vertical-align: -2px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@keyframes btn-spin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
/* 骨架屏 */
|
||||
.skeleton {
|
||||
background: linear-gradient(90deg, var(--bg-secondary) 25%, var(--bg-tertiary, var(--bg-card-hover)) 50%, var(--bg-secondary) 75%);
|
||||
|
||||
@@ -96,6 +96,63 @@
|
||||
.service-actions {
|
||||
display: flex;
|
||||
gap: var(--space-sm);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 服务操作加载状态 */
|
||||
.service-loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-sm);
|
||||
}
|
||||
|
||||
.service-spinner {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border: 2px solid var(--border-primary);
|
||||
border-top-color: var(--primary);
|
||||
border-radius: 50%;
|
||||
animation: service-spin 0.8s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes service-spin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
.service-loading-text {
|
||||
font-size: var(--font-size-sm);
|
||||
color: var(--text-secondary);
|
||||
font-variant-numeric: tabular-nums;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.service-cancel-btn {
|
||||
font-size: var(--font-size-xs) !important;
|
||||
color: var(--text-tertiary) !important;
|
||||
padding: 2px 8px !important;
|
||||
transition: color var(--transition-fast);
|
||||
}
|
||||
.service-cancel-btn:hover {
|
||||
color: var(--error) !important;
|
||||
}
|
||||
|
||||
/* 状态点:加载中脉冲动画 */
|
||||
.status-dot.loading {
|
||||
background: var(--warning, #f59e0b);
|
||||
animation: dot-pulse 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes dot-pulse {
|
||||
0%, 100% { opacity: 1; transform: scale(1); }
|
||||
50% { opacity: 0.4; transform: scale(0.8); }
|
||||
}
|
||||
|
||||
/* 日志加载状态 */
|
||||
.log-loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: var(--space-xl) 0;
|
||||
}
|
||||
|
||||
/* 日志工具栏 */
|
||||
|
||||
Reference in New Issue
Block a user