OfficeSystem/api/task.js

127 lines
3.6 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 {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 每页数量
* @returns {Promise} 返回任务列表
*/
export const getTaskList = ({ownerId, overdue, statusList, expireTimeStart, expireTimeEnd, pageNum, pageSize }) => {
const queryParams = [];
if (overdue !== undefined) {
queryParams.push(`overdue=${overdue}`);
}
if (ownerId !== undefined && ownerId !== '') {
queryParams.push(`ownerId=${ownerId}`);
}
if (statusList !== undefined && Array.isArray(statusList) && statusList.length > 0) {
// 将数组转换为逗号分隔的字符串,例如 [4] => "4" 或 [1,2,3] => "1,2,3"
queryParams.push(`statusList=${statusList.join(',')}`);
}
if (expireTimeStart !== undefined && expireTimeStart !== null && expireTimeStart !== '') {
queryParams.push(`expireTimeStart=${encodeURIComponent(expireTimeStart)}`);
}
if (expireTimeEnd !== undefined && expireTimeEnd !== null && expireTimeEnd !== '') {
queryParams.push(`expireTimeEnd=${encodeURIComponent(expireTimeEnd)}`);
}
// 添加分页参数
if (pageNum !== undefined) {
queryParams.push(`pageNum=${pageNum}`);
}
if (pageSize !== undefined) {
queryParams.push(`pageSize=${pageSize}`);
}
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
}
});
};