资料字段支持下拉选项与买家截图,大厅按 VIP 等级延迟可见

资料字段:
- CollectField 支持 type(text/select) 与 options,规则字段语法 key:名称#选项1,选项2
- 默认字段改为游戏编号/游戏昵称/系统(安卓,苹果)/区服(QQ区,微信区),旧默认模板字段自动替换为新版
- 采集页与管理端补资料支持单选下拉与买家主页截图上传(新增公开上传接口)
- 管理端工单详情展示买家截图

VIP 延迟可见:
- 等级权限新增 visibleDelaySeconds(默认 VIP1=20s~VIP5=0s,可后台配置)
- 大厅按等级延迟过滤新发布工单,页面提示延迟规则
This commit is contained in:
yml2213
2026-08-01 18:14:37 +08:00
parent 70e64155bc
commit 2412df8b54
17 changed files with 252 additions and 31 deletions
@@ -107,6 +107,7 @@ export default function LevelsPanel() {
depositFreeAmount: level.depositFreeAmount,
maxActiveOrders: level.maxActiveOrders,
upgradeThreshold: level.upgradeThreshold,
visibleDelaySeconds: level.visibleDelaySeconds,
})
}
@@ -121,6 +122,7 @@ export default function LevelsPanel() {
depositFreeAmount?: number
maxActiveOrders?: number
upgradeThreshold?: number
visibleDelaySeconds?: number
}) {
try {
await saveAdminWorkerLevel(values)
@@ -140,6 +142,7 @@ export default function LevelsPanel() {
depositFreeAmount: level.depositFreeAmount,
maxActiveOrders: level.maxActiveOrders,
upgradeThreshold: level.upgradeThreshold,
visibleDelaySeconds: level.visibleDelaySeconds,
status: level.status === 'active' ? 'disabled' : 'active',
})
message.success(level.status === 'active' ? '等级已停用' : '等级已启用')
@@ -174,6 +177,12 @@ export default function LevelsPanel() {
},
{ title: '最大同时接单', dataIndex: 'maxActiveOrders' },
{ title: '升级所需累计完成', dataIndex: 'upgradeThreshold' },
{
title: '可见延迟',
width: 110,
render: (_, row) =>
row.visibleDelaySeconds > 0 ? `${row.visibleDelaySeconds} 秒` : '立即',
},
{
title: '状态',
width: 110,
@@ -217,6 +226,7 @@ export default function LevelsPanel() {
depositFreeAmount: 0,
maxActiveOrders: 1,
upgradeThreshold: 0,
visibleDelaySeconds: 20,
}}
onFinish={saveLevel}
>
@@ -247,6 +257,13 @@ export default function LevelsPanel() {
>
<InputNumber min={0} max={100000} />
</Form.Item>
<Form.Item
label="大厅可见延迟(秒)"
name="visibleDelaySeconds"
tooltip="发布到大厅后该等级打手延迟可见秒数,默认 VIP1=20 / VIP2=15 / VIP3=10 / VIP4=5 / VIP5=0,填 -1 使用默认"
>
<InputNumber min={-1} max={3600} />
</Form.Item>
<Form.Item>
<Space>
<Button type="primary" htmlType="submit">