/** * 任务相关 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} 项目列表 */ export const getProjectListAll = () => { return uni.$uv.http.get('/bst/project/listAll', { custom: { auth: true } }); };