Files
wordpress-theme-aksrt/assets/css/admin/tickets.css
T
kate522andClaude Fable 5 18951b01d6 feat(admin): unify native admin pages on a shared modern UI
Add NativeUi helper + native-ui.css (tokens mirror the SPA Naive UI theme)
and move the pay center, orders, products, coupons, charge cards, income,
withdrawals, tickets, invite codes, VIP, verify, messages and report/ban
pages onto shared header, stat cards, cards, filters, badges and empty
states. Remove inline styles and dead helpers; split PayChargeCards into
sibling traits to stay under the file size limit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-10-30 15:05:38 +08:00

190 lines
7.6 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* 工单管理(users.php?page=aksrt_tickets)——仅在本页入队。
*
* 页面外壳 / 页头 / 卡片 / 折叠创建卡 / 筛选栏 / 表格 / 空态 / 分页 / 徽标基形
* 由 native-ui.css(.aksrt-native)统一承载;本文件只保留工单专属部分:
* 列表行状态、按状态上色的徽标与小圆点(--aksrt-ticket-color)、催单徽标、
* 行内展开的详情面板(对话气泡 / 引用 / 附件 / 信息卡 / 处理表单 / 内部备注)。
* 颜色与圆角继承 .aksrt-native 的 --an-* 令牌。
*/
/* ---- 列表 ---- */
.aksrt-tickets-admin__table { min-width: 860px; table-layout: fixed; }
.aksrt-tickets-admin__table .column-title { width: 34%; }
.aksrt-tickets-admin__table .column-status { width: 10%; }
.aksrt-tickets-admin__table .column-type,
.aksrt-tickets-admin__table .column-admin { width: 11%; }
.aksrt-tickets-admin__table .column-user { width: 15%; }
.aksrt-tickets-admin__table .column-time { width: 19%; }
.aksrt-tickets-admin__table .row-title { word-break: break-word; }
.aksrt-tickets-admin__sub { margin-top: 3px; color: var(--an-muted); font-size: 12px; }
.aksrt-tickets-admin__sub code { padding: 0 4px; font-size: 12px; }
.aksrt-native .aksrt-tickets-admin__row.is-awaiting td:first-child { box-shadow: inset 3px 0 0 var(--an-danger); }
.aksrt-native .aksrt-tickets-admin__row.is-open td { background: var(--an-primary-soft); }
.aksrt-native .aksrt-tickets-admin__detail-row > td { padding: 0 !important; background: var(--an-bg-soft) !important; }
/* 状态小圆点(状态视图链接前缀) */
.aksrt-ticket-dot {
display: inline-block;
width: 8px;
height: 8px;
margin-right: 4px;
border-radius: 50%;
background: var(--aksrt-ticket-color, var(--an-muted));
vertical-align: 1px;
}
/* 按状态上色的徽标(--aksrt-ticket-color 由状态配置驱动,不走 NativeUi 色调) */
.aksrt-ticket-badge {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 1px 8px;
border-radius: 999px;
font-size: 12px;
line-height: 20px;
white-space: nowrap;
color: var(--aksrt-ticket-color, var(--an-muted));
background: color-mix(in srgb, var(--aksrt-ticket-color, var(--an-muted)) 10%, #fff);
}
.aksrt-ticket-badge::before {
content: "";
width: 6px;
height: 6px;
border-radius: 50%;
background: currentColor;
}
/* 催单徽标:列表标题旁 + 详情信息卡。 */
.aksrt-ticket-urge {
display: inline-block;
padding: 0 6px;
color: var(--an-danger);
font-size: 12px;
line-height: 18px;
background: #fdf0f2;
border: 1px solid color-mix(in srgb, var(--an-danger) 30%, #fff);
border-radius: 9px;
vertical-align: middle;
}
/* 用户 chip(列表行) */
.aksrt-ticket-user { display: inline-flex; align-items: center; gap: 6px; min-width: 0; color: var(--an-text); text-decoration: none; }
.aksrt-ticket-user img { flex: none; border-radius: 50%; }
.aksrt-ticket-user span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* ---- 详情面板(行内展开) ---- */
.aksrt-ticket-detail {
display: grid;
grid-template-columns: minmax(0, 1fr) 300px;
gap: 16px;
padding: 16px 20px;
border-top: 1px solid var(--an-border);
border-bottom: 1px solid var(--an-border);
}
.aksrt-ticket-detail__main,
.aksrt-ticket-detail__side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.aksrt-ticket-detail__heading { display: block; margin: 0 0 8px; color: var(--an-text); font-size: 13px; font-weight: 600; }
.aksrt-ticket-detail__empty { margin: 0; color: var(--an-muted); }
.aksrt-ticket-detail__origin,
.aksrt-ticket-detail__reply,
.aksrt-ticket-detail__card,
.aksrt-ticket-detail__reply-form {
padding: 12px 14px;
background: var(--an-card);
border: 1px solid var(--an-border);
border-radius: var(--an-radius-sm);
}
.aksrt-ticket-detail__origin { border-left: 3px solid var(--an-primary); }
.aksrt-ticket-detail__msg-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.aksrt-ticket-detail__msg-head img { border-radius: 50%; }
.aksrt-ticket-detail__msg-head strong { color: var(--an-text); }
.aksrt-ticket-detail__msg-head time { margin-left: auto; color: var(--an-muted); font-size: 12px; }
.aksrt-ticket-detail__body { word-break: break-word; }
.aksrt-ticket-detail__body > p:first-child { margin-top: 0; }
.aksrt-ticket-detail__body > p:last-child { margin-bottom: 0; }
.aksrt-ticket-detail__replies { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.aksrt-ticket-detail__reply { margin: 0; }
.aksrt-ticket-detail__reply.is-admin { margin-left: 32px; background: var(--an-primary-soft); border-color: color-mix(in srgb, var(--an-primary) 24%, #fff); }
.aksrt-ticket-detail__reply.is-user { margin-right: 32px; }
/* 系统记录(催单等):居中细条,与对话气泡区分。 */
.aksrt-ticket-detail__system {
display: flex;
justify-content: center;
gap: 8px;
margin: 0;
color: var(--an-muted);
font-size: 12px;
}
.aksrt-ticket-detail__system span { color: var(--an-danger); }
.aksrt-ticket-detail__quote {
margin: 0 0 8px;
padding: 6px 10px;
color: var(--an-muted);
background: var(--an-bg-soft);
border-left: 3px solid var(--an-border);
white-space: pre-line;
}
.aksrt-ticket-detail__attachments { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.aksrt-ticket-detail__attachments li { margin: 0; }
.aksrt-ticket-detail__attachments img {
display: block;
width: 72px;
height: 72px;
object-fit: cover;
border: 1px solid var(--an-border);
border-radius: var(--an-radius-sm);
}
.aksrt-ticket-detail__reply-form textarea { width: 100%; }
.aksrt-ticket-detail__reply-foot { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.aksrt-ticket-detail__reply-foot select { max-width: 240px; }
.aksrt-ticket-detail__counter { margin-left: auto; color: var(--an-muted); font-size: 12px; }
.aksrt-ticket-detail__counter.is-over { color: var(--an-danger); }
.aksrt-ticket-detail__closed {
display: flex;
align-items: center;
gap: 6px;
margin: 0;
padding: 10px 14px;
color: var(--an-muted);
background: var(--an-card);
border: 1px dashed var(--an-border);
border-radius: var(--an-radius-sm);
}
.aksrt-ticket-detail__info {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 8px 12px;
margin: 0;
}
.aksrt-ticket-detail__info dt { color: var(--an-muted); }
.aksrt-ticket-detail__info dd { margin: 0; color: var(--an-text); word-break: break-all; }
.aksrt-ticket-detail__status-form { display: flex; flex-direction: column; gap: 8px; }
.aksrt-ticket-detail__status-form label { display: flex; flex-direction: column; gap: 3px; }
.aksrt-ticket-detail__status-form select { width: 100%; max-width: none; }
.aksrt-ticket-detail__status-form .button { align-self: flex-start; }
.aksrt-ticket-detail__notes { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; padding: 0; list-style: none; }
.aksrt-ticket-detail__notes li { margin: 0; padding: 8px 10px; background: #fffbe8; border-left: 3px solid var(--an-warning); word-break: break-word; }
.aksrt-ticket-detail__note-head { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 4px; font-size: 12px; }
.aksrt-ticket-detail__note-head strong { color: var(--an-text); }
.aksrt-ticket-detail__note-head time { color: var(--an-muted); }
.aksrt-ticket-detail__note-form { display: flex; flex-direction: column; gap: 6px; }
.aksrt-ticket-detail__note-form textarea { width: 100%; }
.aksrt-ticket-detail__note-form .button { align-self: flex-start; }
@media (max-width: 1100px) {
.aksrt-ticket-detail { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 782px) {
.aksrt-ticket-detail__reply.is-admin,
.aksrt-ticket-detail__reply.is-user { margin-left: 0; margin-right: 0; }
}