diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java index 6a550c6e..02089041 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java @@ -98,7 +98,7 @@ public class CrmOrderOperationTraceServiceImpl implements ICrmOrderOperationTrac lqw.eq(StringUtils.isNotBlank(bo.getOperator()), CrmOrderOperationTrace::getOperator, bo.getOperator()); lqw.eq(bo.getOperationTime() != null, CrmOrderOperationTrace::getOperationTime, bo.getOperationTime()); //根据创建时间正序排序 - lqw.orderByAsc(CrmOrderOperationTrace::getCreateTime); + lqw.orderByDesc(CrmOrderOperationTrace::getCreateTime); return lqw; } diff --git a/klp-ui/src/components/KLPService/CustomerSelect/index.vue b/klp-ui/src/components/KLPService/CustomerSelect/index.vue index ed1dafc8..df170a1e 100644 --- a/klp-ui/src/components/KLPService/CustomerSelect/index.vue +++ b/klp-ui/src/components/KLPService/CustomerSelect/index.vue @@ -5,7 +5,7 @@ diff --git a/klp-ui/src/views/crm/components/OrderRecord.vue b/klp-ui/src/views/crm/components/OrderRecord.vue index e69de29b..6e39c860 100644 --- a/klp-ui/src/views/crm/components/OrderRecord.vue +++ b/klp-ui/src/views/crm/components/OrderRecord.vue @@ -0,0 +1,193 @@ + + + + 订单操作记录 + + + + + + + + 操作类型:{{ getActionName(item.operationType) }} + + + 操作人:{{ item.createByName || '无' }} + + + 操作时间:{{ item.createTime || '无' }} + + + + + + + + 暂无操作记录 + + + + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/crm/components/ReceiveTable.vue b/klp-ui/src/views/crm/components/ReceiveTable.vue new file mode 100644 index 00000000..c24cfbb3 --- /dev/null +++ b/klp-ui/src/views/crm/components/ReceiveTable.vue @@ -0,0 +1,402 @@ + + + + + {{ order.orderAmount }} + {{ receivedAmount }} + {{ unreceivedAmount }} + + + + + + 新增 + + + 修改 + + + 删除 + + + 导出 + + + + + + + + + + + {{ parseTime(scope.row.dueDate, '{y}-{m}-{d}') }} + 过期 + 还剩{{ parseInt((new Date(scope.row.dueDate) - new Date()) / (1000 * 60 * 60 * 24)) }}天 + + + + + + + + + + 修改 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-ui/src/views/crm/js/actions.js b/klp-ui/src/views/crm/js/actions.js index 383124b6..9e262a9e 100644 --- a/klp-ui/src/views/crm/js/actions.js +++ b/klp-ui/src/views/crm/js/actions.js @@ -1,4 +1,19 @@ +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: { @@ -6,21 +21,150 @@ const actions = { name: '创建预订单', description: '创建一个预订单', // 预订单的相关信息 - async handler(payload, ) { - + 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, } \ No newline at end of file diff --git a/klp-ui/src/views/crm/order/index.vue b/klp-ui/src/views/crm/order/index.vue index f1c6c707..e9660caf 100644 --- a/klp-ui/src/views/crm/order/index.vue +++ b/klp-ui/src/views/crm/order/index.vue @@ -65,23 +65,25 @@ + + + - + - + --> @@ -126,16 +128,22 @@ import KLPList from '@/components/KLPUI/KLPList/index.vue' import { listOrder, addOrder, delOrder, updateOrder } from "@/api/crm/order"; import { listCustomer } from "@/api/crm/customer"; -import { ORDER_STATUS, ORDER_TYPE } from '../js/enum' +import { ORDER_STATUS, ORDER_TYPE, ORDER_ACTIONS, actions } from '../js/enum' import OrderDetail from '../components/OrderDetail.vue'; import OrderEdit from '../components/OrderEdit.vue'; +import OrderObjection from '../components/OrderObjection.vue'; +import ReceiveTable from '../components/ReceiveTable.vue'; +import OrderRecord from '../components/OrderRecord.vue'; export default { name: 'OrderPage', components: { KLPList, OrderDetail, - OrderEdit + OrderEdit, + OrderObjection, + ReceiveTable, + OrderRecord }, dicts: ['customer_level', 'customer_industry'], data() { @@ -262,7 +270,7 @@ export default { /** 提交按钮 */ async submitForm() { if (this.form.orderId) { - updateOrder(this.form).then(_ => { + actions[ORDER_ACTIONS.updateOrder].handler(this.form).then(_ => { this.$modal.msgSuccess("修改成功"); this.open = false; this.getList(); @@ -274,7 +282,7 @@ export default { this.$refs["form"].validate(valid => { if (valid) { this.buttonLoading = true; - addOrder(this.form).then(_ => { + actions[ORDER_ACTIONS.createOrder].handler(this.form).then(_ => { this.$modal.msgSuccess("新增成功"); this.open = false; this.getList(); diff --git a/klp-ui/src/views/crm/preOrder/index.vue b/klp-ui/src/views/crm/preOrder/index.vue index 45f13d50..56822cc1 100644 --- a/klp-ui/src/views/crm/preOrder/index.vue +++ b/klp-ui/src/views/crm/preOrder/index.vue @@ -168,6 +168,7 @@ import { listOrder, getOrder, delOrder, addOrder, updateOrder } from "@/api/crm/ import { listCustomer } from "@/api/crm/customer"; import OrderDetailList from '@/views/crm/components/OrderDetail.vue' import { ORDER_TYPE } from "../js/enum"; +import { ORDER_ACTIONS, actions } from "../js/actions"; export default { name: "Order", @@ -259,7 +260,7 @@ export default { cancelButtonText: "取消", type: "warning" }).then(() => { - updateOrder({ + actions[ORDER_ACTIONS.approvePreOrder].handler({ ...row, orderType: ORDER_TYPE['正式订单'], }).then(response => { @@ -335,7 +336,7 @@ export default { if (valid) { this.buttonLoading = true; if (this.form.orderId != null) { - updateOrder(this.form).then(response => { + actions[ORDER_ACTIONS.updatePreOrder].handler(this.form).then(() => { this.$modal.msgSuccess("修改成功"); this.open = false; this.getList(); @@ -343,7 +344,7 @@ export default { this.buttonLoading = false; }); } else { - addOrder(this.form).then(response => { + actions[ORDER_ACTIONS.createPreOrder].handler(this.form).then(() => { this.$modal.msgSuccess("新增成功"); this.open = false; this.getList(); diff --git a/klp-ui/src/views/lines/data.js b/klp-ui/src/views/lines/data.js new file mode 100644 index 00000000..74aef5c7 --- /dev/null +++ b/klp-ui/src/views/lines/data.js @@ -0,0 +1,10 @@ +const liens = [ + { + name: '镀锌线', + url: '140.143.206.120:18081' + }, + { + name: '酸连轧', + url: '' + } +] \ No newline at end of file diff --git a/klp-ui/src/views/lines/index.vue b/klp-ui/src/views/lines/index.vue index 317002c8..79470c37 100644 --- a/klp-ui/src/views/lines/index.vue +++ b/klp-ui/src/views/lines/index.vue @@ -18,46 +18,45 @@