新增验收报酬待解冻配置并修复待解冻结算漏入队与重复释放流水

This commit is contained in:
yml2213
2026-08-22 13:38:17 +08:00
parent 7b2a5321b9
commit 7f6a291628
17 changed files with 173 additions and 115 deletions
@@ -395,7 +395,7 @@ const AfterSalesPanel = forwardRef<AfterSalesPanelHandle>(function AfterSalesPan
label="追缴金额"
name="recoveryAmount"
rules={[{ required: true, message: '请输入追缴金额' }]}
extra="系统依次扣减该责任打手的本单待解冻金、可用余额;不足部分转为欠款,并从后续验收报酬自动抵扣。"
extra="系统依次扣减该责任打手的本单待解冻金、可用余额;不足部分转为欠款,并从后续验收报酬自动抵扣。"
>
<InputNumber min={0} precision={2} addonAfter="元" className="full-width" />
</Form.Item>
@@ -41,6 +41,7 @@ import { formatAdminDateTime } from '@/utils/admin-time'
import { asRecord, formatMoney } from './shared'
type FinanceConfigFormValues = {
depositUnfreezeDays?: number
rewardUnfreezeEnabled?: boolean
recharge?: {
enabled?: boolean
channelName?: string
@@ -158,6 +159,7 @@ export default function FinancePanel() {
try {
await saveAdminWorkerFinanceConfig({
depositUnfreezeDays: Number(values.depositUnfreezeDays ?? 3),
rewardUnfreezeEnabled: values.rewardUnfreezeEnabled !== false,
recharge: {
enabled: values.recharge?.enabled !== false,
channelName: String(values.recharge?.channelName || '').trim(),
@@ -401,12 +403,20 @@ export default function FinancePanel() {
<Form.Item
label="押金解冻天数"
name="depositUnfreezeDays"
tooltip="有押金的工单验收通过后,押金进入待解冻,N 天后自动转入可用余额;0 表示验收通过立即释放"
tooltip="验收通过后,押金进入待解冻,N 天后自动转入可用余额;0 表示押金立即释放"
>
<InputNumber min={0} max={30} step={1} addonAfter="天" />
</Form.Item>
<Form.Item
label="报酬待解冻"
name="rewardUnfreezeEnabled"
valuePropName="checked"
tooltip="开启后,验收报酬和押金一起进入待解冻;期间可由售后问题单优先扣减"
>
<Switch />
</Form.Item>
<Typography.Text type="secondary">
"接单工单"
"接单工单""售后问题单"
</Typography.Text>
</Card>
@@ -636,6 +646,7 @@ export default function FinancePanel() {
function mapFinanceConfigToFormValues(config?: WorkerFinanceConfig): FinanceConfigFormValues {
return {
depositUnfreezeDays: Number(config?.depositUnfreezeDays ?? 3),
rewardUnfreezeEnabled: config?.rewardUnfreezeEnabled !== false,
recharge: {
enabled: config?.recharge.enabled !== false,
channelName: config?.recharge.channelName || '',