feat: 接单工单金额双击编辑与资料粘贴识别

- 表格双击发单金额/押金原地编辑,自动聚焦全选,Esc 取消
- 发单金额高于用户付款金额时保存前弹确认提示(编辑弹窗同步)
- 亏损单(发单金额>付款金额)在列表中红色加粗显示,便于定位
- Mock 工单支持填写用户付款金额(留空默认同接单金额),便于本地测试
- 人工补充资料支持客服消息剪贴板粘贴自动识别填充(系统/区服/角色名称/游戏编号,区服选填有则识别)
This commit is contained in:
yml2213
2026-08-14 17:34:13 +08:00
parent 7bb3142958
commit 85fa8f11fd
3 changed files with 295 additions and 32 deletions
@@ -797,24 +797,40 @@ export async function createAdminMockWorkOrder(payload: JsonObject = {}) {
? rewardAmount
: 0
: normalizeAmountFen(payload.requiredDepositAmount, 0)
const paymentFen =
payload.paymentAmount === undefined &&
payload.paymentAmountYuan === undefined &&
payload.userPaymentAmount === undefined
? rewardAmount
: normalizeAmountFen(
payload.paymentAmount ?? payload.paymentAmountYuan ?? payload.userPaymentAmount,
rewardAmount,
)
const materialComplete = payload.materialComplete === true || payload.materialComplete === 'true'
const fields = normalizeRequirementFields(payload.fields)
const platformOrderId = String(
payload.platformOrderId || payload.orderNo || `MOCKWORK${Date.now()}`,
).trim()
const productName = String(payload.productName || '指挥官秘钥1个').trim()
const material = materialComplete
? {
collect: {
complete: true,
submittedAt: now,
fields: fields.reduce<Record<string, string>>((result, field) => {
result[field.key] = String(field.mockValue || `${field.label}测试值`)
return result
}, {}),
},
}
: {}
const material = {
...(materialComplete
? {
collect: {
complete: true,
submittedAt: now,
fields: fields.reduce<Record<string, string>>((result, field) => {
result[field.key] = String(field.mockValue || `${field.label}测试值`)
return result
}, {}),
},
}
: {}),
source: {
orderAmountFen: paymentFen,
syncSource: 'mock',
mock: true,
},
}
const workOrder = await createWorkOrder({
workOrderNo: randomId('WO'),
platformOrderId,