feat(payment): 通用卡密兑换弹窗并修正核销订单实付与订单名称

- /user/balance/ 余额卡片入口改为通用「卡密兑换」弹窗:请求不带类型,
  后端按卡密自动识别余额/会员/积分;卡号输入恒展示且选填
- 后台「余额充值 → 卡密充值」语义更新为「卡密兑换」,开关更名
  「启用卡密兑换功能」(设置键不变),双源 schema 同步并重建 SPA
- 删除死代码:credits-vip.php 死文件、credits-balance.php 内联积分
  兑换块、/pay/card-pass/options 路由与 rest_options、labels 数组、
  asset_points_card_description/password_only 死字段及内联块专属 CSS
- 卡密核销订单实付恒 0:create_redeem_order 源头写 0,UserOrders
  对 card_pass 订单视图层归零覆盖历史行(不迁移数据)
- 订单名称按 note.meta 生成:卡密兑换-余额充值X / 卡密兑换-积分充值X /
  购入[会员档位名]X天(永久)
- 新增契约 card-pass-universal-redeem.test.cjs,收紧 user-assets-layout
  契约(禁 .uc-card-pass 根类回潮)
This commit is contained in:
kate522 committed 2026-09-17 19:04:47 +08:00
1 parent ba8d4b1b90
commit 3481620ed0
14 files changed
+213 -415

No files matched your search

+3 -40
View File
@@ -33,16 +33,12 @@
.uc-assets-row--dual > .uc-assets-col:first-child > .uc-asset-card {
grid-column: 1;
}
.uc-assets-row--dual > .uc-assets-col:last-child > .uc-asset-card,
.uc-assets-row--dual > .uc-assets-col:last-child > .uc-card-pass {
.uc-assets-row--dual > .uc-assets-col:last-child > .uc-asset-card {
grid-column: 2;
}
.uc-assets-row--dual > .uc-assets-col > .uc-asset-card {
grid-row: 1;
}
.uc-assets-row--dual > .uc-assets-col > .uc-card-pass {
grid-row: 2;
}
.uc-assets-col {
min-width: 0;
display: flex;
@@ -59,8 +55,7 @@
grid-column: auto;
grid-row: auto;
}
.uc-assets-row--dual > .uc-assets-col > .uc-asset-card,
.uc-assets-row--dual > .uc-assets-col > .uc-card-pass {
.uc-assets-row--dual > .uc-assets-col > .uc-asset-card {
grid-column: auto;
grid-row: auto;
}
@@ -87,15 +82,6 @@
flex-wrap: wrap;
row-gap: 10px;
}
/* Card-pass under a col must not look like a second stacked card */
.uc-assets-col > .uc-card-pass {
margin: 0;
padding: 12px 14px;
border-radius: 8px;
border: 1px dashed var(--color-line, #e5e7eb);
background: var(--muted-bg-color, #f8fafc);
box-shadow: none;
}
.uc-asset-card__head {
margin-bottom: 8px;
}
@@ -830,30 +816,7 @@ body.uc-modal-open {
border-color: var(--color-line, #e5e7eb);
}
/* Card-pass redeem (balance / VIP) */
.uc-card-pass {
margin: 16px 0 0;
padding: 14px 16px;
border: 1px solid var(--color-line, #e5e7eb);
border-radius: 12px;
background: #fff;
}
.uc-card-pass__title {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
font-weight: 700;
color: #111827;
margin: 0 0 8px;
}
.uc-card-pass__title i { color: #2563eb; }
.uc-card-pass__desc {
margin: 0 0 10px;
font-size: 12px;
color: #6b7280;
line-height: 1.5;
}
/* Card-pass redeem modal inputs (universal modal in credits-wallet.php) */
.uc-card-pass__input {
display: block;
width: 100%;