import http from '@/utils/http' import type { ApiResponse, Order, OrderDetailResponse, ListParams, ApprovalParams, CompletedApprovalItem, CompletedListParams } from '@/types' import type { AxiosResponse } from 'axios' /** * 获取订单列表 */ export const getOrderList = (params: ListParams): Promise>> => { // 创建FormData对象 const formData = new FormData() // 添加参数到FormData if (params.approve) formData.append('approve', params.approve) formData.append('page', params.page.toString()) formData.append('pageSize', params.pageSize.toString()) if (params.keyword) formData.append('keyword', params.keyword) return http.post('/project/order/list', formData) } /** * 获取订单详情 */ export const getOrderDetail = (id: string | number): Promise>> => { return http.get(`/project/order/h5/approve/${id}`) } /** * 提交审批结果 */ export const submitApproval = (params: any): Promise>> => { // 创建FormData对象 const formData = new FormData() // 将所有参数添加到FormData中 Object.keys(params).forEach(key => { if (params[key] !== undefined && params[key] !== null) { // 特殊处理variables参数,它应该是一个对象 if (key === 'variables' && typeof params[key] === 'object' && params[key] !== null) { // 将variables对象的每个属性单独添加到FormData中 Object.keys(params[key]).forEach(variableKey => { if (params[key][variableKey] !== undefined && params[key][variableKey] !== null) { formData.append(`variables[${variableKey}]`, params[key][variableKey].toString()) } }) } else if (key === 'taxRateData' && Array.isArray(params[key])) { // 特殊处理taxRateData数组 params[key].forEach((item: any, index: number) => { Object.keys(item).forEach(itemKey => { if (item[itemKey] !== undefined && item[itemKey] !== null) { formData.append(`taxRateData[${index}].${itemKey}`, item[itemKey].toString()); } }); }); } else { formData.append(key, params[key].toString()) } } }) return http.post('/project/order/order/approve', formData) } /** * 获取已审批列表 */ export const getCompletedOrderList = (params: CompletedListParams): Promise>> => { // 创建FormData对象 const formData = new FormData() // 添加参数到FormData formData.append('page', params.page.toString()) formData.append('pageSize', params.pageSize.toString()) if (params.businessName) formData.append('businessName', params.businessName) if (params.processKeyList) formData.append('processKeyList', params.processKeyList) return http.post('/flow/completed/list', formData) }