124 lines
3.0 KiB
JavaScript
124 lines
3.0 KiB
JavaScript
/**
|
||
* 项目相关 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
|
||
}
|
||
});
|
||
};
|
||
|