feat(widgets): plate moderator apply modal + JS submit

Replace bare apply link with modal form posting to forum moderator
REST; empty/admin states and modal CSS.
This commit is contained in:
2026-07-21 14:36:00 +08:00
parent 4a13153ee6
commit 0e8c9d12c7
3 changed files with 207 additions and 24 deletions
+35
View File
@@ -2565,3 +2565,38 @@ a.main-color > .icon-cover-card:hover,
z-index: 2;
}
.avatar-img.link-img img.aksrt-lazy { object-fit: cover; }
/* batch49-51 residual */
.aksrt-mod-apply-modal[hidden] { display: none !important; }
.aksrt-mod-apply-modal {
position: fixed; inset: 0; z-index: 10050;
display: flex; align-items: center; justify-content: center;
}
.aksrt-mod-apply-modal__backdrop {
position: absolute; inset: 0; background: rgba(15, 23, 42, .45);
}
.aksrt-mod-apply-modal__dialog {
position: relative; z-index: 1; width: min(420px, calc(100vw - 32px));
max-height: min(80vh, 560px); overflow: auto;
padding: 16px; border-radius: 12px; background: var(--surface-1, #fff);
box-shadow: 0 18px 50px rgba(0,0,0,.2);
}
.aksrt-mod-apply-modal__dialog textarea {
width: 100%; min-height: 96px; border: 1px solid var(--color-line, #e5e7eb);
border-radius: 8px; padding: 8px 10px; resize: vertical;
}
.aksrt-mod-apply-modal__dialog .js-aksrt-action-feedback.is-error { color: #ef4444; }
.aksrt-mod-apply-modal__dialog .js-aksrt-action-feedback.is-success { color: #10b981; }
.aksrt-mod-apply-modal__dialog .js-aksrt-action-feedback.is-loading { color: #64748b; }
body.aksrt-mod-apply-open { overflow: hidden; }
.aksrt-product-widget__item--list { gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--color-line, rgba(0,0,0,.06)); }
.aksrt-product-widget__item--list:last-child { border-bottom: 0; }
.aksrt-product-widget__thumb.list {
flex: 0 0 80px; width: 80px; height: 80px; border-radius: 10px; overflow: hidden;
background: var(--surface-2, #f3f4f6); display: block;
}
.aksrt-product-widget__thumb.list img { width: 100%; height: 100%; object-fit: cover; display: block; }
.text-ellipsis-2 {
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}