/** * API 接口封装 * 统一管理所有 API 请求 */ /** * 获取用户信息 * @returns {Promise} 返回用户信息 */ export const getUserInfo = () => { return uni.$uv.http.get('/getInfo', { custom: { auth: true // 启用 token 认证 } }); }; /** * 获取仪表板简要信息 * @param {Object} params 请求参数 * @param {string} params.joinUserId 用户ID * @param {string[]} params.keys 需要获取的数据键名数组 * @returns {Promise} 返回仪表板简要信息 */ export const getDashboardBrief = ({ joinUserId, keys }) => { // 构建查询参数字符串 const params = [`joinUserId=${joinUserId}`]; if (keys && Array.isArray(keys)) { keys.forEach((key) => { params.push(`keys=${encodeURIComponent(key)}`); }); } const queryString = params.join('&'); return uni.$uv.http.get(`dashboard/brief?${queryString}`, { custom: { auth: true // 启用 token 认证 } }); }; /** * 获取任务列表 * @param {Object} params 请求参数 * @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) * @returns {Promise} 返回任务列表 */ export const getTaskList = ({ overdue, statusList, expireTimeStart, expireTimeEnd }) => { const queryParams = []; if (overdue !== undefined) { queryParams.push(`overdue=${overdue}`); } 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)}`); } 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 认证 } }); }; /** * 获取七牛云上传token * @returns {Promise} 返回七牛云上传token */ export const getQiniuUploadToken = () => { return uni.$uv.http.get('/common/qiniuToken', { 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} params 请求参数(可选) * @param {string[]} params.statusList 客户状态列表:["1"] 正在跟进, ["2"] 待跟进 * @param {string} params.excludeld 排除id * @param {string[]} params.ids id列表 * @param {string} params.intent 意向 * @param {string} params.createDate 创建日期 (yyyy-MM-dd) * @param {string} params.joinUserld 参与人id * @param {string} params.lastFollowDate 上次跟进日期 (yyyy-MM-dd) * @param {string} params.nextFollowDate 下次跟进日期 (yyyy-MM-dd) * @param {string} params.nextFollowDateStart 下次跟进日期开始 (yyyy-MM-dd) * @param {string} params.nextFollowDateEnd 下次跟进日期结束 (yyyy-MM-dd) * @param {string[]} params.createDateRange 创建日期范围 (yyyy-MM-dd) * @param {string[]} params.saleList 销售列表 * @returns {Promise} 返回客户列表 { total: number, rows: array } */ export const getCustomerList = (params = {}) => { const queryParams = []; // 处理数组参数 if (params.statusList && Array.isArray(params.statusList) && params.statusList.length > 0) { params.statusList.forEach(status => { queryParams.push(`statusList=${encodeURIComponent(status)}`); }); } if (params.ids && Array.isArray(params.ids) && params.ids.length > 0) { params.ids.forEach(id => { queryParams.push(`ids=${encodeURIComponent(id)}`); }); } if (params.createDateRange && Array.isArray(params.createDateRange) && params.createDateRange.length > 0) { params.createDateRange.forEach(date => { queryParams.push(`createDateRange=${encodeURIComponent(date)}`); }); } if (params.saleList && Array.isArray(params.saleList) && params.saleList.length > 0) { params.saleList.forEach(sale => { queryParams.push(`saleList=${encodeURIComponent(sale)}`); }); } // 处理字符串参数 if (params.excludeld) { queryParams.push(`excludeld=${encodeURIComponent(params.excludeld)}`); } if (params.intent) { queryParams.push(`intent=${encodeURIComponent(params.intent)}`); } if (params.createDate) { queryParams.push(`createDate=${encodeURIComponent(params.createDate)}`); } if (params.joinUserld) { queryParams.push(`joinUserld=${encodeURIComponent(params.joinUserld)}`); } if (params.lastFollowDate) { queryParams.push(`lastFollowDate=${encodeURIComponent(params.lastFollowDate)}`); } if (params.nextFollowDate) { queryParams.push(`nextFollowDate=${encodeURIComponent(params.nextFollowDate)}`); } if (params.nextFollowDateStart) { queryParams.push(`nextFollowDateStart=${encodeURIComponent(params.nextFollowDateStart)}`); } if (params.nextFollowDateEnd) { queryParams.push(`nextFollowDateEnd=${encodeURIComponent(params.nextFollowDateEnd)}`); } const queryString = queryParams.length > 0 ? `?${queryParams.join('&')}` : ''; return uni.$uv.http.get(`bst/customer/list${queryString}`, { custom: { auth: true // 启用 token 认证 } }); }; /** * 获取客户详情 * @param {string} id 客户ID * @returns {Promise} 返回客户详情 */ export const getCustomerDetail = (id) => { return uni.$uv.http.get(`bst/customer/${id}`, { custom: { auth: true // 启用 token 认证 } }); }; /** * 获取客户跟进动态列表 * @param {string} customerId 客户ID * @returns {Promise} 返回跟进动态列表 */ export const getCustomerFollowupList = (customerId) => { return uni.$uv.http.get(`bst/customer/followup/list`, { params: { customerId: customerId }, custom: { auth: true } }); }; /** * 获取客户项目列表 * @param {string} customerId 客户ID * @returns {Promise} 返回项目列表 */ export const getCustomerProjects = (customerId) => { return uni.$uv.http.get(`bst/customer/projects`, { params: { customerId: customerId }, custom: { auth: true } }); };