OfficeSystem/common/api.js
2025-11-07 09:40:39 +08:00

220 lines
6.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 接口封装
* 统一管理所有 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(`customer/${id}`, {
custom: {
auth: true // 启用 token 认证
}
});
};