Files
shop-toy/src/api/finance.ts
FlowerWater 0eb8ac9181 页面提交
2025-11-29 17:20:17 +08:00

126 lines
3.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
})
}