OfficeSystem/api/project.js

166 lines
4.3 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
*/
/**
* 获取项目列表
* @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 queryParams = [];
// 分页参数
if (params.pageNum !== undefined) {
queryParams.push(`pageNum=${params.pageNum}`);
}
if (params.pageSize !== undefined) {
queryParams.push(`pageSize=${params.pageSize}`);
}
// 排序参数
if (params.orderByColumn !== undefined && params.orderByColumn !== '') {
queryParams.push(`orderByColumn=${encodeURIComponent(params.orderByColumn)}`);
}
if (params.isAsc !== undefined && params.isAsc !== '') {
queryParams.push(`isAsc=${encodeURIComponent(params.isAsc)}`);
}
// 状态列表
if (params.statusList !== undefined && Array.isArray(params.statusList) && params.statusList.length > 0) {
params.statusList.forEach((status, index) => {
queryParams.push(`statusList=${status}`);
});
}
// 是否曾经逾期
if (params.overdue !== undefined && params.overdue !== '') {
queryParams.push(`devOverdue=${params.overdue}`);
}
// 创建人ID
if (params.createId !== undefined && params.createId !== '') {
queryParams.push(`createId=${params.createId}`);
}
// 负责人ID
if (params.ownerId !== undefined && params.ownerId !== '') {
queryParams.push(`ownerId=${params.ownerId}`);
}
// 搜索关键词
if (params.keys !== undefined && Array.isArray(params.keys) && params.keys.length > 0) {
params.keys.forEach((key, index) => {
queryParams.push(`keys[${index}]=${encodeURIComponent(key)}`);
});
}
// 项目名称搜索
if (params.projectName !== undefined && params.projectName !== '') {
queryParams.push(`name=${encodeURIComponent(params.projectName)}`);
}
// 项目编号搜索
if (params.projectId !== undefined && params.projectId !== '') {
queryParams.push(`no=${encodeURIComponent(params.projectId)}`);
}
// 客户名称搜索
if (params.customerName !== undefined && params.customerName !== '') {
queryParams.push(`customerName=${encodeURIComponent(params.customerName)}`);
}
// 成员ID搜索
if (params.joinUserId !== undefined && params.joinUserId !== '') {
queryParams.push(`joinUserId=${params.joinUserId}`);
}
const queryString = queryParams.length > 0 ? `?${queryParams.join('&')}` : '';
return uni.$uv.http.get(`bst/project/list${queryString}`, {
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
}
});
};
/**
* 删除项目
* @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
}
});
};
/**
* 开始项目开发
* @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
}
});
};