194 lines
4.1 KiB
TypeScript
194 lines
4.1 KiB
TypeScript
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'
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 导出履约验收评价表(仅填写模式可导出)
|
||
* 单期返回 docx,exportAll=true 时返回全部期数 zip
|
||
*/
|
||
export function downloadPerformanceAcceptanceTemplate(
|
||
purchaseId: string,
|
||
batch?: number,
|
||
exportAll?: boolean
|
||
) {
|
||
const params: Record<string, any> = { purchaseId }
|
||
if (exportAll === true) params.exportAll = true
|
||
else if (batch != null) params.batch = batch
|
||
return request({
|
||
url: '/purchase/purchasingAccept/export-performance-acceptance-template',
|
||
method: 'get',
|
||
params,
|
||
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();
|
||
}
|
||
});
|
||
}
|
||
|