支持代练中更新订单资料

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) const workOrder = await getRequiredWorkOrder(workOrderId)
if ( 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, workOrder.status as never,
) )
) { ) {
throw createHttpError('当前状态不能补充资料', { throw createHttpError('当前状态不能更新订单资料', {
statusCode: 409, statusCode: 409,
errorCode: 'work_order_material_status_invalid', errorCode: 'work_order_material_status_invalid',
}) })
@@ -765,7 +769,12 @@ export async function submitAdminWorkOrderMaterial(
source: 'admin', 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, { const updated = await updateWorkOrder(workOrder.id, {
status: nextStatus, status: nextStatus,
material_json: material, material_json: material,
@@ -775,7 +784,10 @@ export async function submitAdminWorkOrderMaterial(
workOrderId: workOrder.id, workOrderId: workOrder.id,
actorType: 'admin', actorType: 'admin',
actorId: '', actorId: '',
eventType: 'material_completed', eventType:
workOrder.status === WORK_ORDER_STATUS.IN_PROGRESS
? 'material_updated'
: 'material_completed',
fromStatus: workOrder.status, fromStatus: workOrder.status,
toStatus: nextStatus, toStatus: nextStatus,
payloadJson: JSON.stringify({ fields: submittedFields, complete }), payloadJson: JSON.stringify({ fields: submittedFields, complete }),
@@ -344,7 +344,7 @@ export default function WorkOrdersPanel() {
values.fields || {}, values.fields || {},
materialScreenshots, materialScreenshots,
), ),
'订单资料已保存', materialOrder.status === 'in_progress' ? '订单资料已更新' : '订单资料已保存',
) )
if (!succeeded) return if (!succeeded) return
setMaterialOrder(null) setMaterialOrder(null)
@@ -685,12 +685,12 @@ export default function WorkOrdersPanel() {
</Button> </Button>
) : null} ) : null}
{row.status === 'pending_material' ? ( {['pending_material', 'in_progress'].includes(row.status) ? (
<Button <Button
icon={<FormOutlined />} icon={<FormOutlined />}
onClick={() => openMaterialModal(row)} onClick={() => openMaterialModal(row)}
> >
{row.status === 'in_progress' ? '更新资料' : '补资料'}
</Button> </Button>
) : null} ) : null}
{row.status === 'unassigned' ? ( {row.status === 'unassigned' ? (
@@ -1228,7 +1228,7 @@ export default function WorkOrdersPanel() {
</Modal> </Modal>
<Modal <Modal
title="人工补充资料" title={materialOrder?.status === 'in_progress' ? '更新订单资料' : '人工补充资料'}
open={Boolean(materialOrder)} open={Boolean(materialOrder)}
onCancel={() => { onCancel={() => {
setMaterialOrder(null) setMaterialOrder(null)