Files
kate522andClaude Opus 5 35bb96e82f refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-01 20:05:04 +08:00

197 lines
19 KiB
CSS
Raw Permalink 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.
/* Knowledge-payment order center */
.jio-orders-page {
--orders-ink: var(--color-ink, #1d2738);
--orders-muted: var(--color-ink-3, #758096);
--orders-line: color-mix(in srgb, var(--color-line, #e1e6ef) 88%, transparent);
padding: 0;
color: var(--orders-ink);
}
.uc-orders-panel__head {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(285px, 42%);
gap: 28px;
align-items: end;
padding: 4px 0 22px;
border-bottom: 1px solid var(--orders-line);
}
.jio-orders-page__eyebrow {
margin: 0 0 7px;
color: var(--color-primary, #3b82f6);
font-size: 11px;
font-weight: 750;
letter-spacing: .14em;
text-transform: uppercase;
}
.uc-orders-panel__title { display: flex; align-items: center; gap: 9px; font-size: 21px; }
.uc-orders-panel__title-icon { color: var(--color-primary, #3b82f6); font-size: 17px; }
.uc-orders-panel__title-wrap > p:last-child { margin-bottom: 0; }
.jio-orders-page__stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
border: 1px solid var(--orders-line);
border-radius: 14px;
background: var(--surface-1, #fff);
overflow: hidden;
}
.jio-orders-page__stat { display: grid; gap: 5px; padding: 13px 15px; border-right: 1px solid var(--orders-line); }
.jio-orders-page__stat:last-child { border-right: 0; }
.jio-orders-page__stat span { color: var(--orders-muted); font-size: 11px; font-weight: 600; }
.jio-orders-page__stat strong { font-size: 21px; line-height: 1; font-variant-numeric: tabular-nums; }
.jio-orders-page__stat strong.is-pending { color: var(--color-warning, #c87819); }
.jio-orders-page__stat strong.is-paid { color: var(--color-success, #168560); }
.jio-orders-page__search { display: flex; gap: 8px; align-items: center; margin: 20px 0 12px; padding: 7px; border: 1px solid var(--orders-line); border-radius: 12px; background: var(--surface-1, #fff); }
.jio-orders-page__search > i { margin-left: 7px; color: var(--orders-muted); font-size: 13px; }
.jio-orders-page__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--orders-ink); font-size: 13px; }
.jio-orders-page__search button, .jio-orders-page__card-actions .btn-primary, .jio-orders-page__card-actions .btn-outline, .jio-orders-page__card-actions .btn-ghost, .jio-orders-page__empty .btn-outline { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 13px; border-radius: 8px; border: 1px solid transparent; font-size: 12px; font-weight: 650; text-decoration: none; cursor: pointer; }
.jio-orders-page .btn-primary { background: var(--color-primary, #3b82f6); color: var(--color-on-primary, #fff); }
.jio-orders-page .btn-outline { border-color: var(--orders-line); background: var(--surface-1, #fff); color: var(--orders-ink); }
.jio-orders-page .btn-ghost { background: transparent; color: var(--orders-muted); }
.jio-orders-page__filter-toggle { background: var(--surface-2, #f4f6f9); color: var(--orders-ink); white-space: nowrap; }
.jio-orders-page__filter-panel { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -2px 0 14px; padding: 12px; border-radius: 10px; background: var(--surface-2, #f4f6f9); }
.jio-orders-page__filter-panel[hidden] { display: none !important; }
.jio-orders-page__filter-group { display: flex; flex: 1 1 100%; gap: 10px; align-items: center; }
.jio-orders-page__filter-label { flex: 0 0 58px; color: var(--orders-muted); font-size: 12px; font-weight: 650; }
.jio-orders-page__status-filters, .jio-orders-page__type-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.jio-orders-page__filter-chip { display: inline-flex; gap: 5px; align-items: center; padding: 5px 9px; border: 1px solid var(--orders-line); border-radius: 999px; background: var(--surface-1, #fff); color: var(--orders-muted); font: inherit; font-size: 12px; text-decoration: none; cursor: pointer; }
.jio-orders-page__filter-chip.is-active { border-color: var(--color-primary, #3b82f6); background: color-mix(in srgb, var(--color-primary, #3b82f6) 10%, var(--surface-1, #fff)); color: var(--color-primary, #3b82f6); font-weight: 700; }
.jio-orders-page__filter-count { display: inline-grid; min-width: 17px; height: 17px; padding: 0 4px; place-items: center; border-radius: 999px; background: var(--color-warning, #c87819); color: #fff; font-size: 10px; line-height: 1; }
.jio-orders-page__clear { margin-left: auto; padding: 0; border: 0; background: transparent; color: var(--color-primary, #3b82f6); font: inherit; font-size: 12px; text-decoration: none; cursor: pointer; }
.jio-orders-page__list { display: grid; gap: 10px; }
.jio-orders-page__card { overflow: hidden; border: 1px solid var(--orders-line); border-radius: 13px; background: var(--surface-1, #fff); transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.jio-orders-page__card:hover { border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 36%, var(--orders-line)); box-shadow: 0 8px 22px rgba(30, 48, 79, .07); transform: translateY(-1px); }
.jio-orders-page__card-rail { display: flex; gap: 10px; align-items: center; padding: 9px 14px; background: var(--surface-2, #f7f8fb); color: var(--orders-muted); font-size: 11px; }
.jio-orders-page__card-rail time { margin-left: auto; font-variant-numeric: tabular-nums; }
.jio-orders-page__card-status { font-weight: 700; }
.jio-orders-page__card-status.is-pending { color: var(--color-warning, #c87819); }
.jio-orders-page__card-status.is-paid { color: var(--color-success, #168560); }
.jio-orders-page__card-main { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 13px; align-items: center; padding: 14px; }
.jio-orders-page__card-img, .jio-orders-page__card-art { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; }
.jio-orders-page__card-art { display: grid; place-items: center; color: var(--color-primary, #3b82f6); background: color-mix(in srgb, var(--color-primary, #3b82f6) 10%, var(--surface-2, #f4f6f9)); }
.jio-orders-page__card-copy { min-width: 0; }
.jio-orders-page__card-copy h3 { display: -webkit-box; margin: 0 0 5px; overflow: hidden; color: var(--orders-ink); font-size: 14px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.jio-orders-page__card-copy p { margin: 0; color: var(--orders-muted); font-family: var(--font-mono, monospace); font-size: 11px; }
.jio-orders-page__card-value { display: grid; gap: 3px; text-align: right; }
.jio-orders-page__card-value strong { color: var(--orders-ink); font-size: 15px; font-variant-numeric: tabular-nums; }
.jio-orders-page__card-value span { color: var(--orders-muted); font-size: 11px; }
.jio-orders-page__card-actions { display: flex; gap: 7px; align-items: center; justify-content: flex-end; padding: 9px 14px; border-top: 1px solid var(--orders-line); }
.jio-orders-page__countdown { margin-right: auto; color: var(--color-warning, #c87819); font-size: 11px; font-variant-numeric: tabular-nums; }
.jio-orders-page__pagination { display: flex; justify-content: center; gap: 6px; margin-top: 20px; }
.jio-orders-page__page-chip { display: grid; width: 31px; height: 31px; padding: 0; place-items: center; border: 1px solid var(--orders-line); border-radius: 8px; background: var(--surface-1, #fff); color: var(--orders-muted); font: inherit; font-size: 12px; text-decoration: none; cursor: pointer; }
.jio-orders-page__page-chip.is-active { border-color: var(--color-primary, #3b82f6); background: var(--color-primary, #3b82f6); color: #fff; }
.jio-orders-page [data-jio-order-list], .jio-orders-page__stats, .jio-orders-page__pagination { transition: opacity .16s ease; }
.jio-orders-page.is-loading [data-jio-order-list], .jio-orders-page.is-loading .jio-orders-page__stats, .jio-orders-page.is-loading .jio-orders-page__pagination { opacity: .55; pointer-events: none; }
.jio-orders-page__empty { padding: 52px 20px; border: 1px dashed var(--orders-line); border-radius: 13px; background: var(--surface-2, #f7f8fb); text-align: center; }
.jio-orders-page__empty i { display: block; margin-bottom: 12px; color: var(--color-primary, #3b82f6); font-size: 30px; }
.jio-orders-page__empty h3 { margin: 0 0 7px; font-size: 15px; }.jio-orders-page__empty p { margin: 0 0 16px; color: var(--orders-muted); font-size: 13px; }
/* ---- Order detail modal (front-end order center) ---- */
/* 弹窗 portal 到 <body>,读不到页面上的 `--orders-*` 别名,因此把本模块的局部
别名映射到 modal-runtime.css 声明的共享 portal 基座 `--modal-*`;
路由文件不应再自行推导调色板值。 */
.jio-order-detail-modal {
--detail-ink: var(--modal-ink);
--detail-muted: var(--modal-muted);
--detail-line: var(--modal-line);
--detail-surface: var(--modal-surface);
--detail-surface-2: var(--modal-surface-2);
--detail-surface-3: var(--modal-surface-3);
--detail-primary: var(--modal-primary);
--detail-warning: var(--modal-warning);
--detail-success: var(--modal-success);
}
/* 订单详情弹窗:modal-mini 几何(400px);标题区改用蓝色炫彩头,运行时不再渲染默认标题栏。 */
.jio-order-detail-modal:not(.jio-modal-runtime--bottom) .jio-modal-runtime__dialog {
width: min(400px, calc(100vw - 32px));
border-radius: var(--main-radius, 8px);
background: var(--main-bg-color, #fff);
}
/* 滚动发生在 dialog 本体(modal-runtime 的 overflow:auto),内容超高时右缘会露出
滚动栏;与申诉弹窗口径一致:完全隐藏滚动条(含细滚动条),滚动行为不变。 */
.jio-order-detail-modal .jio-modal-runtime__dialog { -ms-overflow-style: none; scrollbar-width: none; }
.jio-order-detail-modal .jio-modal-runtime__dialog::-webkit-scrollbar { display: none; }
.jio-order-detail-modal .jio-modal-runtime__content { display: flex; flex-direction: column; gap: 18px; padding: 16px 18px 0; }
.jio-order-detail__skeleton { display: grid; gap: 12px; padding: 4px 0; }
/* Status banner — a single local variable drives the whole colour scheme. */
.jio-order-detail__hero { --hero-accent: var(--detail-primary); --hero-text: color-mix(in srgb, var(--hero-accent) 72%, var(--detail-ink)); display: flex; align-items: center; gap: 13px; padding: 15px; border: 1px solid color-mix(in srgb, var(--hero-accent) 20%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--hero-accent) 12%, var(--detail-surface)); }
.jio-order-detail__hero.is-pending { --hero-accent: var(--detail-warning); }
.jio-order-detail__hero.is-paid { --hero-accent: var(--detail-success); }
.jio-order-detail__hero.is-refunded, .jio-order-detail__hero.is-closed { --hero-accent: var(--detail-muted); }
.jio-order-detail__hero-icon { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--hero-accent) 16%, transparent); color: var(--hero-text); font-size: 19px; }
.jio-order-detail__hero-copy { display: grid; flex: 1 1 auto; gap: 4px; min-width: 0; }
.jio-order-detail__status { color: var(--hero-text); font-size: 15px; font-weight: 750; line-height: 1.2; }
.jio-order-detail__desc { margin: 0; color: var(--detail-muted); font-size: 12px; line-height: 1.45; }
.jio-order-detail__countdown { color: var(--hero-text); font-size: 12px; font-variant-numeric: tabular-nums; }
.jio-order-detail__hero-amount { display: grid; flex: 0 0 auto; gap: 3px; justify-items: end; text-align: right; }
.jio-order-detail__hero-amount strong { color: var(--detail-ink); font-size: 21px; font-weight: 750; line-height: 1.1; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.jio-order-detail__hero-amount span { color: var(--detail-muted); font-size: 11px; }
.jio-order-detail__group { display: grid; gap: 10px; }
.jio-order-detail__group-title { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--detail-ink); font-size: 13px; font-weight: 700; line-height: 1.3; }
.jio-order-detail__group-title::before { content: ""; width: 3px; height: 13px; border-radius: 2px; background: var(--detail-primary); }
.jio-order-detail__product { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--detail-line); border-radius: 12px; background: var(--detail-surface); }
.jio-order-detail__thumb { width: 54px; height: 54px; border-radius: 10px; object-fit: cover; }
.jio-order-detail__thumb--empty { display: grid; place-items: center; background: var(--detail-surface-2); color: var(--detail-primary); font-size: 19px; }
.jio-order-detail__product-copy { display: grid; gap: 6px; min-width: 0; }
.jio-order-detail__product-title { display: -webkit-box; overflow: hidden; color: var(--detail-ink); font-size: 14px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.jio-order-detail__product-meta { display: inline-flex; justify-self: start; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--detail-primary) 9%, var(--detail-surface-2)); color: var(--detail-primary); font-size: 11px; font-weight: 650; line-height: 1.5; }
.jio-order-detail__list { display: grid; margin: 0; overflow: hidden; border: 1px solid var(--detail-line); border-radius: 12px; background: var(--detail-surface); }
.jio-order-detail__list > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 12px; padding: 11px 13px; border-bottom: 1px solid var(--detail-line); }
.jio-order-detail__list > div:last-child { border-bottom: 0; }
.jio-order-detail__list dt { color: var(--detail-muted); font-size: 12.5px; }
.jio-order-detail__list dd { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; margin: 0; color: var(--detail-ink); font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; }
.jio-order-detail__value-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jio-order-detail__value-text.is-mono { font-family: var(--font-mono, monospace); font-size: 12.5px; letter-spacing: .01em; }
.jio-order-detail__copy { display: inline-grid; flex: 0 0 auto; width: 24px; height: 24px; padding: 0; place-items: center; border: 1px solid var(--detail-line); border-radius: 7px; background: var(--detail-surface-3); color: var(--detail-muted); font-size: 11px; line-height: 1; cursor: pointer; transition: color .15s ease, border-color .15s ease; }
.jio-order-detail__copy:hover { border-color: color-mix(in srgb, var(--detail-primary) 45%, var(--detail-line)); color: var(--detail-primary); }
.jio-order-detail__copy.is-copied { border-color: color-mix(in srgb, var(--detail-success) 45%, var(--detail-line)); color: var(--detail-success); }
.jio-order-detail__refresh-state { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 13px; border: 1px solid color-mix(in srgb, var(--detail-warning) 26%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--detail-warning) 10%, var(--detail-surface-2)); color: var(--detail-ink); font-size: 12.5px; }
.jio-order-detail__refresh-state > i { color: var(--detail-warning); font-size: 15px; }
.jio-order-detail__refresh-state p { margin: 0; }
.jio-order-detail__refresh-state button { grid-column: 2; justify-self: start; }
/* 底部操作区:按钮排布沿用主题 .but-average.modal-buts,此处仅保留吸底定位与通栏背景。
主题 modal-buts 自带 margin-top:16px,吸底场景下用更高优先级清掉,避免内容与吸底条之间出现空隙。
footer 不留垂直内边距(水平同理归零)——上下 13px 并入按钮(min-height 64 = 13+38+13),
按钮盒即整个底部区域;安全区留在 footer 底部,避免按钮文字沉入 Home 指示条。 */
.jio-order-detail-modal .jio-order-detail__actions { position: sticky; bottom: 0; z-index: 2; margin: 0 -18px; padding: 0 0 env(safe-area-inset-bottom, 0); border-top: 1px solid var(--detail-line); background: var(--detail-surface); }
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts { margin-top: 0; gap: 0; }
/* 底部按钮观感与弹窗家族对齐(modal-runtime 同款平铺规则):去胶囊底色/边框/圆角,
文字色区分主次;仅「关闭」单按钮时占满整行。
分界线与悬停底色需排在 .c-blue 规则之后:主按钮同受 border:0 影响与主色覆盖,同名优先级看先后。 */
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but { min-height: 64px; border: 0; border-radius: 0; box-shadow: none; background: transparent; color: var(--modal-muted, #777); font-weight: 600; cursor: pointer; --this-bg: transparent; --this-border: transparent; --this-shadow: none; }
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but.c-blue { background: transparent; border: 0; color: var(--modal-primary, #f04494); }
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but + .but { border-left: 1px solid var(--detail-line); }
/* 悬停反馈与弹窗家族同款:整块区域浅灰底 + 文字转主色(次级升主色、主按钮略加深)。 */
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but:hover { opacity: 1; background: color-mix(in srgb, var(--modal-ink, #333333) 5%, transparent); color: var(--modal-primary, #f04494); }
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but.c-blue:hover { color: color-mix(in srgb, var(--modal-primary, #f04494) 82%, #000000); }
.jio-order-detail-modal .jio-order-detail__actions.but-average.modal-buts > .but:only-child { grid-column: 1 / -1; }
/* Orders extensions */
.jio-orders-page__extra-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.jio-orders-page__extra-link { padding: 6px 12px; border-radius: 999px; background: var(--surface-2, #f3f4f6); color: inherit; text-decoration: none; font-size: 13px; }
.jio-orders-page__extra-link.is-active { background: var(--focus-color, var(--color-primary)); color: #fff; }
.jio-coupon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.jio-coupon-card { padding: 12px; border: 1px dashed var(--focus-color, #2f6df6); border-radius: 10px; background: color-mix(in srgb, var(--focus-color, #2f6df6) 6%, #fff); }
.jio-coupon-card__value { color: var(--focus-color, #2f6df6); font-size: 20px; font-weight: 700; }
.jio-coupon-card__code { margin: 6px 0; font-family: ui-monospace, monospace; }
.jio-coupon-card__meta { margin-bottom: 4px; color: var(--muted-2-color, #888); font-size: 12px; }
.jio-orders-page__field { margin-bottom: 12px; }
.jio-orders-page__input, .jio-orders-page__select, .jio-orders-page__textarea { box-sizing: border-box; width: 100%; padding: 8px 10px; border: 1px solid var(--main-border-color, #ddd); border-radius: 6px; }
@media (max-width: 767px) { .uc-orders-panel__head { grid-template-columns: 1fr; gap: 17px; }.jio-orders-page__stats { max-width: none; }.jio-orders-page__search { flex-wrap: wrap; }.jio-orders-page__search input { min-width: 150px; }.jio-orders-page__search .btn-primary { margin-left: auto; }.jio-orders-page__filter-toggle { margin-left: auto; }.jio-orders-page__card-rail time { width: 100%; margin-left: 0; order: 3; }.jio-orders-page__card-main { grid-template-columns: 48px minmax(0, 1fr); }.jio-orders-page__card-img, .jio-orders-page__card-art { width: 48px; height: 48px; }.jio-orders-page__card-value { grid-column: 2; text-align: left; }.jio-orders-page__card-actions > :not(.jio-orders-page__countdown) { flex: 1 1 auto; }.jio-orders-page__countdown { width: 100%; }}
html.dark .jio-orders-page__stat, html.dark .jio-orders-page__card { background: var(--surface-1, #1a1d24); } html.dark .jio-orders-page__card-rail, html.dark .jio-orders-page__filter-panel { background: var(--surface-2, #12151b); }