OfficeSystem/api/project.js
2025-11-27 10:14:55 +08:00

124 lines
3.0 KiB
JavaScript
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.

/**
* 项目相关 API
*/
import { buildUrl } from '@/utils/url'
/**
* 获取项目列表
* @param {Object} params 请求参数
* @param {number} params.pageNum 页码
* @param {number} params.pageSize 每页数量
* @param {string} params.orderByColumn 排序字段
* @param {string} params.isAsc 排序方式ascending/descending
* @param {number[]} params.statusList 项目状态列表
* @param {string} params.createId 创建人ID
* @param {string} params.ownerId 负责人ID
* @param {string[]} params.keys 搜索关键词数组
* @returns {Promise} 返回项目列表
*/
export const getProjectList = (params = {}) => {
// 处理特殊字段映射
const mappedParams = { ...params };
// 将overdue映射为devOverdue
if (mappedParams.overdue !== undefined) {
mappedParams.devOverdue = mappedParams.overdue;
delete mappedParams.overdue;
}
// 将projectName映射为name
if (mappedParams.projectName !== undefined) {
mappedParams.name = mappedParams.projectName;
delete mappedParams.projectName;
}
// 将projectId映射为no用于搜索
if (mappedParams.projectId !== undefined && !mappedParams.no) {
mappedParams.no = mappedParams.projectId;
// 注意这里不删除projectId因为可能还有其他用途
}
// 使用统一URL构建工具keys数组使用bracket格式
const url = buildUrl('bst/project/list', mappedParams);
return uni.$uv.http.get(url, {
custom: {
auth: true // 启用 token 认证
}
});
};
/**
* 获取项目详情
* @param {string} id 项目ID
* @returns {Promise} 返回项目详情
*/
export const getProjectDetail = (id) => {
return uni.$uv.http.get(`bst/project/${id}`, {
custom: {
auth: true
}
});
};
/**
* 创建项目
* @param {Object} data 项目数据
* @returns {Promise} 创建结果
*/
export const createProject = (data) => {
return uni.$uv.http.post('bst/project', data, {
custom: {
auth: true,
catch: true // 允许在 catch 中处理错误
}
});
};
/**
* 更新项目
* @param {Object} data 项目数据(需包含 id
* @returns {Promise} 更新结果
*/
export const updateProject = (data) => {
return uni.$uv.http.put('bst/project', data, {
custom: {
auth: true,
catch:true
}
});
};
/**
* 删除项目
* @param {string|string[]} ids 项目ID或ID数组
* @returns {Promise} 删除结果
*/
export const deleteProject = (ids) => {
const idsParam = Array.isArray(ids) ? ids.join(',') : ids;
return uni.$uv.http.delete(`bst/project/${idsParam}`, {}, {
custom: {
auth: true,
catch:true
}
});
};
/**
* 开始项目开发
* @param {Object} data
* @param {string} data.id 项目ID
* @param {string} data.expectedCompleteDate 预计完成日期YYYY-MM-DD
* @returns {Promise} 操作结果
*/
export const startProjectDevelopment = (data) => {
return uni.$uv.http.put('bst/project/start', data, {
custom: {
auth: true,
catch:true
}
});
};