import { useEffect, useState } from 'react' import { Card, Table, Typography, Space, Select, Tag, message } from 'antd' import { listRules, listSites, updateRuleStatus, getMe, type Rule, type Site } from '../api' import { useMember } from '../MemberContext' const MODE_LABELS: Record = { two_party_distributor_receive: '两方-分销收号', two_party_platform_receive: '两方-分销卖出', three_party: '三方', } export default function Rules() { const member = useMember() const [sites, setSites] = useState([]) const [siteID, setSiteID] = useState(member?.site_id) const [rules, setRules] = useState([]) const [loading, setLoading] = useState(false) async function load(site?: number) { setLoading(true) try { setRules(await listRules(site)) } catch { message.error('规则加载失败') } finally { setLoading(false) } } useEffect(() => { async function init() { let currentMember = member if (!currentMember) { try { currentMember = await getMe() } catch { // ignore } } const activeSiteID = currentMember?.site_id if (activeSiteID) { setSiteID(activeSiteID) void load(activeSiteID) } if (currentMember?.is_superadmin) { try { const rows = await listSites() setSites(rows) if (!activeSiteID) { void load(undefined) } } catch { // ignore } } } void init() }, [member]) async function toggleStatus(rule: Rule) { const next = rule.status === 'active' ? 'disabled' : 'active' try { await updateRuleStatus(rule.id, next) message.success(`规则已${next === 'active' ? '启用' : '停用'}`) void load(siteID) } catch { message.error('状态更新失败') } } return ( 比例与税费规则 {member?.is_superadmin && sites.length > 1 && (