diff --git a/src/api/erp/sale-plan/index.ts b/src/api/erp/sale-plan/index.ts new file mode 100644 index 0000000..613117b --- /dev/null +++ b/src/api/erp/sale-plan/index.ts @@ -0,0 +1,81 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 销售计划明细 */ +export interface SalePlanItem { + id?: number + planId?: number + productId?: number + productName?: string + productUnitName?: string + planCount?: number + productPrice?: number + totalPrice?: number + completedAmount?: number + progress?: number + remark?: string +} + +/** 销售计划 */ +export interface SalePlan { + id?: number + no?: string + name?: string + customerId?: number + customerName?: string + targetAmount?: number + startTime?: number | string + endTime?: number | string + status?: number + approverId?: number + approverName?: string + remark?: string + items?: SalePlanItem[] + completedAmount?: number + progress?: number + completionStatus?: number + creatorName?: string + createTime?: number | string +} + +/** 获取销售计划分页 */ +export function getSalePlanPage(params: PageParam & { + no?: string + name?: string + customerId?: number + status?: number + creator?: number + planTime?: string[] +}) { + return http.get>('/erp/sale-plan/page', params) +} + +/** 获取销售计划详情 */ +export function getSalePlan(id: number) { + return http.get(`/erp/sale-plan/get?id=${id}`) +} + +/** 创建销售计划 */ +export function createSalePlan(data: SalePlan) { + return http.post('/erp/sale-plan/create', data) +} + +/** 更新销售计划 */ +export function updateSalePlan(data: SalePlan) { + return http.put('/erp/sale-plan/update', data) +} + +/** 更新销售计划状态 */ +export function updateSalePlanStatus(id: number, status: number) { + return http.put('/erp/sale-plan/update-status', undefined, { id, status }) +} + +/** 删除销售计划 */ +export function deleteSalePlan(ids: number[]) { + return http.delete('/erp/sale-plan/delete', undefined, { ids: ids.join(',') }) +} + +/** 获取销售计划简列表 */ +export function getSalePlanSimpleList() { + return http.get('/erp/sale-plan/simple-list') +} diff --git a/src/pages-erp/sale-plan/detail/index.vue b/src/pages-erp/sale-plan/detail/index.vue new file mode 100644 index 0000000..8c74436 --- /dev/null +++ b/src/pages-erp/sale-plan/detail/index.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/src/pages-erp/sale-plan/form/index.vue b/src/pages-erp/sale-plan/form/index.vue new file mode 100644 index 0000000..c6fd546 --- /dev/null +++ b/src/pages-erp/sale-plan/form/index.vue @@ -0,0 +1,512 @@ + + + + + diff --git a/src/pages-erp/sale-plan/index.vue b/src/pages-erp/sale-plan/index.vue new file mode 100644 index 0000000..4649c5d --- /dev/null +++ b/src/pages-erp/sale-plan/index.vue @@ -0,0 +1,446 @@ + + + + + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index b285db0..82633f2 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -108,6 +108,14 @@ const menuGroupsData: MenuGroup[] = [ iconColor: '#1890ff', permission: 'erp:sale-order:query', }, + { + key: 'salePlan', + name: '销售计划', + icon: 'chart', + url: '/pages-erp/sale-plan/index', + iconColor: '#13c2c2', + permission: 'erp:sale-plan:query', + }, { key: 'saleOut', name: '销售出库',