Files
school-developer/src/api/purchase/purchasingAccept.ts
2026-02-24 10:36:05 +08:00

186 lines
3.9 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 request from "/@/utils/request"
// ========== 基础CRUD接口 ==========
/**
* 分页查询列表数据
* @param query - 查询参数对象
* @returns Promise<分页数据>
*/
export function fetchList(query?: Object) {
return request({
url: '/purchase/purchasingAccept/page',
method: 'get',
params: query
})
}
/**
* 新增数据
* @param obj - 要新增的数据对象
* @returns Promise<boolean> - 操作结果
*/
export function addObj(obj?: Object) {
return request({
url: '/purchase/purchasingAccept',
method: 'post',
data: obj
})
}
/**
* 获取详情数据
* @param obj - 查询参数对象包含ID等
* @returns Promise<数据详情>
*/
export function getObj(obj?: Object) {
return request({
url: '/purchase/purchasingAccept/details',
method: 'get',
params: obj
})
}
/**
* 批量删除数据
* @param ids - 要删除的ID数组
* @returns Promise<操作结果>
*/
export function delObjs(ids?: Object) {
return request({
url: '/purchase/purchasingAccept',
method: 'delete',
data: ids
})
}
/**
* 更新数据
* @param obj - 要更新的数据对象
* @returns Promise<操作结果>
*/
export function putObj(obj?: Object) {
return request({
url: '/purchase/purchasingAccept',
method: 'put',
data: obj
})
}
// ========== 履约验收流程接口 ==========
/**
* 第一步:保存履约验收公共配置,按分期次数自动生成批次
*/
export function saveCommonConfig(data: any) {
return request({
url: '/purchase/purchasingAccept/saveCommonConfig',
method: 'post',
data
})
}
/**
* 获取履约验收公共配置及批次列表
*/
export function getCommonConfigWithBatches(purchaseId: string) {
return request({
url: '/purchase/purchasingAccept/commonConfigWithBatches',
method: 'get',
params: { purchaseId }
})
}
/**
* 第二步:更新单个批次
*/
export function updateBatch(data: any) {
return request({
url: '/purchase/purchasingAccept/updateBatch',
method: 'put',
data
})
}
/**
* 获取验收详情(含验收内容、验收小组)
*/
export function getDetail(purchaseId: string, batch?: number) {
return request({
url: '/purchase/purchasingAccept/detail',
method: 'get',
params: { purchaseId, batch }
})
}
/**
* 是否允许填报方式(金额<30万
*/
export function canFillForm(purchaseId: string) {
return request({
url: '/purchase/purchasingAccept/canFillForm',
method: 'get',
params: { purchaseId }
})
}
/**
* 根据品目类型获取验收项配置
*/
export function getAcceptanceItems(acceptanceType: string) {
return request({
url: `/purchase/acceptanceItemConfig/listByType/${acceptanceType}`,
method: 'get'
})
}
/**
* 下载履约验收模板
*/
export function downloadPerformanceAcceptanceTemplate(purchaseId: string, batch?: number) {
return request({
url: '/purchase/purchasingAccept/export-performance-acceptance-template',
method: 'get',
params: { purchaseId, batch },
responseType: 'blob' // 重要:用于文件下载
})
}
// ========== 工具函数 ==========
/**
* 验证字段值唯一性
* @param rule - 验证规则对象
* @param value - 要验证的值
* @param callback - 验证回调函数
* @param isEdit - 是否为编辑模式
*
* @example
* // 在表单验证规则中使用
* fieldName: [
* {
* validator: (rule, value, callback) => {
* validateExist(rule, value, callback, form.id !== '');
* },
* trigger: 'blur',
* },
* ]
*/
export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
// 编辑模式下跳过验证
if (isEdit) {
return callback();
}
// 查询是否存在相同值
getObj({ [rule.field]: value }).then((response) => {
const result = response.data;
if (result !== null && result.length > 0) {
callback(new Error('数据已经存在'));
} else {
callback();
}
});
}