Implement batch candidate account requests and approval-based number eal

This commit is contained in:
2026-07-20 09:02:30 +08:00 Unverified
parent 45d48c8ffa
commit 4fa001cece
7 changed files with 549 additions and 164 deletions
+68
View File
@@ -14,6 +14,74 @@
--radius: 16px;
}
/* School account batch issuance */
.batch-quota-panel { overflow: hidden; padding: 0; }
.batch-quota-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; padding: 30px 32px 24px; color: #fff; background: linear-gradient(120deg, #102944, #173f60 72%, #276e82); }
.batch-quota-head span, .ledger-title span { display: block; margin-bottom: 8px; color: #77d5d3; font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.batch-quota-head h2, .ledger-title h2 { margin: 0; font-family: "STKaiti", "KaiTi", serif; font-size: 27px; }
.batch-quota-head p { max-width: 650px; margin: 8px 0 0; color: #c5d7e4; line-height: 1.7; }
.batch-quota-head > div:last-child { min-width: 118px; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.2); }
.batch-quota-head > div:last-child small, .batch-quota-head > div:last-child span { margin: 0; color: #b9d0dd; font-size: 12px; letter-spacing: 0; }
.batch-quota-head > div:last-child strong { display: block; margin: 3px 0; color: #fff; font-family: "STKaiti", "KaiTi", serif; font-size: 36px; }
.quota-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; padding: 1px; background: #dfe7ec; }
.quota-grid > label { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 88px; padding: 18px 28px; background: #fff; }
.quota-grid > label > span:first-child strong, .quota-grid > label > span:first-child small { display: block; }
.quota-grid > label > span:first-child strong { color: #16334c; font-size: 16px; }
.quota-grid > label > span:first-child small { margin-top: 4px; color: #81909c; }
.quota-input { display: flex; align-items: center; overflow: hidden; border: 1px solid #ccd8df; border-radius: 7px; background: #f7fafb; }
.quota-input input { width: 82px; padding: 10px 8px 10px 14px; border: 0; outline: 0; color: #14334e; background: transparent; font: 700 18px "Microsoft YaHei UI", sans-serif; text-align: right; }
.quota-input em { padding: 0 13px 0 4px; color: #6f818e; font-size: 12px; font-style: normal; }
.batch-submit-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 28px; border-top: 1px solid #e3eaee; background: #f7fafb; }
.batch-submit-bar p { margin: 0; }
.batch-submit-bar p strong, .batch-submit-bar p span { display: block; }
.batch-submit-bar p strong { color: #23445c; }
.batch-submit-bar p span { margin-top: 3px; color: #7b8c98; font-size: 12px; }
.account-batch-ledger { margin-top: 34px; }
.ledger-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 16px; }
.ledger-title span { color: #2b7b83; }
.ledger-title p { max-width: 440px; margin: 0; color: #778895; font-size: 13px; text-align: right; }
.account-batch-card { margin-bottom: 18px; padding: 0; overflow: hidden; border-left: 4px solid #d7a744; }
.account-batch-card.approved { border-left-color: #2e8c74; }
.account-batch-card.rejected { border-left-color: #b85d58; }
.account-batch-card > header { display: flex; justify-content: space-between; gap: 20px; padding: 24px 28px 18px; }
.account-batch-card > header span.mono { color: #82929d; font-size: 11px; }
.account-batch-card > header h2 { margin: 5px 0; color: #173750; font-family: "STKaiti", "KaiTi", serif; font-size: 21px; }
.account-batch-card > header p { margin: 0; color: #7c8c97; font-size: 12px; }
.batch-quota-summary { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 28px 18px; }
.batch-quota-summary span { display: inline-flex; gap: 10px; padding: 8px 11px; border: 1px solid #dce5ea; border-radius: 5px; background: #f7fafb; color: #29485e; }
.batch-quota-summary em { color: #28757c; font-style: normal; font-weight: 800; }
.batch-flow-line { display: grid; grid-template-columns: 110px 1fr auto; gap: 14px; align-items: center; padding: 14px 28px; border-top: 1px solid #e6ecef; background: #f8fafb; }
.batch-flow-line > span { color: #7d8d99; font-size: 12px; }
.batch-flow-line > strong { color: #203f56; }
.batch-flow-line > small { color: #657b89; }
.batch-review-note { display: flex; gap: 18px; padding: 14px 28px; border-top: 1px solid #e6ecef; color: #617783; font-size: 13px; }
.batch-review-note strong { color: #2e4d62; }
.credential-sheet { border-top: 1px solid #d9e5e6; background: #f1f7f6; }
.credential-sheet > header { display: flex; align-items: center; justify-content: space-between; padding: 18px 28px; }
.credential-sheet > header strong, .credential-sheet > header span { display: block; }
.credential-sheet > header strong { color: #1e594f; font-family: "STKaiti", "KaiTi", serif; font-size: 18px; }
.credential-sheet > header span { margin-top: 3px; color: #718985; font-size: 12px; }
.credential-sheet table { background: #fff; }
.credential-password { color: #8b5222; font-weight: 800; }
.flow-batch-snapshot { margin-bottom: 20px; padding: 20px; border: 1px solid #dbe7e8; border-radius: 9px; background: #f3f8f8; }
.flow-batch-snapshot header { display: flex; align-items: flex-end; justify-content: space-between; }
.flow-batch-snapshot header span { color: #378286; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.flow-batch-snapshot h3 { margin: 4px 0 0; color: #183e53; }
.flow-batch-snapshot header b { color: #2f7778; }
.flow-batch-snapshot > div { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 10px; }
.flow-batch-snapshot > div span { padding: 8px 11px; border: 1px solid #d2e1e2; border-radius: 5px; background: #fff; }
.flow-batch-snapshot > div strong, .flow-batch-snapshot > div small { display: block; }
.flow-batch-snapshot > div small, .flow-batch-snapshot > p { color: #70858b; font-size: 12px; }
.flow-batch-snapshot > p { margin: 0; }
@media (max-width: 760px) {
.batch-quota-head, .batch-submit-bar, .ledger-title { align-items: stretch; flex-direction: column; }
.batch-quota-head > div:last-child { padding: 16px 0 0; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
.quota-grid { grid-template-columns: 1fr; }
.batch-flow-line { grid-template-columns: 1fr; gap: 4px; }
.ledger-title p { text-align: left; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", sans-serif; -webkit-font-smoothing: antialiased; }