191 lines
6.6 KiB
JavaScript
191 lines
6.6 KiB
JavaScript
import request from "@/utils/request";
|
||
|
||
/**
|
||
* CRM 业务管线接口:线索 → 商机 → 项目,回访贯穿全流程。
|
||
*
|
||
* 关联类型 related_type:1=线索 2=商机 3=项目
|
||
*/
|
||
|
||
/* --------------------------------- 线索 --------------------------------- */
|
||
|
||
export function getClueList(params) {
|
||
return request({ url: "/backend/crm/clue/list", method: "get", params });
|
||
}
|
||
|
||
export function getClueDetail(id) {
|
||
return request({ url: `/backend/crm/clue/${id}`, method: "get" });
|
||
}
|
||
|
||
export function createClue(data) {
|
||
return request({ url: "/backend/crm/clue", method: "post", data });
|
||
}
|
||
|
||
export function updateClue(id, data) {
|
||
return request({ url: `/backend/crm/clue/${id}`, method: "put", data });
|
||
}
|
||
|
||
export function deleteClue(id) {
|
||
return request({ url: `/backend/crm/clue/${id}`, method: "delete" });
|
||
}
|
||
|
||
/** 线索转化商机:会把线索客户名称落地为正式客户,并锁定线索 */
|
||
export function convertClueToBusiness(id, data) {
|
||
return request({ url: `/backend/crm/clue/${id}/convert`, method: "post", data });
|
||
}
|
||
|
||
/* --------------------------------- 商机 --------------------------------- */
|
||
|
||
export function getBusinessList(params) {
|
||
return request({ url: "/backend/crm/business/list", method: "get", params });
|
||
}
|
||
|
||
export function getBusinessDetail(id) {
|
||
return request({ url: `/backend/crm/business/${id}`, method: "get" });
|
||
}
|
||
|
||
export function createBusiness(data) {
|
||
return request({ url: "/backend/crm/business", method: "post", data });
|
||
}
|
||
|
||
export function updateBusiness(id, data) {
|
||
return request({ url: `/backend/crm/business/${id}`, method: "put", data });
|
||
}
|
||
|
||
export function deleteBusiness(id) {
|
||
return request({ url: `/backend/crm/business/${id}`, method: "delete" });
|
||
}
|
||
|
||
/** 商机转化项目 */
|
||
export function convertBusinessToProject(id, data) {
|
||
return request({ url: `/backend/crm/business/${id}/convert`, method: "post", data });
|
||
}
|
||
|
||
/* --------------------------------- 项目 --------------------------------- */
|
||
|
||
export function getProjectList(params) {
|
||
return request({ url: "/backend/crm/project/list", method: "get", params });
|
||
}
|
||
|
||
export function getProjectDetail(id) {
|
||
return request({ url: `/backend/crm/project/${id}`, method: "get" });
|
||
}
|
||
|
||
export function createProject(data) {
|
||
return request({ url: "/backend/crm/project", method: "post", data });
|
||
}
|
||
|
||
export function updateProject(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}`, method: "put", data });
|
||
}
|
||
|
||
export function deleteProject(id) {
|
||
return request({ url: `/backend/crm/project/${id}`, method: "delete" });
|
||
}
|
||
|
||
/** 项目状态流转:仅更新状态(1未开始 / 2进行中 / 3已完成 / 4已暂停 / 5异常) */
|
||
export function changeProjectStatus(id, status) {
|
||
return request({ url: `/backend/crm/project/${id}/status`, method: "post", data: { status } });
|
||
}
|
||
|
||
/**
|
||
* 保存项目联系人:从对应企业通讯录中挑选的联系人ID集合(多选)。
|
||
* - upstream_contact_ids:上游(客户方)选中的联系人ID数组;
|
||
* - downstream_contact_ids:下游/中游(对方主体方)选中的联系人ID数组;
|
||
* - 单一项目后端会自动清空下游集合,传入不属于对应企业的ID会被过滤。
|
||
*/
|
||
export function saveProjectContacts(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}/contacts`, method: "post", data });
|
||
}
|
||
|
||
/* --------------------------- 项目文档(OA 文档库) --------------------------- */
|
||
|
||
/**
|
||
* 项目文档列表:对应文档库「共享文档 / 项目文档 / {项目名称}」文件夹(含子文件夹)。
|
||
* 存量项目在首次调用时自动补建文件夹。
|
||
*/
|
||
export function getProjectDocs(id, params) {
|
||
return request({ url: `/backend/crm/project/${id}/docs`, method: "get", params });
|
||
}
|
||
|
||
/**
|
||
* 上传项目文档:文件先经 POST /backend/uploadfile 上传,
|
||
* 再调用本接口写入文档库项目文件夹并同步登记 CRM 附件。
|
||
*/
|
||
export function uploadProjectDoc(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}/doc-upload`, method: "post", data });
|
||
}
|
||
|
||
/** 删除项目文档:同步软删文档库文档与对应 CRM 附件记录 */
|
||
export function deleteProjectDoc(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}/doc-delete`, method: "post", data });
|
||
}
|
||
|
||
/**
|
||
* 新建项目文档文件夹(对应文档库中项目文件夹下的子分类),用于分类存放文档。
|
||
* data: { name, parent_id },parent_id 缺省时建在项目根文件夹下。
|
||
*/
|
||
export function createProjectDocFolder(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}/doc-folder`, method: "post", data });
|
||
}
|
||
|
||
/** 删除项目文档文件夹(需为空:无子文件夹、无文档;项目根文件夹不可删除) */
|
||
export function deleteProjectDocFolder(id, data) {
|
||
return request({ url: `/backend/crm/project/${id}/doc-folder-delete`, method: "post", data });
|
||
}
|
||
|
||
/* --------------------------------- 回访 --------------------------------- */
|
||
|
||
export function getFollowList(params) {
|
||
return request({ url: "/backend/crm/follow/list", method: "get", params });
|
||
}
|
||
|
||
export function addFollow(data) {
|
||
return request({ url: "/backend/crm/follow/add", method: "post", data });
|
||
}
|
||
|
||
export function updateFollow(data) {
|
||
return request({ url: "/backend/crm/follow/edit", method: "post", data });
|
||
}
|
||
|
||
export function deleteFollow(data) {
|
||
return request({ url: "/backend/crm/follow/delete", method: "post", data });
|
||
}
|
||
|
||
/* --------------------------------- 附件 --------------------------------- */
|
||
|
||
export function getAttachList(params) {
|
||
return request({ url: "/backend/crm/attach/list", method: "get", params });
|
||
}
|
||
|
||
export function addAttach(data) {
|
||
return request({ url: "/backend/crm/attach/add", method: "post", data });
|
||
}
|
||
|
||
export function deleteAttach(data) {
|
||
return request({ url: "/backend/crm/attach/delete", method: "post", data });
|
||
}
|
||
|
||
/* ------------------------------ 联系人(实体) ------------------------------ */
|
||
|
||
export function getEntityContactList(params) {
|
||
return request({ url: "/backend/crm/entity/contact/list", method: "get", params });
|
||
}
|
||
|
||
export function addEntityContact(data) {
|
||
return request({ url: "/backend/crm/entity/contact/add", method: "post", data });
|
||
}
|
||
|
||
export function updateEntityContact(data) {
|
||
return request({ url: "/backend/crm/entity/contact/edit", method: "post", data });
|
||
}
|
||
|
||
export function deleteEntityContact(data) {
|
||
return request({ url: "/backend/crm/entity/contact/delete", method: "post", data });
|
||
}
|
||
|
||
/* ------------------------------- 操作日志 ------------------------------- */
|
||
|
||
export function getCrmOperateLogs(params) {
|
||
return request({ url: "/backend/crm/oplog/list", method: "get", params });
|
||
}
|