/*
 *    Copyright (c) 2018-2025, cyweb All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 */

import request from '/@/utils/request';

/**
 * 获取树形列表（全量，数据量大时建议用懒加载接口）
 * @param params 查询参数
 */
export function getTree(params?: any) {
	return request({
		url: '/purchase/purchasingcategory/tree',
		method: 'get',
		params
	});
}

/**
 * 获取树根节点（懒加载用）
 */
export function getTreeRoots() {
	return request({
		url: '/purchase/purchasingcategory/tree/roots',
		method: 'get'
	});
}

/**
 * 获取子节点（懒加载用）
 * @param parentCode 父节点编码
 */
export function getTreeChildren(parentCode: string) {
	return request({
		url: '/purchase/purchasingcategory/tree/children',
		method: 'get',
		params: { parentCode }
	});
}

/**
 * 新增
 * @param obj 对象数据
 */
export function addObj(obj: any) {
	return request({
		url: '/purchase/purchasingcategory',
		method: 'post',
		data: obj
	});
}

/**
 * 删除
 * @param id ID
 */
export function delObj(id: string | number) {
	return request({
		url: '/purchase/purchasingcategory/delete',
		method: 'post',
		data: {id:id}
	});
}

/**
 * 更新
 * @param obj 对象数据
 */
export function editObj(obj: any) {
	return request({
		url: '/purchase/purchasingcategory/edit',
		method: 'post',
		data: obj
	});
}

/**
 * 下载导入模板
 */
export function downloadTemplate() {
	return request({
		url: '/purchase/purchasingcategory/import/template',
		method: 'get',
		responseType: 'blob'
	});
}

/**
 * 导入数据
 * @param file 文件对象
 */
export function importData(file: File) {
	const formData = new FormData();
	formData.append('file', file);
	return request({
		url: '/purchase/purchasingcategory/import',
		method: 'post',
		data: formData,
		headers: {
			'Content-Type': 'multipart/form-data'
		}
	});
}

/**
 * 导出数据
 */
export function exportData() {
	return request({
		url: '/purchase/purchasingcategory/export',
		method: 'get',
		responseType: 'blob'
	});
}

