feat:寄卖增加对接客服,db脚本迁移修复

This commit is contained in:
2026-10-27 13:56:08 +08:00
parent 622bd779dd
commit a53321ef30
16 changed files with 43 additions and 225 deletions
@@ -33,8 +33,6 @@ const { Text } = Typography
type ContactForm = {
name: string
phone?: string
wechat?: string
note?: string
sortOrder?: number
enabled?: boolean
@@ -98,8 +96,6 @@ export default function AdminConsignmentContactsPage() {
setEditingContact(record)
form.setFieldsValue({
name: record.name,
phone: record.phone,
wechat: record.wechat,
note: record.note,
sortOrder: record.sortOrder,
enabled: record.enabled,
@@ -113,8 +109,6 @@ export default function AdminConsignmentContactsPage() {
setSubmitting(true)
const payload = {
name: values.name,
phone: values.phone || '',
wechat: values.wechat || '',
note: values.note || '',
sortOrder: Number(values.sortOrder || 0),
enabled: values.enabled !== false,
@@ -174,30 +168,17 @@ export default function AdminConsignmentContactsPage() {
const columns: TableColumnsType<ConsignmentContactSupporter> = [
{
title: '姓名',
key: 'name',
dataIndex: 'name',
width: 160,
render: (_, record) => (
<Space direction="vertical" size={2}>
<Text strong>{record.name}</Text>
{record.note ? (
<Text type="secondary" style={{ fontSize: 12 }}>
{record.note}
</Text>
) : null}
</Space>
),
render: (value: string) => <Text strong>{value}</Text>,
},
{
title: '手机号',
dataIndex: 'phone',
width: 150,
render: (value: string) => value || <Text type="secondary">-</Text>,
},
{
title: '微信号',
dataIndex: 'wechat',
width: 160,
render: (value: string) => value || <Text type="secondary">-</Text>,
title: '备注',
dataIndex: 'note',
width: 240,
ellipsis: true,
render: (value: string) =>
value ? <Text style={{ fontSize: 12 }}>{value}</Text> : <Text type="secondary">-</Text>,
},
{
title: '排序',
@@ -265,7 +246,7 @@ export default function AdminConsignmentContactsPage() {
<Input
allowClear
prefix={<SearchOutlined />}
placeholder="搜索姓名 / 手机 / 微信 / 备注"
placeholder="搜索姓名 / 备注"
value={keywordInput}
onChange={(event) => setKeywordInput(event.target.value)}
style={{ width: 280 }}
@@ -313,14 +294,6 @@ export default function AdminConsignmentContactsPage() {
>
<Input placeholder="如:小张" maxLength={60} />
</Form.Item>
<Space size={12} style={{ width: '100%' }} align="start">
<Form.Item name="phone" label="手机号" style={{ width: 240 }}>
<Input placeholder="选填" maxLength={30} />
</Form.Item>
<Form.Item name="wechat" label="微信号" style={{ width: 240 }}>
<Input placeholder="选填" maxLength={60} />
</Form.Item>
</Space>
<Form.Item name="note" label="备注">
<Input.TextArea rows={2} placeholder="如:负责苏尔南寄卖 / 白班" maxLength={200} />
</Form.Item>
@@ -182,9 +182,7 @@ export default function ConsignmentInventoryPanel() {
queryFn: () => fetchAdminConsignmentContacts(),
})
const contactSupporterOptions = (contactsQuery.data?.data.items || []).map((item) => ({
label: `${item.name}${item.enabled ? '' : '(已禁用)'}${
item.phone ? ` · ${item.phone}` : item.wechat ? ` · ${item.wechat}` : ''
}`,
label: `${item.name}${item.enabled ? '' : '(已禁用)'}`,
value: item.id,
}))
@@ -475,17 +473,11 @@ export default function ConsignmentInventoryPanel() {
title: '对接客服',
key: 'contactSupporter',
width: 150,
render: (_, record) => {
const contact = formatConsignmentContactSupporter(record)
return (
<div style={{ fontSize: 12 }}>
<div style={{ fontWeight: 600 }}>{contact.name || contact.text}</div>
{contact.contact ? (
<div style={{ color: '#8c8c8c', marginTop: 2 }}>{contact.contact}</div>
) : null}
</div>
)
},
render: (_, record) => (
<div style={{ fontSize: 12, fontWeight: 600 }}>
{formatConsignmentContactSupporter(record).text}
</div>
),
},
{
title: '凭证',
@@ -1132,21 +1124,7 @@ export default function ConsignmentInventoryPanel() {
)}
</Descriptions.Item>
<Descriptions.Item label="对接客服">
{(() => {
const contact = formatConsignmentContactSupporter(viewingItem)
return contact.name ? (
<Space direction="vertical" size={2}>
<Text strong>{contact.name}</Text>
{contact.contact ? (
<Text type="secondary" style={{ fontSize: 12 }}>
{contact.contact}
</Text>
) : null}
</Space>
) : (
<Text type="secondary">未指定</Text>
)
})()}
<Text>{formatConsignmentContactSupporter(viewingItem).text}</Text>
</Descriptions.Item>
<Descriptions.Item label="履约押金要求">
{viewingItem.depositAmountFen ? (
@@ -276,17 +276,11 @@ export default function ConsignmentSubmissionsPanel() {
title: '对接客服',
key: 'contactSupporter',
width: 150,
render: (_, record) => {
const contact = formatConsignmentContactSupporter(record)
return (
<div style={{ fontSize: 12 }}>
<div style={{ fontWeight: 600 }}>{contact.name || contact.text}</div>
{contact.contact ? (
<div style={{ color: '#8c8c8c', marginTop: 2 }}>{contact.contact}</div>
) : null}
</div>
)
},
render: (_, record) => (
<div style={{ fontSize: 12, fontWeight: 600 }}>
{formatConsignmentContactSupporter(record).text}
</div>
),
},
{
title: '提报凭证(游戏主页截图)',
@@ -874,21 +868,7 @@ export default function ConsignmentSubmissionsPanel() {
)}
</Descriptions.Item>
<Descriptions.Item label="对接客服">
{(() => {
const contact = formatConsignmentContactSupporter(viewingSubmission)
return contact.name ? (
<Space direction="vertical" size={2}>
<Text strong>{contact.name}</Text>
{contact.contact ? (
<Text type="secondary" style={{ fontSize: 12 }}>
{contact.contact}
</Text>
) : null}
</Space>
) : (
<Text type="secondary">未指定</Text>
)
})()}
<Text>{formatConsignmentContactSupporter(viewingSubmission).text}</Text>
</Descriptions.Item>
<Descriptions.Item label="履约押金要求">
{viewingSubmission.depositAmountFen ? (