189 lines
5.5 KiB
JavaScript
189 lines
5.5 KiB
JavaScript
/**
|
||
* 任务相关 API
|
||
*/
|
||
|
||
/**
|
||
* 获取任务列表
|
||
* @param {Object} params 请求参数
|
||
* @param {string} params.ownerId 所属人id
|
||
* @param {boolean} params.overdue 是否获取逾期任务
|
||
* @param {number[]} params.statusList 任务状态列表,4对应已完成
|
||
* @param {string} params.expireTimeStart 过期时间开始范围(格式:yyyy-MM-dd HH:mm:ss)
|
||
* @param {string} params.expireTimeEnd 过期时间结束范围(格式:yyyy-MM-dd HH:mm:ss)
|
||
* @param {number} params.pageNum 页码
|
||
* @param {number} params.pageSize 每页数量
|
||
* @param {string} params.orderByColumn 排序字段
|
||
* @param {string} params.isAsc 排序方式(ascending/descending)
|
||
* @param {string} params.projectId 项目ID
|
||
* @param {string} params.type 任务类型
|
||
* @param {string} params.level 优先级
|
||
* @param {string} params.createId 创建人ID
|
||
* @param {string[]} params.passDateRange 通过日期范围 [开始日期, 结束日期]
|
||
* @param {string} params.status 任务状态
|
||
* @returns {Promise} 返回任务列表
|
||
*/
|
||
export const getTaskList = (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)}`);
|
||
}
|
||
|
||
// 项目ID
|
||
if (params.projectId !== undefined && params.projectId !== '') {
|
||
queryParams.push(`projectId=${params.projectId}`);
|
||
}
|
||
|
||
// 任务类型
|
||
if (params.type !== undefined && params.type !== '') {
|
||
queryParams.push(`type=${params.type}`);
|
||
}
|
||
|
||
// 优先级
|
||
if (params.level !== undefined && params.level !== '') {
|
||
queryParams.push(`level=${params.level}`);
|
||
}
|
||
|
||
// 创建人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.statusList !== undefined && Array.isArray(params.statusList) && params.statusList.length > 0) {
|
||
// 将数组转换为重复参数格式,例如 [1,2] => "statusList=1&statusList=2"
|
||
params.statusList.forEach(status => {
|
||
queryParams.push(`statusList=${status}`);
|
||
});
|
||
}
|
||
|
||
// 任务状态(单个)
|
||
if (params.status !== undefined && params.status !== '') {
|
||
queryParams.push(`status=${params.status}`);
|
||
}
|
||
|
||
// 是否逾期
|
||
if (params.overdue !== undefined) {
|
||
queryParams.push(`overdue=${params.overdue}`);
|
||
}
|
||
|
||
// 过期时间范围
|
||
if (params.expireTimeStart !== undefined && params.expireTimeStart !== null && params.expireTimeStart !== '') {
|
||
queryParams.push(`expireTimeStart=${encodeURIComponent(params.expireTimeStart)}`);
|
||
}
|
||
if (params.expireTimeEnd !== undefined && params.expireTimeEnd !== null && params.expireTimeEnd !== '') {
|
||
queryParams.push(`expireTimeEnd=${encodeURIComponent(params.expireTimeEnd)}`);
|
||
}
|
||
|
||
// 通过日期范围
|
||
if (params.passDateRange !== undefined && Array.isArray(params.passDateRange) && params.passDateRange.length > 0) {
|
||
params.passDateRange.forEach((date, index) => {
|
||
if (date) {
|
||
queryParams.push(`passDateRange[${index}]=${encodeURIComponent(date)}`);
|
||
}
|
||
});
|
||
}
|
||
|
||
const queryString = queryParams.length > 0 ? `?${queryParams.join('&')}` : '';
|
||
|
||
return uni.$uv.http.get(`bst/task/list${queryString}`, {
|
||
custom: {
|
||
auth: true // 启用 token 认证
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 获取任务详情
|
||
* @param {string} id 任务ID
|
||
* @returns {Promise} 返回任务详情
|
||
*/
|
||
export const getTaskDetail = (id) => {
|
||
return uni.$uv.http.get(`bst/task/${id}`, {
|
||
custom: {
|
||
auth: true // 启用 token 认证
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 提交任务
|
||
* @param {Object} params 请求参数
|
||
* @param {string} params.id 任务ID
|
||
* @param {string} params.submitAttaches 附件, 逗号分隔的URL字符串
|
||
* @param {string} params.submitRemark 备注
|
||
* @returns {Promise} 返回提交结果
|
||
*/
|
||
export const submitTask = ({ id, submitAttaches, submitRemark }) => {
|
||
return uni.$uv.http.put('/bst/task/submit', {
|
||
id: id,
|
||
submitAttaches: submitAttaches || '',
|
||
submitRemark: submitRemark || ''
|
||
}, {
|
||
custom: {
|
||
auth: true // 启用 token 认证
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 申请任务延期(发起审核)
|
||
* @param {Object} payload 请求数据
|
||
* @param {string|number} payload.bstId 任务ID
|
||
* @param {string} payload.bstType 审核类型
|
||
* @param {string} payload.createRemark 申请说明
|
||
* @param {string} payload.data 业务数据JSON字符串
|
||
* @returns {Promise} 返回接口响应
|
||
*/
|
||
export const applyTaskDelay = (payload) => {
|
||
return uni.$uv.http.post('/bst/verify', payload, {
|
||
custom: {
|
||
auth: true
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 创建任务
|
||
* @param {Object} payload 任务数据
|
||
* @returns {Promise} 请求结果
|
||
*/
|
||
export const createTask = (payload) => {
|
||
return uni.$uv.http.post('/bst/task', payload, {
|
||
custom: {
|
||
auth: true,
|
||
catch: true // 允许在 catch 中处理错误
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 获取全部项目列表
|
||
* @returns {Promise<Array>} 项目列表
|
||
*/
|
||
export const getProjectListAll = () => {
|
||
return uni.$uv.http.get('/bst/project/listAll', {
|
||
custom: {
|
||
auth: true
|
||
}
|
||
});
|
||
};
|
||
|