import { http } from "@/typing/http"; import request from "@/utils/request"; import { FVM_HOST, ORDER3_HOST } from "@/utils/host"; type PromiseResp = http.PromiseResp; export interface GetSaleTaskApiReq { taskDate?: number; shopName?: string; } export interface GetSaleTaskApiRes { id: number; totalTaskCount: number; shopTaskList: ShopTaskItem[]; year: number; month: number; canModified: boolean; // 是否可以编辑 revoke: boolean; // 是否可以撤销 newEnergyTaskCount: number; fuelVehicleTaskCount: number; clueDealTaskCount: number; approvalNumber: string; tackCarTaskCount: number; testDriveTaskCount: number; seriesTaskCount: number; vehicleGrossProfitTask: number; totalGrossProfitTask: number; } export interface SeriesTaskItem { brandId: number; brandName: string; seriesId: number; seriesName: string; newEnergy: boolean; taskCount: number; id?: number; } export interface StaffTaskItem { id?: number; staffId: number; staffName: string; taskCount: number; clueDealTaskCount: number; regularMonth: number; addedValueTask: number; seriesTaskList: SeriesTaskItem[]; newEnergyTaskCount: number; fuelVehicleTaskCount: number; tackCarTaskCount: number; testDriveTaskCount: number; seriesTaskCount: number; vehicleGrossProfitTask: number; } export interface ShopTaskItem { id?: number; shopId: number; shopName: string; taskCount: number; clueDealTaskCount: number; clueDealTaskRate: number; staffTaskList: StaffTaskItem[]; addedValueTask: number; seriesTaskList: SeriesTaskItem[]; newEnergyTaskCount: number; fuelVehicleTaskCount: number; tackCarTaskCount: number; testDriveTaskCount: number; seriesTaskCount: number; vehicleGrossProfitTask: number; taskId?: number; orderTaskApplyId?: number; orderShopTaskId?: number; } /** 月度零售任务列表 */ export function getSaleTaskApi( params: GetSaleTaskApiReq ): PromiseResp { return request.get(`${ORDER3_HOST}/erp/sales/task/detail`, { params }); } export interface GetShopSaleTaskReq { shopId: number; taskDate: number; } /** 门店零售任务详情 */ export function getShopSaleTask( params: GetShopSaleTaskReq ): PromiseResp { return request.get(`${ORDER3_HOST}/erp/sales/task/detail/one`, { params }); } /** 保存门店零售任务 */ export function saveShopSaleTask(params: ShopTaskItem): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/manual/assign`, params); } /** 撤销审批零售任务 */ export function cancelSaleTask(params: { id: number }): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/cancel/approve`, params, { contentType: "form-urlencoded", }); } /** 提交审批零售任务 */ export function submitSaleTask(params: { id: number }): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/submit`, params); } export interface AutoAssignItem { shopId: number; taskCount: number; newEnergyTaskCount: number; fuelVehicleTaskCount: number; tackCarTaskCount: number; } export interface AutoAssignSaleTaskReq { id: number; assignTask: boolean; shopTaskList: AutoAssignItem[]; } /** 自动分配零售任务 */ export function autoAssignSaleTask( params: AutoAssignSaleTaskReq ): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/auto/assign`, params); } interface BatchSetSaleTaskItem { shopIdList: number[]; taskAims: number; } export interface BatchSetSaleTaskReq { grossProfitTaskList?: BatchSetSaleTaskItem[]; tackCarTaskList?: BatchSetSaleTaskItem[]; testDriveTaskList?: BatchSetSaleTaskItem[]; assignTask: boolean; orderTaskApplyId: number; } /** 批量设置零售任务 */ export function batchSetSaleTask( params: BatchSetSaleTaskReq ): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/batch/shop/set`, params); } /** 自动分配单个门店的零售任务 */ export function autoAssignOneShop( params: ShopTaskItem ): PromiseResp { return request.post(`${ORDER3_HOST}/erp/sales/task/auto/assign/shop`, params); } export interface BrandItem { id: number; initial: string; name: string; thumbnail: string; } /** 门店下面品牌列表 */ export function getBrands(params: { shopId: number; }): PromiseResp { return request.get(`${FVM_HOST}/erp/putaway/vehicle/support/brand`, { params, }); } export interface SeriesItem { id: number; name: string; newEnergy: boolean; thumbnail: string; } /** 门店某品牌下车系列表 */ export function getSeries(params: { shopId: number; brandId: number; }): PromiseResp { return request.get(`${FVM_HOST}/erp/putaway/vehicle/support/series`, { params, }); } export interface PreviewTaskReq { shopId?: number; firstManageId?: number; secondManageId?: number; thirdManageId?: number; taskId?: number; orderTaskApprovalType?: number; id?: number; token?: string; keywords?: string; } export interface TaskListItem { id: number; dataId: number; dataName: string; beforeTaskCount: number; afterTaskCount: number; beforeClueDealTaskCount: number; afterClueDealTaskCount: number; beforeNewEnergyTaskCount: number; afterNewEnergyTaskCount: number; beforeFuelVehicleTaskCount: number; afterFuelVehicleTaskCount: number; beforeTackCarTaskCount: number; afterTackCarTaskCount: number; beforeTestDriveTaskCount: number; afterTestDriveTaskCount: number; taskCountModified: boolean; clueDealTaskCountModified: boolean; newEnergyTaskCountModified: boolean; fuelVehicleTaskCountModified: boolean; tackCarTaskCountModified: boolean; testDriveTaskCountModified: boolean; seriesTaskCount: number; newEnergy: boolean; } export interface PreviewTaskRes { year: number; month: number; remark: string; attachmentList: string[]; taskList: TaskListItem[]; } /** 预览任务 */ export function previewTask( params: PreviewTaskReq ): PromiseResp { return request.get(`${ORDER3_HOST}/erp/sales/task/approve/info`, { params, }); }