fix(distribution-admin): add missing useMember and getMe imports in Orders.tsx and clean remaining site selectors
This commit is contained in:
@@ -19,10 +19,12 @@ import {
|
||||
listSites,
|
||||
fetchReceivedListings,
|
||||
updateReceivedListingStatus,
|
||||
getMe,
|
||||
type DistributionOrder,
|
||||
type ReceivedListing,
|
||||
type Site,
|
||||
} from '../api'
|
||||
import { useMember } from '../MemberContext'
|
||||
|
||||
const ORDER_STATUSES = [
|
||||
'pending_payment',
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Card, Table, Typography, Space, Select, Tag, InputNumber, Button, message } from 'antd'
|
||||
import { bindPaymentChannel, listPaymentChannels, listSites, unbindPaymentChannel, type PaymentChannel, type Site } from '../api'
|
||||
import { bindPaymentChannel, listPaymentChannels, listSites, unbindPaymentChannel, getMe, type PaymentChannel, type Site } from '../api'
|
||||
import { useMember } from '../MemberContext'
|
||||
|
||||
export default function Payments() {
|
||||
const member = useMember()
|
||||
const [sites, setSites] = useState<Site[]>([])
|
||||
const [siteID, setSiteID] = useState<number>()
|
||||
const [siteID, setSiteID] = useState<number | undefined>(member?.site_id)
|
||||
const [channels, setChannels] = useState<PaymentChannel[]>([])
|
||||
const [configID, setConfigID] = useState<number | null>(null)
|
||||
const [priority, setPriority] = useState<number>(0)
|
||||
@@ -22,16 +24,36 @@ export default function Payments() {
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
listSites()
|
||||
.then((items) => {
|
||||
setSites(items)
|
||||
if (items.length > 0) {
|
||||
setSiteID(items[0].id)
|
||||
void load(items[0].id)
|
||||
async function init() {
|
||||
let currentMember = member
|
||||
if (!currentMember) {
|
||||
try {
|
||||
currentMember = await getMe()
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
})
|
||||
.catch(() => message.error('站点加载失败'))
|
||||
}, [])
|
||||
}
|
||||
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 && rows.length > 0) {
|
||||
setSiteID(rows[0].id)
|
||||
void load(rows[0].id)
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
void init()
|
||||
}, [member])
|
||||
|
||||
async function handleBind() {
|
||||
if (!siteID || !configID) {
|
||||
@@ -63,16 +85,18 @@ export default function Payments() {
|
||||
<Space direction="vertical" className="page">
|
||||
<Typography.Title level={3}>支付通道</Typography.Title>
|
||||
<Space>
|
||||
<Select
|
||||
placeholder="分销网站"
|
||||
style={{ width: 200 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: site.site_name, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void load(value)
|
||||
}}
|
||||
/>
|
||||
{member?.is_superadmin && sites.length > 1 && (
|
||||
<Select
|
||||
placeholder="分销网站"
|
||||
style={{ width: 200 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: site.site_name, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void load(value)
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
<InputNumber min={1} placeholder="商户配置 ID" value={configID ?? undefined} onChange={(v) => setConfigID(v ?? null)} />
|
||||
<InputNumber min={0} placeholder="优先级" value={priority} onChange={(v) => setPriority(v ?? 0)} />
|
||||
<Button type="primary" onClick={handleBind}>绑定</Button>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Card, Table, Typography, Space, Select, Tag, message } from 'antd'
|
||||
import { listRules, listSites, updateRuleStatus, type Rule, type Site } from '../api'
|
||||
import { listRules, listSites, updateRuleStatus, getMe, type Rule, type Site } from '../api'
|
||||
import { useMember } from '../MemberContext'
|
||||
|
||||
const MODE_LABELS: Record<string, string> = {
|
||||
two_party_distributor_receive: '两方-分销收号',
|
||||
@@ -9,8 +10,9 @@ const MODE_LABELS: Record<string, string> = {
|
||||
}
|
||||
|
||||
export default function Rules() {
|
||||
const member = useMember()
|
||||
const [sites, setSites] = useState<Site[]>([])
|
||||
const [siteID, setSiteID] = useState<number | undefined>(undefined)
|
||||
const [siteID, setSiteID] = useState<number | undefined>(member?.site_id)
|
||||
const [rules, setRules] = useState<Rule[]>([])
|
||||
const [loading, setLoading] = useState(false)
|
||||
|
||||
@@ -26,18 +28,35 @@ export default function Rules() {
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
listSites()
|
||||
.then((rows) => {
|
||||
setSites(rows)
|
||||
if (rows.length === 1) {
|
||||
setSiteID(rows[0].id)
|
||||
void load(rows[0].id)
|
||||
} else {
|
||||
void load(undefined)
|
||||
async function init() {
|
||||
let currentMember = member
|
||||
if (!currentMember) {
|
||||
try {
|
||||
currentMember = await getMe()
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
})
|
||||
.catch(() => message.error('站点加载失败'))
|
||||
}, [])
|
||||
}
|
||||
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'
|
||||
@@ -54,17 +73,19 @@ export default function Rules() {
|
||||
<Space direction="vertical" className="page">
|
||||
<Typography.Title level={3}>比例与税费规则</Typography.Title>
|
||||
<Space>
|
||||
<Select
|
||||
allowClear
|
||||
placeholder="分销网站"
|
||||
style={{ width: 200 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: site.site_name, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void load(value)
|
||||
}}
|
||||
/>
|
||||
{member?.is_superadmin && sites.length > 1 && (
|
||||
<Select
|
||||
allowClear
|
||||
placeholder="分销网站"
|
||||
style={{ width: 200 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: site.site_name, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void load(value)
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</Space>
|
||||
<Card>
|
||||
<Table
|
||||
|
||||
@@ -24,13 +24,16 @@ import {
|
||||
import {
|
||||
listSites,
|
||||
updateSiteBranding,
|
||||
getMe,
|
||||
type Site,
|
||||
type SiteBrandingPayload,
|
||||
} from '../api'
|
||||
import { useMember } from '../MemberContext'
|
||||
|
||||
export default function SiteSettings() {
|
||||
const member = useMember()
|
||||
const [sites, setSites] = useState<Site[]>([])
|
||||
const [siteID, setSiteID] = useState<number>()
|
||||
const [siteID, setSiteID] = useState<number | undefined>(member?.site_id)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [saving, setSaving] = useState(false)
|
||||
const [currentSite, setCurrentSite] = useState<Site | null>(null)
|
||||
@@ -61,16 +64,36 @@ export default function SiteSettings() {
|
||||
}, [form])
|
||||
|
||||
useEffect(() => {
|
||||
listSites()
|
||||
.then((rows) => {
|
||||
setSites(rows)
|
||||
if (rows.length > 0) {
|
||||
setSiteID(rows[0].id)
|
||||
void loadSite(rows[0].id)
|
||||
async function init() {
|
||||
let currentMember = member
|
||||
if (!currentMember) {
|
||||
try {
|
||||
currentMember = await getMe()
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
})
|
||||
.catch(() => message.error('站点加载失败'))
|
||||
}, [loadSite])
|
||||
}
|
||||
const activeSiteID = currentMember?.site_id
|
||||
if (activeSiteID) {
|
||||
setSiteID(activeSiteID)
|
||||
void loadSite(activeSiteID)
|
||||
}
|
||||
|
||||
if (currentMember?.is_superadmin) {
|
||||
try {
|
||||
const rows = await listSites()
|
||||
setSites(rows)
|
||||
if (!activeSiteID && rows.length > 0) {
|
||||
setSiteID(rows[0].id)
|
||||
void loadSite(rows[0].id)
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
void init()
|
||||
}, [member, loadSite])
|
||||
|
||||
async function handleSave(values: SiteBrandingPayload) {
|
||||
if (!siteID) return
|
||||
@@ -127,16 +150,18 @@ export default function SiteSettings() {
|
||||
</Typography.Text>
|
||||
</div>
|
||||
<Space>
|
||||
<Select
|
||||
placeholder="分销网站"
|
||||
style={{ width: 220 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: `${site.site_name} (${site.site_code})`, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void loadSite(value)
|
||||
}}
|
||||
/>
|
||||
{member?.is_superadmin && sites.length > 1 && (
|
||||
<Select
|
||||
placeholder="分销网站"
|
||||
style={{ width: 220 }}
|
||||
value={siteID}
|
||||
options={sites.map((site) => ({ label: `${site.site_name} (${site.site_code})`, value: site.id }))}
|
||||
onChange={(value) => {
|
||||
setSiteID(value)
|
||||
void loadSite(value)
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
{currentSite?.site_code && (
|
||||
<Button
|
||||
icon={<EyeOutlined />}
|
||||
|
||||
Reference in New Issue
Block a user