2025-11-17 11:58:49 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 项目相关 API
|
|
|
|
|
|
*/
|
2025-11-27 10:14:55 +08:00
|
|
|
|
import { buildUrl } from '@/utils/url'
|
2025-11-17 11:58:49 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取项目列表
|
|
|
|
|
|
* @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 = {}) => {
|
2025-11-27 10:14:55 +08:00
|
|
|
|
// 处理特殊字段映射
|
|
|
|
|
|
const mappedParams = { ...params };
|
2025-11-17 11:58:49 +08:00
|
|
|
|
|
2025-11-27 10:14:55 +08:00
|
|
|
|
// 将overdue映射为devOverdue
|
|
|
|
|
|
if (mappedParams.overdue !== undefined) {
|
|
|
|
|
|
mappedParams.devOverdue = mappedParams.overdue;
|
|
|
|
|
|
delete mappedParams.overdue;
|
2025-11-17 11:58:49 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-27 10:14:55 +08:00
|
|
|
|
// 将projectName映射为name
|
|
|
|
|
|
if (mappedParams.projectName !== undefined) {
|
|
|
|
|
|
mappedParams.name = mappedParams.projectName;
|
|
|
|
|
|
delete mappedParams.projectName;
|
2025-11-17 11:58:49 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-27 10:14:55 +08:00
|
|
|
|
// 将projectId映射为no(用于搜索)
|
|
|
|
|
|
if (mappedParams.projectId !== undefined && !mappedParams.no) {
|
|
|
|
|
|
mappedParams.no = mappedParams.projectId;
|
|
|
|
|
|
// 注意:这里不删除projectId,因为可能还有其他用途
|
2025-11-17 11:58:49 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-27 10:14:55 +08:00
|
|
|
|
// 使用统一URL构建工具,keys数组使用bracket格式
|
|
|
|
|
|
const url = buildUrl('bst/project/list', mappedParams);
|
2025-11-17 11:58:49 +08:00
|
|
|
|
|
2025-11-27 10:14:55 +08:00
|
|
|
|
return uni.$uv.http.get(url, {
|
2025-11-17 11:58:49 +08:00
|
|
|
|
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
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-11-17 16:58:11 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 创建项目
|
|
|
|
|
|
* @param {Object} data 项目数据
|
|
|
|
|
|
* @returns {Promise} 创建结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export const createProject = (data) => {
|
|
|
|
|
|
return uni.$uv.http.post('bst/project', data, {
|
|
|
|
|
|
custom: {
|
2025-11-18 16:02:59 +08:00
|
|
|
|
auth: true,
|
|
|
|
|
|
catch: true // 允许在 catch 中处理错误
|
2025-11-17 16:58:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 更新项目
|
|
|
|
|
|
* @param {Object} data 项目数据(需包含 id)
|
|
|
|
|
|
* @returns {Promise} 更新结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export const updateProject = (data) => {
|
|
|
|
|
|
return uni.$uv.http.put('bst/project', data, {
|
|
|
|
|
|
custom: {
|
2025-11-24 16:12:22 +08:00
|
|
|
|
auth: true,
|
|
|
|
|
|
catch:true
|
2025-11-17 16:58:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-11-18 16:58:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 删除项目
|
|
|
|
|
|
* @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: {
|
2025-11-24 16:12:22 +08:00
|
|
|
|
auth: true,
|
|
|
|
|
|
catch:true
|
2025-11-18 16:58:22 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-11-18 17:10:08 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 开始项目开发
|
|
|
|
|
|
* @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: {
|
2025-11-24 15:18:38 +08:00
|
|
|
|
auth: true,
|
|
|
|
|
|
catch:true
|
2025-11-18 17:10:08 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|