支持代练中更新订单资料

This commit is contained in:
yml2213
2026-08-15 15:03:08 +08:00
parent edccf03eb0
commit 87d8360e64
2 changed files with 20 additions and 8 deletions
@@ -738,11 +738,15 @@ export async function submitAdminWorkOrderMaterial(
) {
const workOrder = await getRequiredWorkOrder(workOrderId)
if (
![WORK_ORDER_STATUS.PENDING_MATERIAL, WORK_ORDER_STATUS.UNASSIGNED].includes(
![
WORK_ORDER_STATUS.PENDING_MATERIAL,
WORK_ORDER_STATUS.UNASSIGNED,
WORK_ORDER_STATUS.IN_PROGRESS,
].includes(
workOrder.status as never,
)
) {
throw createHttpError('当前状态不能补充资料', {
throw createHttpError('当前状态不能更新订单资料', {
statusCode: 409,
errorCode: 'work_order_material_status_invalid',
})
@@ -765,7 +769,12 @@ export async function submitAdminWorkOrderMaterial(
source: 'admin',
},
}
const nextStatus = complete ? WORK_ORDER_STATUS.UNASSIGNED : WORK_ORDER_STATUS.PENDING_MATERIAL
const nextStatus =
workOrder.status === WORK_ORDER_STATUS.IN_PROGRESS
? WORK_ORDER_STATUS.IN_PROGRESS
: complete
? WORK_ORDER_STATUS.UNASSIGNED
: WORK_ORDER_STATUS.PENDING_MATERIAL
const updated = await updateWorkOrder(workOrder.id, {
status: nextStatus,
material_json: material,
@@ -775,7 +784,10 @@ export async function submitAdminWorkOrderMaterial(
workOrderId: workOrder.id,
actorType: 'admin',
actorId: '',
eventType: 'material_completed',
eventType:
workOrder.status === WORK_ORDER_STATUS.IN_PROGRESS
? 'material_updated'
: 'material_completed',
fromStatus: workOrder.status,
toStatus: nextStatus,
payloadJson: JSON.stringify({ fields: submittedFields, complete }),
@@ -344,7 +344,7 @@ export default function WorkOrdersPanel() {
values.fields || {},
materialScreenshots,
),
'订单资料已保存',
materialOrder.status === 'in_progress' ? '订单资料已更新' : '订单资料已保存',
)
if (!succeeded) return
setMaterialOrder(null)
@@ -685,12 +685,12 @@ export default function WorkOrdersPanel() {
</Button>
) : null}
{row.status === 'pending_material' ? (
{['pending_material', 'in_progress'].includes(row.status) ? (
<Button
icon={<FormOutlined />}
onClick={() => openMaterialModal(row)}
>
{row.status === 'in_progress' ? '更新资料' : '补资料'}
</Button>
) : null}
{row.status === 'unassigned' ? (
@@ -1228,7 +1228,7 @@ export default function WorkOrdersPanel() {
</Modal>
<Modal
title="人工补充资料"
title={materialOrder?.status === 'in_progress' ? '更新订单资料' : '人工补充资料'}
open={Boolean(materialOrder)}
onCancel={() => {
setMaterialOrder(null)