import { addOrder, updateOrder } from '@/api/crm/order' import { addOrderItem, updateOrderItem } from '@/api/crm/orderItem' import { ORDER_STATUS, PRE_ORDER_STATUS, ORDER_TYPE } from './enum' import { addOrderOperationTrace } from '@/api/crm/orderOperationTrace' // 需要被记录的操作 const ORDER_ACTIONS = { createPreOrder: 'createPreOrder', updatePreOrder: 'updatePreOrder', approvePreOrder: 'approvePreOrder', createOrder: 'createOrder', updateOrder: 'updateOrder', createOrderdetail: 'createOrderdetail', updateOrderdetail: 'updateOrderdetail', } const actions = { // 创建预订单 createPreOrder: { type: 'createPreOrder', name: '创建预订单', description: '创建一个预订单', // 预订单的相关信息 async handler(payload) { const { data: order } = await addOrder({ ...payload, }) if (order.orderId) { addOrderOperationTrace({ orderId: order.orderId, operationType: ORDER_ACTIONS.createPreOrder, newStatus: order.orderId, operationContent: JSON.stringify(payload) }) } return order } }, // 修改预订单 updatePreOrder: { type: 'updatePreOrder', name: '修改预订单', description: '修改预订单的相关信息', // 预订单的相关信息 async handler(payload) { await updateOrder({ ...payload, }) addOrderOperationTrace({ orderId: payload.orderId, operationType: ORDER_ACTIONS.updatePreOrder, newStatus: payload.orderId, operationContent: JSON.stringify(payload) }) return payload } }, // 创建订单明细 createOrderdetail: { type: 'createOrderdetail', name: '创建订单明细', description: '创建订单明细的相关信息', // 订单明细的相关信息 async handler(payload) { const { data: orderItem } = await addOrderItem({ ...payload, }) if (orderItem.orderItemId) { addOrderOperationTrace({ orderId: orderItem.orderId, operationType: ORDER_ACTIONS.createOrderdetail, newStatus: payload.orderItemId, operationContent: JSON.stringify(payload) }) } return orderItem } }, // 修改订单明细 updateOrderdetail: { type: 'updateOrderdetail', name: '修改订单明细', description: '修改订单明细的相关信息', // 订单明细的相关信息 async handler(payload) { await updateOrderItem({ ...payload, }) addOrderOperationTrace({ orderId: payload.orderId, operationType: ORDER_ACTIONS.updateOrderdetail, newStatus: payload.orderItemId, operationContent: JSON.stringify(payload) }) return payload } }, // 预订单审批为正式订单 approvePreOrder: { type: 'approvePreOrder', name: '审批预订单', description: '审批预订单为正式订单', // 预订单的相关信息 async handler(payload) { await updateOrder({ ...payload, }) if (payload.orderId) { addOrderOperationTrace({ orderId: payload.orderId, operationType: ORDER_ACTIONS.approvePreOrder, newStatus: payload.orderId, operationContent: JSON.stringify(payload) }) } return payload } }, // 直接创建正式订单 createOrder: { type: 'createOrder', name: '创建正式订单', description: '直接创建一个正式订单', // 正式订单的相关信息 async handler(payload) { const { data: order } = await addOrder({ ...payload, }) if (order.orderId) { addOrderOperationTrace({ orderId: order.orderId, operationType: ORDER_ACTIONS.createOrder, newStatus: order.orderId, operationContent: JSON.stringify(payload) }) } return order } }, // 正式订单修改 updateOrder: { type: 'updateOrder', name: '修改正式订单', description: '修改正式订单的相关信息', // 正式订单的相关信息 async handler(payload) { await updateOrder({ ...payload, }) if (payload.orderId) { addOrderOperationTrace({ orderId: payload.orderId, operationType: ORDER_ACTIONS.updateOrder, newStatus: payload.orderId, operationContent: JSON.stringify(payload) }) } return payload } } } export { ORDER_ACTIONS, actions, }