取消vip门槛

This commit is contained in:
zhx 2026-07-04 02:17:51 +08:00
parent cf60f9ce2c
commit ef90b9ed27
4 changed files with 7 additions and 35 deletions

View File

@ -108,9 +108,9 @@ function normalizeLevel(item: RawLevel): VipLevelDto {
durationMs: numberValue(item.durationMs ?? item.duration_ms),
rewardResourceGroupId: numberValue(item.rewardResourceGroupId ?? item.reward_resource_group_id),
sortOrder: numberValue(item.sortOrder ?? item.sort_order),
rechargeGateRequired: Boolean(item.rechargeGateRequired ?? item.recharge_gate_required ?? level >= 6),
requiredRechargeCoinAmount: numberValue(item.requiredRechargeCoinAmount ?? item.required_recharge_coin_amount),
userRechargeCoinAmount: numberValue(item.userRechargeCoinAmount ?? item.user_recharge_coin_amount),
rechargeGateRequired: false,
requiredRechargeCoinAmount: 0,
userRechargeCoinAmount: 0,
purchaseLockedReason: stringValue(item.purchaseLockedReason ?? item.purchase_locked_reason),
createdAtMs: numberValue(item.createdAtMs ?? item.created_at_ms),
updatedAtMs: numberValue(item.updatedAtMs ?? item.updated_at_ms),

View File

@ -174,7 +174,7 @@ function defaultLevels() {
durationMs: defaultDurationMs,
rewardResourceGroupId: 0,
requiredRechargeCoinAmount: 0,
rechargeGateRequired: level >= 6,
rechargeGateRequired: false,
sortOrder: level * 10,
};
});
@ -216,7 +216,6 @@ function payloadFromForm(form) {
const priceCoin = Number(level.priceCoin || 0);
const durationDays = Number(level.durationDays || 0);
const rewardResourceGroupId = Number(level.rewardResourceGroupId || 0);
const requiredRechargeCoinAmount = level.level >= 6 ? Number(level.requiredRechargeCoinAmount || 0) : 0;
const sortOrder = Number(level.sortOrder || level.level * 10);
const status = level.status === "active" ? "active" : "disabled";
if (!String(level.name || "").trim()) {
@ -234,9 +233,6 @@ function payloadFromForm(form) {
if (status === "active" && rewardResourceGroupId <= 0) {
throw new Error(`VIP${level.level} 启用时必须选择奖励资源组`);
}
if (status === "active" && level.level >= 6 && requiredRechargeCoinAmount <= 0) {
throw new Error(`VIP${level.level} 启用时必须配置累计充值门槛`);
}
return {
level: Number(level.level),
name: String(level.name || "").trim(),
@ -244,7 +240,7 @@ function payloadFromForm(form) {
priceCoin,
durationMs: durationDays * 86400000,
rewardResourceGroupId,
requiredRechargeCoinAmount,
requiredRechargeCoinAmount: 0,
sortOrder,
};
});

View File

@ -28,9 +28,7 @@ export function VipConfigPage() {
<div className={styles.summaryItems}>
<SummaryItem label="总等级">{levels.length || 10}</SummaryItem>
<SummaryItem label="启用等级">{page.activeCount}</SummaryItem>
<SummaryItem label="高阶门槛">
{levels.filter((level) => level.level >= 6 && level.status === "active").length}
</SummaryItem>
<SummaryItem label="购买门槛"></SummaryItem>
</div>
<div className={styles.summaryActions}>
<Button
@ -202,22 +200,6 @@ function VipConfigDrawer({ page }) {
page.updateLevel(level.level, { rewardResourceGroupId: value })
}
/>
{level.level >= 6 ? (
<TextField
disabled={disabled}
inputProps={{ min: 0, step: 1 }}
label="累计充值门槛"
type="number"
value={level.requiredRechargeCoinAmount}
onChange={(event) =>
page.updateLevel(level.level, {
requiredRechargeCoinAmount: event.target.value,
})
}
/>
) : (
<TextField disabled label="购买门槛" value="直接购买" />
)}
<TextField
disabled={disabled}
inputProps={{ min: 0, step: 1 }}
@ -283,8 +265,7 @@ function vipColumns(resourceLabels) {
{
key: "gate",
label: "购买门槛",
render: (item) =>
item.level >= 6 ? `${formatNumber(item.requiredRechargeCoinAmount)} 累充金币` : "直接购买",
render: () => "直接购买",
width: "minmax(180px, 0.8fr)",
},
{

View File

@ -86,11 +86,6 @@
font-weight: 700;
}
.directLabel {
color: var(--color-text-muted);
font-size: 12px;
}
@media (max-width: 760px) {
.summaryPanel {
align-items: stretch;