import AddOutlined from "@mui/icons-material/AddOutlined"; import SaveOutlined from "@mui/icons-material/SaveOutlined"; import Drawer from "@mui/material/Drawer"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; import { AdminSwitch } from "@/shared/ui/AdminSwitch.jsx"; import { Button } from "@/shared/ui/Button.jsx"; import { RewardTierEditorTable } from "@/shared/ui/RewardTierEditorTable.jsx"; import styles from "@/features/invite-activity-reward/invite-activity-reward.module.css"; const rewardTypeOptions = [ ["recharge", "累计充值"], ["valid_invite", "Valid Users"], ]; export function InviteActivityRewardConfigDrawer({ abilities, configLoading, configSaving, form, onClose, onSubmit, open, setForm, }) { const disabled = !abilities.canUpdate || configLoading || configSaving; const addTier = () => { setForm((current) => ({ ...current, tiers: [ ...(current.tiers || []), { tierId: 0, rewardType: "recharge", tierCode: `invite_reward_${Date.now()}_${(current.tiers || []).length + 1}`, tierName: "", thresholdCoinAmount: "", thresholdValidInviteCount: "", rewardCoinAmount: "", status: "active", sortOrder: String((current.tiers || []).length), }, ], })); }; const updateTier = (index, patch) => { setForm((current) => ({ ...current, tiers: (current.tiers || []).map((tier, tierIndex) => (tierIndex === index ? { ...tier, ...patch } : tier)), })); }; const removeTier = (index) => { setForm((current) => ({ ...current, tiers: (current.tiers || []).filter((_, tierIndex) => tierIndex !== index), })); }; return (

邀请活动配置

活动状态
setForm((current) => ({ ...current, enabled: event.target.checked }))} />
每邀请一人奖励
setForm((current) => ({ ...current, perInviteInviterRewardCoinAmount: event.target.value, })) } /> setForm((current) => ({ ...current, perInviteInviteeRewardCoinAmount: event.target.value, })) } />
奖励档位
( 档位 {index + 1} ), }, { key: "rewardType", label: "类型", render: (tier, index) => ( updateTier(index, { rewardType: event.target.value })} > {rewardTypeOptions.map(([value, label]) => ( {label} ))} ), }, { key: "threshold", label: "门槛", render: (tier, index) => { const isRecharge = (tier.rewardType || "recharge") === "recharge"; return ( updateTier( index, isRecharge ? { thresholdCoinAmount: event.target.value } : { thresholdValidInviteCount: event.target.value }, ) } /> ); }, }, { key: "rewardCoinAmount", label: "奖励金币", render: (tier, index) => ( updateTier(index, { rewardCoinAmount: event.target.value }) } /> ), }, { key: "status", label: "状态", render: (tier, index) => ( updateTier(index, { status: event.target.checked ? "active" : "inactive", }) } /> ), }, ]} disabled={disabled} emptyText="暂无档位" gridTemplateColumns="72px minmax(130px, 0.7fr) minmax(150px, 0.8fr) minmax(150px, 0.8fr) 120px 52px" rows={form.tiers || []} onRemoveTier={removeTier} />
); }