OfficeSystem/api/project.js

124 lines
3.0 KiB
JavaScript
Raw Normal View History

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: {
auth: true,
catch:true
2025-11-18 17:10:08 +08:00
}
});
};