feat(钢卷管理): 添加长度字段支持及相关功能
refactor(订单管理): 重构订单状态显示及操作记录功能 fix(权限控制): 移除导出订单明细的权限校验 perf(钢卷操作): 使用策略模式重构钢卷操作逻辑
This commit is contained in:
@@ -1,116 +1,169 @@
|
||||
import request from '@/utils/request'
|
||||
import { addOrder, updateOrder } from '@/api/crm/order'
|
||||
import { addOrderItem, updateOrderItem } from '@/api/crm/orderItem'
|
||||
import { addOrderOperationTrace } from '@/api/crm/orderOperationTrace'
|
||||
|
||||
/**
|
||||
* 查询销售报表汇总数据
|
||||
*/
|
||||
export function getSummary(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/summary',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
// 需要被记录的操作
|
||||
const ORDER_ACTIONS = {
|
||||
createPreOrder: 'createPreOrder',
|
||||
updatePreOrder: 'updatePreOrder',
|
||||
approvePreOrder: 'approvePreOrder',
|
||||
createOrder: 'createOrder',
|
||||
updateOrder: 'updateOrder',
|
||||
createOrderdetail: 'createOrderdetail',
|
||||
updateOrderdetail: 'updateOrderdetail',
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询销售报表订单明细
|
||||
*/
|
||||
export function getOrderDetails(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/orderDetails',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
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 function getFullSalesReport(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/fullReport',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询销售员统计数据
|
||||
*/
|
||||
export function getSalesmanStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/salesmanStats',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询客户等级统计数据
|
||||
*/
|
||||
export function getCustomerLevelStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/customerLevelStats',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询行业统计数据
|
||||
*/
|
||||
export function getIndustryStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/industryStats',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出销售报表订单明细
|
||||
*/
|
||||
export function exportOrderDetails(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/exportOrderDetails',
|
||||
method: 'post',
|
||||
data: query,
|
||||
// 导出文件需指定响应类型(可选,根据项目ExcelUtil配置调整)
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出销售员统计数据
|
||||
*/
|
||||
export function exportSalesmanStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/exportSalesmanStats',
|
||||
method: 'post',
|
||||
data: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出客户等级统计数据
|
||||
*/
|
||||
export function exportCustomerLevelStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/exportCustomerLevelStats',
|
||||
method: 'post',
|
||||
data: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出行业统计数据
|
||||
*/
|
||||
export function exportIndustryStats(query) {
|
||||
return request({
|
||||
url: '/crm/salesReport/exportIndustryStats',
|
||||
method: 'post',
|
||||
data: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
export {
|
||||
ORDER_ACTIONS,
|
||||
actions,
|
||||
}
|
||||
@@ -76,14 +76,15 @@
|
||||
<span>{{ parseTime(scope.row.deliveryDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="preOrderStatus">
|
||||
<el-table-column label="状态" align="center" prop="orderType">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.preOrderStatus === 0">待审核</span>
|
||||
<span v-else-if="scope.row.preOrderStatus === 1">已审核</span>
|
||||
<span v-else-if="scope.row.preOrderStatus === 2">已取消</span>
|
||||
<span v-if="scope.row.orderType === 0" class="text-primary">未审核</span>
|
||||
<span v-else-if="scope.row.orderType === 1">已审核</span>
|
||||
<span v-else>未知状态</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="销售员" align="center" prop="createBy" />
|
||||
<el-table-column label="销售员" align="center" prop="createTime" />
|
||||
<!-- <el-table-column label="审核人" align="center" prop="auditUser" />
|
||||
<el-table-column label="审核时间" align="center" prop="auditTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
@@ -202,7 +203,7 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderCode: undefined,
|
||||
orderType: ORDER_TYPE['预订单'],
|
||||
// orderType: ORDER_TYPE['预订单'],
|
||||
customerId: undefined,
|
||||
orderAmount: undefined,
|
||||
salesman: undefined,
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
type="success"
|
||||
icon="el-icon-download"
|
||||
@click="exportOrderDetails"
|
||||
v-hasPermi="['crm:salesReport:export']"
|
||||
>
|
||||
导出订单明细
|
||||
</el-button>
|
||||
|
||||
Reference in New Issue
Block a user