/** * 任务相关 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) { // 将数组转换为重复参数格式,例如 [1,2] => "statusList=1&statusList=2" statusList.forEach(status => { queryParams.push(`statusList=${status}`); }); } 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} 项目列表 */ export const getProjectListAll = () => { return uni.$uv.http.get('/bst/project/listAll', { custom: { auth: true } }); };