import { mockCreditLimitList, mockSettlementList, mockWriteOffList } from '@/mock/finance' import { WriteOffStatus } from '@/typings/mall' import type { SettlementStatus, WriteOff } from '@/typings/mall' /** * 金融相关 API */ // 获取信用额度 export function getCreditLimit() { return new Promise((resolve) => { setTimeout(() => { resolve({ code: 0, data: mockCreditLimitList, }) }, 300) }) } // 获取应结账款列表 export function getSettlementList(params?: { status?: SettlementStatus merchantId?: string }) { return new Promise((resolve) => { setTimeout(() => { let list = [...mockSettlementList] // 筛选 if (params?.status) { // 如果查询未结,则包含逾期状态 if (params.status === 'unsettled') { list = list.filter(item => item.status === 'unsettled' || item.status === 'overdue') } else { list = list.filter(item => item.status === params.status) } } if (params?.merchantId) { list = list.filter(item => item.merchantId === params.merchantId) } resolve({ code: 0, data: list, }) }, 300) }) } // 获取到期订单 export function getDueOrders() { return new Promise((resolve) => { setTimeout(() => { const now = new Date() // 7天后 const sevenDaysLater = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000) // 筛选7天内到期的未结账款(包括已逾期) const list = mockSettlementList.filter((item) => { // 只关注未结和逾期状态 if (item.status !== 'unsettled' && item.status !== 'overdue') return false const dueDate = new Date(item.dueDate) // 只要到期时间在7天内(包括过去的时间,即已逾期),都应该提醒 return dueDate <= sevenDaysLater }) resolve({ code: 0, data: list, }) }, 300) }) } // 提交消账申请 export function submitWriteOff(data: { settlementId: string amount: number proof: string[] remark: string }) { return new Promise((resolve) => { setTimeout(() => { const newWriteOff: WriteOff = { id: `writeoff_${Date.now()}`, settlementId: data.settlementId, amount: data.amount, proof: data.proof, remark: data.remark, submitTime: new Date().toISOString(), status: WriteOffStatus.PENDING, } // 模拟添加到列表 mockWriteOffList.push(newWriteOff) resolve({ code: 0, data: newWriteOff, message: '提交成功,等待审核', }) }, 500) }) } // 获取消账记录 export function getWriteOffList(settlementId?: string) { return new Promise((resolve) => { setTimeout(() => { let list = [...mockWriteOffList] if (settlementId) { list = list.filter(item => item.settlementId === settlementId) } resolve({ code: 0, data: list, }) }, 300) }) }