84 lines
2.9 KiB
TypeScript
84 lines
2.9 KiB
TypeScript
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<AxiosResponse<ApiResponse<{
|
||
total: number
|
||
rows: Order[]
|
||
}>>> => {
|
||
// 创建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<AxiosResponse<ApiResponse<OrderDetailResponse>>> => {
|
||
return http.get(`/project/order/h5/approve/${id}`)
|
||
}
|
||
|
||
/**
|
||
* 提交审批结果
|
||
*/
|
||
export const submitApproval = (params: any): Promise<AxiosResponse<ApiResponse<any>>> => {
|
||
// 创建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<AxiosResponse<ApiResponse<{
|
||
total: number
|
||
rows: CompletedApprovalItem[]
|
||
}>>> => {
|
||
// 创建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)
|
||
} |