feat(consignment): 规格口径定案——互通通配 + 后台全量/发布端按物品展示

业务定案:
- 操作后台全量:系统 苹果/安卓/通用,区服 微信区/QQ区/互通;提报审核与
  库存编辑的系统/区服从自由文本改为受控下拉(单一来源 utils/consignment-spec.ts)
- 打手端发布按物品类型展示:苏尔南系统二选一(必须区分端),区服唯一
  「互通」选项且默认选中;后续其他品类在共享常量按品类加条目
- 匹配引擎通配符对称化:区服通配=互通(通用/全区/不限归一化为别名),
  系统通配=通用(双端/全端同理);订单侧写通配同样放行,只增不减匹配面;
  差异描述不把通配对当冲突
- 提报白名单校验(API 层):系统只收 苹果/安卓,区服只收 微信/QQ/互通,
  旧页面缓存或直调接口绕不过
- 物品名拼接:区服为互通时不拼入(对买家无信息量),前后端同口径

后端 481(+互通双向匹配/通配不算差异/真冲突仍排除/白名单校验)、
前端 54(+选项口径/表单引用/默认值)测试全绿;typecheck/lint/format/check:sql 通过
docs/寄卖系统优化方案.md 记录批次 W
This commit is contained in:
yml2213
2026-09-17 13:01:59 +08:00
parent b666a9c951
commit f8101c1730
10 changed files with 265 additions and 21 deletions
@@ -41,6 +41,7 @@ import type { ConsignmentInventory, GiftEvidenceReviewStatus } from '@/types/con
import { fetchAdminSession } from '@/services/admin/auth'
import { resolveAdminPermission } from '@/utils/admin-auth'
import { describeGiftEvidence, resolveGiftEvidenceBadge } from '@/utils/consignment-evidence'
import { CONSIGNMENT_SYSTEM_OPTIONS, CONSIGNMENT_ZONE_OPTIONS } from '@/utils/consignment-spec'
import { formatDateTime } from '@/utils/date-time'
const { Text } = Typography
@@ -56,6 +57,7 @@ const ZONE_OPTIONS = [
{ label: '全部区服', value: '' },
{ label: '微信区', value: '微信区' },
{ label: 'QQ区', value: 'QQ区' },
{ label: '互通', value: '互通' },
]
const SERIES_OPTIONS = [
@@ -842,12 +844,13 @@ export default function ConsignmentInventoryPanel() {
<Row gutter={16}>
<Col span={5}>
<Form.Item name="system" label="系统">
<Input />
{/* 后台全量选项:系统 苹果/安卓/通用,区服 微信/QQ/互通(互通=QQ/微信都能收) */}
<Select options={[...CONSIGNMENT_SYSTEM_OPTIONS]} />
</Form.Item>
</Col>
<Col span={5}>
<Form.Item name="serverZone" label="区服">
<Input />
<Select options={[...CONSIGNMENT_ZONE_OPTIONS]} />
</Form.Item>
</Col>
<Col span={5}>
@@ -40,6 +40,7 @@ import { fetchAdminWorkerUsers } from '@/services/admin/worker-platform'
import type { ConsignmentSubmission, GiftEvidenceReviewStatus } from '@/types/consignment'
import { resolveAdminPermission } from '@/utils/admin-auth'
import { describeGiftEvidence, resolveGiftEvidenceBadge } from '@/utils/consignment-evidence'
import { CONSIGNMENT_SYSTEM_OPTIONS, CONSIGNMENT_ZONE_OPTIONS } from '@/utils/consignment-spec'
import { formatDateTime } from '@/utils/date-time'
const { Text } = Typography
@@ -512,12 +513,13 @@ export default function ConsignmentSubmissionsPanel() {
<Row gutter={16}>
<Col span={5}>
<Form.Item name="system" label="系统">
<Input />
{/* 审核可修正规格:与打手端发布同一套选项(苹果/安卓;微信/QQ/互通) */}
<Select options={[...CONSIGNMENT_SYSTEM_OPTIONS]} />
</Form.Item>
</Col>
<Col span={5}>
<Form.Item name="serverZone" label="区服">
<Input />
<Select options={[...CONSIGNMENT_ZONE_OPTIONS]} />
</Form.Item>
</Col>
<Col span={5}>